Analiza Semantyka modelu obiektowego (UML to nie wszystko)
Diagramy klas związki generalizacji specjalizacji opisują hierarchie pojęć związki asocjacji opisują logiczne powiązania pomiędzy pojęciami związki agregacji opisują zasady wewnętrznej konstrukcji obiektów złożonych 2
Generalizacja specjalizacja związek pomiędzy klasami, a nie obiektami klas dla zapewnienia odpowiedniej jakości modelu konieczne zachowanie odpowiedniego poziomu czytelności konieczność zapewnienia równowagi pomiędzy prostotą a precyzją modelu modelujemy rzeczywiste, a nie przypadkowe związki 3
Generalizacja specjalizacja Wskazania do specjalizacji klas: odmienna struktura (atrybuty) odmienne zachowanie (operacje) odmienne asocjacje związki pomiędzy specjalizacjami stan jako specjalizacja 4
Generalizacja specjalizacja Poprawne zależności pomiędzy operacjami klasy specjalizacji i generalnej: ukonkretnienie operacji abstrakcyjnej rozwinięcie, uszczegółowienie (operacja klasy specjalizacji robi coś więcej ) rozszerzenie (dodatkowe operacje) ograniczenie (restrykcje lub powiązanie operacji) 5
Generalizacja specjalizacja Błędy: niechciane dziedziczenie (operacja klasy generalnej jest niepoprawna dla specjalizacji) nadmierne dziedziczenie (operacja klasy specjalizacji robi mniej ) zmiana (operacja klasy specjalizacji robi coś innego ) 6
Agregacja Związek określający sposób budowy złożonych obiektów z elementów składowych (związek części z całością) Pełny opis agregacji wymaga dodatkowej dokumentacji poza diagramem, który nie jest w stanie pokazać większości aspektów związku 7
Rodzaje agregacji komponent całość materiał produkt porcja obiekt miejsce obszar element komplet element formacja członek grupa członek zespół 8
Komponent całość Najbardziej intuicyjny rodzaj agregacji zależność strukturalna lub funkcjonalna opisująca konstrukcję obiektów o złożonej strukturze. Przykłady: koła, silnik, skrzynia biegów są częściami samochodu sceny są częściami filmu geometria jest częścią matematyki Całość jest strukturą złożoną z części w ściśle określony sposób. Najczęściej bardzo istotne są również związki pomiędzy komponentami. Części pełnią konkretna funkcję w całości, mogą być odłączane, dołączane, wymieniane. 9
Materiał produkt Związek pomiędzy produktem, a materiałami, z których jest wykonany. Przykłady: cappuccino składa się częściowo z mleka samochód zbudowany jest częściowo ze stali chleb zrobiony jest częściowo z mąki Elementy (materiały) nie mogą być odłączane od całości, chociaż czasem mogą być dołączane. Można określać proporcje składu produktu. Z reguły nie ma struktury i nie istnieją związki pomiędzy elementami. 10
Porcja obiekt Związek pomiędzy całym obiektem, a jego powtarzalnymi częściami (porcjami, segmentami) Przykłady: kromka jest częścią bochenka chleba, odcinek (kilometr) drogi jest częścią drogi wagonik jest częścią kolejki linowej godzina jest częścią doby Porcje są identyczne lub bardzo podobne i mają niektóre cechy wspólne z całością. Dzięki temu możliwe jest utrzymywanie tych cech wyłącznie na poziomie całości propagacja atrybutów. Elementy nie tworzą struktury, ale często można znaleźć uporządkowanie. Porcje mogą być zliczane, dodawane i odłączane. 11
Miejsce obszar Związek pomiędzy obiektami w przestrzeni. Przykłady: Warszawa leży w Polsce szczyt jest częścią góry pole karne jest częścią boiska równonoc wiosenna jest częścią roku Obiekty składowe zawierają się przestrzennie w całości, mają pewne cechy wspólne (propagacja atrybutów). Elementy tworzą strukturę. Elementy z reguły nie mogą być odłączane. 12
Składnik komplet Związek określający przynależność obiektu do kompletu, zestawu stanowiącego pewną całość wyłącznie wtedy, gdy zawiera wszystkie elementy składowe. Przykłady: złoty medal jest elementem kompletu medali za bieg na 100m mężczyzn IO XXXI Olimpiady w Rio de Janeiro kupon nr 123456 należy do losowania dużego lotka 1.08.2017r. 1. tercja jest częścią meczu o MŚ w hokeju Obiekty składowe są podobne do siebie. Elementy nie tworzą struktury, ale z reguły są uporządkowane. Mogą być zliczane. Elementy nie mogą być ani odłączane, ani dołączane. 13
Element formacja Związek określający przynależność obiektu do zorganizowanej formacji, organizmu. Przykłady: gałąź jest elementem korony drzewa linia jest elementem rysunku Obiekty składowe są podobne do siebie mają wiele cech wspólnych. Elementy tworzą strukturę. Elementy mogą być odłączane i dołączane. 14
Członek grupa Związek określający przynależność obiektów do grupy określaną na podstawie pewnego przyporządkowania. Przykłady: drzewo należy do lasu statek należy do floty student należy do organizacji studenckiej Kolekcja składa się z wielu obiektów, które mogą być zupełnie różne. Wewnętrzna struktura nie jest istotna. Brak związków pomiędzy poszczególnymi elementami. Elementy mogą być dodawane lub odłączane od grupy. 15
Członek zespół Związek określający silny i trwały związek członków tworzących zespół. Przykłady: Flip i Flap, Bolek i Lolek Każdy z członków ma swoją funkcję w zespole. Odłączenie członka od zespołu nie jest zakładane. Czasem możliwe jest osłabienie związku dopuszczając np. wymianę członka zespołu. 16
Charakterystyka agregacji Rodzaj Jednor. Odłącz. Struktur. komponent całość + + materiał produkt członek zespół + członek grupa + porcja obiekt + + miejsce obszar + + składnik komplet + element formacja + + + 17
Kwalifikacja agregacji Kwalifikacja agregacji zależy od decyzji analityka, np.: pociąg składa się z wagonów: porcja obiekt: jednorodność ma znaczenie członek grupa: jednorodność nie ma znaczenia serwer jest częścią infrastruktury serwerowni: komponent całość: struktura jest istotna członek grupa: struktura nie jest istotna 18
Kwalifikacja agregacji Kwalifikacja agregacji zależy od decyzji analityka, np.: dysk jest częścią macierzy dyskowej: element formacja: struktura jest istotna porcja obiekt: struktura nie jest istotna białko składa się z C, O, N, H, S, P członek zespół: modelujemy strukturę materiał produkt: istotny jest tylko skład chemiczny 19
Przechodniość relacji agregacji Agregacje najczęściej są przechodnie jeśli zachowany jest rodzaj agregacji, np.: silnik jest częścią samochodu (komponent całość) i tłok jest częścią silnika (komponent całość) => tłok jest częścią samochodu Mazowsze leży w Polsce (miejsce obszar) i Warszawa leży na Mazowszu (miejsce obszar) => Warszawa leży w Polsce Dla agregacji tranzytywnych naturalna jest propagacja operacji. 20
Przechodniość relacji agregacji Przy różnych rodzajach agregacji z reguły brak przechodniości, np.: silnik jest częścią statku (komponent całość) i statek należy do floty (członek grupa) => silnik NIE jest częścią floty Ale w pewnych sytuacjach ją częściowo obserwujemy, np.: silnik jest wykonany częściowo z aluminium (materiał produkt) silnik jest częścią samochodu (komponent całość) => samochód jest zbudowany częściowo z aluminium ale aluminium NIE jest częścią samochodu 21
Istotne cechy agregacji W ramach opisu agregacji konieczne jest określenie następujących cech związku, aby w pełni go opisać. Cechy te nie występują na diagramie! propagacja operacji propagacja atrybutów instancjonowanie składowych i powiązań wymuszanie niezmienności powiązań zarządzanie składowymi i powiązaniami dostępność (widoczność) składowych destrukcja składowych 22
Związki nie będące agregacjami Zawieranie topologiczne / tymczasowe klient jest w sklepie nośnik jest w urządzeniu San Marino jest we Włoszech mylone z agregacją typu miejsce obszar lub komponent całość 23
Związki nie będące agregacjami Klasyfikacja samochód jest pojazdem Java jest językiem obiektowym student jest członkiem grupy studenckiej to w istocie specjalizacja, mylona z agregacją członek grupa 24
Związki nie będące agregacjami Cechy, atrybuty osoba ma adres samochód ma prędkość maksymalną urządzenie ma parametry zależność mylona z agregacją komponent całość 25
Związki nie będące agregacjami Dodatki kolczyki są w uszach fotelik jest w samochodzie asocjacja, nadinterpretacja agregacji komponent całość 26
Związki nie będące agregacjami Własność Ala ma kota statek należy do armatora asocjacja, mylona z agregacją członek grupa (zespół) 27
Diagramy stanów Diagramy stanów są elementem modelu dodatkowym względem diagramu klas. Służą zwiększeniu precyzji opisu klas. Stosuje się do opisu tych klas, których obiekty mają pewien nietrywialny cykl życia. 28
Pojęcie stanu Stan zbiór wartości atrybutów i/lub związków Wśród atrybutów klasy jest jeden lub kilka atrybutów (ewentualnie związków), których wartości określają stan, w którym znajduje się obiekt. Przykłady: winda: piętro (1 atrybut) aparat: tryb, przysłona, czas (zbiór atrybutów) kurier: przesyłka (związek) 29
Pojęcie stanu Stan zbiór typów obiektowych, do których obiekt przynależy Obiekt w danej chwili może przyjmować typ lub typy, które określają stan obiektu. Przykłady: osoba: pracująca / bezrobotna uczeń właściciel samochodu pociąg: planowany / zestawiany / w trasie sprzęt: wyłączony / standby / włączony 30
Istota stanu Ograniczenie zmienności atrybutów Dodatkowe dookreślenie definicji atrybutu, kiedy definicja dziedziny nie określa wszystkiego, co jest istotne: nr piętra w windzie może się zmieniać tylko o 1 biegi w skrzyni biegów można zmieniać odmiennie, w zależności od rodzaju skrzyni 31
Istota stanu Ilustracja znaczenia atrybutu, dyskretyzacja wartości Jeśli atrybut ma wartość ciągłą lub zbiór wartości jest duży, można podzielić zbiór wartości na podzbiory o znaczeniu istotnym dla problemu. ciśnienie w kotle: 0 1 = za małe, 1 3 = robocze, 3 5 = nadmierne, > 5 = wybuchnie! 32
Istota stanu Określenie dopuszczalności operacji W każdym ze stanów mogą być dopuszczalne inne operacje na obiekcie na dokumencie nie można wykonać operacji publikuj, jeśli nie jest on w stanie zatwierdzony Te same operacje w zależności od stanu mogą dawać inne efekty jednokrotne naciśnięcie klawisza powoduje wolne przewijanie, kolejne szybkie 33
Ujednolicenie teoretyczne Teoria mówi, że wszystko jest obiektem, więc: Stan to zbiór powiązań obiektu z innymi obiektami. 1. Stan jako wartość atrybutu = związek z obiektem klasy typu podstawowego / wyliczeniowego 2. Stan jako związek = związek z obiektem innej klasy modelu 3. Stan jako typ = związek z obiektem typu Object Type 34
Rodzaje zdarzeń podstawowe zdarzenia dla życia obiektu utworzenie likwidacja problem do opisania: jakie działania wykonać w tych sytuacjach (tworzenie / usuwanie) 35
Rodzaje zdarzeń Stan zbiór wartości atrybutów i/lub związków połączenie odłączenie przełączenie problemy do opisania: jakie działania wykonać w tych sytuacjach (dołączanie / odłączanie obiektów) jakie zmiany dotyczą zdarzenia i co się z nimi wiąże 36
Rodzaje zdarzeń Stan zbiór typów obiektowych, do których obiekt przynależy klasyfikacja deklasyfikacja reklasyfikacja problem do opisania: jak zmieniają się typy / interfejsy i co się z tym wiąże 37
Model Zmiany stanów opisujemy: 1. automatem skończonym (FSM: Finite State Machine) diagramem stanów macierzą przejść 2. zbiorem reguł 38
Modelowanie diagramami stanów W UML automat jest wzbogacony o dodatkowe informacje i nazywany jest ESM (Extended State Machine) stany, stany złożone, pseudostany zdarzenia akcje i aktywności zmienne i parametry zdarzeń warunki dozoru sygnały 39
Kiedy stosować diagramy stanów gdy obiekt ma nietrywialny cykl życia gdy kilka obiektów oddziałuje ze sobą gdy zachowanie obiektu jest sterowane zdarzeniami i jest jednowątkowe gdy obiekt ma jeden stan (lub bardzo niewiele stanów) na raz 40
Kiedy nie stosować diagramów stanów gdy obiekt nie ma cyklu życia lub jest on bardzo prosty gdy zachowanie obiektu nie jest sterowane zdarzeniami gdy obiekt miałby równocześnie istotnie wiele stanów gdy zachowanie obiektu jest wielowątkowe gdy oddziałuje ze sobą wiele różnych obiektów 41