Modele systemu
description
Transcript of Modele systemu
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 1
Modele systemu
Abstrakcyjny opis systemów pomocniczych w analizowaniu wymagań stawianych tym systemom.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 2
Cele wiedzieć, dlaczego modelowanie kontekstu systemu jest
takie ważne; znać pojęcie modelowania zachowania, modelowania
danych i modelowania obiektowego; znać podstawy niektórych notacji zdefiniowanych w
Unified Modeling Language (UML) oraz wiedzieć, jak używać tych notacji do budowania różnych typów modeli systemu;
wiedzieć, w jaki sposób warsztaty CASE wspomagają modelowanie systemu.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 3
Zawartość Modele kontekstowe Modele zachowania Modele danych Modele obiektowe Warsztaty CASE
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 4
Modelowanie systemu Graficzne prezentacje, w których przedstawia się
problem do rozwiązania i system do zbudowania. Dzięki użyciu graficznych środków wyrazu modele są zwykle bardziej zrozumiałe niż szczegółowy opis wymagań systemowych w języku naturalnym.
Mogą być użyte do zobrazowania systemu z różnych punktów widzenia:• zewnętrznego, przy którym modeluje się kontekst lub środowisko
systemu;
• zachowania, przy którym modeluje się zachowanie systemu;
• strukturalnego, przy którym modeluje się architekturę systemu lub strukturę przetwarzanych danych.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 5
Metody strukturalne Są podstawą szczegółowego modelowania systemu w
ramach analizy i określania wymagań. Określają proces, który może być użyty do opracowania
tych modeli, oraz zbiór dotyczących ich reguł i wskazówek.
Tworzy się standardową dokumentację systemu. Zwykle są dostępne narzędzia CASE wspomagające
poszczególne metody. Są nimi edytory modeli, automatyczna dokumentacja systemu itd. Mają zwykle pewne udogodnienia do sprawdzania modeli.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 6
Słabości metody analizy strukturalnej
Niewystarczająco wspomagają rozpoznawanie i modelowanie niefunkcjonalnych wymagań systemowych.
Są ogólne pod tym względem, że zwykle nie zawierają wskazówek pomagających użytkownikom w podjęciu decyzji, czy konkretna metoda jest odpowiednia dla określonego problemu, czy nie.
Często nie obejmują porad, jak przystosować wybraną metodę do ustalonego środowiska.
Prowadzą zwykle do utworzenia zbyt obszernej dokumentacji. Istota wymagań systemowych może być ukryta w masie zapisanych szczegółów.
Opracowane modele są bardzo szczegółowe i użytkownikom trudno jest je zrozumieć. Tacy użytkownicy nie mogą autentycznie sprawdzić realizmu tych modeli.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 7
Przykłady różnych typów modeli systemu
Model przetwarzania danych. Na diagramach przepływu danych obrazuje się, jak dane są przetwarzane w różnych krokach pracy systemu.
Model składania. Na diagramach encja-związek przedstawia się, w jaki sposób encje systemu są złożone z innych encji.
Model architektoniczny. W modelach architektonicznych obrazuje się zasadnicze podsystemy, z których składa się system.
Model klasyfikacyjny. Na diagramach klas obiektów i dziedziczenia przedstawia się wspólne cechy encji.
Model bodziec-reakcja. Na diagramach stanów obrazuje się, w jaki sposób system reaguje na zdarzenia wewnętrzne i zewnętrzne.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 8
Modele kontekstowe
We wczesnej fazie procesu określania i analizowania wymagań należy ustalić granice systemu.
W niektórych wypadkach granica między systemem, a jego środowiskiem jest dość czytelna.
Granice między systemem a jego środowiskiem należy ustalić w trakcie procesu inżynierii wymagań.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 9
Kontekst systemu bankomatu
Systemksięgowyoddziału
Systemobsługi
oddziału
Systembankomatu
Systemzabezpieczeń
Systemkonserwacji
Baza danych o użytkowaniu
Baza danychkont
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 10
Model procesu zakupu wyposażenia
Specyfikacjawyposażenia
Sprawdzonaspecyfikacja
PProtokół odbioru
Sprawdź dostarczone towary
Instrukcja montażu
Zainstalujwyposażenie
Akceptacja instalacji
Zaakceptuj dostarczone wyposażenie
Baza danycho wyposażeniu
Szczegółowe informacje o wyposażeniu
Specyfikacjawyposażenia Lista dostawców
Złóż zamówienie na wyposażenie
Sprawdzony i podpisany formularz zamówienia
Szczegółyzamówienia +czysty blankiet zamówień
Specyfikacja + dostawca +oszacowanie
Wyspecyfikuj potrzebne wyposażenie
Sprawdźspecyfikację
Zdobądź oszacowanie
kosztów
Znajdźdostawców
Baza danychz dostawcami
Wybierz dostawcę
Protokół odbioru
Informacjao zamówieniu
Zaakceptuj protokół odbioru
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 11
Modele zachowania
Modele zachowania są używane do ogólnego opisywania zachowania systemu.
Dwa typy modeli:
• modele przepływów danych, w których opisuje się przetwarzanie danych w systemie;
• modele maszyn stanowych, w których opisuje się reakcje systemu na zdarzenia.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 12
Modele przepływu danych Są intuicyjnym sposobem przedstawienia, jak dane są
przetwarzane przez system. Na etapie analizy należy ich użyć do modelowania
przetwarzania danych w istniejącym systemie. Notacje używane w tych modelach służą do
przedstawiania przetwarzania funkcjonalnego, magazynów danych i przekazywania danych między funkcjami.
Modele przepływu danych są powszechnie stosowane w analizie o analizie strukturalnej systemów.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 13
Diagram przepływu danych dla obsługi zamówień
Zaktualizujbudżet dostępnych
środków
Wyślij do dostawcy
Wypełnijblankiet
zamówienia
Zarejestrujzamówienie
Plik zamówień
Plikbudżetu
Sprawdź zamówienie
Szczegóły zamówienia + czysty blankietzamówienia
Wypełnionyblankiet zamówienia
Podpisanyformularz zamówienia
Podpisanyformularz zamówienia
WartośćZamówienia+ informacjeksięgowe
Sprawdzone i podpisane
zamówienie + informacja o zamówieniu
Podpisanyformularz zamówienia
Szczegóły zamówienia
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 14
Elementy UML-aw diagramach przepływu danych
Owale oznaczają kroki przetwarzania. Strzałki z nazwami danych to przepływy. Prostokąty są magazynami danych lub
źródłami danych.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 15
Diagram przepływu danych dla zestawu narzędzi CASE
Baza danychz projektami
Baza danychz projektami
Edytor projektów
GeneratorSzkieletu kodu
Weryfikatorprojektów
Analizatorprojektów
Generatorraportów
Wstępny projekt
Gotowyprojekt
Sprawdzonyprojekt
Analiza projektu
Raport dlaużytkownika
Wykorzystywane projekty Sprawdzony
projekt
i
Kodwynikowy
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 16
Modele maszyn stanowych Służą do opisywania zachowania systemu, gdy reaguje na
wewnętrzne lub zewnętrzne zdarzenia. Zawierają stany i zdarzenia, które powodują przejścia z
jednego stanu do innego. Nie obejmuje przepływu danych w ramach systemu. Modele maszyn stanowych są integralna częścią metod
projektowania systemów czasu rzeczywistego. W metodzie Harela wprowadzono tzw. grafy stanów
(statecharts), które są podstawą notacjo do modelowania maszyn stanowych w UML.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 17
Model maszyny stanowej dla prostej kuchenki mikrofalowej
Pełna moc Pełna moc Do: ustaw moc = 600
Oczekiwanie do: wyświetlaj godzinę
Pełna moc
Połowa mocy
Połowa mocy
Połowa mocy do: ustaw moc = 300
StoperOtworzono drzwiczki Otworzono
drzwiczki
LiczbaStoper
Działanie do:
podgrzewanie
Ustawienie czasudo: odczytaj liczbę Exit: ustaw czas
Gotowy do: wyświetlaj „Gotowy”
Zatrzymaj
Oczekiwanie do: wyświetlaj godzinę
Niegotowy do: wyświetlaj „Czekam”
Zamkniętodrzwiczki
Początek
Zamkniętodrzwiczki
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 18
Opis stanów dla kuchenki mikrofalowej
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 19
Opis bodźców dla kuchenki mikrofalowej
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 20
Notacja UML stosowana w modelach maszyn stanowych
Jest to uniwersalna notacja, która może służyć do modelowania maszyn stanowych rozmaitych typów.
Prostokąty z zaokrąglonymi rogami oznaczają stany systemu. Zawierają krótką informację (po słowie „do”) o akcjach wykonywanych w tym stanie.
Strzałki z etykietkami reprezentują bodźce, które powodują przejścia między stanami.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 21
Działanie kuchenki mikrofalowej
OK
Działanie
Sprawdzenie do: sprawdź stan
Alarm
do: wyświetlaj zdarzenie
Niegotowy Oczekiwanie
Wykonano do: włącz brzęczek na 5 sekund
Gotowanie do: praca generatora
Czas
Awaria talerzaobrotowego
Awariaźródła fal
Koniec czasu
Otworzonodrzwiczki
Zatrzymaj
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 22
Modele danych Często korzystamy z wielkich baz danych. Definiowanie
logicznego formatu przetwarzanych danych jest ważną częścią modelowania takich systemów.
Najpowszechniej stosowaną metodą modelowania danych jest modelowanie encja-relacja-atrybut (ERA), która obejmuje encje, związane z nimi atrybuty i relacje między tymi encjami.
W UML nie są zawarte specjalne notacje do tego rodzaju modelowania danych, ponieważ jest językiem przystosowanym do obiektowego procesu tworzenia.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 23
Znaczeniowy model danych projektu oprogramowania
Projekt
Węzeł
Etykieta
nazwaopisdata-udata-m
nazwatreśćikona
nazwatyp nazwa
typ
n n
Wiązanie 1 ma-wiązanie n
2 wiązania 1
ma-etykietki
ma-wiązania
n
11
n
ma-węzły
ma-etykietki
1Jest
Jest 1
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 24
Słownik danych Jest to alfabetyczna lista nazw, które pojawiły się w
różnych modelach systemu. Oprócz nazwy słownik danych powinien zawierać także
opisy nazwanych błędów i opis ich składowych w wypadków bytów złożonych.
Zalety słownika danych:• jest mechanizmem zarządzania nazwami;• służy za składnicę informacji o przedsiębiorstwie, która
umożliwia scalenie analizy, projektu, implementacji i ewolucji.
Większość narzędzi CASE, które wspomagają modelowanie systemu, zawiera wsparcie do obsługi słownika danych.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 25
Przykłady haseł słownika danych
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 26
Modele obiektowe Są obecnie powszechnie stosowane, zwłaszcza w wypadku
systemów interaktywnych. Przy takim podejściu wymagania systemowe są
zapisywane w modelu obiektowym, projektowanie odbywa się za pomocą obiektów, a programuje się w jednym z języków programowania obiektowego, np. Javie lub C++.
Modele obiektowe opracowane w czasie analizy wymagań mogą być użyte zarówno do przedstawienia samego systemu, jak i jego działania. Pod tym względem łączą w sobie zalety modeli przepływu danych i znaczeniowych modeli danych.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 27
Modele obiektowe Są naturalnym sposobem odzwierciedlania encji pochodzących ze
świata rzeczywistego, które są przetwarzane przez system. Jest to szczególnie widoczne, gdy system przetwarza informacje o
konkretnych encjach, które mają łatwe do zidentyfikowania atrybuty. Takimi encjami są np. samochody , samoloty i książki.
Modele obiektowe opracowywane w trakcie analizy wymagań z pewnością upraszczają przejście do projektowania i programowania obiektowego.
Klasa obiektów jest abstrakcją zbioru obiektów, która identyfikuje ich wspólne atrybuty (w znaczeniowym modelu danych) oraz usługi i operacje oferowane przez te obiekty.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 28
Modele dziedziczenia
Systematyka jest obrazowana w postaci hierarchii dziedziczenia, w której wyżej stoją bardziej ogólne klasy obiektów.
Bardziej szczegółowe obiekty dziedziczą ich atrybuty i usługi.
Te specjalizowane obiekty maja też własne atrybuty i usługi.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 29
Notacja UML
Dziedziczenie obrazuje się „w górę”, a nie „w dół”, jak to jest w niektórych innych językach obiektowych.
Strzałka (w postaci trójkąta) jest skierowana od klasy, która dziedziczy atrybut i operacje, do nadklasy.
W UML nie ma pojęcia dziedziczenia, które w tym języku nosi nazwę uogólnienia.
Fragment hierarchii w systemie biblioteki
VersionPlatfor
Computerprogram
itlePub li he
ub ished item
um
cor ed ite
Składnik bibliotekiNumer katalogowyData zakupuCenaTypStanLiczba kopiiNabądź()Skataloguj()Usuń()Udostępnij(0Zwróć()
Składnik opublikowany
TytułWydawca
Składnik utrwalony
TytułNośnik
Książka
AutorWydanieData wydaniaISBN
Czasopismo
RokNumer
Film
ReżyserData ukazania sięDystrybutor
Program Komputerowy
WersjaPlatforma
Student
Główny kierunek studiówAdres domowy
Hierarchia klasy użytkownika
Użytkownik biblioteki
NazwiskoAdresTelefonNumer karty
Zarejestruj()Wyrejestruj()
Czytelnik
Przynależność
Wypożyczający
Wypożyczone składnikiLimit wypożyczeń
Pracownik
DziałTelefon działu
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 32
Modele dziedziczenia wielokrotnego
Klasa może mieć kilku przodków. Dziedziczone przez nią atrybuty i usługi są
połączeniem tych odziedziczonych po nadklasach.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 33
Dziedziczenie wielokrotne
Książka
AutorWydanieData wydaniaISBN
Zapis mowy
MówcaCzas trwaniaData zapisu
Mówiąca książka
Liczba taśm
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 34
Agregacja obiektów
Niektóre obiekty są utworzone z innych obiektów, tzn. obiekt jest agregacja zbioru innych obiektów.
Klasy tych obiektów mogą być modelowane za pomocą agregacji.
W UML-u agregację oznacza się za pomocą rombu umieszczonego przy źródle wiązania.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 35
Obiekt złożony (agregacja) reprezentujący wykład
Pakiet do nauki
Tytuł wykładuNumerRokWykładowca
Zadanie
Punkty
Przezrocza
Przezrocza
Notatki
Tekst
Kaseta wideo
Id kasety
Rozwiązania
TekstDiagramy
Ćwiczenia
Liczba zadańOpis
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 36
Modelowanie zachowania obiektów
Modelując zachowanie obiektów, musimy wykazać, jak korzysta się z operacji dostarczonych przez obiekty.
W UML zachowanie jest modelowane za pomocą scenariuszy.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 37
Prośba o składnik elektroniczny
Ekat: Katalog
: Składnikbiblioteki
Lib1:Serwer sieciowy
: Użytkownik biblioteki
Wyszukaj
Wyświetl
Zamów Zaakceptuj warunki
Wyślij warunki
Skompresuj
Dostarcz
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 38
Warsztaty CASE Są to zbiory narzędzi, które wspomagają konkretny etap
procesu tworzenia oprogramowania, np. projektowanie, implementowanie lub testowanie.
Zaletą łączenia narzędzi CASE w jeden warsztat jest to, że mogą współpracować i zapewnić wygodniejsze wspomaganie, niż jest to możliwe w wypadku jednego narzędzia.
Wspólne usługi mogą być zaimplementowane i wykorzystywane przez wszystkie narzędzia.
Narzędzia warsztatu można zintegrować przez dzielone pliki, dzielone repozytorium albo dzielone struktury danych.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 39
Warsztat do analizy i projektowania
Narzędzia doanalizy i
sprawdzaniaprojektów
Strukturalne narzędziado rysowaniadiagramów
Narzędzia dotworzenia
formularzy
Generatorkodu
Słownik danych
Udogodnieniado importui eksportu
Udogodnieniado stawiania
zapytań
Udogodnieniado generowania
raportów
Centralnerepozytorium
informacji
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 40
Warsztaty do analizy i projektowania
Edytory diagramów Narzędzia do analizy i sprawdzania projektu Języki zapytań do repozytorium Słownik danych Narzędzia do definiowania i generowania
raportów Narzędzia do definiowania formularzy Udogodnienia do importu i eksportu Generatory kodu
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 41
Główne tezy Model jest abstrakcyjnym obrazem systemu, który pomija pewne
jego szczegóły. Mogą powstawać uzupełniające się modele systemu, które obejmują różne informacje o systemie.
W modelach kontekstowych zapisuje się, jak modelowany system jest umiejscowiony w środowisku innych systemów i procesów. Modele architektoniczne, modele procesów i modele przepływu danych mogą być używane jako modele kontekstowe.
Diagramy przepływu danych mogą służyć do specyfikowania przetwarzania danych zachodzącego w systemie. System jest przedstawiany w postaci zbioru przekształceń danych z funkcjami działającymi na tych danych.
Modele maszyn stanowych są używane do modelowania zachowania systemu, gdy reaguje na zewnętrzne i wewnętrzne zdarzenia.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 42
Główne tezy W znaczeniowych modelach danych opisuje się logiczna strukturę
danych importowanych lub eksportowanych z systemu. Takie modele obejmują encje systemu, ich atrybuty i związki, w których biorą udział. Mogą być uzupełnione słownikami danych, które zawierają bardziej szczegółowy opis danych.
W modelach obiektowych zapisuje się logiczne byty systemu, ich klasyfikacje i agregację. Takie modele łączą w sobie cechy modeli danych i modeli przetwarzania. Modele obiektowe, które można opracować, obejmują modele dziedziczenia, modele agregacji i modele zachowania. Warsztaty CASE wspomagają opracowywanie modeli systemów przez narzędzia do edycji, sprawdzania, generowania raportów i dokumentowania.