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

Podobne dokumenty
KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

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

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

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

Język UML w modelowaniu systemów informatycznych

UML w Visual Studio. Michał Ciećwierz

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

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

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

Diagramy przypadków użycia

Modelowanie obiektowe - Ćw. 3.

Świat rzeczywisty i jego model

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

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

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

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

Rysunek 1: Przykłady graficznej prezentacji klas.

INŻYNIERIA OPROGRAMOWANIA. laboratorium

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

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

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

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

Projektowanie logiki aplikacji

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

UPEDU: Analiza i projektowanie (ang. analysis and design discipline)

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

Wykład 1 Inżynieria Oprogramowania

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

Diagram przypadków użycia

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Podstawy programowania III WYKŁAD 4

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

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

Podstawy inżynierii oprogramowania

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

1 Projektowanie systemu informatycznego

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

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Michał Adamczyk. Język UML

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

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

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

Zalety projektowania obiektowego

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Technologie obiektowe

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

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

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Język UML w modelowaniu systemów informatycznych

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

Język UML w modelowaniu systemów informatycznych

Faza analizy (modelowania) Faza projektowania

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

Specyfikowanie wymagań przypadki użycia

Projektowanie oprogramowania

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Język UML w modelowaniu systemów informatycznych

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Diagramy klas. dr Jarosław Skaruz

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Procesowa specyfikacja systemów IT

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

WOJSKOWA AKADEMIA TECHNICZNA

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

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

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

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

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

Modelowanie danych, projektowanie systemu informatycznego

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

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Wzorce projektowe. dr inż. Marcin Pietroo

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

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

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

MiASI. Modelowanie systemów biznesowych. Piotr Fulmański. 7 stycznia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Systemy informatyczne. Modelowanie danych systemów informatycznych

Diagramy czynności Na podstawie UML 2.0 Tutorial

Wypożyczalnia VIDEO. Technologie obiektowe

Projektowanie interakcji. Jarosław Kuchta

Diagramy sekwencji. wymienianych między nimi

Paweł Kurzawa, Delfina Kongo

Diagramy przepływu danych I

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

Diagramy czynności. Widok logiczny. Widok fizyczny

Bazy danych 2. dr inż. Tadeusz Jeleniewski

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Wykład I. Wprowadzenie do baz danych

WOJSKOWA AKADEMIA TECHNICZNA

Podstawy projektowania systemów komputerowych

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Transkrypt:

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH Przygotował: mgr inż. Radosław Adamus

Wprowadzenie: W procesie definiowania wymagań dla systemu tworzyliśmy Model Przypadków Użycia. Model ten zawiera opis wymagań funkcjonalnych dla projektowanego systemu. Kolejnym zadaniem, jakie musi zostać podjęte jest analiza przypadków użycia. W tym procesie tworzony jest opis sposobu, w jaki konkretny przypadek użycia jest realizowany w modelu projektowym. Można powiedzieć, że tworzy się dzięki temu pomost pomiędzy modelem przypadków użycia a modelem projektowym. Każdy przypadek użycia zdefiniowany w perspektywie przypadków użycia (ang. use case view) ma swój odpowiednik w modelu projektowym znajdującym się w perspektywie logicznej (ang. Logical View) w postaci realizacji przypadku użycia. Analiza przypadków użycia Określanie kluczowych abstrakcji dla systemu Proces pozyskiwania wymagań i modelowanie biznesowe powoduje odkrycie podstawowych pojęć występujących w modelowanej rzeczywistości, które muszą zostać odzwierciedlone w projektowanym systemie. Pojęcie te nazywane SA kluczowymi abstrakcjami. Są one związane z systemem jako całością i dzięki wykryciu ich na samym początku procesu analizy przypadków użycia, unikamy powtórzeń w procesie analizy pojedynczych przypadków użycia. Dodatkowo możemy spodziewać się, że model, który powstanie będzie bardziej spójny (zmniejszamy prawdopodobieństwo sytuacji, że dla różnych przypadków użycia zostaną wybrane różne nazwy dla tych samych pojęć). Źródłem kluczowych abstrakcji są: Wiedza dziedzinowa, Wymagania, Słownik pojęć,

Znajdowanie klas analizy Dla stworzenia wczesnego, koncepcyjnego modelu elementów systemu, posiadających zachowanie i odpowiedzialności wykorzystuje się tzw. klasy analizy. Stanowią one pierwszy szkic modelu obiektowego naszego systemu. Zadaniem klas analizy jest opis najważniejszych wymagań funkcjonalnych dla systemu. Klasy analizy modelują obiekty z dziedziny problemowej. Umożliwiają nam tworzenie modelu na wysokim poziomie abstrakcji bez podejmowania decyzji, które z elementów systemu będą miały realizację programową, a które sprzętową. Można wyróżnić trzy podstawowe aspekty systemu, które mogą podlegać częstym zmianom: Granice pomiędzy systemem a aktorem, Informacje, których używa system, Logika sterowania systemem. Aby odizolować te, podatne na zmiany, części systemu wyróżniamy trzy typy klas analizy: Klasy boundary (stereotyp: <<boundary>>, ikona: ), Klasy entity (stereotyp: <<entity>>, ikona: ), Klasy control (stereotyp: <<control>>, ikona: ). Dzięki temu podziałowi, możemy zdefiniować role, jakie grają obiekty w wykonywaniu określonego przypadku użycia. Klasa boundary: Klasa boundary stanowi pośrednią warstwę pomiędzy interfejsem a czymś na zewnątrz systemu. Izoluje system od zmian w otoczeniu (np. zmiany w interfejsie do innego systemu, zmianach w wymaganiach użytkownika dotyczących interfejsu z systemem). System może posiadać kilka typów klas boundary: Klasy interfejsu użytkownika (komunikacja z użytkownikiem systemu) Klasy interfejsu z innym systemem (komunikacji z innym systemem)

Klasy interfejsu sprzętowego (komunikacja z urządzeniami sprzętowymi, czujnikami, itp.) Wskazówki dotyczące klas boundary: Jedna klasa boundary dla pary aktor/przypadek użycia (w dalszym procesie analizy może zostać to zmienione poprzez uszczegółowienie np. dla systemu z interfejsem graficznym jedna klasa boundary może odpowiadać jednemu oknu czy formularzowi w postaci dialogu). Aktor komunikuje się tylko z klasą boundary. Zidentyfikuj klasy boundary tylko w oparciu o zjawiska zachodzące w ciągu zdarzeń dla przypadku użycia. Rozważ zewnętrzne źródła zdarzeń i upewnij się, że system może wykryć zajście takiego zdarzenia. Dla klas interfejsu użytkownika skoncentruj się na tym, jakie informacje są prezentowane użytkownikowi, nie koncentruj się na szczegółach interfejsu użytkownika (to nie jest szczegółowy projekt interfejsu użytkownika). Dla klas interfejsu systemowego i sprzętowego skoncentruj się na tym jaki protokół komunikacji musi zostać zdefiniowany, nie koncentruj się na tym jak protokół zostanie zaimplementowany. Klasa entity: Klasy entity reprezentują kluczowe pojęcia związane z systemem. Stanowią one punkt widzenia na system pokazujący logiczną strukturę danych. Klasa entity reprezentuje i zarządza informacjami (danymi) w systemie. Zazwyczaj obiekty klas entity są obiektami trwałymi. Klasy entity najczęściej: nie są specyficzne dla jednego przypadku użycia, są niezależne od środowiska zewnętrznego (aktorów) mogą posiadać zachowanie jednak najczęściej jest ono silnie związane z samym zjawiskiem reprezentowanym przez obiekt klasy entity. Źródłami dla wyszukiwania klas entity są: słownik pojęć, ciągi zdarzeń dla przypadku użycia, kluczowe abstrakcje. Wskazówki dla wyszukiwania klas entity:

wyszukiwanie rzeczowników i fraz rzeczownikowych w opisie ciągów zdarzeń w specyfikacji przypadku użycia. o Stworzenie listy znalezionych wyrażeń o Usuwanie wyrażeń nadmiarowych i zbyt ogólnikowych o Usuwanie aktorów o Usuwanie atrybutów klas (powinny być zachowane dla dalszego procesu) o Usuwanie operacji Klasa control Klasa control stanowi abstrakcję koordynatora przypadku użycia, która hermetyzuje zachowanie specyficzne dla konkretnego przypadku użycia. Obiekty klasy control kontrolują inne obiekty, koordynując działania wykonywane w realizacji przypadku użycia. Obiekt klasy control jest tworzony w momencie rozpoczęcia realizacji przez system przypadku użycia i zazwyczaj kończy swoje życie wraz z zakończenie działania odpowiedniego przypadku użycia. Zazwyczaj klasa control, ze względu na swoja funkcję jest specyficzna dla przypadku użycia (każdy przypadek użycia ma swoją klasę control), jednak niektóre obiekty klas control mogą współdziałać przy realizacji więcej niż jednego przypadku użycia (jeżeli przypadki te są ściśle ze sobą powiązane). Wskazówki dla wyszukiwania klas control: Jedna klasa control na przypadek użycia. Nie wszystkie przypadki użycia potrzebują klasy control. Jeżeli przypadek użycia posiada tylko jedną klasę entity, to przypadek użycia może być realizowany w postaci kooperacji obiektu klasy entity i obiektu klasy boundary. Podsumowanie klas analizy: Dla każdego przypadku użycia istnieje przynajmniej jeden diagram klas o nazwie VOPC (ang. View of Participating Classes) przedstawiający klasy (analizy) współdziałające przy realizacji tego przypadku użycia oraz związki pomiędzy nimi. Dlatego po wstępnym określeniu klas analizy należy stworzyć taki diagram dla każdego przypadku użycia. Diagramy zostaną uzupełnione w kolejnych krokach procesu analizy przypadków użycia. Uzupełnienie będzie dotyczyło doprecyzowania

samych klas analizy, określenia operacji i atrybutów tych klas oraz zdefiniowania asocjacji pomiędzy klasami. Należy pamiętać o tym, że podział na klasy analizy zniknie w procesie konkretyzacji projektu systemu. Można powiedzieć, że są swego rodzaju prototypami klas, część z nich stanie się podsystemami, komponentami, klasami, inne zostaną odrzucone w dalszym procesie projektowym. Opis przypadku użycia w terminach interakcji obiektów (przypisanie zachowania do klas (analizy)) diagramy interakcji Celem tej aktywności jest rozdzielenie odpowiedzialności za działania wykonywane w realizacji przypadku użycia pomiędzy klasy analizy (oraz ewentualne ich uzupełnienie). Zadanie to jest wykonywane poprzez opisanie działania wykonywanego podczas realizacji przypadku użycia w terminach współpracujących obiektów klas analizy. Do modelowania współdziałania pomiędzy obiektami służą w języku UML diagramy interakcji. Wyróżniamy dwa diagramy interakcji: Diagramy współpracy (ang. Collaboration Diagrams) Diagramy sekwencji (ang. Sequence Diagrams) Proces rozdzielania odpowiedzialności pomiędzy klasy analizy wymaga przypisania odpowiedzialności do klas a następnie zamodelowania procesu realizacji przypadku użycia na diagramach interakcji. Diagramy interakcji Diagramy interakcji stanowią jeden z rodzajów diagramów dynamicznych. Pozwalają na utworzenie opisu interakcji obiektów systemu podczas realizacji danego zadania: przypadku użycia (czy jednego konkretnego ciągu zdarzeń dla danego przypadku użycia). Diagramy współpracy pokazują w jaki sposób system realizuje dany przypadek użycia. Współpracujące obiekty, połączone linkami, stanowią rodzaj kolektywu, zwanego tu kolaboracją. Linki odpowiadają powiązaniom, czyli wystąpieniom asocjacji z diagramu klas, a to oznacza, że odpowiednia asocjacja musi istnieć na diagramie klas (ściślej mówiąc link na diagramie współpracy stanowi podstawę do zdefiniowania asocjacji na diagramie klas).

Diagramy współpracy mogą dodatkowo pokazywać interakcje zachodzące między obiektami zaangażowanymi w realizację danego przypadku użycia. Sekwencja interakcji oznacza tu sekwencję komunikatów przesyłanych między współpracującymi obiektami. 2: 1.1: WykonajPodZad1 : Klient 1: 1: WykonajZadanie : Wykonawca 3: 1.2: ZlećPodZad2 : PodWykonawca Rys. 1 Diagram współpracy Na diagramach współpracy nie pokazuje się odpowiedzi na wysyłane komunikaty. Komunikaty mogą być numerowane, albo kolejnymi liczbami naturalnymi, albo stosując tzw. numerację zagnieżdżoną (patrz Rys. 1). Diagramy sekwencji pokazują informację semantycznie identyczną jak diagramy współpracy, natomiast kładą przede wszystkim nacisk na kolejność komunikatów (w przeciwieństwie do diagramów współpracy, które większą wagę przywiązują do powiązań pomiędzy obiektami). : Klient : Wykonawca : PodWykonawca 1: W ykonajzadanie 1.1: WykonajPodZad1 1.2: ZlećPodZad2 Rys 2. Diagram sekwencji

Wybór diagramu interakcji Wybór rodzaju diagramu interakcji używanego do modelowania zachowania systemu przy realizacji przypadku użycia jest przede wszystkim uzależnione od osobistych preferencji. Wynika to z tego, że diagramy te (sekwencji i współpracy) pokazują semantycznie równoważną informację. Jednak istnieją pewne przypadki, dla których jeden z diagramów jest bardziej adekwatny niż drugi. Dla sesji burzy mózgów lepszym diagramem może być diagram współpracy uwypuklający zależności pomiędzy obiektami (a co za tym idzie klasami). Diagram współpracy ułatwia wyszukanie wzorca komunikacji pomiędzy klasami, który może potem stać się podstawą warunkującą użycie wzorca projektowego modelującego takie zachowanie. W przypadku modelowania systemów czasu rzeczywistego, gdzie niezwykle istotne jest uwypuklenie kolejności wykonywanych operacji lepszym diagramem może okazać się diagram sekwencji. W przypadku narzędzia, jakim jest Rational Rose można automatycznie generować jeden diagram interakcji na podstawie definicji drugiego (skrót klawiaturowy F5). Zadania 1. Na podstawie specyfikacji systemu płacowego, słownika pojęć i ogólnej znajomości problematyki spróbuj znaleźć podstawowe pojęcia, które staną się kluczowymi abstrakcjami naszego systemu. 2. Dla każdego przypadku użycia znajdź wstępny zbiór klas analizy (źródło specyfikacja przypadku użycia, słownik pojęć). Utwórz diagram sekwencji obrazujący współdziałanie klas analizy przy realizacji przypadku użycia.