DIAGRAMY IMPLEMENTACYJNE Maciej Patan
Strukturalne diagramy implementacyjne Służą pokazaniu implementacji modelu, włączając w to strukturę kodu źródłowego oraz implementację środowiska wykonania. Typy: diagramy komponentów, diagramy wdrożenia. 1
Diagramy komponentów Komponent element oprogramowania; fizyczna, wymienna część systemu, służąca do dzielenia procesu implementacji i realizująca określony zbiór interfejsów. Rodzaje komponentów: komponenty procesu wytwórczego(pliki z kodem źródłowym oraz z danymi), komponenty wdrożenia podstawa systemu wykonywalnego(np. pliki wykonywalne, biblioteki DLL, kontrolki ActiveX, JavaBeans itp.), komponenty wykonania są efektem działania systemu(np. pliki pomocnicze itp.). 2
Modelowanie komponentowe wyspecjalizowany typ modelowania strukturalnego, służący do modelowania implementacji systemu. pokazuje wzajemne zależności pomiędzy elementami oprogramowania, diagramy wdrożenia mogą zostać użyte do pokazania, które komponenty będą uruchamiane na konkretnych węzłach, stosowane jest do ustalenia jak system będzie budowany w trakcie implementacji, czyli na jakich elementach skoncentrują się działania w czasie tej fazy, zaczyna się na dalszym etapie projektowania, gdy model ogólny jest stosunkowo pełny. 3
Dlaczego modelować komponenty? klienci mogą zobaczyć pełną strukturę systemu, twórcy oprogramowania znają strukturę do której mają dążyć, twórcy dokumentacji i plików pomocy rozumieją o czym piszą, możliwe jest wielokrotne wykorzystanie komponentów lub ich zastępowanie. zgodność interfejsów! dostęp do operacji komponentu. 4
Komponenty i interfejsy Interfejs koncepcja i byt fizyczny, mechanizm wymiany usług pomiędzy komponentami, S³ownik Pisownia Edytor_tekstu.exe Klasy: ProcesorTekstu UstawieniaDruku LicznikS³ów Interfejs eksportowany Tezaurus Synonimy() Antonimy() Interfejs importowany 5
Przykład4.1GraJava Craps (R.Cadenhead,PoznajJava2w24godziny, Infoland 2002). Rzucamy dwoma kośćmi. Wygrywamy zakład jeżeli wypadnie 7 lub 11, przegrywamy gdy 2,3 lub 12. Gra jest zaimplementowana w postaci appletu na stronie www i składa się z następujących plików znajdujących się we wspólnym katalogu o nazwie Crapshoot: craps.html stronawwwzgrą, die.class kod obiektowy rzutu kostką, die.java kod źródłowy rzutu kostką, do którego odwołuje się aplet, craps.html kod obiektowy apletu, craps.java kod źródłowy apletu, w którym implementowany jest jest interfejs ItemListener oczekujący na zdarzenia inicjowane przez użytkownika; w kodzie programu wykorzystywany jest także interfejs ActionListener udostępniający przycisk, którego naciśnięcie powoduje rzut kostką, a który jest implementacją klasy java.awt.awtmeventmulticaster znajdującej się w pakiecie java.awt.event wewnątrz Java Development Kit(JDK). 6
Crapshoot 1. wszystkie pliki znajdują się we wspólnym katalogu 2. craps.html zależy od craps.class i die.class craps.html 3. craps.* używają die.*, a pliki*.java są binarnymi implementacjami*.class die.class craps.class 4. crsps.java udostępnia interfejs ItemListener 5. crsps.java wykorzystuje interfejs ActionListener będący implementacją klasy java.awt.awtmeventmulticaster... die.java craps.java ItemListener 6...znajdującejsięwpakiecie java.awt.event wewnątrz JDK JDK java.awt.event AWTEventMulticaster ActionListener 7
Diagramy wdrożenia Węzeł fizyczny obiekt środowiska wykonania przedstawiający zasób obliczeniowy. Modelowanie wdrożenia wyspecjalizowany typ modelowania strukturalnego, służący do budowy(fizycznego) środowiska implementacji systemu. w odróżnieniu do modelowania komponentów, model wdrożenia przedstawia zewnętrzne zasoby wymagane przez komponenty, pokazuje konfiguracje przetwarzających elementów uruchomieniowych oraz komponentów oprogramowania, procesów i obiektów, które na nich funkcjonują, diagramy wdrożenia mogą zostać użyte do pokazania, które komponenty będą uruchamiane na konkretnych węzłach, stosowane jest wówczas, gdy potrzebne jest ustalenie w jaki sposób wdrożenie udostępni system użytkownikom, zaczynasięwówczas,gdymodelogólnyjestjużdośćpełny. 8
Węzły i połączenia Asocjacja(komunikacyjna) trasa komunikacji pomiędzy węzłami zrealizowana przy użyciu fizycznego połączenia. Wêze³ AdminSerwer:SUN Baza danych Program steruj¹cy wyszukiwaniem Wyniki Serwer Wdra a: Algorytm wyszukiwania danych Po³¹czenie Komputer Andrzeja:PC GUI 9
Przykład 4.2 Sieć ARCnet(Attached Resources Computing network) o topologii gwiazdy, korzystająca z tokena przechodzącego od komputera do komputera, zgodnie z określoną numeracją. Każdy komputer jest połączony interfejsem RG-62U z koncentratorem aktywnym wzmacniającym sygnał(max. do 600m)lub pasywnym(każde połączenie max. do 30 m). Narysować przykładowy diagram wdrożenia dla 5 terminali. PC #1 {max. odleg³oœæ = 30m} <<device>> Koncentrator pasywny PC #2 {max. odleg³oœæ = 30m} <<device>> Koncentrator aktywny PC #5 {max. odleg³oœæ = 600m} RG-62U PC #3 PC #4 10
Zależności(1) Zależność rezydowania zachodzi między komponentem a elementem UML(pakiet, podsystem lub dowolna klasa); oznacza, że komponent jest klientem elementu, który z kolei jest uważany za dostawcę, i że element rezyduje w komponencie; element może rezydować w dowolnej liczbie komponentów. IPrzetwarzanie <<subsystem>> Przetwarzanie biznesowe <<reside>> Przetwarzanie biznesowe <<reside>> Narzêdzia 11
Zależności(2) Zależność użycia komponentu klienta od komponentu dostawcy oznacza, że komponent klienta używa(jest zależny od) komponentu dostawcy. Zależność ta jest równoważna użyciu przez klienta interfejsu udostępnianego przez dostawcę. Interfejs uzytkownika <<use>> Dane IPrzetwarzanie <<use>> IProdukt Przetwarzanie biznesowe Bezpieczeñstwo 12
Zależności(3) Zależność wdrożenia pomiędzy komponentem klienckim i węzłem dostawcy oznacza, że komponent kliencki jest wdrożony(uruchamiany) w węźle dostawcy. Serwer baz danych Przeszukiwanie Dane <<deploy>> Serwer baz danych Dane 13
Kiedy modelować strukturę? gdy możliwa jest adaptacja uniwersalnego podejścia hierarchicznego do modelowanej struktury, specyfikacja bardziej ogólnych wyższych poziomów struktury(ang. top-level modelling) przy użyciu klasyfikatorów uzasadnionych z punktu widzenia architektury systemu oraz elementów zarządzających(pakiety, podsystemy, modele), specyfikacja szczegółowych niższych poziomów(ang. lower-level modelling) w momencie odkrywania detali klasyfikatorów i wzajemnych relacji występujących między nimi, jeżeli dysponujemy sporą wiedzą w dziedzinie systemu można często rozpocząć od modelowania strukturalnego, w przeciwnym razie jeżeli wychodzimy od modelu przypadków użycia lub modelu kolaboracji należy upewnić się, że nowo powstały model strukturalny jest spójny z danymi przypadkami użycia/kolaboracjami 14
Wskazówki przy modelowaniu strukturalnym służy do zdefiniowania szkieletu systemu, który może być łatwo poszerzany i ulepszany w miarę jak nabywamy wiedzy w danej dziedzinie, należy się skupić na użyciu prostych konstrukcji, a zaawansowane i złożone konstrukty i/lub notację stosować tylko w razie konieczności, w procesie modelowania implementację należy odroczyć na możliwie jak najdalsze etapy, Diagramy strukturalne powinny: podkreślać szczególny aspekt modelu strukturalnego, zawierać klasyfikatory(klasy, komponenty, węzły, itd.) o tym samym poziomie abstrakcji, duża liczba klasyfikatorów powinna być zorganizowana w pakiety. 15