PRI W1 UML

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 1

Projektowanie systemów

informacyjnych

Ewa Stemposz, Kazimierz Subieta

Instytut Podstaw Informatyki PAN,
Warszawa

Polsko-Japońska Wyższa Szkoła
Technik Komputerowych, Warszawa

Wykład 1

Kryzys oprogramowania
Model przypadków użycia

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 2

Zalecana literatura

 E. Stemposz, K. SUBIETA: Slajdy do wykładu “Projektowanie
systemów informacyjnych”
 J. Płodzień, E. Stemposz: Analiza i projektowanie systemów
informatycznych, wydawnictwo PJWSTK, 2003 i wydanie II-gie
rozszerzone 2005
 K. SUBIETA: Obiektowość w projektowaniu i bazach danych,
Akademicka Oficyna Wydawnicza PLJ, 1998
 K. SUBIETA: Słownik terminów z zakresu obiektowości,
Akademicka Oficyna Wydawnicza PLJ, 1999
 M. Fowler, K. Scott: UML Distilled, Addison-Wesley 1997
 J. Rumbaugh, I. Jacobson, G. Booch: The Unified Modeling
Language Reference Manual, Addison-Wesley, 1999
 OMG Unified Modeling Language. Specification, Version 1.5, The
Object Management Group, 2003, http://www.omg.org
 T. Quatrani: Visual Modeling with Rational Rose 2000 and UML,
Addison-Wesley, 2000
 C. Larman: Applying UML and Patterns. An Introduction to
Object-Oriented Analysis and Design, Prentice-Hall, Inc., 1998

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 3

Zagadnienia

Czynniki jakości oprogramowania

Notacja

Analiza aktorów

Analiza przypadków użycia

Relacje między przypadkami użycia

Relacje między aktorami

Określanie aktorów

Określanie przypadków użycia

Dokumentowanie przypadków użycia

Diagram interakcji dla przypadku użycia

Podsumowanie

Kryzys oprogramowania

Zadania inżynierii oprogramowania

Model przypadków użycia:

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 4

Jakość oprogramowania − czynniki

Poprawność określa, czy oprogramowanie wypełnia postawione przed
nim zadania i czy jest wolne od błędów (niezawodność).
Łatwość użycia jest miarą stopnia łatwości korzystania z
oprogramowania.
Czytelność pozwala na określenie wysiłku niezbędnego do
zrozumienia oprogramowania.
Ponowne użycie charakteryzuje przydatność oprogramowania, całego
lub tylko pewnych fragmentów, do wykorzystania w innych produktach
programistycznych.
Stopień strukturalizacji (modularność) określa, jak łatwo
oprogramowanie daje się podzielić na części o dobrze wyrażonej
semantyce i dobrze wyspecyfikowanej wzajemnej interakcji.
Efektywność opisuje stopień wykorzystania zasobów sprzętowych i
programowych stanowiących podstawę działania oprogramowania.
Przenaszalność mówi o łatwości przenoszenia oprogramowania na
inne platformy sprzętowe czy programowe.
Skalowalność opisuje zachowanie się oprogramowania przy rozroście
liczby użytkowników, objętości przetwarzanych danych, dołączaniu
nowych składników, itp.
Współdziałanie charakteryzuje zdolność oprogramowania do
niezawodnej współpracy z
innym niezależnie skonstruowanym oprogramowaniem.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 5

Kryzys oprogramowania − symptomy

(1)

USA:

 (IEEE Software Development, Aug 94, p.65)
Utrzymanie 10 mld. linii istniejących programów kosztuje 70
mld. $ rocznie

 (Failed technology projects in Investor’s Business Daily, Los Angeles, Jan. 25,
1995, p. A8)

 (PC Week, 16 Jan 95, p.68)
31% nowych projektów jest anulowane przed zakończeniem;
koszt 81 mld. $

Symptomy kryzysu oprogramowania:

31% projektów jest anulowane jeszcze w trakcie konstrukcji.

53% projektów jest kończone z przekroczeniem zaplanowanego czasu, budżetu
i z ograniczeniem planowanego zbioru funkcji systemu.

Zaledwie 16% projektów jest kończone w zaplanowanym czasie, bez
przekroczenia budżetu i okrajania funkcjonalności.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 6

Kryzys oprogramowania − symptomy

(2)

 (Ed Yourdon’s Guerilla Programmer, Jul 95)
Średnia wydajność wykonawców oprogramowania spadła o 13% w
ciągu dwóch lat;
stosunek najlepszej wydajności do najgorszej od 1990 r. rozszerzył
się od 4:1 do 600:1.

Uzależnienie organizacji od systemów komputerowych i
przyjętych technologii przetwarzania informacji, które nie są stabilne
w długim horyzoncie czasowym.

Problemy

współdziałania

niezależnie

zbudowanego

oprogramowania, szczególnie istotne przy dzisiejszych tendencjach
integracyjnych.

Problemy przystosowania już istniejących i działających
systemów do nowych wymagań, tendencji i platform sprzętowo-
programowych.

Frustracje informatyków wynikające ze zbyt szybkiego postępu w
zakresie narzędzi i metod wytwarzania oraz uciążliwości i
długotrwałości procesów produkcji i pielęgnacji oprogramowania.
Znaczące zmiany w przemyśle informatycznym następują co 5-7
miesięcy w porównaniu do 5-7 lat w innych dziedzinach.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 7

Kryzys oprogramowania − przyczyny

 Konflikt pomiędzy odpowiedzialnością, jaka spoczywa na
współczesnych SI, a ich zawodnością wynikającą ze złożoności i
ciągle niedojrzałych metod tworzenia i weryfikacji oprogramowania.

Podstawowym powodem kryzysu oprogramowania jest
złożoność produktów informatyki i procesów ich
wytwarzania.

 Długi i kosztowny cykl tworzenia oprogramowania, wysokie
prawdopodobieństwo niepowodzenia projektu programistycznego.

Niska kultura ponownego użycia (ang. reuse) artefaktów
wytwarzanych w trakcie realizacji projektów; niski stopień
powtarzalności poszczególnych przedsięwzięć.

 Długi i kosztowny cykl życia SI, wymagający stałych (często znaczących) zmian.

 Eklektyczne, niesystematyczne środowiska implementacji.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 8

Źródła złożoności oprogramowania

Zespół projektantów

podlegający
ograniczeniom pamięci,
percepcji, wyrażania
informacji i komunikacji.

Zespół projektantów

podlegający
ograniczeniom pamięci,
percepcji, wyrażania
informacji i komunikacji.

Dziedzina
problemowa
,

obejmująca ogromną
liczbę wzajemnie
uzależnionych aspektów i
problemów.

Dziedzina
problemowa
,

obejmująca ogromną
liczbę wzajemnie
uzależnionych aspektów i
problemów.

Środki i technologie
informatyczne
:

sprzęt, oprogramowanie,
sieć,
języki, narzędzia, itd.

Środki i technologie
informatyczne
:

sprzęt, oprogramowanie,
sieć,
języki, narzędzia, itd.

Oprogramowanie

Potencjalni
użytkownicy
:

czynniki psychologiczne,
ergonomia, ograniczenia
pamięci i percepcji,
skłonność do błędów i
nadużyć, tajność,
prywatność.

Potencjalni
użytkownicy
:

czynniki psychologiczne,
ergonomia, ograniczenia
pamięci i percepcji,
skłonność do błędów i
nadużyć, tajność,
prywatność.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 9

Redukcja złożoności oprogramowania

(1)

Złożoność powoduje, że głównym problemem w procesie konstrukcji
produktów informatycznych stał się człowiek (analityk, projektant,
programista, ...) z jego różnymi
uwarunkowaniami fizycznymi, psychologicznymi i mentalnymi.

Wniosek: Technologie komputerowe powinny być bardziej
zorientowane na ludzi,
niż na maszyny.

Co
robić?

Mechanizmy abstrakcji − pozwalają operować jednostkami
bez wnikania w ich wewnętrzną strukturę, co znacząco ułatwia
proces rozumienia: np. poprzez pominięcie mniej istotnych
elementów, oddzielenie specyfikacji od implementacji czy też
wyodrębnienie cech wspólnych i niezmiennych (inwariantnych)
dla pewnego zbioru bytów.

Należy wykorzystywać:

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 10

Redukcja złożoności oprogramowania

(2)

Ponowne użycie − pozwala na wykorzystanie wcześniej
wytworzonych

schematów,

metod,

wzorców,

komponentów

projektu, komponentów oprogramowania, itd.

Efekty:

 można komponować większe jednostki oprogramowania z
mniejszych,

 można dekomponować złożone struktury na fragmenty a
następnie rozpatrywać te fragmenty niezależnie od siebie i
niezależnie od całości.

Mechanizmy kompozycji i dekompozycji, czyli podział na
części o dobrze wyrażonej semantyce i dobrze wyspecyfikowanej
wzajemnej interakcji (strukturalizacja oprogramowania):

Zasada sprzyjania naturalnym ludzkim własnościom
pozwala na dopasowanie modeli pojęciowych i realizacyjnych
systemów do mechanizmów percepcji i rozumienia świata przez
ludzi.

Nie tylko wzrost efektywności procesu wytwarzania
produktu programistycznego ale też i wzrost jakości
oprogramowania,

czyli

np.

poprawności,

niezawodności,

czytelności,

testowalności,

skalowalności, łatwej pielęgnacji, współdziałania,
przenaszalności, itp.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 11

Strukturalizacja oprogramowania

“Nawet ubogi interface do źle skonstruowanego komponentu może uczynić system
( jako całość) łatwiejszym do zrozumienia, a przez to do modyfikacji.”

Jeśli wystarczy jedynie rozpoznać interface do komponentu, a nie
jego szczegółową implementację, musi to zaowocować większą
wydajnością pracy.

 Jeśli można bezpiecznie zignorować niektóre aspekty systemu
(objęte przez wykorzystywany komponent) to większą uwagę można
przyłożyć do swojej pracy, przez co mniej błędów wprowadza się do
systemu.

 Dzięki strukturalizacji oprogramowania łatwiej znajduje się błędy
(zarówno w trakcie budowania, jak i konserwacji systemu); nie
wszystkie moduły muszą być testowane przy usuwaniu konkretnego
błędu.

 Dobrze przetestowny, udokumentowany komponent może być
wielokrotnie wykorzystywany (ponowne użycie).

 Modularna budowa ułatwia podział pracy.

Korzyści jakie przynosi strukturalizacja
oprogramowania:

Ze strukturalizacją oprogramowania związane są dwa, opisane dalej, pojęcia: kohezja i
skojarzenia.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 12

Kohezja i skojarzenia

Kohezja (ang. cohesion) oznacza zwartość, spoistość. Terminu tego
używa się np. w odniesieniu do komponentu oprogramowania (klasy,
modułu, itp.) na oznaczenie wzajemnego zintegrowania jego elementów
składowych. Wysoka, duża kohezja (ang. high cohesion) oznacza silną
interakcję „wewnątrz” i relatywnie słabszą interakcję z „zewnętrzem”.
Komponent powinna cechować duża kohezja, co w praktyce oznacza, że
komponent stanowi dobrą, intuicyjną abstrakcję “czegoś”, czyli posiada
precyzyjnie określoną semantykę, jest dobrze wyizolowany z kontekstu
(maksymalnie od niego niezależny) oraz posiada dobrze zdefiniowany
interface.

Skojarzenie (ang. coupling) określa stopień powiązania elementów
składowych oprogramowania, np. możemy określić skojarzenie klas w
oparciu o poniższe stwierdzenia: jak często obiekty jednej klasy
występują razem z obiektami drugiej klasy, jak często obiekty jednej
klasy wysyłają komunikaty do obiektów drugiej klasy, itp. Możliwe są
skojarzenia silne, słabe czy w ogóle brak skojarzenia. Duża ilość silnych
skojarzeń miedzy elementami składowymi (ang. high coupling) jest tym,
czego powinno się unikać.

Analiza stopnia kohezji i wzajemnych skojarzeń stanowi podstawę
do konstruowania architektury systemu, czyli wyróżniania
elementów składowych systemu, określania ich wzajemnych
interakcji oraz sposobów przesyłania pomiędzy nimi danych.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 13

Zadania inżynierii oprogramowania

 Propagowanie wykorzystywania technik i narzędzi ułatwiających
pracę nad złożonymi systemami;
 Upowszechnianie metod wspomagających analizę nieznanych
problemów oraz ułatwiających wykorzystanie wcześniejszych
doświadczeń;
 Usystematyzowanie procesu wytwarzania oprogramowania, tak aby
ułatwić jego planowanie i monitorowanie;
 Wytworzenie wśród producentów i nabywców przekonania, że
budowa

dużego

systemu

wysokiej

jakości

jest

zadaniem

wymagającym profesjonalnego podejścia.

Zadania stojące przed inżynierią oprogramowania w walce z
narastającą złożonością oprogramowania:

 Redukcja złożoności oprogramowania;

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 14

Modele wg Jacobsona

Model przypadków użycia: definiuje zarówno zewnętrze systemu
(aktorzy ≡ systemy zewnętrzne ≡ kontekst systemu), jak i jego wnętrze
(przypadki użycia); służy określeniu zachowań systemu w odpowiedzi
na akcje pochodzące z otoczenia systemu.

Obiektowy model dziedziny: odwzorowywuje byty świata
rzeczywistego (dziedziny problemowej ≡ dziedziny przedmiotowej) w
obiekty istniejące w systemie.

Obiektowy model analityczny: podzbiór modelu dziedziny (dotyczy
konkretnego zastosowania).

Model projektowy (logiczny): opisuje założenia przyszłej
implementacji.

Model implementacyjny (fizyczny): reprezentuje implementację
systemu.

Model testowania: określa plan testów, specyfikuje procedury, dane
testowe, raporty.

Modele wymagają odpowiednich procesów do ich tworzenia
Proces analizy wymagań, składa się z dwóch podprocesów:

- proces modelowania przypadków użycia
- proces analizy związany z budową obiektowego modelu

analitycznego

Proces projektowania

Proces implementacji

Proces testowania

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 15

Model analityczny

Model analityczny z reguły wykracza poza zakres odpowiedzialności systemu.

Zakres

odpowiedzialności

systemu

Model analityczny

Celem budowy modelu analitycznego
może być wykrycie tych fragmentów
dziedziny

problemu,

których

wspomaganie za pomocą innego
oprogramowania będzie szczególnie
przydatne.

 Ujęcie w modelu pewnych elementów dziedziny problemu nie
będących częścią systemu czyni model bardziej zrozumiałym.
Przykładem jest ujęcie w modelu systemów zewnętrznych, z którymi
system ma współpracować.
 Na etapie modelowania może nie być jasne, które elementy
modelu będą realizowane przez oprogramowanie, a które w sposób
sprzętowy lub ręcznie.

Dziedzina problemu

Dostępne

środki

mogą

nie

pozwolić na realizację systemu
w całości.

Przyczyny:

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 16

Model wymagań

Model przypadków użycia

Obiektowy model analityczny

Składowe:

Model przypadków użycia został oparty o dwa podstawowe pojęcia:

Aktor

Przypadek użycia

Reprezentuje rolę, którą może grać w
systemie

jakiś

jego

użytkownik,

np.

kierownik, urzędnik, klient.
Reprezentuje

sekwencję

operacji

(realizowanych przez system), niezbędnych
do wykonania zadania zleconego przez
aktora, np. potwierdzenie pisma, złożenie
zamówienia, itp.

Aktorem jest dowolny byt z otoczenia systemu, który uczestniczy w
interakcji z systemem. Każdy potencjalny aktor może wchodzić w
interakcję z systemem na pewną liczbę jemu właściwych sposobów.
Każdy z tych sposobów nosi nazwę przypadku użycia i reprezentuje
przepływ operacji w systemie związany z obsługą zadania zleconego
przez aktora w procesie interakcji.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 17

Notacja

Przypadek użycia: Powinien mieć unikatową
nazwę, opisującą przypadek użycia z punktu
widzenia jego zasadniczych celów. Czy lepiej jest
stosować nazwę opisującą czynność (“wypłata
pieniędzy”/„wypłacanie pieniędzy”) czy polecenie
(“wypłać pieniądze”) − zdania są podzielone.

Aktor: Powinien mieć unikatową nazwę.

Interakcja:

Pokazuje

interakcję

pomiędzy

przypadkiem użycia (systemem) a aktorem.

Blok ponownego użycia: Pokazuje fragment
systemu,

który

jest

używany

przez

kilka

przypadków użycia; może być oznaczony jako
samodzielny przypadek użycia.

Relacja typu

«

include

»

lub

«

extend

»

: Pokazuje

związek zachodzący między dwoma przypadkami
użycia lub przypadkiem użycia a blokiem
ponownego użycia.

Nazwa systemu wraz z otoczeniem systemu:
Ilustrują granicę pomiędzy systemem a jego
otoczeniem.

weryfika

cja

klienta

wypłata

pieniędzy

System obsługi
klienta

«include»

wnętrze systemu

klient

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 18

Aktor kto (co) może wystąpić w roli

aktora?

Metoda przypadków użycia wymaga od analityka określenia
wszystkich

aktorów

związanych

z

planowanym

wykorzystywaniem projektowanego systemu, innymi słowy
wymaga ustalenia zbioru “przyszłych użytkowników systemu”
.

Zazwyczaj aktorem jest osoba, ale może nim być także pewna
organizacja (np. biuro prawne) lub inny system komputerowy. Aktor
modeluje grupę osób pełniących pewną rolę, a nie konkretną osobę.
Jedna osoba może wchodzić w interakcję z systemem z pozycji wielu
aktorów; np. być zarówno sprzedawcą, jak i klientem. I odwrotnie, jeden
aktor może odpowiadać wielu konkretnym osobom, np. aktor “strażnik
budynku”.

(2) Aktor jest pierwotną przyczyną napędzającą przypadki użycia.
Jest sprawcą zdarzeń powodujących uruchomienie przypadku
użycia, jest też odbiorcą danych wyprodukowanych przez
przypadek użycia. Sprawca zdarzeń? Czy np. klient, nie
posiadający bezpośredniego dostępu do funkcji systemu jest
aktorem?

(1) Czy system może być aktorem sam dla siebie? Aktor to
przecież, zgodnie z definicją, byt z otoczenia systemu.

(3) Aktor pasywny a interakcja z systemem ?

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 19

Analiza aktorów

Wyjaśnienie

różnicy

pomiędzy

pojęciem

„konkretny użytkownik” a pojęciem „aktor”:

Konkretny
użytkownik

Aktor

Przypadek użycia

Może grać rolę

zleca

Jan Kowalski

Adam Malina

Konkretny

gość

Konkretny klient

Administrator systemu

Pracownik

Osoba

informowana

Klient

przeładowanie systemu

wejście z kartą i kodem

uzyskanie

informacji ogólnych

wypłata z konta

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 20

Przykład diagramu przypadków użycia

(1)

wpłata pieniędzy

wypłata pieniędzy

Czy klient jest aktorem dla przypadku użycia: wpłata pieniędzy – to zależy
od konkretnego systemu.
W operacjach wpłaty i wypłaty pieniędzy mogą uczestniczyć także inni
aktorzy, np. kasjer. Możemy go dołączyć jako kolejny element
rozbudowujący nasz model.

wpłata pieniędzy

wypłata pieniędzy

klient

klient

kasjer

?

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 21

Przykład diagramu przypadków użycia

(2)

Automat

do sprzedaży

papierosów

zakup paczki

papierosów

uzupełnienie

towaru

wykonanie operacji

pieniężnej

sporządzenie

raportu

klient

operator

kontroler

otoczenie systemu

wnętrze systemu

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 22

Relacje między przypadkami użycia (1)

Przypadki użycia mogą być konstruowane w dowolnej
kolejności, chyba że występują między nimi relacje typu

«

include

»

czy

«

extend

»

.

P1

P2

«

include

»

P1

P2

«

extend

»

Przebieg podstawowy (sekwencyjny): P1 zawsze włącza (używa)
P2
, zwane tu przypadkiem włączanym.

Przebieg opcjonalny (alternatywny): P1 jest czasami rozszerzane o
P2
, zwane tu przypadkiem rozszerzającym (inaczej: P2 czasami
rozszerza P1). Sformułowanie “czasami” oznacza, że warunek na
wywołanie P2 musi być spełniony, aby P2 zostało wywołane z P1. O ile
warunek nie został wyspecyfikowany − co jest dopuszczalne − P2
będzie wywołane zawsze.

W obu poniższych diagramach P1, nazywane tu przypadkiem
bazowym
, zawsze występuje jako pierwsze w kolejności działania.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 23

Relacje między przypadkami użycia (2)

«include» wskazuje na
wspólny fragment wielu
przypadków użycia
(wyłączony “przed nawias”);
jest wykorzystywane w
przebiegach
podstawowych
(przypadek
włączany jest zawsze
wykonywany) − strzałka jest
skierowana w stronę
przypadku włączanego

«extend» jest
wykorzystywane w
przebiegach opcjonalnych
(przypadek rozszerzający nie
zawsze będzie wykonywany)
− strzałka jest skierowana w
stronę przypadku bazowego

naprawa

samochodu

przegląd

samochodu

sprzedaż

samochodu

rejestracja

klienta

«

include

»

«

include

»

«

include

»

umycie

samochodu

«

extend

»

przyholowanie

samochodu

«

extend

»

«

extend

»

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 24

Relacje między przypadkami użycia (3)

Uwaga: Zabronione jest łączenie relacją «include» (czy «extend»)
przypadków użycia występujących w różnych przebiegach
systemu
, jak np. na poniższym diagramie.

klient

dostawca

złożenie zamówienia

realizacja zamówienia

«

extend

»

Między złożeniem zamówienia a jego realizacją z reguły upływa trochę czasu.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 25

Relacje między aktorami (1)

Np. Pracownik administracji dziedziczy dostęp do przypadków użycia
wyspecyfikowanych dla każdego pracownika, oraz ma dostęp do
przypadków związanych z jego własnym, specyficznym sposobem
wykorzystywania systemu.

osoba

gość

pracownik

księgowa

pracownik

administracji

symbol oznaczający
dziedziczenie
dostępu do funkcji
systemu

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 26

Relacje między aktorami (2)

podsystem

zarządzania bazą

danych banku

klient

administrator

systemu

obsługa

konta klienta

informowanie o

stanie konta klienta

inicjalizacja
karty klienta

weryfikacja karty

i kodu klienta

Automat do operacji bankowych

«

include

»

«

include

»

«

include

»

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 27

Relacje między aktorami (3)

obsługa

konta klienta

informowanie o

stanie konta klienta

inicjalizacja
karty klienta

weryfikacja karty

i kodu klienta

Automat do operacji bankowych

«

include

»

«

include

»

«

include

»

podsystem

zarządzania bazą

danych banku

klient

administrator

systemu

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 28

Rozbudowa modelu przypadków użycia

Model

przypadków

użycia

można

rozbudowywać

poprzez

dodawanie nowych aktorów, nowych przypadków użycia czy też
nowych relacji pomiędzy przypadkami.

klient
banku

wpłać

pieniędze

wypłać

pieniędze

kasjer

sprawdź

stan konta

weź

pożyczkę

zarząd

banku

klient
banku

wpłać

pieniędze

wypłać

pieniędze

kasjer

sprawdź

stan konta

weź

pożyczkę

zarząd

banku

«

include

»

uaktualnianie

stanu konta

«

include

»

«

extend

»

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 29

Stopień szczegółowości diagramów

Model przypadków użycia dostarcza bardzo abstrakcyjnego spojrzenia na
system − spojrzenia z pozycji aktorów, którzy go używają. Z założenia nie
włącza zbyt wielu szczegółów, co pozwala wnioskować o funkcjonalności
systemu na odpowiednio wysokim poziomie abstrakcji. Podstawowym
(choć nie jedynym) zastosowaniem jest tu dialog z przyszłymi
użytkownikami zmierzający do sformułowania poprawnych wymagań na
system.

edycja

programu

kompilacja

programu

wykonanie

programu

drukowanie

pliku

programista

użytkownik

«

include

»

«

include

»

Tworzenie przypadków
użycia

jest

niezdeterminowane

i

subiektywne. Na ogół,
różni analitycy tworzą
różne modele.

Model zbyt szczegółowy − utrudnia analizę, zbyt ogólny − nie
pozwala na wykrycie bloków ponownego użycia.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 30

Kolejne kroki w konstrukcji modelu

Konstrukcja modelu przypadków użycia opiera się na kilku krokach i
wymaga ścisłej współpracy z przyszłym użytkownikiem, co implikuje
zasadę: “nie opisuj przypadków użycia w sposób, który nie jest łatwo
zrozumiały dla użytkownika”.

Jednocześnie powinien być budowany obiektowy model analityczny (schemat pojęciowy).

Krok:

Udokumentowany w:

Sporządzenie słownika

pojęć

Słownik pojęć

Określenie aktorów

Określenie przypadków

użycia

Tworzenie opisu każdego
przypadku
użycia plus:

 podział na nazwane części

 znalezienie wspólnych części
w różnych przypadkach użycia

Dokument opisu

aktorów

Diagram przypadków użycia +
dokument z opisem przypadków
użycia

1

2

3

4

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 31

Krok 1: sporządzenie słownika pojęć

 Słownik dotyczy dziedziny problemowej.
 Tworzenie go polega na wyłowieniu wszystkich pojęć z wymagań
użytkownika.
 Pojęcia mogą odnosić się do aktorów, przypadków użycia, obiektów,
operacji, zdarzeń, itp.
 Pojęcia w słowniku powinny być zdefiniowane w sposób precyzyjny
i jednoznaczny.
 Posługiwanie się pojęciami ze słownika powinno być regułą przy
opisie każdego kolejnego problemu, sytuacji czy modelu.

Na co należy zwracać uwagę przy kwalifikowaniu pojęć do
słownika:

na rzeczowniki

mogą oznaczać aktorów lub byty z dziedziny

problemowej,
na frazy opisujące funkcje, akcje, zachowanie się

mogą stanowić

podstawę do wyróżniania przypadków użycia.

 Ważnym jest, by już na tym etapie rozpocząć organizowanie słownika pojęć.

Konto służy do rejestrowania zasobów i wyników transakcji
przeprowadzanych przez klienta, będącego właścicielem
konta. Konta mogą być różnych typów, a w szczególności:
konta indywidualne, małżeńskie, firmowe i inne. Każdy klient
może posiadać więcej niż jedno konto.

Przykład:

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 32

Krok 2: określanie aktorów

Przy określaniu aktorów istotne są odpowiedzi na
następujące pytania:

 Jaka grupa użytkowników potrzebuje wspomagania ze strony
systemu (np. osoba
wysyłająca korespondencję)?

 Jacy użytkownicy są konieczni do tego, aby system działał i
wykonywał swoje funkcje (np. administrator systemu)?

 Z jakich elementów zewnętrznych (innych systemów, czujników,
sieci, itp.) musi korzystać system, aby realizować swoje funkcje.

Ustalanie potencjalnych aktorów musi być powiązane z ustalaniem
granic systemu, tj. odrzucaniem tych obszarów dziedziny
problemowej, którymi system nie będzie się zajmował (ustalenie
zakresu odpowiedzialności systemu).

 nazwę dla każdego aktora/roli,

 zakresy znaczeniowe dla poszczególnych nazw aktorów oraz relacje pomiędzy zakresami
(np. sekretarka  pracownik administracji  pracownik  dowolna osoba). Niekiedy

warto ustalić hierarchię dziedziczenia dostępu do funkcji systemu dla aktorów.

Po wyszukaniu aktorów, należy ustalić:

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 33

Krok 3: określanie przypadków użycia

(1)

 Dla każdego aktora, znajdź zadania: (1) w których system może go
wesprzeć w działalności związanej z dziedziną przedmiotową, (2)
niezbędne dla wspomagania działania systemu jako takiego (np.
zakładanie kont użytkowników).

 Staraj się powiązać w jeden przypadek użycia zespół zadań
realizujących podobne cele. Unikaj rozbicia jednego przypadku na zbyt
wiele pod-przypadków.

 Opisz przypadki użycia przy pomocy zdań w języku naturalnym,
używając terminów ze słownika.

 Uporządkuj aktorów i przypadki użycia w postaci diagramu.
 Przeanalizuj zarówno wyspecyfikowane przypadki użycia (niektóre z
nich mogą być „mutacjami” innych przypadków użycia), jak i powiązania
aktorów z przypadkami użycia. Ustal, co jest zbędne, a co może być
uogólnione.

Nazwy dla przypadków użycia powinny być krótkie, ale
jednoznacznie określające charakter zadania zlecanego systemowi
przez aktora. Ponadto, nazwy powinny odzwierciedlać czynności z
punktu widzenia aktorów, a nie systemu, czyli np. “wpłacanie
pieniędzy”, a nie “przyjęcie pieniędzy od klienta”.

funkcja systemu ≡ zachowanie systemu ≡ zadanie zlecane systemowi ≡ przypadek użycia

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 34

Określanie przypadków użycia (2)

 W pierwszym podejściu skup się na tzw. „przypadkach krytycznych”,
czyli takich, które stanowią istotę systemu (są normalnym,
standardowym użyciem) lub są ważne z powodu istniejących w projekcie
ryzyk (np. ryzyk technologicznych). Pomiń czynności wyjątkowe,
uzupełniające lub opcjonalne.

 Określ wzajemne powiązania przypadków, wyspecyfikuj rodzaj
zależności: sekwencja («include») czy alternatywa («extend»).

 Dodaj zachowania wyjątkowe, uzupełniające i opcjonalne. Ustal związki
“przypadków krytycznych” z tego rodzaju zachowaniami.

 Tworząc podział każdego przypadku użycia na nazwane części (bloki),
staraj się, aby nie były one ani zbyt ogólne ani zbyt szczegółowe. Zbyt
szczegółowe bloki utrudniają analizę, a zbyt ogólne zmniejszają
możliwość wykrycia fragmentów oprogramowania posiadających
potencjał ponownego użycia. Całość diagramu nie może być ani zbyt
duża ani zbyt złożona.

 Przeanalizuj przypadki użycia pod kątem wyizolowania bloków
ponownego użycia. Przeanalizuj podobieństwo nazw przypadków użycia,
podobieństwo nazw i zachowania bloków występujących w ich
specyfikacji. Wydzielenie bloku ponownego użycia może być powiązane z
określeniem bardziej ogólnych zadań lub dodaniu nowych elementów do
już istniejącego zadania.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 35

Krok 4: dokumentowanie przypadków

użycia

1. Diagramy przypadków użycia: aktorzy, przypadki użycia i relacje
zachodzące między
przypadkami.
2. Krótki, ogólny opis każdego przypadku użycia:

Dokumentacja przypadków użycia powinna zawierać:

3. Opis szczegółowy każdego przypadku użycia:

 scenariusz(e)

 specyfikację uczestniczących obiektów,

 diagram(y) interakcji.

 jak i kiedy przypadek użycia zaczyna się i kończy,

 opis interakcji przypadku użycia z aktorami, włączając w to
kiedy interakcja ma
miejsce i co jest przesyłane,

 kiedy i do czego przypadek użycia potrzebuje danych
zapamiętanych w systemie
oraz jak i kiedy zapamiętuje dane w systemie,

 wyjątki występujące przy obsłudze przypadku,

 specjalne wymagania, np. czas odpowiedzi, wydajność,

 jak i kiedy używane są pojęcia dziedziny problemowej.

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 36

Diagram interakcji dla przypadku

użycia (1)

Przesyłanie komunikatów pomiędzy obiektami:

k1

k2

k3

k4

k5

Obiekt 1

Obiekt 2

Obiekt 3

Obiekt 4

ki

− komunikat, czyli polecenie wykonania operacji na obiekcie, do

którego komunikat jest wysyłany; komunikat nosi nazwę tej operacji

czas

Aktor

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 37

Diagram interakcji dla przypadku

użycia (2)

wpłata

pieniędzy

:Formularz

:Kasa

:Konto

:Bank

wypełnij

podaj formularzaktualizuj stan

zwiększ
bilans

zwiększ
bilans

wydaj
pokwitowanie

:Klient

scenariusz

Wypełnij formularz wpłaty
Podaj formularz i gotówkę do
kasy
Aktualizuj stan konta klienta
Zwiększ bilans kasy
Zwiększ bilans banku
Wydaj pokwitowanie dla
klienta

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 38

Podsumowanie

Główne zadanie modelu przypadków użycia to określenie
poprawnych wymagań

funkcjonalnych

na projektowany system,

co jest uznawane za jeden z podstawowych problemów w procesie
budowy systemu.

Przypadki użycia powinny odwzorowywać strukturę
systemu tak, jak tę strukturę widzą przyszli użytkownicy
systemu.

lepsze

zrozumienie

możliwych

sposobów

wykorzystania

projektowanego systemu (przypadków użycia), lepsze zrozumienie
jego funkcjonalności − co w efekcie oznacza zwiększenie stopnia
świadomości uczestników projektu co do celów systemu,

 umożliwienie interakcji zespołu projektowego z przyszłymi

użytkownikami systemu,

 ustalenie praw dostępu do zasobów,

 zrozumienie strukturalnych własności systemu, a przez to ustalenie

składowych systemu i związanego z nimi planu budowy systemu,

 dostarczenie podstawy do sporządzenia harmonogramu prac,

 dostarczenie bazy do budowy planu testów systemu,

 dostarczenie środków umożliwiających weryfikację poprawności i

kompletności projektu.

Ponadto, model przypadków użycia pozwala na:

background image

Analiza i Projektowanie Systemów Informatycznych, Wykład 1,
Slajd 39

Przypadki użycia w analizie

Eksperci

Użytkownicy

Doświadczenie

w dziedzinie

przedmiotowej

Przypadki

użycia

Model

dziedziny

Model

zastosowania

Model

analityczny

mocny wpływ
słaby wpływ


Document Outline


Wyszukiwarka

Podobne podstrony:
PRI W1 UML 2 0
PRI W1 UML
PRI W11b UML 2 0
PRI W7 UML
PRI W10 UML
PRI W11b UML 2 0
PRI W3 UML

więcej podobnych podstron