Analiza. Semantyka modelu obiektowego (UML to nie wszystko)

Podobne dokumenty
Analiza i projektowanie systemów informatycznych. Analiza systemowa

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

UML w Visual Studio. Michał Ciećwierz

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Rysunek 1: Przykłady graficznej prezentacji klas.

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

1 Projektowanie systemu informatycznego

Modelowanie danych, projektowanie systemu informatycznego

UML cz. II. UML cz. II 1/38

Projektowanie logiki aplikacji

Podstawy programowania III WYKŁAD 4

Diagramy klas. dr Jarosław Skaruz

Modelowanie obiektowe

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Paweł Kurzawa, Delfina Kongo

Podstawy projektowania systemów komputerowych

Język UML w modelowaniu systemów informatycznych

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Inżynieria oprogramowania. Część 5: UML Diagramy klas

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Spis treúci. 1. Wprowadzenie... 13

Bazy danych. dr inż. Andrzej Macioł

Podejście obiektowe - podstawowe pojęcia

UML. zastosowanie i projektowanie w języku UML

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Modelowanie i Programowanie Obiektowe

Diagramy klas. WYKŁAD Piotr Ciskowski

Analiza i projektowanie aplikacji Java

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

TECHNOLOGIE OBIEKTOWE. Wykład 3

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Podstawy Programowania Obiektowego

Świat rzeczywisty i jego model

MODELOWANIE OBIEKTOWE

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programowanie obiektowe - 1.

Michał Adamczyk. Język UML

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

MAS dr. Inż. Mariusz Trzaska

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Programowanie obiektowe

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Unified Modeling Language

Charakterystyka oprogramowania obiektowego

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Modelowanie i obliczenia techniczne. dr inż. Paweł Pełczyński

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Podejście obiektowe wprowadzenie

Klasyfikacja rysunku technicznego elektrycznego

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Wprowadzenie do systemów informacyjnych

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Technologie informacyjne - wykład 12 -

SYSTEMY CZASU RZECZYWISTEGO STEROWNIK WIND. Dokumentacja projektu. Danilo Lakovic. Joanna Duda. Piotr Leżoń. Mateusz Pytel

Programowanie obiektowe

problem w określonym kontekście siły istotę jego rozwiązania

Programowanie obiektowe

Technologie obiektowe

Technologie i usługi internetowe cz. 2

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Wykład I. Wprowadzenie do baz danych

Podstawy modelowania programów Kod przedmiotu

WYKŁAD 1. Wprowadzenie do problematyki baz danych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Język UML. dr inż. Piotr Szwed C3, pok

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Podstawy inżynierii oprogramowania

UML a kod. C++, Java i C#

MODELOWANIE OBIEKTOWE Z UML

Diagramy przypadków użycia

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Bazy danych. dr inż. Andrzej Macioł

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Programowanie obiektowe

Zalety projektowania obiektowego

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Język programowania. Andrzej Bobyk

MAS dr. Inż. Mariusz Trzaska

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Język UML w modelowaniu systemów informatycznych

Zagadnienia do próbnych matur z poziomu podstawowego.

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Transkrypt:

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