Modelowanie i analiza systemów informatycznych



Podobne dokumenty
Język UML w modelowaniu systemów informatycznych

Diagramy klas. WYKŁAD Piotr Ciskowski

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

Rysunek 1: Przykłady graficznej prezentacji klas.

Diagramy klas. dr Jarosław Skaruz

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)

UML w Visual Studio. Michał Ciećwierz

Modelowanie i Programowanie Obiektowe

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

Podstawy języka UML UML

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

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

Podstawy Programowania Obiektowego

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

Modelowanie obiektowe

Modelowanie i analiza systemów informatycznych Spis treści

Podstawy programowania III WYKŁAD 4

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

MODELOWANIE OBIEKTOWE

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

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

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

Podstawy programowania skrót z wykładów:

Podstawy projektowania systemów komputerowych

Język UML w modelowaniu systemów informatycznych

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Michał Adamczyk. Język UML

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

Język UML w modelowaniu systemów informatycznych

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Diagramy czynności. Widok logiczny. Widok fizyczny

Faza Określania Wymagań

Technologie obiektowe

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

Podstawy języka UML UML

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

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie logiki aplikacji

Modelowanie danych, projektowanie systemu informatycznego

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

Język UML w modelowaniu systemów informatycznych

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Wykład I. Wprowadzenie do baz danych

UML. dr inż. Marcin Pietroo

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

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Język UML w modelowaniu systemów informatycznych

Świat rzeczywisty i jego model

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

SysML Tworzenie diagramu kontekstowego i bloków wewnętrznych SysML003

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

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

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

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

Przykładowy dokument XML

Podstawy języka UML2 w realnych projektach

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Java Język programowania

Wymagania klienta mogą być opisane na różnych poziomach abstrakcji: Podział wymagań: Wymagania funkcjonalne Wymagania niefunkcjonalne

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

JAVA W SUPER EXPRESOWEJ PIGUŁCE

1 Projektowanie systemu informatycznego

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

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

TECHNOLOGIE OBIEKTOWE. Wykład 3

Standard określania klasy systemu informatycznego resortu finansów

Język UML w modelowaniu systemów informatycznych

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Podstawy modelowania w języku UML

Inżynieria Oprogramowania. UML Schematy klas

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

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

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

Diagram przypadków użycia

Opracował: Jan Front

Bazy danych TERMINOLOGIA

Inżynieria oprogramowania

UML - zarys 2007/2008

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

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

Programowanie obiektowe - 1.

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Programowanie współbieżne i rozproszone

Programowanie obiektowe

MODELOWANIE OBIEKTOWE Z UML

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

Wykład 1 Inżynieria Oprogramowania

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

ECDL Podstawy programowania Sylabus - wersja 1.0

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Abstrakcyjny typ danych

Paweł Kurzawa, Delfina Kongo

Modelowanie i analiza systemów informatycznych

Transkrypt:

Modelowanie i analiza systemów informatycznych MBSE/SysML Wykład 3 Diagram definiowania bloków (bdd)

Diagram definiowania bloków Definiuje elementy systemu Diagram SysML Diagram zachowania Diagram wymagań Diagram struktury Diagram aktywności Diagram maszyny stanów Diagram definicji bloków Diagram bloków wewnętrznych Diagram pakietów Diagram sekwencji Diagram przypadków użycia Diagram parametryczny Taki sam jak w UML2 Zmodyfikowany względem UML2 Nowy diagram 2

Diagram definiowania bloków Blok SysML to rozszerzenie klasy znanej z UML (a bdd rozwinięcie diagramu klas) Diagramy definiowania bloków służą do precyzyjnej charakterystyki struktury systemu Zastosowanie poszczególnych elementów pokazują diagramy bloków wewnętrznych Blok stanowi modularną jednostkę opisująca strukturę systemu lub elementu Dowolny konkretny lub konceptualny byt, który można modelować jako jednostkę strukturalną z jedną lub więcej wyróżnialnych cech 3

Diagram definiowania bloków Podstawowe kategorie modelowania diagramów definiowania bloków obejmują Blok (block) Związek (rela)onship) Typ wartości (value type) Aktora (actor) Port (port) Pakiet (package) 4

Blok Bloki posiadają Unikatową tożsamość Zespół cech Zestaw opcjonalnych sekcji (compartments) Bloki łączą się za pomocą związków znanych z UML Asocjacji Generalizacji Zależności Realizacji Zagnieżdżenia 5

Blok Bloki mogą mieć charakter Sprzętowy Programowy Organizacyjny 6

Cechy bloku Blok uszczegóławia się poprzez identyfikację cech i sekcji Bloki definiują zestaw wspólnych pierwotnych cech, którymi musi charakteryzować się instancja bloku 7

Wartości (values) Cechy bloku Opisowe bądź liczbowe atrybuty bloku, np. Częstotliwość taktowania zegara Zasoby pamięci Rodzaj użytego szyfrowania Data złożenia zamówienia 8

Operacje (opera)ons) Cechy bloku Działania, które można wykonać na bloku, np. Zapisanie/pobranie wartości do/z pamięci Wygenerowanie klucza szyfrującego Zmiana statusu zamówienia 9

Cechy bloku Ograniczenia (constraints) Formalny lub werbalny zapis restrykcji przypisywanych poszczególnym atrybutom, np. Minimalna długość klucza szyfrującego 512 bitów Maksymalna wartość zamówienia realizowanego bez przedpłaty 10000 zł Maksymalny czas osiągania zbieżności sieci 300 s 10

Części (parts) Cechy bloku Wyszczególnienie elementów składowych bloku na zasadzie dekompozycji, np. Pamięć cache procesora poziomu pierwszego i drugiego Moduł komunikacyjny bankomatu Czytnik kart płatniczych Pobierak pieniędzy wpłatomatu 11

Cechy bloku Odniesienia (references) Lista innych bloków powiązanych z blokiem definiowanym Ze względu na sklasyfikowanie bloków stanowiących części jako osobnej cechy, nie wyszczególnia się ich jako odniesień 12

Cechy bloku Cechy uniwersalne/właściwości (proper)es) Wszystkie cechy, które nie zostały przypisane do żadnej z powyższych kategorii Niezwykle pojemne pojęcie we wczesnych etapach definiowania bloku dowolną cechę można określić jako cechę uniwersalną, a w późniejszych iteracjach odpowiednio sklasyfikować 13

Cechy bloku Poziom widoczności poszczególnych cech w SysML jest deklaratywnie przyjęty jako publiczny Nie stosuje się znaczników widoczności znanych z UML 14

Cechy bloku składnia Cecha Przykład Komentarz Wartość algorytmszyfrujacy : String Wartość z typem danych algorytmszyfrujacy : String = MD5 /lacznaliczbaportow : int ISBN : String {unique} stawkagodzinowa: real {readonly} j.w. z wartością domyślną Wartość o charakterze pochodnym, wyliczana na podstawie innych wartości Ograniczenie przypisane do konkretnej wartości Wartość stała Operacja inicjujalarm() Operacja zdefiniowana wyłącznie przez nazwę zablokujport(idportu, czas, czylog) zmienstatus(status : String) szyfruj(: String) : int Operacja ze wskazaniem listy parametrów Operacja parametryzowana z uwzględnieniem typów danych Operacja z podaniem typu danych parametru i wartości zwrotnej Ograniczenie {maxczastrwaniaegazminu = 120} Formalny zapis ograniczenia {dane wejściowe zgodne z normą HX} Werbalny zapis ograniczenia Część WIC-2T : Karta rozszerzeń Nazwa części wraz z definiującym ją blokiem a : Adres [1..3] {ordered} Część z uwzględnieniem liczebności oraz ograniczenia Odniesienie : Reklamacja Odniesienie przez wskazanie nazwy bloku platforma : Router Odniesienie przez wskazanie nazwy cechy i bloku 15

Sekcje bloku Sekcje (compartments) można podzielić na Strukturalne (wartości, części, odniesienia) Zachowania (operacje) Ograniczeń (ograniczenia) Cechy uniwersalne można odnieść do wszystkich typów sekcji 16

Sekcje bloku Specyfikacja SysML przewiduje pokazywanie wyszczególnienie jednej sekcji bloku nazwy Pozostałe sekcje są opcjonalne Układ ESP Czujnik ruchu properties Waga : kg Nie reaguje na ruch małych zwierząt Przesyłanie danych bezprzewodowo Moduł komunikacyjny Moduł detekcyjny Lista zakupowa values ID_listy : int {auto_increment} nazwa : String = Nowa lista {not null} / liczba_produktow : int data_utworzenia : Date = DateTime.now data_waznosci : Date operations wyswietl(id_listy) utworz(nazwa, data_waznosci) usun(id_listy) dodaj_produkt(id_produktu, ilosc_jm) usun_produkt(id_produktu) zmien_liczbe_produktow(id_produktu, ilosc_jm) zamow(id_listy) {max_prod = 250} {max_wazn = 365} {max_list = 50} constraints p : Produkt parts references Serwis transakcyjny sklepu internetowego 17

Związki Związki bloków są bezpośrednio zaczerpnięte ze specyfikacji UML Różnice Brak asocjacji n- arnych (w zamian blok może być umieszczony w strukturze innych wzajemnie powiązanych bloków) Mniejsza liczba cech asocjacji (brak cech kwalifikacji i zaawansowanych aspektów nawigacji) Silniejsze zastosowanie związku zagnieżdżania (w UML stosowany tylko do pakietów) 18

Asocjacja Opisuje związek pomiędzy dwoma elementami (blokami), określana przez Nazwę Rolę (logiczny aspekt zależności bloków) Liczebność (liczba instancji danego bloku z pojedynczą instancją powiązanego bloku) Nawigację (kierunek przesyłania informacji) Agregację (związek całość- część) 19

Generalizacja Związek o charakterze taksonomicznym pomiędzy ogólną a specjalizowaną kategoria modelowania 20

Zależność Związek pomiędzy dwiema kategoriami modelowania, w którym zmiana jednej z nich (niezależnej) wpływa na drugą (zależną) W szczególności wskazuje na sytuację, kiedy dany blok wymaga funkcjonalności oferowanej przez powiązany interfejs 21

Realizacja Związek znaczeniowy między elementami, w którym jeden określa kontrakt, a drugi zapewnia wywiązanie się z niego Na diagramach definiowania bloków funkcjonuje jako szczególny rodzaj zależności, w której dany blok definiuje i oferuje funkcjonalność wskazaną przez powiązany interfejs 22

Zagnieżdżanie Związek łączący bloki nadrzędne z podrzędnymi, dzięki czemu powstaje wielopoziomowa hierarchiczna struktura bloków 23

Diagram definiowania bloków 24

Typy wartości 25

Typy wartości Typy wartości (value types) stosuje się do opisu poszczególnych cech bloków i parametrów operacji Koncepcja pochodzi bezpośrednio z programowania komputerów Wprowadzenie tej kategorii modelowania wynika z odmiennego sposobu obsługi danych reprezentowanych przez typy wartości 26

Typy wartości W momencie utworzenia instancji typu wartości (np. zadeklarowania zmiennej) na potrzeby tej instancji alokowany jest obszar pamięci Wszelkie dalsze działania odnoszące się do tej instancji (w tym zmiana wartości czy skasowanie) mają charakter bezpośredniego manipulowania danymi 27

Typy wartości Stanowi to zasadniczą różnicę w stosunku do obsługi bloków Utworzenie instancji bloku wiąże się z alokowaniem dwóch osobnych obszarów pamięci na potrzeby właściwych danych i na potrzeby referencji (wskaźnika do tych danych pośredniczącego w dalszych działaniach) Referencja oznacza dane, które zawierają informacje o położeniu innych danych 28

Typy wartości W momencie przypisania uprzednio utworzonej instancji typu wartości do innej instancji wartości, wartość reprezentowana przez instancję pierwotną zostaje skopiowana do osobnego obszaru pamięci Kopia jest całkowicie niezależna od danych pierwotnych Przypisanie uprzednio utworzonej instancji bloku do nowej instancji bloku powiela jedynie referencję Nowa referencja wskazuje dokładnie na ten sam obszar pamięci co referencja pierwotna (zmiana wartości kopii zmienia też wartość pierwotną) 29

Typy wartości Własne typy wartości mogą zostać wykorzystane do definiowania bloków Płatność kartą kredytową values data_platnosci : Data krótka suma : Waluta nazwa : Płatnik nr : Numer karty data_waznosci : Data krótka <<valuetype>> Data krótka values dzien : int miesiac : int rok : int <<valuetype>> Płatnik values imie: String nazwisko : String constraints (imie.length + nazwisko.length <= 20) <<valuetype>> Waluta values czesc_zlotowa: int czesc_groszowa : int[2] symbol_waluty: String[3] 30

Typy wartości Wyróżnia się trzy rodzaje typów wartości Proste niepodzielne jednostki danych (np. int, long, float, boolean, char) Wyliczeniowe (enumera)on) ograniczone do policzalnej liczby wariantów, określane stereotypem <<enumera)on>>, dopuszczalne warianty wymienione są w dedykowanej anonimowej sekcji Struktury składające się z łańcucha typów prostych <<valuetype>> double <<enumeration>> System Windows Unix Linux Mac OS BeOS <<valuetype>> Data krótka values dzien : int miesiac : int rok : int 31

Typy wartości Typy wartości można również określać i klasyfikować w kategoriach miar oraz jednostek miar <<valuetype>> Mp/s dimension = wydajność sprzętu sieciowego unit = PPS 32

Typy wartości W systemach o charakterze technicznym strategiczną rolę odgrywają miary (zmienne fizyczne, chemiczne, informatyczne) i jednostki, w których te miary mogą zostać wyrażone Popularne miary (dimensions) to długość, masa, czas, natężenie prądu, częstotliwość, itp. Stosowane do tych miar jednostki (units) to na przykład metr, kilogram, amper, herc. 33

Typy wartości <<dimension>> Przepustowość sieci <<unit>> Mb/s dimension = Przepustowość sieci <<unit>> Gb/s dimension = Przepustowość sieci <<unit>> kb/s dimension = Przepustowość sieci <<dimension>> Wydajność sprzętu komputerowego <<unit>> FLOPS dimension = Wydajność sprzętu komputerowego <<unit>> Liczna operacji na wat dimension = Wydajność sprzętu komputerowego <<dimension>> Rozdzielczość drukarki <<unit>> DPI dimension = Rozdzielczość drukarki <<dimension>> Rozdzielczość ekranu <<unit>> Liczba pikseli dimension = Rozdzielczość ekranu 34

Zaawansowana specyfikacja bloków 35

Sekcja struktury bloku Sekcja ta umożliwia zaprezentowanie bloku w postaci białej skrzynki Diagram bloków wewnętrznych zostaje umieszczony bezpośrednio wewnątrz modelowanego bloku Sekcja struktury może zawierać dowolne kategorie modelowania właściwe dla diagramu bloków wewnętrznych 36

Sekcja struktury bloku Moduł autoryzacyjny Czytnik kart ICzytnik karta 0..1 Karta identyfikacyjna structure m : Energia s : Cewka : Napięcie c : Układ scalony : Napięcie 37

Bloki abstrakcyjne Bloki mogą być konkretne lub abstrakcyjne Blok abstrakcyjne stanowią wyłącznie podstawę dziedziczenia dla innych bloków (konkretnych lub abstrakcyjnych) Z założenia nie zawierają kompletnej deklaracji wszystkich cech, jest ona rozszerzana przez bloki dziedziczące Stanowią podstawę ponownego użycia (reuse) 38

Bloki abstrakcyjne Karta płatnicza Karta bankomatowa Karta debetowa Karta kredytowa Karta obciążeniowa Karta przedpłacona 39

Bloki asocjacyjne Bloki asocjacyjne zawierają cechy szczegółowo określające asocjację Zamówienie 0..* 1..* Produkt Pozycja zamówienia values id_pozycji : int {auto_increment} id_zamowienia : int id_produktu : int liczba_jm : real 40

Bloki ograniczeń Ograniczenia stanowiące cechy bloków można na potrzeby ponownego użycia lub bardziej szczegółowej specyfikacji zaprezentować w formie oddzielnego bloku W ten sposób restrykcje i reguły istotne z punktu widzenia systemu otrzymują bardziej formalną postać <<constraintblock>> Prognoza sprzedaży constraints S (t) = αs(t) + (1 α)s (t 1) parameters S (t) : double S(t) : long α : real S (t 1) : double Bloki ograniczeń są powszechnie stosowane przy tworzeniu diagramów parametrycznych 41

Alokacje Alokacja stanowi sposób wzajemnego przyporządkowania różnych kategorii modelowania wywodzących się z różnych diagramów Na przykład: blok jest zależny od wykonywanej przez niego czynności Umożliwia luźne powiązanie elementów modelu obejmujących różne rodzaje diagramów 42

Alokacje W SysML pojawiają się trzy rodzaje alokacji: Zachowania Alokowanie elementów diagramu dynamiki systemu (czynności, akcji, stanów, przejść, komunikatów, itp.) do elementów strukturalnych (bloków, cech, części, itp.), np. alokacja czynności do bloków Struktury Alokowanie kategorii modelowania jednego modelu strukturalnego do kategorii modelowanie innego modelu strukturalnego (zależności między elementami diagramów definiowania bloków a diagramów bloków wewnętrznych), np. alokowanie oprogramowania na sprzęcie Przepływów Pokazuje, w jakim zakresie przepływy zasobów (materii, energii, informacji) na diagramach bloków wewnętrznych wynikają z przepływów obiektów na diagramach aktywności 43

Alokacje notacja sekcyjna Koszyk Serwis transakcyjny sklepu internetowego allocatedfrom <<activity>> Dodaj do koszyka <<activity>> Skoryguj liczebność zamawianych towarów Lista zakupowa Wywodzi się z Opiera się na Zależy od Wyszukiwanie zaawansowane allocatedfrom <<activity>> Wyszukaj substytuty produktu <<activity>> Zawęź kryteria wyszukiwania Lista zakupowa allocatedfrom <<activity>> Utwórz szablonowe zamówienie allocatedto Koszyk Wpływa na 44

Alokacje notacja bezpośrednia Koszyk Serwis transakcyjny sklepu internetowego <<allocate>> <<allocate>> <<allocate>> <<activity>> Dodaj do koszyka <<activity>> Skoryguj liczebność zamawianych towarów Wyszukiwanie zaawansowane Lista zakupowa <<allocate>> <<allocate>> <<allocate>> <<activity>> Zawęź kryteria wyszukiwania <<activity>> Wyszukaj substytut produktu <<activity>> Utwórz szablonowe zamówienie 45

Alokacje specyfikacja tabelaryczna Rodzaj kategorii modelowania Nazwa kategorii modelowania Typ Związek Rodzaj kategorii modelowania Nazwa kategorii modelowania Typ blok Lista zakupowa źródło alokacja blok Koszyk cel blok Lista zakupowa cel alokacja czynność Utwórz szablonowe zamówienie źródło blok Koszyk cel alokacja blok Lista zakupowa źródło blok Koszyk cel alokacja czynność Skoryguj liczebność zamawianych towarów źródło blok Koszyk cel alokacja czynność Dodaj do koszyka źródło blok Wyszukiwarka zaawansowana cel alokacja czynność Zawęź kryteria wyszukiwania blok Wyszukiwarka zaawansowana cel alokacja czynność Wyszukaj substytuty produktu źródło źródło 46