PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH dr hab. inż. Maciej Zakrzewicz Instytut Informatyki Politechnika Poznańska www.zakrzewicz.pl (c) 1995-2015 M.Zakrzewicz,M.Matysiak.

1 2 ...
Author: Magdalena Marczak
0 downloads 0 Views

1

2 PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH dr hab. inż. Maciej Zakrzewicz Instytut Informatyki Politechnika Poznańska www.zakrzewicz.pl (c) 1995-2015 M.Zakrzewicz,M.Matysiak Instytut Informatyki, Politechnika Poznańska Richard Barker, CASE Method. Modelowanie związków encji, WNT 2006 Richard Barker, Cliff Longman, CASE Method. Modelowanie funkcji i procesów, WNT 2006

3 2 Plan Wykładów Metodyka budowy systemu informatycznego Modelowanie danych i projektowanie bazy danych Model związków encji Model związków encji Metodyka budowy diagramów związków encji (ERD) Metodyka budowy diagramów związków encji (ERD) Modelowanie funkcji Model funkcjonalny, dekompozycja funkcji, zdarzenia Model funkcjonalny, dekompozycja funkcji, zdarzenia Diagramy hierarchii funkcji (FHD) Diagramy hierarchii funkcji (FHD) Modelowanie przepływów danych Diagramy przepływów danych (DFD) Diagramy przepływów danych (DFD) Powiązania funkcji z danymi Powiązania funkcji z danymi Modelowanie procesów Procesy, przepływy, magazyny, wyzwalacze Procesy, przepływy, magazyny, wyzwalacze

4 3CASE*Method STRATEGIA ANALIZA PROJEKTOWANIE IMPLEMENTACJA WDROŻENIE EKSPLOATACJA DOKUMENTACJA Ogólny model pojęciowy systemu Szczegółowy model pojęciowy systemu Struktury logiczne i fizyczne danych i aplikacji Baza danych i funkcjonalne aplikacje Instalacja systemu u odbiorcy Użytkowanie, pielęgnacja, modyfikacje, usuwanie usterek (Analityk systemowy) (Projektant) (Programista) (Wdrożeniowiec, programista, szkoleniowiec) (Administrator, programista)

5 4 Koszt zmiany STRATEGIA ANALIZA PROJEKTOWANIE IMPLEMENTACJA WDROŻENIE EKSPLOATACJA DOKUMENTACJA 10 100 1000 10000 100000 10

6 5 Projektowanie struktur danych a projektowanie aplikacji STRATEGIA ANALIZA PROJEKTOWANIE IMPLEMENTACJA WDROŻENIE EKSPLOATACJA DOKUMENTACJA Modelowanie danych (diagramy związków encji) Transformacja modelu danych do modelu relacyjnego Przygotowanie skryptów SQL Budowa struktur logicznych i fizycznych bazy danych Modelowanie procesów Modelowanie funkcji, modelowanie przepływów danych Projektowanie modułów aplikacyjnych Programowanie aplikacji Instalacja aplikacji na sprzęcie odbiorcy

7 MODELOWANIE DANYCH DIAGRAMY ZWIĄZKÓW ENCJI

8 7 Cel modelowania danych Otrzymanie dokładnego modelu potrzeb informacyjnych przedsiębiorstwa Otrzymanie dokładnego modelu potrzeb informacyjnych przedsiębiorstwa Dekompozycja i strukturalizacja problemu Dekompozycja i strukturalizacja problemu Sformalizowanie opisu z wykorzystaniem języka graficznego - jednoznaczność i czytelność Sformalizowanie opisu z wykorzystaniem języka graficznego - jednoznaczność i czytelność Mechanizm efektywnej komunikacji pomiędzy analitykiem i użytkownikiem, pomiędzy analitykami systemu, a nawet pomiędzy użytkownikami 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 Poprawa jakości i efektywności projektowania bazy danych Opis danych niezależny od struktur logicznych i fizycznych Opis danych niezależny od struktur logicznych i fizycznych Niezależność od implementacji pozwala na zastosowanie modelu do integracji istniejących baz danych 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 Podstawa do zrozumienia procesów realizowanych w przedsiębiorstwie i jego reorganizacji Możliwość prezentacji potrzeb informacyjnych na różnym poziomie ogólności Możliwość prezentacji potrzeb informacyjnych na różnym poziomie ogólności

9 8 Modelowanie związków encji Modelowanie związków encji obejmuje identyfikowanie rzeczy ważnych w analizowanym przedsiębiorstwie (encji), własności tych rzeczy (atrybutów) i sposobów, jakimi te encje są ze sobą powiązane (związków)

10 9Encja Encja (ang. entity) jest bytem, rzeczą lub obiektem mającym dla nas znaczenie, rzeczywistym bądź wyobrażonym, o którym informacje muszą być znane lub przechowywane. Nazwa encji powinna być podana w liczbie pojedynczej i zapisana wielkimi literami. Nazwa encji powinna być podana w liczbie pojedynczej i zapisana wielkimi literami. Nazwa encji musi dokładnie reprezentować typ lub klasę rzeczy, a nie żadne jej konkretne wystąpienie Nazwa encji musi dokładnie reprezentować typ lub klasę rzeczy, a nie żadne jej konkretne wystąpienie Gdy w danym kontekście istnieją różne słowa będące nazwami tej samej encji, można używać synonimów: jedną nazwę wybieramy jako główną, natomiast synonimy wymieniamy poprzedzając je ukośnikiem Gdy w danym kontekście istnieją różne słowa będące nazwami tej samej 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 Podanie przykładów pomaga zrozumieć istotę encji i odróżnić ją od podobnych NAZWA ENCJI PORT LOTNICZY/LOTNISKO np. Heathrow

11 10 Atrybuty encji Atrybut jest dowolnym szczegółem służącym do kwalifikowania, identyfikowania, klasyfikowania, określania ilości lub wyrażania stanu encji (atrybut jest dowolnym opisem mającym znaczenie dla encji) Atrybut musi opisywać encję, przy której występuje Atrybut musi opisywać encję, przy której występuje Nazwa atrybutu musi być podana w liczbie pojedynczej Nazwa atrybutu musi być podana w liczbie pojedynczej Każda encja musi być jednoznacznie zidentyfikowana przez kombinację atrybutów i/lub związków Każda encja musi być jednoznacznie zidentyfikowana przez kombinację atrybutów i/lub związków ENCJA-A atrybut-1 atrybut-2

12 11 ZAWODNIK Jan Kowalski ul. Garbary 13 555 25 52 ZAWODNIK Jan Kowalski ul. Garbary 13 555 25 52 Przykład encji Jan Kowalski ul. Garbary 13 tel. 555 25 52 Zdzisław Nowak ul. Solna 58 tel. 555 11 33 Stanisław Zieliński ul. Św. Marcin 82 tel. 555 93 86 MODELOWANIE ZAWODNIK Imię Nazwisko Adres Telefon ZAWODNIK Jan Kowalski ul. Garbary 13 555 25 52 wystąpienia encji:

13 12 Obiekty materialne i niematerialne Obiekty materialne pracownik, samochód, budynek, produkt, itp. SAMOCHÓD marka numer_fabryczny prędkość_maksym zużycie_paliwa Obiekty niematerialne konto bankowe, zamówienie, grupa pracownicza, itp. grupa pracowników administracyjnychGRUPA PRACOWNICZA nazwa grupy średnie wynagrodz. liczba pracowników dzień wypłaty Zdarzenia choroba pracownika, przyznanie nagrody, itp. CHOROBA PRACOWNIKA data_rozpoczęcia data_zakończenia rodzaj_choroby Byłem chory... Oto zwolnienie lekarskie. Fakty znajomość języka obcego, stan magazynowy produktu, itp. ZNAJOMOŚĆ JĘZYKA OBCEGO nazwa_języka stopień_znajomości Znam biegle język angielski!

14 13Związek Związek jest nazwanym, istotnym powiązaniem istniejącym między dwiema encjami. W szczególnym przypadku związek może być powiązaniem tej samej encji ze sobą 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ą: Każdy związek ma dwa końce, z których każdy ma przypisaną: nazwęnazwę stopieństopień opcjonalnośćopcjonalność Nazwy związku powinny być tak dobierane, aby możliwe było budowanie zdań w języku naturalnym, np. pracownik posiada samochód Nazwy związku powinny być tak dobierane, aby możliwe było budowanie zdań w języku naturalnym, np. pracownik posiada samochód nazwa

15 14 Przykład związku Jan Kowalski Zdzisław Nowak Stanisław Zieliński posiada jest własnością posiada jest własnością Ford Opel MODELOWANIE PRACOWNIKSAMOCHÓD posiada jest własnością

16 15 Własności związków Wiemy, że: Istnieją powiązania pomiędzy obiektami typu PRACOWNIK i SAMOCHÓD. Chcemy wiedzieć: Ile samochodów może posiadać pracownik? Ilu pracowników może być właścicielami jednego samochodu ?Ile samochodów może posiadać pracownik? Ilu pracowników może być właścicielami jednego samochodu ? Czy każdy pracownik musi posiadać samochód? Czy musimy znać właściciela każdego samochodu?Czy każdy pracownik musi posiadać samochód? Czy musimy znać właściciela każdego samochodu? Czy dany samochód może stać się własnością innego pracownika?Czy dany samochód może stać się własnością innego pracownika? Jakiej użyć notacji ? Jan Kowalski Zdzisław Nowak Stanisław Zieliński posiada jest własnością posiada jest własnością Ford Opel PRACOWNIK SAMOCHÓD posiada jest własnością

17 16 Stopień asocjacji związków 1:N Firma realizuje projekty zlecone przez różnych klientów. Dany projekt wykonywany jest dla jednego konkretnego klienta, a dany klient może zlecić wykonanie wielu projektów. Klient X Klient Y Klient Z Projekt Alfa Projekt Beta Projekt Gamma zlecił wykonanie zlecił wykonanie zlecił wykonanie wykonany dla Interpretacja związku "jeden do wielu": Każdy projekt może być wykonywany tylko dla jednego klienta. Każdy projekt może być wykonywany tylko dla jednego klienta. Każdy klient może zlecić wykonanie jednego lub wielu projektów. Każdy klient może zlecić wykonanie jednego lub wielu projektów. PROJEKT KLIENT został wykonany dla zlecił wykonanie

18 17 Stopień asocjacji związków M:N Projekty są realizowane przez pracowników. Każdy projekt jest realizowany przez jednego lub wielu pracowników. Każdy pracownik może brać udział w realizacji jednego lub wielu projektów. Kowalski Celińska Nowicki Zieliński Nowak Projekt Alfa Projekt Beta bierze udział w realizowany przez realizowany przez bierze udział w Interpretacja związku "wiele do wielu": Każdy pracownik może brać udział w jednym lub wielu projektach. Każdy pracownik może brać udział w jednym lub wielu projektach. Każdy projekt może być realizowany przez jednego lub wielu pracowników. Każdy projekt może być realizowany przez jednego lub wielu pracowników. PROJEKT PRACOWNIK jest realizowany przez bierze udział w

19 18 Stopień asocjacji związków 1:1 Działy firmy kierowane są przez pracowników. Dany dział może być kierowany tylko przez jednego pracownika (kierownika działu), a dany pracownik może kierować nie więcej niż jednym działem. Dział Księgowości Dział Sprzedaży Kowalski Celińska Nowicki Zieliński Nowak kieruje kierowany przez kierowany przez Interpretacja: Każdy pracownik może kierować jednym działem. Każdy pracownik może kierować jednym działem. Każdy dział może być kierowany przez jednego pracownika. Każdy dział może być kierowany przez jednego pracownika. DZIAŁ PRACOWNIK jest kierowany przez kieruje

20 19 Opcjonalność i obowiązkowość związków Kowalski Nowak posiada jest własnością posiada jest własnością Celińska Ford Opel jest własnością Fiat Opcjonalność w świecie rzeczywistym: Nie każdy pracownik posiada samochód. Często nie wiemy czy pracownik posiada samochód. Obowiązkowość w świecie rzeczywistym: Każdy samochód (o którym chcemy przechowywać informacje) musi być własnością określonego pracownika. Interpretacja związku jednostronnie obowiązkowego: Każdy pracownik może posiadać jeden lub więcej samochodów. Każdy pracownik może posiadać jeden lub więcej samochodów. Każdy samochód musi być własnością jednego pracownika. Każdy samochód musi być własnością jednego pracownika. PRACOWNIKSAMOCHÓD posiada jest własnością

21 20 Opcjonalność i obowiązkowość związków Dwustronna obowiązkowość Firma posiada samochody dostawcze. Dla każdego samochodu musimy znać dane dotyczące ostatniego przeglądu technicznego. Każdy przegląd techniczny, o którym przechowujemy informacje, musi dotyczyć jednego z samochodów firmy. Interpretacja: Każdy samochód dostawczy musi posiadać jeden lub wiele przeglądów technicznych.Każdy samochód dostawczy musi posiadać jeden lub wiele przeglądów technicznych. Każdy przegląd techniczny musi dotyczyć jednego konkretnego samochodu.Każdy przegląd techniczny musi dotyczyć jednego konkretnego samochodu. Dwustronna opcjonalność Każdy pracownik może (ale nie musi) posiadać stopień naukowy oraz istnieją stopnie naukowe, które nie muszą być zdobyte przez żadnego z pracowników firmy. Interpretacja: Każdy pracownik może posiadać jeden stopień naukowy.Każdy pracownik może posiadać jeden stopień naukowy. Każdy stopień naukowy może zostać zdobyty przez jednego lub wielu pracowników.Każdy stopień naukowy może zostać zdobyty przez jednego lub wielu pracowników. SAMOCHÓD DOSTAWCZY PRZEGLĄD TECHNICZNY posiada dotyczy PRACOWNIK STOPIEŃ NAUKOWY posiada zdobyty przez

22 21 Hierarchia encji Dziedziczenie atrybutów Firma zatrudnia pracowników krajowych i zagranicznych. Wszyscy pracownicy opisani są pewnymi wspólnymi atrybutami, ale zarówno pracownicy krajowi i zagraniczni posiadają atrybuty specyficzne. Jan Kowalski ul. Długa 23 nr dow.osob.: WL8034567 John Smith ul. Malinowa 14/7 nr paszportu: X485674345 pracownicy krajowipracownicy zagraniczni państwo: Holandia Hierarchia encji PRACOWNIK imię nazwisko adres PRACOWNIK KRAJOWY nr_dowodu_osob PRACOWNIK ZAGRANICZNY nr_paszportu państwo generalizacja specjalizacje atrybuty wspólne atrybuty specyficzne Własności hierarchii encji: Specjalizacje dziedziczą wszystkie atrybuty generalizacji.Specjalizacje dziedziczą wszystkie atrybuty generalizacji. Każde wystąpienie generalizacji jest zawsze wystąpieniem jednej ze specjalizacji.Każde wystąpienie generalizacji jest zawsze wystąpieniem jednej ze specjalizacji.

23 22 Hierarchia encji Dziedziczenie związków Każdy pracownik jest zatrudniony na określonym stanowisku w jednym z działów firmy. W odniesieniu do pracowników krajowych, chcemy wiedzieć, w jakich zakładach pracy byli poprzednio zatrudnieni. Hierarchia encji PRACOWNIK KRAJOWY PRACOWNIK ZAGRANICZNY PRACOWNIK STANOWISKO DZIAŁ ZAKŁAD PRACY zatrudnia zatrudniony w obsadzone przez zatrudniony na pracował w zatrudniał Związki: zatrudniony w i zatrudniony na, dotyczą pracowników krajowych i zagranicznych.Związki: zatrudniony w i zatrudniony na, dotyczą pracowników krajowych i zagranicznych. Związek pracował w jest specyficzny dla pracowników krajowych.Związek pracował w jest specyficzny dla pracowników krajowych. Własności hierarchii encji: Specjalizacje dziedziczą wszystkie związki generalizacji Specjalizacje dziedziczą wszystkie związki generalizacji

24 23 Hierarchia encji bez specyficznych atrybutów - łuk Chcemy przechowywać opis każdej dokonanej naprawy dotyczącej środków trwałych i elementów wyposażenia. Opis naprawy w obu przypadkach jest podobny. NAPRAWA SRODKA TRWAŁ. NAPRAWA WYPOSAŻENIA NAPRAWA ŚRODEK TRWAŁY ELEMENT atrybuty WYPOSAŻENIA dotyczy Encje NAPRAWA ŚRODKA TRWAŁ i NAPRAWA WYPOSAŻENIA nie posiadają specyficznych atrybutów. Specjalizacje posiadają wyłącznie specyficzne związki. Własności: Każde wystąpienie encji NAPRAWA musi być powiązane albo ze środkiem trwałym, albo z elementem wyposażeniaKażde wystąpienie encji NAPRAWA musi być powiązane albo ze środkiem trwałym, albo z elementem wyposażenia Łuk

25 24 Własności atrybutów - ograniczenia integralnościowe Dziedzina wartości 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) Obligatoryjność Ograniczenie, że dla wszystkich wystąpień encji, wartości danego atrybutu muszą być określone Notacja:* nazwiskoo drugie_imię (opcjonalność) Jednoznaczny identyfikator Wartości atrybutu, lub kombinacji atrybutów, muszą być unikalne wśród wszystkich wystąpień encji Notacja:# symbol_projektu Zawężenie dziedziny wartości Dodatkowe ograniczenie na wartości przyjmowane przez dany atrybut, definiowane za pomocą wyrażeń logicznych i odwołań do innych atrybutów Przykłady: check( day(data_wypłaty) 'niedziela' ), check( data_zakończenia > data_rozpoczęcia ) Dynamika wartości Ograniczenie na kolejność wartości przyjmowanych przez dany atrybut Przykład:kawaler, żonaty, wdowiec

26 25 Własności związków - ograniczenia integralnościowe Obligatoryjność: Ograniczenie, że wszystkie wystąpienia encji muszą posiadać wystąpienie danego związku Jednoznaczność: Wszystkie wystąpienia związku lub kombinacji związków muszą być unikalne w zbiorze wszystkich wystąpień encji Wzajemne wykluczanie (łuk): Ograniczenie, że każde wystąpienie encji może posiadać tylko jedno wystąpienie związku spośród związków objętych łukiem Nieprzenaszalność: Uniemożliwia modyfikację raz określonego powiązania

27 26 Jednoznaczny identyfikator encji 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 atrybutów, kombinacja związków lub kombinacja atrybutów i związków. Naturalne atrybuty identyfikujące Na jeden lub kilka rzeczywistych atrybutów nakładamy ograniczenie unikalności. PROJEKT # symbol projektu nazwa projektu data rozpoczęcia data zakończenia budżet PROJEKT # symbol projektu nazwa projektu # data rozpoczęcia data zakończenia budżet lub Sztuczny atrybut identyfikujący W przypadku gdy: liczba atrybutów zapewniających unikalność > 2, wartości atrybutu unikalnego mają duże rozmiary, często modyfikujemy wartości atrybutów unikalnych, do zbioru naturalnych atrybutów encji dodajemy sztuczny atrybut pełniący rolę unikalnego identyfikatora.

28 27 Jednoznaczne identyfikatory w hierarchii encji Metody definiowania jednoznacznego identyfikatora w hierarchii encji: wiele jednoznacznych identyfikatorów na najniższym poziomiewiele jednoznacznych identyfikatorów na najniższym poziomie jeden jednoznaczny identyfikator na najwyższym poziomiejeden jednoznaczny identyfikator na najwyższym poziomie Jednoznaczny identyfikator na poziomie generalizacji: Wspólne, naturalne atrybuty hierarchii encji, Atrybut sztuczny dodany na poziomie generalizacji, Kombinacje związków generalizacji, Kombinacje związków i atrybutów generalizacji. Własności: Własności: Jednoznaczny identyfikator jest dziedziczony przez wszystkie specjalizacje Jednoznaczny identyfikator jest dziedziczony przez wszystkie specjalizacje Umożliwia identyfikację wystąpień wszystkich specjalizacji Umożliwia identyfikację wystąpień wszystkich specjalizacji Jednoznaczne identyfikatory na poziomie specjalizacji: Dla każdej specjalizacji na najniższym poziomie (liście hierarchii) definiujemy niezależnie jednoznaczne identyfikatory

29 METODYKA KONSTRUOWANIA DIAGRAMU ZWIĄZKÓW ENCJI

30 29 Atrybut czy encja ? Wyraźnie wyeksponowane obiekty, opisane zbiorem informacji, w naturalny sposób modelujemy jako encje. Problem: Czy dana rzecz lub cecha, nazwana z użyciem rzeczownika, jest atrybutem opisującym encję, czy jest samodzielną encją ? Atrybut traktujemy jako nową encję: 1.Gdy sam jest opisany dodatkowymi informacjami; 2.Gdy chcemy pamiętać dynamiczny zbiór wartości tego atrybutu niezależnie od istnienia opisywanego obiektu; 3.Gdy stwierdzamy, że atrybut może dla jednego obiektu przyjmować wiele wartości. Przykłady: Pracownicy opisani m.in. numerem telefonu. Pracownicy opisani m.in. numerem telefonu. Opisz sytuację, w której numer telefonu będzie atrybutem pracownika i sytuację, w której telefon będzie osobną encją.Opisz sytuację, w której numer telefonu będzie atrybutem pracownika i sytuację, w której telefon będzie osobną encją. Pracownicy opisani są m.in. zajmowanym stanowiskiem. Pracownicy opisani są m.in. zajmowanym stanowiskiem. Opisz sytuację, w której stanowisko będzie atrybutem pracownika i sytuację, w której stanowisko będzie osobną encją.Opisz sytuację, w której stanowisko będzie atrybutem pracownika i sytuację, w której stanowisko będzie osobną encją. Samochody opisane są m.in. kolorem. Samochody opisane są m.in. kolorem. Opisz sytuację, w której kolor będzie atrybutem samochodu i sytuację, w której kolor będzie osobną encją.Opisz sytuację, w której kolor będzie atrybutem samochodu i sytuację, w której kolor będzie osobną encją. Zamówienia opisane są m.in. danymi odbiorcy. Zamówienia opisane są m.in. danymi odbiorcy. Opisz sytuację, w której dane odbiorcy będą atrybutami zamówienia i sytuację, kiedy odbiorca będzie osobną encją.Opisz sytuację, w której dane odbiorcy będą atrybutami zamówienia i sytuację, kiedy odbiorca będzie osobną encją.

31 30 Związek czy encja ? Problem: Czy dany fakt (nazwany z użyciem czasownika), dotyczący znanych już obiektów, jest związkiem łączącym określone encje, czy jest nową encją ? Przykład 1: Produkty przechowujemy w magazynach. Chcemy wiedzieć, w jakich magazynach przechowywany jest dany produkt oraz, jakie produkty przechowujemy w danym magazynie. Czy wystarczy związek wiele do wielu ? Produkty przechowujemy w magazynach. Chcemy wiedzieć, w jakich magazynach przechowywany jest dany produkt oraz, jakie produkty przechowujemy w danym magazynie. Czy wystarczy związek wiele do wielu ? Przykład 2: Pracownicy znają języki obce (modelowane jako encja). Opisz sytuację, w której wystarczy związek pomiędzy pracownikiem i językiem obcym oraz sytuację, w której potrzebna jest nowa encja Pracownicy znają języki obce (modelowane jako encja). Opisz sytuację, w której wystarczy związek pomiędzy pracownikiem i językiem obcym oraz sytuację, w której potrzebna jest nowa encja Zamiast związku M:N wstawiamy nową encję gdy fakt modelowany związkiem wymaga opisu za pomocą dodatkowych atrybutów (np. ilość danego w magazynie, stopień znajomości języka)

32 31 Zastępowanie związku M:N encją Kiedy zastępujemy związek M:N nową encją ? Gdy chcemy każde powiązanie pomiędzy dwoma obiektami (np. pracownikiem i językiem obcym) opisać dodatkowymi atrybutami dotyczącymi tego powiązania (np. stopień znajomości języka). PRACOWNIKJĘZYK OBCY # id_pracownika imię nazwisko... # id_języka nazwa_języka dodatek zna opanowany przez PRACOWNIKJĘZYK OBCY # id_pracownika imię nazwisko... # id_języka nazwa_języka dodatek ZNAJOMOŚĆ stopień JĘZYKA OBCEGO podnosi wartośćdotyczy Własności:  Związek M:N zastępujemy encją i dwoma związkami 1:N  Związki 1:N są obowiązkowe po stronie "wiele", niezależnie od opcjonalności związku M:N  Obowiązkowość związku M:N przenosimy jako obowiązkowość związków 1:N po stronie "jeden"  Bezpośredni związek typu wiele do wielu przekształcony został na pośredni związek wiele do wielu (poprzez encję ZNAJOMOŚĆ JĘZYKA OBCEGO)

33 32 Zastępowanie związku n-arnego encją Kiedy związek n-arny zastępujemy nową encją ? gdy chcemy każde wystąpienie związku opisać dodatkowymi atrybutami gdy chcemy każde wystąpienie związku opisać dodatkowymi atrybutami gdy narzędzie CASE nie umożliwia rysowania związków n-arnych gdy narzędzie CASE nie umożliwia rysowania związków n-arnych AB CD AB CD E Własności: Związek n-arny zastępujemy encją i n-związkami związkami 1:N Związek n-arny zastępujemy encją i n-związkami związkami 1:N Związki 1:N są obowiązkowe po stronie "wiele", niezależnie od opcjonalności związku n-arnego Związki 1:N są obowiązkowe po stronie "wiele", niezależnie od opcjonalności związku n-arnego Obowiązkowość związku n-arnego przenosimy jako obowiązkowość związków 1:N po stronie "jeden" Obowiązkowość związku n-arnego przenosimy jako obowiązkowość związków 1:N po stronie "jeden" Bezpośrednia n-arna zależność przekształcona została na zależność pośrednią (poprzez encję E) Bezpośrednia n-arna zależność przekształcona została na zależność pośrednią (poprzez encję E)

34 33 Atrybuty złożone Atrybut jest nazywany złożonym, gdy jego wartość dla jednego wystąpienia encji jest złożeniem kilku bardziej elementarnych wartości. Modelowanie atrybutów złożonych: W definicji encji umieszczamy tylko atrybuty elementarne. W definicji encji umieszczamy tylko atrybuty elementarne. Atrybuty elementarne można w sposób nieformalny grupować przez stosowanie przedrostków w nazwach atrybutów. Atrybuty elementarne można w sposób nieformalny grupować przez stosowanie przedrostków w nazwach atrybutów.

35 34 Atrybuty wielowartościowe Atrybut jest nazywany wielowartościowym, gdy posiada wiele wartości dla jednego wystąpienia encji  555-22-20 555-05-64 555-04-77 Jan Kowalski PRACOWNIK # id_pracownika imię nazwisko... TELEFON # numer_tel PRACOWNIK # id_pracownika imię nazwisko... TELEFON # id_telefonu należy do posiadaużywa używany numer_tel fax_telefon lub przez telefon: Modelowanie atrybutów wielowartościowych: Atrybuty wielowartościowe modelujemy za pomocą dodatkowej encji. Atrybuty wielowartościowe modelujemy za pomocą dodatkowej encji.

36 35Agregacja Agregacja to obiekt (często abstrakcyjny) zbudowany z innych, bardziej elementarnych obiektów. Agregacja to obiekt (często abstrakcyjny) zbudowany z innych, bardziej elementarnych obiektów. Grupa pracowników Poznański oddział firmy administracyjnych liczba pracowników: 4 średnie wynagrodzenie: 2000 zł dzień wypłaty: 10 nazwa grupy: Administracja nazwa oddziału: Alfa liczba pracowników: 34 adres: ul. Krótka 4, Poznań liczba działów: 3 pracownicy działy Modelowanie agregacji: Wprowadzamy nową encję reprezentującą agregację. Wprowadzamy nową encję reprezentującą agregację. Nową encję łączymy związkiem 1:N z encją, która modeluje obiekty tworzące agregację. Nową encję łączymy związkiem 1:N z encją, która modeluje obiekty tworzące agregację. GRUPA PRACOWNICZA nazwa_grupy liczba_prac średnie_wynagr dzień_wypłaty PRACOWNIK...obejmuje należy do ODDZIAŁ nazwa_oddziału ulica miasto liczba_prac DZIAŁ...składa się z należy do liczba_działów

37 36 Hierarchia danych Hierarchia danych to struktura o topologii drzewa, powiązanych wzajemnie obiektów. Przykłady powiązań hierarchicznych: pracownik - pracownicy - pracownicy... oddział firmy - działy firmy - zespoły produkt - podzespoły - inne podzespoły... Modelowanie hierarchii danych encja i związek rekurencyjny encje i związki 1:N encja ze związkiem rekurencyjnym i encją klasyfikującą

38 37 Hierarchia encji a agregacja Różne rodzaje obiektów w świecie rzeczywistym Firma produkuje trzy rodzaje zabawek: mechaniczne, gry planszowe pluszowe maskotki. Hierarchia encjiAgregacja Który model jest prawidłowy ? Czy poszczególne rodzaje zabawek posiadają specyficzne atrybuty ? Czy poszczególne rodzaje zabawek posiadają specyficzne atrybuty ? Czy poszczególne rodzaje zabawek posiadają specyficzne związki ? Czy poszczególne rodzaje zabawek posiadają specyficzne związki ? Czy chcemy przechowywać informacje dotyczącego danego rodzaju zabawek ? Czy chcemy przechowywać informacje dotyczącego danego rodzaju zabawek ?

39 38 Modelowanie czasu dane o charakterze ponadczasowym dane opisujące stan aktualny czas dane opisujące nieregularne okresy czasu dane opisujące zdarzenia regularne dane opisujące zdarzenia nieregularne dane opisujące regularne okresy czasu Dane ponadczasowe: zbiór stanowisk, marki samochodów, miasta, itp. charakter statyczny - brak elementu czasu Dane opisujące stan aktualny: wynagrodzenie, koszt surowców, cena sprzedaży, itp. charakter dynamiczny - brak elementu czasu możliwość wersjonowania Dane opisujące zdarzenia nieregularne: przyznanie nagrody, zakup towaru, itp. opis zdarzenia, moment zajścia zdarzenia Dane opisujące nieregularne okresy czasu: urlop pracownika, wypożyczenie książki, itp. moment rozpoczęcia i zakończenia Dane opisujące zdarzenia regularne: wypłata dla pracownika, pobranie składki, itp. opis zdarzenia, odwołanie do zegara czasowego Dane opisujące regularne okr. czasu: przyznany budżet, limit roczny, itp. opis merytoryczny, odwołanie do zegara czasowego (np.: okresu rozrachunkowego)

40 39 Wersjonowanie danych Historyczne wersje modyfikowanych danych, modelujemy za pomocą dodatkowej encji. Jeden z atrybutów nowej encji pełni rolę stempla czasowego. Wersjonowanie atrybutów brak elementu czasu brak elementu czasu opis stanu bieżącego opis stanu bieżącego PRACOWNIK # id_pracownika * nazwisko... * akt_wynagrodz POPRZEDNIE # do_dnia o od_dnia * wynagrodzenie WYNAGRODZENIE pobierał pobierane przez aktualne wynagrodzenie aktualne wynagrodzenie poprzednie wersje wynagrodzenia poprzednie wersje wynagrodzenia moment zmiany lub okres czasu moment zmiany lub okres czasu Wersjonowanie związków Aktualnie zajmowane stanowisko - brak elementu czasu Aktualnie zajmowane stanowisko - brak elementu czasu Aktualne i poprzednie stanowiska zajmowane przez pracownika - okresy czasu Aktualne i poprzednie stanowiska zajmowane przez pracownika - okresy czasu

41 40 Kontrola jakości encji Czy jest to znacząca nazwa podana w liczbie pojedynczej? Czy zachodzi wzajemne wykluczanie się? Czy encja ma przynajmniej dwa atrybuty? Czy encja nie ma więcej niż osiem atrybutów? Czy występują synonimy/homonimy encji? Czy jest to kompletna definicja encji? Czy uwzględnia się ilościową informację? Czy encja ma jednoznaczny identyfikator? Czy z encji wychodzi przynajmniej jeden związek? Czy istnieje przynajmniej jedna funkcja do utworzenia, wyszukania, modyfikowania, usuwania, archiwizowania i używania encji? Czy uwzględnia się wymagania dot. rozproszenia? Czy uwzględnia się zmiany w czasie? Czy w odniesieniu do encji spełnione są zasady normalizacji danych? Czy encja już istnieje w innych systemach użytkowych, być może pod inną nazwą? Czy nie jest za bardzo ogólna? Czy jest wystarczająco ogólna?

42 41 Kontrola jakości podtypów Czy podtypy są wzajemnie wykluczające się? Czy podtyp ma jakieś atrybuty i/lub związki? Czy wszystkie podtypy mają własne jednoznaczne identyfikatory lub czy mają identyfikator wspólny z nadtypem? Czy jest to kompletny zbiór możliwych podtypów? Czy podtyp nie jest przypadkiem przykładem encji? Czy znasz atrybuty i/lub związki oraz warunki, które pozwalają odróżnić jeden podtyp od drugiego?

43 42 Kontrola jakości atrybutów Czy jest to znacząca nazwa podana w liczbie pojedynczej? Czy nazwa nie obejmuje nazwy encji? Czy ma tylko jedną wartość w danej chwili? Czy jest podana definicja formatu, długości, dozwolonych wartości, wyliczenia, itd.? Czy nie jest to czasem brakująca encja, być może wymagana przez inny istniejący lub przewidywany system użytkowy? 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?

44 43 Przykłady błędnych hierarchii encji Intencja: klasyfikacja pracowników Błąd:dane opisujące kierowników, projektantów i pracowników administracyjnych są identyczne Rozwiązanie:pojedyncza encja z rozróżniającym atrybutem Intencja: inna obsługa firm prywatnych i państwowych Błąd: różne przetwarzanie pewnej grupy obiektów nie może być powodem utworzenia hierarchii encji Rozwiązanie: pojedyncza encja z rozróżniającym atrybutem Intencja: samochody ciężarowe wymagają dodatkowego opisu Błąd:każde wystąpienie encji SAMOCHÓD jest samochodem ciężarowym. Rozwiązanie: dodatkowa specjalizacja, np.: INNY SAMOCHÓD

45 44 Sprawdzanie jakości związków Test składniowy: Czy nazwy są znaczące, pozwalające zbudować w języku naturalnym dwie interpretacje związku? Czy nazwy są znaczące, pozwalające zbudować w języku naturalnym dwie interpretacje związku? Czy określono stopień asocjacji związku? Czy określono stopień asocjacji związku? Czy określono obligatoryjność / opcjonalność związku? Czy określono obligatoryjność / opcjonalność związku? Czy związek należy do zbioru konstrukcji uznanych za błędne? Czy związek należy do zbioru konstrukcji uznanych za błędne?Łuki: Czy obejmuje minimum dwa związki ? Czy obejmuje minimum dwa związki ? Czy wszystkie związki w łuku mają taką samą obligatoryjność ? Czy wszystkie związki w łuku mają taką samą obligatoryjność ? Czy wszystkie związki w łuku dochodzą do tej samej encji ? Czy wszystkie związki w łuku dochodzą do tej samej encji ? Czy żaden ze związków w łuku nie tworzy unikalnego identyfikatora ? Czy żaden ze związków w łuku nie tworzy unikalnego identyfikatora ? Test semantyczny: Czy związek wprowadza nową wiedzę do modelu (nie jest redundantny) ? Czy związek wprowadza nową wiedzę do modelu (nie jest redundantny) ? Związek nie ma znaczenia efektywnościowego ? Związek nie ma znaczenia efektywnościowego ? Jeśli obligatoryjny, czy nie występują nawet krótkie chwile gdy nie można dowiązać obiektu po drugiej stronie ? Jeśli obligatoryjny, czy nie występują nawet krótkie chwile gdy nie można dowiązać obiektu po drugiej stronie ?Łuki: Czy każde wystąpienie encji jest łączone tylko jednym ze związków ? Czy każde wystąpienie encji jest łączone tylko jednym ze związków ?

46 45 Wadliwe konstrukcje związków Związek 1:1 dwustronnie obligatoryjny Wystąpienia A i B pojawiają się zawsze parami. Wystąpienia A i B pojawiają się zawsze parami. Encje A i B są prawdopodobnie różnymi perspektywami. Encje A i B są prawdopodobnie różnymi perspektywami.  Połącz atrybuty i związki encji A i B w jedną encję. Obligatoryjne związki rekurencyjne  Nieskończone listy.  Zastąp obligatoryjność opcjonalnością  Nieskończone hierarchie - kolejno: brak liści, brak korzeni, obustronna nieskończoność.  Zastąp obligatoryjność opcjonalnością  Nieskończone sieci.  Zastąp obligatoryjność opcjonalnością

47 46 Przykłady typowych błędów Niejawny związek pomiędzy encjamiRedundancja związków

48 MODELOWANIE FUNKCJI i MODELOWANIE PRZEPŁYWÓW DANYCH

49 48 Modelowanie funkcji Technika modelowania systemu Technika modelowania systemu poprzez opis tego co on robi: identyfikacja działań - funkcji,identyfikacja działań - funkcji, identyfikacja przyczyn tych działań - zdarzeń,identyfikacja przyczyn tych działań - zdarzeń, identyfikacja obiektów (encji), na których operują funkcje.identyfikacja obiektów (encji), na których operują funkcje. Korzyści z modelowania funkcji  precyzyjne określenie potrzeb funkcjonalnych organizacji - co robić (obecnie i w przyszłości), aby osiągnąć zamierzone cele.  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 usprawnienia funkcjonowania przedsię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żytkowników - zrozumienie kontekstu indywidualnych działań

50 49Funkcja Funkcja jest opisem tego co robi przedsiębiorstwo dla osiągnięcia określonego celu. Funkcja jest opisem tego co robi przedsiębiorstwo dla osiągnięcia określonego celu. Założenia dotyczące własności funkcji: odpowiedź na pytanie "Co robi ?", odpowiedź na pytanie "Co robi ?", brak szczegółowego opisu przetwarzanych danych, brak szczegółowego opisu przetwarzanych danych, brak odpowiedzi na pytanie "Kto to robi ?" brak odpowiedzi na pytanie "Kto to robi ?" brak odpowiedzi na pytanie "Kiedy to robi ?" brak odpowiedzi na pytanie "Kiedy to robi ?" brak odpowiedzi na pytanie "W jaki sposób ?" brak odpowiedzi na pytanie "W jaki sposób ?" Korzyści płynące z przyjętych założeń: niezależność od struktury organizacyjnej; niezależność od struktury organizacyjnej; strukturę organizacyjną można zmodyfikować pod kątem realizowanych funkcji strukturę organizacyjną można zmodyfikować pod kątem realizowanych funkcji niezależność od metody realizacji; niezależność od metody realizacji; sposób realizacji można modyfikować w miarę postępu technologicznego sposób realizacji można modyfikować w miarę postępu technologicznego duża trwałość modelu duża trwałość modeluPrzykład: Uczelnia realizuje zbieranie informacji o dorobku naukowym pracowników. Model funkcjonalny zawiera zatem funkcję o nazwie "Uzupełnienie informacji o dorobku naukowym pracownika". Nazwa funkcji mówi co robi uczelnia, ale nie mówi: Model funkcjonalny zawiera zatem funkcję o nazwie "Uzupełnienie informacji o dorobku naukowym pracownika". Nazwa funkcji mówi co robi uczelnia, ale nie mówi: jak realizowana jest funkcja od strony technicznej,jak realizowana jest funkcja od strony technicznej, która komórka organizacyjna się tym zajmuje,która komórka organizacyjna się tym zajmuje, kiedy ma miejsce to uzupełnianie informacji.kiedy ma miejsce to uzupełnianie informacji. Modyfikacja, któregokolwiek czynnika nie wpływa na model funkcjonalny uczelni. Modyfikacja, któregokolwiek czynnika nie wpływa na model funkcjonalny uczelni.

51 50 Przykłady funkcji Funkcją (business function) jest to co przedsiębiorstwo robi, lub będzie musiało robić, aby osiągnąć zamierzone cele. Funkcją (business function) jest to co przedsiębiorstwo robi, lub będzie musiało robić, aby osiągnąć zamierzone cele. Zgodnie z przyjętą definicją, funkcjami są: Zgodnie z przyjętą definicją, funkcjami są: (realizowane np. przez dział sprzedaży) (realizowane np. przez dział sprzedaży) "Przyjęcie zamówienia od odbiorcy""Przyjęcie zamówienia od odbiorcy" "Wystawienie faktury sprzedaży dla odbiorcy""Wystawienie faktury sprzedaży dla odbiorcy" "Sporządzenie wykazu niezrealizowanych zamówień""Sporządzenie wykazu niezrealizowanych zamówień" (realizowane np. przez dział ds. osobowych): (realizowane np. przez dział ds. osobowych): "Przygotowanie umowy o pracę""Przygotowanie umowy o pracę" "Wystawienie karty obiegowej""Wystawienie karty obiegowej" (realizowane np. przez dział ds. finansowych): (realizowane np. przez dział ds. finansowych): "Dekretowanie raportów kasowych""Dekretowanie raportów kasowych" "Sporządzanie sprawozdania o przychodach i kosztach""Sporządzanie sprawozdania o przychodach i kosztach" "Prowadzenie księgi druków ścisłego zarachowania""Prowadzenie księgi druków ścisłego zarachowania" (realizowane np. przez dział zarządzania majątkiem) (realizowane np. przez dział zarządzania majątkiem) "Wystawienie dokumentu przyjęcia składnika majątkowego""Wystawienie dokumentu przyjęcia składnika majątkowego" "Nadanie numeru inwentarzowego przyjętemu składnikowi majątkowemu""Nadanie numeru inwentarzowego przyjętemu składnikowi majątkowemu" (realizowane np. przez redakcję czasopisma) (realizowane np. przez redakcję czasopisma) "Ewidencja danych o reklamującej się firmie""Ewidencja danych o reklamującej się firmie" "Wystawienie faktury za reklamę, dla firmy reklamowanej w czasopiśmie""Wystawienie faktury za reklamę, dla firmy reklamowanej w czasopiśmie" "Sporządzenie aktualnego wykazu prenumeratorów""Sporządzenie aktualnego wykazu prenumeratorów"

52 51  Nazwa funkcji jest opisem wykonywanego działania lub czynności. Nazwa funkcji Zasady nazywania funkcji Nazwa funkcji powinna się rozpoczynać od czasownika imperatywnego lub rzeczownika odczasownikowego: Nazwa funkcji powinna się rozpoczynać od czasownika imperatywnego lub rzeczownika odczasownikowego: "Przyjmij zamówienie od odbiorcy" lub:"Przyjmij zamówienie od odbiorcy" lub: "Przyjęcie zamówienia od odbiorcy""Przyjęcie zamówienia od odbiorcy" Dobierając nazwę funkcji należy sprawdzać: Dobierając nazwę funkcji należy sprawdzać: Czy zdefiniowano,,jak coś jest robione'' zamiast,,co jest robione'' ?;Czy zdefiniowano,,jak coś jest robione'' zamiast,,co jest robione'' ?; Czy ta sama funkcja może być zrealizowana w różny sposób ?Czy ta sama funkcja może być zrealizowana w różny sposób ?Przykład Elementem zatrudniania pracownika jest wprowadzenie tego pracownika do ewidencji i zapamiętanie w ten sposób m.in. jego danych personalnych. Elementem zatrudniania pracownika jest wprowadzenie tego pracownika do ewidencji i zapamiętanie w ten sposób m.in. jego danych personalnych. Poprawna nazwa funkcji: Poprawna nazwa funkcji: "Ewidencja danych personalnych zatrudnianego pracownika""Ewidencja danych personalnych zatrudnianego pracownika" Złe nazwy funkcji: Złe nazwy funkcji: "Wypełnienie druku KP-3 zawierającego dane personalne pracownika""Wypełnienie druku KP-3 zawierającego dane personalne pracownika" "Wprowadzenie pracownika do ewidencji w pokoju 14""Wprowadzenie pracownika do ewidencji w pokoju 14" Funkcje wykonywane warunkowo: mogą zawierać słowny opis warunków realizacji funkcji: mogą zawierać słowny opis warunków realizacji funkcji: "Znajdź odpowiedniki leku, gdy zamówionego leku nie ma w magazynie" "Znajdź odpowiedniki leku, gdy zamówionego leku nie ma w magazynie"

53 52 Reprezentacja funkcji Funkcja (działanie) jest reprezentowana przez prostokąt. Funkcja (działanie) jest reprezentowana przez prostokąt. Wewnątrz prostokąta umieszczamy pełną nazwę funkcji; Wewnątrz prostokąta umieszczamy pełną nazwę funkcji; nazwa, nie jest nazwą w klasycznym rozumieniu tego słowa - jest to raczej zdanie określające czynność jaka powinna być wykonana,nazwa, nie jest nazwą w klasycznym rozumieniu tego słowa - jest to raczej zdanie określające czynność jaka powinna być wykonana, należy unikać skrótów, żargonu, akronimów,należy unikać skrótów, żargonu, akronimów, nazwa musi być przejrzysta i zrozumiała - może być rozbudowana,nazwa musi być przejrzysta i zrozumiała - może być rozbudowana, w miarę możliwości należy używać tych samych określeń, np. zawsze "Ewidencja danych o...", a nie raz "Ewidencja danych o...", a innym razem "Wprowadzenie danych o..." lub "Zapisanie danych o...".w miarę możliwości należy używać tych samych określeń, np. zawsze "Ewidencja danych o...", a nie raz "Ewidencja danych o...", a innym razem "Wprowadzenie danych o..." lub "Zapisanie danych o...". Na zewnątrz prostokąta umieszczamy unikalną etykietę funkcji dla jej jednoznacznej identyfikacji; Na zewnątrz prostokąta umieszczamy unikalną etykietę funkcji dla jej jednoznacznej identyfikacji; etykieta funkcji może pokazywać lokalizację funkcji w hierarchii. Na przykład: funkcja K-ZP jest częścią (podfunkcją) funkcji K.etykieta funkcji może pokazywać lokalizację funkcji w hierarchii. Na przykład: funkcja K-ZP jest częścią (podfunkcją) funkcji K. 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 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

54 53 Hierarchia funkcji najprostsza i najbardziej użyteczna technika modelowania funkcji najprostsza i najbardziej użyteczna technika modelowania funkcji Struktura drzewiasta: korzeń reprezentuje całą działalność przedsiębiorstwa lub zakres badań analityków. Struktura drzewiasta: korzeń reprezentuje całą działalność przedsiębiorstwa lub zakres badań analityków. Wyróżnić można następujące poziomy ogólności: Wyróżnić można następujące poziomy ogólności: poziom ogólny przedsiębiorstwa,poziom ogólny przedsiębiorstwa, poziom systemu,poziom systemu, poziom procedur.poziom procedur. Każda funkcja nadrzędna (inaczej - funkcja rodzica) w hierarchii funkcji powinna być w sposób kompletny opisana za pomocą funkcji podrzędnych (inaczej - funkcji dzieci) Każda funkcja nadrzędna (inaczej - funkcja rodzica) w hierarchii funkcji powinna być w sposób kompletny opisana za pomocą funkcji podrzędnych (inaczej - funkcji dzieci)

55 54 Trzy główne poziomy funkcjonalne Poziom ogólny gdy funkcje pokazują ogólne działania realizowane w przedsiębiorstwie: gdy funkcje pokazują ogólne działania realizowane w przedsiębiorstwie: prowadzenie sprzedaży produktówprowadzenie sprzedaży produktów dokonywanie zakupu surowcówdokonywanie zakupu surowców działalność marketingowadziałalność marketingowa obsługa prenumeraty czasopismobsługa prenumeraty czasopism Poziom systemu gdy funkcje pokazują elementarne działania na poziomie operacyjnym: gdy funkcje pokazują elementarne działania na poziomie operacyjnym: ewidencja nowego zamówienia od odbiorcyewidencja nowego zamówienia od odbiorcy wydanie towaru z magazynuwydanie towaru z magazynu wystawienie fakturywystawienie faktury sporządzenie polecenia przelewu bankowego.sporządzenie polecenia przelewu bankowego. Poziom procedur gdy funkcje pokazują elementarne operacje, które nie są wykonywane samodzielnie gdy funkcje pokazują elementarne operacje, które nie są wykonywane samodzielnie sprawdzenie czy odbiorca znajduje się już w bazie danych,sprawdzenie czy odbiorca znajduje się już w bazie danych, wprowadzenie danych nowego odbiorcy, gdy jest to jego pierwsze zamówieniewprowadzenie danych nowego odbiorcy, gdy jest to jego pierwsze zamówienie określenie daty przyjęcia zamówienia i przewidywanego terminu realizacjiokreślenie daty przyjęcia zamówienia i przewidywanego terminu realizacji

56 55 Poziomy hierarchii funkcji Interpretacja funkcji na różnych poziomach szczegółowości: Interpretacja funkcji na różnych poziomach szczegółowości: obszary działalności, funkcje ogólne, czynności, elementarne operacje. Funkcja położona najwyżej w hierarchii reprezentuje całą działalność modelowanej organizacji lub cały zakres przedsięwzięcia Funkcja położona najwyżej w hierarchii reprezentuje całą działalność modelowanej organizacji lub cały zakres przedsięwzięcia

57 56 Dekompozycja funkcji Funkcję można zdekomponować na kilka bardziej szczegółowych funkcji składowych, które tworzą kolejny poziom w hierarchii. 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. Funkcja podlegająca dekompozycji, nazywana jest funkcją nadrzędną a funkcje znajdujące się na kolejnym poziomie, funkcjami podrzędnymi. Interpretacja dekompozycji funkcji Wykonanie funkcji nadrzędnej jest realizowane przez wykonanie funkcji podrzędnych. Wykonanie funkcji nadrzędnej jest realizowane przez wykonanie funkcji podrzędnych.Przykład Funkcja (1) "Ewidencja kandydata " Funkcja (1) "Ewidencja kandydata " została zdekomponowana na bardziej szczegółowe funkcje: Funkcja (1.1) "Wprowadzenie danych personalnych" Funkcja (1.1) "Wprowadzenie danych personalnych" Funkcja (1.2) "Wprowadzenie ocen ze świadectwa maturalnego" Funkcja (1.2) "Wprowadzenie ocen ze świadectwa maturalnego" co oznacza, że zrealizowanie funkcji (1) polega na wykonywaniu wszystkich funkcji podrzędnych (1.1) i (1.2). Własności nowego poziomu hierarchii funkcji: nie ma zależności kolejnościowych - funkcje mogą być realizowane w dowolnej kolejności, nie ma zależności kolejnościowych - funkcje mogą być realizowane w dowolnej kolejności, nie ma zależności częstościowych - funkcje mogą być wykonywane różną ilość razy. nie ma zależności częstościowych - funkcje mogą być wykonywane różną ilość razy. Kiedy zakończyć dekompozycję ?

58 57 Przykład prostej dekompozycji

59 58 Przykład rozbudowanej dekompozycji (1)

60 59 Przykład rozbudowanej dekompozycji (2)

61 60 Przykład rozbudowanej dekompozycji (3)

62 61 Funkcje elementarne Funkcje elementarne to funkcje, które po zainicjowaniu muszą być zrealizowane pomyślnie w całości. Funkcje elementarne to funkcje, które po zainicjowaniu muszą być zrealizowane pomyślnie w całości. W przypadku niemożności zakończenia funkcji elementarnej, powinny zostać wycofane wszystkie wprowadzone przez nie zmiany. W przypadku niemożności zakończenia funkcji elementarnej, powinny zostać wycofane wszystkie wprowadzone przez nie zmiany. Funkcje elementarne umieszczane są najczęściej na najniższym poziomie hierarchii funkcji. Funkcje elementarne umieszczane są najczęściej na najniższym poziomie hierarchii funkcji. Przykłady funkcji elementarnych "Ewidencja nowego zamówienia" "Ewidencja nowego zamówienia" "Naliczenie danemu pracownikowi dodatku za wysługę lat" "Naliczenie danemu pracownikowi dodatku za wysługę lat" Zalety identyfikacji funkcji elementarnych kontrola poziomu dekompozycji hierarchii funkcji, kontrola poziomu dekompozycji hierarchii funkcji, łatwe odwzorowanie funkcji na aplikacje, łatwe odwzorowanie funkcji na aplikacje, możliwość szacowania czasochłonności fazy implementacji możliwość szacowania czasochłonności fazy implementacji

63 62 Kopie funkcji Funkcja może być kopią innej funkcji w hierarchii, gdy reprezentuje dokładnie to samo działanie. Funkcja może być kopią innej funkcji w hierarchii, gdy reprezentuje dokładnie to samo działanie. Wprowadzanie kopii funkcji do hierarchii Dokładnie tą samą akcję w innym miejscy hierarchii funkcji możemy zamodelować poprzez wstawienie kopii funkcji (common function) z refernecją na funkcję wzorcową (master function). Dokładnie tą samą akcję w innym miejscy hierarchii funkcji możemy zamodelować poprzez wstawienie kopii funkcji (common function) z refernecją na funkcję wzorcową (master function). Zalety stosowania kopii funkcji: identyfikacja podobnych akcji w różnych obszarach działalności przedsiębiorstwa identyfikacja podobnych akcji w różnych obszarach działalności przedsiębiorstwa zmniejszenie liczby definicji funkcji w modelu zmniejszenie liczby definicji funkcji w modelu uniknięcie podwójnego projektowania i implementacji bardzo podobnych aplikacji uniknięcie podwójnego projektowania i implementacji bardzo podobnych aplikacji

64 63 Techniki konstruowania hierarchii Podejście Top-down (od ogółu do szczegółu) Modelowanie rozpoczyna się od funkcji nadrzędnej, którą następnie dekomponuje się na składowe. Proces jest powtarzany dla każdej funkcji podrzędnej, aż do otrzymania funkcji elementarnych. Podejście Bottom-Up (od szczegółu do ogółu) Na podstawie informacji, uzyskanych z wywiadów, sporządza się szczegółową listę funkcji, a następnie grupuje się tematycznie uzyskując bardziej ogólne funkcje. Technika mieszana

65 64Zdarzenia Zdarzenia definiują przyczyny podejmowania określonych działań - wykonywania odpowiednich funkcji. Zdarzenia definiują przyczyny podejmowania określonych działań - wykonywania odpowiednich funkcji. Definicje zdarzeń stanowią rozszerzenie modelu funkcjonalnego Definicje zdarzeń stanowią rozszerzenie modelu funkcjonalnego Kategorie zdarzeń zdarzenia zewnętrzne - wynikają z akcji podejmowanych przez obiekty zewnętrzne względem systemu. zdarzenia zewnętrzne - wynikają z akcji podejmowanych przez obiekty zewnętrzne względem systemu. Przykłady: przesłanie zamówienia przez odbiorcę,przesłanie zamówienia przez odbiorcę, złożenie podania o przyjęcie do pracy;złożenie podania o przyjęcie do pracy; zmiany w systemie - gdy wprowadzamy, modyfikujemy lub usuwamy informacje w ramach systemu. zmiany w systemie - gdy wprowadzamy, modyfikujemy lub usuwamy informacje w ramach systemu. Przykłady: wydanie towaru z magazynu,wydanie towaru z magazynu, obniżenie stanu magazynowego produktu poniżej wartości minimalnej,obniżenie stanu magazynowego produktu poniżej wartości minimalnej, zmiana wynagrodzenia pracownika;zmiana wynagrodzenia pracownika; zdarzenia czasowe (lub czasu rzeczywistego) - gdy czas osiąga pewien wyznaczony punkt. zdarzenia czasowe (lub czasu rzeczywistego) - gdy czas osiąga pewien wyznaczony punkt. Przykłady: koniec okresu rozliczeniowego,koniec okresu rozliczeniowego, dzień sporządzania listy wypłat.dzień sporządzania listy wypłat.

66 65 Związek zdarzenia z funkcją Związek wyrażany w języku naturalnym:,, powoduje wykonanie funkcji.”,, powoduje wykonanie funkcji.”Przykład Wykrycie przeterminowania towaru powoduje wykonanie funkcji "Zwrot towaru do dostawcy". Wykrycie przeterminowania towaru powoduje wykonanie funkcji "Zwrot towaru do dostawcy". Związek zdarzenia z funkcją wyrażany graficznie

67 66 Modelowanie zależności funkcji Jedno zdarzenie, może wywołać realizację sekwencji funkcji zakończonych wyprodukowaniem określonych danych. Jedno zdarzenie, może wywołać realizację sekwencji funkcji zakończonych wyprodukowaniem określonych danych. Definicje zależności pomiędzy zdarzeniem i realizowanymi funkcjami stanowią kolejne rozszerzenie modelu funkcjonalnego Definicje zależności pomiędzy zdarzeniem i realizowanymi funkcjami stanowią kolejne rozszerzenie modelu funkcjonalnego Możliwość prezentacji związków przyczynowo-skutkowych w funkcjonowaniu przedsiębiorstwa: Możliwość prezentacji związków przyczynowo-skutkowych w funkcjonowaniu przedsiębiorstwa: Jakie działania zostaną wykonane po zajściu zdarzenia "Otrzymanie podania o przyjęcie do pracy" ? Jakie działania zostaną wykonane po zajściu zdarzenia "Otrzymanie podania o przyjęcie do pracy" ? Przyczyny zależności:  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. Przykład diagramu zależności funkcji: zdarzenie zależności pomiędzy funkcjami wyniki

68 67 Prezentacja hierarchii funkcji Układ pionowy

69 68 Układ poziomy i mieszany hierarchii funkcji Układ poziomy Układ mieszany

70 69 Związek funkcji z danymi Diagramy matrycowe funkcje - dane Diagramy matrycowe funkcje - dane Diagramy przepływu danych Diagramy przepływu danych

71 70 Jakość modelu funkcjonalnego Czy nazwa funkcji rozpoczyna się od czasownika lub rzeczownika odczasownikowego, opisując w ten sposób działanie, które jest modelowane?Czy nazwa funkcji rozpoczyna się od czasownika lub rzeczownika odczasownikowego, opisując w ten sposób działanie, które jest modelowane? Czy nazwa funkcji nie sugeruje kto ją wykonuje (jednostka organizacyjna, osoba, itp.) ?Czy nazwa funkcji nie sugeruje kto ją wykonuje (jednostka organizacyjna, osoba, itp.) ? Czy nazwa funkcji nie sugeruje jaka technologia jest użyta do jej realizacji ?Czy nazwa funkcji nie sugeruje jaka technologia jest użyta do jej realizacji ? Czy nazwa funkcji nie sugeruje kiedy funkcja jest wykonywana ?Czy nazwa funkcji nie sugeruje kiedy funkcja jest wykonywana ? Czy model nie ogranicza się do opisu działań w dniu dzisiejszym ?Czy model nie ogranicza się do opisu działań w dniu dzisiejszym ? Czy model jest zrozumiały i zaakceptowany przez użytkowników ?Czy model jest zrozumiały i zaakceptowany przez użytkowników ?

72 71 Diagramy przepływu danych Technika modelowania systemu poprzez opisanie przepływu informacji pomiędzy procesami (funkcjami). Technika modelowania systemu poprzez opisanie przepływu informacji pomiędzy procesami (funkcjami). Termin angielski Termin polski dataflowprzepływ danych datastore zbiornik danych (magazyn danych) external entitybyt zewnętrzny (obiekt zewnętrzny) dataflow diagramdiagram przepływu danych Rodowód Opis obiegu dokumentów 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ą wewnętrzną strukturę systemu łączącą działania (akcje, operacje) z przetwarzanymi danymi. Pokazują procesy w systemie i wymieniane pomiędzy nimi informacje. 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ą zależności pomiędzy procesami wynikające z produkowania i konsumowania danych. Pokazują wymianę danych ze światem zewnętrznym. Pokazują wymianę danych ze światem zewnętrznym. Pomagają decydować o dalszej dekompozycji procesów. Pomagają decydować o dalszej dekompozycji procesów. Stanowią podstawę do specyfikacji aplikacji, procedur ręcznych, urządzeń elektronicznych. 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ą algorytmu przetwarzania danych wewnątrz procesów. Nie pokazują momentów czasowych kiedy proces jest rozpoczynany. Nie pokazują momentów czasowych kiedy proces jest rozpoczynany.

73 72 Przykładowy diagram przepływu danych

74 73 Zbiornik danych Zbiornik danych jest nazwanym zbiorem obiektów, atrybutów, związków i innych jeszcze niesformalizowanych jednostek informacji, które muszą zostać przechowane przez pewien okres czasu. Zbiornik danych jest nazwanym zbiorem obiektów, atrybutów, związków i innych jeszcze niesformalizowanych jednostek informacji, które muszą zostać przechowane przez pewien okres czasu.Reprezentacja: Byt zewnętrzny Byt zewnętrzny jest obiektem zlokalizowanym na zewnątrz systemu, który jest źródłem informacji przesyłanej do systemu lub miejscem przeznaczenia informacji wychodzącej z systemu. Byt zewnętrzny jest obiektem zlokalizowanym na zewnątrz systemu, który jest źródłem informacji przesyłanej do systemu lub miejscem przeznaczenia informacji wychodzącej z systemu.Reprezentacja: GŁÓWNY URZĄD STATYSTYCZNY

75 74 Przepływ danych Przepływ danych jest nazwanym zbiorem obiektów, atrybutów, związków i innych, jeszcze niesformalizowanych jednostek informacji, przesyłanych: Przepływ danych jest nazwanym zbiorem obiektów, atrybutów, związków i innych, jeszcze niesformalizowanych jednostek informacji, przesyłanych: z jednego miejsca w drugie,z jednego miejsca w drugie, pomiędzy procesami,pomiędzy procesami, pomiędzy procesem i zbiornikiem danych.pomiędzy procesem i zbiornikiem danych.Reprezentacja: grot strzałki pokazuje kierunek przepływu danych grot strzałki pokazuje kierunek przepływu danych nazwa przepływu w sposób zbiorczy opisuje wszystkie przekazywane informacje nazwa przepływu w sposób zbiorczy opisuje wszystkie przekazywane informacje Dwukierunkowy przepływ danych

76 75 Interpretacje przepływu danych Przepływ pomiędzy procesami Proces A produkuje dane Proces A produkuje dane i przekazuje je do procesu B. Brak zwłoki czasowej Brak zwłoki czasowej pomiędzy procesami. Przepływ pomiędzy procesem i zbiornikiem danych Proces odczytuje dane zapamiętane w zbiorniku danych. Proces odczytuje dane zapamiętane w zbiorniku danych. Proces modyfikuje zawartość Proces modyfikuje zawartość zbiornika danych: wprowadza nowe dane, modyfikuje istniejące lub usuwa dane ze zbiornika. zbiornika danych: wprowadza nowe dane, modyfikuje istniejące lub usuwa dane ze zbiornika. Przepływ pomiędzy procesem i bytem zewnętrznym Byt zewnętrzny jest źródłem danych Byt zewnętrzny jest źródłem danych wchodzących do systemu i konsumowanych przez proces. Proces produkuje dane i przekazuje je Proces produkuje dane i przekazuje je na zewnątrz systemu do określonego bytu zewnętrznego.

77 76 Błędne konstrukcje przepływów danych Przepływ danych pomiędzy zbiornikami Zbiorniki danych jako elementy pasywne, nie mogą inicjować przepływu danych. Zbiorniki danych jako elementy pasywne, nie mogą inicjować przepływu danych. Przepływ danych pomiędzy bytem zewnętrznym i zbiornikiem danych Przetwarzanie danych znajdujących się wewnątrz systemu nie może być realizowane bez udziału procesu Przetwarzanie danych znajdujących się wewnątrz systemu nie może być realizowane bez udziału procesu

78 77 Definiowanie struktury zbiornika danych Struktura zbiornika danych to zbiór encji, atrybutów, związków i jeszcze niesformalizowanych jednostek informacji. 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: Dwa skrajne przypadki odwzorowania modelu związków encji na zbiorniki danych: cała baza danych widziana jako jeden zbiornikcała baza danych widziana jako jeden zbiornik pojedyncze encje lub atrybuty widziane jako osobne zbiorniki danych.pojedyncze encje lub atrybuty widziane jako osobne zbiorniki danych. Problem doboru wielkości zbiorników danych Problem doboru wielkości zbiorników danych Przykładowa struktura zbiornika danych:

79 78 Definiowanie zawartości przepływu danych Zawartość przepływu jest definiowana za pomocą: atrybutów encji, atrybutów encji, związków, związków, niesformalizowanych jednostek informacji. niesformalizowanych jednostek informacji. Interpretacja przepływów danych: Przepływ - Zbiornik danych---> Proces - reprezentuje operację odczytu danych ze zbiornika Przepływ - Zbiornik danych---> Proces - reprezentuje operację odczytu danych ze zbiornika Przepływ - Proces--->Zbiornik danych - reprezentuje kombinację operacji: wprowadzania, modyfikowania i usuwania danych ze zbiornika Przepływ - Proces--->Zbiornik danych - reprezentuje kombinację operacji: wprowadzania, modyfikowania i usuwania danych ze zbiornika

80 79 Powiązania matrycowe Funkcje-Encje Jakie dane przetwarzane są przez daną funkcję ? Jakie dane przetwarzane są przez daną funkcję ? Jakie operacje wykonywane są na tych danych ? Jakie operacje wykonywane są na tych danych ? Przyjęcie zamówienia... FAKTURY ODBIORCY PRODUKTY ZAMÓWIENIA... Wiązanie funkcji z encjami można realizować automatycznie na podstawie przepływów danych Wiązanie funkcji z encjami można realizować automatycznie na podstawie przepływów danych Retrieve Insert Update Delete Y Y Y ODBIORCY Przyjęcie zamówienia... - wyszukanie odbiorcy - wprowadzenie nowego odb. - aktualizacja danych odb.

81 80 Sprawdzanie kompletności i jakości DFD Czy proces ma przynajmniej jeden przepływ wejściowy ? Czy proces ma przynajmniej jeden przepływ wejściowy ? Czy proces ma przynajmniej jeden przepływ wyjściowy ? Czy proces ma przynajmniej jeden przepływ wyjściowy ? Czy element zbiornika danych jest produkowany przynajmniej przez jeden przepływ wejściowy ? Czy element zbiornika danych jest produkowany przynajmniej przez jeden przepływ wejściowy ? Czy element zbiornika danych jest konsumowany przynajmniej przez jeden przepływ wyjściowy ? Czy element zbiornika danych jest konsumowany przynajmniej przez jeden przepływ wyjściowy ? Czy suma logiczna przepływów wejściowych do zbiornika równa jest sumie logicznej przepływów wyjściowych ? Czy suma logiczna przepływów wejściowych do zbiornika równa jest sumie logicznej przepływów wyjściowych ? Czy nie ma redundantnych przepływów pomiędzy tymi samymi elementami diagramu ? Czy nie ma redundantnych przepływów pomiędzy tymi samymi elementami diagramu ? Czy można wyprodukować dane wyjściowe na podstawie danych wejściowych ? Czy można wyprodukować dane wyjściowe na podstawie danych wejściowych ? Czy wszystkie dane wejściowe są niezbędne ? Czy wszystkie dane wejściowe są niezbędne ? Czy dla danych o wyraźnym charakterze przyrostowym, istnieją przepływy opróżniające zbiornik danych ? Czy dla danych o wyraźnym charakterze przyrostowym, istnieją przepływy opróżniające zbiornik danych ?