<font size="4">*** Koniec ***</span>
Wyniki końcowe:
grzesko - 5pkt
id02009 - 4pkt
yarel - 3pkt
maksik - 0pkt
Wygrał grzesko - gratulujemy. Dobra materialne - czyli paczkę z ananasem i notatkami ze wzorców projektowych wysyłamy po otrzymaniu adresu. Podaj go emailem: [email protected]
a teraz kwestia nierozwiązanego xor
grzesko
Jeżeli jest takie ograniczenie typu XOR (zdefiniowane wyżej) to nie można przypisać adresu do <jakiegokolwiek> Działu Wytwórni, które przecież są powiązane agregacją z Wytwórnią (ale adresu nie muszą mieć wspólnego). Podobnie nie Kino Samochodowe nie może mieć adresu (innego niż Kino), choć w tym przypadku nie jestem pewien czy to jest dobre uzasadnienie z mojej strony, ponieważ zwiazek dziedziczenia pozwala na użycie obiektu pochodnego poprzez referencję klasy bazowej (znam C++).
Załóżmy, że działy wytwórni są w jednym budynku (faktycznie powinno być inaczej). Z tym kinem samochodowym to jest tak jak w C++, czyli kino samochodowe może mieć pewien adres pomimo, że nie jest on używany przez żadne kino nie samochodowe.
yarel
Hmm, zastanawiam się jaką informacje może nieść xor w odniesieniu do diagramów UML. Może chodzi o to, że zachodzi dokładnie jedno z powiązań dla całego systemu? Np. Wytwórnia-Adres "albo" Kino-Adres, a tym samym "Adres" może być związany tylko z Wytwórnią, ale z Kinem już nie (lub odwrotnie), czyli wszystkie Wytwórnie mają adres, ale Kina nie mogą mieć adresu.
Blisko ale to jest na poziomie pojedyńczych obiektów. W tym wypadku informacja jaka się kryje za tym ograniczeniem jest następująca: jeden adres może być związany z jakimś kinem ALBO z jakąś wytwórnią. Nie może być powiązany z obydwoma naraz.
rozwiązanie
Błąd jest specyficzny - jest niezależny od kontekstu systemu. Można by go więc chyba nazwać błędem formalnym. Jak było już powiedziane wcześniej, znaczenie xor jest, w tym wypadku, następujące: jeden adres może być związany z wytwórnią ALBO z kinem. Nie dopuszczamy adresów, które są wspólne dla kina i wytwórni (takie są założenia systemu). Błąd polega na ... licznościach po stronie wytwórni i kina. Liczności 1 uniemożliwiają spełnienie tego warunku bo każdy adres jest powiązany z dokładnie jednym kinem i jedną wytwórnią. Poprawnie jest 0..1.
zakończenie
Gratulujemy ! Szczerze gratulujemy bo odnaleźliście prawie wszystkie błędy, a niektóre były naprawdę trudne. W szczególności:
- zła liczność w asocjacji kwalifikowanej
- dodatkowe ograniczenie jakie trzeba dodać przechodząc z kwalifikowanej do zwyczajnej
- odnalezienie, że ilość sal jest w rzeczywistości pochodna
Nie mamy danych na temat liczby osób, które biernie obserwowały ten konkurs ale prawdopodobnie było ich sporo i przy okazji mogły się podszkolić. Z myślą o nich planujemy wydanie tutoriala o diagramie klas który będzie wyjaśniał zagadnienia podstawowe oraz będzie opracowaniem zadań z tego konkursu. Znajomość notacji diagramu klas jest pożyteczna zawodowo a w następnym konkursie - obowiązkowa.
Następny konkurs sprawdzi wasze umiejętności architektoniczne - będziecie musieli zaplanować system, który będzie w stanie wywiązać się z pewnej odpowiedzialności. Szczególnie kłopotliwe będą miejsca w których taki system ma być elastyczny na zmiany. Polecam już teraz zapoznać się z czynnościowymi wzorcami projektowymi - zupełnie minimum to: strategia, dekorator, obserwator.
Dziękujemy za udział. Bawiliśmy się świetnie i zaskoczyliście nas poziomem i dociekliwością.
Na koniec oryginalna treść zadania z odpowiedziami w formie notatek
(kliknij aby wyświetlić)