diagramy implementacyjne - Uniwersytet Zielonogórski
Transkrypt
diagramy implementacyjne - Uniwersytet Zielonogórski
DIAGRAMY IMPLEMENTACYJNE Maciej Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Techniki modelowania programowania Diagramy implementacyjne 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. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 1 Techniki modelowania programowania Diagramy implementacyjne 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.). Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 2 Techniki modelowania programowania Diagramy implementacyjne 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. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 3 Techniki modelowania programowania Diagramy implementacyjne 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. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 4 Techniki modelowania programowania Diagramy implementacyjne Komponenty i interfejsy Interfejs – koncepcja i byt fizyczny, mechanizm wymiany usług pomiędzy komponentami, Pisownia Edytor_tekstu.exe S³ownik Interfejs eksportowany Klasy: ProcesorTekstu UstawieniaDruku LicznikS³ów Tezaurus Synonimy() Antonimy() Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Interfejs importowany 5 Techniki modelowania programowania Diagramy implementacyjne Przykład 4.1 Gra Java „Craps” (R. Cadenhead, Poznaj Java 2 w 24 godziny, 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 — strona www z grą, • 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). Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 6 Techniki modelowania programowania Diagramy implementacyjne Crapshoot 1. wszystkie pliki znajdują się we wspólnym katalogu craps.html 2. craps.html zależy od craps.class i die.class 3. craps.* używają die.*, a pliki *.java są binarnymi implementacjami *.class die.class craps.class 4. crsps.java udostępnia interfejs ItemListener ItemListener 5. crsps.java wykorzystuje interfejs ActionListener będący implementacją klasy java.awt.AWTMEventMulticaster . . . 6. . . . znajdującej się w pakiecie java.awt.event wewnątrz JDK die.java craps.java JDK java.awt.event AWTEventMulticaster ActionListener Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 7 Techniki modelowania programowania Diagramy implementacyjne 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, ⊲ zaczyna się wówczas, gdy model ogólny jest już dość pełny. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 8 Techniki modelowania programowania Diagramy implementacyjne Węzły i połączenia Asocjacja (komunikacyjna) — trasa komunikacji pomiędzy węzłami zrealizowana przy użyciu fizycznego połączenia. AdminSerwer:SUN Wêze³ Baza danych Wyniki Program steruj¹cy wyszukiwaniem Serwer Wdra¿a: Algorytm wyszukiwania danych Po³¹czenie Komputer Andrzeja:PC GUI Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 9 Techniki modelowania programowania Diagramy implementacyjne 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. {max. odleg³oœæ = 30m} PC #1 PC #2 <<device>> Koncentrator pasywny {max. odleg³oœæ = 30m} <<device>> Koncentrator aktywny {max. odleg³oœæ = 600m} PC #3 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski PC #5 RG-62U PC #4 10 Techniki modelowania programowania Diagramy implementacyjne 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 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 11 Techniki modelowania programowania Diagramy implementacyjne 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 <<use>> IPrzetwarzanie IProdukt Przetwarzanie biznesowe Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Bezpieczeñstwo 12 Techniki modelowania programowania Diagramy implementacyjne 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 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Dane 13 Techniki modelowania programowania Diagramy implementacyjne 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 Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 14 Techniki modelowania programowania Diagramy implementacyjne 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. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski 15