background image

Inżynieria oprogramowania

część VII – Modele systemu

mgr inż. Piotr Greniewski

Europejska Wyższa Szkoła Informatyczno-

Ekonomiczna

background image

Slajd nr 2

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele systemu

Zawartość:

 Modele kontekstowe

Modele zachowania

Modele danych

Modele obiektowe

Warsztaty CASE

background image

Slajd nr 3

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele systemu

Wymagania użytkownika spisujemy w języku 

naturalnym, aby były zrozumiały dla osób, które 

nie są ekspertami od technologii.

Bardziej szczegółowe wymagania możemy 

definiować w sposób bardziej techniczny.

Jednym ze sposobów jest dokumentowanie 

systemu za pomocą zbioru jego modeli.

Dzięki użyciu graficznych  środków wyrazu, 

modele są bardziej zrozumiałe niż szczegółowy 

opis w języku naturalnym.

W procesie analizowania modele mogą służyć do 

lepszego zrozumienia istniejącego systemu lub 

rzeczywistości.

background image

Slajd nr 4

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele systemu

Zobrazowanie systemu z różnych punktów 
widzenia :

Zewnętrzny punkt widzenia – modelujemy kontekst 
lub środowisko systemu.

Zachowanie systemu – modelujemy zachowanie 
systemu.

Strukturalny punkt widzenia – modelujemy 
architekturę systemu lub strukturę przetwarzania 
danych.

background image

Slajd nr 5

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele systemu

Najważniejszą cechą modelu systemu jest to, że 
pomija szczegóły. 

Model systemu jest abstrakcją

 

badanego systemu a nie jego alternatywną 
reprezentacją. 

Abstrakcja

 to rozmyślne 

uproszczenie i wyciąg najbardziej istotnych 
charakterystyk. 

Różne typy modeli są oparte na innych podejściach 
do abstrakcji. Np. 

model przepływów

 dotyczy 

głównie przepływu i funkcjonalnych przekształceń 
danych . Pomija się w nim szczegóły struktur 
danych. Model 

encja-zwiazek

 jest dokumentacją 

danych systemu i związków między nimi.

background image

Slajd nr 6

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele systemu

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 (kompozycji).

 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.

background image

Slajd nr 7

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele kontekstowe

We wczesnej fazie procesu określania i analizowania 
wymagań należy ustalić granice systemu. Należy ustalić 
co jest systemem a co jego środowiskiem.

Granica pomiędzy systemem a jego środowiskiem nie 
zawsze jest czytelna. Granicę między systemem a 
środowiskiem należy ustalić w trakcie inżynierii 
wymagań.

Na następnym slajdzie widać model architektoniczny 
zawierający strukturę systemu informacyjnego 
obejmującego sieć bankomatów.

Modele architektoniczne wysokiego poziomu mają 
zwykle postać prostych diagramów blokowych. 
Podsystem jest reprezentowany przez prostokąt a linie 
wskazują na powiązania

background image

Slajd nr 8

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele kontekstowe

System

bankomat

u

System 

księgowy

oddziału

System 

obsługi

oddziału

System

konserwacj

i

System

zabezpiecz

Baza danych

kont

Baza danych

użytkowaniu

Kontekst systemu bankomatu

background image

Slajd nr 9

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele kontekstowe

W modelach architektonicznych opisuje się środowisko 

systemu. Nie obejmują one jednak związków pomiędzy 

innymi systemami a naszym. 

Zewnętrzne systemy mogą produkować dane dla tego 

systemu lub je konsumować. 

Dane mogą być dzielone między systemami bezpośrednio 

lub przez sieć. Mogą być w ogóle nie połączone.

Proste modele architektoniczne są zwykle uzupełniane 

innymi modelami, takimi jak modele procesu, w których 

zapisuje się czynności procesy wspomagane przez 

system, modele przepływu danych. Przedstawia się 

przekazywanie danych między systemem i innymi 

systemami w środowisku

Na następnym slajdzie przedstawiono model procesu 

zakupu wyposażenia dla firmy.

background image

Slajd nr 10

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele kontekstowe

Wyspecyfikuj

potrzebne 

wyposażenie

Sprawdź

specyfikację

Zdobądź

 oszacowanie

kosztów

Zaakceptuj

protokół

odbioru

Zainstaluj

wyposażenie

Baza danych

z dostawcami

Zaakceptuj

dostarczone

wyposażenie

Sprawdź

dostarczone

towary

Baza danych

o wyposażeniu

Złóż zamówienie

na wyposażenie

Znajdź

dostawców

Wybierz

dostawcę

Specyfikacja

wyposażenia

Sprawdzona

specyfikacja

Protokół

odbioru

Protokół

odbioru

Instrukcja 

montażu

Akceptacja 

instalacji

Szczegółowe informacje o 

wyposażeniu

Szczegóły zamówienia

+ czysty blankiet 

zamówienia

Specyfikacja 

wyposażenia

Lista 

dostawców

Specyfikacja+

dostawca+

oszacowanie

Model procesu zakupu wyposażenia.

Przerywana linia oznacza czynności leżące

wewnątrz systemu

background image

Slajd nr 11

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele zachowania

Modele zachowania są używane do ogólnego 
opisywania zachowania systemu. 
Przedstawimy dwa modele:

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.

background image

Slajd nr 12

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele przepływu danych

Modele przepływu danych są intuicyjnym sposobem 

przedstawienia, jakie 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

przekazywania danych między funkcjami

Modele przepływu danych są stosowane do pokazania, jak 

dane przepływają w sekwencji kroków przetwarzania. Dane 

ulegają przekształceniu w każdym kroku

Na następnym slajdzie przedstawiono model przepływu 

danych, w którym zapisano kroki obsługi zamówienia na 

towary dla firmy.  Jest to rozwinięcie czynności „złóż 

zamówienie na wyposażenie”

background image

Slajd nr 13

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele przepływu danych

Wypełnij

blankiet

zamówienia

Sprawdź

zamówienie

Zaktualizuj budżet

dostępnych środków

Baza danych

z dostawcami

Wyślij do

dostawcy

Baza danych

o wyposażeniu

Szczegóły 

zamówienia

+ czysty 

blankiet

 zamówienia

Zarejestruj

zamówienie

Wypełniony 

blankiet 

zamówienia

Podpisany 

formularz 

zamówienia

Podpisany 

formularz 

zamówienia

Podpisany 

formularz 

zamówienia 

+ szczegóły 

zamówienia

Sprawdzone i 

podpisane

zamówienie + 

informacja

o zamówieniu

Wartość 

zamówienia

+ informacje 

księgowe

background image

Slajd nr 14

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele przepływu danych

W notacji używanej do opisu przepływu 
danych:

owale oznaczają kroki przetwarzania

strzałki z nazwami danych to przepływy

prostokąty są magazynami lub źródłami danych

Modele przepływu danych pozwalają 
analitykom zrozumieć działanie systemu

Zaletą diagramów jest to że są proste i 
intuicyjne

Opracowywanie przepływu danych powinno 
być zstępujące.

background image

Slajd nr 15

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele maszyn stanowych

Modele maszyn stanowych służą do opisywania 
reakcji systemu na wewnętrzne i zewnętrzne 
zdarzenia.

Model maszyny stanowej zawiera stany i zdarzenia, 
które powodują przejście z jednego stanu do innego. 
Model nie obejmuje przepływu danych w ramach 
systemu.

W modelu maszyny stanowej zakłada się, że w danej 
chwili system jest w jednym z kilku dopuszczalnych 
stanów. Otrzymany bodziec może spowodować 
przejście do innego stanu.

Modele bardzo przydatne w systemach czasu 
rzeczywistego ale nie tylko.

background image

Slajd nr 16

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele maszyn stanowych

Omówimy przykład sterowania kuchenki 
mikrofalowej. W uproszczeniu kolejność 
czynności jest następująca;

Wybierz poziom mocy (połowa lub pełna)

Ustaw czas gotowania

Naciśnij przycisk ‘początek’; potrawa będzie gotowana 
przez określony czas.

Ze względów bezpieczeństwa kuchenka 
powinna działać przy zamkniętych drzwiach. Po 
zakończeniu gotowania odzywa się brzęczyk. 

kuchenka ma wyświetlacz alfanumeryczny, który 
pokazuje komunikaty alarmowe i ostrzegawcze.

background image

Slajd nr 17

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele maszyn stanowych

Pełna moc

do:

 ustaw moc 

       = 600

Połowa mocy

do:

 ustaw moc 

       = 300

Niegotowy

do:

 wyświetlaj

‘czekam’

Ust. czasu

  

do:

 odczyt. 

liczbę

     exit: ustaw 

czas

Działanie

do:

 

podgrzewanie

Oczekiwanie

do:

 wyświetlaj

godzinę

Oczekiwanie

do:

 wyświetlaj 

       godzinę

Gotowy

do:

 wyświetlaj

‘gotowy’

Pełna moc

Połowa 

mocy

Polowa mocy

Pełna moc

Liczba

Stoper

Otworzono 

drzwiczki

Początek

Zatrzymaj

Otworzono

 drzwiczki

background image

Slajd nr 18

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele maszyn stanowych

Model na poprzednim slajdzie jest zapisany w 
notacji UML przeznaczonej do modelowania 
zachowania obiektów.

Prostokąty z zaokrąglonymi rogami oznaczają 
stany systemu. Po słowie ‘do:’ (‘wykonaj’) 
zawierają krótką informacje o wykonywanej 
akcji.

Strzałki z etykietami reprezentują bodźce, 
które powodują przejścia między stanami.

background image

Slajd nr 19

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele danych

Modelowanie danych za pomocą programu ERWin 
firmy CA. Typowy model encja-relacja.

Encja to logiczny obiekt korespondujący z rzeczami 
lub osobami. Encja posiada atrybuty dla każdego 
ważnego elementu informacyjnego.

Encje są powiązane między sobą związkami 
(relacjami).

relacja jeden do jednego

relacja jeden do wielu

 relacja wielu do jednego

relacja wielu do wielu

Encje są przekształcane w tabele a atrybuty w 
kolumny

background image

Slajd nr 20

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele danych

Encje dzielimy na;

niezależne (independent) oznaczane prostokątami

zależne (dependent) oznaczone prostokątami o 
zaokrąglanych bokach

background image

Slajd nr 21

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele danych

element_id - element_id

element_id - element_id

klient_id - klient_id

element_id - element_id

zlecenie_id - zlecenie_id

element

element_id: NUMBER

opis: char(64)
koszt: int
cena: int

zapas

element_id: NUMBER

ilosc: NUMBER

kodkreskowy

kodkreskowy: varchar(13)
element_id: NUMBER

liniezlecen

zlecenie_id: NUMBER
element_id: NUMBER

ilosc: NUMBER

zlecenieinfo

zlecenie_id: NUMBER
klient_id: int
element_id: NUMBER

data_dostawy: DATE
data_wysylki: DATE
dostawa: NUMBER

klient

klient_id: int

nazwa: char(32)
adres: varchar(64)
miasto: varchar(32)
kod: varchar(5)
telefon: varchar(16)

background image

Slajd nr 22

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele obiektowe

Modele obiektowe opracowywane w trakcie 
analizy wymagań, mogą być używane do 
przedstawiania samego systemu jak i jego 
działania.

Modele obiektowe są naturalnym sposobem 
odzwierciedlania encji pochodzących ze świata 
rzeczywistego.

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.

background image

Slajd nr 23

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele obiektowe

Opis klasy obiektów w UML (Unified Modeling 
Language)

Nazwa klasy

Atrybuty

klasy

Operacje 

związane

z klasą

Składnik biblioteki

Numer katalogowy

Data zakupu

Cena

Typ

Stan

Liczba kopii

Nabądź ( )

Skataloguj ( )

Usuń ( )

Udostępnij ( )

Zwróć ( )

background image

Slajd nr 24

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele dziedziczenia

Składnik biblioteki

Numer katalogowy

Data zakupu

Cena

Typ

Stan

Liczba kopii
Nabądź ( )

Skataloguj ( )

Usuń ( )

Udostępnij ( )

Zwróć ( )

Składnik opublikowany

Tytuł

Wydawca

 

Składnik utrwalony

Tytuł

Nośnik

 

Czasopismo

Rok

Numer

 

Film

Reżyser

Data premiery

Dystrybutor

 

Książka

Autor

Wydanie

Data wydania

ISBN

 

Program komput.

Wersja

Platforma

 

background image

Slajd nr 25

©Ian Sommerville 2000  - Inżynieria oprogramowania

Modele dziedziczenia

Modelowanie obiektowe obejmuje identyfikację 
klas obiektów istotnych w badanej dziedzinie. 

Znalezione obiekty są następnie 
systematyzowane. Systematyka jest schematem 
klasyfikacji, w której widać jak klasy obiektów są 
powiązane między sobą przez wspólne atrybuty i 
usługi.

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.

background image

Slajd nr 26

©Ian Sommerville 2000  - Inżynieria oprogramowania

Warsztaty CASE

Edytory diagramów

, które służą do tworzenia 

diagramów przepływu danych, diagramów encja-

związek itd.

Narzędzia do analizy i sprawdzania projektu

, które 

przetwarzają projekt i informują o znalezionych 

błędach i anomaliach.

Języki zapytań do repozytorium

, które służą 

projektantom do wyszukiwania projektów i 

powiązanych z nim informacji projektowych w 

repozytorium.

Słownik danych

, który przechowuje informacje o 

bytach występujących w projekcie systemu.

Narzędzia do definiowania i generowania raportów

które pobierają informację z centralnej składnicy i 

automatycznie generują dokumentację systemu.

background image

Slajd nr 27

©Ian Sommerville 2000  - Inżynieria oprogramowania

Warsztaty CASE

Narzędzia do definiowania formularzy

, które 

służą do specyfikowania formatów ekranów i 
dokumentów.

Udogodnienia do importu i eksportu

, które 

umożliwiają wymianę informacji między 
centralnym repozytorium a innymi 
narzędziami wytwórczymi.

Generatory kodu

, które automatycznie 

generują kod albo szkielet kodu na podstawie 
projektu zapisanego w centralnej składnicy.

background image

Slajd nr 28

©Ian Sommerville 2000  - Inżynieria oprogramowania

Central

information

repository

Code

generator

Query

language

facilities

Structured

diagramming

tools

Data

dictionary

Report

generation

facilities

Design, analysis

and checking

tools

Forms

creation

tools

Import/export

facilities

Warsztaty CASE


Document Outline