Inżynieria oprogramowania - 7 Slide 1
Modele systemu
. Abstrakcyjny opis systemów
których wymagania są
analizowane
Inżynieria oprogramowania - 7 Slide 2
Cele
. Wyjaśnienie dlaczego kontekst systemu powinien
być modelowany jako część procesu RE
. Opis modelowania zachowania, modelowania
danych i modelowania obiektowego
. Przedstawienie niektórych notacji
zdefiniowanych w języku UML (Unified
Modeling Language)
Inżynieria oprogramowania - 7 Slide 3
Zawartość
. Modele kontekstowe
. Modele zachowania
. Modele danych
. Modele obiektowe
Inżynieria oprogramowania - 7 Slide 4
Modelowanie systemu
. Modelowanie systemu pomaga zrozumieć
funkcjonalność systemu a modele używane są do
komunikacji z klientem
. Różne modele przedstawiają system z różnych
punktów widzenia
. Zewnętrznego - przedstawia kontekst systemu lub jego
środowisko
. Zachowania - przedstawia zachowanie systemu
. Strukturalnego - przedstawia system lub architekturę danych
Inżynieria oprogramowania - 7 Slide 5
Metody strukturalne
. Metody strukturalne uwzględniają modelowanie
systemu jako nieodłączną część metody
. Metody strukturalne definiują zbiór modeli,
proces używany do opracowywania tych modeli
oraz reguły i wskazówki które powinny być
zastosowane do modeli
Inżynieria oprogramowania - 7 Slide 6
Wady metod strukturalnych
. Nie wspomagają modelowania niefunkcjonalnych
wymagań systemu
. Zwykle nie zawierają informacji czy dana metoda
jest odpowiednia dla danego problemu
. Wytwarzają zbyt obszerną dokumentację
. Modele systemu są czasami zbyt szczegółowe i
trudne do zrozumienia dla użytkowników
Inżynieria oprogramowania - 7 Slide 7
Typy modeli
. Model przetwarzania danych przedstawia w jaki
sposób dane są przetwarzane w różnych etapach
. Model składania przedstawia w jaki sposób
jednostki systemu złożone są z innych jednostek
. Model architektoniczny przedstawia zasadnicze
podsystemy
. Model klas przedstawia wspólne cechy jednostek
systemu
. Model bodziec-reakcja przedstawia reakcje
systemu za konkretne zdarzenia
Inżynieria oprogramowania - 7 Slide 8
Modele kontekstowe
. Modele kontekstowe używane są do określenia
granic systemu
. Przyczyny socjalne i organizacyjne mogą
wpływać na decyzje co do położenia granic
systemu
. Modele architektoniczne pokazują system i jego
związek z innymi systemami
Inżynieria oprogramowania - 7 Slide 9
Kontekst systemu bankomatu
Baza danych
kont
Baza danych o
użytkowaniu
System
księgowy
oddziału
System
bankomatu
System
zabezpieczeń
System
konserwacji
System
obsługi
oddziału
Inżynieria oprogramowania - 7 Slide 10
Modele procesu
. Modele procesu przedstawiają ogólny proces lub
procesy które są wspomagane przez system
. Modele przepływu danych mogą być używane do
przedstawienia procesów i przepływu informacji
z jednego procesu do drugiego
Inżynieria oprogramowania - 7 Slide 11
Proces zakupu wyposażenia
Baza danych z
dostawcami
Baza danych o
wyposażeniu
Specyfikacja
wyposażenia
Specyfikacja
wyposażenia Lista
dostawców
Sprawdzona
specyfikacja
Specyfikacja +
dostawca+
oszacowanie
Protokół odbioru
Protokół
odbioru
Informacja o
zamówieniu
Sprawdzony i podpisany
formularz zamówienia
Szczegóły
zamówienia +
czysty blankiet
zamówień
Szczegółowe informacje
o wyposażeniu
Instrukcja
montażu
Akceptacja
instalacji
Wyspecyfikuj
potrzebne
wyposażenie
Sprawdź
specyfikację
Zdobądź
oszacowanie
kosztów
Zaakceptuj
protokół
odbioru
Sprawdź
dostarczone
towary
Zainstaluj
wyposażenie
Zaakceptuj
dostarczone
wyposażenie
Złóż
zamówienie na
wyposażenie
Wybierz
dostawcę
Znajdź
dostawców
Inżynieria oprogramowania - 7 Slide 12
Modele zachowania
. Modele zachowania używane są do opisu
ogólnego zachowania systemu
. Dwa typy modeli zachowania :
. Modele przepływu danych przedstawiają w jaki sposób dane są
przetwarzane w miarę ich przesyłania przez system
. Modele maszyn stanowych przedstawiają odpowiedź systemu
na zdarzenia
. Oba modele są wymagane dla opisu zachowania
systemu
Inżynieria oprogramowania - 7 Slide 13
Modele przepływu danych
. Diagramy przepływu danych używane są do modelowania
przetwarzania danych systemowych
. Przedstawiają kroki przetwarzania w miarę przepływu
danych przez system
. Nieodłączna część wielu metod
. Prosta i intuicyjna notacja którą klienci potrafią
zrozumieć
. Pokazują przetwarzanie danych od końca do końca (end-
to-end)
Inżynieria oprogramowania - 7 Slide 14
Diagram przepływu danych
(DFD) dla obsługi zamówień
Plik
budżetu
Plik
zamówień
Szczegóły
zamówienia +
czysty blankiet
Wypełniony blankiet
zamówienia
Podpisany
formularz
zamówienia
Szczegóły
zamówienia
Podpisany
formularz
zamówienia
Podpisany
formularz
zamówienia
Sprawdzone i
podpisane
zamówienie +
informacja o
zamówieniu
Wartość
zamówienia +
informacje
księgowe
Wypełnij
blankiet
zamówienia
Sprawdź
zamówienie
Zarejestruj
zamówienie
Wyślij do
dostawcy
Zaktualizuj
budżet
dostępnych
środków
Inżynieria oprogramowania - 7 Slide 15
Diagramy przepływu danych
. DFD modelują system z funkcjonalnego punktu
widzenia
. Śledzenie i dokumentowanie jak przepływają
dane skojarzone z procesem są pomocne w
ogólnym zrozumieniu systemu
. Diagramy przepływu danych mogą być także
używane w celu przedstawienia wymiany danych
pomiędzy systemem a innymi systemami w ich
środowisku
Inżynieria oprogramowania - 7 Slide 16
CASE toolset DFD
Design
editor
Design
cross checker
Design
analyser
Report
generator
Design
database
Code skeleton
generator
Design
database
Input
design
Valid
design
Checked
design
Design
analysis
User
report
and
Referenced
designs
Checked
design Output
code
Inżynieria oprogramowania - 7 Slide 17
Modele maszyn stanowych
. Służą do modelowania zachowania systemu w
odpowiedzi na zewnętrzne i wewnętrzne zdarzenia
. Pokazują odpowiedzi systemu na bodźce więc są
często stosowane do modelowania systemów czasu
rzeczywistego
. Modele maszyn stanowych przedstawiają stany
systemu jako węzły i zdarzenia jako połączenia między
tymi węzłami. Kiedy określone zdarzenie ma miejsce,
system przechodzi z jednego stanu do drugiego
. Wykres stanów jest integralną częścią języka UML
Inżynieria oprogramowania - 7 Slide 18
Model kuchenki mikrofalowej
Full power
Enabled
do: operate
oven
Full
power
Half
power
Half
power
Full
power
Number
Timer
Door
open
Door
closed
Door
closed
Door
open
Start
do: set power
= 600
Half power
do: set power
= 300
Set time
do: get number
exit: set time
Disabled
Operation
Timer
Cancel
Waiting
do: display
time
Waiting
do: display
time
do: display
'Ready'
do: display
'Waiting'
Oczekiwanie
do: wyświetlaj
godzinę
Oczekiwanie
do: wyświetlaj
godzinę
Działanie
do:
podgrzewanie
Gotowy
do: wyświetlaj
.Gotowy.
Niegotowy
do: wyświetlaj
.Czekam.
Ustawianie czasu
do:odczytaj liczbę
exit: ustaw czas
Pełna moc
do: ustaw moc
= 600
Oczekiwanie
do: wyświetlaj
godzinę
Połowa mocy
do: ustaw moc
= 300
Zatrzymaj
Początek
Otworzono
drzwiczki
Zamknięto
drzwiczki
Otworzono
drzwiczki
Zamknięto
drzwiczki
Liczba
Stoper
Pełna
moc
Połowa
mocy Połowa
mocy
Pełna
moc
Inżynieria oprogramowania - 7 Slide 19
Opis stanów kuchenki mikrofalowej
Stan Opis
Oczekiwanie
Połowa mocy
Pełna moc
Ustawianie czasu
Niegotowy
Gotowy
Działanie
Kuchenka czeka na dane wejściowe. Wyświetlacz pokazuje aktualną godzinę
Moc kuchenki ustawiono na 300 watów. Wyświetlacz pokazuje napis
.Połowa mocy.
Moc kuchenki ustawiono na 600 watów. Wyświetlacz pokazuje napis .Pełna
moc.
Czas trwania gotowania jest ustawiany na wartość wprowadzoną przez
użytkownika. Wyświetlacz pokazuje wybrany czas gotowania i jest
aktualizowany w miarę wprowadzania danych
Kuchenka nie może działać ze względów bezpieczeństwa. Wewnętrzne
światło kuchenki jest włączone. Wyświetlacz pokazuje napis .Niegotowy.
Kuchenka jest gotowa do działania. Wewnętrzne światło jest wyłączone.
Wyświetlacz pokazuje napis .Gotowy.
Kuchenka działa. Wewnętrzne światło jest włączone. Wyświetlacz odlicza
zmniejszający się czas pozostały do zakończenia gotowania. Po zakończeniu
brzęczyk włącza się na 5 sekund. Światło kuchenki jest wtedy włączone.
Wyświetlacz pokazuje napis .Gotowanie zakończone. w czasie działania
brzęczyka.
Inżynieria oprogramowania - 7 Slide 20
Bodźce kuchenki mikrofalowej
Bodziec Opis
Połowa mocy
Pełna moc
Stoper
Liczba
Otworzono
drzwiczki
Zamknięto
drzwiczki
Początek
Użytkownik nacisnął przycisk .Połowa mocy.
Użytkownik nacisnął przycisk .Pełna moc.
Użytkownik nacisnął przycisk .Stoper.
Użytkownik nacisnął przycisk z liczbą
Przełącznik drzwiowy nie jest zamknięty
Przełącznik drzwiowy jest zamknięty
Użytkownik nacisnął przycisk .Początek.
Zatrzymaj Użytkownik nacisnął przycisk .Zatrzymaj.
Inżynieria oprogramowania - 7 Slide 21
Wykresy stanów
. Pozwala na dekompozycję modelu na podmodele
. Krótki opis akcji zawarty jest w każdym stanie
po słowie .do.
. Mogą być uzupełnione poprzez tabele opisujące
stany i bodźce
Inżynieria oprogramowania - 7 Slide 22
Działanie kuchenki mikrofalowej
Wykonano
do: włącz
brzęczyk na 5
sekund
Alarm
do: wyświetl
zdarzenie
Gotowanie
do: praca
generatora
Sprawdzanie
do: sprawdź
stan
Działanie
Niegotowy Oczekiwanie
OK
Awaria źródła
fal
Awaria
talerza
obrotowego
Koniec czasu
Otworzono
drzwiczki
Zatrzymaj
Czas
Inżynieria oprogramowania - 7 Slide 23
Modele danych
. Używane do opisu logicznej struktury
przetwarzania danych przez system
. Jednostka-relacja-atrybut modeluje zbiór
jednostek w systemie, relacje między tymi
jednostkami i ich atrybuty
. Szeroko stosowane w projektowaniu baz danych.
Mogą być implementowane używając
relacyjnych baz danych
. UML nie dostarcza specjalnych notacji lecz
wykorzystuje obiekty i ich związki
Inżynieria oprogramowania - 7 Slide 24
Znaczeniowy model danych
projektu oprogramowania
Projekt
nazwa
opis
data-u
data-m
Węzeł
nazwa
typ
Wiązanie
nazwa
typ
Etykieta
nazwa
treść
ikona
1 1
1
1 n
1 1
1
1 2
n
n n
n
jest
ma-węzły ma-wiązania
ma-wiązania
wiązania
ma-etykietki ma-etykietki
Inżynieria oprogramowania - 7 Slide 25
Słowniki danych
. Słowniki danych to listy wszystkich nazw
używanych w modelach systemu. Opisy
jednostek, związków między nimi oraz atrybuty
są także zawarte
. Zalety
. Wspomaga zarządzanie nazwami i zapobiega duplikowaniu
nazw
. Składnica informacji o przedsiębiorstwie która umożliwia
scalenie analizy, projektu i implementacji
Inżynieria oprogramowania - 7 Slide 26
Przykład haseł słownika danych
Nazwa Opis
ma-etykietki
Etykietka
Wiązanie
Nazwa (etykietki)
Nazwa (węzła)
Związek 1:N między jednostkami typu Węzeł
lub Wiązanie i jednostkami typu Etykietka
Przechowuje strukturalną lub niestrukturalną
informację o węzłach lub wiązaniach.
Etykietki są przedstawione jako ikona (która
może być przezroczystym prostokątem) i treść
Związek 1:1 między bytami projektu
reprezentowanymi jako węzły. Wiązania maja
typ i mogą być nazwane
Każda etykietka ma nazwę, która określa typ
etykietki. Nazwa musi być unikatowa w
zbiorze typów etykietek w ramach jednego
projektu
Każdy węzeł ma nazwę, która musi być
unikatowa w ramach projektu. Nazwa może
mieć najwyżej 64 znaki
Data Typ
Związek
Jednostka
Związek
Atrybut
Atrybut
5.10.1998
8.12.1998
8.12.1998
8.12.1998
15.11.1998
Inżynieria oprogramowania - 7 Slide 27
Modele obiektowe
. Modele obiektowe opisują system za pomocą klas
obiektów
. Klasa obiektu jest abstrakcją zbioru obiektów
która identyfikuje ich wspólne atrybuty oraz
usługi (operacje) oferowane przez te obiekty
. Rozróżnia się różne modele obiektowe
. Modele dziedziczenia
. Modele agregacji
. Modele interakcji
Inżynieria oprogramowania - 7 Slide 28
Modele obiektowe
. Naturalny sposób odzwierciedlania jednostek
świata rzeczywistego manipulowanych przez
system
. Im bardziej abstrakcyjna jednostka tym trudniej
ją modelować używając tego podejścia
. Identyfikacja klas obiektów jest trudnym
procesem wymagającym dogłębnego zrozumienia
domeny aplikacji
. Klasy obiektów odzwierciedlają domenę
jednostek wielokrotnie używanych w systemie
Inżynieria oprogramowania - 7 Slide 29
Modele dziedziczenia
. Organizacja klas obiektów w hierarchię
. Klasy będące na szczycie hierarchii
odzwierciedlają wspólne cechy wszystkich klas
. Klasy obiektów dziedziczą atrybuty i usługi z
jednej lub kilku super klas
. Projektowanie hierarchii klas jest procesem
trudnym zwłaszcza gdy chce się uniknąć
duplikowania w różnych dziedzinach
Inżynieria oprogramowania - 7 Slide 30
UML- Unified Modeling Language
. Wymyślony przez projektantów
wykorzystujących metody analizy i budowy
systemów obiektowo zorientowane
. Stał się efektywnym standardem dla
modelowania obiektowego
. Notacja
. Klasy obiektów są prostokątami z nazwą na samej górze,
atrybutami w środkowej sekcji i działaniami w sekcji dolnej
. Związki pomiędzy klasami obiektów (zwane skojarzeniami)
pokazane są jako linie łączące obiekty
. Zamiast pojęcia dziedziczenia jest pojęcie uogólnienia które
obrazuje się .w górę. a nie .w dół.
Hierarchia klas
biblioteki
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
Książka
Autor
Wydanie
Data wydania
ISBN
Czasopismo
Rok
Numer
Film
Reżyser
Data ukazania się
Dystrybutor
Program
komputerowy
Wersja
Platforma
Hierarchia klasy
użytkownika
Użytkownik
biblioteki
Nazwisko
Adres
Telefon
Numer karty
Zarejestruj()
Wyrejestruj()
Czytelnik
Przynależność
Wypożyczający
Wypożyczone składniki
Limit wypożyczeń
Pracownik
Dział
Telefon działu
Student
Główny kierunek
studiów
Adres domowy
Inżynieria oprogramowania - 7 Slide 33
Dziedziczenie wielokrotne
. Zamiast dziedziczenia atrybutów i usług z
pojedynczej klasy, system który wspiera
dziedziczenie wielokrotne pozwala klasom
obiektów na dziedziczenie z kilku super klas
. Może prowadzić do konfliktów znaczeniowych
gdzie atrybuty/usługi z tą samą nazwą w różnych
super klasach mają różne znaczenie
. Prowadzi do bardziej złożonej reorganizacji
hierarchii klas
Inżynieria oprogramowania - 7 Slide 34
Dziedziczenie wielokrotne
Książka
Autor
Wydanie
Data wydania
ISBN
Zapis mowy
Mówca
Czas trwania
Data zapisu
Mówiąca książka
Liczba taśm
Inżynieria oprogramowania - 7 Slide 35
Agregacja obiektów
. Model agregacji przedstawia jak klasy które są
zbiorami są złożone z innych klas
. Podobna do relacji .jest częścią. w
semantycznych modelach danych
Inżynieria oprogramowania - 7 Slide 36
Agregacja obiektów
Zadanie
Punkty
Przezrocza
Przezrocza
Notatki
Tekst
Kaseta wideo
Id kasety
Ćwiczenia
Liczba zadań
Opis
Rozwiązania
Tekst
Diagramy
Pakiet do nauki
Tytuł wykładu
Numer
Rok
Wykładowca
Inżynieria oprogramowania - 7 Slide 37
Modelowanie zachowania obiektów
. Model zachowania przedstawia interakcje
pomiędzy obiektami pokazując poszczególne
zachowania systemu które określane są mianem
przypadków użycia
. Diagramy przebiegu (lub diagramy kooperacji) w
UML używane są do modelowania interakcji
pomiędzy obiektami
Inżynieria oprogramowania - 7 Slide 38
Prośba o składnik elektroniczny
:Library User
Ecat:
Catalog
Lookup
Issue
Display
:Library Item Lib1:
NetServer
Issue licence
Accept licence
Compress
Deliver
Ekat:
Katalog
: Składnik
biblioteki
Lib1:
Serwer sieciowy
Wyszukaj
Wyświetl
Zamów Zaakceptuj
warunki
Wyślij warunki
Skompresuj
Dostarcz
:Użytkownik biblioteki
Inżynieria oprogramowania - 7 Slide 39
Główne tezy
. Model jest abstrakcyjnym obrazem systemu.
Uzupełniające się typy modeli dostarczają różnych
informacji o systemie
. Modele kontekstowe przedstawiają pozycję systemu
w środowisku innych systemów i procesów
. Modele przepływu danych mogą służyć do
specyfikowania przetwarzania danych w systemie
. Modele maszyn stanowych używane są do
modelowania zachowania systemu w odpowiedzi na
wewnętrzne lub zewnętrzne zdarzenia
Inżynieria oprogramowania - 7 Slide 40
Główne tezy
. Znaczeniowe modele danych opisują logiczną
strukturę danych importowanych lub
eksportowanych przez system
. Modele obiektowe opisują logiczne jednostki
systemu, ich klasyfikację i agregację