1 / 30

Modelowanie klas i obiektów

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

karl
Download Presentation

Modelowanie klas i obiektów

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Modelowanie klas i obiektów

  3. 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 Modelowanie klas i obiektów

  4. 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 Modelowanie klas i obiektów

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

  6. 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 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. Modelowanie klas i obiektów

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

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

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

  11. 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 Modelowanie klas i obiektów

  12. Notacja • karty CRC • specyfikacje klas • diagramy klas 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 Modelowanie klas i obiektów

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

  15. nazwa klasy atrybuty operacje Diagram klas ramka klasy nagłówek przedziały relacja dziedziczenia relacja agregacji (słabej) relacja agregacji (silnej) asocjacja 0..1 1..* 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ę) Modelowanie klas i obiektów

  17. 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 Modelowanie klas i obiektów

  18. Atrybuty pochodne (derived) • /wiek = rok_obecny – rok(data_urodzenia) • +/wiek Modelowanie klas i obiektów

  19. 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 Modelowanie klas i obiektów

  20. Typy atrybutów • Typy ogólne • number • integer • real • Typy szczególne • decimal • longint • double • Typy definiowane Modelowanie klas i obiektów

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

  22. 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 Modelowanie klas i obiektów

  23. 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 Relacja agregacji Modelowanie klas i obiektów

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

  25. Zamówienie +Numer: string+Data: string+Id klienta: ID Klient Sprzedawca Asocjacje wielostronne transakcja Modelowanie klas i obiektów

  26. Pracownik Pracownik Role w asocjacji przełożony podwładny 1 zatrudnienie 0..* Modelowanie klas i obiektów

  27. Pracownik Pracownik Klasa asocjacji przełożony podwładny 1 0..* Zatrudnienie +Data zatrudnienia Modelowanie klas i obiektów

  28. 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 Modelowanie klas i obiektów

  29. Stosowanie wzorców • Księgowość (acounting) • Aktor-rola (actor-role) • Zespół-część (assembly-part) • Kontener-zawartość (container-content) • Kontrakt • Dokument • Zatrudnienie • ... Modelowanie klas i obiektów

  30. 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 Modelowanie klas i obiektów

More Related