Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Modelowanie klas i obiektów
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
2
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 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
3
Modelowanie 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 operacje, metody – cechy funkcjonalne klasy-obiektu, określają operacje (procedury, funkcje), jakie mogą być wykonywane przez obiekt Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
4
Modelowanie klas i obiektów
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
5
Modelowanie klas i obiektów
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
6
Modelowanie klas i obiektów
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
7
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
8
Rzeczowniki (wystąpienia pojedyncze)
klient zamówienie Internet poczta składanie zamówienia cena produkt termin realizacja sprzedawca informacje cennik podsystem magazynowy stan towaru towar Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
9
Modelowanie klas i obiektów
Byty i nie-byty klient zamówienie Internet poczta produkt, towar sprzedawca cennik podsystem magazynowy składanie zamówienia cena termin realizacji informacje stan towaru realizacja Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
10
Byty istotne i nieistotne w dziedzinie problemu
klient zamówienie produkt, towar sprzedawca cennik podsystem magazynowy Internet poczta Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
11
Modelowanie klas i obiektów
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
12
Modelowanie klas i obiektów
Notacja karty CRC specyfikacje klas diagramy klas Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
13
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) 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
14
Modelowanie klas i obiektów
Specyfikacje klas atrybuty nazwa atrybutu typ atrybutu widoczność (prywatna, chroniona, publiczna) operacje nazwa operacji lista parametrów typ wyniku (opcjonalnie) widoczność relacje Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
15
Modelowanie klas i obiektów
Diagram klas ramka klasy nagłówek nazwa klasy atrybuty operacje przedziały relacja dziedziczenia relacja agregacji (słabej) relacja agregacji (silnej) 0..1 1..* asocjacja Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
16
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
17
Modelowanie klas i obiektów
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
18
Atrybuty pochodne (derived)
/wiek = rok_obecny – rok(data_urodzenia) +/wiek Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
19
Modelowanie klas i obiektów
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
20
Modelowanie klas i obiektów
Typy atrybutów Typy ogólne number integer real Typy szczególne decimal longint double Typy definiowane Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
21
Modelowanie 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 Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
22
Modelowanie klas i obiektów
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
23
Modelowanie 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 Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
24
Modelowanie klas i obiektów
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
25
Asocjacje wielostronne
Zamówienie +Numer: string +Data: string +Id klienta: ID transakcja Klient Sprzedawca Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
26
Modelowanie klas i obiektów
Role w asocjacji Pracownik Pracownik przełożony podwładny 1 zatrudnienie 0..* Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
27
Modelowanie klas i obiektów
Klasa asocjacji Pracownik Pracownik przełożony podwładny 1 0..* Zatrudnienie +Data zatrudnienia Dokumentacja i Jakość Oprogramowania Modelowanie klas i obiektów
28
Modelowanie klas i obiektów
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
29
Modelowanie klas i obiektów
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
30
Modelowanie klas i obiektów
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.