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

Podobne dokumenty
UML w Visual Studio. Michał Ciećwierz

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

Paweł Kurzawa, Delfina Kongo

Michał Adamczyk. Język UML

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

Rysunek 1: Przykłady graficznej prezentacji klas.

Podstawy inżynierii oprogramowania

MODELOWANIE OBIEKTOWE

Podstawy programowania III WYKŁAD 4

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

Zalety projektowania obiektowego

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Projektowanie logiki aplikacji

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Modelowanie obiektowe

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Identyfikacja i modelowanie struktur i procesów biologicznych

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

Identyfikacja i modelowanie struktur i procesów biologicznych

Podstawy projektowania systemów komputerowych

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Diagramy klas. dr Jarosław Skaruz

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

Podstawy języka UML UML

Graficzna notacja procesów biznesowych BPMN. Porównanie z notacja UML. Jakub Morkis, Piotr Chmielewski

Podstawy języka UML2 w realnych projektach

Świat rzeczywisty i jego model

Podstawy języka UML2 w realnych projektach

Modelowanie i Programowanie Obiektowe

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

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Język UML w modelowaniu systemów informatycznych

UML. zastosowanie i projektowanie w języku UML

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

Faza analizy (modelowania) Faza projektowania

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

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

Podstawy Programowania Obiektowego

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Programowanie obiektowe

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

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

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

Wykład 1 Inżynieria Oprogramowania

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

Informatyzacja przedsiębiorstw WYKŁAD

Modelowanie danych, projektowanie systemu informatycznego

WPROWADZENIE DO UML-a

PRZEWODNIK PO PRZEDMIOCIE

Analiza i projektowanie aplikacji Java

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

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

Język UML w modelowaniu systemów informatycznych

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

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

Podstawy modelowania programów Kod przedmiotu

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Technologie obiektowe

Podstawy modelowania w języku UML

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

1 Projektowanie systemu informatycznego

Programowanie obiektowe - 1.

Diagramy UML, przykład problemu kolizji

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

Wprowadzenie do UML, przykład użycia kolizja

Bazy danych 2. dr inż. Tadeusz Jeleniewski

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Programowanie obiektowe

Procesowa specyfikacja systemów IT

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Kontrola spójności modeli UML za pomocą modelu. Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

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

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

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

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II)

STANDARD UML 2.3 W ZARZĄDZANIU WYTWARZANIEM OPROGRAMOWANIA

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Język UML w modelowaniu systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań

Inżynieria oprogramowania

Diagramy klas. WYKŁAD Piotr Ciskowski

Podstawy języka UML UML

UML - zarys 2007/2008

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

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

Technologie i usługi internetowe cz. 2

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

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

Transkrypt:

Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu poprzez wzajemne uzupełnianie informacji obrazowanych przez poszczególne modele systemu Omówienie notacji oraz narzędzi typu CASE dla przykładowych modeli: Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (2/3) Omówienie poszczególnych typów diagramów wchodzących w skład specyfikacji UML: Usecase diagram Class diagram Interaction diagram: Sequence diagram Collaboration diagram State diagram Activity diagram Package diagram

Zagadnienia (3/3) Deployment diagram

Modelowanie systemu Modelowanie systemu z wykorzystaniem różnorodnych modeli ma na celu zwiększenie rozumienia funkcjonalności jaką powinien realizować system Modele spełniają dwojakiego rodzaju funkcje: służą do komunikacji z klientem/użytkownikiem stanowią podstawę fazy analizy i implementacji wymagań Modele zawsze stanowią pewną abstrakcję systemu różne modele w różnym stopniu opisują różne aspekty systemu Dla każdego projektowanego systemu w fazie analizy wymagań powinno powstać kilka różnych modeli, przy czym każdy z nich powinien koncentrować się na innych aspektach systemu (lub prezentować te same aspekty z różnych punktów widzenia)

Modelowanie Trójkąt sukcesu Notacja Proces Narzędzie

Typy modeli systemu Istnieje wiele różnorodnych modeli wykorzystujących odmienne notacje i skupiających się na różnych aspektach systemu: przetwarzanie danych obrazowanie procesów przetwarzania danych przez różne moduły wchodzące w skład systemu kompozycja obrazowanie w jaki sposób nadrzędne moduły systemu tworzone są z innych, podrzędnych modułów; wzajemne związki i relacje pomiędzy poszczególnymi modułami zdarzenia-odpowiedzi obrazowanie reakcji systemu na różnego rodzaju zdarzenia zarówno wewnętrzne jak i zewnętrzne procesy obrazowanie procesów i aktywności zachodzących w systemie

Data flow - diagramy przepływów danych Służą do prezentowania sposobu w jaki dane przepływają oraz są przetwarzane w systemie. Opisują również procesy przetwarzające dane Stanowią podstawę wielu istniejących modeli Prosta, intuicyjna i łatwa w zrozumieniu notacja

Data flow - podstawowe elementy Zbiorniki danych (ang. data stores) - składowa systemu przechowująca dane Procesy (ang. process) - dowolne operacje wykonywane przez system. W wyniku wykonania operacji może następować modyfikacja danych

Data flow - podstawowe elementy Systemy zewnętrzne (ang. external systems) - zewnętrzne, w stosunku do modelowanego, system z którym wymieniane są dane. Przepływ danych (ang. data flow) - opisuje dane przesyłane między procesami, systemami zewnętrznymi i zbiornikami danych

Data flow - przykład (1/2)

Data flow - przykład (2/2)

Data flow - niedopuszczalne przepływy danych

Data flow - zastosowanie Modelowanie przetwarzania danych na różnych poziomach począwszy od bardzo zgrubnych do bardzo szczegółowych modeli Opis architektury systemu obrazujący przepływ danych pamiędzy poszczególnymi elementami systemu Nie powinno się stosować diagramów tego rodzaju do opisu i definicji interfejsów

Modelowanie obiektowe Modele obiektowe opisują systemy poprzez wykorzystanie klas obiektów obrazujących poszczególne elementy/komponenty/idee tworzące system Klasa obiektu (ang. class) jest pewną abstrakcją (opisem) określajacą wspólne atrybuty i operacje jakie mogą zostać wykonane na konkretnych instancjach (obiektach) tej klasy. Klasę można traktować jako wzorzec tworzenia obiektów Obiekt (ang. object) stanowi abstrakcyjną reprezentację elementów z dziedziny danego systemu posiadającą tożsamość (ang. identity), stan (ang. state) i zachowanie (ang. behaviour). Obiekt może reprezentować konkretne rzeczy np. samochód lub komputer lub pewne idee czy abstrakcyjne pojęcia jak np. zainteresowania, transakcje bankowe itp. Każdy obiekt jest instancją pewnej klasy. Jeden obiekt nie może być instancją więcej niż jednej klasy

UML modelowanie obiektowe (1/2) Unifikacja najlepszych technik/notacji istniejących w zakresie modelowania systemów z wykorzystaniem metodologii obiektowych. UML wprowadził standardową notację i zbiór diagramów Pierwsza wersja została ogłoszona w 1995 r. (wersja 0.8). Wersja 1.1 została ogłoszona i zaprezentowana dla OMG (Object Management Group) we wrześniu 1997 r. Specyfikację UML tworzą diagramy: Usecase diagram Class diagram Sequence diagram Collaboration diagram

UML modelowanie obiektowe (2/2) State diagram Activity diagram Package diagram Deployment diagram

State diagram diagram stanów Diagramy tego rodzaju wykorzystywane są do opisu zachowania obiektu Obrazują możliwe stany obiektu, zdarzenia jakie mogą być odbierane przez obiekt i akcje jakie mogą zostać wykonane w odpowiedzi na zdarzenia W większości obiektowych metodyk diagramy stanów wykorzystywane są do obrazowania zachowania pojedyńczych obiektów

State diagram terminologia/notacja Stan (ang. state) - w terminologii diagramów pojęcie stanu należy rozumieć jako stan obiektu, w którym wykonuje on pewną akcję lub oczekuje na zdarzenie, określony przez wartości poszczególnych atrybutów klasy tego obiektu

State diagram terminologia/notacja Zmiana stanu (ang. state transition) przejście z obecnego stanu do stanu następnego w wyniku zdarzenia lub zakończenia akcji wykonywanej przez obiekt w obecnym stanie.

State diagram terminologia/notacja Stan początkowy i końcowy dwa specjalne stany określające odpowiednio początek diagramu stanów dla danego obiektu oraz jego koniec. Diagram może mieć jeden i tylko jeden stan początkowy i wiele stanów końcowych. Stan początkowy oznacza stan obiektu zaraz po jego utworzeniu, natomiast stan końcowy oznacza stan obiektu tuż przed jego usunięciem z systemu.

State diagram przykład (1/3)

State diagram przykład (2/3)

State diagram przykład (3/3)

State diagram zastosowanie Opis zachowania pojedyńczych obiektów Nie powinny być stosowane do opisu zachowania grupy wzajemnie współpracujących obiektów (w takich przypadkach powininy być stosowane diagramy innego rodzaju np. activity) Nie powinny być stosowane dla każdej klasy istniejącej w modelu a tylko dla tych, które wykazują złożone zachowanie. W takich przypadkach diagramy stanów pomagają w zrozumieniu charakterystyki i zachowania obiektów Wykorzystywne są często do opisu interfejsu użytkownika

Activity diagram diagram aktywności Diagramy tego rodzaju wykorzystywane są do opisu zachowania grup obiektów, wzajemnego powiązania pomiędzy operacjami wykonywanymi w określonej kolejności poprzez obiekty (bez wyraźnej identyfikacji i przypisywania akcji do poszczególnych instancji)

Activity diagram terminologia/notacja Aktywność (ang. activity) - w terminologii diagramów aktywności należy rozumieć jako dowolne zadanie, operację, metodę jaką wykonuje obiekt. Każda aktywność może być połączona z inną aktywnością tworząc w ten sposób sekwencje zadań wykonywanych przez obiekt lub grupę obiektów

Activity diagram terminologia/notacja Przejścia pomiędzy aktywnościami (ang. trigger) przejście pomiędzy aktywnościami następuje w momencie zakończenia wykonywania operacji związanej z obecną aktywnością i spełnieniu warunków określonych dla danego przejścia. Przejście następuje tylko w przypadku gdy wszystkie warunki określone dla przejścia zostały spełnione

Activity diagram terminologia/notacja Punkt synchronizacji (ang. synchronization bar) umożliwia obrazowanie aktywności/operacji, które mogą być wykonywne równolegle przez różne obiekty. Punkty synchronizacji umożliwiają wskazanie miejsc, w których następuje zrównoleglenie wykonywania aktywności oraz miejsc, w których następuje oczekiwanie na zakończenie ich wykonywania

Activity diagram przykład

Activity diagram zastosowanie Opisy zachowania grupy obiektów Modelowanie równoległego wykonywania aktywności/operacji (programowanie wielowątkowe) Szczegółowa analiza usecasów zrozumienie akcji jakie należy wykonać w celu realizacji usecasu Modelowanie zachowania w przypadku gdy realizacja pewnej funkcjonalności obejmuje więcej niż jeden usecase Nie powinno się stosować aby zobrazować zachowanie pojedyńczych obiektów

Class diagram diagram klas Diagram klas opisuje typy obiektów tworzących system i różnorodnych statycznych relacji/zalezności występujących pomiędzy nimi Wyróżniamy dwa podstawowe rodzaje relacji statycznych: powiązania/związki (ang. associations/relationships) dziedziczenie/związek generalizacji-specjalizacji (ang. generalization)

Class diagram terminologia/notacja Klasa (ang. class) na etapie analizy oznacza wzorzec grupy obiektów charakteryzujących się tymi samymi właściwościami. Na etapie projektowania i implementacji pojęcie to oznacza typ obiektowy w języku programowania. Klasa składa się z pól (atrybutów ang. attributes) i metod (ang. methods). Atrybuty opisują stan obiektu natomiast metody określają operacje jakie można wykonywać na obiektach tej klasy.

Class diagram terminologia/notacja Powiązania (ang. associations) reprezentują wzajemne relacje pomiędzy instancjami klas (np. pracownik pracuje w firmie, firma posiada wiele oddziałów itp.)

Class diagram terminologia/notacja Krotność powiązania (ang. association multiplicity) symbole na końcach linii odpowiadającej relacji opisujące liczby obiektów danej klasy, które mogą być powiązane w danej relacji z obiektami drugiej klasy Krotność Dokładnie jeden Zero lub wiele Zero lub jeden Podana liczba Zakres Oznaczenie 1 0..* 0..1 3 2-8

Class diagram terminologia/notacja Powiązania agregacji (ang. aggregation) oznacza związek, w którym obiekty pewnej klasy zawierają/składają się z obiektów innej klasy. Związek tego rodzaju nazywany jest również powiązaniem typu całość-część (ang. whole-part relationship)

Class diagram terminologia/notacja Związek generalizacji-specjalizacji (ang. generalizationspecialization) dwie klasy pozostają w związku generalizacjispecjalizacji, jeżeli jedna z nich, zwana specjalizacją, jest rodzajem drugiej, nazwanej generalizacją. Generalizacja jest więc uogólnieniem specjalizacji. Generalizacja może mieć wiele specjalizacji ale również specjalizacja może mieć wiele generalizacji. Dziedziczenie stanowi implementację związku generalizacjispecjalizacji w obiektowych językach programowania (np. C++, Java)

Class diagram przykład Przykład wielu generalizacji i specjalizacji klasy

Class diagram przykład