Modelowanie konceptualne
Faza określania wymagań: co i przy jakich ograniczeniach system ma zrobić. Wynik: zewnętrzny
opis systemu.
Faza analizy: jak system ma działać. Wynik: logiczny model systemu.
Faza projektowania: jak system ma zostać zaimplementowany. Wynik: projekt.
Strukturalne metody analizy:
–
model danych – diagram encji i związków (Entity-Relationship Diagram)
–
model dynamiki – diagram stanów
–
model funkcjonalny – diagram przepływu danych (Data Flow Diagram)
Diagram związków i encji
Konstruktory:
–
encja
●
reprezentuje obiekty materialne i koncepcyjne
●
musi być jednoznacznie identyfikowalna (nazwa)
●
wszystkie encje wzajemnie się wykluczają
●
encje silne zawierają atrybuty kluczowe
●
encja słaba nie ma takich atrybutów, jest powiązana z co najmniej jedną silną encją
–
atrybut
●
modeluje własność encji
●
zadania: identyfikacja, opis, klasyfikacja, określanie ilości lub wyrażenie stanu encji
•
przykładowo: numer zamówienia – identyfikacja, typ towaru – klasyfikacja, status
płatności – wyrażenie stanu etc.
●
mogą być jedno lub wielowartościowe
●
mogą być kluczowe (jednoznacznie determinować encję) lub niekluczowe (ew.
kluczowe w innych encjach)
●
mogą być obowiązkowe i opcjonalne
●
związek
–
relacja R pomiędzy n zbiorami encji E1, …, En
–
posiada stopień – liczbę wiązanych encji (unarny, binarny, ternarny)
●
typ asocjacji
–
liczba wiązanych instancji encji
–
1:1 (np. dziekan - wydział)
–
1:n (np. wydział - student)
–
m:n (np. książka – autor)
Supertyp – encja, która zawiera jedną lub więcej kategorii (subtypów) podwiązanych za pomocą
relacji; subtypu muszą się wzajemnie wykluczać.
Przykład: Pracownik może być pracownikiem etatowym lub pracownikiem na umowę zlecenie.
Diagram przepływu danych
–
przedstawia graficzny model procesów w systemie – bez odniesienia kiedy i jak zostały
wykonane
–
odzwierciedlają ruch danych w systemie rzeczywistym
–
pozwalają patrzeć na system na różnych poziomach szczegółowości
DFD jest głównym modelem dla programów nieinteraktywnych (np. kompilatorów), których
głównym zadaniem jest obliczanie wartości funkcji. Dla systemów służących do składowania
danych (np. bazy danych) DFD jest często trywialny, gdyż celem jest składowanie danych, a nie ich
transformacja.
Na proces składają się następujące elementy:
•
Terminatory — obiekty zewnętrzne stanowiące odbiorców bądź źródła danych lub
argumentów funkcji.
reprezentują źródła lub miejsca przeznaczenia informacji, które są zewnętrzne w
stosunku do systemu (np. osoba lub inny system komputerowy)
obiekt generujący lub przejmujący strumienie danych
•
Składnice (magazyny) danych — trwałe lub tymczasowe składnice danych, które są
argumentami dla funkcji.
reprezentują miejsca, gdzie dane są przechowywane między operującymi na nich
procesami
są dostępne tylko dla procesów co oznacza, że magazyn nie może się łączyć
bezpośrednio z terminatorem
przepływ do składu interpretowany jako zapis, modyfikacja lub usunięcie danych
•
Procesy — (funkcje) realizują określone cele; jeśli funkcji nie można rozbić na pod-funkcje,
wówczas nosi ona nazwę elementarnej.
odpowiadają tym składnikom systemu, które operują na danych
otrzymują i przesyłają dane za pośrednictwem przepływów danych
dokonują transformacji przepływów wejściowych i wyjściowe
•
Przepływy — elementy pokazujące kierunek przesyłu danych (np. bajtów, znaków,
pakietów).
opisują strumienie danych o określonej zawartości przepływające pomiędzy:
terminatorami a procesami
procesami a procesami
procesami a składnicami danych
Oznaczenia:
–
proces – kółko
–
magazyn – prostokąt
–
terminator – kwadrat
–
przepływ – strzałka
Pamiętajmy:
–
terminatory leżą poza modelowanym systemem
–
przepływy łączące terminatory do różnych składowych reprezentują interfejsy pomiędzy
systemem a światem zewnętrznym
–
analityk/projektant nie może zmieniać zawartości terminatora
–
dowolna relacja istniejąca pomiędzy terminatorami nie może być pokazana na diagramie
DFD
Diagramy DFD są rozbudowane, więc zazwyczaj tworzymy diagramy hierarchiczne, które:
–
składają się z zestawu powiązanych diagramów
–
posiadają następujące poziomy:
diagram kontekstowy
•
przedstawiony jako jeden proces oznaczający cały system wraz z przepływami do i
od terminatorów
diagram ogólny
•
przedstawia główne funkcje systemu
•
najbardziej ogólne spojrzenie na system (posiada kilka procesów, terminatorów i
magazyny)
diagram 1-go poziomu
diagram 2-go poziomu
…
Liczba poziomów nie powinna przekroczyć 7 +- 2.
Diagram przejść przez stany STD (State-Transition-Diagram)
Pokazuje zachowanie się systemu w czasie (szczególnie istotne dla systemów czasu rzeczywistego).
Ze względu na swoją elastyczność może też służyć do prezentowania sposobu realizacji funkcji
systemu.
Konstruktory:
–
zdarzenie
informuje o tym, co wydarzyło się w pewnej chwili
ma zerowy czas trwania
reprezentuje pewną klasę zjawisk o podobnej reakcji systemu, np.:
•
pociąg odjeżdża ze stacji
•
wybranie polecenia z menu
•
przekroczenie określonej temperatury
zdarzenia zachodzące poza systemem to zdarzenia zewnętrzne, np.:
•
wprowadzanie danych
przerwanie operacji przez użytkownika
zdarzenia wewnętrzne mają swoje źródło w ramach systemu, np.:
•
zakończenie wykonywania metody
•
błąd arytmetyczny
–
stan
czas między zdarzeniami
system w różnych stanach reaguje w sposób jakościowo rożny na zachodzące zdarzenia
–
przejście
zmiana stanu wywołana przez zdarzenie
przejście może być uwarunkowane spełnieniem dodatkowego warunku
–
akcja
czynność wykonywana w momencie zajścia zdarzenia
•
wykonywanie obliczeń
•
odłożenie słuchawki
–
operacja
związana z konkretnym stanem
oznacza czynność ciągłą, wykonywaną podczas trwania stanu
operację może przerwać zdarzenie powodujące przejście do nowego stanu
zakończenie operacji może spowodować wygenerowanie zdarzenia i przejście do innego
stanu
•
monitorowanie czujnika
•
wyświetlanie aktualnego czasu
Weryfikacja jakościowa STD:
–
czy zdefiniowano wszystkie stany
–
czy wszystkie stany są osiągalne
–
czy istnieją wyjścia ze wszystkich stanów (poza końcowymi)
–
czy w każdym stanie system odpowiada poprawnie na wszystkie możliwe warunki
Jakość
Model McCalla:
–
przyjazność – efektywność użytkowania programu i przyjazność jego interfejsu
–
bezpieczeństwo – bezpieczeństwo używania programu pod kątem kontroli do korzystania z
niego oraz odporności na skutki nieprawidłowej obsługi
–
wydajność – ocena wydajności systemu i sposobów zarządzania zasobami
–
poprawność – stopień realizacji wymagać, kompletność i logiczność wdrożenia, zgodność
działania programu ze specyfikacją
–
pielęgnowalność – stopień przystosowania programu do poprawy, modyfikacji,
rozszerzenia, adaptowania
–
elastyczność – możliwości rozbudowania programu o nowe funkcje oraz uniwersalność
wdrożonych rozwiązań
–
testowalność – przystosowanie do procesu testowania oraz instrumentacja tego procesu
–
przenośność – zdolność do łatwego uruchomienia na innych maszynach lub systemach
oprogramowania
–
uniwersalność – możliwość wykorzystania istniejącego oprogramowania lub jego
fragmentów do konstrukcji innych programów
–
otwartość – przystosowanie programu do współpracy lub wymiany informacji z innymi
systemami komputerowymi
Zapewnienie jakości
Fazy:
–
planowanie
–
nadzorowanie
–
doskonalenie