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