Modelowanie klas i obiektów

Download Report

Transcript Modelowanie klas i obiektów

Jarosław Kuchta
Dokumentacja i Jakość Oprogramowania
Modelowanie klas i
obiektów
[email protected]
[email protected]
Podstawowe pojęcia (1)




Byt, encja (entity) – coś co istnieje, posiada własne cechy
i wyodrębnioną tożsamość (identity); bytem może być
rzecz, osoba, organizacja, pojęcie, idea
Obiekt – abstrakcja bytu – byt zdefiniowany przez
zespół istotnych cech
Klasa – abstrakcja obiektu – zespół cech istotnych dla
identyfikacji i charakterystyki bytu
Instancja – obiekt utworzony zgodnie z definicją klasy
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
2
Podstawowe pojęcia (2)


właściwości, atrybuty – cechy informacyjne
klasy-obiektu, przechowują informacje (dane)
właściwe dla każdego obiektu
operacje, metody – cechy funkcjonalne klasyobiektu, określają operacje (procedury, funkcje),
jakie mogą być wykonywane przez obiekt
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
3
Podstawowe pojęcia (3)



powiązanie (link) – semantyczny związek
między dwoma obiektami
relacja – abstrakcja powiązania; relacja
występuje między klasami, powiązanie między
obiektami; powiązanie jest instancją relacji.
asocjacja – relacja oznaczająca, że zmiana stanu
jednego obiektu ma znaczenie dla drugiego
obiektu
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
4
Definiowanie klas





wyodrębnienie bytów z dziedziny problemu
identyfikacja klas
zdefiniowanie atrybutów i operacji klas
określenie struktury klas (relacji)
reorganizacja klas
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
5
Wyodrębnienie bytów





potencjalne byty – rzeczowniki w opisie
dziedziny problemu
nie wszystkie rzeczowniki określają byty
byt musi mieć tożsamość
wyodrębnia się tylko byty istotne w dziedzinie
problemu
trzeba rozwiązać problem synonimów i
niejednoznaczności
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
6
Wyodrębnianie bytów przykład

Klient składa zamówienie przez Internet,
telefonicznie lub pocztą. Przy składaniu
zamówienia klient dowiaduje się o cenie
produktu i spodziewanym terminie realizacji.
Przy składaniu zamówienia telefonicznie
sprzedawca podaje te informacje klientowi
korzystając z cennika i podsystemu
magazynowego, skąd pobiera aktualny stan
każdego towaru.
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
7
Rzeczowniki
(wystąpienia pojedyncze)









klient
zamówienie
Internet
poczta
składanie zamówienia
cena
produkt
termin
realizacja
Dokumentacja i Jakość
Oprogramowania






sprzedawca
informacje
cennik
podsystem magazynowy
stan towaru
towar
Modelowanie klas i obiektów
8
Byty i nie-byty








klient
zamówienie
Internet
poczta
produkt, towar
sprzedawca
cennik
podsystem magazynowy
Dokumentacja i Jakość
Oprogramowania






składanie zamówienia
cena
termin realizacji
informacje
stan towaru
realizacja
Modelowanie klas i obiektów
9
Byty istotne i nieistotne w
dziedzinie problemu






klient
zamówienie
produkt, towar
sprzedawca
cennik
podsystem magazynowy
Dokumentacja i Jakość
Oprogramowania


Internet
poczta
Modelowanie klas i obiektów
10
Identyfikacja klas

odróżnić abstrakcję od instancji
osoba a nie Kowalski
 pojazd a nie Audi


nazwa – rzeczownik w liczbie pojedynczej


klient a nie klienci
nazwa zrozumiała

Wydanie towaru a nie WT
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
11
Notacja



karty CRC
specyfikacje klas
diagramy klas
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
12
Karty Class-ResponsibilityCollaboration
stosowane w starszych metodach obiektowych
 odpowiedzialności (responsibities) – określają co
dana klasa musi wiedzieć (knowing responsibilities) i
co musi wykonywać (doing responsibilities,
capabilities)
 kolaboranci (collaborators) – klasy współdziałające
z daną klasą w wypełnieniu jej
odpowiedzialności
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
13
Specyfikacje klas

atrybuty




operacje





nazwa atrybutu
typ atrybutu
widoczność (prywatna, chroniona, publiczna)
nazwa operacji
lista parametrów
typ wyniku (opcjonalnie)
widoczność
relacje
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
14
Diagram klas
ramka klasy
nazwa klasy
nagłówek
atrybuty
operacje
przedziały
relacja dziedziczenia
relacja agregacji (słabej)
0..1
Dokumentacja i Jakość
Oprogramowania
1..*
relacja agregacji (silnej)
asocjacja
Modelowanie klas i obiektów
15
Dziedziczenie
(generalizacja-specjalizacja)



Każda klasa może mieć przodka.
Przy dziedziczeniu wielokrotnym klasa może mieć kilku
przodków.
Klasa dziedziczy atrybuty i operacje wszystkich swoich
przodków.





klasa ma wszystkie atrybuty swoich przodków
klasa może definiować nowe atrybuty
klasa realizuje te same operacje co jej przodkowie
klasa może definiować nowe operacje
klasa może zmieniać sposób realizacji operacji
(implementację)
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
16
Widoczność cech



prywatna (private) – cecha jest widoczna tylko w
danej klasie
chroniona (protected) – cecha jest widoczna tylko
w danej klasie i w klasach potomnych
publiczna (public) – cecha jest widoczna dla
wszystkich klas
-nazwa atrybutu – atrybut prywatny
#nazwa atrybutu – atrybut chroniony
+nazwa atrybutu – atrybut publiczny
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
17
Atrybuty pochodne (derived)


/wiek = rok_obecny – rok(data_urodzenia)
+/wiek
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
18
Atrybuty wielokrotne

nazwa atrybutu [krotność]
n – dokładnie n wartości
 0..1 – brak wartości lub jedna wartość (atrybut
opcjonalny)
 0..n – brak wartości lub co najwyżej n wartości
 n..m – co najmniej n i co najwyżej m wartości
 0..* – brak wartości lub dowolnie wiele wartości
 n..* – co najmniej n wartości
 * – dowolnie wiele wartości

Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
19
Typy atrybutów

Typy ogólne




Typy szczególne




number
integer
real
decimal
longint
double
Typy definiowane
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
20
Przykład
Osoba
+Nazwisko: string
+Imię: string
+Adres: address
+tel[*]: phonenum
Klient
+Firma: string
Dokumentacja i Jakość
Oprogramowania
Sprzedawca
+Data urodzenia: date
+Miejsce urodzenia: string
+Urząd skarbowy: string
Modelowanie klas i obiektów
21
Stereotypy operacji




konstruktor (constructor) – tworzy nową instancję
destruktor (destructor) – niszczy instancję klasy
zapytanie (query) – podaje stan obiektu, stan
pozostaje niezmieniony
aktualizacja (update) – zmienia stan obiektu
stan obiektu – atrybut lub zespół atrybutów
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
22
Relacja agregacji
Zamówienie
+Numer: string
+Data: string
+Id klienta: ID
Pozycja zamówienia
+Lp: integer
+Id towaru: ID
+Ilość: number
+Jm: string
+Cena: real
+/wartość = Ilość * Cena
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
23
Asocjacje
krotność
krotność
Zamówienie
+Numer: string
+Data: string
+Id klienta: ID
Klient
0..*
1
3składa
nazwa asocjacji
kierunek asocjacji
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
24
Asocjacje wielostronne
Zamówienie
transakcja
Klient
+Numer: string
+Data: string
+Id klienta: ID
Sprzedawca
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
25
Role w asocjacji
Pracownik
przełożony
1
Dokumentacja i Jakość
Oprogramowania
podwładny
zatrudnienie
Pracownik
0..*
Modelowanie klas i obiektów
26
Klasa asocjacji
Pracownik
przełożony
podwładny
1
Pracownik
0..*
Zatrudnienie
+Data zatrudnienia
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
27
Reorganizacja klas




Definiuj klasy wprost wynikające z opisu
dziedziny problemu.
Znajduj wspólne cechy różnych klas.
Twórz klasy uogólniające.
Przenieś cechy wspólne do klasy uogólnionej
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
28
Stosowanie wzorców








Księgowość (acounting)
Aktor-rola (actor-role)
Zespół-część (assembly-part)
Kontener-zawartość (container-content)
Kontrakt
Dokument
Zatrudnienie
...
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
29
Literatura


Booch G, Rumbaugh J, Jacobson I: UML.
Przewodnik użytkownika, WNT, Warszawa 2002
Dennis A., Haley Wixom B., Tegarden D.: System
Analysis & Design. An Object-Oriented Approach
with UML, John Wiley & Sons, Inc., USA 2001
Dokumentacja i Jakość
Oprogramowania
Modelowanie klas i obiektów
30