Modelowanie oparte na scenariuszach
Jolanta Sala Halina Tańska
2018/2019
Scenariusze
• Scenariusz jest specyfikacją zachowania, która wyraża proces jako sekwencję
zdarzeń i operacji.
• Scenariusze występują w dwu kategoriach:
– scenariusz specyficzny opisujący przykładowe oddziaływanie z pojedynczymi obiektami.
– scenariusz ogólny opisuje oddziaływanie w
kategoriach typów obiektów.
Scenariusz specyficzny
• Sklepik uczelniany „Złoty Pelikan” składa zamówienie na 90 butelek wody mineralnej niegazowanej, 80 butelek wody mineralnej gazowanej i 85 butelek soku
pomidorowego.
• W magazynie jest dostatecznie dużo wody mineralnej gazowanej i niegazowanej do realizacji zamówienia, więc przydziela się je do tego zamówienia.
• Nie ma jednak wystarczająco dużo soku pomidorowego, tak więc wstrzymuje się realizacje zamówienia do
przybycia nowej dostawy.
• Ponieważ zamówienie na sok pomidorowy zmniejszy
liczbę jego butelek poniżej wymaganego limitu, zamawia się następną dostawę u dostawcy Kubuś.
Scenariusz ogólny
• Klient składa zamówienie obejmujące pewną liczbę
wierszy, z których każdy zawiera produkt i liczbę sztuk.
• Następuje sprawdzenie każdego wiersza, czy w
magazynie jest wystarczająco dużo sztuk zamawianego towaru.
• Jeśli tak, to towar przydziela się do zamówienia.
• Jeśli nie ma odpowiedniej liczby sztuk, to realizacja zamówienia jest wstrzymywana w oczekiwaniu na dostawę brakującego produktu do magazynu.
• Jeśli skompletowano wszystkie zamawiane produkty, to można je wysłać do klienta.
• Jeśli realizacja zamówienia spowodowała, że liczba sztuk jakiegoś produktu spadła poniżej wymaganego limitu, zamawia się nową dostawę od dostawcy.
Scenariusz specyficzny
Scenariusze specyficzne są najprostszym sposobem komunikowania się z
użytkownikami nie mającymi
doświadczenia w modelowaniu. Takie scenariusze dotyczą bezpośrednio ich doświadczeń bez wprowadzania
jakiejkolwiek terminologii.
Analiza zachowania obiektów
• Jednym z popularnych podejść formalizujących scenariusze specyficzne jest analiza zachowania
obiektów, AZO (object behavior analysis, OBA) [Rubin 1992].
• Scenariusz jest tu reprezentowany jako tabela zwana skryptem.
• Każdy krok scenariusza jest opisany jednym wierszem tabeli.
• Każdy wiersz odnosi się do inicjatora jakiegoś zdarzenia.
• Operacja jest procesem wyzwalanym tym zdarzeniem.
• Uczestnik jest tym, kto bierze udział w operacji.
Przykład tabeli skryptu dla scenariusza specyficznego
Inicjator Zdarzenie Uczestnik Operacja
Sklepik uczelniany Sklepik uczelniany Sklepik uczelniany Sklepik uczelniany Zamówienie #123 Zamówienie #123 Magazyn
Zamówienie #123 Zamówienie #123 Magazyn
Magazyn
Zamówienie #123 Zamówienie #123
Składa zamówienie
Zamawia 90 but. wody min. niegaz Zamawia 80 but. wody min. gaz Zamawia 85 but. soku pomidor Sprawdza zapas wody min.niegaz.
Przydziela wodę NG do wysłania Sprawdza przekroczenie limitu
Sprawdza zapas wody min.gaz.
Przydziela wodę G do wysłania Sprawdza przekroczenie limitu
Zamawia uzupełnienie wody G Sprawdza zapas soku pomidor.
Wstrzymaj czekając na dostawę
Zamówienie #123 Zamówienie #123 Zamówienie #123 Zamówienie #123 Magazyn
Magazyn
Woda min.niegaz.
Magazyn Magazyn
Woda min.gazowa
Kubuś Magazyn
Zamówienie #123
Twórz
Dodaj wiersz Dodaj wiersz Dodaj wiersz Sprawdź zapas
Prześlij towar do wysłania Sprawdź przekroczenie limitu zapasu
Sprawdź zapas
Prześlij towar do wysłania Sprawdź przekroczenie limitu zapasu
Złóż zapotrzebowanie Sprawdź zapas
Wstrzymaj
Inicjator Realizator
Zdarzenie Operacja
Opis dwukolumnowy
• Działanie opisano w terminologii użytkownika po lewej stronie, a odwzorowanie na model po prawej.
• Warto zwrócić uwagę na metodę odwoływania się do egzemplarzy typów.
• Wiersz zamówienia [#2, zamówienie: #123, produkt:
woda min.niegaz., ilość 90] odnosi się do jednego egzemplarza Wiersza zamówienia. #2 daje mu
unikatową nazwę na potrzeby opisu scenariusza. Każde odwzorowanie i odwzorowany obiekt są potem
wymieniane po kolei. Na przykład odwzorowanie
produktu odwzorowywałoby do egzemplarza produktu o nazwie woda min.niegaz.
Format dwukolumnowy
Opis Odwzorowanie
Sklepik uczelniany składa zamówienie na 90 butelek wody min.niegaz., 80 butelek wody min.gaz i 85 butelek soku pomidor.
Jest dostatecznie dużo wody min.niegaz.
W magazynie jest wystarczająco dużo wody min.gaz., lecz trzeba jeszcze zamówić więcej
Składa się zamówienie uzupełnienia wody min.gaz.
Nie ma wystarczająco dużo soku pomidor.
Zamówienie jest wstrzymane aż do nadejścia dostawy
Tworzy się nowe zamówienie: Zamówienie[#123, klient: Sklepik uczelniany]. Zamówienie ma
następujące pozycje:
Wiersz zamówienia [#1, zamówienie: #123, produkt:
woda min.niegaz, ilość:90],
Wiersz zamówienia [#2, zamówienie: #123, produkt:
woda min.gaz, ilość:80],
Wiersz zamówienia [#3, zamówienie: #123, produkt:
sok pomidor., ilość:85]
Sprawdź w Magazynie pozycję (Wiersz zamówienia
#1). Sprawdzanie daje wynik pozytywny. Warunek dla Zamów uzupełnienie (woda min.niegaz) jest fałszywy.
Sprawdź w Magazynie pozycję (Wiersz zamówienia
#2). Sprawdzanie daje wynik pozytywny. Warunek dla Zamów uzupełnienie (woda min.gaz) jest
prawdziwy.
Zamów uzupełnienie (woda min.gaz)
Sprawdź w magazynie pozycję (Wiersz zamówienia
#3). Sprawdzanie daje wynik negatywny.
Warunek dla Wyślij towary (Zamówienie#123) jest fałszywy
Scenariusze ogólne – diagramy oddziaływania
• Diagram oddziaływania reprezentuje typy obiektowe biorące udział w scenariuszu za pomocą pionowych pasków.
• Ponieważ scenariusz jest obiektowy, każda operacja jest związana z jej konkretnym
typem obiektowym.
• Strzałki między paskami wskazują
sekwencję operacji, które mają być
wywołane.
sd przygotuj zamów ienie
klient
zamówienie
(from Dynamic View)
pozycja zamówienia
(from Dynamic View)
element z magazynu
(from Dynamic View)
element realizowanego
zamówienia
(from Dynamic View)
pozycja dostawy
(from Dynamic View) przygotuj
przygotuj
sprawdz usun
stwórz
zamów uzupełnienie
Diagram oddziaływania
Dla wszystkich Pozycji zamówienia Dla wszystkich Pozycji zamówienia
sprawdź stan zapasu danego produktu w magazynie jeśli wystarczy to
pobierz podaną liczbę sztuk
stwórz element realizowanego zamówienia jeśli pobrano poniżej wymaganego limitu to
zamów uzupełnienie towaru koniec jeśli
koniec jeśli koniec dla