MODELOWANIE OBIEKTOWE



Podobne dokumenty
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)

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

1 Projektowanie systemu informatycznego

Podstawy programowania III WYKŁAD 4

Podstawy języka UML2 w realnych projektach

Diagramy klas. dr Jarosław Skaruz

Michał Adamczyk. Język UML

Modelowanie danych, projektowanie systemu informatycznego

Modelowanie obiektowe

UML. zastosowanie i projektowanie w języku UML

Podstawy języka UML2 w realnych projektach

Podstawy języka UML UML

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

Tytuł pracy: PRACA MAGISTERSKA AUTOR: KRAKÓW, Marzec 2011 Promotor pracy :

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

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

Laboratorium 8 Diagramy aktywności

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

Podstawy inżynierii oprogramowania

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

Technologie obiektowe

Podstawy Programowania Obiektowego

Język UML w modelowaniu systemów informatycznych

Modelowanie i Programowanie Obiektowe

MODELOWANIE OBIEKTOWE Z UML

Rysunek 1: Przykłady graficznej prezentacji klas.

Dziedziczenie. dr Jarosław Skaruz

Inżynieria Oprogramowania. UML Schematy klas

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Faza analizy (modelowania) Faza projektowania

Podstawy modelowania programów Kod przedmiotu

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

UML - zarys 2007/2008

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

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

Świat rzeczywisty i jego model

Paweł Kurzawa, Delfina Kongo

Podstawy projektowania systemów komputerowych

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Diagram stanów Laboratorium 9

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Diagramy klas. WYKŁAD Piotr Ciskowski

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

TECHNOLOGIE OBIEKTOWE. Wykład 3

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Specyfikowanie wymagań przypadki użycia

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

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

Podstawy języka UML UML

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

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

Modelowanie i analiza systemów informatycznych

Identyfikacja i modelowanie struktur i procesów biologicznych

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie obiektowe

Modelowanie obiektowe - Ćw. 3.

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

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

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

Inżynieria oprogramowania

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

Technologie i usługi internetowe cz. 2

Diagramy przypadków użycia

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Zalety projektowania obiektowego

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

STANDARD UML 2.3 W ZARZĄDZANIU WYTWARZANIEM OPROGRAMOWANIA

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

Języki i metody programowania Java. Wykład 2 (część 2)

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Programowanie obiektowe - 1.

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

Programowanie obiektowe

Aplikacje w środowisku Java

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Enterprise Architect - narzędzie do modelowania

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

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

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

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Identyfikacja i modelowanie struktur i procesów biologicznych

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

Podstawy modelowania w języku UML

Dziedzina problemu. System. Model. Uzytkownik. Przewoznik. Zleceniodawca Wydawanie opinii. Zarzadzanie pojazdami

Unified Modeling Language

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

Język UML w modelowaniu systemów informatycznych

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

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

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Diagramy przypadków użycia

Unified Modeling Language

Zasady organizacji projektów informatycznych

Język UML w modelowaniu systemów informatycznych

Transkrypt:

(Wykład na podstawie literatury: M.Śmiałek Zrozumieć UML 2.0, Helion 2005) UML Unified Modeling Language (język do specyfikowania, wizualizowania, konstruowania i dokumentacji tzw. artefactów oraz czynności biznesowych lub innych z obszaru działalności człowieka Artefact (UML) - fizyczny element informacyjny wyprodukowany lub używany w procesie wytwarzania oprogramowania (pliki.sor.com, elementy bazy danych, dokumenty, fragmenty modeli, itp. Klasyfikatory (UML) - elementy składowe modelu opisujące jego zachowanie lub strukturę posiadające swoją reprezentacje geometryczną. W szczególności zaliczamy do nich: klasy, aktorzy, przypadki użycia, relacje. Obiect (paradygmat obiektowości) - kawałek kodu posiadający: stan, zachowanie tożsamość stan definiowany przez wartości atrybutów; zachowanie operacje i usługi świadczone przez obiekt na żądanie innych o. tożsamość unikalna cecha obiektu rozróżniająca obiekty o tych samych atrybutach i operacjach (dwa obiekty mogą być równe ale nie identyczne)

Obiect (paradygmat obiektowości) - kawałek kodu stan definiowany przez wartości atrybutów; zachowanie operacje i usługi świadczone przez obiekt na żądanie innych o. tożsamość unikalna cecha obiektu rozróżniająca obiekty o tych samych atrybutach i operacjach (dwa obiekty mogą być równe ale nie identyczne) Klasyfikacja modeli obiektowych: Model stanu systemu (State models) statyczny stan systemu Model zachowania systemu (Behavior models) Model zmiany stanu systemu (State change models) (Modele te są reprezentowane przez jeden lub wiele diagramów) UML wprowadza sześć typów diagramów: struktura stanu (state structure) przypadki użycia (use case), wykres (rejestr) stanu (statechart), diagram współpracy (collaboration, communication diagrams), wykres aktywności (activity diagrams), wykres implementacji (implementation diagram)

STATYCZNA STRUCTURA MODELU (State models )(UML ) wyraża się poprzez: Diagramy klas (Class Diagrams) obrazują klasy (interfejsy), ich wewnętrzna strukturę i relacje do innych klas. Klasy (UML) - grupa obiektów o tych samych własnościach, ograniczeniach i semantyce. - deskryptor grupy obiektów o podobnej strukturze, zachowaniu i relacjach Do własności klasy zaliczamy atrybuty i operacje Atrybuty własność typu strukturalnego Operacje własność typu behawioralnego klasy, aktorzy, przypadki użycia, relacje. Relacje dotyczą połączeń pomiędzy klasyfikatorami (np. klasami w diagramach klas) Instancja danej klasy (instance) (UML) - obiekt przypisany do określonej klasy obiektów Samochód <<instance>> mój_samochód:samochód <<instance>> samochód_kolegi:samochód

ELEMENTY DIAGRAMU KLAS klasab atrybut1 atrybut2 metoda1() metoda(2) agregacja 1..n klasad 0..n asociacja 1 0..1 n asociacja 2 generalizacja 1..n klasaa 1 jednokierunkowa asocjacja 0 klasac Asocjacja (UML) - zależność łącząca dwie klasy lub więcej (łącząca instancje!!) Mnogość określa jak wiele instancji jednej klasy jest w relacji do jednej instancji drugiej klasy ( 0 w mnogości określa asocjacje opcjonalną) Agregacja (UML) - jest rodzajem asocjacji wskazujacej na zawieranie się klas. Nadklasa zawiera wszystkie instancje podklasy

ELEMENTY DIAGRAMU KLAS Generalizacja (UML) - jest rodzajem związku pomiędzy klasyfikatorami (klasami a nie instancjami) Nie definiujemy więc w nim mnogości. DIAGRAMY KLAS pełnią dominującą rolę w OOM jak DFD s w modelowaniu strukturalnym. Diagramy klas jak i DFD s definiują operacje i struktury danych podstawowa różnica: koncentracja odpowiednio na operacjach i strukturach danych. Klasy reprezentujące asocjacje FAZA ANALIZY listed_as position :double movie movie_code :double movie_title :String director :String klasa asocjacji 0..* 0..* asociacja actor Actor_code :double Actor_name :String

FAZA PROJEKTU (klasy Javy) Projekt klasy Movie -własności stanu i zachowania -atrybuty -konstructor obiektów -Metody z sygnaturami (argumenty i ich typy) -W UML na etapie projektowania nie określamy zwracanego przez funkcję typu movie_code :double movie_title :String director :String Movie Movie(movieCode :double, title :String, director :String) addlistedas(i : ListedAs) :void removelistedas(i:listedas) :void getmovietitle() :String setmovietitle(property1 :String) :void getmoviecode() :double setmoviecode(property1 :double) :void getdirector() :String SetDirector(property1 :String) :void Equals(o :Object) :boolean movie movie_code :double movie_title :String director :String 0..* 0..* asociacja actor Actor_code :double Actor_name :String

FAZA PROJEKTU (klasy Javy) MovieActor application Actor actorcode :double actorname :double Actor() addlistedas() removelistedas() getactorcode() setactorcode() getactorname() setactorname() Equals() actor MovieSearcher Movie_Only :int=1 Actor_Only :int=2 Movie_and_Actor :int=3 MovieSercher() getmovies() displaymoviesbydirector() displaymoviesbyleadingactors() 1 listedas 0..1 listedas ListedAs Position :double ListedAs() getposition() setposition() getmovie() setmovie() getactor() setactor() displaymoviesbyleadingactorsbystoredprocedure() displaymoviesbyactor() displaymoviesbyactorcode() Main() Collection (from java.util) conn ListedAs 0..1 movie 1 Movie movietitle :String moviecode :double director : String Movie() addlistedas() removelistedas() getmovietitle() setmovietitle() getmoviecode() setmoviecode() getdirector() setdirector() Equals() Connection Connection() readall() Query() closeresult() getleadingactorsbyquery() getleadingactorsbystoredprocedure() SearchMoviesByStoredProcedure

DIADRAMY PRZYPADKÓW UŻYCIA Model zachowania systemu (nie generują hierarchicznej struktury systemu jak DFD s) - Tekstowa specyfikacja przypadków użycia składane w repozytorium - Pozwalają na właściwe prowadzenie analizy, projektowania i implementacji systemu - Dają możliwość określenia przypadków testowania, rejestrowania uszkodzeń systemu oraz identyfikacji przyszłych rozszerzeń (enhancements) systemu PRZYPADKi UŻYCIA główne elementy funkcjonalności systemu - aktor ktoś (coś) gra role, komunikuje się (przekazuje) z przypadkami użycia (via <<communicate>>) oczekując reakcji wartości lub widocznego efektu

Use Case 3 Actor 1 generalization <<communicate>> unidirectional Use Case 1 association Use Case 2 <<include>> generalization Use Case 4 Actor 2 <<extend>> Use Case 5

Cinema Employee Create/Update/DeleteMovieActor Database Corporate Database Create/Update/DeleteMovieActor Database <<include>> MovieGoer Display MovieActor Details <<extend>> <<include>> Retrive MovieActor Details Display Screenings Details Retrive Screenings Details