Title: UML
1UML Unified Modeling Language (1)
- Bartosz Balis,
- Na podstawie, m.in.
- Introduction to UML Structural and Use Case
Modeling, Cris Kobryn - Projektowanie Obiektowe, Ian Sommerville
- Agile modeling http//www.agilemodeling.com
2Wstep
- UML Unified Modeling Language
- Graficzny jezyk do analizy i projektowania
obiektowego - Standaryzuje kilka metod graficznej reprezentacji
- UML jest jezykiem posiada skladnie (notacja
graficzna) i semantyke (znaczenie symboli
graficznych) - Diagramy
- 4 strukturalne (klas, obiektów, komponentów,
wdrozen) - 5 do modelowania zachowania (przypadków uzycia,
sekwencji, aktywnosci, wspólpracy / kolaboracji,
stanów) - 3 do zarzadzania modelem (pakiety, podsystemy,
modele) - Historia
- UML 1.1 1997
- UML 1.3 listopad 1999
- UML 1.4
- UML 1.5
- Obecnie UML 2.0 znaczne zmiany
3Zasadnicze skladniki UML
- Elementy modelu (klasy, interfejsy, komponenty,
przypadki uzycia, etc.) - Relacje pomiedzy nimi (powiazania, generalizacja,
zaleznosci, etc.) - Diagramy (diagramy klas, diagramy przypadków
uzycia, diagramy interakcji, etc.)
4Przyklad diagramu klas
5Przyklad diagramu obiektów (instancji klas)
6 7Modelowanie struktury
- Model systemu, który podkresla strukture
obiektów, powiazania miedzy klasami, ich atrybuty
i operacje - Rodzaje diagramów
- Statyczne diagramy struktury
- Klas, obiektów
- Diagramy implementacji
- Komponentów, wdrozen
8Model struktury zasadnicze elementy
9Model struktury podstawowe relacje
10Statyczne diagramy struktury
- Diagram klas
- Diagram obiektów instancji klas
11Klasy przyklad
Pracownik
nazwisko string adres string dataUrodzenia
Date numerPracownika integer PESEL
string dzial Dzial przelozony
Pracownik wynagrodzenie integer stan
zatrudniony, zwolniony, emerytowany NIP
integer ... dolacz() opusc() przejdzNaEmeryture()
zmienSzczególy()
t
a
t
u
s
c
u
r
r
e
n
t
,
l
e
f
t
,
r
e
t
i
r
e
d
t
a
x
C
o
d
e
i
n
t
e
g
e
r
.
.
.
j
o
i
n
(
)
l
e
a
v
e
(
)
r
e
t
i
r
e
(
)
c
h
a
n
g
e
D
e
t
a
i
l
s
(
12Diagram klas przyklad
13Hierarchia uogólnien przyklad
Pracownik
Kierownik zarzadzaneBudzety dataPrzyjecia
Programista przedsiewziecie jezykiProg
Kierownik Przedsiewziecia przedsiewziecie
Kierownik Strategiczny obowiazki
Kierownik Dzialu dzial
14Powiazania przyklad
Dzial
Pracownik
jest-czlonkiem
jest-zarzadzany-przez
Kierownik
zarzadza
15Powiazania jedno i dwukierunkowe
http//www.agilemodeling.com
16Agregacja i kompozycja
- Agregacja i kompozycja obiekt sklada sie z
innych obiektów - Agregacja zespól sklada sie z pracowników
- Kompozycja samolot sklada sie z czesci
- Regula kompozycja jest "silniejsza" forma
agregacji jesli calosc jest niszczona, to jej
czesci takze, w przypadku agregacji tak nie jest.
17Generalizacja-specjalizacja przyklad
taksonomia obiektów
18Interfejsy notacja skrótowa
Fig. 3-29, UML Notation Guide
19Interfejsy notacja rozszerzona
Fig. 3-29, UML Notation Guide
20Diagram obiektów
21Diagramy implementacji
- Pokazuja takie aspekty implementacji jak
struktura kodu zródlowego, oraz struktura podczas
wykonywania sie systemu - Rodzaje
- Diagram komponentów
- Diagram wdrozen (deployment)
22Komponenty i wdrozenia przyklad
23Komponenty przyklady
Fig. 3-99, UML Notation Guide
24Diagram komponentów przyklad
Fig. 3-95, UML Notation Guide
25Diagram wdrozen przyklad
Fig. 3-97, UML Notation Guide
26- Projektowanie oparte o interfejsy
27Projektowanie oparte o interfejsy
(interface-based design)
- Skupia sie na specyfikacji interfejsów systemu
- Oddziela sie specyfikacje operacji jakiejs uslugi
(interfejsy) od ich realizacji (implementacja) - Przyklad CORBA IDL (Interface design language)
jako projektowanie aplikacji rozproszonych oparte
o interfejsy - IDL definiuje interfejsy obiektów bez nakladania
ograniczen na ich implementacje - Definiuje strukture aplikacji rozproszonej
- Nie pozwala na specyfikowanie zachowania obiektów
lub relacji pomiedzy klasami poza generalizacja
28Przyklad punkt sprzedazy (point of sale)
- module POS
-
- typedef long POSId
- typedef string Barcode
- interface InputMedia
-
- typedef string OperatorCmd
- void barcode_input(in Barcode
item) - void keypad_input(in OperatorCmd
cmd) -
- interface OutputMedia
-
- boolean output_text(in string
string_to_print ) -
- ...
Generic IDL Point of Sale (POS) example. Siegel
00
29Przyklad punkt sprzedazy (c.d.)
- ...
- interface POSTerminal
-
- void login()
- void print_POS_sales_summary()
- void print_store_sales_summary()
- void send_barcode(in Barcode item)
- void item_quantity(in long quantity)
- void end_of_sale()
-
-
- endif / _POS_IDL_ /
30From Kobryn 00.
31 32Diagram przypadków uzycia
Fig. 3-53, UML Notation Guide
33Relacje pomiedzy przypadkami uzycia
- Generalizacja (uogólnienie)
- Jeden przypadek uzycia jest uogólnieniem innego
- Dolaczanie (include)
- Zachowanie dolaczanego przypadku uzycia jest
dolaczane do podstawowego przypadku uzycia - Rozszerzenie (extend)
- Zachowanie rozszerzajacego przypadku uzycia jest
dolaczane do podstawowego przypadku uzycia w
scisle okreslonym miejscu (okreslanym przez tzw.
extension point)
ltltincludegtgt
ltltextendgtgt
34Extend vs. include
- ltltincludegtgt
- Uzywa sie wtedy, gdy dolaczany przypadek uzycia
musi byc wykonany - ltltextendgtgt
- Uzywa sie, gdy rozszerzajacy przypadek uzycia
moze lecz nie musi byc wykonany - Przez zdefiniowanie tzw. extension points okresla
sie w którym dokladnie miejscu moze byc wykonany
rozszerzajacy przypadek uzycia
35Diagram przypadków uzycia przyklad
36Relacje pomiedzy aktorami
Fig. 3-55, UML Notation Guide
37Opis przypadku uzycia
- Actors traveler, client account db, airline
reservation system - Preconditions
- Traveler has logged on to the system and
selected change flight itinerary option - Basic course (podstawowy przebieg)
- System retrieves travelers account and flight
itinerary from client account database - System asks traveler to select itinerary segment
she wants to change traveler selects itinerary
segment. - System asks traveler for new departure and
destination information traveler provides
information. - If flights are available then
-
- System displays transaction summary.
- Alternative courses (gdy wystapi jakas sytuacja
wyjatkowa) - If no flights are available then
38Opis przypadku uzycia tabela
39Dalsza lektura
- Ian Sommerville, Inzynieria oprogramowania, r. 12
- http//www.agilemodeling.com ? Artifacts, UML 2