Modele systemu

42
mmerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 1 Modele systemu Abstrakcyjny opis systemów pomocniczych w analizowaniu wymagań stawianych tym systemom.

description

Modele systemu. Abstrakcyjny opis systemów pomocniczych w analizowaniu wymagań stawianych tym systemom. Cele. wiedzieć, dlaczego modelowanie kontekstu systemu jest takie ważne; znać pojęcie modelowania zachowania, modelowania danych i modelowania obiektowego; - PowerPoint PPT Presentation

Transcript of Modele systemu

Page 1: 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.

Page 2: Modele systemu

©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.

Page 3: Modele systemu

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 3

Zawartość Modele kontekstowe Modele zachowania Modele danych Modele obiektowe Warsztaty CASE

Page 4: Modele systemu

©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.

Page 5: Modele systemu

©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.

Page 6: Modele systemu

©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.

Page 7: Modele systemu

©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.

Page 8: Modele systemu

©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ń.

Page 9: Modele systemu

©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

Page 10: Modele systemu

©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

Page 11: Modele systemu

©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.

Page 12: Modele systemu

©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.

Page 13: Modele systemu

©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

Page 14: Modele systemu

©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.

Page 15: Modele systemu

©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

Page 16: Modele systemu

©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.

Page 17: Modele systemu

©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

Page 18: Modele systemu

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 18

Opis stanów dla kuchenki mikrofalowej

Page 19: Modele systemu

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 19

Opis bodźców dla kuchenki mikrofalowej

Page 20: Modele systemu

©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.

Page 21: Modele systemu

©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

Page 22: Modele systemu

©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.

Page 23: Modele systemu

©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

Page 24: Modele systemu

©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.

Page 25: Modele systemu

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 7 Slide 25

Przykłady haseł słownika danych

Page 26: Modele systemu

©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.

Page 27: Modele systemu

©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.

Page 28: Modele systemu

©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.

Page 29: Modele systemu

©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.

Page 30: Modele systemu

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

Page 31: Modele systemu

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

Page 32: Modele systemu

©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.

Page 33: Modele systemu

©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

Page 34: Modele systemu

©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.

Page 35: Modele systemu

©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

Page 36: Modele systemu

©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.

Page 37: Modele systemu

©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

Page 38: Modele systemu

©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.

Page 39: Modele systemu

©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

Page 40: Modele systemu

©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

Page 41: Modele systemu

©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.

Page 42: Modele systemu

©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.