30
[email protected] [email protected] Modelowanie klas Modelowanie klas i obiektów i obiektów Jarosław Kuchta Jarosław Kuchta Dokumentacja i Jakość Dokumentacja i Jakość Oprogramowania Oprogramowania

Modelowanie klas i obiektów

  • Upload
    karl

  • View
    55

  • Download
    0

Embed Size (px)

DESCRIPTION

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Modelowanie klas i obiektów. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Modelowanie klas i obiektów

[email protected]

[email protected]

Modelowanie Modelowanie klas i obiektówklas i obiektów

Jarosław KuchtaJarosław Kuchta

Dokumentacja i Jakość Dokumentacja i Jakość OprogramowaniaOprogramowania

Page 2: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

2Modelowanie klas i obiektów

Podstawowe pojęcia Podstawowe pojęcia (1)(1)

BytByt, encja (, encja (entityentity) – coś co istnieje, posiada ) – coś co istnieje, posiada własne cechy i wyodrębnioną tożsamość własne cechy i wyodrębnioną tożsamość ((identityidentity); bytem może być rzecz, osoba, ); bytem może być rzecz, osoba, organizacja, pojęcie, ideaorganizacja, pojęcie, idea

ObiektObiekt – abstrakcja bytu – byt zdefiniowany – abstrakcja bytu – byt zdefiniowany przez zespół istotnych cechprzez zespół istotnych cech

KlasaKlasa – abstrakcja obiektu – zespół cech – abstrakcja obiektu – zespół cech istotnych dla identyfikacji i charakterystyki istotnych dla identyfikacji i charakterystyki bytubytu

InstancjaInstancja – obiekt utworzony zgodnie z – obiekt utworzony zgodnie z definicją klasydefinicją klasy

Page 3: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

3Modelowanie klas i obiektów

Podstawowe pojęcia Podstawowe pojęcia (2)(2)

właściwości, atrybutywłaściwości, atrybuty – cechy – cechy informacyjne klasy-obiektu, informacyjne klasy-obiektu, przechowują informacje (dane) przechowują informacje (dane) właściwe dla każdego obiektuwłaściwe dla każdego obiektu

operacje, metodyoperacje, metody – cechy – cechy funkcjonalne klasy-obiektu, określają funkcjonalne klasy-obiektu, określają operacje (procedury, funkcje), jakie operacje (procedury, funkcje), jakie mogą być wykonywane przez obiektmogą być wykonywane przez obiekt

Page 4: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

4Modelowanie klas i obiektów

Podstawowe pojęcia Podstawowe pojęcia (3)(3)

powiązaniepowiązanie ( (linklink) – semantyczny ) – semantyczny związek między dwoma obiektamizwiązek między dwoma obiektami

relacjarelacja – abstrakcja powiązania; – abstrakcja powiązania; relacja występuje między klasami, relacja występuje między klasami, powiązanie między obiektami; powiązanie między obiektami; powiązanie jest instancją relacji.powiązanie jest instancją relacji.

asocjacjaasocjacja – relacja oznaczająca, że – relacja oznaczająca, że zmiana stanu jednego obiektu ma zmiana stanu jednego obiektu ma znaczenie dla drugiego obiektuznaczenie dla drugiego obiektu

Page 5: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

5Modelowanie klas i obiektów

Definiowanie klasDefiniowanie klas

wyodrębnienie bytów z dziedziny wyodrębnienie bytów z dziedziny problemuproblemu

identyfikacja klasidentyfikacja klas zdefiniowanie atrybutów i operacji zdefiniowanie atrybutów i operacji

klasklas określenie struktury klas (relacji)określenie struktury klas (relacji) reorganizacja klasreorganizacja klas

Page 6: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

6Modelowanie klas i obiektów

Wyodrębnienie bytówWyodrębnienie bytów

potencjalne byty – rzeczowniki w potencjalne byty – rzeczowniki w opisie dziedziny problemuopisie dziedziny problemu

nie wszystkie rzeczowniki określają nie wszystkie rzeczowniki określają bytybyty

byt musi mieć tożsamośćbyt musi mieć tożsamość wyodrębnia się tylko byty istotne w wyodrębnia się tylko byty istotne w

dziedzinie problemudziedzinie problemu trzeba rozwiązać problem synonimów trzeba rozwiązać problem synonimów

i niejednoznacznościi niejednoznaczności

Page 7: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

7Modelowanie klas i obiektów

Wyodrębnianie bytów Wyodrębnianie bytów - przykład- przykład

Klient składa zamówienie przez Internet, Klient składa zamówienie przez Internet, telefonicznie lub pocztą. Przy składaniu telefonicznie lub pocztą. Przy składaniu zamówienia klient dowiaduje się o cenie zamówienia klient dowiaduje się o cenie produktu i spodziewanym terminie produktu i spodziewanym terminie realizacji. Przy składaniu zamówienia realizacji. Przy składaniu zamówienia telefonicznie sprzedawca podaje te telefonicznie sprzedawca podaje te informacje klientowi korzystając z informacje klientowi korzystając z cennika i podsystemu magazynowego, cennika i podsystemu magazynowego, skąd pobiera aktualny stan każdego skąd pobiera aktualny stan każdego towaru. towaru.

Page 8: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

8Modelowanie klas i obiektów

Rzeczowniki Rzeczowniki (wystąpienia (wystąpienia pojedyncze)pojedyncze) klient klient

zamówienie zamówienie InternetInternet pocztapoczta składanie składanie

zamówieniazamówienia cenacena produkt produkt termin termin realizacjarealizacja

sprzedawca sprzedawca informacje informacje cennikcennik podsystem podsystem

magazynowymagazynowy stan towarustan towaru towartowar

Page 9: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

9Modelowanie klas i obiektów

Byty i nie-bytyByty i nie-byty

klientklient zamówienie zamówienie InternetInternet pocztapoczta produkt, towarprodukt, towar sprzedawca sprzedawca cennikcennik podsystem podsystem

magazynowymagazynowy

składanie składanie zamówieniazamówienia

cenacena termin realizacjitermin realizacji informacjeinformacje stan towarustan towaru realizacjarealizacja

Page 10: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

10Modelowanie klas i obiektów

Byty istotne i nieistotne Byty istotne i nieistotne w dziedzinie problemuw dziedzinie problemu

klientklient zamówienie zamówienie produkt, towarprodukt, towar sprzedawca sprzedawca cennikcennik podsystem podsystem

magazynowymagazynowy

InternetInternet pocztapoczta

Page 11: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

11Modelowanie klas i obiektów

Identyfikacja klasIdentyfikacja klas

odróżnić abstrakcję od instancjiodróżnić abstrakcję od instancji osoba a nie Kowalskiosoba a nie Kowalski pojazd a nie Audipojazd a nie Audi

nazwa – rzeczownik w liczbie nazwa – rzeczownik w liczbie pojedynczejpojedynczej klient a nie klienciklient a nie klienci

nazwa zrozumiałanazwa zrozumiała Wydanie towaru a nie WTWydanie towaru a nie WT

Page 12: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

12Modelowanie klas i obiektów

NotacjaNotacja

karty CRCkarty CRC specyfikacje klasspecyfikacje klas diagramy klasdiagramy klas

Page 13: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

13Modelowanie klas i obiektów

Karty Class-Karty Class-Responsibility-Responsibility-CollaborationCollaboration

stosowane w starszych metodach stosowane w starszych metodach obiektowychobiektowych

odpowiedzialności (odpowiedzialności (responsibitiesresponsibities) – ) – określają co dana klasa musi wiedzieć określają co dana klasa musi wiedzieć ((knowing responsibilitiesknowing responsibilities) i co musi ) i co musi wykonywać (wykonywać (doing responsibilities, doing responsibilities, capabilitiescapabilities))

kolaboranci (kolaboranci (collaboratorscollaborators) – klasy ) – klasy współdziałające z daną klasą w współdziałające z daną klasą w wypełnieniu jej odpowiedzialnościwypełnieniu jej odpowiedzialności

Page 14: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

14Modelowanie klas i obiektów

Specyfikacje klasSpecyfikacje klas

atrybutyatrybuty nazwa atrybutunazwa atrybutu typ atrybututyp atrybutu widoczność (prywatna, chroniona, publiczna)widoczność (prywatna, chroniona, publiczna)

operacjeoperacje nazwa operacjinazwa operacji lista parametrówlista parametrów typ wyniku (opcjonalnie)typ wyniku (opcjonalnie) widocznośćwidoczność

relacjerelacje

Page 15: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

15Modelowanie klas i obiektów

Diagram klasDiagram klas

nazwa klasy

atrybuty

operacje

ramka klasy

nagłówek

przedziały

relacja dziedziczeniarelacja agregacji (słabej)

relacja agregacji (silnej)asocjacja0..1 1..*

Page 16: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

16Modelowanie klas i obiektów

Dziedziczenie Dziedziczenie (generalizacja-(generalizacja-specjalizacja)specjalizacja) Każda klasa może mieć przodka.Każda klasa może mieć przodka.

Przy dziedziczeniu wielokrotnym klasa Przy dziedziczeniu wielokrotnym klasa może mieć kilku przodków.może mieć kilku przodków.

Klasa dziedziczy atrybuty i operacje Klasa dziedziczy atrybuty i operacje wszystkich swoich przodków.wszystkich swoich przodków. klasa ma wszystkie atrybuty swoich przodkówklasa ma wszystkie atrybuty swoich przodków klasa może definiować nowe atrybutyklasa może definiować nowe atrybuty klasa realizuje te same operacje co jej klasa realizuje te same operacje co jej

przodkowieprzodkowie klasa może definiować nowe operacjeklasa może definiować nowe operacje klasa może zmieniać sposób realizacji operacji klasa może zmieniać sposób realizacji operacji

(implementację)(implementację)

Page 17: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

17Modelowanie klas i obiektów

Widoczność cechWidoczność cech prywatna (prywatna (privateprivate) – cecha jest widoczna ) – cecha jest widoczna

tylko w danej klasietylko w danej klasie chroniona (chroniona (protectedprotected) – cecha jest ) – cecha jest

widoczna tylko w danej klasie i w klasach widoczna tylko w danej klasie i w klasach potomnychpotomnych

publiczna (publiczna (publicpublic) – cecha jest widoczna ) – cecha jest widoczna dla wszystkich klasdla wszystkich klas

-nazwa atrybutu – atrybut prywatny

#nazwa atrybutu – atrybut chroniony

+nazwa atrybutu – atrybut publiczny

Page 18: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

18Modelowanie klas i obiektów

Atrybuty pochodne Atrybuty pochodne ((derivedderived))

/wiek = rok_obecny – /wiek = rok_obecny – rok(data_urodzenia)rok(data_urodzenia)

+/wiek+/wiek

Page 19: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

19Modelowanie klas i obiektów

Atrybuty wielokrotneAtrybuty wielokrotne

nazwa atrybutu [krotność]nazwa atrybutu [krotność] n – dokładnie n – dokładnie nn wartości wartości 0..1 – brak wartości lub jedna wartość 0..1 – brak wartości lub jedna wartość

(atrybut opcjonalny)(atrybut opcjonalny) 0..n – brak wartości lub co najwyżej 0..n – brak wartości lub co najwyżej nn wartości wartości n..m – co najmniej n..m – co najmniej n n i co najwyżej i co najwyżej m m wartościwartości 0..* – brak wartości lub dowolnie wiele 0..* – brak wartości lub dowolnie wiele

wartościwartości n..* – co najmniej n..* – co najmniej nn wartości wartości * – dowolnie wiele wartości* – dowolnie wiele wartości

Page 20: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

20Modelowanie klas i obiektów

Typy atrybutówTypy atrybutów

Typy ogólneTypy ogólne numbernumber integerinteger realreal

Typy szczególneTypy szczególne decimaldecimal longintlongint doubledouble

Typy definiowaneTypy definiowane

Page 21: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

21Modelowanie klas i obiektów

PrzykładPrzykład

Osoba

+Nazwisko: string+Imię: string+Adres: address+tel[*]: phonenum

Klient

+Firma: string

Sprzedawca

+Data urodzenia: date+Miejsce urodzenia: string+Urząd skarbowy: string

Page 22: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

22Modelowanie klas i obiektów

Stereotypy operacjiStereotypy operacji konstruktor (konstruktor (constructorconstructor) – tworzy nową ) – tworzy nową

instancjęinstancję destruktor (destruktor (destructordestructor) – niszczy instancję ) – niszczy instancję

klasyklasy zapytanie (zapytanie (queryquery) – podaje stan obiektu, stan ) – podaje stan obiektu, stan

pozostaje niezmienionypozostaje niezmieniony aktualizacja (aktualizacja (updateupdate) – zmienia stan obiektu) – zmienia stan obiektu

stan obiektu – atrybut lub zespół atrybutów

Page 23: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

23Modelowanie klas i obiektów

Relacja agregacjiRelacja 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

Page 24: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

24Modelowanie klas i obiektów

AsocjacjeAsocjacje

Zamówienie

+Numer: string+Data: string+Id klienta: ID

Klient10..*

składa

krotnośćkrotność

nazwa asocjacji

kierunek asocjacji

Page 25: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

25Modelowanie klas i obiektów

Asocjacje Asocjacje wielostronnewielostronne

Zamówienie

+Numer: string+Data: string+Id klienta: ID

Klient

Sprzedawca

transakcja

Page 26: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

26Modelowanie klas i obiektów

Role w asocjacjiRole w asocjacji

Pracownikprzełożony podwładny

Pracownik

1 0..*zatrudnienie

Page 27: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

27Modelowanie klas i obiektów

Klasa asocjacjiKlasa asocjacji

Pracownikprzełożony podwładny

Pracownik

1 0..*

Zatrudnienie

+Data zatrudnienia

Page 28: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

28Modelowanie klas i obiektów

Reorganizacja klasReorganizacja klas

Definiuj klasy wprost wynikające z Definiuj klasy wprost wynikające z opisu dziedziny problemu.opisu dziedziny problemu.

Znajduj wspólne cechy różnych klas.Znajduj wspólne cechy różnych klas. Twórz klasy uogólniające.Twórz klasy uogólniające. Przenieś cechy wspólne do klasy Przenieś cechy wspólne do klasy

uogólnionejuogólnionej

Page 29: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

29Modelowanie klas i obiektów

Stosowanie wzorcówStosowanie wzorców

Księgowość (acounting)Księgowość (acounting) Aktor-rola (actor-role)Aktor-rola (actor-role) Zespół-część (assembly-part)Zespół-część (assembly-part) Kontener-zawartość (container-content)Kontener-zawartość (container-content) KontraktKontrakt DokumentDokument ZatrudnienieZatrudnienie ......

Page 30: Modelowanie klas i obiektów

Dokumentacja i Jakość Oprogramowania

30Modelowanie klas i obiektów

LiteraturaLiteratura

Booch G, Rumbaugh J, Jacobson I: Booch G, Rumbaugh J, Jacobson I: UML. Przewodnik użytkownikaUML. Przewodnik użytkownika, , WNT, Warszawa 2002WNT, Warszawa 2002

Dennis A., Haley Wixom B., Dennis A., Haley Wixom B., Tegarden D.: Tegarden D.: System Analysis & System Analysis & Design. An Object-Oriented Design. An Object-Oriented Approach with UMLApproach with UML, John Wiley & , John Wiley & Sons, Inc., USA 2001Sons, Inc., USA 2001