Table of Contents

Zadanie 4 Diagram struktury klas

Tematem zadania jest modelowanie struktury obejmujące:

H (high), M (medium), L( low) - priorytety. Kompletna lista atrybutów oraz metody mogą zostać uściślone podczas następnych zajęć.

Realizując zadanie należy uwzględnić rozszerzone tematy podane na końcu tego opisu. Rozszerzenia mają na celu zwiększenie liczby klas.

Do przeczytania

  1. Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski: UML 2.0 w modelowaniu systemów informatycznych, Helion

Identyfikacja klas

Identyfikacja atrybutów

Wprowadzone atrybuty mają opisywać istotne z punktu widzenia zadań systemu cechy obiektów. Typowy przykład: skórzana tapicerka samochodu jest nieistotna dla systemu rejestracji pojazdów, natomiast może być istotna w systemie obsługującym komis samochodowy.

:!: Uwaga. Nie należy dodawać atrybutów odpowiedzialnych za realizację asocjacji (klucze obce w ERD). Zamiast nich należy wprowadzić role

Identyfikacja metod

W podejściu czysto obiektowym system jest siecią obiektów, które wysyłają do siebie komunikaty. Te komunikaty odpowiadają sygnaturom metod.

Sygnatura metody jest specyfikacją usługi, którą obiekt powinien zapewnić korzystając z informacji o swoim stanie (wartościach atrybutów i obiektach powiązanych) oraz obiektach zewnętrznych przekazanych jako parametry.

Identyfikując metody możemy posługiwać się rozmaitymi rutynowymi przepisami:

Przykład: jeżeli piszemy system obsługi dziekanatu złą metodą jest przetwórzKwerendę() – w domyśle metoda bazy danych – natomiast dobrą: dodajStudenta(), usunStudenta(), zarejestrujStudenta() – w domyśle klasy GrupaStudentów Metoda przetwórzKwerendę() byłaby właściwa, gdybyśmy implementowali silnik bazy danych, a nie konkretny system wykorzystujący istniejące oprogramowanie do obsługi baz danych.

Związki

UML rozróżnia trzy grupy związków

  1. zależność (zazwyczaj zależność kodu)
  2. dziedziczenie
  3. powiązania ( w tym asocjacja , agregacja i kompozycja)

W przypadku analizy dziedziny związek (1) raczej nie jest modelowany. Należy skupić się na związkach (2) i (3).

Dla przypomnienia: dobrym kryterium ustalania poszczególnych związków są frazy języka naturalnego:

dziedziczeniejestStudent jest Osobą
asocjacjaodnosi się do, dotyczy, ma informacje o, używa, korzysta zRecenzja odnosi się do Filmu, Kierowca używa Samochodu, Ocena z Przedmiotu= Ocena dotyczy Przedmiotu
agregacjamaPokój ma Ściany
kompozycjaskłada sięMieszkanie składa się z Pokoi, Kuchni, Łazienki, WC

Definiując powiązania należy koniecznie ustalić ich krotność. Np.: pokój ma 3,* ścian, mieszkanie składa się z 1,* pokoi.

Rozszerzone tematy

Przykładowe rozszerzenia tematów pozwalające na zidentyfikowanie większej liczby klas…

1. Zakupy w sklepie internetowym

Uwzględnij: autoryzację, tworzenie grup (kategorii towarów). Edycję danych. Wystawianie faktur do zamówienia.

23. Dyspozytor taksówek

Dodaj: listę postojów, informacje o tym, że taksówka czeka na postoju lub znajduje się w innej lokalizacji. Kurs klienta „z ulicy” i na podstawie zlecenia. Harmonogram dyżurów. Załóż, że kierowcy mogą dzielić taksówkę. Statystyki dyżurów i kursów.

7. Wypożyczalnia filmów DVD

Dodaj: serwis internetowy umożliwiający

rezerwację filmów wystawianie komentarzy podział filmów na kategorie, edycja kategorii (dla uprawnionego użytkownika, pracownika) historia wypożyczeń rabaty

8. Obsługa rachunku bankowego

Dodaj informację o tym, kto i kiedy wykonuje operacje. Dodaj autoryzację pracownika.

9. System rezerwacji i sprzedaży biletów kinowych

Dodaj serwis internetowy umożliwiający rezerwację. Częściowa lub pełna identyfikacja użytkownika. System przydzielający zarejestrowanym użytkownikom punkty za zakupione bilety. Wyszukiwanie filmów seansów. Klasyfikacja wg. kategorii. Streszczenia, recenzje widzów. Przypomnienia o rezerwacji przez e-mail lub SMS.

10. Biblioteka Dodaj kategorie książek, dodawanie opinii o książce w interncie, rezerwacje, powiadomienia o zbliżającym się terminie zwrotu.