Zpo-1-lab: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
Linia 2: Linia 2:


==Informacje wstępne==
==Informacje wstępne==
Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem oraz [http://alistair.cockburn.us/index.php/Using_CRC_cards artykułem] dotyczącym wykorzystania kart CRC   
Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem oraz [http://alistair.cockburn.us/index.php/Using_CRC_cards artykułem A.Cockburna] dotyczącym wykorzystania kart CRC   
Celem ćwiczenia jest zastosowanie w praktyce metody projektowania obiektowego z użyciem kart CRC.
Celem ćwiczenia jest zastosowanie w praktyce metody projektowania obiektowego z użyciem kart CRC.


Linia 8: Linia 8:
Należy zaprojektować system obiektowy dla obsługi rozgrywek Ligi Światowej, zgodnie z załączonym [[Liga Światowa|opisem]]. Sugerowaną metodą jest wykorzystanie kart CRC w powiązaniu z wiedzą przypomnianą podczas wykładu.
Należy zaprojektować system obiektowy dla obsługi rozgrywek Ligi Światowej, zgodnie z załączonym [[Liga Światowa|opisem]]. Sugerowaną metodą jest wykorzystanie kart CRC w powiązaniu z wiedzą przypomnianą podczas wykładu.


Zadanie polega na wyodrębnieniu klas, przydzieleniu im odpowiedzialności oraz określeniu ich powiązań pomiędzy sobą.
Zadanie polega na wyodrębnieniu klas, przydzieleniu im odpowiedzialności, określeniu ich powiązań pomiędzy sobą.  
Należy uwzględnić następujące ograniczenia:
Należy uwzględnić następujące ograniczenia:
# liczba grup w rundzie międzykontynentalnej jest zmienna
# liczba grup w rundzie międzykontynentalnej jest zmienna
Linia 17: Linia 17:
Zaprojektowany system powinien umożliwić śledzenie i zapisywanie wyników rozgrywek niezależnie od zmian zachodzących w ww. zakresie.
Zaprojektowany system powinien umożliwić śledzenie i zapisywanie wyników rozgrywek niezależnie od zmian zachodzących w ww. zakresie.


Kolejnym krokiem jest zaimplementowanie wyników w postaci biblioteki klas języka Java.
Kolejnym krokiem jest zaimplementowanie wyników w postaci biblioteki klas języka Java. Należy dobrać właściwe struktury danych i skorzystać z możliwości oferowanych przez język do zaimplementowania rozwiązania.


==Pytania do dyskusji==
==Pytania do dyskusji==
# W jakich sytuacjach zastosowanie dziedziczenia klas jest efektywniejsze niż zastosowanie interfejsów i ich implementacji?
# W jakich sytuacjach zastosowanie dziedziczenia klas jest efektywniejsze niż zastosowanie interfejsów i ich implementacji?
# Które obiekty w projekcie systemu dla Ligi Światowej powinny być obiektami-referencjami, a jakie obiektami-wartościami?
# Które obiekty w projekcie systemu dla Ligi Światowej powinny być obiektami-referencjami, a jakie obiektami-wartościami?
# Jak zapewnić niezmienność wyników meczu po jego zakończeniu?
# Jak zapewnić niezmienność wyników meczu po jego zakończeniu (utworzeniu obiekty reprezentującego mecz)?

Aktualna wersja na dzień 13:18, 1 wrz 2006

Ćwiczenie 1: Wprowadzenie do przedmiotu

Informacje wstępne

Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem oraz artykułem A.Cockburna dotyczącym wykorzystania kart CRC Celem ćwiczenia jest zastosowanie w praktyce metody projektowania obiektowego z użyciem kart CRC.

Zadanie

Należy zaprojektować system obiektowy dla obsługi rozgrywek Ligi Światowej, zgodnie z załączonym opisem. Sugerowaną metodą jest wykorzystanie kart CRC w powiązaniu z wiedzą przypomnianą podczas wykładu.

Zadanie polega na wyodrębnieniu klas, przydzieleniu im odpowiedzialności, określeniu ich powiązań pomiędzy sobą. Należy uwzględnić następujące ograniczenia:

  1. liczba grup w rundzie międzykontynentalnej jest zmienna
  2. mechanizm ustalania kolejności wewnątrz grup w obu rundach jest identyczny, ale zmienny
  3. liczba zespołów awansujących z rundy międzykontynentalnej do finałowej z każdej grupy może ulec zmianie
  4. liczebność grup w rundzie finałowej jest zmienna

Zaprojektowany system powinien umożliwić śledzenie i zapisywanie wyników rozgrywek niezależnie od zmian zachodzących w ww. zakresie.

Kolejnym krokiem jest zaimplementowanie wyników w postaci biblioteki klas języka Java. Należy dobrać właściwe struktury danych i skorzystać z możliwości oferowanych przez język do zaimplementowania rozwiązania.

Pytania do dyskusji

  1. W jakich sytuacjach zastosowanie dziedziczenia klas jest efektywniejsze niż zastosowanie interfejsów i ich implementacji?
  2. Które obiekty w projekcie systemu dla Ligi Światowej powinny być obiektami-referencjami, a jakie obiektami-wartościami?
  3. Jak zapewnić niezmienność wyników meczu po jego zakończeniu (utworzeniu obiekty reprezentującego mecz)?