UML. zastosowanie i projektowanie w języku UML



Podobne dokumenty
TECHNOLOGIE OBIEKTOWE. Wykład 3

Rysunek 1: Przykłady graficznej prezentacji klas.

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

UML w Visual Studio. Michał Ciećwierz

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

Diagramy klas. dr Jarosław Skaruz

Modelowanie obiektowe

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

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

Podstawy programowania III WYKŁAD 4

Michał Adamczyk. Język UML

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

Podstawy inżynierii oprogramowania

Paweł Kurzawa, Delfina Kongo

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

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Podstawy projektowania systemów komputerowych

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

Język UML w modelowaniu systemów informatycznych

Diagramy klas i obiektów

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Podstawy Programowania Obiektowego

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

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

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

Mechanizm dziedziczenia

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Diagramy klas. WYKŁAD Piotr Ciskowski

Programowanie obiektowe

Język UML w modelowaniu systemów informatycznych

MODELOWANIE OBIEKTOWE

Świat rzeczywisty i jego model

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

UML - zarys 2007/2008

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Modelowanie i analiza systemów informatycznych

Podstawy modelowania w języku UML

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

Modelowanie i Programowanie Obiektowe

Diagramy czynności Na podstawie UML 2.0 Tutorial

Programowanie obiektowe

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

Materiały do zajęć VII

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

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

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

Programowanie obiektowe - 1.

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Wykład 8: klasy cz. 4

Modelowanie danych, projektowanie systemu informatycznego

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Zalety projektowania obiektowego

Język UML w modelowaniu systemów informatycznych

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Podstawy języka UML UML

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Technologie i usługi internetowe cz. 2

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

Programowanie obiektowe

Enkapsulacja, dziedziczenie, polimorfizm

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Rozdział 4 KLASY, OBIEKTY, METODY

Diagramy sekwencji. wymienianych między nimi

Język UML w modelowaniu systemów informatycznych

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Język UML w modelowaniu systemów informatycznych

Technologie obiektowe

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Projektowanie obiektowe oprogramowania Wykład 2 - UML Wiktor Zychla 2016

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Programowanie obiektowe

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Wykład 9: Polimorfizm i klasy wirtualne

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Język UML w modelowaniu systemów informatycznych

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

UML cz. III. UML cz. III 1/36

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

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

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

Dziedziczenie. dr Jarosław Skaruz

Wprowadzenie do systemów informacyjnych

1 Projektowanie systemu informatycznego

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Programowanie obiektowe

Język programowania. Andrzej Bobyk

Programowanie obiektowe

Bazy danych TERMINOLOGIA

Transkrypt:

UML zastosowanie i projektowanie w języku UML

Plan Czym jest UML Diagramy przypadków użycia Diagramy sekwencji Diagramy klas Diagramy stanów Przykładowe programy Visual Studio a UML

Czym jest UML UML jest graficznym językiem pozwalającym na opisywanie systemów (nie tylko informatycznych, lecz głównie do tego celu jest on używany) za pomocą diagramów i słów. UML jest standardem dzięki czemu diagramy w nim zbudowane będą zrozumiałe dla każdego, kto miał z nim styczność. Język ten jest bardzo rozbudowany. Na szczęście w większości przypadków używa się tylko jego drobnego podzbioru. Nie sposób będzie zaprezentować wszystkich jego możliwości.

Diagramy przypadków użycia definiują granice modelowanego systemu określają jego kontekst wymieniają użytkowników systemu i jednostki zewnętrzne przedstawiają funkcje dostępne dla użytkowników określają powiązania i zależności pomiędzy nimi

Diagramy przypadków użycia W diagramach przypadków użycia UML pojawiają się: aktorzy reprezentujący osoby, grupy osób lub elementy otoczenia systemu wchodzące w interakcje z systemem i odgrywający pewną rolę (jedna osoba może być reprezentowana przez kilku aktorów odgrywających różne role) przypadki użycia oznaczające zbiór scenariuszy związanych z konkretnym wykorzystaniem systemu klasyfikatory do których przynależą konkretne przypadki użycia powiązania łączące aktorów z przypadkami użycia, w których odgrywają

Diagramy przypadków użycia

Diagramy sekwencji Diagramy sekwencji dobrze ukazują dynamiczne aspekty realizacji scenariuszy, w których dochodzi do złożonych oddziaływań pomiędzy obiektami. Podstawowymi oddziaływaniami są wymiany komunikatów oznaczane następującymi symbolami: przesłanie komunikatu asynchronicznego strzałka zwykła wywołanie funkcji strzałka z wypełnionym grotem powrót z funkcji strzałka rysowana linią przerywaną

Diagramy sekwencji Na diagramach sekwencji w łatwy sposób ilustrować można tworzenie i niszczenie obiektów (poprzez odpowiednie umieszczenie obiektów i odpowiednie symbole). Diagramy sekwencji mogą zawierać dodatkowe konstrukcje umożliwiające zapis takich aspektów realizacji programu jak instrukcje warunkowe czy pętle. Realizuje się to poprzez umieszczenie na diagramie sekwencji odpowiednich regionów ramek. Diagramy sekwencji mogą także zawierać informacje o ograniczeniach czasowych realizowanych działań (istnieją też specjalne diagramy do tego celu timing diagrams.

Diagramy sekwencji - przykład

KLASY Klasa jest miejscem przechowywania cech obiektów, które są niezmienne. Klasa nie jest zbiorem obiektów i nie jest definicją zbioru obiektów. Stosunek klasa/podklasa oznacza, że obiekty podklasy posiadają wszystkie cechy nadklasy, plus swoje cechy. Np. klasa Student ma wszystkie cechy klasy Osoba, plus niektóre własne.

Klasy abstrakcyjne W UML-u klasy abstrakcyjne niewiele różnią się od normalnych klas. Jedyną widoczną różnica jest ich nazwa, napisana kursywą. Warto zauważyć, że można tworzyć także operacje abstrakcyjne. Wówczas ich nazwa będzie tak jak nazwa klas abstrakcyjnych, napisana kursywą.

Najważniejsze cechy obiektów: Nazwa językowy identyfikator Typ czyli statyczna budowa obiektu Metody operacje które można wykonać na obiekcie Zdarzenia, wyjątki zachodzą w operacjach Lista eksportowa które atrybuty są dostępne z zewnątrz Ograniczenia muszą podlegać obiekty

Diagramy klas Diagram klas służy do zobrazowania współpracy klas. są odmianą klasyczną diagramów encjazwiązek (rozbudowanymi o nowe elementy) dużo oznaczeń o charakterze pomocniczym (np.: notatki i ograniczenia)

Diagramy klas cd Diagram klas stanowi statyczny, koncepcyjny widok projektowanej aplikacji Pokazuje kluczowe elementy (klasy) oraz ich związki w systemie Klasa jest to ogólne określenie dla grupy podobnych obiektów Obiekt jest instancja klasy Pojecie klasy na diagramie jest ściśle powiązane z technikami programowania zorientowanego obiektowo Jest to jeden z istotniejszych diagramów UML

Do czego służy diagram klas? Pozwala na sformalizowanie specyfikacji danych i zestawu metod Pełni role uniwersalnego środka graficznego wizualizującego implementacje klas, może bezpośrednio służyć jako graficzny środek pokazujący szczegóły implementacji Narzędzia projektowe zgodne ze specyfikacją UML umożliwiają, na podstawie diagramów klas, generowanie elementów źródeł w popularnych językach obiektowych, takich jak: C++, Java, C#

Do czego służy? cd zapis modelu pojęciowego reprezentują pojęcia w dziedzinie zastosowań, które aktualnie podlegają analizie sformalizowana wizja wyobrażeń powstających podczas myślenia nad problemem sformalizowana specyfikacja danych i metod dotyczy opisu zewnętrznego oprogramowania bez szczegółów implementacyjnych

Tworzenie diagramu klas Identyfikacja klas i obiektów Identyfikacja związków pomiędzy klasami Identyfikacja i definiowanie pól (atrybutów) Identyfikacja i definiowanie metod i komunikatów kolejność kolejność wykonywania nie jest ustalona i zależy zarówno od stylu pracy, jak i od konkretnego problemu.

Reprezentacja graficzna Klasa obrazowana jest za pomocą podzielonego na części prostokąta każda część reprezentuje cechy o zbliżonym przeznaczeniu

Reprezentacja graficzna Widoczność atrybutów i metod określają następujące symbole: + publiczna ( public ) - prywatne ( private ) # chronione ( protected )

Asocjacje powiązania pomiędzy obiektami klas Poniżej widoczny jest przykład specyfikacji asocjacji pomiędzy obiektami klasy Osoba i obiektami klasy Firma. Czarny trójkącik określa kierunek wyznaczony przez nazwę powiązania. dlaasocjacje mają nazwy, które wyznaczają znaczenie tej asocjacji w modelu pojęciowym. Jeżeli to znaczenie jest oczywiste, wówczas nazwę asocjacji można pominąć.

Asocjacje - liczności Liczność oznacza, ile obiektów innej klasy może być powiązane z jednym obiektem danej klasy (para liczb oznaczająca ilość minimalną i maksymalną)

Asocjacje - przykłady Asocjacje mogą być wyposażone w oznaczenia liczności:

Asocjacje Człowiek Imię: string Nazwisko: string RokUrodz: int NoweNazwisko(string) Mąż DataŚlubu: string 1 1 Żona DataŚlubu: string

Asocjacje nazwy ról Asocjacje mogą być także wyposażone w dodatkowe nazwy ról (przy odpowiednich końcach). Asocjacje mogą posiadać atrybuty. W tym celu przewidziano linię przerywaną łączącą daną asocjacją z klasą. Wewnątrz klasy asocjacji można zdefiniować atrybuty operacje i inne cechy połączenia. Klasa asocjacji może być używana za samodzielną klasę.

Asocjacje skierowane Na diagramach UML można zaznaczyć kierunek nawigacji wzdłuż danej asocjacji

Agregacje Szczególny przypadek asocjacji wyrażający zależność: część całość. Oznacza się je za pomocą pustego rombu.

Dziedziczenie Obiekt pod-klasy automatycznie dziedziczy wszystkie atrybuty, metody, asocjacje i agregacje z wszystkich jej nadklas.

Dziedziczenie SPECJALIZACJA budowa pojęć bardziej szczegółowych, gdy mamy bardziej ogólne GENERALIZACJA budowa pojęć bardziej ogólnych, gdy mamy bardziej szczegółowe

Ograniczenia

Diagramy stanów Diagram stanu opisuje zmiany stanu obiektu, podsystemu lub systemu pod wpływem działania operacji - iest szczególnie przydatny, gdy zachowanie obiektu jest złożne. Stan jest okolicznością lub sytuacją, w jakiej znajduje się obiekt jest rezultatem poprzedniej aktywności spełnia jakiś warunek jest określony przez wartości własnych atrybutów i powiązań do innych zadań wykonuje pewne czynności czeka na jakieś zdarzenie

Diagramy stanów Stan początkowy może być tylko jeden stan początkowy Stan końcowy może być kilka stanów końcowych

Diagramy stanów Przejście jest związkiem między dwoma stanami, który wskazuje, np. obiekt znajdujący się w pierwszym stanie wykona pewne akcje i przejdzie do drugiego stanu, ilekroć zaistnieje określone zdarzenie i będą spełnione określone warunki.

Diagramy stanów Przejście własne jest związkiem między tym samym stanem, który wskazuje, np. obiekt znajdujący się w pewnym stanie wykona pewne akcje i powróci do tego samego stanu, ilekroć zaistnieje określone zdarzenie i będą spełnione określone warunki.

Obiekty ze stanami Człowiek Imię: string Nazwisko: string StanCywilny: {K, Ż, R, W} Ślub() Rozwód() Owdowienie()

Diagramy stanów Kawaler / Narodziny Znalazł wybrankę [wiek > 18] / Ślub Znalazł wybrankę / Ślub Rozwodnik / Rozwód Żonaty Śmierć żony / Owdowienie Znalazł wybrankę / Ślub Wdowiec

Programy Z programów darmowych warto przyjrzeć się: ArgoUML (http://argouml.tigris.org) jest to aplikacja napisana w Javie, a więc działająca pod niemal każdym systemem operacyjnym. Jej wadą jest jednak wsparcie jedynie dla UMLa w wersji 1.4, co uniemożliwi budowę niektórych diagramów.

Programy Poseidon (http://www.gentleware.com) - produkt komercyjny, tak jak ArgoUML stworzony w Javie. Oferujący jednak wsparcie dla UML-a w wersji 2.0. Istnieje kilka jego wersji, w tym Community Edition, która jest darmowa i doskonale nadaje się do nauki. IBM Rational Software (http://www.ibm.com /software/rational) cała rodzina programów, wśród których znajduje się także aplikacja do budowy diagramów UML. Jest to produkt z najwyższej półki, o czym niestety nie pozwala zapomnieć także jego cena.

Programy Sparx Enterprise Architect (http:// www.sparxsystems.com.au) bardzo dobry program, oferujący wsparcie dla UML-a w wersji 2.1, dodatkowo pozwalający budować diagramy baz danych. A to wszystko za dość rozsądną cenę (w przypadku jednego stanowiska, od 135$ za wersję Desktop Edition).

Definicja klasy W języku UML klasa jest reprezentowana w postaci prostokąta. W prostokącie możemy wyróżnić trzy części: nazwę klasy, pola (atrybuty) oraz metody. Do oznaczenia, że składowa jest publiczna, przed jej nazwą stawiamy znak plus (+), natomiast do oznaczenia składowych prywatnych używamy znaku minus (-). Następująca definicja klasy: class NazwaKlasy { public int Pole1; private double pole2; public int Metoda1(string arg1){} private void metoda2(){}

Definicja klasy w języku UML ma następującą reprezentację:

VS 2010 Ultimate Aby Visual Studio obsługiwało (imitowało) język UML i umożliwiało generowanie kodu mając projekt UML oraz generowanie projektów różnych diagramów należy w tym celu zainstalować wtyczkę Visual Studio 2010 Visualization & Modeling Feature Pack (x86 and x64) - (English), którą można pobrać ze strony Microsoft.

VS 2010 Ultimate

VS 2010 Class Diagram