Modelowanie klas i ich zwi zków diagram klas



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

Tworzenie modelu obiektowego

Kompozycja i dziedziczenie klas

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

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

Wskazówki dotyczące przygotowania danych do wydruku suplementu

Harmonogramowanie projektów Zarządzanie czasem

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Archiwum Prac Dyplomowych

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)

Integracja systemów, integracja procesów

KLAUZULE ARBITRAŻOWE

Modelowanie obiektowe

API transakcyjne BitMarket.pl

PERSON Kraków

Projektowanie bazy danych

Witamy w Bibliotece Wydziału Nauk Politycznych i Dziennikarstwa. Przygotowała mgr Ewelina Pilarska

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Edycja geometrii w Solid Edge ST

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1

Warunki Oferty PrOmOcyjnej usługi z ulgą

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Podstawy modelowania w j zyku UML

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

System obsługi pacjenta w ośrodku zdrowia

Aplikacje internetowe i rozproszone - laboratorium

Wartości domyślne, szablony funkcji i klas

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Strona główna góra

Rysunek 1: Przykłady graficznej prezentacji klas.

Projektowanie systemów informacyjnych: język UML

... Podstawa prawna: Ustawa z dnia 12 stycznia 1991 r. o podatkach i opłatach lokalnych (Dz. U. z 2014 r. poz. 849)

Rudniki, dnia r. Zamawiający: PPHU Drewnostyl Zenon Błaszak Rudniki Opalenica NIP ZAPYTANIE OFERTOWE

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Informatyka, I stopień. Programowanie (PRO300.1)

DFD Diagram przepływu danych (Data Flow Diagram) dr Tomasz Ordysiński

SZABLONY KOMUNIKATÓW SPIS TREŚCI

InsERT GT Własne COM 1.0

Podstawy programowania III WYKŁAD 4

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Informacje o omawianym programie. Założenia programu omawianego w przykładzie

System Zarządzania Relacyjną Bazą Danych (SZRBD) Microsoft Access 2010

WEBML I UML JAKO NARZĘDZIA PROJEKTOWANIA APLIKACJI INTERNETOWYCH

Diagramy klas. dr Jarosław Skaruz

Praca na wielu bazach danych część 2. (Wersja 8.1)

REGULAMIN PROMOCJI: BĄDŹ GOTÓW NA VAT! WYBIERZ SYMFONIĘ

Roczne zeznanie podatkowe 2015

DOKUMENT ANALIZY BIZNESOWEJ DLA PROJEKTU NAZWA PROJEKTU

Systemy mikroprocesorowe - projekt

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

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

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

enova Workflow Obieg faktury kosztowej

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Oprac. wrzesień 2015

PROJEKTOWANIE SYSTEMÓW LOGISTYCZNYCH PROJEKT SYSTEMY LOGISTYCZNE PODSTAWY TEORETYCZNE

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Zakupy poniżej euro Zamówienia w procedurze krajowej i unijnej

Ogłoszenie o zwołaniu Zwyczajnego Walnego Zgromadzenia IDM Spółka Akcyjna w upadłości układowej z siedzibą w Krakowie na dzień 30 czerwca 2015 roku

Sieci komputerowe cel

DN-1 DEKLARACJA NA PODATEK OD NIERUCHOMOŚCI 2. ROK

UMOWA POWIERZENIA PRZETWARZANIA DANYCH OSOBOWYCH nr.. zawarta w dniu. zwana dalej Umową powierzenia

art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.),

SIECI KOMPUTEROWE I BAZY DANYCH

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Wniosek o rejestrację podmiotu w Krajowym Rejestrze Sądowym 1) FUNDACJA, STOWARZYSZENIE, INNA ORGANIZACJA SPOŁECZNA LUB ZAWODOWA

TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ

Niniejszy dokument obejmuje: 1. Szablon Umowy zintegrowanej o rachunek ilokata, 2. Szablon Umowy zintegrowanej o rachunek ilokata oraz o rachunek

POLITYKA GWARANCJI GRUPY TELE-FONIKA KABLE. 1. Definicje

PFR Wstępnie wypełnione zeznanie podatkowe. PIT-37 i PIT-38 za rok 2015

Regulamin Usługi Certyfikat SSL. 1 Postanowienia ogólne

1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Centrum Informatyki "ZETO" S.A. w Białymstoku. Instrukcja użytkownika dla urzędników nadających uprawnienia i ograniczenia podmiotom w ST CEIDG

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Kancelaris - Zmiany w wersji 2.50

Wzorce projektowe strukturalne cz. 1

Zarządzanie Zasobami by CTI. Instrukcja

E-faktura PKP Energetyka

Uchwała z dnia 20 października 2011 r., III CZP 53/11

UCHWAŁA NR... RADY MIASTA RYBNIKA. z dnia 19 listopada 2015 r. w sprawie wzorów formularzy na podatek rolny

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

USTAWA. z dnia 26 czerwca 1974 r. Kodeks pracy. 1) (tekst jednolity)

DE-WZP JJ.3 Warszawa,

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Instrukcja użytkownika systemu MOBEVO

VinCent Office. Moduł Drukarki Fiskalnej

REGULAMIN KONTROLI ZARZĄDCZEJ W MIEJSKO-GMINNYM OŚRODKU POMOCY SPOŁECZNEJ W TOLKMICKU. Postanowienia ogólne

Zalecenia dotyczące prawidłowego wypełniania weksla in blanco oraz deklaracji wekslowej

Diagramy klas. WYKŁAD Piotr Ciskowski

Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im. Komisji Edukacji Narodowej w Jaworze

Transkrypt:

Modelowanie klas i ich zwi zków diagram klas Dr in.. Marek MI OSZ

Plan Klasa notacja w UMLu Zwi zki typy, notacja Diagram klas Interfejs Z o one problemy modelowania klas i ich zwi zków Generowanie programowej realizacji klas 2/60

Doj cie do klasy Abstrakcja Ksi ka Formalizacja Ksiazka nr_inwentarzowy : int autor : string tytul : char wydaw : Wydawnictwo miasto : char rokwydania : int = 2002 zarejestruj() wykresl_zrejestru() sprawdzczyjest() sprawdzliste() wypozyczksiazke() sprawdz_ukogo() 3/60

Jak doj do klas? Analiza lingwistyczna wymaga u ytkownika: Wyszukanie rzeczowników (kandydaci na klasy lub atrybuty) Wyszukanie czasowni ków (kandydaci na zachowanie, metody) Wyró nienie u ytkowników aktorzy Wywiady z ekspertami Ramy formalne Scenariusze S owniki w dziedzinie problemowej 4/60

Analiza lingwistyczna - przyk ad W bibliotece znajduj si zbiory ksi ek umieszczone na pó kach rega ów oraz zbiory czasopism, po czonych w roczniki. Studenci mog wypo ycza ycza ksi ki wypisuj c stosowny dokument zwany rewersem. Studenci nie mog wypo ycza ycza ksi ek znajduj cych si na li cie ogranicze. Czasopisma mog by czytane przez studenta w czytelni. 5/60

Klasy w systemie bibliotecznym Biblioteka Czytelnia Ksi ka Student Rewers Czasopismo Rega Pó ka 6/60

Klasy notacja w UML Ksi ka Atrybuty Metody Klas opisuj cztery sekcje: nazwa, atrybuty, metody, dokumentacja (np. zakres zobowi za ) Na diagramie ró ne przedstawienie Ksi ka Ksiazka nr_inwentarzowy : int autor : string tytul : char wydaw : Wydawnictwo miasto : char rokwydania : int = 2002 Ksiazka nr_inwentarzowy : int autor : string tytul : char wydaw : Wydawnictwo miasto : char rokwydania : int = 2002 <<entity>> Ksiazka nr_inwentarzowy : int <<datatype>> autor : string tytul : char wydaw : Wydawnictwo miasto : char rokwydania : int = 2002 zarejestruj() wykresl_zrejestru() sprawdzczyjest() sprawdzliste() wypozyczksiazke() sprawdz_ukogo() <<ewidencja>> zarejestruj() : bool <<ewidencja>> wykresl_zrejestru() : bool <<pytanie>> sprawdzczyjest() : bool <<pytanie>> sprawdzliste() <<ruch>> wypozyczksiazke(id_studenta : char) <<pytanie>> sprawdz_ukogo() 7/60

W asno ci i typy klas Dziedziczenie - tworzy drzewo klas (generalizacja-specjalizacja) Metaklasa (klasa abstrakcyjna) jest wzorcem innych klas, po czonych operacj dziedziczenia Klasa konkretna stanowi wzorzec dla obiektów Ekstensja klasy zbiór wszystkich wyst pie klasy (obiektów) 8/60

Metaklasa a klasa konkretna Nadklasa OsobaPrawna OsobaFizyczna Firma XYZ : Firma : OsobaPrawna 9/60

Atrybuty klasy Nazwa (identyfikator) Typ (zale ny od j zyka) Stereotyp Warto pocz tkowa Dost pno (lista eksportowa): Publiczne (+) Chronione (#) Prywatne (-) Implementacyjne 10/60

Typy atrybutów Etapy: Analiza Projektowanie Proste predefiniowane w danym j zyku lub dodefiniowane na etapie modelowania Z o one definiowane jako klasy ze stereotypem np.<<typedef>>, <<struct>>, <<enum>> itp. <<struct>> Adres kodpocztowy : char miasto : char ulica numer UML rozszerzalno systemu typów 11/60

Typy jako klasy - przyk ady Wektor x : float y : float z : float Punkt xpozycja : int ypozycja : int kolor : RGB RGB kolorr : byte kolorg : byte kolorb : byte Typy wyliczeniowe StanKsiazki wy pozyczona wres tauracj i wy slanadoinnejbi bliot eki zniszczona skradziona Z o one one struktury Stos pop() : float push(cos : float) 12/60

Rodzaje typów Proste, atomowe (character, integer, float, string, boolean, bitmap,...) Zapisy, rekordy (struct {nazwa:string; waga:float;}) Kolekcje: zbiory (sets) nieuporz dkowane kolekcje unikalnych danych: set of bitmap, set of struct {nazwa:string; waga:float;} wielozbiory (bags) nieuporz dkowane kolekcje powtarzalnych danych : zbiory z powtórzeniami sekwencje (sequences): uporz dkowane wielozbiory tablice (arrays)- sekwencje z dost pem przez indeks: array of integer, array[5..30] of set of bitmap 13/60

Dost pno atrybutów Chronione (Protected) Prywatne (Private) Dost pno : klasa, podklasa, klasa zaprzyja niona (w zale no ci od j zyka) Dost pno : klasa, klasa zaprzyja niona (w zale no ci od j zyka) Uwaga na ograniczenia w dost pie przy dziedziczeniu 14/60

Inne w a ciwo ci atrybutów Ksiazka tytul : string autorzy rokwydania : int czywypozyczona : bool ktowypozyczyl : Student / wiekksiazki : int nazwabiblioteki : string Derived (obliczany na podstawie innych atrybutów) wypozycz(student : Student) : bool zwroc(student : Student) : bool obliczwiekksiazki() : int Static (identyczna warto dla wszystkich obiektów klasy) 15/60

Po co atrybut y obliczane? Brak czasu na ka dorazowe obliczanie, kiedy s potrzebne (np. wyszukani e min z du ej liczby obiektów) Wybalansowanie pomi dzy szybko ci wykonania a zaj to ci pami ci operacyjnej (oszcz dno czasowa) 16/60

Jak doj do atrybutów? W a ciwo ci, statyczne charakter ystyki zidentyfikowanych klas Dane, które zawieraj, przechowuj klasy Rzeczowniki, które nie zosta y klasami Dane istotne dla SI Dane zwi zane z obiektem Dane, które nie s zachowaniem 17/60

Specyfikacja i rodzaj metod Metoda mo e mie argumenty (oprócz atrybutów obiektu, które s dost pne z definicji ) oraz typ wyniku metody Stopie szczegó owo ci specyfikacji metod zale y od etapy projektowania Typy metod: Metoda abstrakcyjna metoda metaklasy Metoda obiektu operuje na atrybutach danego obiektu Metoda klasy operuje na ekstensji klasy, posiada dost p do wszystkich obiekt ów danej klasy 18/60

Metody - przyk ady tytul : string autorzy rokwydania : int czywypozyczona : bool ktow ypozyczyl : Student / wiekksiazki : int nazwabiblioteki : string Ksiazka wypozycz(student : Student, datawypoz : string) : bool zwroc(student : Student, datazwrotu : string) : bool obliczwiekksiazki() : int obliczwiekksiazki(rokwydania : int) : int najstarszaksia ka() Metoda klasy 19/60

Metoda abstrakc yjna OsobaPrawna <<abstract>> obliczpodatekmiesieczny() : float OsobaFizyczna <<static>> obliczpodatekmiesieczny() Firma <<static>> obliczpodatekmiesieczny() Przes anianie metod 20/60

Jak doj do metod? Metoda to operacj a realizowana przez obiekt w ramach jego zakresu odpowiedzialno ci Abstrakcja czego, co mo na zrobi z ka dym obiektem klasy Nazwy metod Czasowniki z analizy dziedziny Wykorzystanie obiektu z perspektywy u ytkownika 21/60

Inna droga do metod : Student : Ksiazka sprawdzczyjest( ) : Rewers niemaksi ki wypozyczksiazke(char) wystawrewers Diagramy sekwencji Metoda Komunikat Ksiazka sprawdzczyjest() : bool wypozyczksiazka(tytul : char) : bool 22/60

Nazewnictwo - notacja Nazwa klasy rzeczownik z du ej litery Atrybut rzeczownik z ma ej litery (pozosta e z du ej lub z _ jako separatorem) Metoda czasownik z ma ej litery (pozosta e z du ej lub z _ jako separatorem) Ksiazka nr_inwentarzowy : int autor : string tytul : char wydaw : W ydawnictwo miasto : char rokwydania : int = 2002 zarejestruj() wykresl_zrejestru() sprawdzczyjest() sprawdzliste() wypozyczksiazke() sprawdz_ukogo() 23/60

Zwi zki Klasy s powi zane ze sob ró nymi typami zwi zków Typy zwi zków: zale no uogólnienie (generalizacja) powi zanie (asocjacja) 24/60

Zale no Zale no zwi zek u ycia; zmiany w jednej klasie mog mie wp yw na inn ale niekoniecznie na odwrót Ksi ka Tytu : string wydawcaks : Wydawca rokwyd : int Wydawca nazwawyda : string adres Grot skierowany w stron klasy, od której co zale y 25/60

Uogólnienie Zwi zek generalizacji: klas ogólnaszczegó owa Problem dziedziczenia atrybutów i metod (dost pno -lista eksportowa, przes anianie) Korze klasa bez klas nadrz dnych Li klas bez klas potomk ów 26/60

Powi zanie - asocjacja Zwi zek strukturalny, powi zanie logiczne obiektów z jednej klasy z obiektami z innej (w szczególno ci z tej samej klasy) Powi zania pomi dzy: obiektami tej samej klasy (jednoargumetowe) dwoma klasami (dwuargumentowe) wieloma klasami (wieloargumentowe, n-arne) 27/60

Jak doj do asocjacji? Czasowniki w dziedzinie problemowej (np. wypo yczy, zwróci, jest egzemplarzem) Asocjacja czy dwie klasy je li: jedna klasa do drugiej wys y a komunikat obiekt jednej klasy two rzy obiekt innej klasy obiekt jednej klasy posiada atrybut b d cy obiektem (lub kolekcj ) innej klasy obiekt jednej klasy otrzymuje komunikat z argumentem-obiektem innej klasy Obiekt jednej klasy musi mie dost p do danych pewnego obiektu innej klasy asocjacja 28/60

Powi zanie - w a ciwo ci Nazwa Role Liczebno Agregacja Kompozycja 29/60

Nazwa asocjacji (powi zania) Istota zwi zku Jedna dla zwi zku istotny kierunek czytania zwi zku Nie jest konieczna; szczeg ólnie gdy jest oczywista Ksi ka Tytu : string wydawcaks : Wydawca rokwyd : int wypo ycza Student nazwisko : string imi : string specjalnosc : string rok : char 30/60

Role klas w asocjacji Uszczegó owienie roli klasy Opcjonalno Nazwa Ksi ka Tytu : string wydawcaks : Wydawca rokwyd : int #przedmiot wypo ycza #klient Student nazwisko : string imi : string specjalnosc : st ring rok : char Firma #pracodawc a pracuje dla #pracownik Osoba 31/60

Liczebno (krotno ) asocjacji Liczebno obiektów jednej klasy zwi zana z obiektem innej klasy Klient 1 posiada 0..n Faktura Oznaczenia: 0 0..1 0..n 1 1..n n 5..n 5..9 0..6 32/60

Asocjacja jednoargumentow a +szef 0..1 Pracownik +kupuj cy 1 Osoba +podw adny 1..n 1 transakcja +sprzedaj cy 33/60

Role i liczebno Pracownik 0..n jest cz onkiem 0..n Komitet jest przewodnicz cym 1 0..n 34/60

Asocjacje skierow ane Kierunek nawigacji (strza ka) Nawigacja (przej cie) mo liwe jest zgodnie z kierunkiem Klient (bez grotu) mo e korzysta z serwera (klasa z grotem). Kl ient ma wskazani e na serwera (deklaracja zmiennej klasy serwera) Klient sk ada 1 0..n Zamówienie 35/60

Widzialno w asocjacjach skierowanych Dostawca Klient Globalne odwo anie (referencja) Parametryczne (klasa Dostawca jest parametrem metody Klienta lub jej warto ci ) Lokalne odwo anie (obiekt Dostawcy jest tworzony tymczasowo w metodzie Klienta) Poprzez pole (obiekt Dostawcy jest typem pola Klienta) 36/60

Asocjacje kwalifikowane Nazwa atrybutu (lub zbioru atrybutów) realizuj cych zwi zek Firma #pracodawca pracuje dla #pracownik NIP_firmy Osoba Faktura numerfaktury 1 1..n Pozycja 37/60

Atrybuty asocjacji (powi za ) Osoba nazwisko imi pesel 1..n pracuje 0..1 Firma regon nazwa Zatrudnienie stanowisko datazatrudnienia p acapodstawowa premiapodstawowa 38/60

Asocjacja jako obiekt Osoba nazwis ko im i pesel Zatrudnienie jest stanowisko dotyczy datazatrudnienia p acapodstawowa 1 0..1 1..n 1 premiapodstawowa Firma regon nazwa 39/60

Asocjacje n-arne Zwi zek (powi zanie) pomi dzy wi cej ni dwoma klasami Osoba:: Jan Osoba:: Ela Transakcja data kwota przedmiottransakcji kupuje sprzedaje po redniczy kupuje sprzedaje po redniczy Osoba:: Marek Osoba nazwisko imi pesel 40/60

Agregacja Szczególny przypadek asocjacji (powi zania) odwzorowuj cy zale no : cz -ca o (np. silnik-samochód) Reprezentacja sytuacji, w której obiekty jednej klasy (zwanej agregatem) sk adaj si z obiektów innych klas Silnie zwi zane z celem budowy systemu: czy silnik zawsze jest sk adow samochodu? 41/60

Agregacje - przyk ady Wy czna Miasto 1 Stowarzyszenie Uczelnia n 0..n 1..n Wspó dzielona Dzielnica 1..3 n 10..n Osoba studiuje n Student Ulica 42/60

Kompozycja Szczególny typ agregacji o silnej kontroli w asno ci i (co najwa niejsze) czasu ycia cz ci przez ca o Nazewnictwo: agregat = kompozyt cz = sk adnik Sk adniki kompozytu nie mog by wspó dzielone (tj. musz by zwi zane z jednym kompozytem) Sk adniki nie istniej samoistnie i gin wraz z kompozytem 43/60

Kompozycje - przyk ady Uczelnia Okno 1 ma Wydzia 1 1 1 1 ma 3 1 0..2 1 1..n Nag ówek Suwak Ramka Przyciski 44/60

Diagram klas - przyk ad Uczelnia 1 1..n studiuje Osoba ma jest dziek anem 1 1..n Wyk adowca 1..n Wydzia 0..1 1 pracuje na 1 oferuje 1..n Kierunek 1 zawiera n Student uc z szcza na prowadzi 1 1..n 1..n Wyk ad n n 45/60

Diagram klas Statyczna struktura s ystemu informatycznego Mo e zawiera tylko cz klas systemu, np. klasy z jednego pakietu (podsystemu) Mo liwa jest generacja kodu na podstawie diagramu stopie szczegó owo ci kodu zale y od stopnia szczegó owo ci diagramu 46/60

Generowanie kodu C++ Faktura numerfaktury : int dataw ystawienia : int Konieczny: zwi zek klasy z j zykiem zwi zek klasy z komponentem implementacyjnym Generacja kodu dla komponentu lub klasy wy stawfakt ure() stornujfakture() /* plik nag ówkowy Faktura.h */ class Faktura { public: bool wystawfakture(); bool stornujfakture(); int numerfaktury; /* cia o programu private: Faktura.cpp */ #include "Faktura.h" int datawystawienia; bool Faktura::wystawFakture() { }; } bool Faktura::stornujFakture() { } 47/60

Generowanie kodu - Java //Source file: E:\\Faktura.java public class Faktura { public Integer numerfaktury; private Integer datawystawienia; public Faktura() { } /** * @return Boolean * @roseuid 3E154DD903D8 */ public Boolean wystawfakture() { return null; } Faktura numerfaktury : Integer datawystawienia : Integer wystawfakture() stornujfakture() Faktura() } /** * @return Boolean */ public Boolean stornujfakture() { return null; } 48/60

Realizacja powi za (asocjacji) klas J zyk C++ Zwi zki skierowane o krotno ci 1 dla agregacji lub kompozycji dodatkowy atrybut typu klasy serwera Zwi zki skierowane o krotno ci 1 dla innych zwi zków dodatkowy atrybut typu wskazuj cego na klas serwera Zwi zki skierowane o krotno ci n (znanej) tablice obiektów (wskaza ) klasy serwera 49/60

Powi zania skierowane Faktura numerfaktury : int datawystawienia : int wystawfakture() : bool stornujfakture() : bool +faktur jest na 1 1..n Pozycja lp : int nazwatowaru : string ilosctowaru : string cenatowaru : float dodajpozycje() poprawpozycje() usunpozycje() numerujpozycje() /* plik nag ówkowy Faktura.h */ class Faktura { public: bool wystawfakture(); bool stornujfakture(); int numerfaktury; /* plik nag ówkowy Pozycja.h */ class Faktura; class Pozycja { public: dodajpozycje(); poprawpozycje(); usunpozycje(); }; private: int datawystawienia; Faktura *faktur; private: numerujpozycje(); int lp; string nazwatowaru; string ilosctowaru; float cenatowaru; }; 50/60

Dziedziczenie w C++ Osoba nazwisko : string imie : string pesel : string Student nralbumu : double Wykladowca datazatrudnienia : double class Osoba { protected: string nazwisko; }; string imie; string pesel; #include "Osoba.h" class Student : public Osoba { }; double nralbumu; 51/60

Budowa modelu klas Wieloetapowa Pierwsze fazy projektu definiowanie obiektów biznesowych, merytorycznych, okre laj cych dzia anie systemu Kolejne fazy definiowanie interfejsu, obiektów ekranowych odpowiedzialnych za komunikacje z u ytkownikiem Klasy techniczne dost p do baz danych (bezpo redni lub w architekturze klientserwer), komunikacja w sieci czy internecie 52/60

Ogólne regu y projektowania klas Odpowiedzialno klasy: 7±2 rzeczy Rozbicie odpowiedzialno ci wiele klas Podsystemy pakiety Dwa podej cia: DDD Data Driven Design (jakie dane?) RDD Responsibility Driven Design (dzia ania?) metoda CRC 53/60

Metoda CRC CRC = Class-Responsibilities-Collaborations Twórcy: K.Beck i W.Cunningham (1989) Nie jest cz ci UML Cel: poszukiwanie klas Wspó praca z przypadkami u ycia Praca zespo owa: burza mózgów, analityce, eksperci, moderator Sprawdzanie poprawno ci odrywanie ról 54/60

CRC - narz dzie Kartka papieru: Nazwa klasy Odpowiedzialno - obowi zek Odpow1 Odpow2 Odpow3 Wspólprac1 Wspólprac2 Wspó pracownicy inne klasy 55/60

CRC - szczegó y Odpowiedzialno suma operacji biznesowych obiektów klasy Brak mo liwo ci wykonania operacji brak w modelu (nowa klasa lub odpowiedzialno ) Zwi zek generalizacji-specjalizacji zakres odpowiedzialno ci 56/60

CRC - przyk ad Ksi ka Zarz dzanie danymi o ksi ce Sprawdzenie czy jest dost pna Egzemplarz Ksiazka tytulksiazki autor1 autor2 wydawcaksiazki sprawdzczyjest() : bool rejestrujksiazka() ma +wsk 1 0..n Egzemplarz nrewidencyjny polka wypozyczony czyjestegzemplarz() 57/60

CRC istota identyfikacji klas Samochód Konkretny egzemplarz wyprodukowany? Egzemplarz i jego historia? Model? Pozycja w katalogu? Ksi ka Konkretny egzemplarz? Wydanie? Tytu wydawniczy? Partia dostarczana do sklepu? 58/60

Klasy a rzeczywisto Klasy s najbardziej stabilnym elementem dziedziny problemowej Funkcje, metody, dzia ania, procedury si zmieniaj znacznie szybciej ni byty Oparcie SI o klasy umo liwia jego stabilizacj oraz wielokrotne (ponowne) u ycie fragmentów SI 59/60

Podsumowanie Diagram klas jest podstawowym narz dziem modelowania aplikacji Istnieje mo liwo generowania programu z uszczeg ó owionego diagramu klas w po czeniu z diagramem komponent ów (podstawowy element modelu implementacyjnego) 60/60