2007 08 UML – modelowanie statycznych aspektów oprogramowania [Inzynieria Oprogramowania]


Inżynieria
oprogramowania
UML  modelowanie statycznych
aspektów oprogramowania
Rafał Kasprzyk
ędąc świadomym wymagań stawianych sys- " Modelowanie schematu logicznej bazy da-
temowi informatycznemu, kolejnym krokiem nych. Przez schemat rozumiany jest plan
Bjest zaprojektowanie sposobu realizacji tych- projektu koncepcyjnego bazy danych. W wie-
że wymagań. W tym celu buduje się modele pre- lu dziedzinach zachodzi potrzeba trwałe-
zentujące statyczne i dynamiczne aspekty oprogra- go przechowywania informacji w bazach da-
mowania. Modele te budowane są w kontekście re- nych. W tym wypadku diagram klas wykorzy-
alizacji poszczególnych przypadków użycia. Mode- stuje się do modelowania schematów takich
le dynamiki systemu przedstawiają wszelkie możli- baz danych.
we ścieżki realizacji każdego wymagania funkcjonal-
nego (przypadku użycia). Analiza diagramów mode- Diagramy komponentów
lujących dynamikę uwzględniająca wymagania nie- Komponenty, w odróżnieniu od bytów koncep-
funkcjonalne, prowadzi do zbudowania statycznego cyjnych jakimi są np. klasy, to elementy oprogra-
modelu oprogramowania. W artykule przedstawio- mowania istniejące w systemie komputerowym
ne zostaną diagramy UML wykorzystywane do opisu i będące fizyczną realizacją zamysłu projektan-
struktury oprogramowania. ta oprogramowania. Należy tu uchwycić subtelną
granicę rozciągłości definicji klasy w stosunku do
Diagramy klas definicji komponentu, tzn. najważniejszym wyróż-
Diagram klas jest ściśle powiązany z projekto- nikiem odmienności tych dwóch pojęć jest to, iż
waniem obiektowym systemów informatycznych. klasa jest abstrakcyjnym przedstawieniem zbioru
Opisuje wyróżnione w systemie klasy obiektów atrybutów i operacji, podczas gdy komponent jest
i statyczne powiązania między nimi. Zawiera on fizyczną częścią systemu.
również takie elementy jak atrybuty i operacje Analizując zagadnienie projektowania realnych
klas oraz ograniczenia nakładane na klasy obiek- fragmentów oprogramowania (komponentów) moż-
tów i ich powiązania. Modelując statyczne aspek- na dojść do wniosku, że szczególny nacisk powinien
ty perspektywy projektowej, diagramów klas uży- zostać położony na możliwość wyizolowania kompo-
wa się do: nentu i jego wielokrotnego użycia. Zadanie to uła-
twiają dobrze zdefiniowane interfejsy, które są jedy-
" Modelowanie słownictwa systemu. Zadanie to ną drogą przez którą dostępne są operacje kompo-
polega między innymi na podejmowaniu decyzji, nentu - zupełnie jak w przypadku klas - relację tego
które abstrakcje są częścią rozważanego syste- typu nazywamy realizacją. Nie można pominąć zna-
mu, a które nie i jakie zobowiązania ma każda z czenia interfejsu jako swego rodzaju "okna na świat"
tych abstrakcji. dla komponentu, co warunkuje możliwości jego wy-
" Modelowanie prostych kooperacji. Kooperacja miany i wielokrotnego wykorzystania. Należy w tym
jest to zestaw klas, interfejsów i innych bytów miejscu dodać, że w specyfikacji UML 2.0 wyróżnio-
istniejących celem realizacji pewnego zespo- ne zostały dwa typy interfejsów. Jeżeli komponent
łowego zachowania wymagającego współpra- udostępnia jakieś usługi w postaci interfejsu to mó-
cy wszystkich elementów. Nie należy skupiać wimy wówczas o tzw. interfejsie dostarczanym, udo-
się nad jedną klasą, lecz nad zbiorem współ- stępnianym lub eksportowanym (ang. provided inter-
pracujących ze sobą klas, by zrozumieć, o co face). Może jednak zajść przypadek, że komponent,
chodzi. W tym wypadku diagramy klas wyko- aby w pełni realizować swoje usługi, potrzebuje sko-
rzystuje się do zobrazowania i określenia tego rzystać z usług innych komponentów, co obrazuje
zbioru klas i związków między nimi. się za pomocą interfejsu wymaganego, importowa-
nym (ang. required interface). Wyróżniamy 3 podsta-
wowe rodzaje komponentów:
Autor jest absolwentem Wydziału Cybernetyki WAT,
gdzie od 2 lat zajmuje stanowisko asystenta w Instytu-
" wdrożenia - są podstawą oprogramowania wyko-
cie Systemów Informatycznych. Pracuje w firmie ISO-
nywalnego
LUTION będąc odpowiedzialnym za przygotowywa-
" COM+, JavaBeans, EJB, biblioteki DLL, pliki
nie, prowadzenie i audyt szkoleń obejmujących analizę
wykonywalne EXE, ...
i projektowanie systemów informatycznych z użyciem
notacji UML. " procesu wytwórczego  komponenty będące ar-
Kontakt z autorem: rafal.kasprzyk@wat.edu.pl
tefaktami powstałymi w procesie wytwarzania, na
ich podstawie generuje się komponenty wdrożenia
72
www.sdjournal.org
Software Developer s Journal 08/2007
UML  modelowanie statycznych aspektów oprogramowania
Enrollment
- Marks Received: int[]
+ Get Average To Date(): float
1..* 1..*
+ Get Final Mark(): short
enrolled
in
Student Seminar
- Address: String - Fees: float
1 1
- Average Marks: float - Name: String
- Email Address: String - Seminar Number: int
- Name: String
on waiting list
- Phone Number: String + Add Student(): boolean
- Student Number: int + Drop Student(): boolean
0..* 0..*
0..*
+ Get Seminars Taken(): int
+ IS Eliglible to Enroll(): boolean
instructs
Professor
- Address: String
- Email Address: int 0..1
- Name: String
Some seminars may
- Phone Number: String
not have an instructors
- Salary: float
+ Get Seminars Taken(): void
Rysunek 1. Przykładowy diagram klas
" schemat logiczny bazy danych, skrypty SQL, pliki z ko- związki. Elementy te są ze sobą luzno powiązane najczęściej
dem zródłowym, za pomocą zależności i realizacji.
" komponenty wykonania  tworzone jako rezultat działania
systemu Diagramy wdrożenia
" wydruki, raporty. Diagram wdrożenia, obok diagramu komponentów to jeden
z dwóch rodzajów diagramów przedstawiających fizyczne
W końcu dochodzimy do definicji diagramu komponentów, aspekty systemów. Jego zadaniem jest zobrazowanie kon-
który zawiera komponenty, interfejsy oraz ich wzajemne figuracji węzłów w czasie wykonania, na których rozmiesz-
Encryption
DataAccess Access Control
Facilities
Facilities Persistance
<>
Security
Access Control
<