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 * -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 * 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