PRZEDMIOT:
:
Przygotował:
mgr inż. Rafał Kasprzyk
Inżynieria
oprogramowania
Rafał KASPRZYK
2
Czym jest model?
Model jest uproszczeniem rzeczywistości
Zbiór diagramów i informacji dodatkowych,
opisujących statyczne i dynamiczne aspekty
budowanego systemu
Modele opracowujemy z kilku powodów:
Aby lepiej zrozumieć system, który budujemy
Ponieważ nie jesteśmy w stanie „ogarnąć”
rzeczywistych systemu w całości
…
Model steruje procesem budowy systemu
Reprezentuje wynik analizy wymagań
Opisuje projekt
Jest doskonałym wprowadzeniem do implementacji
Musi być łatwy do zrozumienia
Odzwierciedla rozwiązanie problemu
Rafał KASPRZYK
3
Zasady modelowania
Modele można opracowywać na różnych
poziomach szczegółowości
Modele muszą odpowiadać rzeczywistości,
ale każdy model upraszcza rzeczywistość
Uproszczenie nie może dotyczyć istotnych
szczegółów
Żaden jeden model nie jest wystarczający
Kilka niemal niezależnych modeli to najlepsze
rozwiązanie w przypadku niebanalnego
systemu
Podjęcie decyzji, jakie modele tworzyć ma
istotny wpływ na to jaki kształt przyjmie
rozwiązanie
Rafał KASPRZYK
4
Powody standaryzacji notacji
W przeszłości używano wielu różnych
notacji do budowy modeli obiektowych, co
zaczęło hamować rozwój obiektowego
podejścia do budowy SI
Stosowana notacja powinna być zrozumiała
dla wszystkich członków zespołu
Niezbędnym czynnikiem przy budowie SI jest
dobre rozumienie się współpracujących stron
Jest wskazane, aby notacja była popularna
i powszechnie uznana (moim zdaniem)
Zalety standardowej notacji
Większa liczba ekspertów
Dostępność książek i szkoleń
Dostępność narzędzi
Rafał KASPRZYK
5
Historia UML
OMT
Jim Rumbaugh
OOADA
Grady Booch
Unified Method
1995 v0.8
UML
1996 v0.9
Partnerzy
(IBM, Microsoft,
HP, DEC, ...)
OOSE
Ivar Jacobson
UML
1997 v1.0
OMG
UML Standard
UML
1999 v1.3
OMG Revision
Task Force
UML
2004 v2.0
…
…
Rafał KASPRZYK
6
UML
UML jest językiem graficznym i jak każdy język prócz
składni (
syntaktyka
) posiada
semantykę
i
pragmatykę
UML jest uniwersalny, co oznacza, że może być
stosowany do modelowania SI przedsiębiorstw,
systemów WWW, systemów czasu rzeczywistego, …:
UML wykorzystywany jest do:
Wizualizowania (wspomaga porozumienie)
Specyfikowania (jest precyzyjny)
Konstruowania (podstawa do generacji kodu)
Dokumentowania (koleje artefakty są doskonałą dokumentacją)
UML nie jest
językiem programowania graficznego
metodyką obiektową
Rafał KASPRZYK
7
Słownik UML
Elementy
Strukturalne - statyczne części modelu reprezentujące
składniki pojęciowe lub fizyczne: klasa, interfejs,
przypadek użycia, kooperacja, komponent, węzeł
Czynnościowe - dynamiczne części modelu: interakcja,
maszyna stanów
Grupujące - bloki organizacyjne modelu: pakiet
Komentujące - elementy objaśniające: notatka
Związki
zależność,
asocjacja, agregacja, kompozycja
uogólnienie (generalizacja),
realizacja
Diagramy = Elementy + Związki
Rafał KASPRZYK
8
Elementy strukturalne
Przypadek użycia
Kooperacja
Klasa
Interfejs
Komponent
Węzeł
UseCase
UseCase Realization
Class
Attribute
Operation()
Interface
Operation()
<<Interface>>
Component
Node
Rafał KASPRZYK
9
Elementy czynnościowe
Interakcja
Maszyna stanów
Rafał KASPRZYK
10
Elementy grupujące
Odgrywają rolę organizacyjną
Bloki, na które można rozłożyć model
Podstawowy element grupujący to
pakiet
Luźno powiązane i spójne wewnętrznie
Package
Rafał KASPRZYK
11
Elementy komentujące
Odgrywają rolę objaśniającą
Służą do opisywania lub uwypuklania
dowolnych elementów modelu
Podstawowy element komentujący to notka
Używa się ich w celu wzbogacenia
diagramu o ograniczenia i objaśnienia,
które najłatwiej wyrazić za pomocą
nieformalnego tekstu
Treść notatki
Rafał KASPRZYK
12
Związki
Zależność
Asocjacja
Jednokierunkowa
Dwukierunkowa
Agregacja
Kompozycja
Generalizacji
Realizacja
Rafał KASPRZYK
13
Mechanizmy rozszerzeń
Stereotypy – umożliwiają rozszerzenie słownictwa
stosowanego w UML.
Nowe bloki konstrukcyjne wywodzą się z już istniejących
i są specjalizowane dla określonego zadania
Ograniczenia
Etykiety (metki, wartości nazwane)
Rafał KASPRZYK
14
Diagramy UML
Diagram klas
Diagram obiektów
Diagram przypadków użycia
Diagram sekwencji / przebiegu
Diagram współpracy / kooperacji
Diagram stanów
Diagram aktywności / czynności
Diagram komponentów
Diagram wdrożenia