Analiza różnych wind i design
Wybrany przykład:
Pozostałe przykłady
Uzasadnienie wyboru i porównanie
Wybrany przykład - P1 jest bardzo dobrze zamodelowanym i udokumentowanym systemem. Tę cechę posiada również przykład P2, jednak w przypadku przykładu P2 mimo wielu diagramów analiza wydaje się zbyt uboga (m.in. tylko dwa use-case'y). Za bazowy uznaję przykład P1. Jeśli na etapie projektowania/prototypowania okaże się, iż w modelu brakuje ważnych z punktu widzenia realizowanego projektu informacji bądź schematów zostaną one zaczerpnięte z przykładu P2. Przykład P3 jako, że nie jest zamodelowany w języku UML może przydać się przy wyodrębnianiu artybutów/definiowaniu reguł.
Mimo powyższego jednak algorytm ruchu windy, mimo, iż diagramy UML - use-case i aktywności precyzują działanie windy sprowadza się ono jednak do zbioru reguł prezentowanego w P3, dlatego to on zostanie zaimplementowany.
Wezwanie windy sprowadzić można do sprawdzenia czy wezwanie jest z nad windy czy z poniżej aktualnej pozycji windy, podobnie wezwania wewnętrzne (z przykładu P3 zostaną usunięte warunki i konkluzje dotyczące przeciążenia windy jako, że modele UML nie specyfikowały takiej funkcjonalności).
Description
Przykład zakłada realizacje podstawowych funkcji windy jak przywołanie windy, wybranie piętra docelowego, wskazywanie położenia wewnątrz i na zewnątrz windy, wskazywanie kierunku jazdy, jazde windy między piętrami, wyliczanie na które piętro pojechać. W przeciwieństwie do innych przykładów działanie windy zależy w wielkim stopniu nie tylko od akcji podejmowanych przez pasażerów w danym momencie, ale także od „pamięci” windy (tj. wcześniejszych wezwań), aktualnego jej stanu - aktualnego kierunku jazdy etc.
Conceptualization
Na tym etapie na podstawie modelu następuje próba wyselekcjonowania wejść, wyjść, wyselekcjonowanie atrybutów (fizycznych i ogólnych), próba zamodelowania reguł panujących w systemie przy pomocy atrybutów.
Vocabulary
Wejścia: wezwania windy z zewnątrz, wezwania windy z kabiny
Wyjścia: określenie kierunku ruchu, oraz piętra na którym się zatrzymać (technicznie wypracowanie sterowania…) ; w pewnym sensie wyjścia to także wskaźniki w windzie i poza nią
Stany wewnętrzne: Aktualne położenie, aktualny kierunek ruchu
Original Rules
Reguły:
tabela decyzyjna → kierunek jazdy
tabela decyzyjna + aktualne piętro → stop czy jazda dalej
przyciski zewnątrz i wewnątrz → zmiana w kontrolerze
Analysis
Conceptual design
Poziom 0: Winda
Poziom 1: Finalizacja Windy na: Aktualny kierunek windy, Poprzedni kierunek windy, Czy jest żądanie jazdy w gorę z kabiny, Czy jest żądanie jazdy w dół z kabiny, Czy jest żądanie jazdy na aktualne piętro z kabiny, Czy są wezwania z wyższych pięter do jazy w górę, Czy są wezwania z wyższych pięter do jazdy w dół, Czy są wezwania z niższych pięter do jazdy w górę, Czy są wezwania z niższych pięter do jazdy w dół Czy są wezwania z aktualnego piętra do jazdy w górę, Czy są wezwania z aktualnego piętra do jazdy w dół, Decyzja gdzie jechać
Poziom 2: Split: Aktualny kierunek windy → Decyzja gdzie jechać, Poprzedni kierunek windy → Decyzja gdzie jechać, Czy jest żądanie jazdy w gorę z kabiny → Decyzja gdzie jechać, Czy jest żądanie jazdy w dół z kabiny → Decyzja gdzie jechać, Czy jest żądanie jazdy na aktualne piętro z kabiny → Decyzja gdzie jechać, Czy są wezwania z wyższych pięter do jazy w górę → Decyzja gdzie jechać, Czy są wezwania z wyższych pięter do jazdy w dół → Decyzja gdzie jechać, Czy są wezwania z niższych pięter do jazdy w górę → Decyzja gdzie jechać, Czy są wezwania z niższych pięter do jazdy w dół → Decyzja gdzie jechać, Czy są wezwania z aktualnego piętra do jazdy w górę → Decyzja gdzie jechać, Czy są wezwania z aktualnego piętra do jazdy w dół → Decyzja gdzie jechać
Poziom 3-13: Finalizacja każdego z atrybutów
General Conceptual Design
V1
Directed Conceptual Design
Full ARD Model
ARD:
Refined Conceptual Design
Physical Attribute Specification
Structuralization
Logical design
V1
Plik .dot XTT
XTT:
<graphviz file=„pl:miw:miw08_ardcase_cs:elevator-xtt.dot”>
</graphviz>
Plik HQED XTTML
Ostatnie zmiany
24.05.2008 - wersja końcowa, usunięcie linków zewnętrznych, dodanie kopii lokalnych
19.05.2008 - Dopisanie / zmiana opisu, dodanie ARD/XTT