Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Modelowanie klas i obiektów Jarosław Kuchta Dokumentacja i Jakość Oprogramowania.

Podobne prezentacje


Prezentacja na temat: "Modelowanie klas i obiektów Jarosław Kuchta Dokumentacja i Jakość Oprogramowania."— Zapis prezentacji:

1 Modelowanie klas i obiektów Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

2 2Modelowanie 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 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 Obiekt – abstrakcja bytu – byt zdefiniowany przez zespół istotnych cech Klasa – abstrakcja obiektu – zespół cech istotnych dla identyfikacji i charakterystyki bytu Klasa – abstrakcja obiektu – zespół cech istotnych dla identyfikacji i charakterystyki bytu Instancja – obiekt utworzony zgodnie z definicją klasy Instancja – obiekt utworzony zgodnie z definicją klasy

3 Dokumentacja i Jakość Oprogramowania 3Modelowanie klas i obiektów Podstawowe pojęcia (2) właściwości, atrybuty – cechy informacyjne klasy-obiektu, przechowują informacje (dane) właściwe dla każdego obiektu właściwości, atrybuty – cechy informacyjne klasy-obiektu, przechowują informacje (dane) właściwe dla każdego obiektu operacje, metody – cechy funkcjonalne klasy- obiektu, określają operacje (procedury, funkcje), jakie mogą być wykonywane przez obiekt operacje, metody – cechy funkcjonalne klasy- obiektu, określają operacje (procedury, funkcje), jakie mogą być wykonywane przez obiekt

4 Dokumentacja i Jakość Oprogramowania 4Modelowanie klas i obiektów Podstawowe pojęcia (3) powiązanie (link) – semantyczny związek między dwoma obiektami 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. 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 asocjacja – relacja oznaczająca, że zmiana stanu jednego obiektu ma znaczenie dla drugiego obiektu

5 Dokumentacja i Jakość Oprogramowania 5Modelowanie klas i obiektów Definiowanie klas wyodrębnienie bytów z dziedziny problemu wyodrębnienie bytów z dziedziny problemu identyfikacja klas identyfikacja klas zdefiniowanie atrybutów i operacji klas zdefiniowanie atrybutów i operacji klas określenie struktury klas (relacji) określenie struktury klas (relacji) reorganizacja klas reorganizacja klas

6 Dokumentacja i Jakość Oprogramowania 6Modelowanie klas i obiektów Wyodrębnienie bytów potencjalne byty – rzeczowniki w opisie dziedziny problemu potencjalne byty – rzeczowniki w opisie dziedziny problemu nie wszystkie rzeczowniki określają byty nie wszystkie rzeczowniki określają byty byt musi mieć tożsamość byt musi mieć tożsamość wyodrębnia się tylko byty istotne w dziedzinie problemu wyodrębnia się tylko byty istotne w dziedzinie problemu trzeba rozwiązać problem synonimów i niejednoznaczności trzeba rozwiązać problem synonimów i niejednoznaczności

7 Dokumentacja i Jakość Oprogramowania 7Modelowanie klas i obiektów 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. 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.

8 Dokumentacja i Jakość Oprogramowania 8Modelowanie klas i obiektów Rzeczowniki (wystąpienia pojedyncze) klient klient zamówienie zamówienie Internet Internet poczta poczta składanie zamówienia składanie zamówienia cena cena produkt produkt termin termin realizacja realizacja sprzedawca informacje cennik podsystem magazynowy stan towaru towar

9 Dokumentacja i Jakość Oprogramowania 9Modelowanie klas i obiektów Byty i nie-byty klient klient zamówienie zamówienie Internet Internet poczta poczta produkt, towar produkt, towar sprzedawca sprzedawca cennik cennik podsystem magazynowy podsystem magazynowy składanie zamówienia cena termin realizacji informacje stan towaru realizacja

10 Dokumentacja i Jakość Oprogramowania 10Modelowanie klas i obiektów Byty istotne i nieistotne w dziedzinie problemu klient klient zamówienie zamówienie produkt, towar produkt, towar sprzedawca sprzedawca cennik cennik podsystem magazynowy podsystem magazynowy Internet poczta

11 Dokumentacja i Jakość Oprogramowania 11Modelowanie klas i obiektów Identyfikacja klas odróżnić abstrakcję od instancji odróżnić abstrakcję od instancji osoba a nie Kowalski osoba a nie Kowalski pojazd a nie Audi pojazd a nie Audi nazwa – rzeczownik w liczbie pojedynczej nazwa – rzeczownik w liczbie pojedynczej klient a nie klienci klient a nie klienci nazwa zrozumiała nazwa zrozumiała Wydanie towaru a nie WT Wydanie towaru a nie WT

12 Dokumentacja i Jakość Oprogramowania 12Modelowanie klas i obiektów Notacja karty CRC karty CRC specyfikacje klas specyfikacje klas diagramy klas diagramy klas

13 Dokumentacja i Jakość Oprogramowania 13Modelowanie klas i obiektów Karty Class-Responsibility- Collaboration stosowane w starszych metodach obiektowych odpowiedzialności (responsibities) – określają co dana klasa musi wiedzieć (knowing responsibilities) i co musi wykonywać (doing responsibilities, capabilities) 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 kolaboranci (collaborators) – klasy współdziałające z daną klasą w wypełnieniu jej odpowiedzialności

14 Dokumentacja i Jakość Oprogramowania 14Modelowanie klas i obiektów Specyfikacje klas atrybuty atrybuty nazwa atrybutu nazwa atrybutu typ atrybutu typ atrybutu widoczność (prywatna, chroniona, publiczna) widoczność (prywatna, chroniona, publiczna) operacje operacje nazwa operacji nazwa operacji lista parametrów lista parametrów typ wyniku (opcjonalnie) typ wyniku (opcjonalnie) widoczność widoczność relacje relacje

15 Dokumentacja i Jakość Oprogramowania 15Modelowanie klas i obiektów Diagram klas nazwa klasy atrybuty operacje ramka klasy nagłówek przedziały relacja dziedziczenia relacja agregacji (słabej) relacja agregacji (silnej) asocjacja *

16 Dokumentacja i Jakość Oprogramowania 16Modelowanie klas i obiektów Dziedziczenie (generalizacja-specjalizacja) Każda klasa może mieć przodka. Każda klasa może mieć przodka. Przy dziedziczeniu wielokrotnym klasa może mieć kilku przodków. Przy dziedziczeniu wielokrotnym klasa może mieć kilku przodków. Klasa dziedziczy atrybuty i operacje wszystkich swoich przodków. Klasa dziedziczy atrybuty i operacje wszystkich swoich przodków. klasa ma wszystkie atrybuty swoich przodków klasa ma wszystkie atrybuty swoich przodków klasa może definiować nowe atrybuty klasa może definiować nowe atrybuty klasa realizuje te same operacje co jej przodkowie klasa realizuje te same operacje co jej przodkowie klasa może definiować nowe operacje klasa może definiować nowe operacje klasa może zmieniać sposób realizacji operacji (implementację) klasa może zmieniać sposób realizacji operacji (implementację)

17 Dokumentacja i Jakość Oprogramowania 17Modelowanie klas i obiektów Widoczność cech prywatna (private) – cecha jest widoczna tylko w danej klasie prywatna (private) – cecha jest widoczna tylko w danej klasie chroniona (protected) – cecha jest widoczna tylko w danej klasie i w klasach potomnych chroniona (protected) – cecha jest widoczna tylko w danej klasie i w klasach potomnych publiczna (public) – cecha jest widoczna dla wszystkich klas publiczna (public) – cecha jest widoczna dla wszystkich klas -nazwa atrybutu – atrybut prywatny #nazwa atrybutu – atrybut chroniony +nazwa atrybutu – atrybut publiczny

18 Dokumentacja i Jakość Oprogramowania 18Modelowanie klas i obiektów Atrybuty pochodne (derived) /wiek = rok_obecny – rok(data_urodzenia) /wiek = rok_obecny – rok(data_urodzenia) +/wiek +/wiek

19 Dokumentacja i Jakość Oprogramowania 19Modelowanie klas i obiektów Atrybuty wielokrotne nazwa atrybutu [krotność] nazwa atrybutu [krotność] n – dokładnie n wartości n – dokładnie n wartości 0..1 – brak wartości lub jedna wartość (atrybut opcjonalny) 0..1 – brak wartości lub jedna wartość (atrybut opcjonalny) 0..n – brak wartości lub co najwyżej n wartości 0..n – brak wartości lub co najwyżej n wartości n..m – co najmniej n i co najwyżej m wartości n..m – co najmniej n i co najwyżej m wartości 0..* – brak wartości lub dowolnie wiele wartości 0..* – brak wartości lub dowolnie wiele wartości n..* – co najmniej n wartości n..* – co najmniej n wartości * – dowolnie wiele wartości * – dowolnie wiele wartości

20 Dokumentacja i Jakość Oprogramowania 20Modelowanie klas i obiektów Typy atrybutów Typy ogólne Typy ogólne number number integer integer real real Typy szczególne Typy szczególne decimal decimal longint longint double double Typy definiowane Typy definiowane

21 Dokumentacja i Jakość Oprogramowania 21Modelowanie klas i obiektów Przykład Osoba +Nazwisko: string +Imię: string +Adres: address +tel[*]: phonenum Klient +Firma: string Sprzedawca +Data urodzenia: date +Miejsce urodzenia: string +Urząd skarbowy: string

22 Dokumentacja i Jakość Oprogramowania 22Modelowanie klas i obiektów Stereotypy operacji konstruktor (constructor) – tworzy nową instancję konstruktor (constructor) – tworzy nową instancję destruktor (destructor) – niszczy instancję klasy destruktor (destructor) – niszczy instancję klasy zapytanie (query) – podaje stan obiektu, stan pozostaje niezmieniony zapytanie (query) – podaje stan obiektu, stan pozostaje niezmieniony aktualizacja (update) – zmienia stan obiektu aktualizacja (update) – zmienia stan obiektu stan obiektu – atrybut lub zespół atrybutów

23 Dokumentacja i Jakość Oprogramowania 23Modelowanie klas i obiektów 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

24 Dokumentacja i Jakość Oprogramowania 24Modelowanie klas i obiektów Asocjacje Zamówienie +Numer: string +Data: string +Id klienta: ID Klient 10..* składa krotność nazwa asocjacji kierunek asocjacji

25 Dokumentacja i Jakość Oprogramowania 25Modelowanie klas i obiektów Asocjacje wielostronne Zamówienie +Numer: string +Data: string +Id klienta: ID KlientSprzedawca transakcja

26 Dokumentacja i Jakość Oprogramowania 26Modelowanie klas i obiektów Role w asocjacji Pracownik przełożonypodwładny Pracownik 10..*zatrudnienie

27 Dokumentacja i Jakość Oprogramowania 27Modelowanie klas i obiektów Klasa asocjacji Pracownik przełożonypodwładny Pracownik 10..* Zatrudnienie +Data zatrudnienia

28 Dokumentacja i Jakość Oprogramowania 28Modelowanie klas i obiektów Reorganizacja klas Definiuj klasy wprost wynikające z opisu dziedziny problemu. Definiuj klasy wprost wynikające z 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 uogólnionej Przenieś cechy wspólne do klasy uogólnionej

29 Dokumentacja i Jakość Oprogramowania 29Modelowanie klas i obiektów Stosowanie 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) Kontrakt Kontrakt Dokument Dokument Zatrudnienie Zatrudnienie......

30 Dokumentacja i Jakość Oprogramowania 30Modelowanie klas i obiektów Literatura Booch G, Rumbaugh J, Jacobson I: UML. Przewodnik użytkownika, WNT, Warszawa 2002 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 Dennis A., Haley Wixom B., Tegarden D.: System Analysis & Design. An Object-Oriented Approach with UML, John Wiley & Sons, Inc., USA 2001


Pobierz ppt "Modelowanie klas i obiektów Jarosław Kuchta Dokumentacja i Jakość Oprogramowania."

Podobne prezentacje


Reklamy Google