W6 2 Obiektowe modelowanie i analiza

background image

1

Obiektowe modelowanie

i analiza

Informacje zaczerpnięto z książki

„Inżynieria oprogramowania w projekcie

informatycznym”, Janusz Górski, Mikom 2001,

rozdział 4

background image

2

Wstęp

Analiza potrzeb jako reprezentacji rzeczywistego

świata

Język formułowania problemu jako język dziedziny

problemowej

Projekt jako rozwiązanie w dziedzinach technologii

informatycznej

Identyfikacja i zrozumienie problemu jest

zagadnieniem pierwszoplanowym

Opis wymagań funkcjonalnych przedstawiony jest w

dokumencie nazwanym Specyfikacja Wymagań

systemowych

Podejście obiektowe jedną z technik przedstawienia

problemu (możliwość przejścia od wymagań po

implementacje)

Modelowanie to naturalny środek do lepszego

poznania modelowanego obiektu

background image

3

Wstęp

• Problematyka orientacji obiektowej w

analizie systemów informatycznych:

Object Modelling Technique (OMT)
Objectory
Unified Modelling Language (UML)

• Podejście obiektowe opisuje rzeczywistość

z trzech różnych perspektyw:

Strukturalnej
Behawioralnej
Transformacyjne

background image

4

Wstęp

• W modelu strukturalnym podstawą jest obiekt i

klasa obiektów oraz wzajemne relacje między nimi,

• Istnieje również model usług który pokazuje system

od strony użytkownika

Wymagania
(modele
obiektowe)

Oprogramowanie

obiektowe

System komputerowy

Projektowanie i
programowanie

obiektowe

Rozwiązanie

problemu

Projekt

informatyc

zny

Problem
świata
rzeczywistego

Identyfikacja

problemu

background image

5

Perspektywa strukturalna –

model obiektów

• Podstawowymi składnikami modelu obiektów są:

• Obiekty
• Klasy obiektów
• Atrybuty
• Operacje i metody
• Związki i wiązania

• Obiekty mogą świadczyć usługi innym obiektom

(klientom) wobec tego są postrzegane różnie

przez te obiekty (różne abstrakcje

charakteryzowane przez zestaw usług i stan)

background image

6

Perspektywa strukturalna –

model obiektów

• Klient kontaktuje się z obiektem poprzez

wywołanie jego usług (identyfikacja usługi i
konkretna operacja), przekazywane są
parametry wywołania a otrzymywane są
rezultaty

• Każdy obiekt posiada identyfikator będący

wskaźnikiem, który jest niezmienny w
czasie

• Usługi wykonywane przez różne klasy

obiektów to operacje ogólne – generic

background image

7

Perspektywa strukturalna –

model obiektów

• Obiekty aktywne mogą spontanicznie

wywoływać usługi a obiekty pasywne mogą
jedynie na nie reagować.

• Grupa obiektów może mieć wspólną

definicję danych lub usług
wykorzystywanych do definicji interfejsu,
wobec tego stanowią wcielenie (instancje)
wspólnej definicji zwanej klasą obiektów

.

background image

8

Perspektywa strukturalna –

model obiektów

• Zestaw usług oferowany innym obiektom

to interfejs obiektów do innych obiektów

• Pojęcie dziedziczenia przez nowo

utworzoną klasę, stanów i usług

zdefiniowanych w innej klasie

• Pojęcie klasy umożliwia wyróżnienie

podobnej grupy obiektów według pewnego

kryterium (pewnych cech którymi są

atrybuty operacje)

background image

9

Perspektywa strukturalna –

model obiektów

• Pojęcie klasy umożliwia wyróżnienie podobnej

grupy obiektów według pewnego kryterium
(pewnych cech którymi są atrybuty operacje)

Graficzna reprezentacja klasy obiektów:

Nazwa klasy

nazwa atrybutu : typ danych = wartość

domyślna

nazwa operacji(lista argumentów) : typ

wyników

background image

10

Perspektywa strukturalna –

model obiektów

Atrybuty to cechy obiektów które mogą być

charakteryzowane wartościami danych.

• Operacje które nie zmieniają wartości atrybutów to

zapytania które kierowane są do obiektów docelowych

• Ilość argumentów operacji, ich typy oraz typ wartości

zwracanej przez operacje stanowi sygnaturę operacji

• Zależności pomiędzy obiektami reprezentuje wiązanie a

grupa wiązań mająca ten sam sens i strukturę to związek,
który może łączyć ze sobą kilka klas i jest najczęściej
dwukierunkowy.

Krotność związku mówi nam ile obiektów danej klasy jest

równocześnie związana z obiektami innej klasy

background image

11

Perspektywa strukturalna –

model obiektów

• Dwa rodzaje związków odgrywają szczególną

role w programowaniu obiektowym:

dekompozycja
specjalizacja

• Dekompozycja polega na rozłożeniu obiektu

na mniejsze bloki a specjalizacja umożliwia

modelowanie podobieństw między klasami
(rozróżnienie między klasami nadrzędnymi i

podrzędnymi)

• Klasa podrzędna dziedziczy cechy klasy

nadrzędnej i tworzy się hierarchia

dziedziczenia

background image

12

Perspektywa behawioralna-

model dynamiczny

• Celem modelu dynamicznego jest opisanie, w jaki

sposób stan obiektów może podlegać zmianom w

odpowiedzi na pojawiające się zdarzenia oraz w

jaki sposób zdarzenia te są wytwarzane.

• Zdarzenia nie podlegają dekompozycji oraz ich

czas trwania wynosi zero

• Podstawową zależnością pomiędzy zdarzeniami

jest przyczynowość (uszeregowanie zdarzeń w

czasie)

• Zdarzenia nie powiązane przyczynowo mogą być

współbieżne (ich układ w czasie może być

dowolny)

background image

13

Perspektywa behawioralna-

model dynamiczny

• Zdarzenia występujące w systemie mogą

mieć charakter scenariusza i związujemy z

nim zawsze obiekt wysyłający i odbierający

• Odpowiedz na zdarzenie zależy od stanu

obiektu-odbiorcy. Dla wielu stanów może

być ona identyczna i mówimy wtedy o

stanach uogólnionych

• Stany uogólnione oraz zdarzenia są

reprezentowane przez diagram stanów, a

zmiana stanu pod wpływem zdarzenia

nazywamy przejściem stanu

background image

14

Perspektywa behawioralna-

model dynamiczny

• W diagramie stanów wyróżniony jest stan

początkowy i końcowy. Model dynamiczny definiuje
wszystkie scenariusze zdarzeń i odpowiadające im
ciągi stanów należące do różnych obiektów przy
czym z założenia, są to obiekty niezależne.

Nazwa
stanu
do:
aktywność

Nazwa
stanu
do:
aktywność

zdarzenie (atrybuty)

(dozór) / akcja

background image

15

Perspektywa behawioralna-

model dynamiczny

Aktywność opisuje jak długo obiekt

znajduje się w danym stanie z kolei akcje
opisują zmiany dokonane w wyniku zdarzeń.

• W związku z tym ze powstałe diagramy

stanów mogą być mało czytelne
wprowadzono dodatkową notacje
umożliwiająca bardziej zwarty zapis:

uogólnienie / specjalizacja
agregacja / dekompozycja

background image

16

Perspektywa behawioralna-

model dynamiczny

• Przebywanie w stanie nadrzędnym oznacza

przebywanie we wszystkich jego

podstanach współbieżnych.

• Współbieżność może występować wewnątrz

obiektu w stanach złożonych, które składają

się z dwóch lub więcej stanów podrzędnych.

• Niekiedy zdarza się potrzeba aby zdarzenie

łączyło się z akcją a umożliwia to słowo w

schemacie graficznym action/nazwa akcji .

background image

17

Perspektywa behawioralna-

model dynamiczny

• Sprawne przechodzenie do i ze stanu

podrzędnego umożliwiają następujące

reguły:

• Akcje etykietujące przejścia wejściowe
• Akcje wymienione po słowie kluczowym

entry/(nazwa akcji)

• Aktywności wymienione po słowie do
• Akcje wymienione po słowie kluczowym

exit

• Akcje etykietujące przejścia wyjściowe

background image

18

Perspektywa transformacji

danych – model

funkcjonalny

• Celem modelu funkcjonalnego jest opisanie

dokonywanych przekształceń danych (zależność
między danymi wejściowymi a wyjściowymi)

• Podstawowym pojęciem stosowanym w tym modelu

jest transformacja danych (proces)

• Transformacja odpowiada operacji w modelu

obiektowym lub akcji (aktywności) w modelu
dynamicznym

• Nie rozróżniamy zależności czasowych z zastrzeżeniem,

że skutek nie może poprzedzać przyczyny.

Przepływy danych umożliwiają wykorzystywanie

danych między transformacjami

background image

19

Perspektywa transformacji

danych – model

funkcjonalny

• Pierwotne źródła danych i miejsca docelowe dla

danych nazywane są aktorami.

Pojemnik danych jest to pamięć która przechowuje

powierzone mu dane aby mogły być wykorzystane
przez inne transformacje w różnej kolejności

• Możliwe jest wykonanie w ramach pojemnika

agregacji różnych danych i wysłanie ich jako jeden
element.

• Podejście pojemnikowe przypomina model

obiektowy. Niektóre przepływy danych mogą być
obiektami, aczkolwiek posiadają one tylko wartości a
nie własną tożsamość.

background image

20

Perspektywa transformacji

danych – model

funkcjonalny

• Model funkcjonalny jest zbiorem

diagramów przepływu danych, w skład
których wchodzą transformacje, aktorzy
oraz pojemniki danych. Diagramy te
składają się na hierarchie poziomów.

• Poziom najwyższy odnosi się do całego

systemu i jest poziomem najwyższej
abstrakcji a zawarte w nim transformacje
mogą być np. funkcjami matematycznymi i
nie mieć skutków ubocznych.

background image

21

Perspektywa transformacji

danych – model

funkcjonalny

• Metody definiowania przekształceń nie mających

skutków ubocznych obejmują:

• podanie wzoru matematycznego łączącego dane

wejściowe z wyjściowymi

• podanie zależności we / wy w formie

tabelarycznej

• podanie warunków wejściowych i wyjściowych
• specyfikacje w postaci tablicy decyzyjnej
• abstrakcyjny program (pseudocode)

specyfikujący sekwencje kroków obliczeniowych

• opis w języku naturalnym

background image

22

Perspektywa transformacji

danych – model

funkcjonalny

• Transformacje reprezentują bardziej złożone

obliczenia posiadające efekty uboczne. Dla
każdej takiej sytuacji tworzony jest
oddzielny diagram przepływu danych.

• Proces ten może być kontynuowany aż do

momentu gdy dane transformacje nie będą
wymagać dalszej dekompozycji

• Stosuje się rozwidlenia jeśli dana

informacja ma być przesłana na wejścia
różnych transformacji

background image

23

Perspektywa usług – model

przypadków użycia

• Przypadek użycia ( use case) reprezentuje

ciągi interakcji między użytkownikiem a
systemem i stanowi ich opis.

• Modele przypadków wymagają komunikacji

między wykonawcami projektu a
potencjalnymi użytkownikami.

background image

24

Perspektywa usług – model

przypadków użycia

• Pełny opis przypadków użycia wymaga identyfikacji

następujących elementów:

• użytkowników pracujących z systemem w ramach

danego przypadku

• obiektów systemu które pozostają w interakcjach z

użytkownikami

• zdarzenia, które rozpoczyna sekwencje interakcji
• warunków początkowych od których uzależnione

jest występowanie danego przypadku

• opisu interakcji między użytkownikami a systemem
• opisu niestandardowych przebiegów
• warunków końcowych

background image

25

Perspektywa usług – model

przypadków użycia

• Punktem wyjścia dla użycia tego modelu jest

rozpoznanie użytkowników mających współpracować
z systemem (Specyfikacja Wymagań Systemowych)

• Użytkownicy i związane z nimi przypadki użycia są

reprezentowani w ramach diagramu przypadków
użycia

Diagramy śladów jako szczegółowa specyfikacja

przypadków użycia

• Zależność między przypadkami użycia (może się

zdarzyć ze dany przypadek jest rozszerzeniem
istniejącego już przypadku)

• Model ten jako opracowanie testów akceptacyjnych

background image

26

Zależności między

modelami

• Zależność miedzy modelem obiektowym a dynamicznym

wynika z tego, że dla każdej klasy w modelu obiektowym
istnieje diagram stanów w modelu dynamicznym

• Hierarchia klas odpowiada hierarchii stanów w modelu

dynamicznym

• Zależność między modelem dynamicznym i obiektowym

określa względną kolejność wykonywania operacji,
natomiast efekty wykonywanych operacji zdefiniowane
są w modelu funkcjonalnym.

• Identyfikacja celu operacji (transformacji w modelu

funkcjonalnym) prowadzi do przypisania tej operacji
odpowiedniemu obiektowi w modelu obiektowym

background image

27

Zależności między

modelami

• Kluczowe zagadnienia dotyczące

opisywanych modeli

background image

28

Zależności między

modelami

Ustalenie celu operacji reprezentowanych przez transformacje

danych

background image

29

Metodyka obiektowa

• Metodyka inżynierii oprogramowania stanowi

przepis postępowania skutkujący pożądanym
produktem programowym. Poniżej przedstawiono
podstawowe kroki składające się na metodykę
OMT.

Analiza

Projekt systemu

Projekt Obiektow

Implementacja

Metodyka

obiektowa

background image

30

Analiza

• Analiza nie jest procesem, który można wykonać

mechanicznie, istotą analizy jest zrozumienie
problemu.

• Jest to proces iteracyjny, w którym kolejne

modele odzwierciedlają głębokość zrozumienia
problemu.

• W każdym kroku zbliżamy się do rozwiania przez

działania: integracji, walidacji i weryfikacji
zapewniające wewnętrzną i zewnętrzną
spójność.

background image

31

Struktura etapu analizy

Budowa modelu obiektowego

Budowa modelu dynamicznego

Budowa modelu funkcjonalnego

Ite

ra

cy

jn

e:

In

te

gr

ac

ja

m

o

de

li,

w

e

ry

fik

ac

ja

i

w

al

id

a

cj

a

background image

32

Budowa modelu

obiektowego:

Identyfikacja klas obiektów

• Koncentruje się na dziedzinie aplikacyjnej.

Pomijamy szczegóły implementacyjne oraz

szczegóły konkretnego rozwiązania

projektowego

.

• Podejście praktyczne polega na

wyselekcjonowaniu rzeczowników z Specyfikacji

Wymagań Systemowym i potraktowaniu ich jako

identyfikatorów klas obiektów.

• Innym źródłem identyfikacji obiektów

:

– specyfikacja przypadków użycia.
– dodatkowe klasy obiektów wynikające z

ogólnej wiedzy na temat problemu.

background image

33

Budowa modelu

obiektowego

• Budowa słownika danych:

– Słownik danych zawiera wszystkie

nazwy reprezentujące elementy modelu
wraz z ich opisami.

• Identyfikacja związków:

– Identyfikacja związków pomiędzy

klasami. Wstępna identyfikacja przez
rozpatrzenie fraz z specyfikacji wymagań
zawierających czasowniki.

background image

34

Budowa modelu

obiektowego

• Identyfikacja atrybutów:

– Atrybuty opisują własności obiektów, ale same

nie są obiektami.

– Wstępna identyfikacja atrybutów polega na

rozważeniu przymiotników, wyrażeń

dzierżawczych odnoszących się do już

definiowanych klas i związków.

• Identyfikacja relacji dziedziczenia

:

– Zależności dziedziczenia mogą być identyfikowane

przez wprowadzanie klas będących uogólnieniami

klas istniejących lub przez specjalizację klas już

istniejących i wyrażenia ich w terminach klas

bardziej szczegółowych.

background image

35

Budowa modelu

obiektowego

• Weryfikacja ścieżek dostępu:

– Związki reprezentują możliwe ścieżki wzajemnych

odwołań między obiektami. Powinny one
umożliwiać uzyskanie odpowiedzi na istotne z
punktu widzenia użytkownika pytania.

• Grupowanie klas w moduły:

– Jeśli budujemy duży system wskazane jest

podzielenie go na moduły.

– Moduły reprezentują grupy silnie związanych ze

sobą klas.

– Nad poszczególnym modułami mogą pracować

niezależne zespoły programistów.

background image

36

Budowa modelu

obiektowego:

Weryfikacja, walidacja i

uszczegóławianie

• Za wyjątkiem najprostszych projektów,

model obiektowy nie będzie wynikiem
jednorazowego zabiegu analitycznego
.

• Powyższe kroki powinny być powtarzane w

celu usuwania niespójności oraz
poprawienia wykrytych błędów, aż do
momentu gdy uznamy że model
odzwierciedla własności strukturalne
budowanej aplikacji oraz obejmuje jej
pełen zakres.

background image

37

Budowa modelu

dynamicznego

• Identyfikacja scenariuszy:

– Zbiór scenariuszy, które opisują typowe

interakcje systemu ze światem zewnętrznym.

– Punktem wyjścia jest tu specyfikacja przypadków

użycia systemu, o ile została ona sprecyzowana
w Specyfikacji Wymagań Systemowych. Jeśli nie
została należy je jawnie zidentyfikować i
rozpatrzyć różne przypadki użycia systemu.

• Identyfikacja zdarzeń:

– Dla danego scenariusza powstaje odpowiadający mu

ślad zdarzeń oraz diagram przepływu zdarzeń,
przedstawiające drogi przepływu zdarzeń pomiędzy
obiektami systemu.

background image

38

Budowa modelu

dynamicznego

• Budowa diagramów stanu:

– Dla każdej klasy modelu obiektowego

tworzony jest diagram stanów opisujących

jej zachowanie. Jeśli zachowanie obiektu

klasy jest trywialne można pominąć jawną

specyfikacje ich diagramów stanu.

• Integracja modelu:

– Celem tego kroku jest zapewnienie, że zbiór

powstałych diagramów stanów jest wewnętrznie
spójny, a wytworzony model dynamiczny jest
zgodny ze zidentyfikowanymi wcześniej
interakcjami systemu z jego otoczeniem.

background image

39

Budowa modelu

funkcjonalnego

• Model funkcjonalny koncentruje się na

przetwarzaniu danych.

• Opisuje przepływy danych oraz związane z

nimi transformacje.

• Uwidocznione są tylko zależności

wejściowe i wyjściowe, z pominięciem

kolejności występowania przekształceń.

• Transformacje danych reprezentują

operacje poszczególnych obiektów lub

łączne efekt kilku operacji.

background image

40

Budowa modelu

funkcjonalnego

• Identyfikacja wejść i wyjść:

– Powstaje diagram uwidaczniający

przepływ danych z i do obiektów systemu.

• Budowa diagramu przepływu danych:

– W tym kroku powstaje diagram

przepływu danych, który uwidacznia
obliczenia mające na celu wywiedzenie
danych wyjściowych na podstawie
odpowiednich wejść.

background image

41

Budowa modelu

funkcjonalnego

• Specyfikacja podstawowych transformacji

danych:

– Definiujemy podstawowe (nie podlegające

dalszej dekompozycji) transformacje danych

opisywane jako zależności funkcyjne między

danymi wejściowymi i wyjściowymi

(transformacje nie zleżą od stanu systemu).

• Identyfikacja ograniczeń:

– Identyfikacja zależności między przepływami

danych, których nie da się wyrazić w

terminach relacji wejście – wyjście.

background image

42

Koniec etapu analizy

• Integracja modeli:

– W wyniku analizy trzech modeli powstaje

model obiektowy z ostateczną listą operacji.

• Uszczegóławianie modeli:

– Proces analizy jest zwykle iteracyjny.
– Kolejne wersje modeli są bardziej szczegółowe i

coraz bliższe rozwiązania rozważanego problemu.

– W kolejnych krokach usuwane są nieścisłości i

braki z poprzednich wersji.

background image

43

Po ukończeniu analizy

• Interpretacja wymagań w terminach modelu:

– Większość wymagań funkcjonalnych

zawartych w specyfikacji wymagań

systemowych da się wyrazić w terminach

zbudowanych modeli.

– Taka wypowiedź dodaje tym wymaganiom

dodatkowej precyzji i eliminuje

niejednorodności.

– Dzięki temu zbudowany model jest

środkiem ułatwiającym efektywną

komunikację z klientem i przyszłymi

użytkownikami systemu.

background image


Document Outline


Wyszukiwarka

Podobne podstrony:
Analiza strukturalna i obiektowa, WI, Semestr I N2, Modelowanie i analiza systemów, Poprawione wykła
Modelowanie i analiza systemów - wykład III, Modelowanie i analiza systemów
Modelowanie i analiza modeli dynamicznych z dyskrytnym czasem
Modelowanie i analiza systemów - wykład II, Modelowanie i analiza systemów
Modelowanie i analiza systemow w1
APK 6 - Modelowanie i analiza układow ze wzmacniaczem operacyjnym
Modelowanie i analiza generatora samowzbudnego Generator Hartleya, SPRAWOZDANIE Nr 2
Modelowanie i analiza generatora samowzbudnego, Na laboratorium korzystaliśmy z programu wykorzystuj
cw4a, Uczelniane, Semestr 1, Modelowanie i analiza systemów informatycznych, Materiały - Uniwersytet
Problem modelowania i analizy układów płytowo słupowych w ujęciu MES
Modelowanie funkcji i procesów (DFD), WI, Semestr I N2, Modelowanie i analiza systemów, Poprawione w
Modelowanie i analiza systemów - wykład VI, Modelowanie i analiza systemów
Cykl zycia systemu informatycznego, WI, Semestr I N2, Modelowanie i analiza systemów, Poprawione wyk
Modelowanie i analiza systemów - wykład V, Modelowanie i analiza systemów
Modelowanie stanów i zdarzeń (ELH, WI, Semestr I N2, Modelowanie i analiza systemów, Poprawione wykł
zespół obiektów w Pizie, Analizy Dzieł Sztuki
Wybor repr gr obiektow, Wielowymiarowa analiza statystyczna, Panek, wap
Modelowanie i analiza systemów - wykład I, Modelowanie i analiza systemów
Modelowanie danych (ERD, WI, Semestr I N2, Modelowanie i analiza systemów, Poprawione wykłady

więcej podobnych podstron