Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Infrastruktura języka UML w wersji 2.2 Część VII Pakiet Core::Constructs (diagramy: operacji, klas, typów danych, pakietów)

Podobne prezentacje


Prezentacja na temat: "Infrastruktura języka UML w wersji 2.2 Część VII Pakiet Core::Constructs (diagramy: operacji, klas, typów danych, pakietów)"— Zapis prezentacji:

1 Infrastruktura języka UML w wersji 2.2 Część VII Pakiet Core::Constructs (diagramy: operacji, klas, typów danych, pakietów)

2 Diagram operacji

3 Metaklasa BehavioralFeature Opiera się na definicji Abstractions::BehavioralFeatures::Behavioral Feature Dodaje możliwość zgłaszania wyjątków w trakcie wywołania

4 Typ wyliczeniowy ParameterDirectionKind Definiuje literały używane do określenia kierunku przekazywania parametrów: in – parametr wejściowy inout – parametr wejściowo-wyjściowy out – parametr wyjściowy return – zwracana wartość

5 Metaklasa Parameter Scala definicje Basic::Parameter i Abstractions::BehavioralFeatures::Parameter Dodatkowo specjalizuje Constructs::MultiplicityElement zawiera specyfikację kierunku – domyślnie in daje możliwość określenia wartości domyślnej

6 Metaklasa Operation Operacja to cecha czynnościowa klasyfikatora określająca nazwę, typ, parametry i ograniczenia dla wywołania powiązanego zachowania Atrybuty pochodne /isOrdered, /isUnique, /lower i /upper odnoszą się do wartości zwracanej przez daną operację Atrybut isQuery określa czy wykonanie operacji zmienia stan systemu Wartość domyślna: false (nie zmienia) Operacja może zwracać najwyżej jedną wartość

7 Metaklasa Operation – powiązania /type (pochodny) – określa typ zwracanej wartości redefinedOperation – wskazuje operację przedefiniowywaną przez daną operację raisedException – określa typy zgłaszanych wyjątków precondition – ograniczenia stanu systemu, które muszą być spełnione w momencie wywołania operacji każda implementacja operacji może zakładać ich spełnienie postcondition – ograniczenia określające stan systemu po pomyślnym zakończeniu operacji (o ile spełnione były warunki wstępne) każda implementacja operacji musi gwarantować ich spełnienie bodyCondition – opcjonalne ograniczenie na zwracaną wartość może być przedefiniowane (w przeciwieństwie do postcondition) tylko dla isQuery = true

8 Metaklasa Operation – semantyka dodatkowa Jeśli wywołanie operacji zgłasza wyjątek, nie można zakładać spełnienia ograniczeń postcondition i bodyCondition Na tym poziomie nie określa się zachowania wywołania operacji wobec niespełnienia warunków precondition

9 Przedefiniowywanie operacji Operacja może być przedefiniowana w specjalizacji swojego klasyfikatora Operacja przedefiniowująca może Wyspecjalizować typy parametrów Dodać nowe warunki wstępne i końcowe Dodać zgłaszane wyjątki W inny sposób wzbogacić specyfikację operacji Dodatkowe reguły niezmienności, kowariancji lub kontrawariancji typów i warunków wstępnych decydują o tym czy specjalizowany klasyfikator może zastąpić klasyfikator bardziej ogólny

10 Notacja operacji [ ] ( [ ] ) [: [ ] [[ ]] [{ [, ]* }]] ::= redefines | query | ordered | unique | ::= [, ]* ::= [ ] : [[ ]] [= ] [{ [, ]* }] ::= in | out | inout (domyślnie in)

11 Opcje prezentacyjne Lista parametrów może zostać pominięta Zwracana wartość może być pokazana jako parametr toString(return: String) albo jako typ operacji toString(): String

12 Przykłady notacji operacji display() -fireEvent() +findAllCustomers(): Person[*] {query, ordered} +giveRise(rate: Money, people: Employee[1..*]{unique})

13 Diagram klas

14 Metaklasa Operation (c.d.) Diagram pokazuje powiązanie metaklas Operation i Class reprezentujące przynależność operacji do klasy

15 Metaklasa Classifier (c.d.) Diagram pokazuje powiązanie między metaklasami Classifier i Property, które reprezentuje atrybuty klasyfikatora Wszystkie instancje klasyfikatora zawierają wartości odpowiadające jego atrybutom

16 Przykłady notacji atrybutów

17 Metaklasa Property Właściwość jest rodzajem cechy strukturalnej klasyfikatora Opisuje deklarowany stan instancji klasyfikatora w formie nazwanego związku z wartością lub zbiorem wartości Właściwość związana z klasyfikatorem jako attribute reprezentuje jego atrybut, może także reprezentować koniec powiązania Wartość (wartości) właściwości są przechowywane w szczelinach (slots) instancji klasyfikatora Właściwość związana z powiązaniem jako memberEnd reprezentuje koniec powiązania Wartość (wartości) właściwości stanowi odniesienie do instancji na innych końcach powiązania

18 Typy kolekcji właściwości IsOrderedIsUniqueTyp kolekcji falsetrueSet true OrderedSet false Bag truefalseSequence

19 Semantyka właściwości Właściwość jest pochodna (isDerived = true) jeśli jej wartość (wartości) może być wyliczona skądinąd Właściwości pochodne zwykle są tylko do odczytu (isReadOnly = true) Reguła wyliczenia wartości właściwości pochodnej może być określona przez ograniczenie Właściwość pochodna może przedefiniowywać właściwość pierwotną

20 Semantyka właściwości (c.d.) Właściwość może być oznaczona jako podzbiór innej (subsettedProperty) Kolekcja związana z instancją pierwszej właściwości musi być podzbiorem kolekcji odpowiadającej instancji drugiej właściwości Warunkiem koniecznym jest zgodność odpowiednich elementów Właściwość może być oznaczona jako suma pochodna (isDerivedUnion = true). Znaczy to, że kolekcja wartości wyznaczonych przez właściwość w pewnym kontekście jest wyliczona jako suma (mnogościowa) wszystkich kolekcji wartości wyznaczonych w tym samym kontekście przez właściwości-podzbiory.

21 Notacja właściwości ::= [ ] [/] [: ] [[ ]] [= ] [{ [, ]* }] ::= readOnly | union | subsets | redefines | ordered | unique |

22 Metaklasa Class Klasa opisuje zbiór obiektów współdzielących specyfikację cech, ograniczeń i semantyki Klasa to klasyfikator, którego cechami są atrybuty i operacje Atrybutami klasy są instancje metaklasy Property będące własnością tej klasy Niektóre z atrybutów mogą reprezentować nawigowalne końce binarnych powiązań

23 Notacja klas Klasa używa notacji klasyfikatora Ponieważ klasa jest najpowszechniej używanym rodzajem klasyfikatora, opuszcza się z reguły słowo kluczowe > wewnątrz symbolu klasyfikatora

24 Klasy – przykłady notacji

25 Metaklasa Association Powiązanie opisuje zbiór krotek złożonych z instancji typów końców powiązania Instancją powiązania (association) jest wiązanie (link) Powiązanie specyfikuje związek semantyczny, który może zajść między typowanymi instancjami Powiązanie ma co najmniej 2 końce reprezentowane przez właściwości typów będących końcami

26 Nawigowalność końca powiązania Końcem nawigowalnym z przeciwnych końców jest taki, który Jest własnością klasy końca (ownedAttribute) LUB Jest określony jako nawigowalny koniec posiadany (navigableOwnedEnd) Zakłada się, że można dojść (w czasie wykonania) z obiektów uczestniczących w wiązaniach na innych końcach powiązania do obiektów na końcach nawigowalnych Do obiektów osiągalnych w ten sposób można w zwykły sposób wysyłać komunikaty

27 Dodatkowa semantyka powiązań Koniec powiązania może być oznaczony jako podzbiór końca innego powiązania jeśli Oba powiązania mają tyle samo końców Odpowiednie typy końców są zgodne Koniec powiązania może być oznaczony jako przedefiniowujący koniec innego powiązania (pod analogicznymi warunkami) Wtedy dla konkretnego zbioru instancji na innych końcach obu powiązań kolekcje wyznaczone przez koniec przedefiniowujący i przedefiniowany są takie same

28 Dodatkowa semantyka powiązań (c.d.) Powiązania mogą być specjalizowane Istnienie wiązania w powiązaniu specjalizującym implikuje istnienie wiązania wiążącego ten sam zbiór instancji w powiązaniu specjalizowanym Powiązanie (tylko binarne) może reprezentować kompozycję czyli agregację całkowitą (isComposite = true) Jest to silna postać agregacji czyli związku całość-część, w której instancja części jest zawarta w co najwyżej jednej instancji całości w danej chwili Usunięcie całości pociąga za sobą usunięcie wszystkich części

29 Uwagi Nie jest określony porządek i sposób tworzenia instancji części w kompozycji Nie jest określony związek między specjalizacją powiązania a przedefiniowywaniem i braniem podzbioru jego końca Nie jest określony związek logiczny między wyznaczaniem powiązania pochodnego a wyznaczaniem jego (pochodnych) końców

30 Powiązania – przykłady notacji

31

32 Diagram typów danych

33 Metaklasa DataType Typ danych (DataType) to klasyfikator (typ), którego instancje są identyfikowane tylko przez swoją wartość Może zawierać atrybuty – pozwala to modelować typy strukturalne

34 Metaklasy Property i Operation (c.d.) Diagram pokazuje związek między typem danych a jego atrybutami (instancje Property) i operacjami (instancje Operation)

35 Metaklasa PrimitiveType Podstawowy typ danych specyfikuje predefiniowany typ danych bez interesującej struktury wewnętrznej Jego operacje mogą być określone poza UML 4 typy podstawowe z Core::PrimitiveTypes są instancjami PrimitiveType

36 Metaklasa Enumeration Wyliczenie to typ danych, którego wartości są wymienione w modelu jako literały wyliczenia Jest możliwe poszerzenie dostępnych literałów wyliczenia w innym pakiecie lub profilu

37 Metaklasa EnumerationLiteral Zdefiniowana przez użytkownika wartość typu wyliczeniowego Ma nazwę identyfikującą go w ramach wyliczenia Nazwy literałów wyliczeń nie są globalne i muszą na ogół być kwalifikowane

38 Diagram pakietów

39 Metaklasa Type (c.d.) Diagram pokazuje powiązanie między metaklasami Type i Package reprezentujące przynależność typu do pakietu

40 Metaklasa Package Pakiet stanowi zgrupowanie elementów, zapewnia dla swoich elementów przestrzeń nazewniczą Może zawierać inne pakiety oraz scalać inne pakiety Jeśli element pakietu ma określoną widzialność, to jest ona prywatna albo publiczna

41 Pakiety – notacja

42 Metaklasa PackageMerge Scalenie pakietów to skierowany związek między dwoma pakietami określający jak elementy jednego pakietu rozszerzają elementy innego pakietu Powinno być używane wtedy, gdy elementy różnych pakietów mają takie same nazwy i reprezentują to samo pojęcie Pozwala to przyrostowo definiować pojęcia

43 Metaklasa PackageMerge (c.d.) Scalenie może być rozumiane jako operacja, która na podstawie zawartości 2 pakietów produkuje nowy pakiet, którego elementy stanowią kombinację elementów obu zaangażowanych pakietów Implikuje to wykonanie na elementach reprezentujących te same pojęcia szeregu transformacji podlegających formalnie określonym regułom Pakiet źródłowy (przyjmujący – receivingPackage) reprezentuje zarówno operand scalania, jak i rezultat scalania

44 Scalenie pakietów – notacja

45 Scalenie pakietów – widok konceptualny

46 Semantyka scalania pakietów

47 Scalanie pakietów – przykład

48 Scalanie pakietów – przykład (c.d.)


Pobierz ppt "Infrastruktura języka UML w wersji 2.2 Część VII Pakiet Core::Constructs (diagramy: operacji, klas, typów danych, pakietów)"

Podobne prezentacje


Reklamy Google