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

Podobne dokumenty