Przypadki użycia

Transkrypt

Przypadki użycia
Projektowanie - wprowadzenie
2
Model dziedziny
Projektowanie - wprowadzenie
Funkcjonalność
Statyka
Specyfikacja wymagań
Przypadki użycia
Obiektowy model dziedziny
Dynamika
Diagram sekwencji systemowych (SSD)
Kontrakty operacji
3
Model dziedziny
Operacje Systemowe
• Przypadek użycia jest opisem interakcji aktora z
systemem
• Aktor wchodzący w interakcje z systemem generuje
pewne zdarzenia, zwane zdarzeniami systemowymi
• Zdarzenia systemowe skutkują wywołaniem operacji,
zwanych operacjami systemowymi
• Operacja systemowa to operacja , którą system
udostępnia na zewnątrz
4
Model dziedziny
Diagram sekwencji systemowych
:System
OperacjaSystemowa1(a, b, c)
Odpowiedź systemu
OperacjaSystemowa2()
Diagram Sekwencji Systemowych (ang. System Sequence Diagram) przedstawia,
w jaki sposób zewnętrzny aktor wchodzi w interakcje z projektowanym systemem
Diagram Sekwencji Systemowych w istocie jest wizualizacją wybranego
scenariusza przypadku użycia, wzbogaconą o specyfikację operacji systemowych
5
Model dziedziny
Identyfikacja operacji systemowych
• Technika tworzenia diagramów sekwencji systemowych polega na analizie
kolejnych kroków scenariusza i próbie „wydobycia” z tego opisu (oraz na
podstawie modelu dziedziny) tego, co należy przesłać do systemu, aby
osiągnąć rezultat opisany w przypadku użycia
• System traktuje się jako czarną skrzynkę – nie interesuje nas, w jaki sposób
dana operacja jest realizowana w systemie, interesuje nas tylko to, jaki
komunikat wysyłamy do systemu i co otrzymujemy w odpowiedzi
• Z reguły nie ma potrzeby tworzenia diagramów sekwencji systemowych dla
wszystkich możliwych scenariuszy. Wybiera się tylko te scenariusze, które
mają kluczową wartość dla projektowanego systemu
6
Model dziedziny
Przykład: Książka adresowa
UC1: Przeglądaj dane osób
Scenariusz główny:
1. Użytkownik prosi system o pokazanie
listy wszystkich osób
2. System prezentuje podstawowe dane
wszystkich osób
3. Użytkownik wybiera jedną osobę
4. System pokazuje kompletne dane
wybranej osoby
UC2: Modyfikuj dane osoby
Warunek wstępny: Użytkownik
wybrał osobę, której dane zamierza
zmienić
(UC1: Przeglądaj dane osób)
Scenariusz główny:
1. Użytkownik prosi System o możliwość
edycji danych wybranej osoby
2. System przechodzi w tryb edycji
3. Użytkownik modyfikuje dane wybranej
osoby i prosi System o zatwierdzenie
4. System zatwierdza wprowadzone
zmiany
7
Model dziedziny
Rodzaje operacji systemowych
• command – operacja zmienia stan systemu. Dobrą
praktyką jest by tego typu operacje nie zwracały żadnych
danych
▫ Przykład: ModyfikujOsobe()
• query – operacja nie zmienia stanu systemu. Służy do
uzyskania pewnych danych z systemu. Operacje typu
query zwracają dane
▫ Przykład: PobierzListeOsob(), PobierzOsobe()
8
Model dziedziny
Kontrakty dla operacji wg Larmana
• Kontrakt dla operacji jest opisem stanu systemu
przed i po wykonaniu operacji systemowej
• Kontrakty tworzy się dla bardziej złożonych
operacji systemowych
• Kontrakty tworzy się w oparciu o model
dziedziny
9
Model dziedziny
Kontrakt operacji - szablon
• Operacja: nazwa operacji systemowej i jej argumenty
• Przypadki użycia: lista przypadków użycia, w których
występuje operacja systemowa
• Warunki początkowe: stan systemu w chwili
rozpoczęcia operacji systemowej
• Warunki końcowe: stan systemu po zakończeniu
operacji systemowej
10
Model dziedziny
Stan systemu
Stan systemu opisuje się w kategoriach:
•
istnieje..., utworzono..., usunięto obiekt x
klasy X
•
atrybutom obiektu x przypisano wartości…
•
istnieje…, utworzono…, usunięto powiązanie
pomiędzy obiektem x a y
11
Model dziedziny
Przykład (1)
Organizator: Utworzyć kontrakt dla następujących operacji systemowych:
DodajWydarzenie(co, gdzie, kiedy)
DodajUczestnika(idWydarzenie, idOsoba)
12
Model dziedziny
Przykład (2)
Operacja: DodajWydarzenie(co, gdzie, kiedy)
Przypadki użycia: UC1 Dodaj wydarzenie
Warunki początkowe:
Istnieje instancja t klasy Terminarz
Warunki końcowe:
Utworzono instancje w klasy Wydarzenie
Atrybutowi w.IdWydarzenie przypisano unikalną wartość
Pozostałym atrybutom w przypisano wartości parametrów co,
gdzie, kiedy
(w.co := co, w.gdzie := gdzie, w.kiedy := kiedy)
Utworzono powiązanie pomiędzy w a instancją klasy Terminarz
13
Model dziedziny
Przykład (3)
Operacja: DodajUczestnika(idWydarzenie, idOsoba)
Przypadki użycia: UC3 Dodaj uczestnika
Warunki początkowe:
istnieje instancja w klasy Wydarzenie o identyfikatorze
idWydarzenie
istnieje instancja o klasy Osoba o identyfikatorze idOsoba
Warunki końcowe:
Utworzono instancje u klasy Uczestnictwo
Atrybutowi u.status przypisano wartość „niepotwierdzone”
Utworzono powiązanie pomiędzy u i w
Utworzono powiązanie pomiędzy u i o
14
Model dziedziny
Projektowanie według umowy
• Kontrakty dla operacji systemowych są uproszczoną wersją
koncepcji projektowania kontraktowego (inaczej: projektowanie
według umowy)
• W projektowaniu kontraktowym oprócz warunków początkowych i
końcowych definiuje się tzw. niezmienniki. Jest to rodzaj
ograniczeń, które muszą być spełnione zawsze, przez wszystkie
instancje klasy. Przykładowo, atrybut cena dla obiektów klasy
Produkt musi zawsze być większa od zera
• W projektowaniu kontraktowym warunki początkowe, końcowe oraz
niezmienniki można definiować zarówno dla klas jak i operacji
• Do formalnego zapisu warunków początkowych, końcowych oraz
niezmienników służy język OCL (ang. Object Constrain Language).
15
Model dziedziny
Literatura
• Craig Larman: Applying UML and Patterns: An Introduction to
Object-Oriented Analysis and Design and Iterative Development
• Grady Booch, James Rumbaugh, Ivar Jacobson: UML Przewodnik
użytkownika
• Kazimierz Subieta: Projektowanie systemów informatycznych –
wykłady
• http://mediawiki.ilab.pl/index.php/Inżynieria_opro
gramowania