Modelowanie klas i obiektów

Slides:



Advertisements
Podobne prezentacje
7. Metody analizy i modelowania strukturalnego SI
Advertisements

Projektowanie Aplikacji Komputerowych
C++ wykład 2 ( ) Klasy i obiekty.
Programowanie obiektowe
Związki w UML.
Modelowanie aktywności
Programowanie obiektowe
Projektowanie systemowe
Diagramy stanów i diagramy aktywności
Modelowanie przypadków użycia
Projektowanie bazy danych
Projektowanie w cyklu życia oprogramowania
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Projektowanie systemów informacyjnych
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Kamil Łącki Dominik Strzelichowski
Implementacja asocjacji
MS Access 2000 Normalizacja Paweł Górczyński 2005.
25/08/ Języki programowania 1 Piotr Górczyński Obiekty i zdarzenia.
Projektowanie Aplikacji Komputerowych
KONKURS WIEDZY O SZTUCE
Szkolenie dla NaviExpert, Wprowadzenie.
Bartosz Walter Prowadzący: Bartosz Walter
Zasady zaliczenia Warunki uzyskania zaliczenia:
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Projektowanie systemów informacyjnych
Unified Modeling Language Wykład 3 Diagram klas
DIAGRAMY KLAS i obiektów
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Hibernate relacje.
Projektowanie - wprowadzenie
Model dziedziny. Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Samochód Osoba Dom Modelowanie.
Model dziedziny.
Projektowanie - klasy i związki
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
UML 2.x Robert Pająk.
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Budowanie tabel i relacji
Dziedziczenie Maciek Mięczakowski
Związki w UML Do zrobienia jest: -Przerysować jak ktoś ma Visio te dwa diagramy tak żeby podmienić tylko nazwy a reszta Taka sama, -I dodać po jednym zdaniu.
Programowanie obiektowe – język C++
1 Analiza obiektowa Peter Coad / Edward Yourdon Analiza obiektowa wydawnictwo: Oficyna Wydawnicza READ ME, Warszawa 1994 dr Waldemar Wolski.
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Wprowadzenie do UML dr hab. inż. Kazimierz Subieta profesor PJWSTK.
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
Kurs języka C++ – wykład 5 ( )
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Diagram klas Kluczowymi elementami są: klasy (class)
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
Diagram obiektów Diagram obiektów ukazuje elementy i związki z diagramu klas w ustalonej chwili. Diagram obiektów jest grafem złożonym z wierzchołków i.
Wstęp do systemów informatycznych Model przypadków użycia.
Wstęp do systemów informatycznych Diagramy klas. Odbiór świata  Myślenie o dziedzinie problemu powinno być możliwie zbliżone do myślenia o systemie 
Modelowanie Danych (ERD) – część 1 (Wspomaganie Modelowania danych)
Asocjacja,Kompozycja,Agregacja
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
InMoST: Innowacyjne metody wytwarzania oprogramowania – II edycja (c) Bartosz Walter Wprowadzenie do obiektowości (1) Plan szkolenia – Część.
Programowanie Obiektowe – Wykład 2
Projektowanie systemów informacyjnych
PGO - Projektowanie i implementacja pierwszych klas
Zapis prezentacji:

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

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

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

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

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

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

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

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

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

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

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

Modelowanie klas i obiektów Notacja karty CRC specyfikacje klas diagramy klas Dokumentacja i Jakość Oprogramowania Modelowanie 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) 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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