Kategoria modelowania



Podobne dokumenty
Język UML w modelowaniu systemów informatycznych

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Rysunek 1: Przykłady graficznej prezentacji klas.

Modelowanie obiektowe

Język UML w modelowaniu systemów informatycznych

UML cz. II. UML cz. II 1/38

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

UML w Visual Studio. Michał Ciećwierz

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych

Diagramy klas. dr Jarosław Skaruz

Podstawy projektowania systemów komputerowych

Analiza i projektowanie aplikacji Java

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 6 Modelowanie przypadków uŝycia i czynności. Materiały dla studentów

DIAGRAMY IMPLEMENTACYJNE

Michał Adamczyk. Język UML

TECHNOLOGIE OBIEKTOWE. Wykład 3

Podstawy modelowania w j zyku UML

Podstawy programowania III WYKŁAD 4

Pakiety i interfejsy. Tomasz Borzyszkowski

Modelowanie obiektowe - Ćw. 3.

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu. Materiały dla studentów

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla studentów

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Podstawy inżynierii oprogramowania

Podstawy Programowania Obiektowego

problem w określonym kontekście siły istotę jego rozwiązania

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Charakterystyka oprogramowania obiektowego

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Podstawy języka UML UML

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Model przestrzenny Diagramu Obiegu Dokumentów. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Programowanie obiektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Komunikacja i wymiana danych

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Spis treúci. 1. Wprowadzenie... 13

Podstawy modelowania programów Kod przedmiotu

Inżynieria oprogramowania

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

Specyfikowanie wymagań przypadki użycia

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Programowanie obiektowe

Faza analizy (modelowania) Faza projektowania

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

Programowanie obiektowe

Język UML w modelowaniu systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla studenta

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Oprogramowanie o wysokiej jakości to oprogramowanie spełniające następujące kryteria:

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Diagramy klas. WYKŁAD Piotr Ciskowski

Język UML w modelowaniu systemów informatycznych

hierarchie klas i wielodziedziczenie

Sposoby projektowania systemów w cyfrowych

Wykład 7 Metodyki wytwarzania oprogramowania internetowego (2) Wykładowca: dr inż. Mariusz Trzaska

SPECYFIKACJA WYMAGAŃ

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Inżynieria oprogramowania. Część 5: UML Diagramy klas

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Kontrola spójności modeli UML za pomocą modelu. Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

MODELOWANIE OBIEKTOWE

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Projektowanie logiki aplikacji

Wprowadzenie do programowania aplikacji mobilnych

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

Bazy danych i usługi sieciowe

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Unified Modeling Language

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Internetowy moduł prezentacji ofert pracy do wykorzystania na stronie WWW lub panelu elektronicznym. Wstęp

Programowanie obiektowe

Wykład 1 Inżynieria Oprogramowania

Zasady organizacji projektów informatycznych

Język programowania. Andrzej Bobyk

Podstawy języka UML2 w realnych projektach

Świat rzeczywisty i jego model

Transkrypt:

7 Diagramy implementacyjne oraz diagramy pakietów 7.1 Wstęp Diagramy implementacyjne słuŝą do ilustracji dwóch aspektów implementacji systemu informatycznego: struktury kodu i konfiguracji elementów czasu wykonania. Diagramy pakietów z kolei, są budowane przede wszystkim dla duŝych projektów, tworzonych przez duŝą grupę współpracujących osób, projektów składających się z wielu jednostek funkcjonalnych, ze złoŝonymi zaleŝnościami pomiędzy tymi jednostkami. Zadaniem pakietów jest grupowanie elementów danego (jednego) modelu, wraz z występującymi pomiędzy tymi elementami relacjami. Istnieje co najmniej kilka powodów, dla których warto jest uŝywać diagramów pakietów: W celu ukrycia mniej istotnych elementów modelu (podobnie jak zilustrowano to w przykładzie o subkolaboracji umieszczonym w wykładzie dotyczącym diagramów interakcji). Dla ułatwienia podziału pracy między członkami zespołu czy teŝ róŝnymi zespołami. Dla ułatwienia procesu zarządzania budową produktu informatycznego. 7.2 Diagramy implementacyjne UML definiuje dwa rodzaje diagramów implementacyjnych: Diagramy komponentów ilustrują strukturę kodu projektowanego systemu poprzez specyfikowanie implementacji elementów projektu (np. klas czy podsystemów) za pomocą komponentów i ich interfejsów, oraz wskazanie zaleŝności występujących pomiędzy komponentami. Celem identyfikacji komponentów jest budowa systemów o odpowiednio wysokiej jakości, wypełniających poŝądane potrzeby biznesowe i budowanych szybko raczej poprzez składanie z gotowych części niŝ poprzez wypracowywanie kaŝdego elementu samodzielnie. Taki sposób pracy jest korzystny dla budowy np. rodziny aplikacji: niektóre komponenty opłaca się opracować samodzielnie, a niektóre warto odszukać wśród gotowych, istniejących juŝ w organizacji czy na rynku i ewentualnie zaadaptować do aktualnych potrzeb. Diagramy wdroŝeniowe pokazują konfigurację systemu czasu wykonania, czyli rozmieszczenie komponentów i obiektów na węzłach. Węzły modelują obliczeniowe zasoby czasu wykonania. Taka konfiguracja moŝe być zarówno statyczna, jak i dynamiczna: komponenty i obiekty mogą migrować między węzłami w czasie wykonania. Omówienie diagramów implementacyjnych rozpoczniemy od diagramów komponentów. 7.2.1 Diagramy komponentów Komponent stanowi nietrywialną, dobrze wyizolowaną z kontekstu jednostkę implementacji, spójną ze względu na wypełniane funkcje (wysoka kohezja, słabe sprzęŝenia) i posiadającą dobrze zdefiniowany interfejs; z załoŝenia, komponent nadaje się do wielokrotnego uŝycia. Prawidłowo skonstruowany komponent korzysta z innych komponentów wyłącznie za pośrednictwem ich interfejsów, co z załoŝenia ułatwia przyszłe modyfikacje. MoŜna wyróŝnić kilka rodzajów komponentów: komponenty z perspektywy jednego projektu, komponenty z perspektywy całości rozwoju oprogramowania w danej organizacji oraz komponenty biznesowe (np. do obsługi zamówień, sprzedaŝy, itp.). Kategorie modelowania, wykorzystywane przy konstruowaniu diagramów komponentów w UML 2.*, przedstawiono w Tab. 1.

Kategoria modelowania Notacja komponent interfejs udostępniający interfejs pozyskujący port Port złoŝony zaleŝność realizacja «realize» Konektor delegowany «delegate» Konektor składany Tab. 1 Kategorie modelowania dla diagramu komponentów w UML 2.* Komponenty mogą być opatrywane stereotypami. Przykładowe stereotypy to: podsystem (ang. subsystem), program wykonywalny (ang. executable), biblioteka (ang. library) i baza danych/tabela bazy danych (ang. table). Przykładowe diagramy komponentów przedstawiają Rys. 1 i Rys. 2.

cod Ticket reservation system component named interface Ticket reservation IReservations dependency User interface Repertoire updating unnamed interface Rys. 1 Przykładowy diagram komponentów (1) Diagramy komponentów pokazują zaleŝności pomiędzy komponentami oprogramowania. Komponenty mogą istnieć w róŝnym czasie: niektóre z nich w czasie kompilacji (komponenty kodu źródłowego), niektóre w czasie konsolidacji (komponenty kodu binarnego), zaś niektóre tylko w czasie wykonania (komponenty kodu wykonywalnego). Diagram komponentów jest przedstawiany w postaci grafu skierowanego, gdzie węzłami są komponenty, a łuki w postaci strzałek z przerywaną linią modelują zaleŝności występujące pomiędzy klientami i dostawcami pewnej informacji. Bezpośrednia specyfikacja klientów i dostawców informacji ma duŝe znaczenie dla przeprowadzania modyfikacji elementów systemu: zmiany wprowadzane do elementu modelującego dostawcę pewnej informacji mogą skutkować koniecznością wprowadzania zmian do elementów modelujących jej klienta.

cod SHOP IOrder «delegate» IOrder «component» Orders IPerson IPerson «component» Clients IProduct IProduct ball&socket IAccount «delegate» «component» Products IAccount Rys. 2 Przykładowy diagram komponentów (2) Zbiór komponentów składających się na kod systemu moŝe być opisany na dwa sposoby: Poprzez utworzenie listy komponentów wraz ze specyfikacją ich zaleŝności jest to tzw. biblioteka komponentów. W tym przypadku bardzo pomocne jest nazywanie interfejsów. Poprzez diagram komponentów ilustrujący sieć ich wzajemnych zaleŝności. Diagram komponentów pokazuje takŝe, za realizację jakiego interfejsu jest odpowiedzialny kaŝdy z komponentów. 7.2.2 Przykład z kancelarią prawniczą Na Rys. 3 zaprezentowano diagram komponentów skonstruowany w oparciu o tekst specyfikujący wymagania dla systemu wspierajacego pracę kancelarii prawniczej (rozdział 2, podrozdział 2.10).

cod Law office People handling User interface Cases handling Rys. 3 Diagram komponentów dla systemu wspierającego pracę kancelarii prawniczej 7.2.3 Diagramy wdroŝeniowe Diagramy wdroŝeniowe przedstawiają konfigurację następujących elementów czasu wykonania: komponentów sprzętowych, czyli fizycznych jednostek posiadających pamięć, a często równieŝ moc obliczeniową; komponentów oprogramowania (kod wykonywalny); obiektów związanych z komponentami. Diagram wdroŝeniowy jest grafem, gdzie wierzchołki, zwane tu węzłami, połączone są liniami odwzorowującymi połączenia komunikacyjne komponentów sprzętowych (Rys. 4). Węzły, podobnie jak połączenia komunikacyjne, mogą być opatrzone stereotypami, np.: «CPU», «pamięć». Węzły przechowują obiekty i wystąpienia komponentów; węzły mogą brać udział w związkach generalizacji. dd Ticket reservation system communication channel :Server :Laptop :Ticket reservation IReservations :User interface node Rys. 4 Przykładowy diagram wdroŝeniowy

W UML istnieje moŝliwość zastąpienia symboli standardowych symbolami specjalnymi, które mogą znacząco ułatwiać percepcję diagramów (Rys. 5). Main server Corporate Ethernet Internet Accounting server Web Client Local branch Ethernet Windows-based PC Windows-based PC Rys. 5 Diagram wdroŝeniowy z wykorzystaniem specjalnych symboli 7.3 Diagramy pakietów Pakiety grupują elementy danego (jednego) modelu wraz z występującymi pomiędzy tymi elementami relacjami. Elementy, wchodzące w skład pakietu, to tzw. elementy wysokiego poziomu, jak np.: klasy i ich związki, maszyny stanów, grafy przypadków uŝycia, itp. To, co jest zawarte w elementach wysokiego poziomu, np. atrybuty, operacje, wnętrza stanów zagnieŝdŝonych, linie Ŝycia, komunikaty, itp., z reguły nie pojawia się jako bezpośrednia zawartość pakietów. Pakiet zazwyczaj nie posiada swojego interfejsu (oprócz specjalnego rodzaju pakietu zwanego podsystemem patrz podpunkt omawiający specjalne rodzaje pakietów 7.3.3) a zaleŝności występujące pomiędzy pakietami wynikają z relacji między ich elementami składowymi. ZaleŜności są przedstawiane na diagramach pakietów w postaci strzałek z przerywaną linią i mogą być opatrywane stereotypami. Relacje między elementami, opisywane pośrednio przez zaleŝności, mogą być róŝnego rodzaju, ale tego typu informacja zazwyczaj nie jest przenoszona przez diagramy pakietów dzięki specyfikacji zaleŝności uwidaczniany jest jedynie fakt występowania relacji, a nie jej rodzaj, np. fakt istnienia asocjacji między dwiema klasami umieszczonymi w dwóch róŝnych pakietach. Bezpośrednie pokazywanie relacji pomiędzy elementami zawartymi w róŝnych pakietach nie jest zabronione, zaleca się raczej jedynie podkreślanie faktu ich występowania. Dla diagramów pakietów obowiązuje taka sama zasada abstrakcji, jak wszystkich poprzednio omawianych rodzajów diagramów: szczegóły nigdy nie powinny utrudniać rozumienia całości. Pakiety mogą być zagnieŝdŝane oraz mogą brać udział w związkach dziedziczenia, co jest zaznaczane analogicznie jak na diagramach klas. Dany model zazwyczaj opisywany jest przez wiele pakietów. Definicja kaŝdego elementu wchodzącego w skład modelu moŝe znajdować się tylko w jednym z pakietów opisujących model. Podział modelu na pakiety jest arbitralny, ale u jego podstaw powinny leŝeć racjonalne przesłanki, np. wspólna funkcjonalność, silne skojarzenia, itp. Kategorie modelowania, wykorzystywane przy konstruowaniu diagramów pakietów w UML 2.*, przedstawiono w Tab. 2. Jak widać, pakiet jest przedstawiany w postaci duŝego prostokąta z małym prostokątem, zwanym etykietą, umieszczonym w lewym górnym rogu. JeŜeli zawartość pakietu nie jest pokazana, wówczas nazwa pakietu jest wpisana do większego prostokąta; w przeciwnym przypadku nazwa pakietu jest umieszczana w etykiecie. Kategoria modelowania Notacja

pakiet zaleŝność zagnieŝdŝanie + Tab. 2 Kategorie modelowania dla diagramów pakietów w UML 2.* Rys. 6 przedstawia róŝne sposoby prezentowania zagnieŝdŝania pakietów. Package A Package A Package B1 Package B2 Package B1 Package B2 Package B3 Package B4 Package B3 Package B4 Package A + Package B1 Package B2 Package B3 Package B4 Rys. 6 RóŜne sposoby prezentowania zagnieŝdŝania pakietów 7.3.1 Odwołania między pakietami Pakiet (klient), który odwołuje się do elementu w innym pakiecie (dostawcy informacji), moŝe wykorzystać pakiet zawierający ten element, uŝywając zaleŝności typu «import» albo «access» (będących rodzajami zaleŝności typu «usage»). Główną cechą róŝniącą oba rodzaje zaleŝności jest odmienny sposób traktowania nazw elementów.

Nazwy z pakietów zaimportowanych za pomocą zaleŝności typu «import» są dodawane do przestrzeni nazw pakietu importującego. Na przykład na diagramie z Rys. 7 nazwy z pakietu Q są dodawane do przestrzeni nazw pakietu P, co oznacza, Ŝe elementy z P traktują nazwy z Q tak samo jak nazwy z P (uwaga: moŝe tutaj wystąpić konflikt nazw). Class notion P Q A X:E «import» E Rys. 7 Ilustracja zaleŝności typu «import» Dla zaleŝności typu «access» nazwa, do której następuje odwołanie, musi być poprzedzona nazwą pakietu, w którym jest zdefiniowana. Na Rys. 8 pokazano, Ŝe atrybut X w klasie A zawartej w pakiecie P będzie wystąpieniem klasy E, której definicja została umieszczona w pakiecie Q. Nazwa klasy E została poprzedzona nazwą pakietu Q, co ma zapobiec wystąpieniu konfliktu nazw. P Q A X:Q::E «access» E Rys. 8 Ilustracja zaleŝności typu «access» 7.3.2 Reguły widoczności Pakiet widzi wszystkie zewnętrzne dla niego pakiety poprzez pakiet, wewnątrz którego jest zagnieŝdŝony; innymi słowy, zagnieŝdŝony pakiet widzi wszystko to, co widzi pakiet, który go zawiera. Specjalne symbole + (publiczny), (prywatny) oraz # (chroniony) są uŝywane na oznaczenie widoczności elementu zawartego w pakiecie na zewnątrz pakietu. Zasady widoczności dla elementów zawartych w pakietach są następujące: Element zdefiniowany w danym pakiecie jest widoczny dla innych elementów tego pakietu. Jeśli element jest widoczny w pakiecie A, to jest widoczny we wszystkich pakietach, które są w A zagnieŝdŝone. Jeśli pakiet B jest powiązany zaleŝnością z pakietem A, to wtedy wszystkie elementy o widoczności publicznej w A są widoczne w B. Jeśli pakiet B dziedziczy z pakietu A, to wtedy wszystkie elementy w A o widoczności publicznej lub chronionej są widoczne w B. ZaleŜności nie są przechodnie, tzn. jeśli A jest połączone zaleŝnością z B, a B z C, to nie znaczy, Ŝe A jest połączone zaleŝnością z C. ZaleŜności nie są teŝ symetryczne. Ponadto, UML określa następujące reguły widoczności dla elementów klas w pakietach: Elementy zawarte wewnątrz klasy, np. atrybuty, operacje czy klasy zagnieŝdŝone są widoczne (dostępne dla innych klas) wewnątrz pakietu, jeśli widoczność tych elementów jest publiczna. W przypadku dziedziczenia, podklasa widzi elementy o widoczności publicznej i chronionej. Cała zawartość klasy jest widoczna wewnątrz klasy.

Rys. 9 stanowi ilustrację powyŝszych reguł. Pakiet A jest powiązany zaleŝnością typu «access» z pakietem B; zaleŝność odwrotna nie występuje. Klasa U w pakiecie B o widoczności publicznej jest dostępna dla klas X i Y w pakiecie A. Klasa V, jako klasa o widoczności prywatnej, nie jest dostępna dla klas z pakietu A. Klasy U i V nie mają dostępu do Ŝadnej klasy w pakiecie A pomimo publicznej widoczności klasy X (brak odpowiedniej zaleŝności pakiet B nie ma dostępu do pakietu A). Klasy X i Y, podobnie jak U i V, jako klasy zdefiniowane w tym samym pakiecie widzą nawzajem swoje publiczne elementy. A B +X -Y «access» +U -V Rys. 9 Ilustracja reguł widoczności dla pakietów Z kolei Rys. 10 pokazuje sposób, w jaki moŝna uczynić diagram bardziej czytelnym prowadząc zaleŝność od wewnętrznej granicy pakietu; zaleŝność ta oznacza, Ŝe wszystkie elementy zawarte w pakiecie A odwołują się do publicznych elementów pakietu C. Podobny sposób upraszczania diagramów polegający na zmniejszeniu liczby elementów bez utraty informacji był juŝ prezentowany dla diagramów stanów przy opisie stanów złoŝonych. A A +X «access» +X «access» C C B +K B +K -L -L «access» Rys. 10 Wykorzystanie zaleŝności poprowadzonej od wewnętrznej granicy pakietu 7.3.3 Specjalne rodzaje pakietów UML wyróŝnia następujące specjalne rodzaje pakietów: «fasada» (ang. «facade») zawiera wyłącznie odwołania do elementów zdefiniowanych w innych pakietach. «model» stanowi abstrakcję systemu widzianą z pewnej perspektywy. Zwykle zawiera drzewo pakietów. Model moŝe zawierać relewantne elementy z otoczenia systemu, np. aktorów. Elementy z róŝnych modeli nie oddziaływują bezpośrednio na siebie, ale często stanowią róŝne reprezentacje tego samego bytu, róŝniące się na przykład ilością detali, co moŝe wymuszać potrzebę łączenia ich zaleŝnością typu «trace» czy «refinement». «podsystem» (ang. «subsystem») reprezentuje pewien spójny, logiczny, wyizolowany z kontekstu fragment systemu oraz posiada dobrze wyspecyfikowany zbiór interfejsów do interakcji z otoczeniem. Podsystem podzielony jest na dwie części: specyfikacyjną i realizacyjną. Część specyfikacyjna zawiera

opis interakcji z otoczeniem, z reguły za pomocą przypadków uŝycia. Część realizacyjna, posługując się kolaboracjami, podaje sposoby realizacji przypadków specyfikowanych w pierwszej części opisu podsystemu. Podsystemy mogą być zbudowane z innych podsystemów, przy czym podsystemy najniŝszego poziomu muszą zawierać elementy modelu. Podsystem stanowi zgrupowanie elementów modelu logicznego, podczas gdy komponent jest zgrupowaniem elementów modelu implementacyjnego. W wielu przypadkach podsystemy są implementowane jako komponenty, co upraszcza transformację modelu logicznego w implementacyjny i przez to jest powszechnie stosowanym podejściem. 7.3.4 Przykład z kancelarią prawniczą Na Rys. 11 zaprezentowano diagram pakietów skonstruowany w oparciu o tekst specyfikujący wymagania dla systemu wspierajacego pracę kancelarii prawniczej (rozdział 2, podrozdział 2.10). pd Law office People handling Cases handling User interface Rys. 11 Diagram pakietów dla systemu wspierającego pracę kancelarii prawniczej 7.4 Podsumowanie Konstruowanie diagramów implementacji jest uŝyteczne zarówno ze względu na ponowne uŝycie, jak i ze względu na moŝliwość uzyskania za ich pomocą odpowiednich parametrów wydajnościowych projektowanego systemu. Z kolei stosowanie pakietów ułatwia zarządzanie przechowywaniem, konfiguracjami oraz modyfikowaniem elementów systemu dobrze przeprowadzony podział na pakiety moŝe znacząco ułatwić zarządzanie procesem budowy produktu programistycznego. Problematykę diagramów pakietów moŝna podsumować następująco: Pakiety stanowią zgrupowanie elementów modelu. Są środkiem ogólnego przeznaczenia wykorzystywanym do budowy struktur hierarchicznych. KaŜdy element modelu, który nie jest zawarty wewnątrz innego elementu modelu, musi być zdefiniowany wewnątrz dokładnie jednej przestrzeni nazw (ang. home package). Oprócz elementów modelu pakiet moŝe takŝe zawierać inne pakiety (poprzez zagnieŝdŝanie). Pakiety mogą brać udział w związkach dziedziczenia. WyróŜnia się pakiety specjalnego rodzaju, m.in. «fasada», «model» oraz «podsystem».

W praktyce, podsystemy są implementowane jako komponenty, co upraszcza transformację modelu logicznego w model implementacyjny. 7.5 Przykładowe pytania i problemy do rozwiązania 1. Krótko scharakteryzuj cel budowy diagramów implementacyjnych. 2. Wymień i omów rodzaje diagramów implementacyjnych. 3. Zdefiniuj pojęcia: komponent, wystąpienie komponentu, interfejs, port, zaleŝność, węzeł. 4. Kiedy, w jakich sytuacjach i w jakim celu wykorzystywane są diagramy pakietów? 5. Podaj notację UML dla pakietu w oparciu o prosty przykładowy diagram. 6. Jakie rodzaje związków mogą występować między pakietami? 7. Wymień i krótko omów specjalne rodzaje pakietów. 8. Co oznacza pojęcie: home package? 9. Jaka zaleŝność występuje pomiędzy pojęciami: podsystem i komponent? Na jakim etapie cyklu Ŝyciowego produktu informatycznego funkcjonuje kaŝde z tych pojęć? 10. W oparciu o tekst specyfikujący wymagania dla systemu wspierającego pracę wypoŝyczalni płyt dvd (rozdział 2, podrozdział 2.12), skonstruuj diagram pakietów oraz diagram komponentów.