Metody modelowania procesow 2012 cz II

background image

METODY MODELOWANIA

PROCESÓW

cz. II

Elementy analizy

systemowej

Analiza systemowa



Analiza systemowa to sztuka dochodzenia do
zrozumienia systemu za pomocą tworzenia modeli



Dzisiejsze systemy są duże i złożone



Chociaż jest wymagana dokładność
w modelowaniu, trzeba unikać olbrzymich
i skomplikowanych modeli, nawet jeżeli
reprezentują duże systemy



Sposobem na uporanie się z problemem wielkości i
złożoności systemów jest stosowanie aspektów

Analiza systemowa



Aspekty to umowne uproszczenia otaczającej
nas rzeczywistości



Stosując aspekty analitycy mogą budować
modele zawierające tylko tyle informacji, ile ich
w danej chwili potrzebują



Nie oznacza to, że modele są fałszywym
odzwierciedleniem systemu



To oznacza większą przydatność modeli,
ponieważ jest na nich pokazane tylko to, czego
w danej chwili potrzebuje analityk

background image

Analiza systemowa

filtrowanie informacji



Wyzwaniem dla dzisiejszej analizy
systemowej jest tworzenie złożonych
systemów spełniających oczekiwania
użytkowników



Pomocą może okazać się mechanizm
filtrowania, jako obrona przed zalewem
informacji

Analiza systemowa



W miarę rozrastania się systemów
i rozszerzania na większe obszary biznesu
wzrasta liczba użytkowników znających
jedynie część systemu



Zwiększenie liczby użytkowników oznacza,
że analitycy stają naprzeciw:



większego zróżnicowania podejść



większego zróżnicowania umiejętności



szerszych zainteresowań

Analiza systemowa



Aby sprostać kontaktom ze wzrastającą liczbą
użytkowników, analitycy tworzą modele systemu,
ukazujące aspekty cieszące się największym
zainteresowaniem lub najbardziej istotne dla
każdej grupy użytkowników



Analitycy muszą także eliminować to, co
w danym momencie nie jest potrzebne



Analizując duży system muszą upraszczać
rzeczywistość modelując te aspekty, które najlepiej
przyczynią się do zrozumienia systemu

Analiza systemowa



Aspekty, które są najistotniejsze, to:



aspekt fizyczny istniejącego systemu



aspekt istotny



aspekt danych



aspekt fizyczny nowego systemu

background image

Aspekt fizyczny istniejącego

systemu



Aspekt fizyczny istniejącego systemu stosujemy
na początku projektu, by określić kontekst
badanego systemu i dać użytkownikom czytelny
model



Początkowo użytkownicy wolą zobaczyć modele
przedstawiające ludzi i maszyny aktualnie
działające



Model fizyczny pomaga analitykom
w zidentyfikowaniu:



obszarów problemowych



źródeł informacji o systemie



oraz w szacowaniu działania przyszłego systemu

Aspekt istotny



Jest uważany za „idealny” obraz systemu;

pokazuje jedynie wymagania i celowo pomija

wszystko, co wynika ze sposobu

zaprojektowania i zaimplementowania systemu



Odfiltrowanie aktualnej technologii systemu jest

celowe wówczas, gdy wybiera się rozwiązanie

najlepsze z możliwych



Aspekt istotny jest potrzebny w każdym

projekcie, jako najbardziej użyteczny, a zarazem

najczęściej używany aspekt modelowania

Aspekt danych



Koncentruje się na informacjach
występujących w systemie



Aspekt ten, reprezentowany przez model
danych, ignoruje sposób przetwarzania w
systemie

Aspekt fizyczny nowego systemu



Aspektu fizycznego nowego systemu
używamy do ilustrowania, negocjowania i
definiowania implementacji nowego
systemu z wykorzystaniem komputerów,
ludzi i maszyn



Aspekt ten jest również znany jako model
implementacyjny lub wstępny model
projektu

background image

Stosowanie aspektów



Użyteczność każdego z tych czterech aspektów
zależy od odbiorców oraz od sytuacji



Niestety rzeczywistość nie jest na tyle prosta,
aby analitykom mogło udać się:



zbudowanie pełnego modelu danego aspektu



sprawdzenie poprawności modelu



a następnie przejście do następnego aspektu

Stosowanie aspektów



Informacje niezbędne dla każdego aspektu
oraz użytkownicy, od których pochodzą
informacje, pojawiają się w
przypadkowych chwilach



Analityk w projekcie nie może spodziewać
się, że uzyska wszystkie informacje
wówczas, gdy ich potrzebuje

Stosowanie aspektów



Analityk musi być przygotowany na
zdobywanie informacji różnymi sposobami



Najczęściej jest kilka modeli wykonywanych
dla różnych aspektów, w różnym stopniu
zaawansowania



Nie można jednak porzucić pracy
analitycznej; modele, chociaż niekompletne,
pomagają określać wymagania systemu

Ogólne metody analizy

systemowej

background image

Analiza systemowa



Analiza systemowa jest formalnym
i jawnym badaniem wspomagającym działanie
osób odpowiedzialnych za decyzje lub linię
postępowania w określonej sytuacji
charakteryzującej się niepewnością



Ma ona na celu określenie pożądanego działania
lub linii postępowania przez rozpoznanie i
rozważenie dostępnych wariantów oraz
porównanie ich przewidywanych następstw

Analiza systemowa



Pełna analiza systemowa problemu obejmuje
następujące cztery czynności:



Zbadanie celów rozważanej akcji czy linii
postępowania



Zbadanie możliwych sposobów osiągnięcia tych
celów, z uwzględnieniem propozycji i projektów
nowych rozwiązań



Ocenę pozytywnych i negatywnych skutków każdego
z możliwych wariantów postępowania, uwzględniającą
niepewność przyszłości



Porównanie wariantów według różnych kryteriów i
przedstawienie wyników w sposób umożliwiający
wybór

Ogólne metody analizy

systemowej



Analiza jest studium dziedziny problemu
prowadzącym do specyfikacji obserwowalnego
zachowania systemu



W wyniku analizy otrzymujemy kompletne, spójne
i prawdopodobne wyspecyfikowanie potrzeb,
z podaniem zarówno ilościowych, jak
i funkcjonalnych charakterystyk operacyjnych
(niezawodności, dostępności, wydajności)

Ogólne metody analizy

systemowej



Podczas analizy ustala się potrzeby
systemu - tzn. co system ma robić, aby
zaspokoić wymagania użytkownika



Nie powinna ona natomiast zawierać
szczegółów implementacyjnych tzn. jak
system ma realizować te zadania



Dokumentem, który jest wynikiem analizy,
jest dokument zawierający wymagania
systemu

background image

Ogólne metody analizy

systemowej



Na wymagania systemu składają się:



funkcje - charakterystyki operacyjne,



interfejsy (z którymi ma współpracować
oprogramowanie)



ograniczenia projektowe



Dokument formułujący wymagania ma
następujące cele:



formalizuje potrzeby użytkownika



ustala listę zadań

Ogólne metody analizy

systemowej



W praktyce analizy systemowej
wykształciły się następujące metody
analizy i projektowania:



rozkład funkcjonalny



metoda przepływu danych



modelowanie informacji (danych)



podejście obiektowe

Rozkład funkcjonalny



Rozkład funkcjonalny wymaga
odwzorowania dziedziny problemu na
funkcje i podfunkcje, które ma zapewniać
system



W tym sensie, wymagania systemu muszą
być odwzorowane na funkcje, które
wykonują to co powinien system robić

Rozkład funkcjonalny



Rozkłady na funkcje i podfunkcje są trudne
w konstrukcji i bardzo nietrwałe



Jako wynik otrzymuje się następujące
poziomy:



systemu



podsystemu



funkcji



podfunkcji

background image

Model funkcjonalny - metoda

przepływu danych



Metodą odwzorowania dziedziny problemu
na opis systemu jest przepływ danych
(Data Flow Diagram), często nazywany
analizą strukturalną



W analizie strukturalnej wykorzystuje się
metodykę opracowaną przez Yourdona

Model funkcjonalny - metoda

przepływu danych



Przepływ danych można przedstawić jako zestaw
elementów:



przepływ danych i przepływy sterujące



przekształcenia danych (inaczej zwane
procesami)



magazyny danych



obiekty zewnętrzne (inaczej - terminatory)



opisy procesu



słownik danych

Modelowanie informacji (danych)



Podstawowym narzędziem modelowania
danych jest diagram powiązań danych
(Entity Relationship Diagram)

Modelowanie informacji (danych)



Kolejność postępowania w modelowaniu danych
jest następująca:



znalezienie obiektów w rzeczywistym świecie (lista
obiektów)



opisanie obiektów za pomocą atrybutów (lista atrybutów
dla każdego obiektu)



znalezienie powiązań między obiektami (relacje)



etapy normalizacji (wg. reguł normalizacji Codd'a)
redukującej, nadmiarowość danych i stanowiącej
typowe przygotowanie dla implementacji relacyjnej bazy
danych

background image

Analiza

i projektowanie

strukturalne

Droga do analizy strukturalnej



Aż do końca lat siedemdziesiątych
olbrzymia większość projektów budowy
systemu rozpoczynała się od stworzenia
„powieściowego” określenia wymagań
użytkownika



Analityk dokumentował swoje zrozumienie
potrzeb w masywnym dokumencie,
głównie w postaci narracyjnej, często
nazywanym specyfikacją funkcjonalną

Droga do analizy strukturalnej



Takie dokumenty miały szereg wad:



Były monolityczne. Aby je zrozumieć
należało przeczytać je od początku do końca



Były nadmiarowe. Ta sama informacja była
często powtarzana w dokumencie w kilku
miejscach. Problemy polegały na tym, że gdy
jakiś aspekt wymagań użytkownika uległ
zmianie podczas fazy analizy, to zmiana
musiała być uwzględniona w kilku różnych
częściach dokumentu

Droga do analizy strukturalnej



Takie dokumenty miały szereg wad (cd.):



Były wieloznaczne. Szczegółowe określenie
wymagań użytkownika mogło i często było,
inaczej interpretowane przez użytkownika,
analityka, projektanta i programistę



Ich konserwacja była niemożliwa.
Z opisanych powodów, specyfikacja funkcjonalna
była niemal zawsze przestarzała w chwili
zakończenia budowy systemu, tzn. w momencie
jego wdrożenia

background image

Wprowadzenie



Model buduje się z trzech powodów:



aby skoncentrować się na ważnych cechach

systemu, pomijając mniej istotne



aby móc niewielkim kosztem i minimalnym

ryzykiem wprowadzać zmiany i poprawki do

wymagań użytkownika



aby sprawdzić, czy rozumiemy środowisko

użytkownika i udokumentować to w taki

sposób, aby projektanci i programiści mogli

zbudować system

Wprowadzenie



Większość systemów wymaga wielu modeli



Każdy model koncentruje się na ograniczonej
liczbie aspektów systemu, ograniczając (lub wręcz
pomijając) pozostałe



Jest to prawda zwłaszcza dla wielu systemów
budowanych obecnie, ponieważ mają złożoną
charakterystykę funkcjonalną, złożone struktury
danych oraz złożone zależności czasowe

Wymagania dla narzędzi

modelowania



Narzędzia modelowania powinny być
graficzne, z tekstowym wspomaganiem
odpowiednich szczegółów



W zasadzie grafiki używa się do określenia
składników systemu i interfejsów między nimi;
wszystkie szczegóły umieszcza się
w pomocniczych dokumentach tekstowych
(np. specyfikacja procesu i słownik danych)

Wymagania dla narzędzi

modelowania



Narzędzia modelowania powinny umożliwiać
oglądanie systemu od góry, ze schodzeniem
według określonych podziałów



Narzędzia modelowania muszą umożliwiać
osobne odwzorowanie poszczególnych części
systemu, wraz z prostym sposobem
przechodzenia od jednej części modelu do
innej



Przykładem mogą być mapy, pokazujące kraj
na różnych poziomach szczegółowości

background image

Wymagania dla narzędzi

modelowania



Narzędzia modelowania powinny mieć minimalną
nadmiarowość



Modele stanowią reprezentację pewnego systemu z
rzeczywistego świata, przy czym sam system może
być statyczny lub dynamiczny



Jeśli system zmienia się, zmianie musi także ulec
model, aby pozostać aktualnym



Oczywiście jeżeli zmienia się tylko jeden lokalny
aspekt systemu, wolelibyśmy dokonać tylko jednej
lokalnej zmiany w odpowiadającym aspekcie modelu,
niż być zmuszonym do zmiany wielu innych aspektów

Wymagania dla narzędzi

modelowania



Narzędzia modelowania powinny:



Pomagać przewidzieć zachowanie się
systemu



Być przejrzyste



Dobry model powinien być przejrzysty,
aby czytelnik uświadamiał sobie, że
ogląda reprezentację systemu, a nie zaś
sam system

Diagramy przepływu

danych

Diagramy przepływu danych (DFD)



DFD to tylko jedno z narzędzi modelowania
używanych przez analityka i dostarcza ono tylko
jednego spojrzenia na system – spojrzenia
funkcyjnego



Jeśli będziemy budowali system, w którym
związki między danymi są znacznie ważniejsze
niż funkcje, możemy położyć mniejszy nacisk na
DFD, a zamiast tego skoncentrować się na
zbudowaniu zbioru diagramów związków encji

background image

Diagramy przepływu danych



Jeżeli natomiast charakterystyka czasowa
zachowania systemu dominuje nad
wszystkimi innymi zagadnieniami, możemy
skupić się na diagramie sieci przejść

Składniki DFD



Diagramy przepływu danych buduje się z
czterech podstawowych elementów:



Proces



Przepływ



Magazyn



Terminator

Składniki DFD – proces



Pierwszy składnik DFD nazywa się
procesem



Popularne synonimy to: bąbel, funkcja lub
transformacja



Proces pokazuje pewien fragment systemu
przekształcający dane na wyniki, tzn.
sposób w jaki dane zmieniają się w pewne
wyniki

Składniki DFD – proces



Graficznie proces reprezentuje się
okręgiem



Niektórzy analitycy wolą elipsę lub
prostokąt z zaokrąglonymi rogami, jeszcze
inni prostokąt



Różnice są czysto kosmetyczne, choć
oczywiście należy używać takiego samego
kształtu do reprezentowania wszystkich
funkcji systemu

background image

Składniki DFD – proces



Proces jest nazywany pojedynczym
słowem, frazą lub prostym zdaniem



Nazwa procesu powinna opisywać co robi
proces

Składniki DFD – przepływ



Przepływ reprezentuje się graficznie strzałką do
lub z procesu



Służy on do opisania przenoszenia jednostek lub
pakietów informacji z jednego fragmentu
systemu do innego



Przedstawia więc dane w ruchu, podczas gdy
magazyny reprezentują dane w spoczynku

Składniki DFD – przepływ



Dla większości systemów przepływy będą
reprezentować dane, tzn. bity, znaki,
komunikaty itp.



DFD mogą jednak również służyć do
modelowania innych systemów, np. taśmy
montażowe



Wtedy pakiety lub jednostki przenoszone
przepływami będą materiałem fizycznym

Składniki DFD – przepływ



Przepływy również są nazywane



Nazwa reprezentuje znaczenie pakietu
poruszającego się wzdłuż przepływu



Przepływ przenosi tylko jeden rodzaj
pakietów, wskazywany jego nazwą



Czasami dopuszczalne jest połączenie
kilku elementarnych przepływów danych w
jeden skonsolidowany

background image

Składniki DFD – przepływ



Należy pamiętać, że ta sama zawartość
może mieć różne znaczenie dla różnych
części systemu



Przepływy określają kierunek: grot strzałki
na końcu (lub być może na obu końcach)
wskazuje, czy dane (lub materiał)
poruszają się do czy z procesu (lub w obu
kierunkach)

Składniki DFD – przepływ



Dane poruszające się wzdłuż przepływu
wędrują albo do innego procesu (jako
wejściowe) albo do magazynu, albo do
terminatora



Przepływ z dwoma grotami to dialog,
umieszczenie dwóch pakietów danych
(zapytania i odpowiedzi) na tym samym
przepływie



W przypadku dialogu pakiety na obu
końcach strzałki muszą być nazwane

Składniki DFD – przepływ



Przepływy danych na DFD mogą schodzić się i
rozchodzić



Jeżeli przepływ jest rozbieżny, oznacza to
przesyłanie kopii pakietu danych do różnych
części systemu lub rozdzielenie złożonego
pakietu danych na kilka elementarnych, z
których każdy jest przesyłany do innej części
systemu



W przepływie zbieżnym kilka elementarnych
pakietów danych łączy się w bardziej złożone
pakiety danych

Składniki DFD – przepływ

background image

Składniki DFD – przepływ



Przepływ nie odpowiada na wiele pytań
proceduralnych, które nasuwają się
podczas oglądania DFD, np. nie udzielają
odpowiedzi na pytania o sposób
pobierania informacji

Składniki DFD – przepływ



W przypadku, gdy jest kilka przepływów
wejściowych i wyjściowych, nie jest określone



w jakiej kolejności przychodzą pakiety danych i w
jakiej kolejności są generowane pakiety wynikowe



czy jednemu zestawowi pakietów wejściowych
odpowiada dokładnie jeden zestaw pakietów
wyjściowych



Zwykle jest to modelowane diagramem
przepływu sterowania lub innym proceduralnym
narzędziem modelowania



DFD nie odnosi się do takich zagadnień

Składniki DFD – magazyn



Magazyn służy do modelowania zbioru danych
w bezruchu



Oznacza się go dwoma równoległymi liniami, są też inne
alternatywne symbole graficzne



Zwykle nazwa wybrana dla magazynu to liczba mnoga od
nazwy pakietów przenoszonych przepływami do i z
magazynu

Składniki DFD – magazyn



Dla projektów informatycznych obserwuje
się tendencję nazywania magazynów
plikami lub bazami danych



Magazyny rzeczywiście implementuje się
w ten sposób w systemach
skomputeryzowanych



Ale mogą być też inne formy, np.
w przypadku modelowania przepływów
produkcji

background image

Składniki DFD – magazyn



Pomijając fizyczną postać magazynu, można
zapytać o jego przeznaczenie



Czy jego istnienie wynika z podstawowych
wymagań użytkownika, czy też jest to wygodny
aspekt implementacji sytemu



W pierwszym przypadku magazyn służy do
czasowego buforowania informacji między
dwoma procesami, działającymi w różnym czasie



Magazyny tworzy się też w przewidywaniu
przyszłych potrzeb użytkownika

Składniki DFD – magazyn



Magazyny są połączone przepływami
z procesami



Przepływ z magazynu interpretuje się zwykle jako
odczyt lub dostęp do informacji w magazynie



Przepływ do magazynu opisuje się często jako
zapis, aktualizację lub być może usuwanie



We wszystkich przypadkach jest oczywiste, że
stan magazynu ulega zmianie w wyniku
wchodzącego przepływu

Składniki DFD – magazyn



Badając przepływy wchodzące i wychodzące dla

magazynu, pojawia się wiele pytań

proceduralnych, np. czy przepływ reprezentuje

pojedynczy pakiet, wiele pakietów, fragment

pakietu itp.



Czasem można udzielić odpowiedzi na podstawie

etykiety przepływu



Aby dowiedzieć się wszystkiego, co może być

potrzebne na temat przepływu wychodzącego z

magazynu, będziemy musieli poznać szczegóły

procesu (jego specyfikację), do którego jest

przyłączony przepływ

Składniki DFD



Diagramy przepływu danych buduje się z
czterech podstawowych elementów:



Proces



Przepływ



Magazyn



Terminator

background image

Składniki DFD – magazyn



Jednego szczegółu proceduralnego możemy być pewni:
magazyn jest bierny, dane nie wychodzą z magazynu
wzdłuż przepływu, dopóki jakiś proces jawnie tego nie
zażąda



Czyni się jeszcze jedno szczegółowe założenie
proceduralne



Magazyn nie ulega zmianie, gdy pakiet informacji
wychodzi z magazynu przez przepływ



Programista nazywa to odczytem nie niszczącym



Innymi słowy z magazynu jest pobierana kopia pakietu,
a stan magazynu pozostaje bez zmiany



Założenie to nie dotyczy modelowania przepływów
obiektów fizycznych

Składniki DFD – terminator



Graficznie przedstawia się go za pomocą prostokąta



Terminatory reprezentują zewnętrzne obiekty,
z którymi komunikuje się system



Może to być grupa osób, firma zewnętrzna, inny dział w
tej samej firmie czy inny system

Składniki DFD – terminator



Należy pamiętać:



Terminatory znajdują się na zewnątrz
modelowanego systemu; przepływy łączące je
z różnymi procesami (lub magazynami)
systemu stanowią interfejs między systemem
a otaczającym światem



W konsekwencji jest oczywiste, że ani
analityk, ani projektant nie mogą zmienić
terminatora ani wpłynąć na sposób jego
działania

Składniki DFD – terminator



Żaden istniejący związek między terminatorami
nie będzie pokazany w modelu DFD



Może być nawet kilka takich związków, lecz
z definicji nie wchodzą one w skład
modelowanego systemu



Odwrotnie, jeśli związki występujące między
terminatorami są istotne dla analityka
i powinny być modelowane, aby poprawnie
udokumentować wpływ na system, to
z definicji terminatory wchodzą w skład systemu
i należy je modelować jako procesy

background image

Wskazówki dotyczące

konstruowania DFD



Wybieraj znaczące nazwy dla procesów,
przepływów, magazynów i terminatorów



Numeruj procesy



Przerysuj DFD, ilekroć jest to niezbędne z
przyczyn estetycznych



Unikaj nadmiernie złożonych DFD



Upewnij się, że DFD jest wewnętrznie
niesprzeczny oraz niesprzeczny
z innymi spokrewnionymi DFD

Nazwy

KOWALSKI

zamówienia

poprawne
zamówienia

błędne
zamówienia

Sprawdź

zamówienia

zamówienia

poprawne
zamówienia

błędne
zamówienia

Nadmiernie
złożone DFD

wg.
J. Roszkowski
Analiza i projektowanie
strukturalne

Niesprzeczność

Przetwarzaj

materiał

a

c

d

b

Przetwarzaj

materiał

a

c

d

b

Przykład nieskończonej
studni

Przykład procesu bez wejść

background image

Zrównoważone DFD



Należy unikać diagramów zbyt złożonych



Realizuje się to przez podział całego
diagramu na szereg poziomów,
z których każdy dostarcza więcej
szczegółów o wyższym poziomie

Zrównoważone DFD

SYSTEM

DIAGRAM KONTEKSTOWY

A

B

C

1

3

4

2

DIAGRAM 0

A

B

C

X

Y

Z

3.1

3.3

3.4

3.2

DIAGRAM 3

X

Z

Y

Zrównoważone DFD



DFD najwyższego poziomu składa się tylko
z jednego procesu reprezentującego cały
system



Przepływy danych pokazują interfejsy
między systemem i terminatorami
zewnętrznymi (wraz z ewentualnymi
magazynami zewnętrznymi)



Ten specjalny DFD nazywa się
diagramem kontekstowym

Zrównoważone DFD



DFD bezpośrednio poniżej diagramu
kontekstowego nazywa się Diagramem 0



Przedstawia najwyższy poziom widzenia
głównych funkcji systemu oraz głównych
interfejsów między tymi funkcjami



Każdy z tych procesów dla wygody
powinien być numerowany

background image

Zrównoważone DFD



Numeracja służy również jako wygodny
sposób powiązania procesu z DFD
bezpośrednio niższego poziomu, opisującym
pełniej ten proces, na przykład:



proces z Diagramu 0 jest związany
z DFD niższego poziomu nazywanym Diagram 3



procesy wewnątrz Diagramu 3 numeruje się
3.1, 3.2, 3.3 itd.

Zrównoważone DFD

SYSTEM

DIAGRAM KONTEKSTOWY

A

B

C

1

3

4

2

DIAGRAM 0

A

B

C

X

Y

Z

3.1

3.3

3.4

3.2

DIAGRAM 3

X

Z

Y

Zrównoważone DFD



Jest to w miarę prosty sposób organizacji
potencjalnie olbrzymiego diagramu
przepływu danych w grupę poręcznych
fragmentów



Warto jednak dodać parę uwag do tego
opisu:

Zrównoważone DFD



Jak określić, ile poziomów powinien
mieć DFD?



Żaden DFD nie powinien zawierać więcej
niż 6-7 procesów



Jeśli specyfikacji pewnego procesu nie da
się zapisać na jednej stronie, to jest on
prawdopodobnie zbyt złożony i należy go
rozbić na DFD niższego poziomu przed
napisaniem specyfikacji

background image

Zrównoważone DFD



Jakiej liczby poziomów należy oczekiwać
po typowym systemie?



W prostym systemie pojawią się 2 lub 3
poziomy, w dużym 5 do 8



Całkowita liczba procesów rośnie wykładniczo,
wraz ze wzrostem poziomów



Jeśli na każdym diagramie występuje
7 procesów, to trzeci poziom będzie zawierać
343 procesy, piąty 16 807,
a dziewiąty 40 353 607

Zrównoważone DFD



Czy wszystkie części systemu
powinny być rozbite do tego samego
poziomu?



Nie muszą



Niektóre części systemu mogą być bardziej
złożone niż inne i mogą wymagać jednego
lub dwóch dodatkowych poziomów

Zrównoważone DFD



W jaki sposób pokazywać poziomy

użytkownikowi?



Wielu użytkowników chce patrzeć tylko na jeden

diagram



Członek kierownictwa obejrzy tylko diagram

kontekstowy lub ewentualnie Diagram 0



Użytkownik operacyjny zechce zapoznać się z

diagramem obejmującym fragment systemu,

który go dotyczy



Prezentacja całości powinna odbywać się od

góry

Zrównoważone DFD



Jak upewnić się, że poziomy DFD są ze
sobą zgodne?



Dla zapewnienia zgodności każdego diagramu z
diagramem nadrzędnym stosuje się prostą
regułę



Przepływy danych wchodzące i wychodzące z
procesu na danym poziomie powinny
odpowiadać przepływom danych wchodzących
i wychodzących z całego diagramu niższego
poziomu opisującego ten proces

background image

Zrównoważone DFD

SYSTEM

DIAGRAM KONTEKSTOWY

A

B

C

1

3

4

2

DIAGRAM 0

A

B

C

X

Y

Z

3.1

3.3

3.4

3.2

DIAGRAM 3

X

Z

Y

Zrównoważone DFD



Jak pokazywać magazyny na różnych
poziomach?



Jest to miejsce świadomego wprowadzania
nadmiarowości do modelu



Pokaż magazyn na najwyższym poziomie, na
którym po raz pierwszy służy jako interfejs
między procesami



Następnie pokaż go na każdym diagramie
niższego poziomu, który szerzej opisuje te
procesy

Magazyny na różnych poziomach

X

A.1

A.2

X

B.1

B.2

X

A

B

Słowniki danych



Drugim ważnym narzędziem modelowania
jest słownik danych



Jest to uporządkowany wykaz wszystkich
elementów danych mających związek z
systemem, wraz z ich precyzyjnym
określeniem



Gwarantuje to, że użytkownik
i analityk będą jednakowo rozumieli
wszystkie wejścia, wyjścia, składniki
magazynów i obliczenia pośrednie

background image

Słowniki danych



Słownik danych definiuje elementy danych w
następujący sposób:



opisując znaczenie przepływów
i magazynów pokazanych na diagramach
przepływu danych



opisując budowę złożonych pakietów danych
transmitowanych wzdłuż przepływów, tzn.
pakietów (takich jak adres klienta), które
można rozbić na bardziej elementarne
jednostki (takie jak miasto, województwo, kod
pocztowy itd.)

Słowniki danych



Słownik danych definiuje elementy danych
w następujący sposób (cd.):



opisując budowę pakietów danych w
magazynach



określając właściwe wartości i jednostki
elementarnych porcji informacji dla
przepływów i magazynów danych



opisując szczegóły związków między
magazynami, pokazanymi na diagramie
związków encji

Notacja słownika danych



Następująca notacja należy do
najpopularniejszych i korzysta
z niewielu prostych symboli:

=

składa się z

+

i

()

opcjonalnie (może wystąpić lub nie)

{} iteracja
[]

wybór jednej z kilku alternatywnych możliwości

** komentarz
|

rozdziela alternatywne możliwości w konstrukcji []

Słowniki danych



Przykładowo, moglibyśmy zdefiniować

pełne-nazwisko

następująco:

*definicja pełnego nazwiska*
pełne-nazwisko = tytuł + imię + (drugie imię) +

nazwisko

tytuł

[Pan | Pani | Dr | Profesor]

imię

{dozwolony-znak}

drugie-imię

{dozwolony-znak}

nazwisko

{dozwolony-znak}

dozwolony-znak [A-Z|a-z|0-9|’|-| |]

background image

Elementarne elementy danych



Elementarne elementy danych to takie, dla
których nie istnieje znacząca dekompozycja w
kontekście środowiska użytkownika



Po zidentyfikowaniu elementarnych jednostek
danych należy je wprowadzić do słownika
danych



Słownik danych powinien zawierać krótki
komentarz, otoczony znakami *, podający
znaczenie terminu w kontekście użytkownika

Słowniki danych



Budowa słownika to jeden z
najważniejszych aspektów tworzenia
modelu



Bez formalnego słownika, definiującego
znaczenie wszystkich terminów, nie ma
szans na precyzję

Specyfikacja procesu



Jest to opis tego co dzieje się wewnątrz każdego
elementarnego procesu na najniższym poziomie
DFD



Przeznaczenie specyfikacji procesu definiuje, co
należy zrobić w celu przekształcenia wejść w
wyjścia



Stanowi szczegółowy opis reguł działania
podanych przez użytkownika, które realizuje
dany proces

Specyfikacja procesu



Do utworzenia specyfikacji procesu można
użyć wielu narzędzi:



tablic decyzyjnych



strukturalnego języka polskiego



warunków początkowych i końcowych



diagramów przepływu sterowania



diagramów Nassi-Shneidermana

background image

Podstawowe wymagania



Specyfikacja procesu musi mieć taką
postać, aby możliwa była jej weryfikacja
przez użytkownika i analityka



Właśnie z tego powodu unika się
stosowania opisowego języka polskiego,
gdyż jest wieloznaczny, zwłaszcza przy
opisywaniu alternatywnych akcji (decyzji)
i akcji powtarzających się (cykli)

Podstawowe wymagania



Specyfikacja procesu musi być wyrażona w
postaci pozwalającej na efektywną komunikację
z różnymi kręgami słuchaczy



Jakkolwiek pisze ją zwykle analityk, tej lektury
musi dokonać szeroki krąg użytkowników,
menedżerów, audytorów, pracowników itp.



Większość analityków preferuje jako metodę
zapisu specyfikacji procesów strukturalny język
polski

Podstawowe wymagania



Dobre narzędzie do specyfikacji procesów nie

powinno wymuszać (lub narzucać) arbitralnych

decyzji projektowych i implementacyjnych



Jest to często bardzo trudne, ponieważ

użytkownik, który określa reguły działania dla

poszczególnych procesów w DFD, ma skłonność

do opisywania ich w terminach wynikających z

ich obecnej realizacji



Zadaniem analityka, jest wydobycie z opisu

istoty tego, co jest robione, nie zaś tego jak się

to obecnie odbywa

Strukturalny język polski



Strukturalny język polski, jak wskazuje nazwa, to

„polski ze strukturą”



Jest to podzbiór języka polskiego z istotnymi

ograniczeniami na postać używanych zdań i

sposób ich łączenia



Jest też znany pod nazwami PDL (Program

Design Language) lub PSL (Problem Statement

Language lub Problem Specification Language)



Jego celem jest osiągnięcie rozsądnego

kompromisu między pozycją formalnego języka

programowania a swobodą i czytelnością języka

polskiego

background image

Strukturalny język polski



Zdanie w strukturalnym języku polskim może
być równaniem algebraicznym, np.

X = (Y*Z)/(Q+14)



lub prostym zdaniem rozkazującym, składającym
się z czasownika i dopełnienia



Zdania opisujące obliczenia mogą być
poprzedzone czasownikami OBLICZ, DODAJ,
USTAW itp.



Poprzedni przykład można więc zapisać jako

OBLICZ X = (Y*Z)/(Q+14)

Strukturalny język polski



Inne przykłady zapisane w strukturalnym
języku polskim :
USTAW STOPA_PODATKOWA NA 30
DODAJ 3 DO X
POMNÓŻ CENA_JEDNOSTKOWA PRZEZ
ILOŚĆ

Strukturalny język polski



Czasowniki należy dobierać z niewielkiej grupy
czasowników odpowiadających akcjom, takich
jak:

WEŹ albo WCZYTAJ albo POBIERZ
UMIEŚĆ albo WYŚWIETL albo WPISZ
ZNAJDŹ albo SZUKAJ
DODAJ, ODEJMIJ, POMNÓŻ, PODZIEL
OBLICZ, USUŃ, SPRAWDŹ, PRZENIEŚ
ZASTĄP, USTAW, SORTUJ



W większości przypadków 40-50 czasowników
wystarcza do zapisania wszystkich specyfikacji
procesów

Strukturalny język polski



Obiekty występujące w dopełnieniach prostych
zdań rozkazujących powinny składać się z
elementów danych zdefiniowanych w słowniku
lub być terminami lokalnymi



Terminy lokalne to słowa wprost zdefiniowane w

danej specyfikacji procesu; są one znane i

znaczące jedynie wewnątrz tej specyfikacji



Typowy przykład terminu lokalnego to obliczenie

pośrednie, służące do wyprodukowania

ostatecznych wyników procesu

background image

Strukturalny język polski



Następująca specyfikacja procesu
w strukturalnym języku polskim bada ciąg
rekordów zamówień w magazynie
ZAMÓWIENIA, aby obliczyć sumę dzienną:

Strukturalny język polski

suma_dzienna = 0
DO WHILE istnieją zamówienia w ZAMÓWIENIA z

data_faktury = obecnej dacie

CZYTAJ następne zamówienie z ZAMÓWIENIA z

data_faktury = obecnej dacie

WYŚWIETL w Księgowości numer_faktury,

nazwa_klienta, suma_całkowita

suma_dzienna = suma_dzienna+suma_całkowita

ENDDO
WYŚWIETL w Księgowości sumę_dzienną

Diagramy związków

encji

Diagramy związków encji



Entity Ralationship Diagram ERD to model
sieciowy opisujący na wysokim poziomie
abstrakcji układ danych przechowywanych w
systemie



Różni się więc od diagramu przepływu danych,
modelującego funkcje realizowane przez system,
oraz od diagramu sieci przejść, modelującego
czasową charakterystykę zachowania systemu

background image

Diagramy związków encji



Model danych jest istotny przede wszystkim
dlatego, że struktury danych i ich powiązania
mogą być tak złożone, że będziemy chcieli je
obejrzeć i zbadać niezależnie od ich
przetwarzania



Jest tak zwłaszcza wtedy, gdy pokazujemy
model systemu kierownictwu wysokiego
szczebla, którzy nie są zainteresowani
szczegółami operacyjnymi codziennej pracy
systemu

Diagramy związków encji



Takich użytkowników bardziej interesuje:



jakich danych potrzebujemy do
prowadzenia naszej działalności,



jak są one powiązane między sobą



kto jest ich właścicielem



kto ma do nich dostęp

Diagramy związków encji



Diagram związków encji to wydajne narzędzie
modelowania do komunikacji z grupą
zarządzającą bazą danych



Opierając się na informacji umieszczonej na
ERD, grupa zarządzającą bazą danych może
ustalić jakie rodzaje kluczy, indeksów lub
wskaźników będą niezbędne do zapewnienia
skutecznego dostępu do rekordów bazy danych

Diagramy związków encji



ERD ma również wielką zaletę dla analityka: uwypukla
związki między magazynami danych na DFD, które w
przeciwnym razie byłyby widoczne tylko w specyfikacji
procesu



Typowy ERD pokazany jest na rysunku



Każdy z prostokątów odpowiada magazynowi danych na
DFD, widać też związki (połączenia), zazwyczaj nie
pokazywane na DFD

background image

Diagramy związków encji



Istnieją cztery podstawowe składniki
diagramu związków encji:



typy obiektów



związki



wskaźniki asocjowanych typów obiektów



wskaźniki nadtypów/podtypów

Typy obiektów



Na diagramie związków encji typ obiektu
jest przedstawiany prostokątem



Reprezentuje on populację lub zbiór
obiektów w świecie rzeczywistym, którego
poszczególne elementy (lub egzemplarze)
mają następujące cechy:

Typy obiektów - cechy



Każdy z nich można w jakiś sposób
zidentyfikować



Istnieje sposób odróżniania poszczególnych egzemplarzy
typu obiektu



Jeśli mamy typ obiektu KLIENT, musimy jakoś
odróżniać jednego klienta od drugiego (być może po
numerze konta, nazwisku lub numerze ewidencyjnym)



Gdyby wszyscy byli tacy sami (jeśli prowadzimy firmę,
dla której klienci to bezimienne postacie wchodzące po
zakupy do naszego sklepu), wówczas KLIENT nie byłby
sensownym typem obiektu

Typy obiektów - cechy



Każdy odgrywa jakąś rolę w budowanym

systemie



Inaczej mówiąc, aby typ obiektu był uzasadniony, musi

być możliwość stwierdzenia, że system nie mógłby

działać bez dostępu do jego elementów



Budując system przyjmowania zamówień dla sklepu,

można przyjąć, że oprócz klientów w sklepie są również

dozorcy, z których każdy jest identyfikowany nazwiskiem



Chociaż dozorcy pełnią w sklepie pożyteczną funkcję, to

system przyjmowania zamówień może funkcjonować bez

nich, dlatego nie powinni być typem obiektu w modelu

systemu



Oczywiście takie rzeczy należy zweryfikować

z użytkownikami podczas budowy modelu

background image

Typy obiektów - cechy



Każdy może być opisany jednym lub
więcej elementami danych



KLIENT może być opisany takimi elementami
danych, jak: nazwisko, adres, limit kredytowy i
numer telefonu



Nazywa się to przypisywaniem atrybutów
danych typowi obiektu



Atrybuty powinny odnosić się do każdego
egzemplarza typu obiektu, np. każdy klient
powinien mieć nazwisko, adres, limit kredytowy,
numer telefonu itp.

Typy obiektów



W wielu budowanych systemach typy obiektów
będą systemową reprezentacją materialnych
obiektów świata rzeczywistego



Typowe obiekty to: klienci, pozycje inwentarza,
pracownicy, produkowane części itp.



Obiekt istnieje materialnie w rzeczywistym
świecie, a typ obiektu jest jego systemową
reprezentacją



Obiekt może być jednak również czymś
niematerialnym, np. harmonogramem, planem,
standardem, strategią, mapą

Typy obiektów



W systemie często typami obiektów są ludzie,
dlatego może być taka sytuacja, że ta sama
osoba (a także dowolny inny obiekt materialny)
może odpowiadać kilku różnym typom obiektów
w różnych modelach danych lub nawet w tym
samym modelu danych



Jan Kowalski może być PRACOWNIKIEM w
jednym modelu i KLIENTEM w innym



Może także być PRACOWNIKIEM
i KLIENTEM w tym samym modelu danych

Typy obiektów



Zazwyczaj posługujemy się formą
pojedynczą rzeczownika, np. pracownik,
klient itp.
Nie jest to konieczne ale jest wygodne



Istnieje odpowiedniość między obiektami
na ERD i magazynami na DFD



Jeśli KLIENT jest obiektem na ERD to
powinien istnieć magazyn KLIENCI na
DFD

background image

Związki



Obiekty są ze sobą połączone związkami



Związki jest to zbiór powiązań między obiektami i
jest przedstawiany rombem



Na rysunku przedstawiony jest prosty związek
między dwoma obiektami



Związki mogą istnieć między więcej niż dwoma
obiektami

Związki



Należy pamiętać, że związek reprezentuje
zbiór powiązań



Każdy egzemplarz związku jest
powiązaniem między zerem lub większą
liczbą wystąpień jednego obiektu i zerem
lub większą liczbą wystąpień drugiego

Związki



Związek KUPUJE przedstawiony na rysunku
może zawierać więc następujące konkretne
egzemplarze:



egzemplarz 1: klient 1 kupuje towar 1



egzemplarz 2: klient 2 kupuje towar 2 i 3



egzemplarz 3: klient 3 kupuje towar 4



egzemplarz 4: klient 4 kupuje towar 5,6,7



egzemplarz 5: klient 5 nie kupuje towarów



egzemplarz 6: klienci 6 i 7 kupują towar 8



egzemplarz 7: klienci 8,9,10 kupują towary 9, 10, 11

Związki



Jak widać związek może łączyć dwa lub większą

liczbę egzemplarzy tego samego obiektu



Związek reprezentuje coś, co musi być

pamiętane przez system – nie może być

obliczone ani wprowadzone mechanicznie



Model danych przedstawiony na rysunku

wskazuje więc, że istnieje pewna istotna

przyczyna, dla której użytkownik chce pamiętać,

że klient 1 kupił towar 1 itd.



Wskazuje też, że nie istnieją żadne przesłanki,

pozwalające stwierdzić a priori, że klient 1 kupił

towar 1 i nic więcej

background image

Związki



Związek reprezentuje pamięć systemu



Oczywiście obiekt także reprezentuje pamięć
systemu



Między dwoma obiektami może istnieć więcej niż
jeden związek



Na kolejnym rysunku przedstawiono związki
między PACJENTEM a LEKARZEM



Na pierwszy rzut oka może to wyglądać na
niepotrzebny podział: ilekroć lekarz przyjmuje
pacjenta, wystawia mu rachunek

Związki



Z rysunku wynika również, że związek płacenia jest
oddzielony od związku leczenia



Być może niektórzy pacjenci płacą tylko za pierwszą
wizytę, inni za wszystkie wizyty a jeszcze inni nie płacą
wcale



Może okazać się, że
istnieje kilka różnych
egzemplarzy „leczenia”
między lekarzem i tym
samym pacjentem (tzn.
wizyta początkowa,
wizyty kontrolne, itp.)

Związki



Częstsza sytuacja to wiele związków
między wieloma obiektami



Kolejny rysunek pokazuje związek zwykle
istniejący między nabywcą, sprzedawcą,
agentem nieruchomości, adwokatem
nabywcy i adwokatem sprzedawcy, w celu
sprzedaży i zakupu domu

Związki



Dla złożonych
diagramów (jak na
rysunku) związek
i połączone nim
obiekty należy czytać
jako całość



Związek można opisać
z perspektywy
dowolnego
występującego typu
obiektu, wszystkie
perspektywy są
poprawne

background image

Związki



Właśnie zbiór tych perspektyw poprawnie
opisuje związek



Na rysunku związek NEGOCJUJE CENĘ można
odczytać w następujący sposób:



Agent nieruchomości negocjuje cenę między
nabywcą i sprzedawcą



Nabywca za pośrednictwem agenta
nieruchomości negocjuje cenę ze sprzedawcą



Sprzedawca za pośrednictwem agenta
nieruchomości negocjuje cenę z nabywcą

Związki



Alternatywna notacja dla związków



Związki w diagramie E-R są
wielokierunkowe, można je czytać
w dowolnym kierunku



Diagramy E-R nie pokazują liczności, tzn.
nie pokazują liczby obiektów biorących
udział w związku



Jest to całkowicie świadome i przemyślane:
takie szczegóły znajdują się w słowniku
danych

Związki



Niektórzy analitycy używają alternatywnej notacji,

podającej liczność i kierunek



Związek między KLIENTEM i TOWAREM



Dodatkowa notacja pokazuje, że:



KLIENT to punkt zaczepienia, podstawowy obiekt,

z którego perspektywy należy odczytywać związek



Związek składa się z KLIENTA połączonego z N TOWARAMI, tzn.

pojedynczy klient może zakupić 0, 1, 2 ... N towarów. Jednak

związek wskazuje, że tylko jeden klient wystąpi w każdym

egzemplarzu związku



Wyklucza to przypadki, gdy kilku klientów jest związanych z

zakupem jednego towaru

1

N

Związki



Inną popularną notację przedstawiono na
kolejnym rysunku; strzałka z podwójnym
grotem służy do pokazania związku jeden-do-
wielu, natomiast strzałka z pojedynczym grotem
oznacza związek jeden-do-jednego między
obiektami

background image

Wskaźniki asocjowanych typów

obiektów



Specjalną notacją na diagramie E-R jest
wskaźnik asocjowanego obiektu, który
reprezentuje coś funkcjonującego zarówno
jako obiekt, jak i związek



Asocjowany typ obiektu można również
traktować jako reprezentację związku, o
którym chcemy zachować pewną
informację

Wskaźniki asocjowanych typów

obiektów



Rozważmy prosty przypadek klienta kupującego
towar (lub towary) pokazany na rysunku

Wskaźniki asocjowanych typów

obiektów



Istotą sprawy jest, że związek ZAKUPU to nic

więcej tylko powiązanie KLIENTA z jednym lub z

większą liczbą TOWARÓW



Załóżmy jednak, że istnieją pewne dane, które

chcemy zapamiętać dla każdego egzemplarza

zakupu (np. porę dnia)



Gdzie przechowywać te informacje? „Pora dnia”

to na pewno nie atrybut KLIENTA, ani też

TOWARU



Wobec tego przypisujemy „porę dnia” samemu

zakupowi i umieszczamy na diagramie w sposób

pokazany na rysunku

Wskaźniki asocjowanych typów

obiektów



ZAKUP zapisujemy teraz w prostokącie

i łączymy strzałką z rombem anonimowego

związku



Ma to wskazywać, że ZAKUP ma tutaj dwa

znaczenia



Typ obiektu, czyli coś o czym chcemy

przechowywać informacje. Tutaj chcemy

pamiętać porę, kiedy klient dokonał zakupu i

zaoferowany upust



Związek łączący dwa typy obiektów KLIENT

i TOWAR. Istotną sprawą jest, że KLIENT

i TOWAR są całkowicie odrębne. Istnieją

niezależnie od tego, czy dokonano jakiegoś

zakupu

background image

Wskaźniki asocjowanych typów

obiektów



ZAKUP zależy od istnienia KLIENTA i TOWARU



Pojawia się jedynie w wyniku związku między
innymi obiektami, do którego jest dołączony



Związek przedstawiony na rysunku świadomie
pozostawiono anonimowym, ponieważ wskaźnik
asocjowanego typu obiektu (ZAKUP) jest
jednocześnie nazwą związku

Wskaźniki nadtypu/podtypu



Typy obiektów nadtyp/podtyp obejmują typ
obiektu i jedną lub więcej podkategorii,
połączonych związkiem



Rysunek pokazuje typowy nadtyp/podtyp



Kategorią ogólną jest PRACOWNIK,
podkategoriami zaś są PRACOWNIK ETATOWY
i PRACOWNIK GODZINOWY

Wskaźniki nadtypu/podtypu



Poddtypy są połączone z nadtypem
anonimowym związkiem, a nadtyp jest
połączony ze związkiem przekreśloną linią



W tej notacji nadtyp określa się
elementami danych odnoszącymi się do
wszystkich podtypów

Wskaźniki nadtypu/podtypu



Możemy sobie wyobrazić, że wszyscy pracownicy
są opisani za pomocą następujących danych:



nazwisko



staż pracy



adres domowy



nazwisko kierownika



Natomiast każdy podtyp jest określany różnymi
elementami danych, w przeciwnym razie nie
miałoby sensu wyróżnianie ich

background image

Wskaźniki nadtypu/podtypu



Wobec tego PRACOWNIK ETATOWY jest
opisany takimi informacjami jak:



pensja miesięczna



procent premii rocznej



zakres korzystania z samochodu firmy



a PRACOWNIK GODZINOWY takimi jak:



stawka godzinowa



dopłata za nadgodziny



czas rozpoczęcia

Wskazówki do konstruowania

diagramów związków encji



Ważne jest w jaki sposób należy wykrywać
obiekty i związki



Początkowy model typów obiektów i związków
będzie zwykle oparty na:



znajomości aplikacji użytkownika



wywiadach z użytkownikami



wszelkich innych sposobach zbierania informacji, z
jakich można skorzystać



Diagramy związków encji zmienia się
i poprawia wielokrotnie

Dołączanie dodatkowych typów

obiektów



Początkowy ERD tworzy się na podstawie
wywiadów z użytkownikami i wiedzy na temat
dziedziny klienta



Powinno to wskazać główne obiekty
i związki



Po sporządzeniu wstępnego ERD następny krok
to przypisanie typom obiektów atrybutów –
elementów danych

Dołączanie dodatkowych typów

obiektów



Można to osiągnąć w różny sposób:



Jeśli model procesów DFD jest już
sporządzony lub jest budowany równolegle z
modelem danych, wówczas będzie już istniał
słownik danych



Jeśli model procesów jeszcze nie istnieje to
należy rozpocząć od wywiadów ze wszystkimi
użytkownikami, aby zbudować wyczerpującą
listę (definicji) elementów danych

background image

Dołączanie dodatkowych typów

obiektów



W wyniku przypisywania atrybutów mogą
wystąpić trzy powody tworzenia nowych
obiektów:



Można odkryć elementy danych, które można
przypisać tylko do niektórych egzemplarzy typu
obiektu



Można wykryć, że pewne elementy danych mają
zastosowanie do wszystkich egzemplarzy dwóch
różnych typów obiektów



Można odkryć, że pewne elementy danych opisują
związki między innymi typami obiektów

Dołączanie dodatkowych typów

obiektów



Jeśli podczas przypisywania atrybutów
typom obiektów okaże się, że pewne
elementy danych nie mogą być przypisane
wszystkim egzemplarzom pewnego typu
obiektu, należy utworzyć zbiór podtypów
dla danego typu i przypisać elementy
danych odpowiednim podtypom

Dołączanie dodatkowych typów

obiektów



Przypuśćmy, że budujemy system obsługi
klienta i zidentyfikowano typ obiektu
nazwany KLIENT



Przeglądając istniejące elementy danych
stwierdzamy, że wiele z nich (NIP, adres,
nazwa firmy, itp.) ma zastosowanie do
wszystkich egzemplarzy klienta

Dołączanie dodatkowych typów

obiektów



Jednakże są elementy danych, które występują dla części
egzemplarzy a nie występują dla innej



Na przykład KLIENT KRAJOWY i KLIENT ZAGRANICZNY,
dla których w firmie są inne procedury obsługi



W takiej sytuacji należy utworzyć podtypy

background image

Dołączanie dodatkowych typów

obiektów



Może też zajść sytuacja odwrotna: elementy danych
mogą opisywać w ten sam sposób egzemplarze
dwóch (lub więcej) różnych typów obiektów



Jeśli tak się zdarzy należy utworzyć nowy nadtyp i
przypisać wspólne elementy danych do tego
nadtypu



Mogliśmy np. zidentyfikować KLIENTA
GOTÓWKOWEGO i KLIENTA Z KARTĄ KREDYTOWĄ
jako dwa różne typy obiektów, gdy po raz pierwszy
tworzyliśmy ERD dla systemu przyjmowania
zamówień (być może kierując się informacją od
użytkownika, że są to dwie różne kategorie)

Dołączanie dodatkowych typów

obiektów



Łatwo stwierdzić, że są takie elementy danych jak
nazwisko, adres itp., które opisują w ten sam sposób oba
te typy; sugerowałoby to utworzenie nadtypu, co ilustruje
rysunek

Dołączanie dodatkowych typów

obiektów



Jeżeli element danych opisuje interakcję między dwoma lub
więcej typami obiektów, należy zastąpić „czysty” związek
między dwoma obiektami asocjowanym typem obiektu



Popatrzmy na początkowy ERD pokazany na rysunku, na
którym występuje związek KUPUJE między KLIENTEM a
TOWAREM

Dołączanie dodatkowych typów

obiektów



Podczas przypisywania atrybutów może się okazać, że
istnieje element danych data_zakupu, który może
należeć do związku KUPUJE oraz jawnie opisuje, czyli
dostarcza dane o związku miedzy klientem i towarem



Sugeruje to, że należy zastąpić związek KUPUJE
asocjowanym typem obiektu, pokazanym na rysunku

background image

Dołączanie dodatkowych typów

obiektów



Czasami początkowy diagram E-R będzie zawierał typ
obiektu, który przy dokładniejszej analizie okaże się
asocjowanym typem obiektu



Rysunek przedstawia diagram E-R z trzema powiązanymi
obiektami: KLIENTEM, ZAMÓWIENIEM i TOWAREM

Dołączanie dodatkowych typów

obiektów



Podczas przypisywania atrybutów różnym
obiektom stwierdziliśmy, że data_dostawy
najbardziej pasuje do obiektu ZAMÓWIENIE
(w końcu klienci nie są dostarczani, towary zaś są
dostarczane tylko w wyniku zamówienia)



Dalsze przemyślenia ujawniły, że samo
ZAMÓWIENIE to związek między KLIENTEM
i TOWAREM, jak też obiekt, o którym chcemy
zapamiętywać pewne fakty co prowadzi do
modyfikacji diagramu

Dołączanie dodatkowych typów

obiektów

Powtarzające się grupy



Rozważmy typ obiektu PRACOWNIK, z takimi
oczywistymi elementami danych jak nazwisko i
adres



Załóżmy, że znaleźliśmy dodatkowe elementy
danych nazwisko_dziecka, wiek_dziecka i
płeć_dziecka



Oczywiście można uważać, że te elementy
danych to sposób opisania nowego typu obiektu
DZIECKO, który przedtem zawarliśmy w obiekcie
PRACOWNIK

background image

Powtarzające się grupy



Można także dostrzec, że istnieje wiele
egzemplarzy informacji dotyczącej dziecka
związanej z jednym egzemplarzem pracownika



Każdy taki egzemplarz informacji o dziecku jest
jednoznacznie identyfikowany
nazwiskiem_dziecka



Wobec tego typ obiektu początkowo pokazany
na rysunku A należy przekształcić na dwa typy
obiektów, połączone nowym związkiem jak
pokazano na rysunku B

Powtarzające się grupy

A

B

Powtarzające się grupy



Taki proces usuwania obiektów zagnieżdżonych
stanowi część szerszej czynności modyfikacji
zwanej normalizacją



Celem normalizacji jest otrzymanie typów
obiektów, w których każdy egzemplarz (lub
element) składa się z wartości klucza
pierwotnego, identyfikującej pewną encję, wraz
ze zbiorem wzajemnie niezależnych wartości
atrybutów, opisujących w jakiś sposób encję

Usuwanie typów obiektów



Często modyfikacja ERD polega na usunięciu
nadmiarowych lub błędnych typów obiektów i
związków.



Są cztery typowe sytuacje:



Typy obiektów składające się jedynie z
identyfikatora



Typy obiektów mające tylko jeden egzemplarz



Zawieszone asocjowane typy obiektów



Związki wyprowadzalne

background image

Usuwanie typów obiektów



Jeśli mamy diagram E-R, na którym
pewien typ obiektu jako jedyny element
danych ma przypisany identyfikator,
możliwe jest wyeliminowanie tego typu
obiektu i przypisanie identyfikatora jako
elementu danych spokrewnionemu typowi
obiektu



Ilustruje to przykład fragmentu systemu
kadrowego

Usuwanie typów obiektów



Podczas przypisywania
atrybutów rozmaitym
obiektom stwierdziliśmy,
że jedyną informacją,
jaką o współmałżonku
przechowuje system
kadrowy, jest nazwisko
(tzn. identyfikator
odróżniający od siebie
poszczególnych
współmałżonków w
systemie)

Usuwanie typów obiektów



Oczywistą modyfikacją jest wówczas eliminacja
WSPÓŁMAŁŻONKA jako typu obiektu oraz dołączenie
nazwiska_współmałżonka jako elementu danych do
obiektu PRACOWNIK



Takie ulepszenie ma sens jedynie wtedy, gdy istnieje
wzajemnie jednoznaczna odpowiedniość między
egzemplarzami właśnie usuwanego obiektu i
egzemplarzami spokrewnionego obiektu



Podany przykład ma sens, ponieważ we
współczesnych społeczeństwach zakłada się, że
można mieć co najwyżej jednego współmałżonka

Usuwanie typów obiektów



Jeszcze większej redukcji
można dokonać wówczas,
gdy początkowy diagram
E-R zawiera obiekt, który
ma tylko identyfikator i
tylko jeden egzemplarz



Rozważmy początkowy
diagram E-R
przedstawiony na rysunku

background image

Usuwanie typów obiektów



Na pierwszy rzut oka wydaje się rozsądne
pokazanie związku między pacjentami i lekami w
szpitalu



Przypuśćmy jednak, że jedyną informacją
zapisaną o leku jest jego nazwa (identyfikator)
oraz przypuśćmy, że szpital stosuje tylko jeden
typ leku (np. aspirynę)



Wówczas lek jest stałą i nie musi w ogóle
pojawiać się na diagramie



Oznacza to także, że system nie będzie miał
magazynu danych zwanego LEKI

Usuwanie typów obiektów



Z tego powodu mogą pojawić się zawieszone
asocjowane typy obiektów



Rozważmy wariant poprzedniego przykładu
szpitalnego, pokazany na rysunku

Usuwanie typów obiektów



Jeśli okaże się, że LEK ma jedynie identyfikator i
pojedynczy egzemplarz, wówczas będzie
usunięty



Doprowadzi to do diagramu

Usuwanie typów obiektów



Po modyfikacji TERAPIA jest wciąż
asocjowanym typem obiektu, mimo że jest
połączona tylko z jednym innym typem
obiektu



Taka sytuacja na ERD jest określona jako
zawieszony asocjowany typ obiektu i jest
całkowicie poprawna (choć nieco
niezwykła)

background image

Usuwanie typów obiektów



Związki, które mogą być wyprowadzone lub
obliczone, należy usunąć z początkowego
diagramu



Jak wspominaliśmy, ERD powinien przedstawiać
wymagania dotyczące pamiętanych danych



Dlatego jeśli przedstawiony na kolejnym rysunku
związek odnowienia między KIEROWCĄ a
PRAWEM JAZDY może być wyprowadzony (na
podstawie daty urodzenia, czy w inny sposób
stosowany przez wydziały komunikacyjne),
wówczas należy go wyeliminować

Usuwanie typów obiektów



Prowadzi to do diagramu, na którym typy obiektów nie
są połączone



Jest to poprawne, ponieważ nie jest konieczne, aby
każdy typ obiektu był połączony z innym

Rozszerzenia słownika danych



Słownik danych należy rozszerzyć na potrzeby
notacji ERD



W zasadzie obiekty na ERD odpowiadają
magazynom na DFD



Oznacza to, że w definicji w słowniku danych,
KLIENT to zarówno definicja typu obiektu, jak i
egzemplarz magazynu KLIENCI:

KLIENCI = {KLIENT}
KLIENT =

@nazwisko_klienta+adres+numer_telefonu

Rozszerzenia słownika danych



Definicja KLIENTA obejmuje specyfikację pola
klucza, który jest elementem danych (lub
atrybutem) odróżniającym poszczególne
egzemplarze klienta. Znak „at” @ służy do
wskazania pól klucza



Inny sposób wskazania klucza to podkreślenie

KLIENT =

nazwisko_klienta+adres+numer_telefonu

background image

Rozszerzenia słownika danych



Do słownika danych musimy również dołączyć
definicje wszystkich związków pokazanych na
ERD



Definicja związku powinna obejmować opis
znaczenia związku w kontekście aplikacji i
wskazywać obiekty tworzące związek



Mogą być określone odpowiednie ograniczenia
dolne i górne, aby wskazać, czy związek
jeden-do-jednego, jeden-do-wielu
czy też wiele-do-wielu

Rozszerzenia słownika danych



Związek kupuje, pokazany na rysunku można
zdefiniować w słowniku danych następująco:
kupuje = *

powiązanie klienta i jednego lub

więcej towarów

*

@id_klienta + {@id_towaru + zakupiona_ilość}

Podsumowanie



Dla każdego systemu z wieloma
magazynami (obiektami) i złożonymi
strukturami danych ERD stanowi
wartościowe narzędzie



Koncentruje się ono całkowicie na
związkach między danymi, pomijając
funkcje tworzące lub korzystające
z tych danych

Podsumowanie



Pytanie czy najpierw należy budować model DFD, a
dopiero potem ERD, czy też lepiej rozpocząć od
ERD?



Niektórzy pytają nawet, czy rzeczywiście należy
sporządzić oba modele, skoro zarówno DFD jak i
ERD dostarczają tak wiele interesującej informacji



Odpowiedź na pierwsze pytanie jest łatwa: nie ma
znaczenia, który model będzie zbudowany pierwszy



Zależnie od własnych preferencji, preferencji
użytkownika lub natury samego systemu (tzn. czy
jest on bogaty w funkcje czy w dane) jeden
z modeli wyda się na początek łatwiejszy



Niekiedy może okazać się, że oba modele będą
budowane jednocześnie

background image

Diagramy sieci przejść

Diagramy sieci przejść



Przedstawiliśmy już narzędzia modelowania
uwypuklające funkcje realizowane przez system,
jak też pamiętane dane, które system musi
gromadzić



Obecnie omówimy trzeci rodzaj narzędzi
modelowania, diagram sieci przejść (STD -
State Transition Diagram), pokazujący
zachowania systemu w czasie

Diagramy sieci przejść



Do niedawna modele zachowania systemu w czasie
były istotne tylko dla specjalnej kategorii systemów
zwanych systemami czasu rzeczywistego



Przykładami takich systemów są:



systemy sterowania procesami



telefoniczne systemy przełączające



systemy szybkiego gromadzenia danych



wojskowe systemy nadzoru i sterowania

Diagramy sieci przejść



Wiele z nich to systemy bierne w tym
sensie, że nie sterują otaczającym
środowiskiem, lecz jedynie reagują na nie
i gromadzą o nim informacje



Do tej kategorii należy wiele systemów
szybkiego gromadzenia danych
(np. system gromadzenia danych
naukowych z satelity)

background image

Diagramy sieci przejść



Inne systemy czasu rzeczywistego są bardziej
aktywne, mogą sterować niektórymi aspektami
otaczającego środowiska



Do tej kategorii należą systemy sterowania
procesami



Systemy tego rodzaju mają do czynienia
z bardzo szybkimi zewnętrznymi źródłami danych,
muszą udzielać odpowiedzi i dostarczać danych
wynikowych dostatecznie szybko dla zewnętrznego
środowiska



Ważną częścią ich specyfikacji jest określenie, co ma
kiedy nastąpić

Diagramy sieci przejść



Dla systemów handlowych zagadnienie to

w zasadzie nie było istotne



Dane mogą napływać z wielu różnych źródeł

z dość dużą szybkością, lecz ich przetwarzanie może

być zwykle odroczone, jeśli system zajmuje się

czymś innym



Obecnie jednak zaczynają się pojawiać wielkie,

złożone systemy handlowe, w których występują

aspekty czasu rzeczywistego



Jeśli system otrzymuje dane z tysięcy terminali, jak

też szybkie dane z innych systemów komputerowych

lub urządzeń do komunikacji satelitarnej, wówczas

pojawiają się te same problemy, co w klasycznym

systemie czasu rzeczywistego

Notacja diagramu sieci przejść



Typowy diagram sieci przejść pokazany jest na
rysunku



Przedstawia on zachowanie typowej
automatycznej sekretarki telefonicznej

Notacja diagramu sieci przejść



Podstawowymi składnikami są stany i
strzałki reprezentujące przejścia między
stanami



Istnieje wiele różnych notacji dla
diagramów sieci przejść, jedną z nich jest
pokazana na rysunku

background image

Stany systemu



Każdy prostokąt reprezentuje stan, w
jakim może znajdować się system



New World Dictionary Webstera podaje
następującą definicję stanu:
Zbiór okoliczności lub cech
charakteryzujących osobę lub rzecz w
danej chwili; sposób lub forma istnienia;
warunek

Stany systemu



Przykłady typowych stanów systemu:



oczekiwanie, aby użytkownik wprowadził
hasło



podgrzewanie mieszaniny chemicznej



oczekiwanie na następne polecenie



przyspieszanie silnika



mieszanie składników



oczekiwanie na dane pomiarowe



napełnianie zbiornika



bezczynny

Stany systemu



Wiele z tych przykładów obejmuje czekanie

systemu na jakieś zdarzenie, nie opisuje zaś

żadnych działań



Dlatego dowolny obserwowalny stan systemu

odpowiada tylko okresom gdy
(1) czeka on na jakieś zdarzenie w otaczającym

środowisku lub
(2) czeka, aby obecną czynność otoczenia

(mieszanie, pranie, napełnianie, przyśpieszanie

itp.) zastąpiono inną



Stan przedstawia więc zachowanie systemu,

które jest obserwowalne i trwa przez jakiś

skończony odcinek czasu

Zmiany stanów



System, który miałby tylko jeden stan
byłby statyczny



Zwykle systemy informacyjne, które
modelujemy, mogą mieć dziesiątki różnych
stanów



W jaki sposób zmienia się stan systemu?



Jeśli system podlega regułom rządzącym
jego zachowaniem, tylko niektóre przejścia
między stanami będą sensowne i
dozwolone

background image

Zmiany stanów



Dozwolone zmiany stanów
przedstawiamy na STD łącząc
odpowiednie pary stanów
strzałkami



Ilustruje to kolejny rysunek



System może przejść ze stanu 1
do stanu 2, oraz że gdy system
jest w stanie 2, może przejść do
stanu 3 lub z powrotem
do stanu 1



System nie może przejść
bezpośrednio ze stanu 1 do stanu
3, ale może przejść bezpośrednio
ze stanu 3 z powrotem do stanu 1



Stan 2 ma dwa następniki

Zmiany stanów



Na rysunku znajduje się wiele interesujących
informacji o zachowaniu systemu, ale nie ma na
nim pewnej, być może bardzo istotnej rzeczy:
jaki jest początkowy i końcowy stan systemu



Kolejny rysunek jest stabilnym modelem
systemu, który był zawsze aktywny i zawsze
pozostanie aktywny



Większość systemów ma wyróżnione stany
początkowe i końcowe; pokazane na rysunku

Zmiany stanów



Stan początkowy rysuje się z
reguły u góry diagramu, tym co
naprawdę wyróżnia stan 1 na
rysunku jako początkowy, jest
,,naga” strzałka, która nie jest
połączona z żadnym innym stanem



Podobnie stan końcowy jest często
rysowany u dołu diagramu, tym co
identyfikuje stan 5 jako końcowy,
jest brak strzałki wychodzącej ze
stanu 5

Zmiany stanów



Zdrowy rozsądek podpowiada, że system może
mieć tylko jeden stan początkowy, ale może
mieć wiele stanów końcowych



Stany końcowe wzajemnie wykluczają się, tzn.
tylko jeden z nich może wystąpić podczas
działania systemu



Kolejny rysunek zawiera przykład, w którym
możliwymi stanami końcowymi są stany 4 i 6

background image

Zmiany stanów

Zmiany stanów



Ponieważ używamy STD do budowy
modelu podstawowego, zakładamy, że
zmiany stanów zachodzą natychmiast, tzn.
nie jest potrzebny żaden obserwowalny
czas, aby system przeszedł z jednego
stanu do innego

Warunki i akcje



Aby diagram sieci przejść był
kompletny, należy dodać
jeszcze dwa składniki:



warunki, powodujące zmianę
stanu, oraz



akcje, które wykonuje system
zmieniając stan



Warunki i akcje zaznacza się
obok strzałki łączącej dwa
sąsiednie stany

STAN 1

STAN 2

Warunek

Akcja

Warunki i akcje



Warunek to pewne zdarzenie w otaczającym
środowisku, które system może wykryć



Zwykle będzie to sygnał, nadejście pakietu
danych itp.



Powoduje to zwykle przejście systemu ze stanu
oczekiwania na X do nowego stanu oczekiwania
na Y lub z wykonywania akcji X do wykonywania
akcji Y

background image

Warunki i akcje



Podczas zmiany stanu system zwykle wykonuje
jedną lub więcej akcji:



produkuje wyniki



wyświetla komunikat na terminalu użytkownika



wykonuje obliczenie itd.



Akcje pokazane na STD są więc odpowiedziami,
wysłanymi z powrotem do środowiska, lub
obliczeniami, których wyniki są zapamiętywane
przez system (zwykle w magazynie danych
pokazanym na diagramie przepływu), aby w
razie potrzeby zareagować na jakieś przyszłe
zdarzenie

Diagramy podzielone



W złożonym systemie mogą występować
dziesiątki różnych stanów; pokazanie ich na
pojedynczym diagramie byłoby trudne, a może
nawet niemożliwe



Podobnie jak równoważyliśmy (dzieliliśmy)
diagramy przepływu danych, można również
dokonywać podziału STD



Kolejny rysunek zawiera przykład dwóch
poziomów diagramu sieci przejść dla złożonego
systemu

Diagramy podzielone

Wg Współczesna analiza
strukturalna
E. Yourdon
WNT, Warszawa 1996

Diagramy podzielone



Każdy pojedynczy stan na diagramie wyższego

poziomu może być stanem początkowym na

diagramie niższego poziomu, dokładniej

opisującym ten stan



Stany końcowe na diagramie niższego poziomu

odpowiadają warunkom wyjścia

z odpowiedniego stanu wyższego poziomu



W innych przypadkach analityk może jawnie

pokazać, w jaki sposób następuje wyjście z

diagramu STD niższego poziomu do

odpowiedniego miejsca na diagramie wyższego

poziomu

background image

Diagramy podzielone



Przykładem
wymagającym
podzielonego
diagramu sieci przejść
może być bankomat



STD dla tej aplikacji
pokazano na rysunku

Budowa diagramu sieci przejść



Istnieją dwa podejścia:



Można rozpocząć od zidentyfikowania
wszystkich możliwych stanów systemu,
reprezentując każdy z nich na rysunku
oddzielnym prostokątem. Następnie można
badać wszystkie sensowne połączenia (czyli
zmiany stanów) między prostokątami.



Można też rozpocząć od stanu początkowego,
potem metodycznie przechodzić do
następnych stanów, a z nich do kolejnych itd.

Budowa diagramu sieci przejść



Wybór podejścia może być określony przez
użytkownika, zwłaszcza gdy jest on jedyną
osobą dobrze znającą zachowanie systemu



Do wykonania akcji system może potrzebować
dodatkowych wejść ze środowiska zewnętrznego



Można więc stwierdzić, że każdy warunek
odpowiada zdarzeniu zewnętrznemu, na które
system musi zareagować, zdarzenia te zaś będą
zwykle dostrzeżone przez system dzięki
nadejściu wchodzącego przepływu danych

Budowa diagramu sieci przejść



Po zakończeniu budowy wstępnego STD należy
sprawdzić następujące warunki:



Czy zdefiniowano wszystkie stany? Przyjrzyj się
dokładnie systemowi, aby stwierdzić, czy istnieje jakieś
obserwowalne zachowanie lub inny stan, w jakim może
znajdować się system, poza zidentyfikowanymi



Czy wszystkie stany są osiągalne? Czy nie zdefiniowałeś
stanów, do których nie prowadzą żadne drogi?



Czy istnieją wyjścia ze wszystkich stanów? Jak
wspomnieliśmy, system może mieć jeden lub więcej
stanów końcowych z kilkoma wejściami do nich;
wszystkie inne stany powinny mieć następniki

background image

Budowa diagramu sieci przejść



Czy w każdym stanie system odpowiada poprawnie na
wszystkie warunki?



Jest to najczęstszy błąd przy budowie diagramu sieci
przejść



Analityk identyfikuje zmiany stanów w warunkach
normalnych, lecz zapomina określić zachowanie systemu
dla nieoczekiwanych zdarzeń



Załóżmy, że analityk wymodelował zachowanie systemu
w sposób pokazany na kolejnym rysunku



Oczekuje on, że użytkownik naciśnie pewien klawisz
funkcyjny na swoim terminalu, aby spowodować
przejście ze stanu 1 do stanu 2 oraz inny klawisz
funkcyjny, aby przejść ze stanu 2 do stanu 3

Budowa diagramu sieci przejść



Co stanie się, jeśli użytkownik
naciśnie ten sam klawisz
funkcyjny dwa razy z rzędu?
Albo inny klawisz? Jeśli
zachowanie systemu nie jest
określone, istnieje duża
szansa, że projektanci i
programiści również nie
zaprogramują tego i system
będzie się w rozmaitych
okolicznościach zachowywał w
sposób nieprzewidziany

Związek z innymi składowymi

modelu



Diagram sieci przejść jest narzędziem
modelowania, które może być używane
samodzielnie



Może jednak też, i zwykle powinien, być
używany w powiązaniu z innymi narzędziami



Najczęściej diagram sieci przejść reprezentuje
specyfikację procesu dla procesu sterującego na
diagramie przepływu danych



Ilustruje to kolejny rysunek

Związek z innymi składowymi

modelu



Warunki na STD odpowiadają wejściowym przepływom

sterującym na DFD, a akcje na STD wyjściowym

przepływom sterującym na DFD



Jako narzędzie modelowania wysokiego poziomu, diagram

sieci przejść może pełnić rolę specyfikacji procesu dla

całego systemu

background image

Podsumowanie



Diagram sieci przejść to mocne narzędzie
modelowania do opisu wymaganego
zachowania systemów czasu
rzeczywistego, jak też części interfejsu
użytkowego wielu systemów
interakcyjnych

Równoważenie modeli

Równoważenie modeli



Najważniejsze narzędzia modelowania w
analizie strukturalnej:



diagram przepływu danych



słownik danych



specyfikacja procesu



diagram związków encji



diagram sieci przejść

Równoważenie modeli



Każde z tych narzędzi koncentruje się na jednym
krytycznym aspekcie modelowanego systemu



Oznacza to, że osoba oglądająca model także
koncentruje się na jednym aspekcie, tzn. na
tym, na które narzędzie modelowania ma
zwrócić jej uwagę



Ponieważ rzeczywisty system może mieć wiele
kierunków złożoności, chcemy, aby diagram
przepływu danych skupił uwagę czytelnika na
funkcjach systemu, a nie na związkach między
danymi

background image

Równoważenie modeli



Diagram związków encji ma uwypuklać
związki między danymi bez zajmowania się
funkcjonalną charakterystyką systemu



Diagram sieci przejść zaś służy do
skupienia uwagi na zagadnieniach
synchronizacji systemu, bez rozważania
funkcji lub danych

Równoważenie modeli



Przychodzi jednak czas połączenia
wszystkich narzędzi modelowania



Sytuacja modelującego system
przypomina starą indyjską bajkę o trzech
ślepych mędrcach, którzy natknęli się na
słonia



Po dotknięciu różnych części jego ciała
doszli do zupełnie innych wniosków o
,,rzeczywistości”, z którą mają do
czynienia

Równoważenie modeli

Równoważenie modeli



Pierwszy ze ślepców dotknął ostrego końca
jednego z długich kłów. "Aha powiedział - to jest
byk. Czuję jego rogi"



Drugi dotknął szczeciniastej skóry zwierzęcia.
"Bez wątpienia – powiedział - jest to ... co?
Jeżozwierz? Tak, na pewno jeżozwierz"



Trzeci dotknął jednej z grubych nóg słonia i
oświadczył "To z czym mamy do czynienia jest
na pewno drzewem"

background image

Równoważenie modeli



Podobnie modelując trzy różne aspekty systemu
(funkcje, dane i synchronizację), jak też
szczegółową charakterystykę systemu w słowniku
danych i w zbiorze specyfikacji procesów, łatwo
sporządzić kilka sprzecznych interpretacji tej samej
rzeczywistości



Jest to szczególnie niebezpieczne w dużych
projektach, gdy w pracach biorą udział różne osoby i
grupy o różnych zainteresowaniach



Niebezpieczeństwo istnieje też wówczas, gdy zespół
projektowy obejmuje osoby o bardzo różnym
przygotowaniu

Równoważenie modeli



Jest jeszcze jedna przyczyna zajmowania się
spójnością modelu: istniejące błędy zostaną w
końcu wykryte, lecz staje się to znacznie
trudniejsze i bardziej kosztowne w późniejszych
fazach projektu



Błędy wprowadzone podczas analizy systemowej
do modelu wymagań zwykle rozrastają się w
fazie projektowania i implementacji



Jest to poważne niebezpieczeństwo zwłaszcza w
wielkich systemach, w których analizy dokonują
inne osoby niż projektowania i implementacji

Równoważenie modeli



50% błędów wykrywanych w systemie i 75%
kosztów ich usuwania jest związane z błędami
popełnionymi podczas fazy analizy systemu



Koszt poprawiania błędów rośnie wykładniczo w
późniejszych etapach projektu; jest dziesięć razy
taniej poprawić błąd podczas analizy systemu w
fazie analizy niż poprawiać ten sam błąd w fazie
projektowania

Równoważenie modeli



Niektóre z błędów to oczywiście proste błędy
w pojedynczym modelu (np. diagram przepływu
danych z nieskończoną studnią)



Niektóre z nich można określić jako błędną
interpretację prawdziwych oczekiwań użytkownika



Jednak wiele z trudniejszych i bardziej zdradliwych
błędów to błędy między modelami, tzn. niezgodności
jednego modelu z innym



Specyfikację strukturalną, w której sprawdzono
niesprzeczność wszystkich narzędzi modelowania z
innymi, nazywamy zrównoważoną

background image

Równoważenie modeli



Najczęstszy błąd zrównoważenia to brakująca
definicja



Coś zdefiniowanego (lub opisanego) w jednym
modelu nie jest odpowiednio zdefiniowane w
innym



Np. magazyn danych pokazany na DFD, lecz nie
zdefiniowany w słowniku danych, lub obiekt na
ERD, nie mający odpowiadającego magazynu
danych na DFD)



Drugi częsty typ błędu to niespójność: ta sama
,,rzeczywistość" jest opisana różnymi, wzajemnie
sprzecznymi sposobami w różnych modelach

Równoważenie modeli



Równoważenie dotyczy:



diagramu przepływu danych ze słownikiem
danych



diagramu przepływu danych ze specyfikacją
procesu



specyfikacji procesu ze słownikiem danych



ERD z DFD i specyfikacjami procesów



ERD ze słownikiem danych



DFD z diagramem sieci przejść

Równoważenie DFD ze słownikiem

danych



Reguły równoważenia diagramu przepływu
danych ze słownikiem danych są
następujące:



Każdy przepływ danych (tzn. strzałka na DFD)
i każdy magazyn danych musi być
zdefiniowany w słowniku danych. Jeśli brak go
w słowniku danych, przepływ danych lub
magazyn danych uznaje się za
niezdefiniowany

Równoważenie DFD ze słownikiem

danych



Odwrotnie, każdy element danych i każdy magazyn
danych zdefiniowany w słowniku danych musi
wystąpić gdzieś na DFD



Jeśli nie występuje, wadliwy element danych lub
magazyn danych jest "duchem" - czymś
zdefiniowanym lecz nie "używanym" w systemie



Może się tak zdarzyć, gdy zdefiniowane elementy
danych odpowiadają wcześniejszej wersji DFD



Niebezpieczeństwo polega na dokonanej zmianie DFD
(np. mógł zostać usunięty przepływ danych lub
magazyn danych) bez odpowiadającej jej zmiany w
słowniku danych

background image

Równoważenie DFD ze słownikiem

danych



Oznacza to, oczywiście, że analityk systemów
musi wnikliwie przejrzeć zarówno DFD, jak i
słownik danych, aby upewnić się, że są
zrównoważone ze sobą



Nie ma znaczenia, który model bada się
najpierw, lecz większość analityków rozpoczyna
od sprawdzenia, czy wszystkie elementy DFD są
zdefiniowane w słowniku danych

Równoważenie DFD ze specyfikacją

procesu



Reguły równoważenia DFD ze specyfikacjami
procesów:



Dla każdego procesu na DFD musi istnieć DFD
niższego poziomu albo specyfikacja procesu, lecz nie
obie te rzeczy. Jeśli DFD zawiera proces oznaczony
1.4.2, musi albo istnieć diagram oznaczony Diagram
1.4.2 z procesami 1.4.2.1, 1.4.2.2 itd., albo
specyfikacja strukturalna musi zawierać specyfikację
procesu 1.4.2. Jeśli istnieją obie te rzeczy, model jest
niepotrzebnie (i niebezpiecznie) nadmiarowy

Równoważenie DFD ze specyfikacją

procesu



Z każdą specyfikacją procesu musi być związany
proces najniższego poziomu na DFD



Ponieważ specyfikacje procesów wymagają wiele
pracy, wydaje się mało realne, aby w modelu
znajdowały się "bezdomne" specyfikacje
procesów



Tak jednak może się zdarzyć wówczas, gdy
specyfikacja procesu była napisana dla wstępnej
wersji DFD, a podczas jego ulepszania
wyeliminowano niektóre procesy z DFD

Równoważenie DFD ze specyfikacją

procesu



Wejścia i wyjścia muszą pasować



DFD pokazuje wchodzące i wychodzące
przepływy dla każdego procesu, jak też
połączenia z magazynami



Powinno to być widoczne także w specyfikacji
procesu. Oczekujemy więc zdań CZYTAJ (WEŹ,
POBIERZ lub innych podobnych czasowników)
odpowiadających każdemu wchodzącemu
przepływowi oraz ZAPISZ (lub WŁÓŻ,
WYŚWIETL itp.) dla każdego wychodzącego
przepływu

background image

Równoważenie specyfikacji procesów

z DFD i słownikiem danych



Reguły równoważenia specyfikacji
procesów z diagramem przepływu danych
i słownikiem danych można opisać
następująco:



Każde odwołanie do danych w specyfikacji
procesu musi spełniać jedną z
następujących reguł:

Równoważenie specyfikacji procesów

z DFD i słownikiem danych



pasuje do nazwy przepływu lub magazynu
danych połączonego z procesem
opisywanym specyfikacją, lub



jest terminem lokalnym, jawnie
zdefiniowanym w specyfikacji procesu, lub



występuje jako składnik w pozycji
słownika danych dla przepływu lub
magazynu danych połączonego z
procesem

Przykład



Fragment specyfikacji procesu

SPECYFIKACJA PROCESU 3.5:
OBLICZ WSPÓŁCZYNNIK G
*P i Q SĄ LOKALNYMI TERMINAMI NA WYNIKI POŚREDNIE*
P = 3.14156 * X

……

Q = 2.78128 * Y -13

……

WSPÓŁCZYNNIK-G = P * Q + 2

OBLICZ

WSPÓŁCZYNNIK

G

Z

Współczynnik G

Równoważenie specyfikacji procesów

z DFD i słownikiem danych



Elementy danych X i Y pojawiają się w
specyfikacji procesu pokazanej na poprzednim
slajdzie, ale nie występują jako dołączony
przepływ na DFD przedstawionym na rysunku



Jednak słownik danych, którego fragment
ilustruje kolejny slajd, wskazuje, że X i Y są
składnikami Z, a na rysunku widzimy, że Z jest
rzeczywiście przepływem danych połączonym z
procesem, możemy więc stwierdzić, że model
jest zrównoważony

background image

Równoważenie specyfikacji procesów

z DFD i słownikiem danych



Fragment słownika danych

X = * poziomy składnik czynnika frammis *

* jednostki: centymetry; zakres: 0 - 100 *

Y = * pionowy składnik czynnika frammis *

* jednostki: centymetry; zakres: 0 - 10 *

Z = * czynnik frammis, zdefiniowany przez

Dr. Frammisa * X + Y

Równoważenie słownika danych

z DFD i specyfikacjami procesów



Słownik danych jest spójny z resztą modelu, jeśli
spełnia następującą regułę:



Do każdej pozycji ze słownika danych musi istnieć
odwołanie ze specyfikacji procesu, DFD lub innej
pozycji słownika danych



Można wprawdzie argumentować, że słownik
danych powinien być budowany w taki sposób,
aby umożliwiał późniejsze rozszerzenia, tzn.
zawierał elementy zbędne obecnie, lecz które
mogą być przydatne w przyszłości

Równoważenie ERD z DFD

i specyfikacjami procesów



Diagram związków encji prezentuje
całkiem inny punkt widzenia systemu niż
diagram przepływu danych



Występują jednak pewne związki, które
muszą być zachowane, aby ogólny model
systemu był kompletny, poprawny i spójny

Równoważenie ERD z DFD

i specyfikacjami procesów



Każdemu magazynowi na DFD musi odpowiadać
na ERD typ obiektu, związek lub ich kombinacja
(tzn. asocjowany typ obiektu)



Jeśli na DFD występuje magazyn, który nie
pojawia się na ERD, to coś jest źle; podobnie,
jeśli obiekt lub związek z ERD nie występuje na
DFD



Nazwy obiektów na ERD i nazwy magazynów
danych na DFD muszą do siebie pasować

background image

Równoważenie ERD z DFD

i specyfikacjami procesów



Pozycje słownika danych muszą mieć

zastosowanie zarówno do modelu DFD, jak i

ERD



Dlatego pozycja słownika danych powinna

obejmować definicję obiektu na ERD i magazynu

na DFD



Oznacza to definicję słownikową następującej

postaci:

KLIENCI = {KLIENT}
KLIENT = nazwisko + adres + numer-telefonu +

...

Równoważenie ERD z DFD

i specyfikacjami procesów



Pozycje słownika danych w liczbie pojedynczej
(np. KLIENT) muszą opisywać znaczenie i
budowę pojedynczego egzemplarza ze zbioru
obiektów używanego (w liczbie pojedynczej) na
ERD i magazynu danych (w liczbie mnogiej) na
DFD



Pozycje słownika w liczbie mnogiej (np.
KLIENCI) opisują znaczenie i budowę zbioru
egzemplarzy

Równoważenie ERD z DFD

i specyfikacjami procesów



Istnieją również reguły gwarantujące, że ERD
jest spójny ze specyfikacjami procesów z modelu
funkcyjnego



Zbiór specyfikacji jako całość powinien spełniać
następujące wymagania:



Tworzyć i usuwać egzemplarze każdego typu
obiektu i związku, pokazanego na ERD



Ilustracja na DFD z kolejnego rysunku

Równoważenie ERD z DFD

i specyfikacjami procesów

background image

Równoważenie ERD z DFD

i specyfikacjami procesów



Magazyn KLIENCI odpowiada obiektowi KLIENT



Coś musi tworzyć i usuwać egzemplarze klienta, czyli
pewien proces na DFD musi mieć przepływ
dołączony do magazynu KLIENCI



Jednak aktualna czynność zapisu do magazynu (tzn.
tworzenia lub usuwania egzemplarza
odpowiadającego na ERD obiektowi KLIENT) musi
dokonywać się wewnątrz procesu, co oznacza, że
powinna być udokumentowana w specyfikacji tego
procesu

Równoważenie ERD z DFD

i specyfikacjami procesów



Jakiś proces powinien nadawać wartości
każdemu elementowi danych, będącemu
atrybutem egzemplarza każdego typu
obiektu, a jakiś proces powinien używać
(lub odczytywać) wartości każdego
elementu danych

Równoważenie DFD z diagramem

sieci przejść



Diagram stanów jest zrównoważony z
diagramem przepływu danych, jeśli są
spełnione następujące warunki:



Każdy proces sterujący na DFD ma jako
specyfikację diagram sieci przejść. Podobnie
każdy diagram sieci przejść w ogólnym
modelu systemu musi być powiązany z
procesem sterującym na DFD

Równoważenie DFD z diagramem

sieci przejść



Każdy warunek na diagramie sieci przejść
musi odpowiadać wchodzącemu
przepływowi sterującemu procesu
kontrolnego związanego z tym
diagramem. Podobnie każdemu
wchodzącemu przepływowi sterującemu
do procesu sterującego musi odpowiadać
określony warunek na właściwym
diagramie sieci przejść

background image

Równoważenie DFD z diagramem

sieci przejść



Każdej akcji z diagramu sieci przejść musi
odpowiadać wychodzący przepływ
sterujący z procesu sterującego
związanego z tym diagramem. Podobnie
każdy wychodzący z procesu kontrolnego
przepływ sterujący musi być związany z
odpowiednią akcją na diagramie sieci
przejść

Równoważenie DFD z diagramem

sieci przejść



Ilustruje to rysunek


Wyszukiwarka

Podobne podstrony:
Metody modelowania procesow 2012 cz II
Metody modelowania procesow 2012 cz III
Metody modelowania procesow 2012 cz I (1)
Metody modelowania procesow 2012 cz III
Analiza śladów genetycznych jako dowód w procesie karnym – cz II
Wykład 7, procesy poznawcze cz. II
Wykład 10, procesy poznawcze cz. II
Wykład 14, psychologia, II rok, procesy poznawcze cz. II
Proces Templariuszy Cz II
PROCESY POZNAWCZE - grudzien, psychologia, II rok, procesy poznawcze cz. II
Komputerowe modelowanie białek 2012, medycyna, II rok, biochemia, ćwiczenia
Wykład 12, procesy poznawcze cz. II
Procesy 1, procesy poznawcze cz. II
Thoracocenteza Metody wykonania i interpretacja wyników cz II

więcej podobnych podstron