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

background image

72

Inżynieria

oprogramowania

www.sdjournal.org

Software Developer’s Journal 08/2007

UML – modelowanie statycznych

aspektów oprogramowania

B

ędąc świadomym wymagań stawianych sys-

temowi informatycznemu, kolejnym krokiem

jest zaprojektowanie sposobu realizacji tych-

że wymagań. W tym celu buduje się modele pre-

zentujące statyczne i dynamiczne aspekty oprogra-

mowania. Modele te budowane są w kontekście re-

alizacji poszczególnych przypadków użycia. Mode-

le dynamiki systemu przedstawiają wszelkie możli-

we ścieżki realizacji każdego wymagania funkcjonal-

nego (przypadku użycia). Analiza diagramów mode-

lujących dynamikę uwzględniająca wymagania nie-

funkcjonalne, prowadzi do zbudowania statycznego

modelu oprogramowania. W artykule przedstawio-

ne zostaną diagramy UML wykorzystywane do opisu

struktury oprogramowania.

Diagramy klas

Diagram klas jest ściśle powiązany z projekto-

waniem obiektowym systemów informatycznych.

Opisuje wyróżnione w systemie klasy obiektów

i statyczne powiązania między nimi. Zawiera on

również takie elementy jak atrybuty i operacje

klas oraz ograniczenia nakładane na klasy obiek-

tów i ich powiązania. Modelując statyczne aspek-

ty perspektywy projektowej, diagramów klas uży-

wa się do:

• Modelowanie słownictwa systemu. Zadanie to

polega między innymi na podejmowaniu decyzji,

które abstrakcje są częścią rozważanego syste-

mu, a które nie i jakie zobowiązania ma każda z

tych abstrakcji.

• Modelowanie prostych kooperacji. Kooperacja

jest to zestaw klas, interfejsów i innych bytów

istniejących celem realizacji pewnego zespo-

łowego zachowania wymagającego współpra-

cy wszystkich elementów. Nie należy skupiać

się nad jedną klasą, lecz nad zbiorem współ-

pracujących ze sobą klas, by zrozumieć, o co

chodzi. W tym wypadku diagramy klas wyko-

rzystuje się do zobrazowania i określenia tego

zbioru klas i związków między nimi.

• Modelowanie schematu logicznej bazy da-

nych. Przez schemat rozumiany jest plan

projektu koncepcyjnego bazy danych. W wie-

lu dziedzinach zachodzi potrzeba trwałe-

go przechowywania informacji w bazach da-

nych. W tym wypadku diagram klas wykorzy-

stuje się do modelowania schematów takich

baz danych.

Diagramy komponentów

Komponenty, w odróżnieniu od bytów koncep-

cyjnych jakimi są np. klasy, to elementy oprogra-

mowania istniejące w systemie komputerowym

i będące fizyczną realizacją zamysłu projektan-

ta oprogramowania. Należy tu uchwycić subtelną

granicę rozciągłości definicji klasy w stosunku do

definicji komponentu, tzn. najważniejszym wyróż-

nikiem odmienności tych dwóch pojęć jest to, iż

klasa jest abstrakcyjnym przedstawieniem zbioru

atrybutów i operacji, podczas gdy komponent jest

fizyczną częścią systemu.

Analizując zagadnienie projektowania realnych

fragmentów oprogramowania (komponentów) moż-

na dojść do wniosku, że szczególny nacisk powinien

zostać położony na możliwość wyizolowania kompo-

nentu i jego wielokrotnego użycia. Zadanie to uła-

twiają dobrze zdefiniowane interfejsy, które są jedy-

ną drogą przez którą dostępne są operacje kompo-

nentu - zupełnie jak w przypadku klas - relację tego

typu nazywamy realizacją. Nie można pominąć zna-

czenia interfejsu jako swego rodzaju "okna na świat"

dla komponentu, co warunkuje możliwości jego wy-

miany i wielokrotnego wykorzystania. Należy w tym

miejscu dodać, że w specyfikacji UML 2.0 wyróżnio-

ne zostały dwa typy interfejsów. Jeżeli komponent

udostępnia jakieś usługi w postaci interfejsu to mó-

wimy wówczas o tzw. interfejsie dostarczanym, udo-

stępnianym lub eksportowanym (ang. provided inter-
face
). Może jednak zajść przypadek, że komponent,

aby w pełni realizować swoje usługi, potrzebuje sko-

rzystać z usług innych komponentów, co obrazuje

się za pomocą interfejsu wymaganego, importowa-

nym (ang. required interface). Wyróżniamy 3 podsta-

wowe rodzaje komponentów:

• wdrożenia - są podstawą oprogramowania wyko-

nywalnego

• COM+, JavaBeans, EJB, biblioteki DLL, pliki

wykonywalne EXE, ...

• procesu wytwórczego – komponenty będące ar-

tefaktami powstałymi w procesie wytwarzania, na

ich podstawie generuje się komponenty wdrożenia

Rafał Kasprzyk

Autor jest absolwentem Wydziału Cybernetyki WAT,
gdzie od 2 lat zajmuje stanowisko asystenta w Instytu-
cie Systemów Informatycznych. Pracuje w firmie ISO-
LUTION będąc odpowiedzialnym za przygotowywa-
nie, prowadzenie i audyt szkoleń obejmujących analizę
i projektowanie systemów informatycznych z użyciem
notacji UML.
Kontakt z autorem: rafal.kasprzyk@wat.edu.pl

background image

UML – modelowanie statycznych aspektów oprogramowania

73

www.sdjournal.org

Software Developer’s Journal 08/2007

Rysunek 2.

Przykładowy diagram komponentów

������������������

��������

������������������

�����������

������������������

�������������

����������

����������

����������

��������������

�����������

�������

����������

�������

��������������

��������������

�����������

�����������

����

�������

����������

�������

��������������

�����������

��������

����������

��������

��������������

�����������

������

������������������

������

����������������������

����������

• schemat logiczny bazy danych, skrypty SQL, pliki z ko-

dem źródłowym,

• komponenty wykonania – tworzone jako rezultat działania

systemu

• wydruki, raporty.

W końcu dochodzimy do definicji diagramu komponentów,

który zawiera komponenty, interfejsy oraz ich wzajemne

związki. Elementy te są ze sobą luźno powiązane najczęściej

za pomocą zależności i realizacji.

Diagramy wdrożenia

Diagram wdrożenia, obok diagramu komponentów to jeden

z dwóch rodzajów diagramów przedstawiających fizyczne

aspekty systemów. Jego zadaniem jest zobrazowanie kon-

figuracji węzłów w czasie wykonania, na których rozmiesz-

Rysunek 1.

Przykładowy diagram klas

�������

�����������������
����������������������
�����������������������
��������������
����������������������
���������������������

���������������������������
�����������������������������������

����������

�����������������������

������������������������������
�������������������������

���������

�����������������
��������������������
��������������
����������������������
���������������

����������������������������

�������

�������������
��������������
���������������������

������������������������
�������������������������

�����������������

�����������������������

����

����

��������

��

���������������

����

����

����

����

���������

background image

74

Inżynieria

oprogramowania

www.sdjournal.org

Software Developer’s Journal 08/2007

czone będą komponenty. Komponenty reprezentują fizycz-

ne (programowe – ang. software), wymienne części syste-

mu, które realizują elementy logiczne, podczas gdy węzły

to fizyczne (sprzętowe – ang. hardware) składnik systemu

na których wdrożone zostają komponenty. Najczęściej ma-

my do czynienia z sytuacją w której diagramy komponentów

„umieszczane” są na diagramach wdrożenia, aby pokazać,

które komponenty działają na których węzłach. Węzły dzie-

lone są na:

• procesowy – reprezentują zasoby obliczeniowe

• posiadają pewną ilość pamięci i zdolność przetwa-

rzania,

• mogą wykonywać kod komponentu

• urządzenia – są interfejsem do świata zewnętrznego

• nie mają zdolności przetwarzania (np. monitor, dru-

karka)

Diagramy wdrożenia są szczególnie przydatne dla projek-

tantów systemów, których sposób funkcjonowania zale-

ży równie silnie od oprogramowania wchodzącego w skład

systemu, jak i sprzętu, na którym to oprogramowanie ma

działać. Pozwalają na zobrazowanie infrastruktury wymaga-

nej przez system.

Można wyróżnić trzy zasadnicze typy systemów, przy mo-

delowaniu których warto wykorzystać diagramy wdrożenia:

systemy wbudowane, systemy typu klient-serwer oraz syste-

my rozproszone.

Istotną nowością, która została wprowadzona w specyfi-

kacji UML 2.0, jest dodanie elementu będącego specyfikacją

wdrożenia. Element ten odpowiada za opis parametrów po-

trzebnych do wdrożenia komponentu na danym węźle, co ma

na celu parametryzację relacji pomiędzy różnymi programo-

wymi i sprzętowymi technologiami. Specyfikacja wdrożenia

jest obrazowana za pomocą stereotypu

Ciekawym elementem jest również tzw. środowisko wy-

konania. Element ten reprezentuje wybrany rodzaj platformy i

jest obrazowany za pomocą stereotypu

Diagramy obiektów

Diagramy obiektów przedstawiają hierarchię obiektów i ich

wzajemne powiązania w danej chwili. Jako że przedstawia-

ją instancje klas, a nie same klasy - nazywane są też diagra-

mami instancji. Na diagramach obiektów umieszczamy spe-

cyfikacje instancji, a nie same instancje. Rozwiązanie takie

umożliwia nienadawanie wartości obowiązkowym atrybu-

tom lub też obrazowanie specyfikacji instancji klas abstrak-

cyjnych.

Diagramy obiektów podobne są do diagramów komunika-

cji, jednakże te pierwsze służą do zobrazowania struktury in-

Rysunek 3.

Przykładowy diagram wdrożenia

����������

����������

���������

�����������

������������

����������������������

������������

������������

�������������

�����������

�����������������

����������

�������������������

�����������

��������������

����������

���������

�����������

����������

�����������������

�����������������

�������

�������

����������������

�����������������

������

��������

�������������������

������������

�������������

������������������

�����������

�����������

�������������������

�������

��������

���������������

Bibliografia

• Marin Fowler UML Distilled: A Brief Guide To The Standard Ob-

ject Modeling Language, 3rd ed., Addison-Weslay Professional,
2004;

• Grady Booch, James Rumbaugh, Ivar Jacobson, Unified Mo-

deling Language User Guide, 2nd ed., Addison-Weslay Pro-
fessional, 2005;

• Michał Śmiałek, Zrozumieć UML 2.0. Metody modelowania

obiektowego, Helion, 2005;

http://www.holub.com/goodies/uml/;
http://www.agilemodeling.com/essays/umlDiagrams.htm.

background image

UML – modelowanie statycznych aspektów oprogramowania

75

www.sdjournal.org

Software Developer’s Journal 08/2007

stancji, diagramy komunikacji natomiast do pokazania ich za-

chowań.

Diagramy struktur złożonych

Diagramy struktur złożonych służą do hierarchicznego opi-

sywania skomplikowanych obiektów. Pozwala to na zajęcie

się skomplikowanym elementem i podzielenie go na części.

Struktury złożone są podobne do pakietów. Aby uświadomić

sobie podstawową różnicę najlepiej myśleć o pakietach ja-

ko o sposobie grupowania elementów w czasie kompilacji,

podczas gdy struktury złożone grupują elementy w czasie

wykonania programu.

Diagramy struktury swoją notację i zakres stosowa-

nia wywodzą głównie z modeli systemów czasu rzeczywi-

stego, gdzie stosowane jest pojęcie tzw. kapsuły, która re-

prezentuje wyraźnie wydzielony i hermetyczny wątek ste-

rowania systemu. Całkowita izolacja kapsuły (w obu kie-

runkach) od jej otoczenia możliwa jest dzięki portom, które

pełnią rolę obiektów granicznych (interfejsów). Interesują-

cy jest fakt, że diagramy struktury mogą obrazować aspekt

statyczny i dynamiczny modelowanego systemów, co sta-

nowi o ich osobliwości. Najczęściej mamy do czynienia z

przypadkiem, w którym diagramy struktury ilustrują de-

kompozycję wskazującą z jakich części składa się kapsu-

ła i w jakie interfejsy jest ona zaopatrzona. Istnieje jednak

druga forma diagramów struktury umożliwiająca przedsta-

wienie komunikacji, jaka zachodzi pomiędzy wewnętrzny-

mi elementami kapsuły. Taka forma prezentacji diagramów

struktury została nazwana w UML 2.0 diagramem współ-

pracy. Należy pamiętać, że gdy diagram struktury przyjmu-

je pierwszą formę to można użyć na nim portów i interfej-

sów. Prezentując natomiast zbiór współpracujących ze so-

bą elementów składowych kapsuły nie można wykorzysty-

wać portów i interfejsów, ale należy skorzystać ze stereo-

typowych zależności: <<role binding>>, <<represents>>,

<<occurrence>>

Ponieważ struktury złożone są nowością, to trudno stwier-

dzić, jak przydatne okażą się w praktyce.

Diagramy pakietów

Pakiet jest konstrukcją pozwalającą organizować elementy

modelu np. klasy, w logiczne grupy. Natomiast diagram pakie-

tów to diagram składający się z pakietów i zależności między

nimi. Pakiety z reguły tworzy się, aby:

• W przejrzysty sposób zobrazować zależności pomiędzy

poszczególnymi elementami modelu.

• Efektywniej organizować kod źródłowy.

• Zaznaczyć podobieństwa i różnice pomiędzy poszczegól-

nymi elementami modelu.

Na diagramie pakietów wszelkie elementy modelu (klasy, in-

terfejsy, kooperacje, komponenty) grupowane są w pakie-

ty i/lub podpakiety zgodnie z poziomami zawierania. War-

to tworzyć tego typu diagramy dążąc do tego, aby elemen-

ty modelu połączone relacjami asocjacji, agregacji, czy to

kompozycji umieszczone były w jednym pakiecie. Z regu-

ły naturalnym jest, by w pakiecie umieszczać elementy mo-

delu, które w jakikolwiek sposób od siebie zależą. Diagramy

pakietów można także stosować w celu grupowania przy-

padków użycia. Ogólne zasady tworzenia diagramów pakie-

tów są bardzo proste:

• Zawsze nadawaj pakietom proste, opisowe nazwy

• Stosuj pakiety do upraszczania struktury diagramów

• Stosuj stereotypy by zaznaczyć warstwy architektury pro-

gramu

• Zależności między pakietami powinny odzwierciedlać fak-

tyczne wewnętrzne relacje w programie

• Pakiety powinna charakteryzować wysoka zwartość i ni-

skie sprzężenie.

Podsumowanie

Modelując elementy statyczne rozwiązania dążymy do uzy-

skania takiej struktury oprogramowania, która będzie umoż-

liwiała realizację wymagań funkcjonalnych przy spełnieniu

wymagań niefunkcjonalnych. W tej perspektywie budowane

są diagramy klas, komponentów, wdrożenia i pakietów (for-

malnie pojawiły się dopiero w UML2.0, chodź wykorzysty-

wane były już wcześniej). Często pomocne okazuje się wy-

korzystanie diagramu obiektów i nowego diagramu struktur

złożonych. n

Rysunek 5.

Przykładowy diagram struktur złożonych

���������

�������

�������

���������������������

�������

����������
������������������

����������

������

�������������������

�����������

���������������

������������

�����������

Rysunek 4.

Przykładowy diagram obiektów

��������

��������

��������

������������

���������

���������

���������

���������

�����������

�������

������������

�������

��������

�������

�������

��������

�������

�����������

�������

�������������

�������

�������������

�������


Wyszukiwarka

Podobne podstrony:
2007 11 UML – modelowanie dynamicznych aspektów oprogramowania [Inzynieria Oprogramowania]
Modelowanie statyczne skomplikowanych konstrukcji inżynierskich
2007 06 UML – potrzeba standaryzacji notacji [Inzynieria Oprogramowania]
K1 2007 08 zad 5 id 229626
egzamin 2007 08
2007 08 Szkola konstruktorowid Nieznany
08 Podstawy modelowania
Test dla studentów V roku 2007-08, Lekarski, Pulmonologia
2007 08 KOL2 G, I
multilingwistyczny sędzia krajowy eps 2007 08 001
koło1 2007 08
2007-08-małopolski-Ietap
2007 08 trendy
Kolokwium 2 2007 08
Kolokwium zaliczeniowe sem 1 2007 08 b w
K2 2007 08 zad 3 id 229670

więcej podobnych podstron