Inżynieria oprogramowania - k.bartecki.po.opole.pl · Diagram Przepływu Danych (ang. Data Flow...
Transcript of Inżynieria oprogramowania - k.bartecki.po.opole.pl · Diagram Przepływu Danych (ang. Data Flow...
prowadzący: dr hab. inż. Krzysztof Bartecki, prof. PO
Inżynieria oprogramowania
wykład VI
Faza analizy
Analiza strukturalna – modelowanie procesów, słownik danych
Faza analizy systemowej – c.d.
Przypomnienie:
Celem tej fazy jest udzielenie odpowiedzi na pytanie: jak system ma
działać?
W wyniku fazy analizy otrzymujemy logiczny model systemu, opisujący
sposób realizacji przez system postawionych wymagań, lecz abstrahujący
jeszcze od szczegółów implementacyjnych.
K. Bartecki, Inżynieria oprogramowania, VI/2
Wymagania Projektowanie Implementacja Testowanie Konserwacja
Strategiczna Analiza Instalacja
Dokumentacja
K. Bartecki, Inżynieria oprogramowania, VI/3
Modelowanie procesów
Diagram Przepływu Danych
(ang. Data Flow Diagram, DFD)
● pokazuje, w jaki sposób dane przepływają w systemie oraz opisuje
procesy służące do przetwarzania tych danych,
● opisany jest za pomocą określonej notacji,
● zbudowany jest przy użyciu odpowiednich narzędzi CASE,
● bazuje na hierarchicznej dekompozycji funkcji systemu,
● używany jest do wnioskowania o przyszłym oprogramowaniu, .
● unika terminologii implementacyjnej.
K. Bartecki, Inżynieria oprogramowania, VI/4
Składniki diagramu DFD
● terminatory (obiekty zewnętrzne),
● procesy,
● magazyny (składnice) danych,
● przepływy danych.
Uwaga: w wykładzie przedstawiono notację graficzną Yourdona-
DeMarco (istnieją również inne notacje).
K. Bartecki, Inżynieria oprogramowania, VI/5
Terminator (ang. Terminator),
inna nazwa: Encja zewnętrzna (ang. External Entity)
● reprezentuje źródło lub miejsce przeznaczenia informacji, które jest
zewnętrzne w stosunku do sytemu,
● może być to np. osoba, dział urzędu, firma, inny system komputerowy,
maszyna, lub inny obiekt znajdujący się na zewnątrz systemu,
● nazwa terminatora, to rzeczownik w liczbie pojedynczej, np. KLIENT,
DZIAŁ SPRZEDAŻY, URZĄD SKARBOWY, DOSTAWCA.
TERMINATOR
K. Bartecki, Inżynieria oprogramowania, VI/6
Inne właściwości terminatora
● Jest obiektem generującym lub przyjmującym strumienie danych,
● przepływy łączące terminatory z różnymi składowymi modelu
reprezentują interfejsy pomiędzy systemem a światem zewnętrznym,
● leży poza zakresem odpowiedzialności projektowanego systemu,
● analityk/projektant systemu nie może zmieniać zawartości terminatora,
● w modelu DFD nie pokazuje się przepływów danych między
terminatorami, nawet jeśli takie w rzeczywistości istnieją.
K. Bartecki, Inżynieria oprogramowania, VI/7
Proces (ang. Process)
● realizuje transformację danych wejściowych w dane wynikowe –
odpowiada tym składnikom systemu, które przetwarzają dane,
● otrzymuje i przesyła dane za pośrednictwem przepływów danych,
● kojarzy się z procedurą, której specyfikacja może być przedstawiona
przy użyciu innych technik strukturalnych,
● nazwa procesu, to rzeczownik odczasownikowy + dopełnienie, np.
WYSTAWIENIE FAKTURY, PRZYJĘCIE TOWARU, OBLICZENIE
PŁAC,
● dla celów porządkowych proces może być oznaczony numerem.
PROCES
K. Bartecki, Inżynieria oprogramowania, VI/8
Magazyn danych (ang. Data store)
● reprezentuje miejsce, w którym przez pewien czas określone dane są
przechowywane,
● jest dostępny tylko dla procesów, tzn. nie może być połączony
bezpośrednio z terminatorem lub z innym magazynem,
● istnienie magazynu danych w diagramie ma sens, gdy
przechowywane dane służą do realizacji co najmniej dwóch procesów,
z których jeden zapisuje w magazynie dane, a drugi je odczytuje,
● nazwa magazynu danych to rzeczownik w liczbie mnogiej, np.
klienci, faktury, towary, studenci, grupy, pracownicy,
● nazwy magazynów, takie jak rejestr faktur, archiwum zleceń, baza
pojazdów nie są zalecane, lepiej po prostu: faktury, zlecenia, pojazdy.
● dla celów porządkowych magazyn danych może być oznaczony
numerem.
magazyn
danych
K. Bartecki, Inżynieria oprogramowania, VI/9
Cel istnienia magazynu
Umożliwienie przechowywania danych w sytuacji, gdy:
● dane są używane nie od razu po wytworzeniu,
● dana jest kilkakrotnie odczytywana,
● dane są używane w innej kolejności niż były wytworzone.
Przykład:
podania
SKŁADANIE
PODAŃ
ROZPATRYWANIE
PODAŃ
K. Bartecki, Inżynieria oprogramowania, VI/10
Inne właściwości magazynu danych
● Przepływ wychodzący z magazynu interpretowany jest jako odczyt (R)
zawartej w nim informacji,
● przepływ do magazynu interpretowany jest jako zapis (C), modyfikacja
(U) lub usunięcie (D) danych z magazynu,
zamówienie
zamówienia
Realizacja
najstarszego
zamówienia
klient
klienci
Rejestracja
klienta
K. Bartecki, Inżynieria oprogramowania, VI/11
Inne właściwości magazynu danych – c.d.
● jeśli przepływ reprezentujący operację na magazynie nie ma
etykiety, oznacza to, że operacja ta dotyczy wielu/wszystkich pakietów
danych (np. odczytywane są wszystkie rekordy zapisane w magazynie),
● jeśli etykieta na przepływie jest taka sama jak na magazynie, ale w
liczbie pojedynczej, oznacza to, że operacja dotyczy pojedynczego
wystąpienia pakietu (jednego rekordu),
zamówienia
Sortuj
zamówienia
zamówienie
zamówienia
Realizacja
najstarszego
zamówienia
K. Bartecki, Inżynieria oprogramowania, VI/12
Inne właściwości magazynu danych – c.d.
● jeśli etykieta (etykiety) przepływu jest inna niż nazwa magazynu,
oznacza to, że pobierany jest jeden (lub więcej) fragmentów jednego lub
większej liczby pakietów:
● zawartość magazynu nie ulega zmianie w wyniku odczytu – z magazynu
pobierana jest kopia pakietu, a stan magazynu pozostaje bez zmiany.
zrealizowane
zamówienia
zmiana
statusu
zamówienia
data zamówienia
zamówienia
policz
dzisiejsze
zamówienia
K. Bartecki, Inżynieria oprogramowania, VI/13
Przepływ danych (ang. Data flow)
● opisuje strumień danych o określonej zawartości, przepływający
pomiędzy dwoma składnikami DFD:
– terminatorem a procesem (lub odwrotnie),
– procesem a innym procesem,
– procesem a magazynem danych (lub odwrotnie).
● nazwa przepływu to rzeczownik w liczbie pojedynczej – np.
kwestionariusz osobowy, umowa, faktura dla klienta, potwierdzenie
transakcji.
przepływ
danych
K. Bartecki, Inżynieria oprogramowania, VI/14
Inne właściwości przepływu danych
● Przepływ danych nie odpowiada na wiele pytań proceduralnych, np.:
– kiedy wchodzi do procesu,
– czy jest wynikiem zapytania systemu,
– czy istnieje jakaś współzależność pomiędzy przepływem
wchodzącym a wychodzącym,
● jeśli przekazywana jest informacja zwrotna, można używać kolejnych
linii lub strzałek dwukierunkowych.
PRZYJMOWANIE
WNIOSKÓW
wniosek
potwierdzenie
PRZYJMOWANIE
WNIOSKÓW
wniosek
potwierdzenie
K. Bartecki, Inżynieria oprogramowania, VI/15
PRZYJĘCIE
ZAMÓWIENIA
zamówienie
nazwisko
i adres klienta
potwierdzenie
zamówienia
błędne
zamówienie
przepływy
wejściowe przepływy
wyjściowe
proces
adres dostawy
prośba o
potwierdzenie
zamówienie
do realizacji
K. Bartecki, Inżynieria oprogramowania, VI/16
Przykład przepływu rozbieżnego
(te same dane dostarczane są do kilku różnych procesów)
K. Bartecki, Inżynieria oprogramowania, VI/17
Przykład przepływu rozbieżnego
(pakiet danych dzielony jest na kilka różnych składowych)
K. Bartecki, Inżynieria oprogramowania, VI/18
Przykłady różnych notacji stosowanych na diagramach DFD
nazwa Yourdon-
DeMarco Gane-
Sarson SSADM
terminator
przepływ
danych
KLIENT KLIENT
KLIENT
KLIENT
terminator
powtórzony
faktura faktura faktura
K. Bartecki, Inżynieria oprogramowania, VI/19
proces
magazyn
danych
1
KALKULACJA
CEN
KALKULACJA
CEN KALKULACJA
CEN
1
KALKULACJA
CEN
1
KALKULACJA
CEN *
faktury faktury
faktury D1
faktury D1
magazyn
powtórzony
proces elementarny
proces wielokrotny
K. Bartecki, Inżynieria oprogramowania, VI/20
Błędne konstrukcje na diagramach DFD
Typowe błędy przy tworzeniu diagramów DFD wynikają z:
● użycia niewłaściwych nazw dla składników diagramu,
● niewłaściwego łączenia komponentów,
● użycia procesów „duchów” i procesów „studni”,
● niewłaściwego bilansowania przepływów w przypadku dekompozycji,
● niezgodności diagramu przepływu danych z diagramem związków
encji.
K. Bartecki, Inżynieria oprogramowania, VI/21
Błędne nazwy składników diagramu
Cel
drukowanie
raporu
rocznego
raport roczny Szef
drukowanie
raporu
rocznego
raport roczny
Klient rejestracja
danych wprowadzanie danych Klient
rejestracja
danych infomacja o kliencie
Niewłaściwa nazwa terminatora
Niewłaściwa nazwa przepływu danych
K. Bartecki, Inżynieria oprogramowania, VI/22
Kontrahent Kowalski dane kontrahenta Kontrahent przygotowanie
umowy dane kontrahenta
rejestracja
p łatności FV 345/2004 termin zap łaty
rejestracja
p łatności faktury termin zap łaty
Niewłaściwa nazwa procesu
Niewłaściwa nazwa magazynu danych
K. Bartecki, Inżynieria oprogramowania, VI/23
Niewłaściwe łączenie komponentów
Niedopuszczalne połączenie
dwóch terminatorów
Niedopuszczalne połączenie dwóch magazynów
Dostawca Klient
Niedopuszczalne połączenie
terminatora z magazynem
Kontrahent Towary faktura zakupu
faktury klienci
K. Bartecki, Inżynieria oprogramowania, VI/24
Procesy „duchy” i procesy „studnie”
rejestracja
zam ówień zamówienie klienta
oferta
tworzenie rejestru
sprzeda ży
rejestr sprzeda ży
Proces bez przepływów
wyjściowych („studnia”)
Proces bez przepływów
wejściowych („duch”)
K. Bartecki, Inżynieria oprogramowania, VI/25
Dekompozycja procesów – diagramy hierarchiczne
Umieszczenie na jednym poziomie wszystkich procesów skutkowałoby
powstaniem nieczytelnego diagramu ze zbyt dużą liczbą procesów,
przepływów, magazynów danych.
Z tego względu modelowanie przepływów danych polega zazwyczaj na
stworzeniu hierarchicznej, wielopoziomowej grupy diagramów DFD.
K. Bartecki, Inżynieria oprogramowania, VI/26
W skład hierarchicznego DFD wchodzą
następujące poziomy diagramów:
● diagram kontekstowy – definiujący zakres i granice systemu,
● diagram systemowy (diagram poziomu zerowego) – pokazujący
główne funkcje systemu,
● diagramy szczegółowe (procesów elementarnych) – ukazujący
podział głównych procesów systemu, rozłożonych na podprocesy:
– diagramy poziomu 1,
– ew. diagramy poziomu 2,
itd.
K. Bartecki, Inżynieria oprogramowania, VI/27
Diagram kontekstowy
● to szczególny przypadek DFD, na którym cały modelowany system
reprezentowany jest przez pojedynczy proces,
● diagram ten ma na celu przedstawienie powiązań systemu ze
środowiskiem zewnętrznym (terminatorami),
● system powiązany jest z terminatorami za pomocą przepływów
danych,
● z lub do danego terminatora może wypływać/wpływać bardzo wiele
różnych przepływów, dlatego dla większej czytelności diagramu,
dopuszcza się powielanie terminatorów.
K. Bartecki, Inżynieria oprogramowania, VI/28
Przykładowy diagram kontekstowy
K. Bartecki, Inżynieria oprogramowania, VI/29
Przykładowy diagram kontekstowy
K. Bartecki, Inżynieria oprogramowania, VI/30
Przykładowy diagram kontekstowy
K. Bartecki, Inżynieria oprogramowania, VI/31
Diagram systemowy (zerowego poziomu)
● przedstawia główne funkcje, kluczowe dla modelowanego systemu,
● stanowi najbardziej ogólne spojrzenie na „wnętrze” systemu,
● zawiera kilka procesów (2-8), terminatory oraz magazyny danych.
K. Bartecki, Inżynieria oprogramowania, VI/32
Przykładowy diagram kontekstowy (po lewej)
oraz odpowiadający mu diagram systemowy (po prawej)
K. Bartecki, Inżynieria oprogramowania, VI/33
Przykładowy diagram kontekstowy (u góry)
oraz odpowiadający mu diagram systemowy (na dole)
K. Bartecki, Inżynieria oprogramowania, VI/34
Przykładowy diagram systemowy
K. Bartecki, Inżynieria oprogramowania, VI/35
Diagramy szczegółowe
● przedstawiają procesy, na które dekomponowany („rozkładany”) jest
każdy z procesów diagramu systemowego,
● proces o numerze 1. z diagramu systemowego dekomponowany jest
na podprocesy o numerach 1.1, 1.2, 1.3, itd., proces 2. – na
podprocesy 2.1, 2.2, 2.3, itd.,
● na kolejnym poziomie dekompozycji proces 1.1 może być rozłożony na
podprocesy 1.1.1, 1.1.2, itd.,
● dekompozycję prowadzi się tak długo, aż otrzymamy procesy
elementarne.
K. Bartecki, Inżynieria oprogramowania, VI/36
DK
1 2 3
1.1 1.2 3.1 3.2 3.3
1.2.1 1.2.2
Przykładowa hierarchia diagramów przepływu danych
K. Bartecki, Inżynieria oprogramowania, VI/37
Przykładowy diagram systemowy (po lewej)
oraz diagram pierwszego poziomu dla procesu 1.0 (po prawej)
K. Bartecki, Inżynieria oprogramowania, VI/38
Zasady tworzenia diagramów wielopoziomowych
● Prosty system powinien mieć nie więcej niż 2-3 poziomy, średni 3-5
poziomów, duży do 8 poziomów,
● liczba procesów na jednym diagramie nie powinna być większa
niż 6-8,
● nie wszystkie procesy muszą być rozwijane do tej samej liczby
poziomów (różny stopień złożoności),
● obiekty, które łączą się z dekomponowanym procesem za pomocą
przepływów (terminatory, magazyny, inne procesy) muszą wystąpić
na poziomie niższym,
● diagramy powinny być zbalansowane (zrównoważone).
K. Bartecki, Inżynieria oprogramowania, VI/39
Metody rozwijania hierarchicznych DFD
są analogiczne, jak w przypadku tworzenia hierarchii wymagań
funkcjonalnych (patrz wykład 4):
● „z góry na dół” (top-down),
● „z dołu do góry” (bottom-up),
● mieszane.
W metodzie „z góry na dół” rozpoczynamy budowę od diagramu
kontekstowego i drogą kolejnych uszczegółowień (dekompozycji)
procesów dochodzimy do rozwiązania końcowego w postaci procesów
atomowych (elementarnych).
W metodzie „z dołu do góry” najpierw tworzy się listę niezależnych
procesów, które nie będą dalej dekomponowane. Następnie grupuje się je
do postaci procesów wyższego rzędu, aż do otrzymania diagramu
kontekstowego.
K. Bartecki, Inżynieria oprogramowania, VI/40
Bilansowanie (równoważenie) diagramów DFD
● Hierarchiczne diagramy DFD powinny być zbilansowane, czyli
zrównoważone względem kolejnych poziomów dekompozycji,
● wszystkie przepływy, które pojawiły się na diagramie poziomu
wyższego, powinny się znaleźć na diagramie poziomu niższego,
● na niższym poziomie pojawiają się dodatkowe przepływy pomiędzy
pomiędzy nowymi procesami, które pojawiły się w wyniku
dekompozycji procesów wyższego poziomu, ewentualnie także
między procesami i lokalnymi magazynami danych danego
procesu.
K. Bartecki, Inżynieria oprogramowania, VI/41
Równoważenie diagramu DFD
a b
c
a
b
c
d e
f
d
e f
K. Bartecki, Inżynieria oprogramowania, VI/42
Równoważenie diagramu DFD
K. Bartecki, Inżynieria oprogramowania, VI/43
Równoważenie diagramu przepływu danych (DFD)
względem diagramu związków encji (ERD)
● Każdy magazyn danych na DFD musi odpowiadać encji na ERD,
● nazwy encji na ERD oraz nazwy magazynów danych na DFD muszą
sobie odpowiadać (np. encja: KLIENT, magazyn danych: KLIENCI),
● jeżeli są na diagramie DFD magazyny danych nie mające swojego
odpowiednika na diagramie ERD, model należy poprawić.
● jeżeli są na diagramie ERD encje nie mające swojego odpowiednika
na diagramie DFD, model należy poprawić,
● na diagramie DFD powinny istnieć procesy, realizujące operacje
tworzenia, odczytu oraz usuwania instancji każdej z encji (rekordu,
elementu magazynu danych).
K. Bartecki, Inżynieria oprogramowania, VI/44
Specyfikacja procesów
● stanowi algorytmiczną definicję procesu, czyli opisuje, co dzieje się
wewnątrz procesu w celu przekształcenia danych wejściowych
w dane wyjściowe,
● tworzona jest dla procesów elementarnych (atomowych), czyli dla
procesów na najniższym poziomie diagramu przepływu danych,
● stanowi możliwie precyzyjny i jednoznaczny opis czynności
wykonywanych przez proces,
● istnieje wiele sposobów specyfikowania procesów, np.
– opis w języku strukturalnym (tzw. pseudokod),
– opis warunków zachodzących przed i po wykonaniu procesu,
– drzewo lub tablica decyzyjna,
– wzory matematyczne.
K. Bartecki, Inżynieria oprogramowania, VI/45
Przykład specyfikacji procesu w formie pseudokodu
K. Bartecki, Inżynieria oprogramowania, VI/46
Przykład specyfikacji procesu w formie pseudokodu
GET potwierdzenie wykonania FROM TERMINATOR Serwisanci AS potwierdzenie
IF (potwierdzenie)
{
SEND wysłanie rachunku TO TERMINATOR Klienci
SET data ostatniego przeglądu AS aktualna data
SAVE data ostatniego przeglądu TO STORE Przeglądy
SET status wykonania AS wykonane
SAVE status wykonania TO STORE Zlecenia
}
1.3
POTWIERDZENIE
WYKONANIA
SERWISANCI
KLIENCI
Zlecenia
Przeglądy
potwierdzenie
wykonania
wysłanie
rachunku
status
wykonania
data ostatniego
przeglądu
K. Bartecki, Inżynieria oprogramowania, VI/47
Przykład specyfikacji procesu w formie pseudokodu
IF (data systemowa > 27 danego miesiąca)
{
FOR Serwisanci
{
DO
{
FIND (Serwisant, data realizacji, status) FROM STORE Zlecenia
IF (data realizacji = bieżący miesiąc AND status = wykonane)
}
WHILE TRUE
}
SEND raport TO TERMINATOR Kierownictwo
1.5
TWORZENIE
RAPORTÓW
KIEROWNICTWO
Zlecenia raport
K. Bartecki, Inżynieria oprogramowania, VI/48
Przykład specyfikacji procesu w formie opisu warunków
zachodzących przed i po wykonaniu procesu
K. Bartecki, Inżynieria oprogramowania, VI/49
Przykład specyfikacji procesu w formie tablicy i drzewa
K. Bartecki, Inżynieria oprogramowania, VI/50
Macierz CRUD
jest tabelą, odwzorowującą związki pomiędzy procesami a magazynami
danych lub pomiędzy procesami a danymi elementarnymi.
Nazwa macierzy pochodzi od pierwszych liter operacji wykonywanych
przez procesy na magazynach lub elementach danych:
C – Create, w przypadku zapisu danych,
R – Read, w przypadku odczytu danych,
U – Update, w przypadku modyfikacji danych,
D – Delete, w przypadku usuwania danych.
K. Bartecki, Inżynieria oprogramowania, VI/51
● Nagłówkami kolumn macierzy CRUD są nazwy procesów,
a nagłówkami wierszy – nazwy magazynów lub elementów danych,
natomiast na przecięciu kolumn i wierszy występują odpowiednie
litery oznaczające wykonywaną operację.
● Analizując zawartość macierzy można przeprowadzić dodatkową
kontrolę modelu pod kątem wykorzystania magazynów danych.
● Możliwe jest zarówno stworzenie jednej macierzy CRUD dla
wszystkich procesów (na wszystkich poziomach dekompozycji), jak
również oddzielnych macierzy dla poszczególnych poziomów.
● W praktyce magazyny danych najczęściej oznaczają tablice
relacyjnej bazy danych, w odniesieniu do których wykonywane są
standardowe instrukcje języka SQL:
– zapis (INSERT),
– odczyt (SELECT),
– aktualizacja (UPDATE),
– kasowanie (DELETE).
K. Bartecki, Inżynieria oprogramowania, VI/52
Przykładowa macierz CRUD
K. Bartecki, Inżynieria oprogramowania, VI/53
Przykładowa macierz CRUD
K. Bartecki, Inżynieria oprogramowania, VI/54
Przykładowy diagram DFD – System rejestracji studentów
Diagram kontekstowy
K. Bartecki, Inżynieria oprogramowania, VI/55
Diagram systemowy (zerowego poziomu)
K. Bartecki, Inżynieria oprogramowania, VI/56
Diagram szczegółowy (pierwszego poziomu) dla procesu 4.
K. Bartecki, Inżynieria oprogramowania, VI/57
Przykładowy diagram DFD – diagram systemowy
K. Bartecki, Inżynieria oprogramowania, VI/58
Diagram pierwszego poziomu dla procesu 1.1
K. Bartecki, Inżynieria oprogramowania, VI/59
Diagram pierwszego poziomu dla procesu 1.2
K. Bartecki, Inżynieria oprogramowania, VI/60
Diagram pierwszego poziomu dla procesu 1.3
K. Bartecki, Inżynieria oprogramowania, VI/61
Diagram pierwszego poziomu dla procesu 1.4
K. Bartecki, Inżynieria oprogramowania, VI/62
Słownik danych
Nie jest możliwe zamodelowanie wymagań użytkownika bez
zdefiniowania danych występujących w systemie.
Dlatego oprócz diagramu związków encji (ERD) oraz diagramu
przepływu danych (DFD), w skład modelu strukturalnego wchodzi
również słownik danych (ang. data dictionary).
Słownik danych to szczegółowy, uporządkowany wykaz wszystkich
danych, występujących w projektowanym systemie.
K. Bartecki, Inżynieria oprogramowania, VI/63
Zawartość słownika danych
W słowniku danych opisywane są:
● pakiety danych przenoszonych przez przepływy na diagramach DFD,
● pakiety danych zawartych w magazynach na diagramach DFD,
odpowiadających encjom z diagramu ERD, wraz i ich atrybutami.
K. Bartecki, Inżynieria oprogramowania, VI/64
Pełna definicja elementu danych powinna określać:
● znaczenie elementu danych w kontekście aplikacji użytkownika, na
ogół w formie komentarza,
● budowę elementu danych,
● zbiór wartości, jakie może przyjmować element danych, w przypadku
danych elementarnych, czyli niepodlegających dekompozycji.
Słownik danych powstaje na etapie analizy wymagań dotyczących
systemu, nie zaś na etapie projektowania fizycznej implementacji.
Dlatego uwzględnia on istnienie elementów danych, a nie ich postać
fizyczną – np. pensja to siedem cyfr dziesiętnych z dwoma miejscami
po przecinku.
K. Bartecki, Inżynieria oprogramowania, VI/65
Notacja słownika danych
Istnieje wiele różnych notacji słownika danych, ale jednym
z najprostszych i najpopularniejszych jest schemat składający się
z następujących operatorów:
= jest złożony z
+ i
() element opcjonalny
{} element powtarzalny (iteracja)
[ ] wybór z możliwości alternatywnych
| rozdzielenie możliwości alternatywnych
** początek i zakończenie komentarza
(tzw. minispecyfikacji elementu danych)
@ identyfikator
K. Bartecki, Inżynieria oprogramowania, VI/66
Fragment przykładowego słownika danych
cyfra = [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ]
litera = [a...z | A...Z]
znak = [! | @ | # | $ | % | & | * | ( | ) | _ | + | - | = | { | } | [ | ] | „
| ; | ‘ | < | > | , | . | ? | / | ^ ]
Dostawca = @Id_dostawcy + Nazwa + Adres + (e-mail) + Telefon +
Osoba kontaktowa
@Id_dostawcy = 1{cyfra}8
** Nazwa = Nazwa firmy **
Nazwa = {litera}
** Adres = Adres firmy **
Adres = Ulica + Numer budynku + (Numer lokalu) + Kod + Miejscowość
Ulica = {litera}
Numer budynku = {cyfra} + (litera)
Numer lokalu = {cyfra} + (litera)
K. Bartecki, Inżynieria oprogramowania, VI/67
Fragment przykładowego słownika danych – c.d.
** Kod = Kod pocztowy **
Kod = cyfra + cyfra + znak - + cyfra + cyfra + cyfra
Miejscowość = {litera}
e-mail = {litera + (znak . | znak _)} + znak @ + {litera + (znak . | znak _)}
Telefon = (znak ( + {cyfra} + znak )) + {cyfra}
** Osoba kontaktowa = Osoba odpowiedzialna za kontakty z obsługą systemu **
Osoba kontaktowa = Imię + (Drugie imię) + Nazwisko
Imię = {litera}
Drugie imię = {litera}
Nazwisko = {litera}
Cena towaru = Id towaru + Cena netto + VAT + Ilość dla upustu + Upust + Data
ważności
** Id towaru = Identyfikator towaru, którego dotyczy kalkulacja ceny **
Id towaru = {cyfra}
Cena netto = {cyfra} + znak , + cyfra + cyfra
K. Bartecki, Inżynieria oprogramowania, VI/68
Fragment przykładowego słownika danych – c.d.
** VAT = Wielkość podatku VAT naliczanego dla danego towaru **
VAT = {cyfra}
**Ilość dla upustu = Minimalna liczba sztuk towaru gwarantująca upust cenowy**
Ilość dla upustu = {cyfra}
** Upust = Wartość określająca, o ile procent zmniejszy się cena w przypadku
upustu **
Upust = {cyfra}
** Data ważności = Data końcowa obowiązywania kalkulacji cenowej dla danego
towaru w formacie dd-mm-rrrr **
Data ważności = cyfra + cyfra + znak - + cyfra + cyfra + znak - + cyfra +
cyfra + cyfra + cyfra
K. Bartecki, Inżynieria oprogramowania, VI/69
Przykładowa lista elementów danych modelu encji w programie PowerDesigner