Seminarium magisterskie - grudzień 2000
UML
UML
Unified Modeling
Unified Modeling
Language
Language
Monika Dobosz
• Kryzys oprogramowania
• Czym jest UML i jego historia
• Cele
• Views - widoki
• Diagramy
• Narzędzia
• Podsumowanie UML’a
Kryzys oprogramowania
Kryzys oprogramowania to notoryczne
opóźnienia i przekraczanie
zaplanowanych kosztów podczas
realizacji dużych projektów
informatycznych.
Techniki budowy systemów nie nadążają
za potrzebami użytkowników i coraz
bardziej złożonymi problemami.
UML
(Unified Modeling Language)
Unified Modeling Language (UML) jest
językiem specyfikacji, wizualizacji,
konstrukcji i dokumentacji systemów
informatycznych.
Reprezentuje zbiór najlepszych praktyk
inżynierskich które dowiodły
przydatności przy modelowaniu
dużych i skomplikowanych systemów
Historia UML’a
• Do połowy lat 90 – około 50 metod
• Potrzeba unifikacji
• `94 Booch, Jacobson i Rumbaugh z
Rational Software
• `95 Unifikacja OMT, Boocha i OOSE w UML
• `96 standaryzacja UML pod skrzydłami OMG
• `97 wersja 1.1
• `99 wersja 1.3
UML - Cele
• Gotowy wizualny język modelowania do
budowy i wymiany modeli
• Mechanizmy rozbudowy i specjalizacji
• Niezależny od języków programowania i
procesów tworzenia
• Udostępnia podstawy formalne do
zrozumienia języka modelowania
• Zachęca do wzrostu rynku narzędzi OO
• Wspomaga wysoko-poziomowe rozwiązania
• Integruje najlepsze praktyki
Views
(Widoki)
Widoki pokazują różne właściwości tworzonego
systemu, pozwalają spojrzeć na niego z wielu
stron.
Widoki są abstrakcyjnymi strukturami, które
przedstawia się za pomocą zestawu diagramów.
Każdy system jest opisywany za pomocą kilku
widoków, z których każdy przedstawia inny jego
aspekt.
Use-case view
(Widok przypadków
użycia)
Przedstawia system z punktu widzenia
użytkownika, zwanego aktorem, obrazuje
funkcjonalność systemu jakiej on oczekuje.
Aktor współdziała z systemem, wymienia z
nim informacje. Widok jest opisany poprzez
diagramy przypadków użycia i czasami za
pomocą diagramów realizacji operacji. Widok
użytkownika jest kluczowy dla systemu, gdyż
przedstawia on to, co system ma wykonywać.
Logical view
(Widok logiczny)
Opisuje sposób, w jaki funkcjonalność
systemu
jest
realizowana.
W
przeciwieństwie do widoku użytkownika,
widok
logiczny
pokazuje
wewnętrzną
strukturę systemu. Widok ten przedstawia
strukturę
statyczną
i
dynamiczną.
Struktura statyczna jest obrazowana za
pomocą diagramów klas i obiektów;
dynamiczna za pomocą diagramów stanów,
sekwencji, współdziałania oraz realizacji
operacji.
Component view
(Widok
komponentów)
Opisuje implementacje modułów i
zależności między nimi. Jest
przeznaczony głównie dla
programistów. Składa się z diagramów
komponentów. Dodatkowo widok może
zawierać informacje dla zespołu
programistów o terminach wykonania
poszczególnych etapów.
Concurrency view
(Widok
współbieżności)
Opisuje podział systemu pomiędzy procesy i
procesory. Umożliwia efektywny podział
zasobów systemu, obsługę zdarzeń
asynchronicznych oraz równoległe
wykonywanie różnych wątków systemu.
Widok jest odpowiedzialny również za ich
synchronizację. Składa się z diagramów
stanów, sekwencji, współdziałania,
komponentów oraz organizacji fizycznej.
Deployment view
(Widok organizacji
fizycznej)
Przedstawia
sprzęt
potrzebny
do
działania systemu oraz połączenia
między
urządzeniami.
Obrazuje
również rozmieszczenie komponentów
na poszczególnych komputerach.
UML definiuje następujące
diagramy graficzne:
Diagram przypadków użycia
Diagram klas
Diagramy zachowania (behavior diagrams):
•
Diagram stanów (statechart diagram)
•
Diagram czynności (activity diagram)
•
Diagramy interakcji (interction diagrams)
–
Diagram sekwencji (sequence diagram)
–
Diagramy współpracy (collaboration diagram)
Diagramy implementacyjne:
•
Diagram komponentów (component diagram)
•
Diagram wdrożeniowy (deployment diagram)
Use case diagram
(Diagram
przypadków użycia)
Diagram przypadków użycia graficznie przedstawia
zachowanie systemu (przypadki użycia). Diagramy te
prezentują widok systemu wysokiego poziomu, jak
system jest widoczny z zewnętrznej perspektywy.
Diagram przypadków użycia może przedstawiać
wszystkie lub wybrane przypadki użycia systemu.
Use case jest wykorzystywany do :
–
wyrażania wymagań systemu
–
komunikacji z użytkownikami końcowymi i
ekspertami z określonej dziedziny
–
testowania systemu
Use case diagram
Class diagram
(Diagram klas)
Przedstawia statyczną strukturą klas w systemie co
oznacza, że struktura ta jest stale poprawna i ma sens
w czasie działania systemu. Klasa jest opisem zbioru
obiektów, które dzielą te same atrybuty, operacje,
metody i semantykę. Może zawierać również
specyfikację interfejsu, który określa operacje
dostępne dla środowiska. Wszystkie związki, które
mogą dotyczyć klasy są zobrazowane na diagramie.
Zwykle w projekcie systemu jest wiele diagramów klas
podzielonych na podstawie ich funkcjonalności. Jedna
klasa może występować na wielu diagramach.
Class diagram
Statechart diagram
(Diagram
stanów)
Diagram stanów opisuje stany pewnego procesu,
które są istotne z punktu widzenia modelu
pojęciowego tego procesu, oraz przejścia
pomiędzy stanami, wymuszane poprzez pewne
“zdarzenia”.
Diagramy stanów wykorzystywane są na ogół do
modelowania dyskretnych etapów czasu życia
obiektu, natomiast diagramy aktywności są lepiej
dopasowane do modelowania sekwencji
czynności w procesie.
Statechart diagram
Activity diagram
(Diagram
czynności)
Diagramy czynności/aktywności są
sposobem modelowania przepływu
procesów biznesowych. Za ich pomocą
można również zamodelować operacje
klas.
Diagram aktywności na ogół używany jest
do modelowania sekwencji czynności w
procesie.
Activity diagram
Interaction diagrams
(Diagramy
interakcji)
Diagram
interakcji
przedstawia
pewien
scenariusz
przepływu
komunikatów pomiędzy obiektami
systemu
oraz
systemami
zewnętrznymi. Opisują one sposób
w jaki obiekty współpracują ze
sobą w celu zrealizowania funkcji
systemu
Sequence diagram
(Diagram
sekwencji)
Diagram sekwencji jest to graficzny sposób
prezentacji scenariusza, który pokazuje interakcje
pomiędzy obiektami w dziedzinie czasu.
Diagramy sekwencji ustalają role obiektów oraz
pomagają dostarczyć istotnych informacji do
określenia zakresu odpowiedzialności klasy oraz
wyznaczenia interfejsów.
Diagram sekwencji posiada dwa wymiary:
• pionowy – reprezentuje czas
• poziomy – pokazuje obiekty
Sequence diagram
Collaboration diagram
(Diagram
współpracy)
Diagram współpracy jest diagramem
interakcji, który pokazuje sekwencje
komunikatów składających się na operację
lub transakcję.
Diagramy współpracy przedstawiają obiekty,
ich połączenia oraz komunikaty. Mogą
również zawierać instancje klas. Każdy
diagram współpracy pokazuje interakcje lub
relacje, które występują pomiędzy obiektami.
Collaboration diagram
Component diagram
(Diagram
komponentów)
Diagram komponentów przedstawia zależności
pomiędzy komponentami oprogramowania.
Może zawierać komponenty źródłowe, binarne
lub wykonywalne.
Na diagramie tym można również pokazać jak
komponent widoczny jest z zewnątrz poprzez
jego interfejsy.
Powiązania pomiędzy komponentami są pokazane
jako relacje zależności pomiędzy komponentami
oraz interfejsami innych komponentów.
Component diagram
Deployment diagram
(Diagram
wdrożeniowy)
Deployment diagram pokazuje procesory, urządzenia i
połączenia. Każdy model posiada pojedynczy
deployment diagram, który przedstawia połączenia
pomiędzy procesorami i urządzeniami oraz alokacje
procesów do procesorów.
Specyfikacje procesora, urządzenia oraz połączenia
pozwalają pokazać i modyfikować poszczególne
właściwości. Informacja w specyfikacji prezentowana
jest w formie tekstowej. Niektóre z tych informacji
mogą być również pokazane wewnątrz ikony.
Deployment diagram
Stereotypy
• Stereotypy reprezentują rodzaj klasyfikacji
elementów modelu. Część stereotypów jest
zdefiniowana, jednak lista stereotypów może być
rozszerzana przez projektanta w zależności od
potrzeb.
• Istnieją różne rodzaje stereotypów dla różnych
elementów modelu.
• Stereotyp na diagramie oznaczany jest w
następujący sposób: <<nazwa_stereotypu>>
UML - Narzędzia
• Rational Rose 2000e
• SELECT Enterprise
• Together/J,C++
• Javision
UML - Podsumowanie
• UML jest składową standardu OMG (CORBA)
• Specyfikacja dla XML – XMI DTD (możliwość
wymiany modeli zapisanych w postaci
dokumentów XML)
• OCL – Object Constraint Language
• problemy do rozwiązania: Modelowanie
relacyjne i CRC (Class Responsibility and
Collaborator cards)
Bibliografia
• http://www.rational.com
• http://www.omg.org
• K.Subieta. Wprowadzenie do
obiektowych metodyk projektowania i
notacji UML
• Popkin Software White Paper Modeling
Systems with UML