Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych



Podobne dokumenty
Projektowanie logiki aplikacji

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Projektowanie interakcji. Jarosław Kuchta

Diagramy klas. dr Jarosław Skaruz

Rysunek 1: Przykłady graficznej prezentacji klas.

Modelowanie aktywności. Jarosław Kuchta Programowanie Współbieżne

Diagramy stanów i aktywności. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Świat rzeczywisty i jego model

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Diagramy klas. WYKŁAD Piotr Ciskowski

UML w Visual Studio. Michał Ciećwierz

1 Projektowanie systemu informatycznego

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Modelowanie danych, projektowanie systemu informatycznego

Analiza i projektowanie aplikacji Java

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Projektowanie struktury danych

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Modelowanie obiektowe

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

Inżynieria oprogramowania. Część 5: UML Diagramy klas

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Projektowanie warstwy danych

TECHNOLOGIE OBIEKTOWE. Wykład 3

UML. zastosowanie i projektowanie w języku UML

Podstawy projektowania systemów komputerowych

Diagramy czynności Na podstawie UML 2.0 Tutorial

Paweł Kurzawa, Delfina Kongo

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Podstawy programowania III WYKŁAD 4

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Modelowanie obiektowe - Ćw. 3.

Podstawy Programowania Obiektowego

Technologie i usługi internetowe cz. 2

Technologie obiektowe

Systemy informatyczne. Modelowanie danych systemów informatycznych

Oracle PL/SQL. Paweł Rajba.

Analiza i projektowanie obiektowe

Projektowanie BD Diagramy związków encji

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

UML cz. II. UML cz. II 1/38

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

4. Język UML Alfabet

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

WYKŁAD 1. Wprowadzenie do problematyki baz danych

MODELOWANIE OBIEKTOWE Z UML

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Podstawy języka UML UML

Definiowanie własnych klas

Język UML w modelowaniu systemów informatycznych

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

MAS dr. Inż. Mariusz Trzaska

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Charakterystyka oprogramowania obiektowego

Modelowanie i analiza systemów informatycznych Spis treści

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie obiektowe - 1.

Modelowanie i Programowanie Obiektowe

Zaawansowane programowanie w C++ (PCP)

Faza analizy (modelowania) Faza projektowania

Język UML w modelowaniu systemów informatycznych

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Język UML. dr inż. Piotr Szwed C3, pok

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Model przypadków użycia - rola diagramów aktywności Część 2 Wykładowca Dr inż. Zofia Kruczkiewicz

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Modelowanie obiektowe systemów

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla studentów

Podejście obiektowe wprowadzenie

Diagramy czynności tworzenie modelu przypadków użycia Wykład 2

Tworzenie warstwy zasobów projektowanie metodą strukturalną

Języki programowania imperatywnego

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Inżynieria Oprogramowania. UML Schematy klas

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

MODELOWANIE OBIEKTOWE

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Programowanie obiektowe

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Programowanie 2. Język C++. Wykład 3.

Projektowanie bazy danych przykład

Agenda. Cele projektu Wizja projektu Modelowanie biznesowe Wymagania użytkownika Przypadki użycia

Transkrypt:

Modelowanie klas i obiektów Jarosław Kuchta

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 2

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 klasyobiektu, określają operacje (procedury, funkcje), jakie mogą być wykonywane przez obiekt Modelowanie klas i obiektów 3

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 4

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 5

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 6

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 7

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

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

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

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 11

Notacja karty CRC specyfikacje klas diagramy klas Modelowanie klas i obiektów 12

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 13

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 14

Diagram klas ramka klasy nazwa klasy atrybuty nagłówek operacje przedziały 0..1 1..* relacja dziedziczenia relacja agregacji (słabej) relacja agregacji (silnej) asocjacja Modelowanie klas i obiektów 15

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 16

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 17

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

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 19

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

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

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

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

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

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

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

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

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 28

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 29

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 30