Programowanie Obiektowe Język UML

Podobne dokumenty
Rysunek 1: Przykłady graficznej prezentacji klas.

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

Przypadki użycia (use cases) Po co są przypadki użycia? Próby definicji Podstawowe pojęcia Notacje Relacje Dokumentacja Kroki metody Przykłady

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Diagramy przypadków użycia

UML w Visual Studio. Michał Ciećwierz

Diagramy klas. WYKŁAD Piotr Ciskowski

UML. dr inż. Marcin Pietroo

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

Podstawy języka UML UML

Język UML w modelowaniu systemów informatycznych

Świat rzeczywisty i jego model

Podstawy programowania III WYKŁAD 4

Unified Modeling Language

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

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

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Faza analizy (modelowania) Faza projektowania

Modelowanie obiektowe

Modelowanie obiektowe - Ćw. 3.

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

Diagramy klas. dr Jarosław Skaruz

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Podstawy języka UML UML

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

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

Podstawy inżynierii oprogramowania

Modelowanie i analiza systemów informatycznych Spis treści

Spis treúci. 1. Wprowadzenie... 13

Wprowadzenie do UML, przykład użycia kolizja

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

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

UML - zarys 2007/2008

MODELOWANIE OBIEKTOWE

UML cz. I. UML cz. I 1/1

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Diagramy UML, przykład problemu kolizji

Diagram przypadków użycia

UML. zastosowanie i projektowanie w języku UML

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

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Diagramy przypadków użycia

MAS dr. Inż. Mariusz Trzaska

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Tworzenie warstwy zasobów projektowanie metodą strukturalną

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

Analiza procesów: notacja UML, modele przypadków użycia, Rich Picture

Michał Adamczyk. Język UML

Projektowanie systemów informatycznych. Diagramy przypadków użycia

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

IX Konferencja Informatyki Stosowanej

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

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

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

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

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

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Technologie obiektowe

Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:

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

Podstawy modelowania programów Kod przedmiotu

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Podstawy projektowania systemów komputerowych

Podstawy języka UML2 w realnych projektach

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Diagramy sekwencji. wymienianych między nimi

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Specyfikowanie wymagań przypadki użycia

MODELOWANIE SYSTEMU INFORMATYCZNEGO WSPOMAGAJĄCEGO DZIAŁALNOŚĆ USŁUGOWĄ W ŚRODOWISKU OBIEKTOWO ZORIENTOWANYM.

Modelowanie i analiza systemów informatycznych

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

Programowanie współbieżne i rozproszone

Wykład 1 Inżynieria Oprogramowania

Modelowanie danych, projektowanie systemu informatycznego

Diagramy czynności Na podstawie UML 2.0 Tutorial

Język UML w modelowaniu systemów informatycznych

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

MiASI. Modelowanie systemów biznesowych. Piotr Fulmański. 7 stycznia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Paweł Kurzawa, Delfina Kongo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Faza Określania Wymagań

Modelowanie i Programowanie Obiektowe

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

Język UML w modelowaniu systemów informatycznych

UML- Unified Modeling Language Ujednolicony Język Modelowania

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

Programowanie obiektowe - 1.

WPROWADZENIE DO UML-a

Podstawy Programowania Obiektowego

Podstawy języka UML2 w realnych projektach

Analiza i projektowanie obiektowe

Transkrypt:

Programowanie Obiektowe Język UML

Wstęp UML (Unified Modeling Language), zunifikowany język do modelowania, jest następcą i syntezą notacji występujących w obiektowych metodykach analizy i projektowania systemów informatycznych, które pojawiły się w końcu lat 80-tych i na początku lat 90- tych. Jest on oparty o pojęcia obiektowości, takie jak obiekty, klasy, atrybuty, związki, agregacje, dziedziczenie, metody i inne. UML powstał w wyniku połączonych wysiłków trzech znanych metodologów: Grady Boocha, Ivara Jacobsona i Jamesa Rumbaugh'a. Są oni autorami popularnych metodyk: OODA (Booch), Objectory (Jacobson) i OMT (Rumbaugh). UML jest zestawem pojęć oraz notacji graficznych (diagramów), które pozwalają wszechstronnie odwzorować modelowaną dziedzinę problemu, założenia projektowanego systemu informatycznego, oraz większość istotnych aspektów jego konstrukcji. UML jest obecnie wspomagany przez wiele narzędzi CASE. Został on także zaakceptowany jako przemysłowy standard przez ciało standardyzacyjne OMG rozwijające standard CORBA. 2

Diagram przypadków w użyciau Przypadki użycia (use cases) były w sposób intuicyjny stosowane w tradycyjnym projektowaniu systemów informatycznych na długo przed pojawieniem się metodyk obiektowych. Kariera przypadków użycia w literaturze z zakresu projektowania SI zaczęła się od wprowadzenia dla nich specjalnej nazwy, przypisaniu tej nazwie określonego znaczenia i rozpropagowanie tego pojęcia jako specjalnego paradygmatu projektowania. Przypadek użycia jest to pewna nazwana lub dobrze określona interakcja pomiędzy użytkownikiem a systemem komputerowym. Przypadek użycia odwzorowuje pewną funkcję systemu w taki sposób, w jaki będą ją widzieć jego przyszli użytkownicy. Dla dużych systemów o wielu złożonych i wzajemnie powiązanych funkcjach tego rodzaju podejście ma ogromny sens. Pozwala ono zapomnieć o strukturze/architekturze systemu i jego detalach technicznych i skoncentrować się na zewnętrznych funkcjach systemu. 3

Diagram przypadków w użyciau Podejście do projektowania od strony przypadków użycia jest uważane za znacznie bardziej zdrowe od podejść technokratycznych, ponieważ sprzyja ono punktowi widzenia, w którym centralnym ośrodkiem zainteresowania staje się człowiek -przyszły użytkownik systemu - a nie budowa mechanizmu systemu. Jak pokazały doświadczenia wielu projektów, jedną z głównych przyczyn ich niepowodzeń było zbytnie skoncentrowanie się projektantów na detalach technicznych, z pominięciem lub brakiem dostatecznej uwagi dla interakcji pomiędzy użytkownikami a systemem komputerowym. 4

Diagram przypadków w użyciau Podejście od strony przypadków użycia ma przede wszystkim na względzie określenie wymagań na projektowany system. Celem tej metody jest: Głębsze zrozumienie użycia systemu będącego przedmiotem procesu projektowania. Zwiększenie stopnia świadomości analityków i projektantów co do celów tego systemu. Umożliwienie interakcji zespołu projektowego z przyszłymi użytkownikami systemu. Weryfikacja poprawności i kompletności projektu. Ustalenie wszystkich strukturalnych i funkcjonalnych własności systemu. Ustalenie składowych systemu i związanego z nimi planu konstrukcji systemu. Dostarczenie podstawy do sporządzenia planu testów systemu. 5

Diagram przypadków w użyciau Model przypadków użycia dostarcza bardzo abstrakcyjnego poglądu na system z pozycji aktorów, którzy go używają. Nie włącza jakichkolwiek szczegółów, co pozwala wnioskować o systemie na odpowiednio ogólnym, abstrakcyjnym poziomie. Diagram przypadków użycia zawiera znaki graficzne oznaczające aktorów (ludziki) oraz przypadki użycia (owale z wpisanym tekstem). Aktor Przypadek uzycia Te oznaczenia połączone są liniami odwzorowującymi powiązania poszczególnych aktorów z poszczególnymi przypadkami użycia. Przypadek uzycia Aktor 6

Diagram przypadków w użyciau Podstawowym zastosowaniem takich diagramów jest dialog z użytkownikami zmierzający do sformułowania wymagań na system. Stąd wynika, że diagramy i opis przypadków użycia muszą być bardzo naturalne, proste i nie mogą wprowadzać elementów komputerowej egzotyki i żargonu. W późniejszej fazie przypadki użycia mogą być wyspecyfikowane bardziej precyzyjnie przy pomocy notacji lub diagramów obiektowych. Następną fazą w postępowaniu opartym na przypadkach użycia jest rozpisanie ich przy pomocy notacji wprowadzanych w innych diagramach UML. Należy podkreślić, że tworzenie przypadków użycia jest niezdeterminowane i subiektywne. Na ogół różni analitycy tworzą różne modele. Metoda przypadków użycia wymaga od analityka określenia wszystkich aktorów związanych w jakiś sposób z projektowanym systemem. Każdy aktor używać lub będzie używać systemu na kilka specyficznych sposobów (przypadków użycia). Zazwyczaj aktorem jest osoba, ale może nim być także pewna organizacja lub inny system komputerowy. 7

Diagram przypadków w użyciau Należy zwrócić uwagę, że metoda modeluje aktorów, a nie konkretne osoby. Jedna osoba może pełnić rolę wielu aktorów; np. być jednocześnie sprzedawcą i klientem. Jeden aktor może odpowiadać wielu osobom, np. urzędnik. Aktor jest: pierwotną przyczyną napędzającą przypadki użycia. Jest on sprawcą zdarzeń powodujących uruchomienie przypadku użycia. odbiorcą informacji wyprodukowanych przez przypadki użycia. Aktor reprezentuje rolę, którą może grać w systemie jakiś jego użytkownik, np. kierownik, urzędnik, klient. Można tworzyć aktorów abstrakcyjnych, na podobieństwo klas abstrakcyjnych. Np. aktor urzędnik jest nadklasą dla aktorów kasjer i dyrektor ; powiązania z konkretnymi przypadkami użycia mogą być ustalone zgodnie z tą hierarchią klas aktorów. 8

Diagram przypadków w użyciau Przypadek użycia reprezentuje: sekwencję operacji lub transakcji wykonywanych przez system w trakcie interakcji z użytkownikiem; np. potwierdzenie pisma, złożenie zamówienia. przepływ zdarzeń w systemie i są uruchamiane (inicjowane) przez aktorów. Przypadek użycia jest zwykle charakteryzowany przez krótką nazwę. Opis przypadku użycia może być jednak dowolnie rozbudowany, w szczególności może zawierać następujące fragmenty: Jak i kiedy przypadek użycia zaczyna się i kończy. Opis interakcji przypadku użycia z aktorami, włączając w to kiedy interakcja ma miejsce i co jest przesyłane. Kiedy i do czego przypadek użycia potrzebuje danych zapamiętanych w systemie, lub jak i kiedy zapamiętuje dane w systemie. Wyjątki przy przepływie zdarzeń. 9

Diagram przypadków w użyciau Typowa dokumentacja przypadków użycia powinna zawierać następujące elementy: Krótki opis przypadku użycia. Przepływ zdarzeń opisany nieformalnie. Związki pomiędzy przypadkami użycia. Uczestniczące obiekty. Specjalne wymagania (np. czas odpowiedzi, wydajność). Obrazy interfejsu użytkownika. Ogólny pogląd na przypadki użycia (powiązania w postaci diagramów). Diagramy interakcji dla każdego aktora. 10

Diagram przypadków w użyciau UML wprowadza także bardzo proste powiązania pomiędzy przypadkami użycia, oznaczane strzałkami dodatkowymi napisami «extend» (rozszerza), <<include>> (zawiera). Przypadek użycia podłączony przez strzałkę «extend» oznacza, że niekiedy (nie zawsze) dany przypadek użycia jest rozszerzony przez inny przypadek użycia. Przypadek użycia podłączony przez strzałkę «include» oznacza, że pewien przypadek zawiera zachowanie innego przypadku, który warto jest wyodrębnić ze względu na późniejszą możliwość uniknięcia wielokrotnej implementacji tego fragmentu. <<extend>> Request Catalog Place Order <<include>> <<include>> Order Product Arrange Payment 11

Diagram przypadków w użyciau Pewne fragmenty diagramu przypadków są grupowane jako podsystemy. Graficznie granice systemu (system boundary) oznaczane sa jako prostokąt otaczający wszystkie elementy wchodzące w skład systemu. <<extend>> Request Catalog Customer Place Order <<include>> <<include>> Salesperson Order Product Arrange Payment Selling system 12

Diagram przypadków w użyciau Między aktorami i przypadkami użycia mogą zachodzić relacje generalizacji. Relacja ta oznacza iż pewien byt jest uogólnieniem innego lub innych. Z drugiej strony można powiedzieć, że określone byty są szczególnymi przypadkami swojej generalizacji. Oddanie indeksu Przekazanie dokumentu Oddanie karty zaliczeniowej Przekazanie podania Kierownik Przekazanie podania o urlop Osoba Pracownik Kierownik katedry Pracownik naukowy 13

Diagram przypadków w użyciau Między aktorami, a przypadkami mogą istnieć relacje o różnej krotności. Krotność powiązania dotyczy obu stron relacji wiążącej. Wyróżnia się następujące krotności: 1 dokładnie jeden 0..1 0 lub 1 1..* 1 lub więcej n..m nie mniej niż n i nie więcej niż m * dowolna ilość 1 * Request Catalog * 1 1 <<extend>> Customer Salesperson * Place Order <<include>> <<include>> Order Product Arrange Payment Selling system 14

Diagram przypadków w użyciau W celu umieszczenia dodatkowych komentarzy umieszcza się notki zakotwiczone do bytów których dotyczą. Asocjacja jeden do wielu Pracownik sklepu lub akwizytor 1 * Request Catalog * 1 1 <<extend>> Customer Salesperson * Place Order <<include>> <<include>> Order Product Arrange Payment Selling system Granice systemu 15

Diagram klas Diagram klas (dawniej: diagram asocjacji klas lub model obiektowy) jest pojęciem kluczowym we wszystkich metodykach obiektowych. Często diagram klas odpowiada diagramowi encja-związek rozbudowanym o dodatkowe elementy. W odróżnieniu od diagramów encja-związek diagramy klas posiadają metody przypisane do specyfikowanych klas. Poza tym pojawiają się w diagramach klas różnorodne pomocnicze oznaczenia. Diagram klas pokazuje klasy w postaci pewnych oznaczeń graficznych powiązanych w sieć zależnościami należącymi do trzech kategorii: Dziedziczenie (inheritance) - ustalenie związku generalizacji/specjalizacji pomiędzy klasami. Asocjacja (association) - dowolny związek pomiędzy obiektami dziedziny przedmiotowej, który ma znaczenie dla modelowania. Agregacja (aggregation) - stosunek całość-część pomiędzy obiektami z modelowanej dziedziny przedmiotowej jest to szczególny przypadek asocjacji. 16

Diagram klas Diagram klas w identycznej wersji jest stosowany zarówno do zapisu wyników analizy jak i do specyfikowania założeń projektowych. Diagramy klas są podstawą dowolnej analizy i dowolnego projektu. Żaden projekt obiektowy nie może się obejść bez diagramu klas. Podstawowe zastosowania diagramów klas: Zapis modelu pojęciowego. Diagramy reprezentują pojęcia w dziedzinie zastosowań, które aktualnie podlegają analizie. Model pojęciowy nie musi być związany z jakimkolwiek oprogramowaniem. Sformalizowana specyfikacja danych i metod. Jest ona bardziej związana z oprogramowaniem, ale dotyczy jego zewnętrznego opisu (interfejsów) bez wchodzenia w szczegóły implementacyjne. Często podkreślaną zaletą obiektowości jest hermetyzacja, polegająca na oddzieleniu specyfikacji od implementacji. Dla wielu celów zależy nam wyłącznie na określeniu cech zewnętrznych pewnych bytów programistycznych (obiektów, metod, itd.), bez wchodzenia w szczegóły. Implementacja. W tym zastosowaniu diagram klas może służyć bezpośrednio jako graficzny środek pokazujący szczegóły implementacji klas, np. w C++. 17

Diagram klas Klasa: Elementy składowe diagramów klas. Podstawowa postać graficzna: Klasa Postacie graficzne przykładowych stereotypów klas: Aktor: Aktor biznesowy: Klasa Klasa Dokument biznesowy: Klasa Tabela: Klasa 18

Diagram klas Elementy składowe klasy: Klasa abstrakcji: Klasa Atrybuty: Atrybut_Publiczny Atrybut_Prywatny : int = 5 Atrybut_Chroniony : unsigned Statyczny : float Klasa Operacje: Operacja_Publiczna(Parametr_1 : int, Parametr_2 : double = 5.0) Operacja_Prywatna() : int Operacja_Chroniona(Parametr) 19

Diagram klas Szablon klasy: T Atrybut_Publiczny Atrybut_Prywatny : int = 5 Atrybut_Chroniony : unsigned Statyczny : float Klasa <<bind>> Przypisanie Operacja_Publiczna(Parametr_1 : int, Parametr_2 : double = 5.0) Operacja_Prywatna() : int Operacja_Chroniona(Parametr) Dodaj(T) : bool 20

Diagram klas Pakiet: Pakiety służą do grupowania elementów diagramów. Pakiet A Pakiet B Klient Dostawca 21

Diagram klas Interfejs: Interfejs reprezentuje zestaw operacji, które określają usługi oferowane przez klasę. Nie posiadają atrybutów i powiązań. Posiadają tylko operacje. Mogą one posiadać związki generalizacji. Interfejs Atrybut_Publiczny Atrybut_Prywatny : int = 5 Atrybut_Chroniony : unsigned Statyczny : float Klasa Operacja_Publiczna(Parametr_1 : int, Parametr_2 : double = 5.0) Operacja_Prywatna() : int Operacja_Chroniona(Parametr) 22

Diagram klas Użycie interfejsu przez klasę. Postać rozwinięta: Kartoteka <<use>> <<Interface>> DanePersonalne getimie() : AnsiString getnazwisko() : AnsiString Osoba Numer : long Imie : AnsiString Nazwisko : AnsiString getimie() : AnsiString getnazwisko() : AnsiString Postać uproszczona: Kartoteka <<use>> Osoba Numer : long Imie : AnsiString Nazwisko : AnsiString DanePersonalne getimie() : AnsiString getnazwisko() : AnsiString getimie() : AnsiString getnazwisko() : AnsiString 23

Diagram klas Związki: W diagramie klas występują następujące typy powiązań. powiązanie, zależność, generalizacja, realizacja. 24

Diagram klas Powiązanie: Powiązanie jest związkiem strukturalnym, który pokazuje że obiekty jednego elementu są połączone z obiektami innego. Książka Biblioteka Połączenie można uzupełnić o następujące elementy: nazwa, rola, liczebność, nawigacja, agregacja, rodzaj agregacji, kwalifikacja, klasa powiązania, ograniczenia. 25

Diagram klas Nazwa powiązania: Element Udostępnianie Zbiór Rola: Element +Książka Udostępnianie #Biblioteka Zbiór 0..* 1 Liczebność: Element +Książka Udostępnianie +Biblioteka Zbiór 0..* 1 Nawigacja: Element +Książka Udostępnianie +Biblioteka Zbiór 0..* 1 26

Diagram klas Agregacja: Element +Książka Udostępnianie +Biblioteka Zbiór 0..* 1 Agregacja całkowita: Element +Książka Udostępnianie +Biblioteka Zbiór 0..* 1 Kwalifikacja: Klasa powiązania: Element Element +Książka Udostępnianie +Biblioteka ID_Elementu : long 0..* 1 +Książka ID_Elementu : long 0..* Udostępnianie #Biblioteka 1 Zbiór Zbiór Położenie 27

Diagram klas Ograniczenia: Element +Książka ID_Elementu : long 0..n {ordered} Udostępnianie #Biblioteka 1 Zbiór Położenie Rodzaje ograniczeń: implicit związek nie jest jawny (pojęciowy), ordered zbiór obiektów jest uporządkowany, changeable wiązanie między obiektami mogą być dodawane, usuwane i modyfikowane, addonly nowe wiązania można dodawać do zbioru wartości atrybutu, ale raz dodane nie mogą być modyfikowane ani usuwane, frozen wartość nie może być zmieniana po zainicjowaniu obiektu, żadne nowe elementy nie mogą być dodane do zbioru wartości. 28

Diagram klas Ograniczenia: Osoba Numer : long Imie : AnsiString Nazwisko : AnsiString Pracuje {subset} Kieruje 0..* 0..* Przedsiębiortstwo getimie() : AnsiString getnazwisko() : AnsiString 1 0..* Konto {xor} Osoba Numer : long Imie : AnsiString Nazwisko : AnsiString 0..* {subset} Kieruje 0..* Przedsiębiortstwo getimie() : AnsiString getnazwisko() : AnsiString 1 0..* 29

Diagram klas Zależność: Zależność jest to związek użycia. Zmiany dokonane w definicji jednego elementu mogą mieć wpływ na inny element. Pakiet A Pakiet B Kartoteka <<use>> <<Interface>> DanePersonalne getimie() : AnsiString getnazwisko() : AnsiString Klient Dostawca 30

Diagram klas Stereotypy ograniczeń: bind derive friend use access import 31

Diagram klas Stereotyp zależności: bind Źródło tworzy egzemplarz wzorca docelowego z użyciem danych parametrów aktualnych. T Atrybut_Publiczny Atrybut_Prywatny : int = 5 Atrybut_Chroniony : unsigned Statyczny : float Klasa <<bind>> Przypisanie Operacja_Publiczna(Parametr_1 : int, Parametr_2 : double = 5.0) Operacja_Prywatna() : int Operacja_Chroniona(Parametr) Dodaj(T) : bool 32

Diagram klas Stereotyp zależności: derive Źródło można wyznaczyć na podstawie celu. DataUrodzenia <<derive>> Wiek Stereotyp zależności: friend Źródło można szczególny dostęp do wnętrza celu. Pracownik ID_Pracownik : long Stanowisko : AnsiString <<friend>> ListaPłac 33

Diagram klas Stereotyp zależności: use Znaczenie bytu źródłowego zależy od znaczenia części publicznej celu Stereotyp zależności: access Kartoteka <<use>> <<Interface>> DanePersonalne getimie() : AnsiString getnazwisko() : AnsiString Źródło ma prawo dostępu do bytów pakietu docelowego. Pakiet A <<access>> Pakiet B Stereotyp zależności: import Zawartość publiczna pakietu docelowego zostaje dołączona do źródła. Pakiet A <<import>> Pakiet B 34

Diagram klas Generalizacja: Generalizacja jest to związek między elementem ogólnym, a specyficznym jego rodzajem. Potomek dziedziczy strukturę i zachowanie po przodku (uwzględniając zakresy widoczności). Osoba Numer : long Imie : AnsiString Nazwisko : AnsiString getimie() : AnsiString getnazwisko() : AnsiString Kierownik Pracownik ID_Pracownik : long Stanowisko : AnsiString {incomplete} <<implementation>> Nadzór PracownikNaukowy StopienNaukowy : AnsiString Dziekan Potomek dziedziedziczy calą implementację, ale nie udostępnia jako publicznych jego interfejsów i nie realizuje ich. (Dziedziczenie prywatne). 35

Diagram klas Ograniczenia generalizacji: disjoint obiekty przodka mogą mieć nie więcej niż jednego potomka jako typ. overlapping obiekty mogą posiadać dwóch lub więcej potomków jako typ complete wszyscy potomkowie w uogólnieniu zostali w modelu uwzględnieniu i nie wolno dodawać żadnych nowych potomków. incomplete nie wszyscy potomkowie w uogólnieniu zostali w modelu uwzględnieniu i wolno dodawać nowych potomków. Kierownik Pracownik ID_Pracownik : long Stanowisko : AnsiString {incomplete} <<implementation>> Nadzór PracownikNaukowy StopienNaukowy : AnsiString Dziekan Potomek dziedziedziczy calą implementację, ale nie udostępnia jako publicznych jego interfejsów i nie realizuje ich. (Dziedziczenie prywatne). 36

Diagram klas Realizacja: Realizacja jest to związek znaczeniowy między klasyfikatorami, z których jeden określa kontrakt, a drugi zapewnia wywiązanie się z niego: Realizacja <<Interface>> DanePersonalne getimie() : AnsiString getnazwisko() : AnsiString Osoba Numer : long Imie : AnsiString Nazwisko : AnsiString getimie() : AnsiString getnazwisko() : AnsiString Picture Display 37

Diagram obiektów Diagram obiektów służy do modelowania statycznych aspektów perspektywy projektowej lub procesowej. Wyobrażają one stan systemu w danej chwili. Uwzględnia się na nim: zbiór obiektów, stan obiektów, związki między obiektami. k2 : Konto p1 : Przedsiębiortstwo o1 : Osoba o2 : Osoba o3 : Osoba o4 : Osoba k1 : Konto k4 : Konto k3 : Konto 38

Diagram sekwencji Diagram sekwencji (diagram przebiegu) służy do modelowania dynamicznych aspektów perspektywy projektowej lub procesowej. Uwypukla się na nim kolejność komunikatów w czasie. k : Klient : BazaDanych Uwzględnia się na nich: obiekty, czas życia obiektów, komunikaty. 1: <<create>> 2: Set(x,y,z) t : Transakcja 3: Weryfikacja Rodzaje komunikatów: przejście do następnego kroku, wywołanie procedury, asynchroniczne przejście, powrót z procedury. 6: Potwierdzenie 7: <destroy>> 4: Write(a,5,8) 5: Write(b,Kowalski) 39

Diagram sekwencji Przykład: : Klient : Bankomat : BazaDanych 1: Włożenie karty 2: Prośba o PIN 3: Podanie PIN 6: Pytanie o kwotę 4: Weryfikacja PIN 5: Potwierdzenie PIN 7: Podanie kwoty 8: <<create>> : Transakcja 9: Realizacja 10: Werfikacja 13: Wypłata gotówki 12: Zakończona 14: <<destroy>> 11: Transakcja zapisana 40

Diagram kooperacji Diagram kooperacji służy do pokazania organizacji obiektów uczestniczących w interakcji. : Transakcja 7: Podanie kwoty 8: <<create>> 12: Zakończona 9: Realizacja 10: Weryfikacja 3: Podanie PIN 11: Transakcja zapisana 14: <<destroy>> 1: Włożenie karty 4: Weryfikacja PIN : Klient : Bankomat : BazaDanych 2: Prośba o PIN 5: Potwierdzenie PIN 6: Pytanie o kwotę 13: Wypłata gotówki 41

Diagram czynności ci Diagram czynności służy do modelowania dynamicznych aspektów systemu. Przedstawia się na nim sekwencyjne lub współbieżne kroki procesu. Można też zobrazować zmiany zachodzące w obiektach w różnych fazach przepływu sterowania. Punkt startowy: Przepływ obiektu: Punkt końcowy: Stan obiektu: Obiekt [Stan obiektu] Czynność: Czynność Tor Przejście: Tor: Punkt synchronizacji: Decyzja: 42

Diagram czynności ci Przykład: Klient Sprzedawca Magazyn Żądanie obsługi Odbiór zlecenia Płatność Realizacja zlecenia Dostarczenie Odbiór 43

Diagram czynności ci Przykład: Klient Sprzedawca Magazyn Klient Sprzedawca Magazyn Żądanie obsługi Żądanie obsługi Zlecenie [złożone] Odbiór zlecenia Odbiór zlecenia Zlecenie [wprowadzone] Realizacja zlecenia Płatność Realizacja zlecenia Płatność Zlecenie [zrealizowane] Dostarczenie Dostarczenie Zlecenie [dostarczone] Odbiór Odbiór 44

Diagram czynności ci Przykład: Włącz zasilanie [System niesprawny] Wyłącz zasilanie Zatrzymaj się [System sprawny] Uruchom silnik Sprawdz drogę [Cel osiągnięty] Wyszukaj nową drogę [Droga zajęta] [Droga wolna] Jedz [Cel nieosiagniety] 45

Diagram stanów Diagram stanów służy do modelowania dynamicznych aspektów systemu. Uwzględnia się historię życia egzemplarzy, klasy, przypadku użycia lub systemu. Egzemplarze reagują na zdarzenia, jak sygnały wywołania operacji i upływ czasu. Po zajściu zdarzenia są wykonywane czynności, które zależą od bieżącego stanu obiektu. Czynności powodują zmianę stanu lub przekazanie wartości. Stan jest to okoliczność lub sytuacja, w jakiej się znajduje. Stan początkowy: Stan końcowy: Stan: Błąd logowania do / ShowMessage("Login error") Przejście Zdarzenie: Wprowadzono hasło 46

Diagram stanów Przykład: WyszukanieUżytkownika do / SearchUser Zakończono wyszukiwanie [Znaleziono] Wprowadzono Login Zakończono wyszukiwanie [Nie znaleziono] Wprowadzanie loginu entry / ShowLoginWindow Zmiana użytkownika/ Logout Błąd logowania do / ShowMessage("Login error") po 10 sek./ Terminate program Zakończenie programu/ Terminate Program Praca z programem Zakończono weryfikację [Błędne hasło]/ disable program Wprowadzanie Hasła do / ShowPassWindow Wprowadzono hasło Weryfikacja hasła do / Verify Zakończono weryfikację/ enable program 47