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