Modelowanie danych cz1


Plan Wykładów
Metodyka budowy systemu informatycznego
Modelowanie danych i projektowanie bazy danych
PROJEKTOWANIE SYSTEMÓW
" Model związków encji
INFORMATYCZNYCH " Metodyka budowy diagramów związków encji (ERD)
" Projektowanie struktur logicznych i fizycznych bazy danych
Modelowanie funkcji
" Model funkcjonalny, dekompozycja funkcji, zdarzenia
" Diagramy hierarchii funkcji (FHD)
Modelowanie przepływów danych
Maciej Zakrzewicz " Diagramy przepływów danych (DFD)
" Powiązania funkcji z danymi
Instytut Informatyki
Modelowanie procesów
Politechnika Poznańska
" Procesy, przepływy, magazyny, wyzwalacze
(c) 1995-2002 M.Zakrzewicz,M.Matysiak Instytut Informatyki, Politechnika Poznańska
(c) WNT, Richard Barker, CASE*Method, 1996
CASE*Method Koszt zmiany
Ogólny model pojęciowy systemu
(Analityk systemowy)
STRATEGIA STRATEGIA 10
Szczegółowy model pojęciowy systemu
ANALIZA ANALIZA 10
(Analityk systemowy)
Struktury logiczne i fizyczne danych i aplikacji
PROJEKTOWANIE PROJEKTOWANIE
(Projektant)
100
Baza danych i funkcjonalne aplikacje
IMPLEMENTACJA DOKUMENTACJA IMPLEMENTACJA DOKUMENTACJA
(Programista)
1000
Instalacja systemu u odbiorcy
WDROŻENIE WDROŻENIE
(Wdrożeniowiec, programista, szkoleniowiec)
10000
Użytkowanie, pielęgnacja, modyfikacje, usuwanie usterek
(Administrator, programista)
EKSPLOATACJA EKSPLOATACJA
100000
Projektowanie struktur danych
a projektowanie aplikacji
Modelowanie procesów
STRATEGIA
Modelowanie danych
MODELOWANIE DANYCH
(diagramy związków encji)
Modelowanie funkcji,
ANALIZA
modelowanie przepływów danych
DIAGRAMY ZWIZKÓW ENCJI
Transformacja modelu danych Projektowanie modułów
PROJEKTOWANIEaplikacyjnych
do modelu relacyjnego
Przygotowanie skryptów SQL Programowanie aplikacji
IMPLEMENTACJA DOKUMENTACJA
Budowa struktur logicznych Instalacja aplikacji na sprzęcie
WDROŻENIE
i fizycznych bazy danych odbiorcy
EKSPLOATACJA
Cel modelowania danych Modelowanie związków encji
" Otrzymanie dokładnego modelu potrzeb informacyjnych
Modelowanie związków encji obejmuje identyfikowanie rzeczy
przedsiębiorstwa
ważnych w analizowanym przedsiębiorstwie (encji), własności tych
" Dekompozycja i strukturalizacja problemu
rzeczy (atrybutów) i sposobów, jakimi te encje są ze sobą
" Sformalizowanie opisu z wykorzystaniem języka graficznego -
powiązane (związków)
jednoznaczność i czytelność
" Mechanizm efektywnej komunikacji pomiędzy analitykiem i
użytkownikiem, pomiędzy analitykami systemu, a nawet pomiędzy
użytkownikami
" Poprawa jakości i efektywności projektowania bazy danych
" Opis danych niezależny od struktur logicznych i fizycznych
" Niezależność od implementacji pozwala na zastosowanie modelu do
integracji istniejących baz danych
" Podstawa do zrozumienia procesów realizowanych w
przedsiębiorstwie i jego reorganizacji
" Możliwość prezentacji potrzeb informacyjnych na różnym poziomie
ogólności
Encja Atrybuty encji
Encja (ang. entity) jest bytem, rzeczą lub obiektem mającym dla nas
Atrybut jest dowolnym szczegółem służącym do kwalifikowania,
znaczenie, rzeczywistym bądz wyobrażonym, o którym informacje
identyfikowania, klasyfikowania, określania ilości lub wyrażania stanu
muszą być znane lub przechowywane.
encji (atrybut jest dowolnym opisem mającym znaczenie dla encji)
NAZWA ENCJI
ENCJA-A
atrybut-1
" Nazwa encji powinna być podana w liczbie pojedynczej i zapisana wielkimi
atrybut-2
literami.
" Atrybut musi opisywać encję, przy której występuje
" Nazwa encji musi dokładnie reprezentować typ lub klasę rzeczy, a nie żadne
" Nazwa atrybutu musi być podana w liczbie pojedynczej
jej konkretne wystąpienie
" Każda encja musi być jednoznacznie zidentyfikowana przez kombinację
" Gdy w danym kontekście istnieją różne słowa będące nazwami tej samej
atrybutów i/lub związków
encji, można używać synonimów: jedną nazwę wybieramy jako główną,
natomiast synonimy wymieniamy poprzedzając je ukośnikiem
" Podanie przykładów pomaga zrozumieć istotę encji i odróżnić ją od
podobnych
PORT LOTNICZY/LOTNISKO
np. Heathrow
Przykład encji Obiekty materialne i niematerialne
Obiekty materialne
SAMOCHÓD
" pracownik, samochód,
Jan Kowalski marka
numer_fabryczny
budynek, produkt, itp.
ul. Garbary 13
prędkość_maksym
zużycie_paliwa
tel. 555 25 52
grupa
ZAWODNIK
pracowników
administracyjnych GRUPA PRACOWNICZA
Obiekty niematerialne
nazwa grupy
" konto bankowe,
Zdzisław Nowak
liczba pracowników
Imię
średnie wynagrodz.
zamówienie, grupa
MODELOWANIE
ul. Solna 58
dzień wypłaty
Nazwisko
pracownicza, itp.
tel. 555 11 33
Adres
Telefon
Byłem chory...
Oto zwolnienie
Zdarzenia
CHOROBA
lekarskie.
PRACOWNIKA
" choroba pracownika,
Stanisław Zieliński
data_rozpoczęcia
przyznanie nagrody, itp.
ul. Św. Marcin 82
data_zakończenia
rodzaj_choroby
tel. 555 93 86
ZAWODNIK
ZAWODNIK
ZAWODNIK
Jan
Fakty
Znam biegle
Jan
ZNAJOMOŚĆ
Jan
Kowalski język angielski!
JZYKA OBCEGO
" znajomość języka obcego,
Kowalski
Kowalski
ul. Garbary 13
nazwa_języka
ul. Garbary 13 stan magazynowy
ul. Garbary 13
stopień_znajomości
555 25 52
555 25 52
produktu, itp.
wystąpienia encji: 555 25 52
Związek Przykład związku
Związek jest nazwanym, istotnym powiązaniem istniejącym między
Jan Kowalski
posiada Ford
dwiema encjami.
jest własnością
nazwa
Zdzisław Nowak
Opel
nazwa
posiada
Stanisław Zieliński jest własnością
" W szczególnym przypadku związek może być powiązaniem tej samej encji
ze sobą
" Każdy związek ma dwa końce, z których każdy ma przypisaną:
MODELOWANIE
" nazwę
" stopień
" opcjonalność
jest własnością
" Nazwy związku powinny być tak dobierane, aby możliwe było budowanie
PRACOWNIK SAMOCHÓD
posiada
zdań w języku naturalnym, np. pracownik posiada samochód
Własności związków Stopień asocjacji związków 1:N
Firma realizuje projekty zlecone przez różnych klientów. Dany projekt wykonywany jest dla jednego
Jan Kowalski
posiada Ford
konkretnego klienta, a dany klient może zlecić wykonanie wielu projektów.
PRACOWNIK
jest własnością
posiada
Projekt Alfa
zlecił
Zdzisław Nowak
wykonany dla wykonanie Klient X
Opel
PROJEKT
jest własnością
posiada
Stanisław Zieliński jest własnością został
Projekt Beta
SAMOCHÓD
Klient Y
zlecił
wykonany dla
wykonany dla
wykonanie
zlecił wykonanie
Projekt Gamma
Wiemy, że:
zlecił
Klient Z
wykonanie
Istnieją powiązania pomiędzy obiektami typu PRACOWNIK i SAMOCHÓD. KLIENT
wykonany dla
Chcemy wiedzieć:
" Ile samochodów może posiadać pracownik? Ilu pracowników może być
właścicielami jednego samochodu ? Interpretacja związku "jeden do wielu":
" Każdy projekt może być wykonywany tylko dla jednego klienta.
" Czy każdy pracownik musi posiadać samochód? Czy musimy znać właściciela
" Każdy klient może zlecić wykonanie jednego lub wielu projektów.
każdego samochodu?
" Czy dany samochód może stać się własnością innego pracownika?
Jakiej użyć notacji ?
Stopień asocjacji związków M:N Stopień asocjacji związków 1:1
Projekty są realizowane przez pracowników. Każdy projekt jest realizowany przez jednego lub wielu
Działy firmy kierowane są przez pracowników. Dany dział może być kierowany tylko przez jednego
pracowników. Każdy pracownik może brać udział w realizacji jednego lub wielu projektów.
pracownika (kierownika działu), a dany pracownik może kierować nie więcej niż jednym działem.
Kowalski Projekt Alfa
Kowalski
bierze udział w
Celińska kieruje
Celińska DZIAA
kierowany
PROJEKT
przez Dział
Sprzedaży
realizowany
bierze udział w
jest kierowany
jest realizowany Nowicki
przez
Nowicki
przez
przez
Nowak
Nowak
Projekt Beta
bierze udział w kieruje
bierze udział w Zieliński
kierowany Dział
kieruje przez Księgowości
Zieliński PRACOWNIK
realizowany PRACOWNIK
przez
bierze udział w
Interpretacja:
Interpretacja związku "wiele do wielu":
" Każdy pracownik może kierować jednym działem.
" Każdy pracownik może brać udział w jednym lub wielu projektach.
" Każdy dział może być kierowany przez jednego pracownika.
" Każdy projekt może być realizowany przez jednego lub wielu pracowników.
Opcjonalność i obowiązkowość związków Opcjonalność i obowiązkowość związków
Dwustronna obowiązkowość Dwustronna opcjonalność
Celińska Opcjonalność w świecie rzeczywistym:
posiada
Firma posiada samochody dostawcze. Dla Każdy pracownik może (ale nie musi)
Ford
" Nie każdy pracownik posiada samochód.
każdego samochodu musimy znać dane dotyczące posiadać stopień naukowy oraz istnieją
jest własnością
" Często nie wiemy czy pracownik posiada
ostatniego przeglądu technicznego. Każdy stopnie naukowe, które nie muszą być zdobyte
samochód.
Kowalski Opel
przegląd techniczny, o którym przechowujemy przez żadnego z pracowników firmy.
jest własnością
informacje, musi dotyczyć jednego z samochodów
Obowiązkowość w świecie rzeczywistym:
firmy.
posiada
" Każdy samochód (o którym chcemy
Nowak Fiat
jest własnością
przechowywać informacje) musi być
własnością określonego pracownika.
zdobyty
dotyczy
przez
SAMOCHÓD PRZEGLD STOPIEC
PRACOWNIK
posiada posiada
DOSTAWCZY TECHNICZNY NAUKOWY
jest własnością
PRACOWNIK SAMOCHÓD
posiada
Interpretacja:
Interpretacja:
" Każdy pracownik może posiadać jeden
" Każdy samochód dostawczy musi
stopień naukowy.
posiadać jeden lub wiele przeglądów
Interpretacja związku jednostronnie obowiązkowego:
" Każdy stopień naukowy może zostać
technicznych.
" Każdy pracownik może posiadać jeden lub więcej samochodów.
zdobyty przez jednego lub wielu
" Każdy przegląd techniczny musi
" Każdy samochód musi być własnością jednego pracownika.
pracowników.
dotyczyć jednego konkretnego
samochodu.
Hierarchia encji Hierarchia encji
Dziedziczenie związków
Dziedziczenie atrybutów
Każdy pracownik jest zatrudniony na określonym stanowisku w jednym z działów firmy.
Firma zatrudnia pracowników krajowych i zagranicznych. Wszyscy pracownicy opisani są pewnymi
W odniesieniu do pracowników krajowych, chcemy wiedzieć, w jakich zakładach pracy byli
wspólnymi atrybutami, ale zarówno pracownicy krajowi i zagraniczni posiadają atrybuty specyficzne.
poprzednio zatrudnieni.
Hierarchia encji
DZIAA
John Smith
ul. Malinowa 14/7
" Związki: zatrudniony w
Jan Kowalski państwo: Holandia
ul. Długa 23 nr paszportu: X485674345
i zatrudniony na, dotyczą
zatrudnia
nr dow.osob.: WL8034567 STANOWISKO
pracowników krajowych
i zagranicznych.
obsadzone przez
" Związek pracował w jest
zatrudniony
specyficzny dla pracowników
w zatrudniony na
krajowych.
pracownicy krajowi pracownicy zagraniczni
PRACOWNIK
generalizacja
PRACOWNIK pracował w ZAKAAD PRACY
Hierarchia encji
PRACOWNIK
KRAJOWY
zatrudniał
Własności hierarchii encji: imię
specjalizacje
nazwisko
" Specjalizacje dziedziczą wszystkie atrybuty
PRACOWNIK
adres
wspólne
ZAGRANICZNY
atrybuty generalizacji.
PRACOWNIK KRAJOWY
" Każde wystąpienie generalizacji jest
atrybuty nr_dowodu_osob
zawsze wystąpieniem jednej ze specyficzne
specjalizacji. PRACOWNIK ZAGRANICZNY
Własności hierarchii encji:
państwo
" Specjalizacje dziedziczą wszystkie związki generalizacji
nr_paszportu
Hierarchia encji bez specyficznych Własności atrybutów
atrybutów - łuk - ograniczenia integralnościowe
Chcemy przechowywać opis każdej dokonanej naprawy dotyczącej środków trwałych i elementów
Dziedzina wartości
wyposażenia. Opis naprawy w obu przypadkach jest podobny.
" Ograniczenie, jakiego typu i z jakiego przedziału wartości mogą być przyjmowane przez dany
atrybut
" Notacja: nazwa_projektu - VARCHAR2(25) wynagrodzenie - NUMBER(8,2)
NAPRAWA
Obligatoryjność
atrybuty
" Encje NAPRAWA ŚRODKA TRWAA i
" Ograniczenie, że dla wszystkich wystąpień encji, wartości danego atrybutu muszą być określone
NAPRAWA dotyczy ŚRODEK TRWAAY
NAPRAWA WYPOSAŻENIA nie
SRODKA TRWAA. " Notacja: * nazwisko o drugie_imię (opcjonalność)
posiadają specyficznych atrybutów.
NAPRAWA dotyczy ELEMENT " Specjalizacje posiadają wyłącznie
Jednoznaczny identyfikator
WYPOSAŻENIA WYPOSAŻENIA
specyficzne związki.
" Wartości atrybutu, lub kombinacji atrybutów, muszą być unikalne wśród wszystkich wystąpień encji
" Notacja: # symbol_projektu
Auk
Zawężenie dziedziny wartości
" Dodatkowe ograniczenie na wartości przyjmowane przez dany atrybut, definiowane za pomocą
Własności:
wyrażeń logicznych i odwołań do innych atrybutów
NAPRAWA dotyczy ŚRODEK
" Każde wystąpienie encji
" Przykłady: check( day(data_wypłaty) <> 'niedziela' ), check( data_zakończenia > data_rozpoczęcia )
TRWAAY
NAPRAWA musi być
powiązane albo ze środkiem
dotyczy ELEMENT Dynamika wartości
WYPOSAŻENIA trwałym, albo z elementem
" Ograniczenie na kolejność wartości przyjmowanych przez dany atrybut
wyposażenia
" Przykład: kawaler, żonaty, wdowiec
Własności związków
Jednoznaczny identyfikator encji
- ograniczenia integralnościowe
Każda encja musi być jednoznacznie identyfikowalna, aby każde
wystąpienie encji można było odróżnić od wszystkich innych wystąpień tej
encji. Jednoznacznym identyfikatorem może być atrybut, kombinacja
Związek obligatoryjny Związek opcjonalny
Obligatoryjność:
bierze
atrybutów, kombinacja związków lub kombinacja atrybutów i związków.
Ograniczenie, że wszystkie wystąpienia encji
PRACOWNIK zatrudniony w PRACOWNIK udział w
muszą posiadać wystąpienie danego związku
PROJEKT PROJEKT
Jednoznaczność: STAN
PRODUKT MAGAZYN Naturalne atrybuty identyfikujące
MAGAZYNOWY
# symbol projektu # symbol projektu
Wszystkie wystąpienia związku lub
dotyczy określa
Na jeden lub kilka rzeczywistych atrybutów
nazwa projektu # data rozpoczęcia
produktu ilość w lub
kombinacji związków muszą być unikalne
budżet nazwa projektu
nakładamy ograniczenie unikalności.
data rozpoczęcia budżet
w zbiorze wszystkich wystąpień encji
data zakończenia data zakończenia
Wzajemne wykluczanie (łuk):
ZAMÓWIONA dotyczy WYRÓB
POZYCJA
Ograniczenie, że każde wystąpienie encji
Sztuczny atrybut identyfikujący
dotyczy
może posiadać tylko jedno wystąpienie związku USAUGA
W przypadku gdy:
PRACOWNIK
spośród związków objętych łukiem
" liczba atrybutów zapewniających unikalność > 2,
# id_pracownika
" wartości atrybutu unikalnego mają duże rozmiary, imię
nazwisko
" często modyfikujemy wartości atrybutów unikalnych,
adres
Nieprzenaszalność:
ZAMÓWIENIE zawiera ZAMÓWIONA
telefon
do zbioru naturalnych atrybutów encji dodajemy sztuczny atrybut
POZYCJA
Uniemożliwia modyfikację
w ramach
pełniący rolę unikalnego identyfikatora.
raz określonego powiązania
Jednoznaczne identyfikatory w hierarchii
encji
Metody definiowania jednoznacznego
identyfikatora w hierarchii encji:
PRACOWNIK
" wiele jednoznacznych identyfikatorów na
# id_pracownika
najniższym poziomie
imię
" jeden jednoznaczny identyfikator na
nazwisko
METODYKA KONSTRUOWANIA
adres
najwyższym poziomie
PRACOWNIK KRAJOWY
DIAGRAMU ZWIZKÓW ENCJI
nr_dowodu_osob
Jednoznaczny identyfikator na poziomie
PRACOWNIK ZAGRANICZNY
generalizacji:
państwo
" Wspólne, naturalne atrybuty hierarchii encji,
nr_paszportu
" Atrybut sztuczny dodany na poziomie generalizacji,
" Kombinacje związków generalizacji,
" Kombinacje związków i atrybutów generalizacji.
Jednoznaczne identyfikatory na poziomie
Własności:
specjalizacji:
" Jednoznaczny identyfikator jest
" Dla każdej specjalizacji na najniższym poziomie
dziedziczony przez wszystkie
(liście hierarchii) definiujemy niezależnie
specjalizacje
jednoznaczne identyfikatory
" Umożliwia identyfikację
wystąpień wszystkich
specjalizacji
Atrybut czy encja ? Związek czy encja ?
Wyraznie wyeksponowane obiekty, opisane zbiorem informacji, w naturalny sposób
Problem: Czy dany fakt (nazwany z użyciem czasownika), dotyczący znanych już obiektów,
modelujemy jako encje.
jest związkiem łączącym określone encje, czy jest nową encją ?
Problem: Czy dana rzecz lub cecha, nazwana z użyciem rzeczownika, jest atrybutem Przykład 1:
opisującym encję, czy jest samodzielną encją ?
" Produkty przechowujemy w magazynach. Chcemy wiedzieć, w jakich magazynach
przechowywany jest dany produkt oraz, jakie produkty przechowujemy w danym
Atrybut traktujemy jako nową encję:
magazynie. Czy wystarczy związek wiele do wielu ?
1.Gdy sam jest opisany dodatkowymi informacjami;
PRODUKT ? MAGAZYN
2.Gdy chcemy pamiętać dynamiczny zbiór wartości tego atrybutu niezależnie od istnienia
# id_produktu przechowywany w # id_magazynu
opisywanego obiektu;
nazwa_prod nazwa_magaz
zawiera
3.Gdy stwierdzamy, że atrybut może dla jednego obiektu przyjmować wiele wartości. cena_sprzed adres_magaz
Przykład 2:
Przykłady:
" Pracownicy znają języki obce (modelowane jako encja). Opisz sytuację, w
" Pracownicy opisani m.in. numerem telefonu.
której wystarczy związek pomiędzy pracownikiem i językiem obcym oraz
" Opisz sytuację, w której numer telefonu będzie atrybutem pracownika i sytuację, w której
sytuację, w której potrzebna jest nowa encja
telefon będzie osobną encją.
" Pracownicy opisani są m.in. zajmowanym stanowiskiem.
PRACOWNIK ? JZYK OBCY
" Opisz sytuację, w której stanowisko będzie atrybutem pracownika i sytuację, w której
# id_pracownika zna # id_języka
stanowisko będzie osobną encją.
imię nazwa_języka
opanowany
" Samochody opisane są m.in. kolorem. nazwisko dodatek
przez
...
" Opisz sytuację, w której kolor będzie atrybutem samochodu i sytuację, w której kolor będzie
osobną encją.
Zamiast związku M:N wstawiamy nową encję gdy fakt modelowany związkiem
" Zamówienia opisane są m.in. danymi odbiorcy.
wymaga opisu za pomocą dodatkowych atrybutów (np. ilość danego w magazynie, stopień
" Opisz sytuację, w której dane odbiorcy będą atrybutami zamówienia i sytuację, kiedy odbiorca
znajomości języka)
będzie osobną encją.
Zastępowanie związku M:N encją Zastępowanie związku n-arnego encją
Kiedy zastępujemy związek M:N nową encją ?
Kiedy związek n-arny zastępujemy nową encją ?
Gdy chcemy każde powiązanie pomiędzy dwoma obiektami (np. pracownikiem i językiem
" gdy chcemy każde wystąpienie związku opisać dodatkowymi atrybutami
obcym) opisać dodatkowymi atrybutami dotyczącymi tego powiązania (np. stopień
" gdy narzędzie CASE nie umożliwia rysowania związków n-arnych
znajomości języka).
PRACOWNIK JZYK OBCY
A B
# id_pracownika zna # id_języka
Własności:
imię nazwa_języka
opanowany
nazwisko dodatek
" Związek n-arny zastępujemy
przez
...
encją i n-związkami związkami
1:N
C D
" Związki 1:N są obowiązkowe po
PRACOWNIK JZYK OBCY
stronie "wiele", niezależnie od
# id_pracownika # id_języka
imię nazwa_języka
opcjonalności związku n-arnego
nazwisko dodatek
...
" Obowiązkowość związku
ZNAJOMOŚĆ n-arnego przenosimy jako
JZYKA OBCEGO
obowiązkowość związków 1:N
podnosi wartość dotyczy
stopień
A B
po stronie "jeden"
Własności:
E
" Bezpośrednia n-arna zależność
Związek M:N zastępujemy encją i dwoma związkami 1:N
przekształcona została na
Związki 1:N są obowiązkowe po stronie "wiele", niezależnie od opcjonalności związku M:N
zależność pośrednią (poprzez
Obowiązkowość związku M:N przenosimy jako obowiązkowość związków1:N po stronie
C D
encję E)
"jeden"
Bezpośredni związek typu wiele do wielu przekształcony został na pośredni związek wiele
do wielu (poprzez encję ZNAJOMOŚĆ JZYKA OBCEGO)
Atrybuty złożone Atrybuty wielowartościowe
Atrybut jest nazywany złożonym, gdy jego wartość dla jednego wystąpienia encji jest
Atrybut jest nazywany wielowartościowym, gdy posiada wiele wartości dla jednego
złożeniem kilku bardziej elementarnych wartości.
wystąpienia encji
Jan Kowalski telefon:
555-22-20
555-05-64
Ulica
Is-part-of
DOSTAWCA 555-04-77
Is-part-of
Miasto Adres ...
adres_ulica
Is-part-of
Kod
adres_miasto
pocztowy adres_kod
Is-part-of
...
PRACOWNIK PRACOWNIK
# id_pracownika # id_pracownika
DOSTAWCA
imię imię
nazwisko nazwisko
... ...
lub
posiada używa
Modelowanie atrybutów złożonych:
używany
" W definicji encji umieszczamy tylko atrybuty elementarne. przez
należy do
" Atrybuty elementarne można w sposób nieformalny grupować przez stosowanie TELEFON
TELEFON
przedrostków w nazwach atrybutów. # id_telefonu
# numer_tel numer_tel
fax_telefon
Modelowanie atrybutów wielowartościowych:
" Atrybuty wielowartościowe modelujemy za pomocą dodatkowej encji.
Agregacja Hierarchia danych
Hierarchia danych to struktura o topologii drzewa, powiązanych wzajemnie obiektów.
" Agregacja to obiekt
Grupa pracowników nazwa grupy: Administracja
Przykłady powiązań hierarchicznych:
administracyjnych liczba pracowników: 4
(często abstrakcyjny)
średnie wynagrodzenie: 2000 zł
" pracownik - pracownicy - pracownicy ...
pracownicy
dzień wypłaty: 10
zbudowany z innych,
" oddział firmy - działy firmy - zespoły
Poznański oddział firmy
nazwa oddziału: Alfa " produkt - podzespoły - inne podzespoły ...
bardziej elementarnych
działy adres: ul. Krótka 4, Poznań
liczba pracowników: 34
obiektów.
liczba działów: 3
Modelowanie hierarchii danych
PRACOWNIK kieruje
" encja i związek rekurencyjny
podlega
GRUPA PRACOWNICZA PRACOWNIK
Modelowanie agregacji:
nazwa_grupy obejmuje ...
ODDZIAA obejmuje DZIAA obejmuje ZESPÓA
liczba_prac
" Wprowadzamy nową encję " encje i związki 1:N
należy do
średnie_wynagr
należy należy
dzień_wypłaty
reprezentującą agregację.
do do
" Nową encję łączymy
ODDZIAA
związkiem 1:N z encją, która
DZIAA
składa
nazwa_oddziału
modeluje obiekty tworzące składa się z ... " encja ze związkiem PODZESPÓA typu RODZAJ
ulica się z nadrzędny
PODZESPOAU
miasto należy do rekurencyjnym i encją klasyfikuje względem
agregację.
liczba_prac
klasyfikującą
liczba_działów
wchodzi podrzędny do
w skład
Hierarchia encji a agregacja Modelowanie czasu
Dane ponadczasowe:
Różne rodzaje obiektów w świecie rzeczywistym
dane o charakterze ponadczasowym
" zbiór stanowisk, marki samochodów,
Firma produkuje trzy rodzaje zabawek:
miasta, itp.
" mechaniczne, dane opisujące regularne okresy czasu
" charakter statyczny - brak elementu
" gry planszowe
czasu
" pluszowe maskotki. dane opisujące nieregularne okresy czasu
Dane opisujące stan aktualny:
" wynagrodzenie, koszt surowców,
Hierarchia encji Agregacja
dane opisujące zdarzenia regularne
cena sprzedaży, itp.
ZABAWKA
dane
ZABAWKA typu RODZAJ
" charakter dynamiczny - brak opisujące
ZABAWKI
dane opisujące zdarzenia nieregularne
klasyfikuje
ZABAWKA stan
elementu czasu
aktualny
MECHANICZNA
" możliwość wersjonowania
czas
GRA
PLANSZOWA
Dane opisujące zdarzenia
PLUSZOWA
nieregularne:
MASKOTKA
Dane opisujące zdarzenia regularne:
" przyznanie nagrody, zakup towaru, itp.
" wypłata dla pracownika, pobranie składki,
" opis zdarzenia, moment zajścia itp.
" opis zdarzenia, odwołanie do zegara
zdarzenia
Który model jest prawidłowy ?
czasowego
" Czy poszczególne rodzaje zabawek posiadają specyficzne atrybuty ?
Dane opisujące nieregularne
" Czy poszczególne rodzaje zabawek posiadają specyficzne związki ?
Dane opisujące regularne okr. czasu:
okresy czasu:
" Czy chcemy przechowywać informacje dotyczącego danego rodzaju zabawek ?
" przyznany budżet , limit roczny, itp.
" urlop pracownika, wypożyczenie książki,
" opis merytoryczny, odwołanie do zegara
itp.
czasowego (np.: okresu rozrachunkowego)
" moment rozpoczęcia i zakończenia
Wersjonowanie danych Kontrola jakości encji
" Historyczne wersje modyfikowanych danych, modelujemy za pomocą dodatkowej encji.
" Jeden z atrybutów nowej encji pełni rolę stempla czasowego. Czy jest to znacząca nazwa podana w liczbie pojedynczej?
Czy zachodzi wzajemne wykluczanie się?
Wersjonowanie atrybutów
Czy encja ma przynajmniej dwa atrybuty?
PRACOWNIK PRACOWNIK POPRZEDNIE
Czy encja nie ma więcej niż osiem atrybutów?
WYNAGRODZENIE
# id_pracownika
# id_pracownika pobierał
* nazwisko * nazwisko # do_dnia Czy występują synonimy/homonimy encji?
pobierane
* wynagrodzenie * akt_wynagrodz o od_dnia
przez
Czy jest to kompletna definicja encji?
... ... * wynagrodzenie
Czy uwzględnia się ilościową informację?
" aktualne
" brak elementu czasu " poprzednie wersje
Czy encja ma jednoznaczny identyfikator?
wynagrodzenie
" opis stanu bieżącego wynagrodzenia
Czy z encji wychodzi przynajmniej jeden związek?
" moment zmiany lub
Wersjonowanie związków
Czy istnieje przynajmniej jedna funkcja do utworzenia, wyszukania,
okres czasu
PRACOWNIK STANOWISKO modyfikowania, usuwania, archiwizowania i używania encji?
# id_pracownika zajmuje # nazwa
Czy uwzględnia się wymagania dot. rozproszenia?
* imię * płaca_min
zajmowane
* nazwisko o płaca_max
Czy uwzględnia się zmiany w czasie?
przez
Czy w odniesieniu do encji spełnione są zasady normalizacji danych?
PRACOWNIK STANOWISKO
" Aktualnie zajmowane
zajmowane
Czy encja już istnieje w innych systemach użytkowych, być może pod inną
# id_pracownika zajmuje przez # nazwa
stanowisko - brak
* imię * płaca_min
nazwą?
elementu czasu
* nazwisko o płaca_max
Czy nie jest za bardzo ogólna?
zajmował opisuje
POPRZEDNIE Czy jest wystarczająco ogólna?
" Aktualne i poprzednie stanowiska
STANOWISKO
zajmowane przez pracownika - okresy
zajmowane dotyczy
# do_dnia
przez
czasu * od_dnia
Kontrola jakości podtypów Kontrola jakości atrybutów
Czy podtypy są wzajemnie wykluczające się? Czy jest to znacząca nazwa podana w liczbie pojedynczej?
Czy podtyp ma jakieś atrybuty i/lub związki? Czy nazwa nie obejmuje nazwy encji?
Czy wszystkie podtypy mają własne jednoznaczne identyfikatory lub czy Czy ma tylko jedną wartość w danej chwili?
mają identyfikator wspólny z nadtypem? Czy jest podana definicja formatu, długości, dozwolonych wartości,
Czy jest to kompletny zbiór możliwych podtypów? wyliczenia, itd.?
Czy podtyp nie jest przypadkiem przykładem encji? Czy nie jest to czasem brakująca encja, być może wymagana przez inny
Czy znasz atrybuty i/lub związki oraz warunki, które pozwalają odróżnić istniejący lub przewidywany system użytkowy?
jeden podtyp od drugiego? Czy nie jest to czasem brakujący związek?
Czy nie jest to czasem rzecz skądś zapożyczona, jako "cecha
projektowania", którą trzeba usunąć na poziomie przedsiębiorstwa?
Czy jest istotne, aby znać różne wartości w czasie?
Czy wartość atrybutu zależy tylko od rozważanej encji?
Przykłady błędnych hierarchii encji Sprawdzanie jakości związków
Test składniowy:
PRACOWNIK Intencja: klasyfikacja pracowników
" Czy nazwy są znaczące, pozwalające zbudować w języku naturalnym
# id_pracownika Błąd:dane opisujące kierowników, projektantów i
dwie interpretacje związku?
nazwisko
pracowników administracyjnych są identyczne
...
" Czy określono stopień asocjacji związku?
Rozwiązanie:pojedyncza encja z rozróżniającym
KIEROWNIK PROJEKTANT PRACOWNIK
DZIAAU ADMINISTRACYJNY atrybutem " Czy określono obligatoryjność / opcjonalność związku?
" Czy związek należy do zbioru konstrukcji uznanych za błędne?
Auki:
Intencja: inna obsługa firm prywatnych i państwowych
KONTRAHENT " Czy obejmuje minimum dwa związki ?
Błąd: różne przetwarzanie pewnej grupy obiektów nie
# id_kontrahenta
" Czy wszystkie związki w łuku mają taką samą obligatoryjność ?
może być powodem utworzenia hierarchii encji
nazwa_firmy
Rozwiązanie: pojedyncza encja z rozróżniającym " Czy wszystkie związki w łuku dochodzą do tej samej encji ?
...
atrybutem
" Czy żaden ze związków w łuku nie tworzy unikalnego identyfikatora ?
FIRMA PRYWATNA FIRMA PACSTWOWA
Test semantyczny:
Intencja: samochody ciężarowe wymagają " Czy związek wprowadza nową wiedzę do modelu (nie jest redundantny)
SAMOCHÓD
dodatkowego opisu
?
# id_samochodu
Błąd:każde wystąpienie encji SAMOCHÓD jest
" Związek nie ma znaczenia efektywnościowego ?
SAMOCHÓD CIŻAROWY
numer_rejestr
samochodem ciężarowym.
" Jeśli obligatoryjny, czy nie występują nawet krótkie chwile gdy nie
... ładowność Rozwiązanie: dodatkowa specjalizacja, np.: INNY
można dowiązać obiektu po drugiej stronie ?
...
SAMOCHÓD
Auki:
" Czy każde wystąpienie encji jest łączone tylko jednym ze związków ?
Wadliwe konstrukcje związków
Przykłady typowych błędów
Związek 1:1 dwustronnie obligatoryjny
AB
" Wystąpienia A i B pojawiają się zawsze parami.
" Encje A i B są prawdopodobnie różnymi perspektywami.
Niejawny związek pomiędzy encjami Redundancja związków
Połącz atrybuty i związki encji A i B w jedną encję.
NAUCZYCIEL
PRZEDMIOT
prowadzi # id_naucz
GRUPA
# id_przedm
imię
przypisana do
nazwa
# symbol
nazwisko
Obligatoryjne związki rekurencyjne
# rok
wykładany na
dla grupy
opiekuje się
liczebność
A A
Nieskończone listy. ZAJCIA obejmuje
pod
prowadzona
# id_zajęć
Zastąp obligatoryjność opcjonalnością z opieką
przez
dzień
godzina należy do
LEKCJA KLASA
przedmiot
# id_lekcji # id_klasy
STUDENT
wymagają
dzień symbol
obecności # id_stud
A A
godzina rok
Nieskończone hierarchie - kolejno: brak liści, A
nazwisko
dla_klasy niejawny liczebność
ma w planie album
brak korzeni, obustronna nieskończoność. związek
Zastąp obligatoryjność opcjonalnością
A A
Nieskończone sieci.
Zastąp obligatoryjność opcjonalnością
Modelowanie funkcji
" Technika modelowania systemu
poprzez opis tego co on robi:
" identyfikacja działań - funkcji,
MODELOWANIE FUNKCJI
" identyfikacja przyczyn tych działań - zdarzeń,
" identyfikacja obiektów (encji), na których operują funkcje.
i
Korzyści z modelowania funkcji
MODELOWANIE PRZEPAYWÓW
precyzyjne określenie potrzeb funkcjonalnych organizacji - co robić (obecnie i w
przyszłości), aby osiągnąć zamierzone cele.
DANYCH
rozumienie potrzeb użytkowników przed rozpoczęciem projektowania aplikacji i
implementacji systemu,
żywotność modelu funkcjonalnego spowodowana niezależnością od struktury
organizacyjnej przedsiębiorstwa i postępu technologicznego,
uzyskanie jednoznaczności opisu i efektywnego mechanizmu komunikacji.
dostarczenie mechanizmu do usprawnienienia funkcjonowania przesiębiorstwa
(wykrycie redundancji działań, złe odwzorowanie na strukturę organizacyjną, itp.)
uwzględnienie działań strategicznych, niezbędnych dla realizacji celów
długoterminowych.
zmiana punktu widzenia użytkytkowników - zrozumienie kontekstu indywidualnych
działań
Funkcja Przykłady funkcji
" Funkcją (business function) jest to co przedsiębiorstwo robi, lub będzie musiało robić,
" Funkcja jest opisem tego co robi przedsiębiorstwo dla osiągnięcia określonego celu.
aby osiągnąć zamierzone cele.
Założenia dotyczące własności funkcji:
" Zgodnie z przyjętą definicją, funkcjami są:
odpowiedz na pytanie "Co robi ?",
" (realizowane np. przez dział sprzedaży)
brak szczegółowego opisu przetwarzanych danych,
" "Przyjęcie zamówienia od odbiorcy"
brak odpowiedzi na pytanie "Kto to robi ?"
" "Wystawienie faktury sprzedaży dla odbiorcy"
brak odpowiedzi na pytanie "Kiedy to robi ?"
" "Sporządzenie wykazu niezrealizowanych zamówień"
brak odpowiedzi na pytanie "W jaki sposób ?"
" (realizowane np. przez dział ds. osobowych):
Korzyści płynące z przyjętych założeń:
" "Przygotowanie umowy o pracę"
niezależność od struktury organizacyjnej;
" "Wystawienie karty obiegowej"
strukturę organizacyjną moża zmodyfikować pod kątem realizowanych funkcji
" (realizowane np. przez dział ds. finansowych):
niezależność od metody realizacji;
" "Dekretowanie raportów kasowych"
sposób realizacji można modyfikować w miarę postępu technologicznego
" "Sporządzanie sprawozdania o przychodach i kosztach"
duża trwałość modelu
" "Prowadzenie księgi druków ścisłego zarachowania"
Przykład:
" (realizowane np. przez dział zarządzania majątkiem)
Uczelnia realizuje zbieranie informacji o dorobku naukowym pracowników.
" "Wystawienie dokumentu przyjęcia składnika majątkowego"
Model funkcjonalny zawiera zatem funkcję o nazwie "Uzupełnienie informacji o dorobku
" "Nadanie numeru inwentarzowego przyjętemu składnikowi majątkowemu"
naukowym pracownika". Nazwa funkcji mówi co robi uczelnia, ale nie mówi:
" (realizowane np. przez redakcję czasopisma)
" jak realizowana jest funkcja od strony technicznej,
" "Ewidencja danych o reklamującej się firmie"
" która komórka organizacyjna się tym zajmuje,
" "Wystawienie faktury za reklamę, dla firmy reklamowanej w czasopiśmie"
" kiedy ma miejsce to uzupełnianie informacji.
" "Sporządzenie aktualnego wykazu prenumeratorów"
Modyfikacja, któregokolwiek czynnika nie wpływa na model funkcjonalny uczelni.
Nazwa funkcji Reprezentacja funkcji
Nazwa funkcji jest opisem wykonywanego działania lub czynności.
K-ZP . . .
Zasady nazywania funkcji
Zatrudnienie pracownika naukowego
" Nazwa funkcji powinna się rozpoczynać od czasownika imperatywnego lub
rzeczownika odczasownikowego:
" "Przyjmij zamówienie od odbiorcy" lub:
" Funkcja (działanie) jest reprezentowana przez prostokąt.
" "Przyjęcie zamówienia od odbiorcy"
" Wewnątrz prostokąta umieszczamy pełną nazwę funkcji;
" Dobierając nazwę funkcji należy sprawdzać:
" nazwa, nie jest nazwą w klasycznym rozumieniu tego słowa - jest to raczej zdanie
" Czy zdefiniowano ,,jak coś jest robione'' zamiast ,,co jest robione'' ?;
określające czynność jaka powinna być wykonana,
" Czy ta sama funkcja może być zrealizowana w różny sposób ?
" należy unikać skrótów, żargonu, akronimów,
" nazwa musi być przejrzysta i zrozumiała - może być rozbudowana,
Przykład
" w miarę możliwości należy używać tych samych określeń, np. zawsze "Ewidencja
" Elementem zatrudniania pracownika jest wprowadzenie tego pracownika do ewidencji
danych o ...", a nie raz "Ewidencja danych o ...", a innym razem "Wprowadzenie
i zapamiętanie w ten sposób m.in. jego danych personalnych.
danych o ..." lub "Zapisanie danych o ...".
" Poprawana nazwa funkcji:
" Na zewnątrz prostokąta umieszczamy unikalną etykietę funkcji dla jej jednoznacznej
" "Ewidencja danych personalnych zatrudnianego pracownika"
identyfikacji;
" Złe nazwy funkcji:
" etykieta funkcji może pokazywać lokalizację funkcji w hierarchii. Na przykład:
" "Wypełnienie druku KP-3 zawierającego dane personalne pracownika"
funkcja K-ZP jest częścią (podfunkcją) funkcji K.
" "Wprowadzenie pracownika do ewidencji w pokoju 14"
" Symbol "..." w prawym górnym rogu oznacza, że funkcja została zdekomponowana i
jej bardziej szczegółowy opis znajduje się na niższym poziomie hierarchii
Funkcje wykonywane warunkowo:
" mogą zawierać słowny opis warunków realizacji funkcji:
" "Znajdz odpowiedniki leku, gdy zamówionego leku nie ma w magazynie"
Hierarchia funkcji Trzy główne poziomy funkcjonalne
" najprostsza i najbardziej użyteczna technika modelowania funkcji
Poziom ogólny
" gdy funkcje pokazują ogólne działania realizowane w przedsiębiorstwie:
" prowadzenie sprzedaży produktów
" dokonywanie zakupu surowców
" działalność marketingowa
" obsługa prenumeraty czasopism
Poziom systemu
" gdy funkcje pokazują elementarne działania na poziomie operacyjnym:
" ewidencja nowego zamówienia od odbiorcy
Struktura drzewiasta: korzeń reprezentuje całą działalność przedsiębiorstwa lub zakres
" wydanie towaru z magazynu
badań analityków.
" wystawienie faktury
" sporządzenie polecenia przelewu bankowego.
Wyróżnić można następujące poziomy ogólności:
Poziom procedur
" poziom ogólny przedsiębiorstwa,
" gdy funkcje pokazują elementarne operacje, które nie są wykonywane samodzielnie
" poziom systemu,
" poziom procedur. " sprawdzenie czy odbiorca znajduje się już w bazie danych,
" wprowadzenie danych nowego odbiorcy, gdy jest to jego pierwsze zamówienie
Każda funkcja nadrzędna (inaczej - funkcja rodzica) w hierarchii funkcji powinna być w
" określenie daty przyjęcia zamówienia i przewidywanego terminu realizacji
sposób kompletny opisana za pomocą funkcji podrzędnych (inaczej - funkcji dzieci)
Poziomy hierarchii funkcji Dekompozycja funkcji
Funkcja nadrzędna - korzeń (the root function)
" Funkcję można zdekomponować na kilka bardziej szczegółowych funkcji składowych,
które tworzą kolejny poziom w hierarchii.
" Funkcja podlegająca dekompozycji, nazywana jest funkcją nadrzędną a funkcje
znajdujące się na kolejnym poziomie, funkcjami podrzędnymi.
Wszystkie te
funkcje i tylko te
Interpretacja dekompozycji funkcji
funkcje są konieczne Dowolna
" Wykonanie funkcji nadrzędnej jest realizowane przez wykonanie funkcji podrzędnych.
do realizacji funkcji kolejność
nadrzędnej
Przykład
Funkcja (1) "Ewidencja kandydata "
została zdekomponowana na bardziej szczegółowe funkcje:
Ten fragment
Funkcja (1.1) "Wprowadzenie danych personalnych"
hierarchii funkcji
Funkcja (1.2) "Wprowadzenie ocen ze świadectwa maturalnego"
może być dalej
co oznacza, że zrealizowanie funkcji (1) polega na wykonywaniu wszystkich funkcji
zdekomponowany
podrzędnych (1.1) i (1.2).
aż do osiągnięcia
pożądanego stopnia
Własności nowego poziomu hierarchii funkcji:
szczegółowości
" nie ma zależności kolejnościowych - funkcje mogą być realizowane w dowolnej
kolejności,
" Interpretacja funkcji na różnych poziomach szczegółowości: " nie ma zależności częstościowych - funkcje mogą być wykonywane różną ilość razy.
obszary działalności, funkcje ogólne, czynności, elementarne operacje.
Kiedy zakończyć dekompozycję ?
" Funkcja położona najwyżej w hierarchii reprezentuje całą działalność modelowanej
organizacji lub cały zakres przedsięwzięcia
Przykład prostej dekompozycji Przykład rozbudowanej dekompozycji (1)
D
Działalność dziekanatu
2.3
PS
Prowadzenie sprzedaży produktów
Zarządzanie planami studiów
R
2.3.1
Przeprowadzenie rekrutacji
Ewidencja odbiorców
S
Prowadzenie kartoteki studentów
2.3.2
Przyjęcie zamówienia od odbiorcy G
Zarządzanie podziałem na grupy
studenckie
2.3.3
O
Wydanie produktów z magazynu
Obsługa odpłatności za studia
S
2.3.4
Obsługa pomocy socjalnej
Wystawienie faktury dla odbiorcy
P
2.3.5 Organizowanie i rozliczanie praktyk
studenckich
Sporządzenie dziennego raportu
RA
sprzedaży
Rozliczanie i awansowanie
studentów
iW
Ewidencja infrastruktury wydziałowej
Przykład rozbudowanej dekompozycji (2) Przykład rozbudowanej dekompozycji (3)
R
R-EW
Przeprowadzenie rekrutacji
Obsługa egzaminów wstępnych
R-UK
R-EW-OE
Ustalenie kryteriów rekrutacji
Określanie egzaminów wstępnych
R-RK na danym kierunku studiów
Ewidencja kandydatów
R-EW-OI
Organizowanie zespołu
R-OK
inwigilantów
Organizowanie komisji rekrutacyjnej
R-EW-EE
Ustalenie składu komisji dla danego
R-KS
przedmiotu
Przeprowadzenie konkursu
świadectw R-EW-KS
R-EW
Przypisanie kandydata do danej
sali na czas trwania egzaminów
Obsługa egzaminów wstępnych
R-EW-LE
R-RZ
Sporządzenie listy egzaminacyjnej
dla danego egzaminu i sali
Obsługa rozmów kwalifikacyjnych
R-EW-OC
R-PR
Ewidencja ocen kandydata z danego
Przyjmowanie kandydatów
egzaminu
R-EW-DE
R-WK
Sporządzenie raportu z wynikami
Sporządzanie raportów z
z danego egzaminu wstępnego
przebiegu rekrutacji
R-EW-RE
R-S
Sporządzanie raportu do rozliczenia
Sporządzanie zestawień
statystycznych z rekrutacji egzaminatorów
Funkcje elementarne Kopie funkcji
" Funkcje elementarne to funkcje, które po zainicjowaniu muszą być
" Funkcja może być kopią innej funkcji w hierarchii, gdy reprezentuje dokładnie to samo
działanie.
zrealizowane pomyślnie w całości.
" W przypadku niemożności zakończenia funkcji elementarnej, powinny
Wprowadzanie kopii funkcji do hierarchii
zostać wycofane wszystkie wprowadzone przez nie zmiany.
" Dokładnie tą samą akcję w innym miejscy hierarchii funkcji możemy zamodelować
" Funkcje elementarne umieszczane są najczęściej na najniższym poziomie
poprzez wstawienie kopii funkcji (common function) z refernecją na funkcję wzorcową
(master function).
hierarchii funkcji.
Zalety stosowania kopii funkcji:
Przykłady funkcji elementarnych
" identyfikacja podobnych akcji w różnych obszarach działalności przedsiębiorstwa
" zmniejszenie liczby definicji funkcji w modelu
"Ewidencja nowego zamówienia"
" uniknięcie podwójnego projektowania i implementacji bardzo podobnych aplikacji
"Naliczenie danemu pracownikowi dodatku za wysługę lat"
R
Rozwiązywanie stosunku pracy z pracownikiem
Zalety identyfikacji funkcji elementarnych
R-WE
" kontrola poziomu dekompozycji hierarchii funkcji,
Sporządzenie wniosku o zwolnienie pracownika
" łatwe odwzorowanie funkcji na aplikacje,
" możliwość szacowania czasochłonności fazy implementacji
R-DF Master: Z-DF
Sporządzenie karty obiegowej
Techniki konstruowania hierarchii Zdarzenia
Podejście Top-down (od ogółu do szczegółu)
" Zdarzenia definiują przyczyny podejmowania określonych działań - wykonywania
Modelowanie rozpoczyna się od funkcji nadrzędnej,
odpowiednich funkcji.
którą następnie dekomponuje się na składowe.
" Definicje zdarzeń stanowią rozszerzenie modelu funkcjonalnego
Proces jest powtarzany dla każdej
funkcji podrzędnej, aż do otrzymania
Kategorie zdarzeń
funkcji elementarnych.
" zdarzenia zewnętrzne - wynikają z akcji podejmowanych przez obiekty zewnętrzne
Dekompozycja
względem systemu.
Przykłady:
Podejście Bottom-Up (od szczegółu do ogółu)
" przesłanie zamówienia przez odbiorcę,
Na podstawie informacji, uzyskanych z wywiadów,
" złożenie podania o przyjęcie do pracy;
sporządza się szczegółową listę funkcji,
" zmiany w systemie - gdy wprowadzamy, modyfikujemy lub usuwamy informacje w
a następnie grupuje się tematycznie
ramach systemu.
uzyskując bardziej ogólne funkcje.
Przykłady:
Grupowanie
" wydanie towaru z magazynu,
" obniżenie stanu magazynowego produktu poniżej wartości minimalnej,
Technika mieszana " zmiana wynagrodzenia pracownika;
" zdarzenia czasowe (lub czasu rzeczywistego) - gdy czas osiąga pewien wyznaczony
punkt.
Przykłady:
" koniec okresu rozliczeniowego,
" dzień sporządzania listy wypłat.
Związek zdarzenia z funkcją Modelowanie zależności funkcji
" Jedno zdarzenie, może wywołać realizację sekwencji funkcji zakończonych
Związek wyrażany w języku naturalnym:
wyprodukowaniem określonych danych.
" ,, powoduje wykonanie funkcji .
" Definicje zależności pomiędzy zdarzeniem i realizowanymi funkcjami stanowią kolejne
rozszerzenie modelu funkcjonalnego
Przykład
" Możliwość prezentacji związków przyczynowo-skutkowych w funkcjonowaniu
Wykrycie przeterminowania towaru powoduje wykonanie funkcji "Zwrot towaru do
przedsiębiorstwa:
dostawcy".
" Jakie działania zostaną wykonane po zajściu zdarzenia "Otrzymanie podania o przyjęcie
do pracy" ?
Związek zdarzenia z funkcją wyrażany graficznie
Przyczyny zależności:
Działalność Branżowego Instytutu Maszyn Ciężkich
dane - funkcja A produkuje dane potrzebne funkcji B
przepisy - wymogi formalne decydują że funkcja A musi być zrealizowana przed funkcją B
zasady - uwzględniające względy ekonomiczne, przyzwyczajenia, wizerunek firmy, itp.
Obsługa zarządzania
Obsługa działalności
Przykład diagramu zależności funkcji:
majątkiem
kadrowej
. . .
. . . zależności pomiędzy funkcjami
Przyjęcie składnika majątkowego zdarzenie
do ewidencji Złożenie wniosku o Obsługa zatrudniania pracowników
przyjęcie do pracy
. . .
. . .
Przeniesienie Zmiana miejsca użytkowania
Ewidencja zdarzeń dotyczących
wyniki
składnika majątku składnika majątkowego
pracowników
do innego działu
. . .
. . .
zdarzenie
Likwidacja składnika majątkowego Aktualizacja danych związanych z
pracownikiem
. . .
Złożenie wniosku o
zwolnienie z pracy Obsługa zwalniania pracowników
Układ poziomy i mieszany hierarchii
Prezentacja hierarchii funkcji
funkcji
Zalety:
Układ pionowy
- szybkie wprowadzanie hierarchii
- prezentacja wielu poziomów Układ poziomy
- uzyteczny dla 2 poziomów
Wady:
- trudne rozróżnianie poziomów
- złe nastawienie użytkowników
Zalety: Wady:
- akceptowany przez użytkowników - bardzo duży wymiar poziomy
- uzyteczny dla 2 lub 3 poziomów
Układ mieszany
Zalety: Wady:
- preferowany przez uzytkowników - niejednorodnoSć
- najlepsze wykorzystanie miejsca
- idealny dla 3 poziomów
Związek funkcji z danymi Jakość modelu funkcjonalnego
Model ogólny instytucji
" Czy nazwa funkcji rozpoczyna się od czasownika lub rzeczownika
Założenia i cele
odczasownikowego, opisując w ten sposób działanie, które jest
postęp
osiągane poprzez
mierzony przez modelowane?
Model funkcjonalny
" Czy nazwa funkcji nie sugeruje kto ją wykonuje (jednostka
Funkcje
organizacyjna, osoba, itp.) ?
Zdarzenia
" Czy nazwa funkcji nie sugeruje jaka technologia jest użyta do jej
mogą
powodować
inicjują
realizacji ?
wykonanie
" Czy nazwa funkcji nie sugeruje kiedy funkcja jest wykonywana ?
Zainicjowane
zdarzenia
" Czy model nie ogranicza się do opisu działań w dniu dzisiejszym ?
operują na
" Czy model jest zrozumiały i zaakceptowany przez użytkowników ?
Model informacyjny
Encje
" Diagramy matrycowe funkcje - dane
" Diagramy przepływu danych
Diagramy przepływu danych Przykładowy diagram przepływu danych
" Technika modelowania systemu poprzez opisanie przepływu informacji pomiędzy
procesami (funkcjami).
Termin angielski Termin polski
dataflow przepływ danych
datastore zbiornik danych (magazyn danych)
external entity byt zewnętrzny (obiekt zewnętrzny)
dataflow diagram diagram przepływu danych
Rodowód
" Opis obiegu dokumentów
Do czego służą diagramy DFD ?
" Pokazują wewnętrzną strukturę systemu łączącą działania (akcje, operacje) z
przetwarzanymi danymi.
" Pokazują procesy w systemie i wymieniane pomiędzy nimi informacje.
" Pokazują zależności pomiędzy procesami wynikające z produkowania i
konsumowania danych.
" Pokazują wymianę danych ze światem zewnętrznym.
" Pomagają decydować o dalszej dekompozycji procesów.
" Stanowią podstawę do specyfikacji aplikacji, procedur ręcznych, urządzeń
elektronicznych.
Czego nie pokazują diagramy DFD ?
" Nie pokazują algorytmu przetwarzania danych wewnątrz procesów.
" Nie pokazują momentów czasowych kiedy proces jest rozpoczynany.
Zbiornik danych Przepływ danych
" Przepływ danych jest nazwanym zbiorem obiektów, atrybutów, związków i innych,
" Zbiornik danych jest nazwanym zbiorem obiektów, atrybutów, związków i innych
jeszcze niesformalizowanych jednostek informacji, przesyłanych:
jeszcze niesformalizowanych jednostek informacji, które muszą zostać przechowane
" z jednego miejsca w drugie,
przez pewien okres czasu.
" pomiędzy procesami,
" pomiędzy procesem i zbiornikiem danych.
Reprezentacja:
ZAM
Reprezentacja:
ZAMÓWIENIA nowe zamówienie
zródło przeznaczenie
- byt zewnętrzny - byt zewnętrzny
- proces - proces
- zbiornik danych - zbiornik danych
Byt zewnętrzny
grot strzałki pokazuje kierunek przepływu danych
nazwa przepływu w sposób zbiorczy opisuje wszystkie
przekazywane informacje
Byt zewnętrzny jest obiektem zlokalizowanym na zewnątrz systemu, który jest
zródłem informacji przesyłanej do systemu lub miejscem przeznaczenia informacji
dane dostawcy
wychodzącej z systemu.
Reprezentacja:
GAÓWNY
Dwukierunkowy
URZD
przepływ danych
STATYSTYCZNY dane dostawcy
dane dostawcy
Interpretacje przepływu danych Błędne konstrukcje przepływów danych
Przepływ pomiędzy procesami
" Proces A produkuje dane
Przepływ danych pomiędzy zbiornikami
i przekazuje je do procesu B.
Proces A Proces B
" Brak zwłoki czasowej
Zbiornik Zbiornik
pomiędzy procesami.
danych danych
Przepływ pomiędzy procesem i zbiornikiem danych
Proces odczytuje dane
" Zbiorniki danych jako elementy pasywne, nie mogą inicjować przepływu
zapamiętane w zbiorniku
Zbiornik
danych.
Proces
danych
danych.
Proces modyfikuje zawartość
Zbiornik
zbiornika danych: wprowadza Proces
danych
nowe dane, modyfikuje Przepływ danych pomiędzy bytem zewnętrznym i zbiornikiem danych
istniejące lub usuwa dane ze zbiornika.
Byt
Zbiornik
Przepływ pomiędzy procesem i bytem zewnętrznym zewnętrzny
danych
Byt zewnętrzny jest zródłem danych
Byt
wchodzących do systemu
zewnętrzny Proces
Przetwarzanie danych znajdujących się wewnątrz systemu nie może być realizowane
i konsumowanych przez proces.
bez udziału procesu
Proces produkuje dane i przekazuje je
Byt
na zewnątrz systemu
Proces zewnętrzny
do określonego bytu zewnętrznego.
Definiowanie zawartości przepływu
Definiowanie struktury zbiornika danych
danych
" Struktura zbiornika danych to zbiór encji, atrybutów, związków i jeszcze
niesformalizowanych jednostek informacji.
" Dwa skrajne przypadki odwzorowania modelu związków encji na zbiorniki danych:
Zawartość przepływu jest
" cała baza danych widziana jako jeden zbiornik
Przyjęcie zamówienia
" pojedyncze encje lub atrybuty widziane jako osobne zbiorniki danych. definiowana za pomocą:
od odbiorcy
" Problem doboru wielkości zbiorników danych " atrybutów encji,
" związków,
(Select)
Przykładowa struktura zbiornika danych:
" niesformalizowanych jednostek
informacji.
Z ZAMÓWIENIA ODBIORCÓW
Odbiorca: id_odbiorcy
Interpretacja przepływów danych:
Odbiorca: id_odbiorcy Odbiorca: nazwa_odb
" Przepływ - Zbiornik danych--->
Odbiorca: nazwa_odb Odbiorca: adres_odb
Encje Atrybuty Związki Inne
Proces - reprezentuje operację
Odbiorca: adres_odb Odbiorca: NIP
Czy
ZAMÓWIENIA numer_zam >- od odczytu danych ze zbiornika
zamówienie
Odbiorca: telefon
data_złoż ODBIORCY
zostało
wartość " Przepływ - Proces--->Zbiornik
>- przyjął już - profil działalności
data_real
PRACOWNICY zrealizowane?
danych - reprezentuje kombinację
operacji: wprowadzania,
ZAMÓWIONE numer_poz >- dotyczy Z którego (Insert,Update,Delete)
POZYCJE ilość WYROBY magazynu
modyfikowania i usuwania danych
cena_sprz wydano
O
towar ?
ze zbiornika
ODBIORCY
Sprawdzanie kompletności
Powiązania matrycowe Funkcje-Encje
i jakości DFD
" Jakie dane przetwarzane są przez daną funkcję ?
" Czy proces ma przynajmniej jeden przepływ wejściowy ?
" Jakie operacje wykonywane są na tych danych ?
" Czy proces ma przynajmniej jeden przepływ wyjściowy ?
" Czy element zbiornika danych jest produkowany przynajmniej przez jeden przepływ
Przyjęcie zamówienia...
wejściowy ?
...
" Czy element zbiornika danych jest konsumowany przynajmniej przez jeden przepływ
FAKTURY wyjściowy ?
Wiązanie funkcji z encjami można
" Czy suma logiczna przepływów wejściowych do zbiornika równa jest sumie
ODBIORCY realizować automatycznie na
logicznej przepływów wyjściowych ?
podstawie przepływów danych
PRODUKTY
" Czy nie ma redundantnych przepływów pomiędzy tymi samymi elementami
ZAMÓWIENIA
diagramu ?
... " Czy można wyprodukować dane wyjściowe na podstawie danych wejściowych ?
" Czy wszystkie dane wejściowe są niezbędne ?
" Czy dla danych o wyraznym charakterze przyrostowym, istnieją przepływy
Przyjęcie zamówienia...
opróżniające zbiornik danych ?
Y
Retrieve - wyszukanie odbiorcy
Y
Insert - wprowadzenie nowego odb.
ODBIORCY
Y
Update - aktualizacja danych odb.
Delete


Wyszukiwarka

Podobne podstrony:
UML język modelowania danych
02 Modelowanie danych
modelowanie danych
DYNAMICZNE STRUKTURY DANYCH cz1
bazy danych cz1
Elementy statystycznego modelowania danych EDA
Zasady modelowania danych
IiKWPI sem4 Modelowanie cz1
2 Dynamika cz1
,Modelowanie i symulacja systemów, Model dynamiczny
Mikrokontrolery ARM cz1

więcej podobnych podstron