background image

Projektowanie 

systemów 

informatycznych

Diagramy UML

background image

GK (PSI(4) - 2009)

2

Wstęp

UML

 (Unified Modeling Language) jest formalnym 

językiem służącym do opisu obiektów świata rzeczywistego w 
analizie obiektowej (Object-oriented analysis)
 oraz 
programowaniu obiektowym (Object-oriented programming
). 

UML jest językiem modelowania wizualnego, 

pozwalającym twórcom systemów na konstruowanie projektów, na 
których ich wizje zostają uchwycone i wyrażone w standardowy, 
łatwy do zrozumienia sposób. Dostarcza też mechanizmów 
ułatwiających wymianę informacji i przekazywanie projektów 
innym.
Właściwości UML:

UML jest standardowym językiem do specyfikacji, wizualizacji, 

budowy i dokumentowania wszystkich wytworów (artefaktów) 
dowolnego systemu,

UML jest językiem o szerokim zakresie zastosowań,

UML nadaje się do opisu systemów programowych i 

nieprogramowych (tzw. systemów biznesowych) w różnych 
dziedzinach i branżach, np. w produkcji, bankowości, handlu 
elektronicznym itd.,

UML może być stosowany w całym procesie tworzenia systemu 

informatycznego, od gromadzenia wymagań, aż po implementację 
systemu,

UML nie jest to zastrzeżonym i zamkniętym językiem 

modelowania.

background image

GK (PSI(4) - 2009)

3

Wstęp

Rozwój UML:

lata 80-90: różnorodne metodologie, techniki , różnorodne 

notacje, symbole, oznaczenia,

lata 90-95: wyróżniają się 3 główne metody:

Grady’ego Boocha (Booch ’93) kładzie nacisk na 
projektowanie i tworzenie systemów oprogramowania. 
Niewielka przydatność dla analizy,

Jamesa Rumbaugha (OMT-2 - Object Modeling Technique) 
kładzie nacisk na analizę systemów informatycznych. 
Niewielka przydatność dla projektowania,

Ivara Jacobsona (OODE - Object-Oriented Software 
Engineering) kładzie nacisk na modelowanie biznesowe i 
analizę wymagań,

lata 95-97:

Powstał język UML 1.0 w firmie Rational Software 

Corporation jako wynik współpracy James’a Rumbaugh, 

Ivar’a Jacobson’a Grady’ego Boocha,

po roku 97:

standaryzacja, korekty i prace nad wersją 2.0

background image

GK (PSI(4) - 2009)

4

Wstęp

Cele UML:

wyposażenie użytkowników i analityków w graficzny 

język modelowania,

dostarczenie mechanizmów rozszerzania i 

specjalizacji (do koncepcji bazowej):

• budowanie modeli dla standardowych aplikacji,

• dodawanie nowych pojęć i notacji do koncepcji 

podstawowej,

• wybór pomiędzy różnymi wariantami.

wspomaganie specyfikacji niezależnych od języka 

programowania i metod tworzenia,

wspomaganie koncepcji: wzorców, komponentów, 

współpracy, programów ramowych.

UML jest 

językiem modelowania a 

nie metodą projektowania 
systemów informatycznych 

background image

5

Bibliografia:

1. Booch G., Raumbaugh J., Jacobson I., 

UML: Przewodnik 

użytkownika

WNTWarszawa 2001.

2. Cheesman J., Daniels J., 

Komponenty w UML

, WNTWarszawa 2004.

3. Booch G., Raumbaugh J., Jacobson I., UML: 

Przewodnik 

użytkownika

WNTWarszawa 2001.

4. Flower M., Scott K., 

UML w kropelce

, Wydawnictwo LT&P, Warszawa 

2002.

5. Wrycza S., Marcinkowski B., Wyrzykowski K., 

Język UML 2.0 w 

modelowaniu systemów informatycznych

, Helion, Gliwice 2005.

6. Śmiałek M., 

Zrozumieć UML. Metody modelowania obiektowego

Helion, Gliwice 2005.

7. Wrycza S. (red.), 

Ćwiczenia UML 2.1

, Helion 2006.

8. Maksimchuk R.A., Nalburg E.J., 

UML dla zwykłych śmiertelników

PWN SA, Warszawa 2007. 

9. Dąbrowski W., Stasiak A., Wolski M, 

Modelowanie systemów 

informatycznych w języku UML 2.1 w praktyce

, PWN SA, Warszawa 

2009.

10.Schmuller J., 

UML dla każdego

, Helion, Gliwice 2003. 

11.Graessle P., Baumann H., Baumann P., 

UML 2.0 w akcji. 

Przewodnik oparty na projektach

, Helion, Gliwice 2005.

Wstęp

GK (PSI(4) - 2009)

background image

Wstęp

W praktycznej realizacji UML przyjmuje postać graficznej 

prezentacji projektowanego systemu za pomocą logicznie 

powiązanych 

diagramów

. Diagramy opisują projektowany system 

z różnych punktów widzenia.

W UML są tworzone następujące diagramy:

6

GK (PSI(4) - 2009)

1. Diagramy struktury

• Klas

• Obiektów 

• Pakietów

• Przypadków użycia

• Struktur złożonych

• Wdrożeniowe

• Komponentów

2. Diagramy dynamiki

• Czynności

• Maszyny stanowej

• Zależności czasowych

• Interakcji: 

o

Sekwencji

o

Komunikacji

o

Sterowania 

interakcją

Projektując system informatyczny, rozpoczyna się 

przeważnie od tworzenia diagramów w następującej kolejności: 

Przypadków użycia

Klas

Czynności 

Sekwencji

. Są to 

wykorzystywane najczęściej. Pozostałe z nich bywają pomijane, 
zwłaszcza przy tworzeniu niedużych systemów informatycznych. 

background image

Wstęp

7

GK (PSI(4) - 2009)

Lp.

Diagram

Opis

1

Diagram klas (Class 
Diagram)

Graficzne przedstawienie statycznych, 
deklaratywnych elementów dziedziny 
przedmiotowej oraz związków między nimi

2

Diagram obiektów 
(Object Diagram)

Wystąpienie (realizacja, instancja) diagramu 
klas, odwzorowujące strukturę systemu w 
wybranym momencie jego funkcjonowania 

3

Diagram pakietów 
(Package Diagram)

Graficzne przedstawienie logicznej struktury 
systemu w postaci pakietów połączonych 
zależnościami  i zagnieżdżeniami

4

Diagram struktur 
złożonych 
(Composite 
Structure Diagram)

Graficzne przedstawienie współdziałających ze 
sobą elementów w celu osiągnięcia wymaganej 
wspólnej funkcjonalności

5

Diagram 
komponentów 
(Component 
Diagram)

Rodzaj diagramu wdrożeniowego, który 
odwzorowuje organizację i zależności między 
komponentami

6

Diagram 
rozlokowania 
(Deployment 
Diagram)

Rodzaj diagramu wdrożeniowego, który 
przedstawia sieć połączonych ścieżkami 
komunikowania węzłów z ulokowanymi w nich 
artefaktami

7

Diagram 
przypadków użycia 
(Use Case Diagram)

Graficzne przedstawienie przypadków użycia i 
aktorów oraz związków między nimi 
występujących w dziedzinie przedmiotowej 

8

Diagram czynności 
(Activity Diagram)

Graficzne przedstawienie sekwencyjnych i 
współbieżnych przepływów sterowania oraz 
danych pomiędzy uporządkowanymi ciągami 
czynności, akcji i obiektów 

9

Diagram maszyny 
stanowej (State 
Machine Diagram)

Graficzne odzwierciedlenie skokowego 
zachowania skończonych systemów stan-
przejście  

10

Diagram sekwencji 
(Sequence Diagram)

Rodzaj diagramu interakcji, opisujący interakcje 
pomiędzy instancjami klasyfikatorów systemu w 
postaci sekwencji komunikatów wymienianych 
między nimi

11

Diagram 
komunikacji 
(Communication 
Diagram)

Rodzaj diagramu interakcji, opisujący 
strukturalne związki pomiędzy instancjami 
klasyfikatorów, biorącymi udział w interakcji oraz 
wymianę komunikatów między nimi

12

Diagram zależności 
czasowych (Timing 
Diagram)

Rodzaj diagramu interakcji, reprezentujący na 
osi czasu dopuszczalne zmiany stanów, które 
może przyjmować instancja klasyfikatora 
uczestnicząca w interakcji 

13

Diagram sterowania 
interakcją 
(Interaction 
Overview Diagram)

Diagram dokumentujący przepływ sterowania 
pomiędzy logicznie powiązanymi diagramami i 
fragmentami interakcji z wykorzystaniem 
kategorii modelowania diagramów czynności

Pełna lista 
diagramów 
UML:

background image

GK (PSI(4) - 2009)

8

Modelowanie złożonych systemów jest zadaniem trudnym i 

angażuje wiele osób o różnym sposobie postrzegania systemu. 
Uwzględniający te różne punkty widzenia, UML jest często 
określany jako język modelowania posiadający 4+1 perspektyw

Cztery pierwsze opisują wewnętrzną strukturę systemu na różnych 
poziomach abstrakcji i szczegółowości. Ostatnia perspektywa (+1) 
opisuje funkcjonalność systemu widzianą przez jego 
użytkowników. 
Są to następujące perspektywy:

Perspektywa przypadków użycia 

– opisuje funkcjonalność, 

oczekiwanej od systemu przez przyszłych użytkowników (mówi 

co

  

powinien robić system),

Perspektywa logiczna 

– zawiera opis sposobu realizacji 

funkcjonalności, strukturę systemu widzianą przez projektanta 
(opisie 

jak

 funkcjonalność systemu ma być realizowana),

Perspektywa implementacyjna 

– opisuje szczegółowo 

poszczególne moduły i ich interfejsy wraz z zależnościami, z 
określeniem ograniczeń wynikających z zastosowanego języka 
programowania, wybranych technologii etc., jest  sposobem 
widzenia systemu przez programistę,

Wstęp

background image

GK (PSI(4) - 2009)

9

 Perspektywa procesowa 

– zawiera podział systemu na 

procesy (czynności) i procesory (jednostki wykonawcze), 
opisuje właściwości niefunkcjonalne systemu i służy 
programistom i integratorom,

 Perspektywa wdrożenia 

– definiuje fizyczny podział 

elementów systemu i sposób ich rozmieszczenia w 
infrastrukturze, perspektywa taka służy integratorom i 
instalatorom systemu.

Każda perspektywa korzysta z własnego 

zestawu diagramów pozwalających czytelnie 
przedstawić modelowane zagadnienie.

Wstęp

background image

Diagram 

Przypadków użycia

10

GK (PSI(4) - 2009)

Diagram Przypadków użycia 

(User Case Diagram – 

UCD), narzędzie stosowane w 

perspektywie przypadków 

użycia

,

 

odwzorowuje funkcjonalności tworzonego systemu 

wraz z jego otoczeniem poprzez graficzną prezentację:

własności

 tworzonego systemu informatycznego, 

postrzeganych i wymaganych przez 

użytkownika

 tego 

systemu,

usług

 oferowanych przez tworzony system informatyczny, 

postrzeganych przez 

otoczenie

 tego systemu.

Diagram UCD jest tworzony przed rozpoczęciem prac 

projektowych nad systemem informatycznym i odgrywa 

najważniejszą rolę w procesie tworzenia tego systemu, gdyż 

pozwala na identyfikację oczekiwanych funkcjonalności 

systemu, weryfikację postępów w dalszym modelowaniu, 

projektowaniu i implementacji tego systemu oraz zapewnia 

komunikatywność kontaktów między zespołem projektantów, 

a użytkownikiem systemu.

W procesie tworzenia przypadków użycia 

najistotniejsze jest to, że opisują, 

co robi system z punktu 

widzenia zewnętrznego obserwatora

, a 

nie jak to robi

, co 

oznacza, iż przypadki użycia, oprócz funkcjonalności, nie 
definiują jednocześnie sposobu ich implementacji. Określają 
one zatem wymagane zachowanie, ale nie narzucają sposobu 
jego rozwiązania, a więc dzięki nim użytkownicy i eksperci w 
dziedzinie problemu mogą rozmawiać z projektantami i 
programistami bez konieczności analizowania nieistotnych 
szczegółów. 

background image

Diagram 

Przypadków użycia

11

GK (PSI(4) - 2009)

Własności przypadków użycia. Przypadki użycia:

określają zbiory ciągów akcji, z których każdy reprezentuje 

interakcję elementów z otoczenia systemu z funkcjami 
samego systemu, których na etapie identyfikacji wymagań i 
analizy używa się do obrazowania, specyfikowania, tworzenia i 
dokumentowania spodziewanego zachowania systemu,

reprezentują wymagania funkcjonalne dla systemu jako 

całości,

obejmują interakcje aktorów i systemu, przy czym aktor 

(człowiek, system itp.) reprezentuje spójny zbiór ról 
odgrywanych przez użytkowników przypadku użycia w czasie 
jego realizacji,

mogą mieć warianty, które są uszczegółowionymi wersjami 

innych przypadków użycia, są częściami innych przypadków 
użycia lub rozszerzają znaczenie innych podstawowych 
przypadków użycia

mają za zadanie dostarczyć istotne wyniki, 

służą do analizy całego systemu, ale można je również 

stosować do analizy części systemu (np. podsystemów), a 
nawet pojedynczych jego elementów,

są podstawą do opracowania testów dla modelowanych 

funkcjonalności systemu. 

background image

Diagram 

Przypadków użycia 

notacja i semantyka

12

GK (PSI(4) - 2009)

Przypadek użycia 

(User Case). Przypadek użycia reprezentuje 

z

espół czynności realizowanych przez system w celu 

wytworzenia określonego wyniku, mającego znaczenie dla 

aktora (użytkownika). Zatem:

przypadek użycia reprezentuje sekwencję, inicjowanych 

przez aktora, niezbyt odległych w czasie operacji 
wykonywanych przez 
system,

przypadek użycia modeluje oczekiwanie zachowanie systemu 

wobec danego aktora, nie precyzując sposobu realizacji tego 
zachowania,

uruchomienie danego przypadku użycia ma dostarczyć 

aktorowi wymiernych wyników,

przypadek użycia zwykle opisuje pewien proces a nie 

elementarną czynność (działanie),

przypadek użycia jest całością zadania widzianego z punktu 

widzenia 

aktora

.

Graficzna symbol przypadku użycia:

Wystawienie faktury

background image

Diagram 

Przypadków użycia 

notacja i semantyka

13

GK (PSI(4) - 2009)

Każdy przypadek użycia może być opisany za pomocą:

nazwy,

przepływu zdarzeń (scenariuszy),

zależności i relacji,

• listy działań charakteryzujących przypadek użycia (przebieg 

zdarzeń)

,

wymagań specjalnych,

warunków wstępnych i/lub końcowych.
W zależności od potrzeb przypadek użycia może być 
zaopatrzony w dodatkowy opis szczegółowy.

Nazwa

 przypadku użycia może być tekstem 

zawierającym dowolną liczbę liter, cyfr i znaków 
przestankowych (z wyjątkiem dwukropka oddzielającego 
nazwę przypadku użycia od nazwy jego pakietu), zapisanym w 
wielu wierszach. W praktyce nazwę podaje się w formie 
krótkiego wyrażenia z czasownikiem w formie bezosobowej 
(najczęściej) na początku, określającego pewną czynność 
pochodzącą ze słownictwa modelowanego systemu, np.:

background image

Diagram 

Przypadków użycia 

notacja i semantyka

14

GK (PSI(4) - 2009)

Aktor 

(Actor). Aktor to d

owolny byt będący w interakcji z 

przypadkiem użycia (systemem), np. człowiek, inny program, 

sprzęt elektroniczny, składnica danych, sieć komputerowa, firma, 

jednostka organizacyjna. 

Aktor reprezentuje spójny zbiór ról 

odgrywanych przez użytkowników przypadku użycia w czasie 

interakcji z tym przypadkiem. Aktorzy nie są elementami 

tworzonego systemu informatycznego. Istnieją poza systemem. 

Zatem:

aktorami mogą być ludzie, urządzenia, inne systemy 

informatyczne,

pojęcia aktora odpowiada roli jaką on odgrywa w stosunku do 

systemu,

pojęcia aktora nie odpowiada zawsze np. konkretnej osobie 

fizycznej, bo ta może wcielać się w różne role (np. raz jako 

administrator, a raz jako zwykły użytkownik),

jeden aktor może reprezentować całą grupę fizycznych 

użytkowników systemu (aktor pracownik reprezentuje wszystkich 

pracowników firmy),

aktorzy są zwykle aktywni - inicjują przypadki użycia, choć mogą 

być również pasywni (np. aktor tylko korzystający z danych 

przetworzonych w systemie).

Klient

Graficzny symbol aktora:

background image

Diagram 

Przypadków użycia 

notacja i semantyka

15

GK (PSI(4) - 2009)

Nazwa

 aktora jest to zwykle rzeczownik lub określenie 

rzeczownikowe w liczbie pojedynczej. Nazwa aktora nie ma 
identyfikować poszczególnych, realnie istniejących obiektów, ale 
role
, które pełnią. 
W procesie ustalania aktorów należy kierować się następującymi 
przesłankami:

jaka grupa użytkowników (w tym także systemów, aplikacji itp.) 

potrzebuje wspomagania swojej działalności przez tworzony 
system,

jacy użytkownicy i w jakim zakresie są niezbędni do 

prawidłowego funkcjonowania tworzonego systemu (użytkownicy 
merytoryczni i użytkownicy wspomagający),

w jakie środki komunikacji z tworzonym systemem będą 

wyposażeni użytkownicy 
i jakie techniki komunikacji z systemem będą przez nich 
stosowane.

Każdy aktor musi użytkować co najmniej jeden przypadek 

użycia (musi być z nim połączony na diagramie), natomiast 
przypadek użycia musi 
być użytkowany przez co najmniej jednego 
aktora (musi być z nim połączony na diagramie). Takie połączenie 
aktora z przypadkiem użycia oraz połączenia między przypadkami 
użycia noszą nazwę związków.

background image

Diagram 

Przypadków użycia 

notacja i semantyka

16

GK (PSI(4) - 2009)

Związek 

(Relationship). Związek oznacza interakcję aktora z 

przypadkami użycia, która może oznaczać ich inicjowanie 
(uruchamianie), dostarczanie im danych, otrzymywanie od nich 
danych przetworzonych lub inne użytkowanie funkcjonalności 
realizowanej przez ten przypadek użycia. Związek nie oznacza 
żadnych konkretnych rozwiązań, np. nie wskazuje na to, jakie 
dane są przekazywane od aktora do przypadku użycia.

Symbolami graficznymi związku są 

asocjacje 

nieskierowane i skierowane, obrazowane za pomocą 
następujących znaków graficznych:

 

Asocjacja nieskierowana 

(linia bez strzałki) wskazuje na 

domyślną dwustronną komunikację pomiędzy aktorem a 
przypadkiem użycia. 

Asocjacja skierowana 

(linia ze strzałką) jest 

stosowana w przypadku, gdy zachodzi potrzeba wskazania 

inicjatora

 usługi. Skierowana asocjacja wskazuje również na fakt, 

że element inicjujący zna zawsze element inicjowany, natomiast 
element inicjowany nie zna tego pierwszego.

background image

Diagram 

Przypadków użycia 

notacja i semantyka

17

GK (PSI(4) - 2009)

Przykład związku:

Możliwości uszczegółowiania związków 

między przypadkami 

użycia 

stwarzają zależności (dependencies), które wskazują na 

taki związek, w którym zmiana jednego przypadku użycia wpływa 
na drugi. Wyróżnia się zależności:

zawierania (include),

rozszerzania (extend).

Klient

Złożenie zamówienia

background image

Diagram 

Przypadków użycia 

notacja i semantyka

18

GK (PSI(4) - 2009)

Związek 

zawierania

 polega na tym, że 

zawierający

 

(bazowy) przypadek użycia rozszerza swoją funkcjonalność na 
zachowanie innego, 

zawieranego

 przypadku użycia, który stanowi 

wydzieloną część funkcjonalności zawierającego przypadku 
użycia. Zawierany
 przypadek użycia nie jest elementem 
samodzielnym, uruchamianym tylko i zawsze, gdy jest 
uruchamiany zawierający
 przypadek użycia. Przykład:

istota zależności 

przykład realizacji 

zależności

Tworzenie związku zawierania jest zasadne, gdy:

istnieje możliwość wyłączenia w postaci zawieranego przypadku 
użycia pewnej funkcjonalności, wspólnej dla kilku różnych 
przypadków użycia,

interakcje aktor-system są bardzo liczne.
Związki zawierania powodują istotne uproszczenie złożoności 
modelu systemu oraz oprogramowania systemu. 

Dokonanie wypłaty

Sprawdzenie stanu kasy

<<include>>

Zawierający

Zawierany

<<include>>

background image

GK (PSI(4) - 2009)

19

Źródło: R. Simiński: Diagramy przypadków użycia (Internet).

Diagram 

Przypadków użycia 

notacja i semantyka

Przykład związku 

zawieranie

:

background image

Diagram 

Przypadków użycia 

notacja i semantyka

20

GK (PSI(4) - 2009)

Związek 

rozszerzania

 polega na tym, że 

rozszerzany

 

(bazowy) przypadek użycia rozszerza swoją funkcjonalność o 
funkcjonalność innego, 

rozszerzającego

 przypadku użycia, który 

w sposób fakultatywny może zostać włączony do rozszerzanego 
przypadku użycia. Rozszerzający
 przypadek użycia może być 
elementem samodzielnym. Przykład:

istota zależności 

przykład realizacji 

zależności

Uruchamianie rozszerzającego przypadku użycia następuje 
łącznie z rozszerzanym przypadkiem użycia, ale dopiero po 
spełnieniu warunków określonych przez użytkownika, które mogą 
być zapisane na diagramie w dowolnym języku.

Dokonanie wypłaty

Zapytanie o nominały

<<extend>>

Rozszerzany

Rozszerzający

Warunek roszerzenia

<<extend>>

background image

Diagram 

Przypadków użycia 

notacja i semantyka

21

GK (PSI(4) - 2009)

Przykład związku 

rozszerzanie

:

Źródło: R. Simiński: Diagramy przypadków użycia (Internet).

background image

Diagram 

Przypadków użycia 

notacja i semantyka

22

GK (PSI(4) - 2009)

Generalizacja 

(Generalization). Generalizacja (także uogólnienie

jest związkiem pomiędzy aktorami lub przypadkami użycia, w 

którym jeden z nich jest 

przodkiem

, a drugi – 

potomkiem

Potomek posiada wszystkie atrybuty przodka i dodatkowo jeszcze 

specyficzne, własne: potomek jest niejako specjalizacją 

(uszczegółowieniem) przodka. Generalizacja umożliwia tworzenie 

hierarchii 

dziedziczenia

 (inheritance), która oznacza, że obiekty 

będące potomkami dziedziczą atrybuty przodka, dodając własne 

atrybuty indywidualne.

Generalizację graficznie oznacza się strzałką z pustym 

grotem, skierowanym od potomka do przodka. Przykłady związku 

generalizacji:

Generalizacja pomiędzy 

aktorami 

oznacza, że jeden aktor 

odgrywa wszystkie role drugiego aktora i dodatkowo może 

odgrywać jeszcze inne, własne role, a pomiędzy 

przypadkami 

użycia 

– że jeden przypadek użycia jest uszczegółowioną wersją 

drugiego i ten uszczegółowiony dziedziczy zachowanie ogólnego 

oraz może dodawać dodatkowe zachowania własne.

Dyrektor

Pracownik

background image

GK (PSI(4) - 2009)

23

Diagram 

Przypadków użycia 

notacja i semantyka

Przykład 
diagramu 
przypadk
ów użycia

background image

Diagram 

Przypadków użycia 

proces tworzenia

24

GK (PSI(4) - 2009)

Proces tworzenia diagramu przypadków użycia obejmuje 

następujące podstawowe etapy:
1.Identyfikacja aktorów.
2.Identyfikacja przypadków użycia.
3.Opracowanie związków (asocjacji).
4.Uszczegółowienie diagramu.
Podstawowy zbiór danych niezbędnych do utworzenia diagramu 
przypadków użycia analityk, twórca tego diagramu, uzyskuje 
poprzez opracowanie – wspólnie z przyszłym użytkownikiem 
systemu informatycznego – wymagań do tego systemu. 

Zwykle 

pod pojęciem wymagań rozumie się wyrażenie odczuwalnej 
potrzeby rozwiązania określonych problemów, których 
rozwiązanie pozwoli na osiągnięcie zamierzonego celu. 

szczególności wymagania powinny obejmować:

potrzeby i ograniczenia dotyczące funkcjonalności tworzonego 

systemu informatycznego, własności oprogramowania, interfejsu 
użytkownik-system, serwisu itp. (wymagania funkcjonalne),

określenie sposobu prezentacji potrzeb i ograniczeń (język 

wymagań),

potrzeby, których spełnienie nie jest konieczne i wymagania o 

różnych priorytetach (wymagania niefunkcjonalne).

background image

Diagram 

Przypadków użycia 

proces tworzenia

25

GK (PSI(4) - 2009)

Jedną z najczęstszych przyczyn niepowodzenia projektów 

systemów informatycznych są problemy związane z 
wymaganiami do nich. Brak części wymagań, wymagania 
niekompletne, źle sformułowane, różnie rozumiane przez 
użytkownika i projektanta bądź często zmieniane w trakcie 
trwania prac projektowych nad systemem są najczęściej 
wymienianymi przyczynami powstawania systemów z usterkami 
bądź przerywania w ogóle prac nad systemem. W celu uniknięcia 
tych przykrych następstw, konieczne jest przed rozpoczęciem 
prac projektowych możliwie najbardziej sformalizowane 
zapisanie wymagań dotyczących całego systemu. 

W przypadku systemu informatycznego wymagania 

obejmują dwie ich kategorie: wymagania funkcjonalne 
wymagania niefunkcjonalne
.

Wymagania funkcjonalne 

to wymagania związane z 

szeroko pojętą funkcjonalnością systemu, rozumianą jako 
określenie tego, 

co system ma robić

.

Wymagania niefunkcjonalne 

odnoszą się do właściwości 

systemu takich, jak jego bezpieczeństwo, niezawodność, 
skalowalność itp., które w sumie mają określać 

jaki system ma 

być

Wyniki modelowania wymagań funkcjonalnych są 

prezentowane w postaci diagramów przypadków użycia

background image

GK (PSI(4) - 2009)

26

Diagram 

Klas - 

notacja i 

semantyka

Diagram Klas 

(Class Diagram - CD) przedstawia 

statykę systemu i stanowi podstawę do projektu przyszłej 
obiektowej bazy danych
. Formalnie diagram Klas można 
określić jako graficzna prezentacja statycznych, 
deklaratywnych elementów dziedziny przedmiotowe oraz 
związków między nimi.

Podstawowymi pojęciami przy tworzeniu diagramu 

klas są pojęcia 

obiektu 

klasy

.

Obiektem 

jest każdy byt (osoba, rzecz, pojęcie) 

umiejscowiony w dziedzinie przedmiotowej tworzonego 
systemu informatycznego i mający znaczenie dla tego 
systemu.

Z punktu widzenia modelowania obiekt jest 

opisywany za pomocą trzech elementów:

tożsamości,

stanu,

zachowania.

Graficzny symbol obiektu: 

student_Abacki

background image

GK (PSI(4) - 2009)

27

Diagram 

Klas - 

notacja i 

semantyka

Każdy obiekt jest opisywany za pomocą stałego zbioru 

charakteryzujących go 

atrybutów

 (cech, właściwości – property

np. nazwisko, imię, wzrost. Z każdym atrybutem jest związany 
zbiór możliwych jego wartości (np. zbiorem wartości atrybutu 
imię
 jest zbiór imion), przy czym atrybut w danej chwili może 
przyjmować tylko jedną wartość.

Stan obiektu

 (state) jest definiowany poprzez zbiór 

wartości wszystkich jego atrybutów. 

Tożsamość obiektu 

(identity) jest określana przez wartość 

atrybutu wyróżniającą ten obiekt spośród innych o takich samych 
atrybutach. Np. tożsamość studenta na uczelni jest określana 
poprzez wartość atrybutu „Numer albumu”.

Zachowanie obiektu 

(behavior) jest to zbiór usług, które 

obiekt potrafi wykonać na rzecz innych obiektów. Zachowanie 
obiektu zapewnia możliwość modelowania dynamiki 
(funkcjonowania) systemu. W ramach tej dynamiki obiekt może 
prosić inny obiekt o wykonanie przez niego na swoją rzecz 
określonej usługi, oczywiście możliwej do wykonania przez obiekt 
poproszony. Wykonanie usługi może prowadzić do zmiany stanu 
obiektu. Zwracanie się o wykonanie usługi następuje w formie 

komunikatu

 (message) z 

parametrami

 (parameters), które 

stanowią wartości atrybutów obiektu, pozwalające na 
odpowiednie sterowanie realizacją usługi.

 Efekt wykonania 

usługi zależy od stanu obiektu, parametrów wysłanego przez 
niego komunikatu oraz  od stanu obiektów biorących udział w 
wykonaniu usługi.

background image

GK (PSI(4) - 2009)

28

Klasa

 (Class) jest nazwanym opisem grupy obiektów 

o podobnych właściwościach. Klasa nie jest zbiorem 
obiektów, lecz typem obiektu i jego właściwości: cech 
strukturalnych i behawioralnych. Do cech strukturalnych 
należą atrybuty i asocjacje. Do cech behawioralnych 
(zachowań) należą operacje i metody. Każdy obiekt 
przynależny do tej samej klasy, nazywany 

instancją

, ma 

wszystkie atrybuty charakteryzujące tę klasę oraz dostarcza 
wszystkich usług określonych przez cechy behawioralne 
klasy.

Klasa przechowuje definicje atrybutów, natomiast 

wartości atrybutów przechowywane są w obiektach. 

Atrybut klasy

 jest to nazwana właściwość klasy, 

określająca zbiór wartości, które mogą przyjmować jej 

instancje. Atrybutu klas charakteryzują pojedyncze obiekty 

lub niewielkie grupy obiektów, tworząc dla każdego z nich 

niezależną instancję. Atrybuty mogą być przedstawiane na 

diagramach na różnym poziomie szczegółowości.

Operacja 

jest specyfikacją usługi udostępnianej przez 

obiekt. 

Metoda

 jest implementacją operacji w klasie. 

Określa jak obiekt z danej klasy wykonuje swoje działania. 

Operacja może mieć zasięg obiektu (instancji) lub całej 
klasy. Większość operacji ma zasięg obiektu. Szczególnym 
przypadkiem operacji o zasięgu klasy jest operacja 
tworzenia nowych obiektów w klasie, tzw. konstruktor.

Diagram 

Klas - 

notacja i 

semantyka

background image

GK (PSI(4) - 2009)

29

Ze względu na różnorodność sposobów 

specyfikowania klas, stosuje się w diagramach różne ich 
symbole:

na diagramie klasy nie występują sekcje atrybutów i 

operacji:

klasa z niewyspecyfikowanymi operacjami lub atrybutami:

klasa z wyspecyfikowanymi atrybutami i operacjami:

Diagram 

Klas - 

notacja i 

semantyka

Student

+NrAlbumu
+Pesel
+Nazwisko
+Imię

Student

+aktualizuj()

Student

Student

+NrAlbumu
+Pesel
+Nazwisko
+Imię

+aktualizuj()

background image

Składnia atrybutów klasy:

[widoczność] 

nazwa

 [

: typ 

[krotność] [{ograniczenia}] = wartość domyślna

30

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

widoczność

 opcjonalna, nie ma wartości domyślnej,

 wskazuje czy atrybut jest dostępny spoza klasy,

+

 - 

publiczny 

– atrybut jest widoczny przez każdy element 

systemu,

 - 

prywatny 

– atrybut jest widoczny tylko we własnej klasie,

#

 - 

chroniony 

– atrybut jest widoczny tylko wewnątrz własnej 

klasy i w jej podklasach,

publiczny wewnątrz pakietu 

– atrybut jest widoczny tylko 

wewnątrz własnego pakietu,

typ

jest opcjonalny, nie ma wartości domyślnej,

typem atrybutu może być inna klasa,

pozostałe typy: boolean, integer, real, string.

background image

GK (PSI(4) - 2009)

31

  krotność (liczność)

oznacza liczbę wartości, które mogą być związane 
jednocześnie z tym samym atrybutem w atrybucie, krotność, 
powtarzalność atrybutu (np. imiona – najwięcej 2),

opcjonalna, ma wartość domyślną równą 1,

oznaczenia krotności:

   

1..* 

- jedna lub wiele wartości,

   

3..5 

– od 3 do 5 wartości (przedział),

   

2,4,18

 – 2 lub 4 lub 18 wartości (wyliczenie),

   

*

  - dowolna liczba wartości,

1..* 

- fakultatywność: co najmniej 1 wartość,

   0..1 

– opcjonalnie: co najwyżej 1 wartość,

ograniczenia

ordered

  - wskazuje, że wartości atrybutu są 

uporządkowane,

unordered

 - wskazuje, że wartości  nie są uporządkowane 

(domyślnie), 

unique 

– wartości atrybutu nie powtarzają się (np. numer 

albumu studenta),

nonunique 

– wartości atrybutu mogą się powtarzać (np. 

imię studenta),

frozen 

– wartość atrybutu nie może być zmodyfikowana po 

jej przypisaniu.

Diagram 

Klas - 

notacja i 

semantyka

background image

[widoczność] 

nazwa({lista_parametrów}) [: typ zwracany]

 [{ograniczenia}]

Operacja to proces, który klasa potrafi wykonać.

32

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

lista_parametrów ([rodzaj] nazwa : typ [= 

wartość_domyślna])

• rodzaj  - jest opcjonalny, ma wartość domyslną in i może być 

następujący:

in – parametr jest tylko wejściowy i nie może być modyfikowany 

przez operację,

out – parametr jest tylko wyjściowy i może być modyfikowany 

przez operację,

inout – parametr jest wejściowo-wyjściowy, wprowadzany jako 

wejściowy, a następnie modyfikowany przez operację,

return – zwracany z operacji.

• typ zwracany i wartość-domyślna – są opcjonalne i nie 

posiadają wartości domyślnych.

background image

33

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

ogranizczenia

isQuery

 - operacja jest zapytaniem i zwraca wartość bez 

jakiejkolwiek modyfikacji klasy,

sequential 

operacja może być wykonana tylko przez 

jeden wątek programu,

leaf  

-

 

operacja nie może być przedefiniowana przez klasy 

pochodne (jest odwzorowywana na final w Javie, a w C++ 

odpowiada metodom zadeklarowanym bez słowa 

kluczowego virtual),

guarded  

-

 podobnie jak sequential, ale współbieżne 

wywołania tej operacji są obsługiwane sekwencyjne, bez 

udziału obsługującego,

concurrent 

operacja może jednocześnie obsługiwać wiele 

wątków ją wywołujących.

background image

wyszukaj(tytuł: String) : Wydawnictwo[]

post:
wynik != null
wynik instanceof
 

Wydawnictwo[]

pre: 
tytuł != null

Warunki 

wstępne

opisują stan 

systemu 
wymagany przed 
wykonaniem 
operacji

Warunki 
końcowe

gwarancje dotyczące 
stanu systemu po 
wykonaniu operacji

34

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

background image

GK (PSI(4) - 2009)

35

Diagram 

Klas - 

notacja i 

semantyka

W diagramie klas klasy mogą być ze sobą łączone za 

pomocą związkami, następujących rodzajów: 

asocjacja

 – obiekty klas są czasowo ze sobą powiązane,

uogólnienie (generalizacja)

 – jedna klasa (podklasa) jest 

szczególnym przypadkiem drugiej klasy (nadklasy),

zależność

 – zmiana jednej klasy wpływa na drugą,

agregacja

 – obiekt jednej klasy jest częścią obiektu drugiej 

klasy.

Zależności

 są najprostszym i najsłabszym rodzajem 

relacji łączących klasy. Graficzne zależność jest obrazowana w 
sposób następujący:

Klasa A

Klasa B

<<call>>

background image

GK (PSI(4) - 2009)

36

Diagram 

Klas - 

notacja i 

semantyka

Zależności oznaczają, że zmiana klasy wywołującej (A) w 
pewien sposób wpływa na klasę wywoływaną (B), np.:

«call» 

- klasa A wywołuje operację w klasie B,

«create» 

- klasa A tworzy instancje klasy B,

«instantiate» 

- obiekt A jest instancją klasy B,

«use» 

- do funkcjonowania klasa A wymaga klasy B,

«import» 

- część publiczna klasy B jest dołączana do klasy A,

«permit» 

- klasa B zezwala klasie A na dostęp do swoich 

atrybutów prywatnych. 

Pracownia

StanowiskoBadawcze

<<use>>

background image

Asocjacja

 reprezentuje czasowe powiązanie pomiędzy 

obiektami dwóch (asocjacje binarne) lub więcej (asocjacje n-arne) 

klas. Obiekty związane asocjacją są od siebie niezależne.

Asocjacja jest też używana jako alternatywny (obok atrybutu) 

i równorzędny sposób zapisu właściwości klasy. Graficznie asocjacja 

w najprostszej formie jest przedstawiana za pomocą linii:

asocjacja binarna

asocjacja n-arna

37

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

Klasa A

Klasa A

Klasa B

Klasa A

Klasa C

Pełna interpretacja asocjacji 
wymaga znajomości takich 
jej atrybutów, jak: 

nazwa

,

 

role powiązanych klas

nawigacji

,

 liczebności 

i

 

agregacji

.

background image

GK (PSI(4) - 2009)

38

Diagram 

Klas - 

notacja i 

semantyka

Nazwa asocjacji

. Asocjacje mogą być nienazwane i 

nazwane, a te ostatnie – także czasami ze wskazaniem 
kierunku odczytu asocjacji (strzałka przy nazwie):

asocjacja nienazwana 

asocjacja 

nazwana

Role

. Każda klasa pełni rolę jakąś rolę w asocjacji. W 

asocjacji binarnej rola klasy oznacza powinność pełnioną 
przez nią na rzecz drugiej klasy. W asocjacji n-arnej rola klasy 
oznacza powinność, którą ona pełni na rzecz każdej z 
powiązanych pozostałych klas. Graficzne oznaczenie ról w 
asocjacji:  

Klasa D

Klasa E

Klasa D

Klasa E

zarządza

Klasa D

Klasa E

zarządzanie

+zarządzany

+zarządca

background image

GK (PSI(4) - 2009)

39

Diagram 

Klas - 

notacja i 

semantyka

Nawigacja 

oznacza komunikowanie się klas procesie 

wykonywania operacji. Zwykła asocjacja (linia) oznacza 
komunikowanie się dwukierunkowe, co oznacza, że klasy 
wymieniają między sobą komunikaty w trakcie wykonywania 
operacji. W przypadku, gdy taka komunikacja jest planowana 
jako jednokierunkowa, do jej oznaczania stosuje się 
oznaczenie w postaci strzałki, skierowanej od nadawcy do 
odbiorcy, np.:

Nawigacja kierunkowa może być uzupełniona o warunki jej 
realizowalności.

Liczebność

 oznacza liczbę obiektów jednej klasy, które 

w tym samym czasie mogą być związane z jednym obiektem 
drugiej klasy znajdującej się w tej samej asocjacji z klasą 
pierwszą. Liczebność jest określana dla każdej klasy w 
asocjacji i jej interpretacja polega na rozpatrzeniu sytuacji, 
gdy po jednej stronie asocjacji występuje jeden obiekt, 
natomiast liczba obiektów drugiej klasy, które są z nim 
związane, jest ustalana. 

  

Klasa G

Klasa F

background image

GK (PSI(4) - 2009)

40

Diagram 

Klas - 

notacja i 

semantyka

Oznaczenia liczebności i ich interpretacja są podobne 

do oznaczeń krotności atrybutów klas. I tak:   

1

 - dokładnie jeden obiekt,

n

 - dokładnie 

n>1

 obiektów,

n..m 

- od 

n

 do 

m

 obiektów (

n,m>1

m>n

),

*

  - dowolna liczba obiektów,

1..* 

- fakultatywność: co najmniej 1 wartość,

0..1 

– opcjonalnie: co najwyżej 1 obiekt,

0..* 

- opcjonalnie: żaden obiekt lub wiele obiektów.

  

Klient

Samochód

zakup +produkt

+właściciel

1..*

1

Jeden 

klient 

(obiekt), drogą 

zakupu, może stać się 
właścicielem co najmniej 
jednego  produktu w postaci 
samochodu, natomiast jeden 

samochód

 (obiekt) może 

mieć tylko jednego 
właściciela.

background image

GK (PSI(4) - 2009)

41

Diagram 

Klas - 

notacja i 

semantyka

Agregacja 

(aggregation) opisuje związek całość-część 

pomiędzy klasami. Oznacza to, że agregacja umożliwia 
oznaczanie sytuacji, w których wiele obiektów cząstkowych 
składa się na obiekt całościowy. Wyróżnia się dwa typy 
agregacji:

agregację całkowitą 

(kompozycja), inaczej agregację silną 

lub składową, służącą do modelowania „nierozerwalnego” 
związku całość-część, w którym nie ma sensu samodzielne 
istnienie części,

agregację częściową

, inaczej agregację słabą lub 

współdzieloną.
Symbole graficzne agregacji występują agregatach, przy czym 
romb wypełniony 
           oznacza agregację całkowitą, a romb pusty           - 
częściową.

Obydwie relacje oparte są na pojęciach 

agregatu

 

(obiekt stanowiący całość) oraz 

segmentu

 (część obiektu).

Role poszczególnych składników relacji agregacji są ściśle 
określone:

agregat

  – „składa się z..”, „zawiera”, „obejmuje”,

segment

 – „wchodzi w skład”, „należy do”, „jest zawarty 

w”.

background image

GK (PSI(4) - 2009)

42

Diagram 

Klas - 

notacja i 

semantyka

W przypadku 

agregacji całkowitej 

segmenty, tj. 

obiekty będące częściami agregatów nie mogą istnieć 
samodzielnie i niezależnie funkcjonować, co oznacza, że 
usunięcie agregatu powoduje automatyczne usunięcie jego 
segmentów.

W przypadku 

agregacji częściowej 

segmenty, tj. 

obiekty będące częściami agregatów mogą samodzielnie 
istnieć i funkcjonować, co oznacza, że usunięcie agregatu 
nie powoduje automatycznego usunięcie jego segmentów.

Komputery (

Komputer

będące (jeżeli były) na 
wyposażeniu laboratorium 
(

Laboratorium

) nie ulegają 

likwidacji w przypadku 
likwidacji laboratorium i 
mogą być wykorzystane gdzie 
indziej.

Laboratorium

Komputer

1

0..*

Laboratorium

StanowiskoBadawcze

1

1..*

Stanowiska badawcze 
(

StanowiskoBadawcze

ulegają likwidacji w 
przypadku likwidacji 
laboratorium 
(

Laboratorium

).

background image

Uogólnienie (generalizacja) 

reprezentuje hierarchiczny związek pomiędzy 

elementem ogólnym 

(klasa abstrakcyjna, nadklasa, przodek) a 

specyficznym jego 

rodzajem 

– klasa konkretna (podklasa, potomek). Klasy abstrakcyjne nie mają 

instancji (konkretnych obiektów), ale stanowią uogólnienie obiektów klas 

konkretnych. O klasie abstrakcyjnej mówi się, że jest generalizacją klasy 

konkretnej, natomiast o klasie konkretnej mówi się, że jest specjalizacją klasy 

abstrakcyjnej.

Klasom abstrakcyjnym można przypisywać atrybuty i operacje podlegające 

dziedziczeniu 

zgodnie z hierarchią klas dzięki, któremu własności klasy 

abstrakcyjnej są importowane do jej klas konkretnych, które oprócz własności 

indywidualnych posiadają także wszystkie własności swojej klasy abstrakcyjnej.

43

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

Pracownik

PracownikEtatowy

PracownikSezonowy

Klasy na najniższym poziomie 
hierarchii noszą nazwę liści 
(leafs
), a na najwyższym poziomie 
hierarchii – korzeni (roots
). 

background image

Na związek uogólnienia mogą być nakładane następujące ograniczenia:

{complete} 

– zawiera wszystkie klasy konkretne dla danej klasy 

abstrakcyjnej<

{incomplete}

 – zestaw klas konkretnych przypisany danej klasie 

abstrakcyjnej nie jest kompletny,

{disjoint} 

– domyślny typ uogólnienia oznaczający, że każda klas 

konkretna występująca w danej hierarchii jest związana w ogóle tylko z 
jedną klasa abstrakcyjną,

{overlapping} 

– występujące w hierarchii klasy mogą mieć wspólne 

klasy konkretne (dziedziczenie wielokrotne).  

44

GK (PSI(4) - 2009)

Diagram 

Klas - 

notacja i 

semantyka

Pracownik

PracownikEtatowy

PracownikSezonowy

{incomple
te}

Jeszcze mogą być inne 
kategorie 
pracowników niż tylko 
wymienione dwie.

background image

45

GK (PSI(3) - 2009)

1. Zidentyfikuj kandydujące rzeczowniki ze sformulowania 

problemu i wymagań jako potencjalne klasy.

2. Szukaj transakcji, zdarzeń, ról, i rzeczy dotykalnych, np.

3. Sklasyfikuj rzeczowniki jako: ludzie, miejsca, rzeczy, 

organizacje, pojęcia (zasady, pomysły, reguły), zdarzenia 
(rzeczy, które się zdarzają).

4. Zidentyfikuj rzeczowniki, które nie mają kompletnej definicji. 

Przypisz je do kategorii atrybutów lub klas obiektów.

Transakcje: pożyczka, spotkanie, sprzedaż
Zdarzenia: lądowanie, zapytanie
Role: matka, ojciec, nauczyciel, pasażer
Rzeczy dotykalne: samochód, czujnik, składnik, samolot

Diagram 

Klas - 

notacja i 

semantyka – identyfikacja 

obiektów i klas

background image

46

GK (PSI(3) - 2009)

5. Zidentyfikuj potencjalne kolekcje (zbiory). Pewne 

rzeczowniki implikuja kolekcje i mogą stać się kontenerami 
(container
). Kolekcje wymagają bazy danych i specjalnego 
programowania.

6. Zidentyfikuj obiekty stanowiące pogranicze systemu: obiekty 

dostępne dla innych systemów, linie komunikacyjne, 
urzadzenia peryferyjne, obiekty wejścia/wyjścia,..

Np.: każdy dostęp jest rejestrowany w dzienniku – dziennik jest kolekcją.

Charakterystyczne cechy obiektów we/wy: 

• ich atrybuty lub stan są ulotne (niestabilne),

• zmieniają się pod wpływem bodźców zewnętrznych,

• są źródłem/przechowalnią komunikatów z zewnątrz,

• nie można ich usunąć.

Diagram 

Klas - 

notacja i 

semantyka – identyfikacja 

obiektów i klas

background image

47

GK (PSI(3) - 2009)

1. Rzeczownik może być atrybutem, jeżeli nie można 

przypisać mu zachowania i atrybutów.

2. Rzeczownik może być atrybutem, jeżeli wyjaśnienie jego 

znaczenia zmusza do odwołania się do jakiegoś innego 
rzeczownika (oznaczającego obiekt). 

Np. rzeczownik 

“kolor” zmusza do zadania pytania “kolor czego?”

.

3. Zastanów się czy coś, co może być atrybutem, nie jest 

asocjacją między klasami.

4. Zidentyfikuj klasę lub asocjację, która jest najlepszym 

kandydatem jako “właściciel” atrybutu.

Diagram 

Klas - 

notacja i 

semantyka – identyfikacja 

atrybutów

background image

48

GK (PSI(3) - 2009)

1. Wyciągnij przed nawias wszelkie wspólne własności 

(operacje i atrybuty) kilku powiazanych klas.

2. Zgrupuj te wspólne własności w jedną super-klasę.

3. Nazwij tę superklasę w taki sposób, aby każda pochodna 

klasa mogła byc uważana za podklasę. 

Np. pies jest 

superklasą, pekińczyk, jamnik, pudel są podklasami klasy 
pies

4. Podklasy moga mieć puste lub niepuste przecięcie. Oznacz 

je odpowiednio. 

Diagram 

Klas - 

notacja i 

semantyka – generalizacja

background image

GK (PSI(4) - 2009)

49

Diagram 

Czynności - 

notacja i 

semantyka

Diagram Czynności 

(Activity Diagram - AD) jest 

jednym z diagramów opisujących dynamikę systemu i 
stanowi graficzną reprezentację przepływu sterowania. 
Diagram AD:

powinien być stosowany:

do analizowania przypadków użycia - gdy interesują 

bardziej operacje niezbędne do realizacji danego 

przypadku (czy też wzajemne zależności między tymi 

operacjami), a nie to, kto jest odpowiedzialny za ich 

przeprowadzenie,

do zrozumienia interakcji zachodzących między 

przypadkami użycia,

do modelowania przetwarzania wielowątkowego,

nie powinien być stosowany:

do pokazywania współpracy między obiektami w 

trakcie realizacji przypadku użycia – do tego bardziej 

nadają się diagramy interakcji,

do pokazywania zachowań obiektów w trakcie ich życia 

-  w tym celu powinno się wykorzystywać diagramy 

stanów.

Diagramy AD są tworzone z wykorzystaniem 

następujących podstawowych elementów graficznych: 

czynności

,

 akcje

,

 przepływy sterowania

,

 początek

,

 

koniec 

zakończenie przepływu 

oraz

 składnicy danych

.

background image

GK (PSI(4) - 2009)

50

Diagram 

Czynności - 

notacja i 

semantyka

Czynności

 

(activities) mogą określać rozbudowaną 

funkcjonalność, tzn. reprezentować złożone procesy 
biznesowe bądź algorytmy przetwarzania. Czynność definiuje 
się jako określone zachowanie, złożone z logicznie 
uporządkowanego ciągu czynności (akcji) oraz obiektów w 
celu zrealizowania pewnego procesu.  

Graficzny symbol czynności:                                                 . 

W celu precyzyjniejszego opisu czynności dokonuje się ich 
dekompozycji
 na czynności bardziej proste. Czynnościami 
nie podlegającymi dalszemu dekomponowaniu są 

akcje

które definiuje się jako elementarne jednostki specyfikacji 
zachowania, które reprezentują transformację 
(przetwarzanie) w modelowanym systemie.
Przykłady graficznej prezentacji akcji
:

background image

GK (PSI(4) - 2009)

51

Diagram 

Czynności - 

notacja i 

semantyka

Przepływ sterowania 

(control flow) jest relacją między 

dwoma czynnościami bądź akcjami, wskazująca na kolejność 
wykonywania tych czynności bądź akcji. Symbolem graficzny 
przepływu sterowania jest strzałka                       , której 
kierunek wyznacza kierunek przepływu sterowania i 
następstwo wykonania czynności bądź akcji.

Prezentacja rzeczywistych sytuacji wymaga 

umiejętności graficznego prezentowania przepływów 
decyzyjnych 
oraz przepływów współbieżnych. Przepływy 
decyzyjne są to przepływy alternatywne, uzależnione od 
spełnienia 

warunków

, czy wykonania 

scalenia 

lub

 rozwidlenia

Warunek graficznie prezentuje się za pomocą 

symbolu decyzyjnego postaci:                        .

Scalenie

 i 

rozwidlenie

 oznacza się za pomocą symboli:              

oraz                  . 

background image

GK (PSI(4) - 2009)

52

Diagram 

Czynności - 

notacja i 

semantyka

Początek i koniec 

są oznaczane na diagramie za pomocą symboli: 

początek -         , koniec -        . 

Zakończenie przepływu 

to punkt zatrzymania wybranego 

przepływu sterowania. Na jednym diagramie czynności może 
wystąpić więcej niż jedno zakończenie 

przepływu, które jest oznaczane symbolem        .

Na diagramach czynności mogą również występować 

sygnały

, które definiuje się jako asynchroniczne bodźce 

inicjujące czynności lub akcje. Wyróżnia się sygnały 

nadawcze

 

oraz 

odbiorcze

, odpowiednio wysyłane i odbierane przez 

czynności lub akcje.  Graficzne symbole sygnałów:

nadawczy:                             ,

odbiorczy:                              .

 

background image

GK (PSI(4) - 2009)

53

Diagram 

Czynności - 

notacja i 

semantyka

Zobrazowanie sposobu realizacji przypadków użycia lub 

innych procesów wymaga niejednokrotnie wskazania na 

diagramach czynności źródła danych wejściowych do czynności 

lub akcji względnie ujścia wytworzonych przez nie danych 

wyjściowych. W tym celu wykorzystywane są 

składnice danych 

(data store nodes), które definiuje się jako pojemnik (bez 

wskazywania jego implementacji) na dane przechowywane w 

dłuższym okresie. 

Graficzny symbol składnicy:                            .

Powiązanie symbolu składnicy z symbolem czynności lub akcji 

następuje za pomocą linii przerywanej zakończonej otwartym 

grotem.

W celu poprawienia czytelności diagramu są stosowane 

na nim poziome i pionowe 

partycje

 (tory), służące do dzielenia 

czynności (akcji) na grupy, z których każda reprezentuje 

jednostkę (organizacji lub systemu) odpowiedzialną za realizację 

przydzielonych czynności (akcji). Każda partycja ma nazwę, 

unikatową w obrębie jednego diagramu, a każda czynność 

(akcja) należy tylko do jednej partycji, ale przepływy mogą 

przecinać granice partycji. Graficzne symbole pionowej i 

poziomej  

partycji:                             ,                .

background image

GK (PSI(4) - 2009)

54

Diagram 

Czynności - 

notacja i 

semantyka

background image

GK (PSI(4) - 2009)

55

Diagram 

Czynności – 

proces 

tworzenia

Diagram Czynności 

powstaje w wyniku analizy 

przypadków 

użycia

 

i przebiega w następujących zasadniczych etapach:

1.Analiza przypadku użycia i jego scenariuszy.
2.Identyfikacja podstawowych czynności na podstawie 
scenariusza przypadków użycia.
3.Połączenie czynności za pomocą przepływów sterowania.
4.Identyfikacja decyzyjnych i współbieżnych przepływów 
sterowania.
5.Wprowadzenie warunków i ograniczeń przepływów sterowania.

background image

GK (PSI(4) - 2009)

56

Diagram 

Sekwencji - 

notacja i 

semantyka

Diagram Sekwencji 

(Sequence Diagram – SD) jest 

rodzajem diagramu interakcji i opisuje interakcje pomiędzy 

instancjami klasyfikatorów systemu w postaci komunikatów 

wymienianych między nimi. Jest związany z diagramem 

przypadków użycia.

Interakcja 

rozumiana jako zbiór komunikatów pomiędzy 

instancjami klasyfikatorów, tj. wywołania operacji, tworzenie i 

usuwanie instancji, jest opisywana w diagramie SD jest w dwóch 

kierunkach:

poziomym

 – jako oś na której zostały umieszczone instancje 

klasyfikatorów biorących udział w interakcji (składowa 

statyczna),

pionowym

 – jako oś czasu przedstawiająca rozmieszczone 

chronologicznie komunikaty (składowa dynamiczna).

Podstawowymi elementami diagram sekwencji są: 

klasyfikator

,

 

komunikat

,

 linia życia 

i

 ośrodek sterowania

.

Klasyfikator

 to abstrakcyjna kategoria modelowania 

uogólniająca kolekcje instancji o tych samych własnościach. 

Klasyfikatorem może być aktor, przypadek użycia, klasa.

Linia życia 

(lifeline) 

to linia powiązana z konkretną 

instancją klasyfikatora wskazująca na diagramie okres istnienia 

instancji.

Komunikat 

(message) 

to specyfikacja wymiany danych 

między instancjami klasyfikatorów, zawierająca zlecenia 

wykonania określonych operacji przez adresata komunikatu.

background image

nazwa1

Instancja klasyfikatora

Linia życia   

Aktywacja

nazwa2

komunikat

Treść i parametry
odpowiedzi

(…)

odpowiedź

Ośrodek sterowania

Dezaktywacja

Treść i parametry 
komunikatu

(…)

57

GK (PSI(4) - 2009)

Diagram 

Sekwencji - 

notacja i 

semantyka

background image

GK (PSI(4) - 2009)

58

Diagram 

Sekwencji - 

notacja i 

semantyka

Linia życia 

reprezentuje okres życia instancji 

klasyfikatora, która w pewnych okresach swojego życia jest 
aktywna, aktywowana przez komunikaty, a w pozostałych 
okresach życia – nie jest aktywna, jest w stanie czuwania. W 
okresach aktywności instancja klasyfikatora przejmuje 
sterowanie interakcją oraz podejmuje działania zlecone w 
komunikacie, a po ich wykonaniu i wysłaniu odpowiedzi 
nadawcy komunikatu może przechodzić w stan czuwania. 
Okresy aktywności instancji klasyfikatora noszą nazwę 

ośrodków sterowania 

(execution specification).

 

Ośrodek 

sterowania na diagramie przyjmuje postać prostokąta 
położonego na linii życia.

Ośrodek sterowania jest inicjowany 

aktywacją

, a 

przejście w stan czuwania – 

dezaktywacją

Zaawansowanymi składnikami diagramu są m.in:

rodzaje komunikatów,

tworzenie i niszczenie obiektów,

warunki,

samowywołanie,

iteracja, 

Rozgałęzienie.

background image

GK (PSI(4) - 2009)

59

Diagram 

Sekwencji - 

notacja i 

semantyka

Rodzaje komunikatów: 

synchroniczny

,

 asynchroniczny

,

 

zwrotny

,

 utracony

,

 znaleziony

,

 opcjonalny

,

 oczekujący

Wysłanie komunikatu 

synchronicznego

 oznacza 

przekazanie sterowania do klasyfikatora-odbiorcy. W chwili 
przesłania tego komunikatu aktualny 

przepływ sterowania klasyfikatora-nadawcy zostaje przerwany 
i będzie wznowiony dopiero po wykonaniu przez klasyfikator-
odbiorcę czynności lub operacji inicjowanej przez ten 
komunikat.

background image

GK (PSI(4) - 2009)

60

Diagram 

Sekwencji - 

notacja i 

semantyka

Komunikat 

asynchroniczny

 nie 

powoduje przerwania przepływu 
sterowania klasyfikatora-nadawcy. 
Klasyfikator-nadawca pozostaje w 
stanie aktywności i nie oczekuje 
odpowiedzi.

Komunikat 

zwrotny

 wskazuje na 

powrót sterowania do 
klasyfikatora-nadawcy po 
wykonaniu komunikatu 
synchronicznego. Komunikat 
zwrotny nie tylko przekazuje 
sterowanie, ale ma również za 
zadanie zainicjowanie operacji.

background image

GK (PSI(4) - 2009)

61

Diagram 

Sekwencji - 

notacja i 

semantyka

Komunikat 

utracony

 – nieznany odbiorca:

Komunikat 

znaleziony

 

– nieznany nadawca:

background image

GK (PSI(4) - 2009)

62

Diagram 

Sekwencji - 

notacja i 

semantyka

Komunikat 

opcjonalny

 oznacza, 

że nadawca wysyła do odbiorcy 
komunikat oczekując jego 
bezzwłocznego obsłużenia. W 
przypadku, gdy obsługa 
komunikatu nie może być 
natychmiastowa, nadawca nie 
podejmuje dalszych prób jego 
przesyłania, komunikat 
opcjonalny nie zawsze może być 
obsłużony.

Komunikat 

oczekujący

 

– podobny 

do opcjonalnego, tylko, że 
nadawca czeka na jego wykonanie 
przez określony odcinek czasu, a 
potem rezygnuje i komunikatu 
nie ponawia.

background image

GK (PSI(4) - 2009)

63

Diagram 

Sekwencji - 

notacja i 

semantyka

Tworzenie 

lub 

niszczenie

 obiektu następuje po 

przesłaniu odpowiedniego komunikatu 

(<<create>> 

lub 

<<destroy>>

). Obiekt utworzony jest umieszczany na 

diagramie sekwencji poniżej pierwotnie istniejących instancji 
klasyfikatorów tak, aby jego położenie było zgodne z czasem 
utworzenia. Po słowie 

create 

fakultatywnie może być 

umieszczona nazwa operacji tworzącej obiekt.

Obiekt przestaje istnieć po odebraniu od niego komunikatu 

destroy

, co na diagramie jest oznaczane znakiem X na linii 

życia obiektu niszczonego.

 Po słowie 

destroy 

fakultatywnie 

może być umieszczona nazwa operacji niszczącej obiekt. 

background image

GK (PSI(4) - 2009)

64

Diagram 

Sekwencji - 

notacja i 

semantyka

Wykonanie komunikatu może zależeć od spełnienia 

określonych 

warunków

Sposób zapisu warunków nie jest 

skodyfikowana, ale najczęściej występują one w formie tekstu 
ujętego w kwadratowe nawiasy i są umieszczane przed nazwą 
komunikatu. 

background image

GK (PSI(4) - 2009)

65

Diagram 

Sekwencji - 

notacja i 

semantyka

Samowywołanie

 oznacza 

sytuację, że instancja klasyfikatora 
wywołuje własną operację. Na 
diagramie oznaczane jest to za pomocą 
zagnieżdżenia ośrodka sterowania 
(iteracja).

Iteracja 

oznacza wielokrotne, o 

określonej wielokrotności, 
powtórzenie komunikatu. Iteracja jest 
opisana w nazwie komunikatu, a 
krotność jej wykonania jest oznaczana 
symbolem „

*

” , po którym następuje 

liczba wykonań. Podstawowa notacja 
iteracji:

*

|

 

*[

<specyfikacja-iteracji>

<nazwa-

operacji>

.

Przykłady:

*[i := 1..10] - komunikat będzie wysłany 10 
razy,
*[x  < 10] - komunikat będzie wysyłany 
dopóki x
 < 10,
*[pozycja znaleziona] - komunikat będzie 
wysyłany dopóty, dopóki  pozycja nie 
zostanie znaleziona
 (do momentu, gdy warunek przyjmie 
wartość FALSE)

background image

GK (PSI(4) - 2009)

66

Diagram 

Sekwencji - 

notacja i 

semantyka

Rozgałęzienie

 jest sposobem przekazywania sterowania 

z linii życia (ośrodka sterowania) klasyfikatora-nadawcy do 
klasyfikatorów-odbiorców

 (klasyfikatora-odbiorcy) w 

zależności od spełnienia warunku przypisanego do 
komunikatu.

Wspólny punkt czasowy

warunki muszą się 
wykluczać – wysłany będzie 
tylko jeden komunikat. 
Wysyłane komunikaty mogą 
być do jednego lub kilku 
odbiorców (np. każdy 
komunikat do innego 
odbiorcy). W pierwszym 
przypadku następuje 
rozgałęzienie linii życia 
odbiorcy (ilustracja).  

background image

GK (PSI(4) - 2009)

67

Diagram 

Sekwencji – 

proces 

tworzenia

Diagram Sekwencji 

powstaje w wyniku analizy 

przypadków 

użycia

 

i przebiega w następujących zasadniczych etapach:

1.Analiza przypadku użycia i jego scenariuszy.
2.Identyfikacja klasyfikatorów, których instancje będą 
uczestniczyć w interakcjach.
3.Opracowanie koncepcyjnego (ogólnego) diagramu sekwencji 
zawierającego:

zidentyfikowane instancje klasyfikatorów, rozmieszczone na osi 
poziomej,

komunikaty, uporządkowane na osi pionowej,

ośrodki sterowania, zlokalizowane na liniach życia instancji 
klasyfikatorów.
4.Opracowanie implementacyjnego diagramu sekwencji poprzez 
uszczegółowienie diagramu koncepcyjnego o:

uszczegółowienie warunków komunikatów,

tworzenie i niszczenie obiektów,

samowywołania, iteracje, rozgałęzienia itp.


Document Outline