3/17/2015 1 3/17/2015 2 3/17/2015 3 3/17/2015 4 3/17/2015 5 3/17/2015 6 3/17/2015 7 3/17/2015 8 3/17/2015 9 3/17/2015 10 3/17/2015 11 3/17/2015 12 3/1...
4 downloads
17 Views
32MB Size
3/17/2015
1
3/17/2015
2
3/17/2015
3
3/17/2015
4
3/17/2015
5
3/17/2015
6
3/17/2015
7
3/17/2015
8
3/17/2015
9
3/17/2015
10
3/17/2015
11
3/17/2015
12
3/17/2015
13
3/17/2015
14
3/17/2015
15
3/17/2015
16
3/17/2015
17
3/17/2015
18
3/17/2015
19
3/17/2015
20
3/17/2015
21
10/25/2014
1
10/25/2014
2
10/25/2014
3
10/25/2014
4
10/25/2014
5
10/25/2014
6
10/25/2014
7
10/25/2014
8
10/25/2014
9
10/25/2014
10
10/25/2014
11
10/25/2014
12
11/7/2014
1
11/7/2014
2
11/7/2014
3
11/7/2014
4
11/7/2014
5
11/7/2014
6
11/7/2014
7
11/7/2014
8
11/7/2014
9
11/7/2014
10
11/7/2014
11
11/7/2014
12
11/7/2014
13
11/7/2014
14
11/7/2014
15
11/7/2014
16
11/7/2014
17
11/7/2014
18
11/7/2014
19
11/7/2014
20
11/7/2014
21
11/7/2014
22
11/7/2014
23
11/7/2014
24
11/7/2014
25
11/7/2014
26
12/3/2014
1
12/3/2014
2
12/3/2014
3
12/3/2014
4
12/3/2014
5
12/3/2014
6
12/3/2014
7
12/3/2014
8
12/3/2014
9
12/3/2014
10
12/3/2014
11
12/3/2014
12
12/3/2014
13
12/3/2014
14
12/3/2014
15
12/3/2014
16
12/3/2014
17
12/3/2014
18
12/3/2014
19
12/3/2014
20
11/13/2014
UML
Historia • Do połowy lat 90 – około 50 metod • CHAOS – Report – kryzys oprogramowania (http://www.csus.edu/indiv/v/velianitis/161/Cha osReport.pdf) • Potrzeba unifikacji – 94 Booch, Jacobson i Rumbaugh z Rational Software – 95 Unifikacja OMT, Boocha i OOSE w UML – 96 standaryzacja UML pod skrzydłami OMG – 97 wersja 1.1 – 99 wersja 1.3
UML • UML jest językiem specyfikacji, konstruowania, wizualizacji i dokumentowania dla systemów wykorzystujących oprogramowanie • UML wykorzystuje szereg diagramów, które modelują system z różnych perspektyw i na różnym poziomie szczegółowości. http://www.uml-diagrams.org/
1
11/13/2014
Superstruktura • UML2.0 July 2005 • Każdy symbol ma dokładnie określone znaczenie (Podobnie jest w BPMN) • Standard stworzony przez OMG • Opisana w http://www.omg.org/spec/UML/2.0/Superstr ucture/PDF/
Rodzaje diagramów Diagramy struktury: • Klas • Obiektów • Pakietów • Struktur połączonych • Wdrożeniowe: – Komponentów – Rozlokowania
Diagramy dynamiki: • Przypadków użycia • Czynności • Maszyny stanowej • Interakcji: – Sekwencji – Komunikacji – Harmonogramowania (lub Zależności czasowych) – Sterowania interakcją
2
11/13/2014
Przypadki użycia
USE CASE
Przypadek użycia • Przypadek użycia opisuje sposób użycia systemu przez zewnętrznego użytkownika • Precyzuje zakres funkcjonalny systemu • Weryfikuje poprawność i kompletność projektu • Stanowi pomost między użytkownikami a projektantami
Scenariusz (przypadek użycia)
http://cse.unl.edu/~goddard/Courses/CSCE310J/StandardHandouts/ShortUMLreference.pdf
3
11/13/2014
Diagram przypadków użycia • Prezentuje widok systemu wysokiego poziomu • Może przedstawiać wszystkie lub wybrane przypadki użycia systemu
Granice systemu
Aktor
4
11/13/2014
Przypadek użycia
Związki między przypadkami użycia
Przykład 1
Online Shopping - Credit Cards Processing
5
11/13/2014
Przykład 2
Hospital Management
Aktywności
ACTIVITY
Diagram aktywności • UMLowy sposób modelowania procesów biznesowych. • Akcje • Zdarzenia
6
11/13/2014
Węzły
Przykład
Związek diagramu aktywności z BPMN • Semantycznie bardzo duże podobieństwo http://www.omg.org/bpmn/Documents/Notations_and_Workflow_Patterns.pdf
7
11/13/2014
Przykład 1) Paraller Split • BPMN
• Activity Diagram
Przykład 2) Synchronisation • BPMN
• Activity Diagram
Przykład 3) Exclusive Choise + Simple Merge • BPMN
• Activity Diagram
8
11/13/2014
Przykład 4) Multiple Choise + Synchronizing Merge • BPMN
• Activity Diagram
Sekwencja
SEQUENCE
Diagram sekwencji. • Służy do modelowania dynamicznych aspektów systemu. • Prezentuje współdziałanie kilku obiektów w celu realizacji określonego zadania • Czas! • Pozwala określić kolejność występowania komunikatów w czasie.
9
11/13/2014
Wymiarowość sekwencji • Diagram sekwencji posiada dwa wymiary: -wymiar pionowy reprezentuje czas -wymiar poziomy reprezentuje różne obiekty • Orientację wymiarów można zmienić. • Czas rzeczywisty nie jest istotny - istotna jest kolejność zdarzeń
Obiekty i linie • Obiekty są zaznaczone w postaci prostokątów z wpisaną wewnątrz nazwą obiektu(klasy). • Od każdego obiektu prowadzi linia reprezentująca „linię życia”. • Obiekt może być aktywny bądź nie. Jeśli nie jest aktywny, wówczas jego linia życia jest przedstawiona w postaci linii przerywanej; jeśli jest aktywny, to linia życia jest wąskim, długim prostokątem.
10
11/13/2014
Elementy Aktor – np. zewnętrzny użytkownik systemu
Elementy Objekt - instancja klasy
Elementy Komunikat (ang. Message) – komunikacja między obiektami Aktywacja (ang. Activation) – reprezentuje okres czasu , w trakcie ktorego objekt lub aktor wykonuje pewną aktywność
11
11/13/2014
Rekursja - Komunikat wysyłany do siebie samego
Rekursja reprezentowana wraz z aktywacją
• Przerywana strzałka reprezentuje powrót z aktywności
12
11/13/2014
Tworzenie/Kreacja
Usunięcie
Przeplot aktywacji
13
11/13/2014
Zagubiona wiadomość (lost message)
Znaleziona wiadomość (found message)
14
11/13/2014
W Internecie http://www.developer.com/article.php/3080941 http://www.uml-diagrams.org/sequencediagrams.html http://diadraw.com/messages-in-uml-2-0-sequencediagrams/
CLASS
15
11/13/2014
Diagramy klas • Najczęściej stosowane • Powszechnie rozpoznawany element najpopularniejszych metodyk i technik obiektowych. • Statyczne • Mają znaczny wpływ na układ i zawartość innych diagramów UML. • Diagram klas to graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków między nimi.
Diagramy klas • W diagramach UML klasę standardowo przedstawia się jako prostokąt złożony z trzech sekcji: – nazwy klasy – zestawu atrybutów – zestawu operacji
• Możliwe kombinacje graficznej prezentacji klas: – sama nazwa klasy – nazwa klasy z zestawem atrybutów – nazwa klasy z zestawem operacji – nazwa klasy z zestawem atrybutów i operacji
16
11/13/2014
Diagramy klas Opcje prezentacji graficznej klas: – sama nazwa klasy umieszczona w jednosekcyjnym bloku: • oznacza, że sekcje atrybutów i operacji zostały wyspecyfikowane, lecz nie są w sposób jawny zamieszczone w diagramie klas
– blok złożony z trzech sekcji z nazwą w pierwszej sekcji i niewyspecyfikowanymi atrybutami i operacjami – jeśli liczba atrybutów lub operacji jest większa, to ich wyliczanie w odpowiednich sekcjach można przerwać wielokropkiem, co należy interpretować jako przypisanie klasie jeszcze innych atrybutów i operacji – nie wymienionych bezpośrednio w specyfikacji
Diagramy klas – związki Klasy obiektów – podobnie jak inne elementy języka UML – powiązane są różnego rodzaju związkami. W diagramach klas powszechnie stosuje się wszystkie cztery rodzaje związków języka UML, czyli: – asocjacje – uogólnienia – zależności – realizacje
17
11/13/2014
Asocjacja • Związek pomiędzy dwoma lub więcej klasyfikatorami, opisującym powiązania pomiędzy ich instancjami. • Opisuje zbiór powiązań pomiędzy obiektami, tak jak klasa obiektu – zbiór obiektów stanowiących jej instancje. • Wyróżnia się dwa rodzaje asocjacji: – binarne – n-arne
• W praktyce dominują asocjacje binarne.
Asocjacja • Opisują w sposób jedynie elementarny związki między klasami. • Pełna semantyczna interpretacja związku wymaga wprowadzenia szeregu dodatkowych elementów opisu: – ról powiązanych klas – nawigacji – liczebności – agregacji
18
11/13/2014
Nazwy asocjacji Możliwości oznaczania nazw asocjacji: – nienazwane – nazwane, z opcjonalnym zamieszczeniem znacznika wskazującego kierunek interpretacji asocjacji – scharakteryzowane poprzez role klas pełnione w asocjacji – nazwane i równocześnie scharakteryzowane przez role
Role asocjacji • Każdą asocjację można interpretować dwustronnie poprzez podanie ról pełnionych przez powiązane ze sobą klasy. • Rola asocjacji w związku binarnym jest powinnością pełnioną przez jedną klasę obiektu wobec drugiej klasy. • W asocjacji n-arnej role można przypisać każdej z powiązanych ze sobą klas. • Nazwy ról umieszcza się po obydwu stronach asocjacji. • Rola spełniana przez daną klasę lokowana jest bezpośrednio przy klasie określanej.
19
11/13/2014
Nawigacja • Dla każdej asocjacji istniejącej pomiędzy klasami komunikowanie domyślnie odbywa się w obydwu kierunkach asocjacji. Jest to nawigacja dwukierunkowa. • W praktyce występują sytuacje, w których wskazanie kierunku nawigacji zwiększa efektywność komunikowania się. Mamy wtedy do czynienia z nawigacją jednokierunkową.
Liczebność • Liczebność to specyfikacja zakresu dopuszczalnej liczby obiektów danej klasy biorących udział w danym związku. • Jest to określenie liczby obiektów jednej klasy, które wiążą się z jednym obiektem drugiej klasy znajdującym się po przeciwnej stronie tej samej asocjacji.
20
11/13/2014
Liczebności 1 1..* 0..1 * 0..* n 1..n 0..n n..m n..* n, m, o..p, q
dokładnie jeden jeden lub wiele zero lub jeden wiele zero lub wiele dokładnie n (n>1) od 1 do n od 0 do n od n do m (n,m>1) więcej niż n liczebność złożona
Agregacja • Opisuje związek całość-część pomiędzy klasami. • W rzeczywistości istnieje wiele złożonych obiektów składających się z części, które w połączeniu stanowią spójną całość. • Wyróżnia się dwa rodzaje agregacji: – agregację całkowitą (kompozycję) – agregację częściową
• Używa się alternatywnych nazw. Kompozycja nazywana jest również agregacją silną lub składową, natomiast agregacja częściowa – agregacją słabą lub współdzieloną.
Agregacja • Dwa podstawowe pojęcia: – agregat, czyli obiekt stanowiący całość – segment, czyli część
• Dla agregacji całkowitej obiekty-segmenty będące częściami agregatów nie mogą samodzielnie i niezależnie funkcjonować. Usunięcie agregatu powoduje automatyczną likwidację wszystkich segmentów będących jego częściami. • Agregacja częściowa wskazuje na asocjację, w której usunięcie obiektu będącego agregatem nie powoduje likwidacji obiektów będących jego częściami, czyli obiektów-segmentów. Obiekty współdzielone mogą funkcjonować samodzielnie, niezależnie od agregatu.
21
11/13/2014
Atrybuty i operacje statyczne Atrybuty oraz operacje statyczne (będące właściwością klasy, a nie obiektu) oznacza się przez podkreślenie linią ciągłą.
Klasy i operacje abstrakcyjne Nazwy klas abstrakcyjnych, nie mających konkretnych instancji obiektów oraz operacji abstrakcyjnych (nie mających konkretnej implementacji w danej klasie) pisane są w diagramach UML kursywą.
22
11/13/2014
Widoczność Widoczność oznacza poziom dostępności atrybutów i operacji dla innych klas. W języku UML stosowane są następujące poziomy widoczności: – Publiczny + – Prywatny – – Chroniony # – Pakietowy ~
Typy wartości oraz wartości początkowe • Dla atrybutów oraz operacji można po dwukropku określić ich typy wartości (w przypadku operacji jest to typ wartości zwracanej przez daną operację). • Dla operacji można również w nawiasach podać typy wartości argumentów oraz kierunki ich przekazywania (in, out). • Atrybutom można także nadać wartości początkowe pisząc je po znaku =
23
11/13/2014
Uogólnienia, dziedziczenie • Za pomocą diagramów UML można przedstawiać związki dziedziczenia klas. • Klasy na najniższym poziomie hierarchii nazywane są liśćmi (oznaczenie {leaf}), natomiast na najwyższym – klasami podstawowymi albo korzeniami (oznaczenie {root}). • Oznaczenia {leaf} oraz {root} są opcjonalne.
Zależności • Zależność to taki związek pomiędzy dwoma elementami modelowania, w którym zmiana jednego z nich, niezależnego, wpływa na drugi, zależny. • Związek ten w diagramach klas odgrywa mniejsze znaczenie. Oznacza on, że niezależna klasa obiektów wykorzystuje klasę zależną. • Klasa niezależna jest także nazywana docelową, natomiast zależna źródłową.
24
11/13/2014
Bibliografia • Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski – „Język UML 2.0 w modelowaniu systemów informatycznych” • Martin Fowler – „UML w kropelce” • Dokumentacja UML opracowana przez OMG
To wszystko na dziś
DO ZOBACZENIA NA LABORATORIUM
25
11/13/2014
26
11/22/2014
1
11/22/2014
2
11/22/2014
3
11/22/2014
4
11/22/2014
5
11/22/2014
6
11/22/2014
7
11/22/2014
8
12/6/2014
1
12/6/2014
2
12/6/2014
3
12/6/2014
4
12/6/2014
5
12/6/2014
6
12/6/2014
7
12/6/2014
8
12/6/2014
9
12/6/2014
10
12/6/2014
11
12/6/2014
12
1/10/2015
1
1/10/2015
2
1/10/2015
3
1/10/2015
4
1/10/2015
5
1/10/2015
6
1/10/2015
7
1/10/2015
8
1/10/2015
9
1/10/2015
10
1/10/2015
11
1/10/2015
12
1/10/2015
13
3/17/2015
1
3/17/2015
2
3/17/2015
3
3/17/2015
4
3/17/2015
5
3/17/2015
6
3/17/2015
7
3/17/2015
8
3/17/2015
9
10/16/2014
1
10/16/2014
2
10/16/2014
3
10/16/2014
4
10/16/2014
5
10/16/2014
6
10/16/2014
7
10/16/2014
8
10/16/2014
9
10/16/2014
10
10/16/2014
11
10/16/2014
12