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

Podobne dokumenty
Wybrane elementy praktyki projektowania oprogramowania Wykład 14/15 Projektowanie obiektowe

Diagramy klas. dr Jarosław Skaruz

Podstawy języka UML2 w realnych projektach

Diagramy klas. WYKŁAD Piotr Ciskowski

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

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

Podstawy języka UML2 w realnych projektach

Modelowanie danych, projektowanie systemu informatycznego

UML w Visual Studio. Michał Ciećwierz

Podstawy inżynierii oprogramowania

Modelowanie obiektowe

Podstawy projektowania systemów komputerowych

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

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

Język UML w modelowaniu systemów informatycznych

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

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

MODELOWANIE OBIEKTOWE

Podstawy programowania III WYKŁAD 4

UML. zastosowanie i projektowanie w języku UML

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

Programowanie obiektowe

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

1 Projektowanie systemu informatycznego

UML. dr inż. Marcin Pietroo

Rysunek 1: Przykłady graficznej prezentacji klas.

Język UML w modelowaniu systemów informatycznych

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Inżynieria oprogramowania

Podstawy modelowania w języku UML

Enterprise Architect - narzędzie do modelowania

Świat rzeczywisty i jego model

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

UML - zarys 2007/2008

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

Programowanie obiektowe

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Michał Adamczyk. Język UML

Projektowanie logiki aplikacji

Paweł Kurzawa, Delfina Kongo

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Programowanie obiektowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

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

Współbieżność w środowisku Java

Technologie obiektowe

Podstawy języka UML UML

Modelowanie i analiza systemów informatycznych

Diagramy sekwencji. wymienianych między nimi

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Język UML w modelowaniu systemów informatycznych

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

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

Programowanie obiektowe

Język UML w modelowaniu systemów informatycznych

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

Mechanizm dziedziczenia

Zaawansowane programowanie w C++ (PCP)

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Podstawy modelowania programów Kod przedmiotu

Programowanie obiektowe

Charakterystyka oprogramowania obiektowego

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

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

PHP 5 język obiektowy

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Język UML w modelowaniu systemów informatycznych

Szkolenie jest również doskonałe dla programistów i testerów, którzy mają nadzieję na awans w kierunku analityka.

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

Projektowanie obiektowe oprogramowania Wykład 2 - Unified Process Wiktor Zychla 2013

Programowanie obiektowe

Projektowanie Systemów Informatycznych 2011/2012

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Diagramy czynności Na podstawie UML 2.0 Tutorial

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Programowanie obiektowe

Modelowanie obiektowe - Ćw. 1.

Enkapsulacja, dziedziczenie, polimorfizm

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

W cenie szkolenia uczestnik otrzymuje licencję na oprogramowanie Enterprise Architect, najlepsze narzędzie do modelowania za pomocą UML.

Dziedziczenie. dr Jarosław Skaruz

IX Konferencja Informatyki Stosowanej

PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH 2010/2011 MGR DOROTA MIROWSKA

Inżynieria Oprogramowania. UML Schematy klas

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

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

Język UML w projektowaniu oprogramowania

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Transkrypt:

Projektowanie obiektowe oprogramowania Wykład 2 - UML Wiktor Zychla 206 Spis treści Wprowadzenie... 2 2 Diagramy klas... 3 2. Hierarchia modeli... 3 2.. Diagram modelu pojęciowego... 3 2..2 Diagram modelu obiektowego (diagram klas)... 4 2..3 Diagram modelu implementacyjnego (relacyjnego)... 6 2.2 Jeszcze o formalizmie diagramów klas - klasy i asocjacje... 6 2.3 Składowe... 7 2.4 Dziedzieczenie... 8 3 Diagramy obiektów... 9 4 Diagramy stanów... 9 5 Diagramy czynności... 0 6 Diagramy sekwencji... 2 7 Literatura... 3

Wprowadzenie Dwie rodziny diagramów - diagramy struktury i diagramy zachowań (dynamiki)

2 Diagramy klas 2. Hierarchia modeli Formalnie w UML występuje Diagram klas (Class Diagram). Ale ten sam formalizm służy do reprezentacji trzech różnych typów diagramów, z których każdy występuje w innej fazie projektowania. class Hierarchia modeli Model pojęciowy Model obiektowy Model relacyjny rozszerza rozszerza 2.. Diagram modelu pojęciowego Jest elementem projektu analitycznego Służy ustaleniu wspólnego języka w projekcie Służy weryfikacji podstawowych elementów struktury dziedziny projektu Pojęcia i atrybuty (tylko publiczne) class Model pojeci... Osoba + Imie + Nazwisko Asocjacje (relacje) między pojęciami ( ma, używa, płaci się za pomocą ) Asocjacje mogą być skierowane, wtedy kierunek strzałki i jej etykieta powinien być tak dobrany żeby można było przeczytać zdanie class Metody pojęciowe Mysz zjada Ser Brak dziedziczenia i innych ograniczeń specyficznych dla struktury stricte obiektowej Brak metod (!)

class Model dziedziny Die - facevalue MonopolyGame Played-with Played-on 2 Board Plays Contains 2..8 40 Player - name Owns Piece - name 0..8 Is-on Square - name 2..2 Diagram modelu obiektowego (diagram klas) Jest elementem projektu architektury Przykład : Punktem wyjścia jest diagram modelu pojęciowego Na etapie projektowania obiektowego należy refaktoryzować model pojęciowy do stanu, w którym pojęcia reprezentowane są przez klasy (w rozumieniu obiektowym) Refaktoryzacja polega na: o Usuwaniu zbędnych pojęć, które są reprezentowane przez jedną i tę samą klasę (na przykład pojęcia Użytkownik i Administrator staną się jedną i tą samą klasą) o Dodawaniu nowych klas (na przykład tam gdzie do reprezentacji relacji potrzebna jest pomocnicza klasa) o Rozróżnianiu atrybutów publicznych, prywatnych, statycznych itd. o Wprowadzaniu metod do interfejsów klas o Zamienianiu wszystkich relacji z diagramu modelu pojęciowego na relacje występujące w świecie obiektowym: asocjacja, agregacja, kompozycja, dziedziczenie, implementowanie interfejsu metoda obiektu (przyjmująca parametr lub zwracająca wartość) class Dziedziczenie pojęciowe Użytkownik Administrator

vs class Dziedziczenie... Użytkownik Administrator Przykład 2: class Agregacja/kompozycja pojęć Samochód ma Część vs class Agregacja/kompozycja klas Samochód Część + Typ: string 0..* + Nazwa: string lub Samochód_ + Typ: string + Część: Część[] Przykład 3:

class Metody pojęciowe Mysz zjada Ser vs class Metody klas Mysz + Imię: string Ser + Zjedz(Ser) : void 2..3 Diagram modelu implementacyjnego (relacyjnego) To diagram reprezentujący strukturę relacyjnej bazy danych Reprezentuje fizyczną strukturę właściwą do utrwalania obiektów Punktem wyjścia jest diagram klas Podczas refaktoryzacji usuwa się z diagramu klas wszystkie te relacje, których nie da się reprezentować w świecie relacyjnym o Nie ma metod o Nie ma dziedziczenia, zamiast tego wybiera się jeden ze sposobów implementacji dziedziczenia Table-per-type Table-per-concrete-type Table-per-hierarchy o Wprowadza się sztuczne identyfikatory główne (ID) o Nie ma relacji wiele-wiele, zamiast tego są pomocnicze tabele do reprezentacji takich relacji 2.2 Jeszcze o formalizmie diagramów klas - klasy i asocjacje Zależności (strzałka przerywana) brak informacji o rodzaju zależności, może być: o Tworzy o Wykorzystuje (zmienna lokalna)

o Wykorzystuje (parametr metody) o Nadklasa lub interfejs Nazwy asocjacji Liczebność :,..*, 0.., *, 0..*, n,..n, 0..n, n..m, n..* Agregacja vs kompozycja o Agregacja luźniejsza o Kompozycja - ściślejsza Instancja reprezentująca część może należeć tylko do jednej instancji złożonej Czas życia części jest powiązany z czasem życia całości 2.3 Składowe Składowa prywatna, publiczna, chroniona, stała, statyczna, kolekcja, atrybut pochodny Metoda prywatna, publiczna, chroniona, internal, abstrakcyjna, statyczna, konstruktor, parametry Atrybut wpisany vs asocjacja kiedy używać? Atrybut: typ prosty, asocjacja do typu złożonego class Pojęcia a atrybuty Osoba + Imie vs Osoba_ ma Imie + Mianownik + Wołacz Klasa asocjacyjna do modelowania relacji wiele-wiele

2.4 Dziedzieczenie Realizacja implementacja interfejsu Generalizacja, specjalizacja dziedziczenie (tylko w zależności od kierunku)

3 Diagramy obiektów Migawka systemu EA: Advanced / Instance Classifier umożliwia wybór typu dla instancji EA: Advanced / Set Run State umożliwia określenie stanu obiektu 4 Diagramy stanów Stany i przejścia (akcje) stany to bloczki, a akcje to strzałki Stany nazwane rzeczownikowo/przymiotnikowo (oczekiwanie/przetwarzanie, oczekujący/aktywny/przydzielony) Akcje nie nazywają się Przykładowy schemat o Stany oczekiwanie, przetwarzanie o Wariant nazwany o Zrównoleglanie wysyłanie, fakturowanie o Stan kompozytowy

stm Diagram stanów Oczekiwanie Initial Przetwarzanie zamówienia [odrzucone] walidacja Foo Wysyłanie Fakturowanie Kończenie 5 Diagramy czynności Czynności vs akcje o Czynności długotrwałe, podzielne, ogólne o Akcje krótkotrwałe, niepodzielne, szczegółowe nazwane czasownikowo (wprowadź/wybierz/zatwierdź/wydrukuj/aktualizuj/weryfikuj) Różnica w stosunku do diagramu stanów jeśli chodzi o semantykę bloków vs strzałek tam bloczek = stan, strzałka = akcja; tu bloczek = akcja, strzałka wyznacza następstwo akcji o Sygnały (zdarzenia) wyślij, odbierz o Wariant if

o o o Zdarzenia send/receive Regiony na przykład przerywalny, pojawia się zdarzenie przerwij, anulowanie Partycje podział na aktorów Diagramy stanów i czynności wykorzystują niemalże ten sam formalizm do reprezentowania różnych kategorii diagramów. act Diagram czynnosci bez partycji Start Przerywalne Pokaż towar [tak] Dodaj wartość towaru do kwoty ogółem Czy więcej towarów? Poproś o zapłatę Przerwanie [Gotówka ok] [Brak gotówki] Podziękuj Anulowanie Fail Success

6 Diagramy sekwencji Linie życia, paski aktywacji/ośrodki sterowania (execution specification) Typy obiektów o Boundary widok o Control kontroler o Entity model Związek między diagramem sekwencji a diagramem klas ustalanie typu obiektu Komunikat wartość zwrotna wartość = komunikat( p:p, p2:p2, ) : typ lub przerywana strzałka zwrotna (EA niekoniecznie) Singleton jedynka w rogu, metoda statyczna stereotyp class, metaclass Komunikat odnaleziony od nikogo Create/destroy Ramki, można zagnieżdżać o Loop pętla o Alt if-then-else o Opt if o Neg czynność nieprawidłowa, wyjątek o Par - współbieżność o Ref odwołanie do innej, nazwanej ramki o Sd nazwana ramka Przykładowy pseudokod: public class Actor { public void XXXX() { while ( n < 0 ) { a.fooa(); public class A { public void fooa() { b.foob(); c.fooc(); public class B { public void foob() { d.food(); public class C { public void fooc() { b.foob(); if ( x > 0 ) d.food(); i jego diagram

sd Diagram sekwencji a : A b : B c : C d : D Actor XXXX() loop [n < 0] fooa() foob() food() fooc() foob() alt [x > 0] food() 7 Literatura Wrycza, Marcinkowski, Wyrzykowski - Język UML 2.0 w modelowaniu systemów informatycznych