inf2 w04

background image

Wykład 4

UML:

modele bazowe – identyfikacja metod

modele statyczne

modele dynamiczne

background image

itm / MVLab (c) 2007-2008

Identyfikacja metod

Zadania podczas identyfikacji metod:

jakie zadania muszą zostać zrealizowane?

na jakie zdarzenia musi reagować system?

do jakiej klasy należy dana metoda?

dobrze dobrana, opisowa nazwa

Sposób działania: Od zewnątrz do środka

identyfikacja zewnętrznych operacji

dokładny opis parametrów wejściowych i wyjściowych

określenie operacji wewnętrznych

background image

itm / MVLab (c) 2007-2008

DDD a RDD

Eksperci od podejścia obiektowego do procesu

tworzenia oprogramowania dzielą się na dwa obozy w
zależności od proponowanego przez nich sposobu
identyfikacji klas:
w oparciu o dane (DDD - Data Driven Design),

w oparciu o odpowiedzialności klas (RDD - Responsibility

Driven Design).

Odpowiedzialność klasy odpowiada zbiorowi zachowań

obiektów tej klasy.

Akademia Ekonomiczna

background image

itm / MVLab (c) 2007-2008

DDD a RDD

Najbardziej efektywne, jak to z reguły w praktyce
bywa, są techniki mieszane, wykorzystujące każdą
dostępną metodę.

RDD - tutaj rozpoznaje się wszystkie odpowiedzialności
systemu (w oparciu o potrzeby przyszłych użytkowników) i

bazując na nich wyróżnia się klasy; przykładem jest tu
metoda CRC wykorzystywana w kilku metodykach.

DDD - polega na zidentyfikowaniu wszystkich danych w
systemie i podziale ich na klasy bez specjalnego

rozważania ich odpowiedzialności; przykładem tej techniki
jest identyfikacja rzeczowników i fraz rzeczownikowych
w tekście wymagań.

background image

itm / MVLab (c) 2007-2008

DDD – identyfikacja klas poprzez
rzeczowniki

Niektórzy analitycy konstruują dwie listy potencjalnych
kandydatów: silnych i słabych. Kandydaci są przenoszeni w razie
potrzeby z listy na listę. Taka technika chroni przed utratą
informacji, być może przydatnej krok dalej.

Odrzucenie niektórych kandydatów i zmiana nazw, o ile wyniknie taka
potrzeba. Nazwy przyszłych klas powinny być rozważane jako
rzeczowniki w liczbie pojedynczej.

Identyfikacja potencjalnych klas poprzez podkreślenie wszystkich
rzeczowników i fraz rzeczownikowych w tekście wymagań.

Proces ten przebiega w dwóch etapach:

Identyfikacja klas poprzez identyfikację rzeczowników i fraz
rzeczownikowych
w tekście specyfikującym wymagania użytkownika
jest jedną z podstawowych, powszechnie stosowanych technik.

background image

itm / MVLab (c) 2007-2008

Redukcja zbioru potencjalnych
kandydatów

Odrzucamy potencjalnego kandydata na klasę, gdy rzeczownik (fraza
rzeczownikowa):
jest
redundantny - tzn. gdy istnieją różne rzeczowniki dla określenia tego
samego bytu; trzeba tu brać pod uwagę następujący fakt: byty mogą być
podobne, ale niekoniecznie dokładnie takie same, a to z kolei może wskazywać
na związek generalizacji-specjalizacji istniejący między nimi;
jest nieuchwytny - trudno jest określić, co właściwie oznacza i w jaką klasę
miałby być odwzorowany - być może inne elementy notacji byłyby bardziej
użyteczne do opisania go;
oznacza wydarzenie lub operację - tutaj pomocnicze może być zadanie pytania,
czy obiekty przyszłej klasy miałyby atrybuty, zachowanie i tożsamość;
stanowi wyrażenie metajęzyka, tzn. służy do definiowania czegoś, np.
rzeczowniki wymagania czy system używane są raczej w procesie modelowania
niż do reprezentowania bytów istniejących w analizowanej dziedzinie
problemowej;
oznacza coś, co znajduje się na zewnątrz systemu, np. aktorzy - z reguły nie
istnieje potrzeba do modelowania ich w postaci klasy;
oznacza atrybut - coś prostszego niż klasa, bez interesującego zachowania.

Akademia Ekonomiczna

background image

itm / MVLab (c) 2007-2008

DDD – identyfikacja klas; przykład

Przykład wymagań dla biblioteki:

Biblioteka zawiera książki i czasopisma. Może być kilka egzemplarzy tej samej
książki. Tylko personel może wypożyczać czasopisma. Członek biblioteki może
mieć jednocześnie wypożyczonych sześć pozycji, podczas gdy osoba pracująca w
bibliotece może mieć ich wypożyczonych dwanaście. System musi rejestrować
wypożyczenia i zwroty oraz pilnować, by przestrzegano wymienionych powyżej reguł
(ograniczeń).

Zostawiamy: książka, czasopismo, egzemplarz książki, członek biblioteki, personel

Odrzucamy: biblioteka (1 obiekt i to znajdujący się na zewnątrz systemu ), system
(wyrażenie metajęzyka), osoba pracująca w bibliotece oznacza to samo co personel,
reguła (nieuchwytne), ograniczenie (nieuchwytne)

pozycja (?), wypożyczenie (?), zwrot (?),

Każdy rzeczownik, kandydat na przyszłą klasę, jest tu rozważany w liczbie
pojedynczej.

Akademia Ekonomiczna

background image

itm / MVLab (c) 2007-2008

2.1 Określanie modelu
statycznego

Model statyczny:

dziedziczenie,

asocjacje,

podsystemy,

agregacje,

Model dynamiczny:
•interakcje,
•cykl życia obiektu,
•przepływ sterowania i obiektów,

Model bazowy:
•obiekt,
•klasa,
•atrybut,
•metoda,

background image

itm / MVLab (c) 2007-2008

Cele tej części wykładu

Zrozumienie i umiejętność stosowania struktur zależności
(asocjacja, agregacja, kompozycja),

Zrozumienie i umiejętność stosowania relacji,

Zrozumienie różnicy pomiędzy relacją pojedynczą i
złożoną,

Zrozumienie i umiejętność stosowania idei polimorfizmu,

Zrozumienie umiejętność projektowania diagramów klas i

obiektów,

background image

itm / MVLab (c) 2007-2008

A: Struktury zależności

Asocjacja

Agregacja

Kompozycja

background image

itm / MVLab (c) 2007-2008

Asocjacja - link

Asocjacja (z ang. assotiation), opisuje relację pomiędzy

klasami, w której instancja jednej klasy może wywoływać pewne

akcje na rzecz obiektów drugiej. Klasa wywołująca przejmuje

zatem kontrolę nad obiektami innej i pozostaje w tej zależności

przez cały czas.
Instancję takiej asocjacji nazywamy z ang. linkiem.

Klasa1

Klasa2

Obiekt1

Obiekt2

asocjacja

link

background image

itm / MVLab (c) 2007-2008

Opis asocjacji

Wielokrotność: jest notowana w postaci

[<dolna granica> .. <górna granica>]

gwiazdka (*) może zostać użyta jako znacznik braku granicy górnej.

Nazwy:

Nazwa: Nazwa asocjacji określa ją bliżej.

Rola: Nazwy ról opisują funkcje danej klasy w zależności

-nazwa

-adres

Firma

-nazwa

-adres

-nr_umowy

Pracownik

rola

zatrudnia

-pracodawca

-pracobiorca

1

*

wielokrotność

background image

itm / MVLab (c) 2007-2008

Nawigowalność

Asocjacja skierowana to taka asocjacja w której odpowiednia
rola może być skierowana od jednej klasy do drugiej, ale nie
na odwrót.

-nazwa

-adres

Firma

-nazwa

-adres

-nr_umowy

Pracownik

zatrudnia

-pracodawca

-pracobiorca

1

*

-nazwa

-kwota

-adres

Faktura

-ulica

-kod_poczt

-miejscowosc

Adres

posiada

1

*

Przykład: asocjacja skierowana, jednokierunkowa

Przykład: asocjacja dwukierunkowa

X

background image

itm / MVLab (c) 2007-2008

Klasa asocjacyjna

-nazwa

-adres

Firma

-nazwa

-adres

-nr_umowy

Pracownik

1..*

*

-wynagrodzenie

-okres_zatr

Stosunek pracy

-nazwa

-adres

Firma

-nazwa

-adres

-nr_umowy

Pracownik

1..*

*

-wynagrodzenie

-okres_zatr

Stosunek pracy

1

1

Właściwości asocjacji mogą być zamodelowane jako osobna
klasa, dołączona w notacji do oznaczenia zależności.
Zależność taka nazywana jest asocjacją atrybutową.

Asocjacja atrybutowa powinna być unikana tam gdzie nie stanowi ona elementu
podejścia obiektowego. Metody i atrybuty w programowaniu obiektowym są
zawsze przyporządkowane pewnej klasie.

!

background image

itm / MVLab (c) 2007-2008

Agregacja

Agregacja to sytuacja, gdy tworzy się nową klasę, używając klas już
istniejących. Nowa klasa może być zbudowana z dowolnej liczby
obiektów dowolnych typów i w dowolnej kombinacji, by uzyskać
żądany efekt. Agregacja jest często określana jako relacja typu
"zawiera" np: "samochód zawiera silnik" - gdzie "samochód" i "silnik"
są klasami, oraz klasa zawiera w sobie obiekt typu "silnik".

Agregacja jest często przedstawiana w opozycji do dziedziczenia,
które polega na uszczegóławianiu typu ogólnego w celu utworzenia
typu szczególnego. Agregacja nie tworzy podtypu, lecz nowy typ.

Całość

0..1

*

Część

klasa agregująca

klasa agregowana

background image

itm / MVLab (c) 2007-2008

Kompozycja

Szczególnym przypadkiem agregacji jest kompozycja, która

oznacza składanie się obiektu z obiektów składowych, które nie

mogą istnieć bez obiektu głównego. Kompozycja jest relacją

typu "posiada".

Kompozycja oznacza, że dana część może należeć tylko do

jednej całości. Oznacza również że, część nie może istnieć bez

całości a, usunięcie całości powoduje automatyczne usunięcie

wszystkich jej części związanych z nią związkiem kompozycji.

Całość

1

*

część zależna

background image

itm / MVLab (c) 2007-2008

Identyfikacja asocjacji

Zadania podczas identyfikacji asocjacji:

czy pomiędzy obiektami klas istnieją stałe
zależności?

czy istnieje lista rankingowa (priorytety) obiektów
wewnątrz zależności i czy można wyróżnić
semantyczną zależność pomiędzy klasami?

jakie role odgrywają w zależności poszczególne
klasy?

jak komunikują się ze sobą obiekty poszczególnych
klas?

Wielokrotność:

czy istnieje zależność obowiązkowa?

czy górna granica jest zmienna czy stała?

czy obowiązują jakieś szczególne warunki?

background image

itm / MVLab (c) 2007-2008

B: Struktury dziedziczenia

Generalizacja i specjalizacja to abstrakcyjne zasady służące
hierarchicznemu strukturyzowaniu semantyki modeli.
Generalizacja to taksonomiczna zależność pomiędzy ogólnym
i specjalizowanym elementem, która -- w kompatybilny z
innymi sposób -- nadaje mu dodatkowe właściwości.

Klasa abstrakcyjna służy do budowania dziedzicznych
struktur klas. Klasa abstrakcyjna nie może powoływać żadnych
obiektów -służy wyłącznie do tworzenia klas potomnych.

środek transportu

background image

itm / MVLab (c) 2007-2008

Notacja

Klasa nadrzędna

Klasa podrzędna

dyskryminator

Dyskryminator (cecha odróżniająca) opisuje najważniejszy
aspekt wpływający na hierarchiczną strukturyzację klas.

background image

itm / MVLab (c) 2007-2008

Dyskryminator

Pojazd

Silnik spalinowy

dyskryminator: rodzaj napędu

Silnik elektryczny

Koń

Pojazd

powietrze

dyskryminator: ośrodek

woda

grunt

background image

itm / MVLab (c) 2007-2008

Dziedziczenie proste

Klasa nadrzędna

Klasa podrzędna 1

Klasa podrzędna 2

Dziedziczenie proste to struktura dziedziczenia w której każda
klasa – z wyjątkiem korzenia – posiada dokładnie jedną
bezpośrednią klasę nadrzędną, tworząc w ten sposób strukturę
drzewiastą.

background image

itm / MVLab (c) 2007-2008

Dziedziczenie wielokrotne

Klasa nadrzędna 1

W strukturze dziedziczenia wielokrotnego każda klasa może
posiadać wiele klas nadrzędnych. W ten sposób tworzy się
sieć acykliczna posiadająca więcej niż jeden korzeń.

Klasa nadrzędna 1

Klasa podrzędna

background image

itm / MVLab (c) 2007-2008

Polimorfizm

+ drukuj();

Urządzenie wyjściowe

Drukarka

Monitor

Polimorfizm to wykazywanie przez metodę różnych form
działania w zależności od tego w obrębie jakiej klasy jest
wywoływana. Wyróżniamy polimorfizm statyczny („wczesne
łączenie”) oraz dynamiczny („późne łączenie –przy
wywołaniu”).

+ drukuj();

+ drukuj();

background image

itm / MVLab (c) 2007-2008

Identyfikacja struktur
dziedziczenia

Zadania podczas identyfikacji struktur dziedziczenia:

czy spodziewamy się dziedziczenia wielokrotnego czy
prostego?

czy występują klasy abstrakcyjne?

czy możemy odnaleźć dobre struktury dziedziczenia?

zamodelowane analogicznie do świata rzeczywistego

hierarchia dziedziczenia niezbyt skomplikowana (do 3

poziomów)

podklasy wykorzystują metody i właściwości klasy

nadrzędnej

Nie mówimy o dziedziczeniu, gdy:

dwie klasy potomne różnią się tylko właściwością -> rozszerzając

nim klasę nadrzędną

klasa potomna nie posiada żadnych własnych właściwości/metod

-> opisuje klasę-rodzica.

background image

itm / MVLab (c) 2007-2008

Diagram klas

-nazwisko

-nr_alb

Student

-nazwisko

-pokój

Pracownik

uczęszcza

-słuchacz

bierze_udział

3..*

*

-tytuł

-symbol

-termin

Wykład

prowadzi

-wykładowca

0..3

1..3

Asystent

Adiunkt

Stanowisko

-ocena

-termin

Egzamin

*

*

*

1

zawiera

background image

itm / MVLab (c) 2007-2008

Przegląd

3.1 Modele postępowania

3.2 Fazy i koncepcje

3.3 Analiza

3.3.1 Analiza wymagań

3.3.2 Analiza systemu

3.4 Projektowanie

3.4.1 Zasady projektowania

3.4.2 Projektowanie ogólne

3.4.3 Projektowanie szczegółowe

Analiza

wymagań

Analiza

systemu

Dokumentacja

wymagań

Projekt rozwiązania

Specyfikacja wymagań

Specyfikacja zobowiązań

background image

itm / MVLab (c) 2007-2008

3.3.2 Analiza systemu

Problem

Wymagania

Rozwiązanie

model w dziedzinie
problemu:
Model Problemu
(np. w UML)

model w dziedzinie
rozwiązań:
zarys rozwiązania

Analiza wymagań

Analiza systemu

Implementacja

Projektowanie syst.

Dokumentacja

wymagań

background image

itm / MVLab (c) 2007-2008

Modele dynamiczne

Model statyczny:
•dziedziczenie,
•asocjacje,
•podsystemy,
•agregacje,

Model dynamiczny:

interakcje,

cykl życia obiektu,

przepływ sterowania i obiektów,

Model bazowy:
•obiekt,
•klasa,
•atrybut,
•metoda,

background image

itm / MVLab (c) 2007-2008

A: Przepływ kontroli i obiektów

Do opisu przypływów kontroli i obiektów służą w UML diagramy
aktywności (czynności)
. Diagram taki pokazuje przepływ i definiuje
różne typy węzłów łączących ze sobą drogi przepływu obiektów i
kontroli. Wyróżniamy węzły aktywności, obiektów i kontroli.

d

Diagram przypadków użycia

Diagram obiektów

Diagram aktywności

background image

itm / MVLab (c) 2007-2008

Elementy diagramów
aktywności

Obiekt1

Aktywność1

Przepływ kontroli i obiektów

Linie przepływu kontroli łączą węzły akcji na diagramach
aktywności.

Linie przepływu obiektów działają podobnie do
poprzednich, jednak wzdłuż nich obiekty zmieniają stan.

Węzły aktywności

Węzły aktywności opisują elementarne kroki przepływów
lub czynności udokumentowane.

Węzły obiektów

Węzeł obiektu wskazuje na istnienie obiektu, bądź ich
zbioru. Mogą one zostać użyte jako parametry wejściowe
lub wyjściowe aktywności.

background image

itm / MVLab (c) 2007-2008

Węzły kontrolne

Węzeł startowy jest punktem początkowym przejścia
diagramu czynności.

Węzeł końcowy kończy opisany przebieg, t.j. wszystkie
węzły i przepływy kontroli.

Synchronizacja jest węzłem kontrolnym w którym wszystkie
wejściowe przepływy czekają dopóki przepływ nie zostanie
wznowiony (suma).

Rozdział jest krokiem przepływu w którym każdy wejściowy
przepływ jest natychmiast, bez dodatkowych czynności,
rozdzielany na wiele współbieżnych przypływów.

[x<0]

[x>0]

[x=0]

Węzeł decyzyjny jest węzłem kontrolnym z jednym lub
więcej wyjściowym przepływem kontroli. Na podstawie
warunków przepływ jest kierowany tylko do jednej gałęzi.

Węzeł łączący jest węzłem kontrolnym w którym każdy z
przepływów wejściowych jest skierowany natychmiast do
przepływu wyjściowego (alternatywa).

background image

itm / MVLab (c) 2007-2008

Przykład diagramu aktywności

węzeł startowy

nazwa czynności

Rezerwacja pojazdu

warunek

węzeł decyzyjny

węzeł końcowy
węzeł obiektu

przepływ obiektu

przepływ obiektu

parametry

warunki czynności

(pre i post)

czynność

background image

itm / MVLab (c) 2007-2008

B: Struktury interakcji

Do opisu interakcji pomiędzy obiektami służą w UML diagramy
interakcji (przebiegu
i komunikacji). Diagramy sekwencji (Message
Sequence Charts
, MSC) przedstawiają formalnie działania
komunikacyjne pomiędzy obiektami systemu.

d

Diagram przypadków użycia

Diagram obiektów

Diagram interakcji (przebiegu)

background image

itm / MVLab (c) 2007-2008

Elementy diagramów sekwencji

Obiekt1

Obiekt2

wiadomość asynchron.

odpowiedź

wiadomość synchron.

odpowiedź

Aktywność: czas
w którym obiekt

posiada kontrolę

(jest aktywny)

Linia życia
obiektu
: istnienie
obiektu do

konkretnego punktu

w czasie

Wiadomość
asynchroniczna
:
główna funkcja

obiektu jest nadal

aktywna (callback)

Wiadomość
synchroniczna
:
działanie obiektu

jest wstrzymane do

czasu uzyskania

odpowiedzi

background image

itm / MVLab (c) 2007-2008

Przykład diagramu sekwencji

Scenariusz: wypłata pieniędzy z bankomatu.

Klient

Bankomat

wybranie_kwoty

potwierdzenie

wprowadzenie_pin

wypłata

background image

itm / MVLab (c) 2007-2008

C: Cykl życia obiektów

Do opisu cyklu życia obiektów służą w UML diagramy stanów.
Diagram taki opisuje w pełni zachowanie obiektu w formie grafu
złożonego z węzłów (stany) i jednokierunkowych przejść (zmiany
stanów).
Diagram stanów opisuje hipotetyczną maszynę, która w każdym
punkcie czasu znajduje się w pewnym skończonym zbiorze stanów.

Obiekt1

background image

itm / MVLab (c) 2007-2008

Przykład diagramu stanów

OFF

ON

Włącznik.ON

Włącznik.OFF

Init

zmiana

stan

węzeł początkowy

węzeł końcowy

zmiana inicjująca

background image

itm / MVLab (c) 2007-2008

Stan, punkt początkowy i
końcowy

Stan przedstawia abstrakcję zbioru możliwych właściwości, które może
przyjmować obiekt danej klasy.

Stan

Stan modeluje pewną sytuację. Stany mogą mieć naturę
statyczną (wartości konfigurowane podczas projektowania?!) lub
dynamiczną (wywołanie pewnej czynności).

Punkt startowy opisuje miejsce wejścia do automatu stanu.
Każdy automat stanu jest dostępny przez dokładnie jeden punkt
startowy, od którego odchodzi maksymalnie jedna zmiana
(zmiana inicjująca). Zmiana inicjująca odbywa się natychmiast po
uruchomieniu obiektu.

Punkt końcowy opisuje zakończenia działania automatu stanu.
Do stanu końcowego może wchodzić tylko jedna zmiana.

background image

itm / MVLab (c) 2007-2008

Akcje i przejścia stanów

Akcje mogą być wywoływane wewnątrz stanów, które realizują
odpowiednie operacje. Zdefiniowane są trzy momenty wywoływania
akcji:

entry: przy wejściu do stanu,

exit: przed opuszczeniem stanu,

do: akcja działająca przez cały czas gdy stan jest aktywny.

Stan1

Stan2

Tranzycja

Elementy tranzycji:

zdarzenie: opis zdarzenia wywołującego (triggera),

warunek: parametry stanu (opcjonalne),

działanie: działania które są wywoływane podczas przejść stanów (opcjonalne)

Zdarzenie jest to istotna akcja, która w danym kontekście ma
określone znaczenie, da się łatwo zlokalizować w czasie i miejscu i
może uruchomić przejście stanowe.

background image

itm / MVLab (c) 2007-2008

Tranzycje

Synchronizacja wymaga uaktywnienia wszystkich tranzycji
wejściowych przed wywołaniem tranzycji wychodzącej, bez
oczekiwania na zdarzenie (zapis logiki AND).

Rozdział gdy tylko pojawi się aktywność tranzycji
wejściowej, aktywowane są wszystkie tranzycje
wychodzące.

[x<0]

[x>0]

[x=0]

Węzeł decyzyjny jest węzłem kontrolnym z jedną lub więcej
tranzycjami wyjściowymi. Na podstawie warunków
aktywność jest kierowane tylko do jednej gałęzi.

Węzeł łączący jest węzłem kontrolnym w którym każda z
aktywności tranzycji wejściowych prowadzi natychmiast do
aktywacji tranzycji wyjściowej (zapis logiki OR).

background image

itm / MVLab (c) 2007-2008

Projektowanie diagramów
stanów

Zadania podczas projektowania diagramów stanu:

czy obiekt posiada nietrywialny cykl życia?

jakie stany i przejścia charakteryzują automat stanu?

jakie zadania musi wywoływać obiekt?

czy cykl życia obiektu jest zgodny z listą metod?

background image

itm / MVLab (c) 2007-2008

Przegląd:
Opracowywanie Modeli

Problemu

System

Klasy i obiekty

Struktury zależności

Właściwości i operacje

Cykl życia obiektu

Struktury dziedziczenia

Struktury interakcji

Kontrola i poprawki

Komponenty


Document Outline


Wyszukiwarka

Podobne podstrony:
RBD W04
W04 2
W04 3
W04 4
inf2 w06
inf2 w03
cps w04 v9
PI w04
Elektronika W04
inf2 w02
INF2 2009 Wykl 04 Zaoczne 4na1 Nieznany
zj w04
gs w04 id 197501 Nieznany
223 B8 4 A W04 zestawienie slus Nieznany
bal w04
krs form w04
KZ BD w04
Gazownictwo w04

więcej podobnych podstron