Modelowanie klas i obiektów

Post on 22-Jan-2016

56 views 0 download

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

Transcript of Modelowanie klas i obiektów

qhta@eti.pg.gda.pl

J.Kuchta@eti.pg.gda.pl

Modelowanie Modelowanie klas i obiektówklas i obiektów

Jarosław KuchtaJarosław Kuchta

Dokumentacja i Jakość Dokumentacja i Jakość OprogramowaniaOprogramowania

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

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

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

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

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

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.

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

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

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

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

Dokumentacja i Jakość Oprogramowania

12Modelowanie klas i obiektów

NotacjaNotacja

karty CRCkarty CRC specyfikacje klasspecyfikacje klas diagramy klasdiagramy klas

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

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

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..*

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ę)

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

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

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

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

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

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

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

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

Dokumentacja i Jakość Oprogramowania

25Modelowanie klas i obiektów

Asocjacje Asocjacje wielostronnewielostronne

Zamówienie

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

Klient

Sprzedawca

transakcja

Dokumentacja i Jakość Oprogramowania

26Modelowanie klas i obiektów

Role w asocjacjiRole w asocjacji

Pracownikprzełożony podwładny

Pracownik

1 0..*zatrudnienie

Dokumentacja i Jakość Oprogramowania

27Modelowanie klas i obiektów

Klasa asocjacjiKlasa asocjacji

Pracownikprzełożony podwładny

Pracownik

1 0..*

Zatrudnienie

+Data zatrudnienia

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

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 ......

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