Tworzenie oprogramowania – podejście strukturalne 1. Faza wymagań
2. Faza analizy
2.1. modelowanie danych
2.2. modelowanie procesów i przepływu danych 3. Faza projektowania
3.1. odwzorowanie diagramu konceptualnego do diagramu logicznego 3.2. uzupełnienie diagramu klas na podstawie diagramu przepływu danych
Modelowanie danych
Modelowanie danych jest realizowane za pomocą budowy modelu encji i obejmuje:
identyfikacja encji
identyfikację związków encji
identyfikację i definiowanie atrybutów
Przykładem jest model CDM (Conceptual data model), który reprezentuje pełną logiczną strukturę aplikacji bazodanowej, niezależną od implementacji.
Model ten zawiera często dane, które nie są używane na poziomie fizycznej aplikacji – są to dane potrzebne do wyrażenia działania i znaczenia biznesowego aplikacji.
CDM pełni następujące role:
reprezentuje organizacje danych w formie graficznej
weryfikuje poprawność projektu danych
umożliwia wygenerowanie modelu projektowego, zawierającego odniesienia do implementacji (np. do wybranego systemu baz danych).
Elementy modelu
encje
połączenia typu relacje
połączenia typu dziedziczenie (wyspecjalizowana postać encji dziedziczącej po encji bazowej)
Podstawowe pojęcia:
Dziedzina – zbiór wartości określony dla poszczególnych danych
Pozycja danych – elementarna cząstka informacji
Encja – osoba, miejsce lub koncepcja reprezentująca element aplikacji lub miejsce do przechowania danych
Atrybut encji – elementarna cząstka informacji należąca do encji
Relacja – związek miedzy encjami
Połączenie typu dziedziczenie – specjalny związek definiujący encję jako wyspecjalizowany przypadek ogólnej encji
Właściwości relacji Mandatory
Właściwość relacji oznaczająca, czy związek między encjami jest mandatowy (prostokąt na diagramie) czy opcjonalny (kółko na diagramie). Związek jest mandatowy, jeżeli każda instancja encji A wymaga instancji encji B. Związek jest opcjonalny, jeżeli każda instancja encji A nie zawsze wymaga instancji encji B.
Dependent
W związku zależnym jedna encja jest identyfikowana przez drugą encję, Każda encja musi mieć identyfikator. W niektórych przypadkach atrybuty encji nie wystarczą do jednoznacznej identyfikacji jej wystąpień, stąd jest ona identyfikowana przez wartości atrybutów wystąpień innej encji, będącej z nią w zależności. Związek ten jest oznaczany na diagramie za pomocą trójkąta.
Np. W przypadku zadania, które występuje w wielu projektach, należy do jego identyfikacji użyć nazwy zadania i identyfikatora projektu
Dominant
W związku 1 do 1 można zaznaczyć dominujący kierunek relacji, co jest istotne przy generowaniu modelu logicznego (projektowego)- instancja encji B związana z instancją dominującej encji A musi zawierać jej identyfikator. W związkach 1 do 1 bez dominującej encji, instancje obu encji zawierają własne identyfikatory i instancji powiązanej.
Min Minimum – oznacza liczbę instancji encji A w relacji do encji B (w przypadku relacji mandatowej może być 1)
Max Maximum – oznacza liczbę instancji encji A w relacji do encji B (przy liczności wiele jest oznaczana jako n)
Role – tekst, który opisuje zależność encji B od encji A Liczność związków
zawiera
nalezy do
Transakcja Produkt
Jedna instancja Transakcji musi zawierać jedną instancję Produktu
dotyczy
Miejsce Bilet
Jedna instancja Miejsca może zawierać jedną instancję Biletu
wypozycza nalezy do
Klient Wypozyczenie
Jedna instancja Klienta może wypożyczyć jedną, wiele lub żadną instancję Wypozyczenia
sklada siê nalezy do
Wydzial Katedra
Jedna instancja Wydzialu musi składać się z wielu instancji Katedry. Wystąpienia encji Katedra muszą być identyfikowane przez identyfikator wystąpień encji Wydzial
rezerwuje sie
jest zarezerwowany
Tytul Rezerwacja
Jedna instancja Tytulu musi być związana z wieloma instancjami encji Rezerwacji, lub z żadną.
Wystąpienia encji Rezerwacja muszą być identyfikowane przez identyfikator wystapień encji Tytul
posiada nalezy do
Ubezpieczony Ubezpieczenie
Wiele instancji Ubezpieczony posiada wiele instancji Ubezpieczenie i jest zwykle przedstawiane w równoważnej postaci (prostej w implementacji)
jest dotyczy
posiada
nalezy do
Ubezpieczony A Ubezpieczenie
Instancja Ubezpieczony może być związana z wieloma instancjami pomocniczej encji A oraz instancja Ubezpieczenie może być związana z wieloma instancjami A. Instancje A zwierają nie powtarzające się pary powiązań do instancji encji Ubezpieczenie i Ubezpieczony.
zawiera
nalezy do
Katalog
Związek rekurencyjny (koniecznie opcjonalny) oznacza, że instancja Katalogu (plików) może być związana z wieloma instancjami Katalogu (podkatalogów plików) i każdy z nich może być związany z innymi instancjami Katalogu (podkatalogami plików). Związek musi być opcjonalny, aby mógł zawierać skończoną liczbę instancji.
nalezy
posiada nalezy
posiada
Polisa
Pracownik
Grupa or
Wykluczanie – Polisa może albo należeć do grupy osób albo do nie zrzeszonych osób
ma jest dyrektorem
posiada uczy
Szkola Nauczyciel
and
Zawieranie – W szkole uczy wielu nauczycieli, a jeden z nich jest dyrektorem szkoły.
Słowniki – poziom konceptualny Słowniki umożliwiają:
dokumentowanie elementów modeli: encji, atrybutów encji
uzupełnienie modeli o informacje poszerzające znaczenie modeli Relacje
Reguły biznesowe
Reguły biznesowe wyrażają lub opisują aplikację. Mogą nimi być: reguły wyrażające ustawy rządowe, wymagania użytkownika, reguły określające sposób wykonania aplikacji.
1) Reguła typu obserwacja
W bibliotece może tylko osoba zapisana do biblioteki wypożyczyć książkę
2) Reguła opisująca modelowanie np. zawieranie
Nauczyciel może uczyć w szkole i jednocześnie może być jej dyrektorem
3) Uzupełnienie oznaczeń graficznych
Wprowadzenie formuł umożliwiających walidację danych np. liczbę pewnych operacji
4) Reguły z poziomu konceptualnego
Wspomagają utworzenie modelu odpowiadającego danemu problemowi
5) Reguły z poziomu logicznego
Umożliwiają odwzorowanie modelu konceptualnego do modelu logicznego
Dziedziny danych
Encje
Atrybuty encji
Sprawdzanie poprawności modelu
Przykład modelu konceptualnego
Przykład modelu logicznego na poziomie projektowym – odwzorowanie z poziomu konceptualnego
Słowniki – poziom logiczny Dziedziny danych
Tabele
Kolumny
Powiązania
Indeksy
Odwzorowanie relacji i encji
1) Encje stają się tabelami, a atrybuty kolumnami tych tabel, każdy wiersz tabeli jest wystąpieniem encji
2) Encje dziedziczące i bazowa stają jedną tabelą, a atrybuty tych encji są kolumnami tych tabel
3) Lub każda encja bazowa i dziedziczące są osobnymi klasami
4) Lub klasy dziedziczące są osobnymi klasami i każda z nich posiada atrybuty klasy bazowej jako dodatkowe kolumny
5) Identyfikatory encji (atrybuty encji) są przekształcane w klucze główne tabel 6) W tabelach po stronie wiele pojawia się klucz obcy, który jest kluczem
głównym po stronie jeden (klucz główny tabeli PUBLISHER jest kluczem obcym w tabeli TITLE)
7) W związku jeden do jeden w obu tabelach pojawiają się klucze obce, pochodzące z tabel z drugiej strony związku, gdzie występują jako klucze główne
8) W przypadku encji dominującej w związku jeden do jeden, tylko tabela przeciwna posiada jako klucz obcy, klucz pochodzący od klasy dominującej 9) W przypadku encji zależnej (trójkąt po stronie encji zależnej umieszczony na
strzałce relacji), klucz główny z tabeli przeciwnej przenosi się do tabeli zależnej (tabela ROYSHED zawiera jako klucz główny, jedynie klucz z tabeli TITLE –TITLE_ISBN, ponieważ była w związku po stronie wiele jako klasa zależna).
Diagramy przepływu danych PAM (ProcessAnalyst Model) Modelowanie przepływu danych – faza analizy
główny proces określający kontekst systemu
jedną lub więcej encji zewnętrznych
przepływy danych między encjami i procesami lub procesami i magazynami lub między procesami
PAM modeluje procesy w systemie informacyjnym – pokazuje, jak dane są odwzorowywane i pokazują funkcjonalność procesu zastosowanego do danych
Role PAM
analiza procesów systemu
reprezentują proces w formie modelu
tworzą hierarchiczna strukturę procesów systemu Elementy PAM i ich interakcje:
dane (elementarne dane)
zewnętrzne encje
procesy
przepływy danych
łączenie i podział danych między źródłami danych
magazyny danych
Diagram kontekstowy aplikcji
Diagram kontekstowy aplikacji pozwala określić główny cel modelu przepływu danych – źródło danych reprezentowane przez encję zewnętrzną i główną funkcję modelu reprezentowaną przez proces nadrzędny (1 poziom w hierarchii procesów).
Informacje o publikcji User
1 Publiction
System
Drzewo procesów
Poziom 1 – proces Publish
Dekompozycja procesu: poziomy 1.1 (podproces Select) i 1.2 (podproces Print)
Przepływy danych
Na diagramie przepływu strzałka określa kierunek przepływu danych między encją zewnętrzną i procesem.
Przepływ danych łączy proces z encjami lub magazynami danych lub innym procesem. W procesie mogą wystąpić następujące operacje, które mogą czytać lub modyfikować dane:
tworzenie danych, czytanie danych (domyślne), zmiana danych, usuwanie danych. Przepływ danych przez magazyn danych nie zmienia danych: te same dane wpływają do magazynu i te same dane wypływają z tego magazynu.
Właściwosci przepływu danych
Przepływ danych: Manuscripts proposal (z encji zewnętrzej Author do podprocesu Select)
Przepływ danych: Accepted manuscripts (z podprocesu Select do magazynu danych Manuscripts pending)
Przepływ danych: Send manuscripts (z magazynu danych Manuscripts pending do procesu Print)
Przepływ danych: Send direct (z podprocesu Select do podprocesu Print)
Przepływ danych: Sends books (z podprocesu Print do encji zewnętrznej Bookstore)
Procesy
Proces (funkcja aplikacji) reprezentuje transformacje danych np. wybór manuskryptu polega na tym, że dane są wysłane do tego procesu Select w formie manuskryptu. Podczas selekcji manuskrypt jest przygotowany do druku i drukowany w procesie Print lub wstawiany w drugim przepływie danych w kolejkę do wydruku lub odstawiany do magazynu danych Manuscripts pending
Zewnetrzne encje
Zewnętrzna encja reprezentuje źródło danych na diagramie (jedna z encji lub jej część z diagramu encji, określająca dane wejściowe w procesie przepływu danych lub dane wyjściowe procesu przepływu danych.
Mogą to być całe encje z diagramu encji lub jej niektóre atrybuty).
Magazyny danych
Magazyn danych reprezentuje często encje z diagramu encji lub pojemnik na atrybuty należące do różnych encji. Wykorzystany jest on w sytuacjach, gdy dane należy odłożyć np. po przejściu przez proces Select, który dokonuje selekcji danych i tylko część z nich przepływa do innego procesu Print, a reszta jest wstawiana do magazynu danych – manuskrypty w przykładzie są przechowywane w magazynie Manuscripts pending
Modelowanie przepływu danych – faza projektu
Przepływy danych między magazynem danych Manuscripts pending i procesami Select i Print
Przepływ danych między procesami Select i Print Tablice CRUD - (Create, Read, Update, Delete)
proces/magazyny danych
proces/dane pokazują połączenie między danymi i procesami oraz typ operacji Tablice te dostarczają następujące informacje:
śledzenie i kontrolę kolejności przetwarzania danych
rolę magazynu danych jako części tabel i lub zbiorem atrybutów należących częściowo do jednej lub wielu encji
określenie praw dostępu dla użytkownika systemu