konkurs (zakończony) :: UML :: filmy-aktorzy

0

<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ć)
user image

0

Ale chytry błąd. No niby są dwie jedynki przy klasie Adres, i to miałoby oznaczać, że jest wskazany ten sam adres? Dalej mi się to nie widzi, ale skoro takie są reguły UML...

Niniejszym dziękuję sponsorowi :-) i zawodnikom i czekam na kolejny konkurs, ale z zapowiedzi czuję, że nie jestem aż tak zaawansowany. Ale za to można się podszkolić na konkretnym przykładzie.

0

Kapustka - genialny pomysl z tym konkursem.

Ja bylem jedna z tych poczatkujacych osob, ktore przygladaly sie zmaganiom zwodnikow :-)
Teraz bede czekal na ten obiecany tutorial i nastepny konkurs.

0

Przyglądałem się konkursowi trochę z boku ponieważ prawie nic o UML nie wiem. Tymbardziej jak planujesz jakiś kurs to chętnie przyłącze się do jego czytelników ;)

0

Ja tez dosc mocno sledzilem, chociaz pozapominalo sie co nieco. Jak bedzie powtorka, a pozniej znowu konkurs to bardzo chetnie :)

pozdrawiam
johny

1 użytkowników online, w tym zalogowanych: 0, gości: 1