Systemy czasu rzeczywistego Rafa Krawczyk Wacaw Kowalski Maciej

  • Slides: 74
Download presentation
Systemy czasu rzeczywistego Rafał Krawczyk Wacław Kowalski Maciej Stojko Tomasz Żyguła

Systemy czasu rzeczywistego Rafał Krawczyk Wacław Kowalski Maciej Stojko Tomasz Żyguła

Plan prezentacji Część 1: • Zastosowanie podejścia środowiskowego UML w modelowaniu struktury systemu czasu

Plan prezentacji Część 1: • Zastosowanie podejścia środowiskowego UML w modelowaniu struktury systemu czasu rzeczywistego Część 2: • Automatyczna weryfikacja modeli UML

Plan prezentacji (cz. 1) • Wstęp • Modelowanie struktury • Modelowanie zachowania • Usługa

Plan prezentacji (cz. 1) • Wstęp • Modelowanie struktury • Modelowanie zachowania • Usługa oparta na czasie • Przykład: § przedstawienie problemu § analiza obiektowa

Plan prezentacji (cz. 2) • Wstęp • PVF (Property Verification Framework) • Projekt RIVIERA

Plan prezentacji (cz. 2) • Wstęp • PVF (Property Verification Framework) • Projekt RIVIERA • Krótka charakterystyka wybranych narzędzi CASE: § I-Logix Raphsody § I-Logix Statement Magnum § Together § Ph. D § DMS Toolkit § Visual Paradigm for UML Community Edition 3. 1 § Metamill 3. 1 Visual UML Case Tool § Rational Rose § Argo

Zastosowanie podejścia środowiskowego UML w modelowaniu struktury systemu czasu rzeczywistego

Zastosowanie podejścia środowiskowego UML w modelowaniu struktury systemu czasu rzeczywistego

Tytułem wstępu § Systemy oprogramowania czasu rzeczywistego spotykane w takich zastosowaniach jak telekomunikacja, aeronautyka

Tytułem wstępu § Systemy oprogramowania czasu rzeczywistego spotykane w takich zastosowaniach jak telekomunikacja, aeronautyka i obrona, zwykle są duże i bardzo skomplikowane. § Duże znaczenie architektury w tworzeniu SCR § Wykorzystanie Unified Modeling Language – UML

Użycie UML § Okazał się on dobrze spełniać swoje zadanie, a żadne dodatkowe sposoby

Użycie UML § Okazał się on dobrze spełniać swoje zadanie, a żadne dodatkowe sposoby modelowania nie są potrzebne § Zastosowanie znalazły standardowe mechanizmy UML, takie jak: • stereotypy (ang. stereotype) • wartości-etykiety (ang. tagged value) • warunki ograniczające (ang. constrains)

Zasady Modelowania SCR § Zasady te można podzielić na dwie grupy: • modelowanie struktury

Zasady Modelowania SCR § Zasady te można podzielić na dwie grupy: • modelowanie struktury • modelowanie zachowania

Modelowanie struktury § Obejmuje elementy, które mają być modelowane oraz związki między nimi (np.

Modelowanie struktury § Obejmuje elementy, które mają być modelowane oraz związki między nimi (np. związki komunikowania się, związki zawierania). § UML dostarcza dwa komplementarne typy diagramów, które obejmują strukturę logiczną systemów: • diagramy klasy (ang. class diagram) • diagram współpracy (ang. collaboration diagram)

Modelowanie struktury § Przy modelowaniu struktury możemy wyróżnić trzy zasadnicze konstruktory: • kapsuły •

Modelowanie struktury § Przy modelowaniu struktury możemy wyróżnić trzy zasadnicze konstruktory: • kapsuły • porty • konektory

Kapsuły § Są jedną z najważniejszych konstrukcji modelowania. § Przy ich pomocy przedstawia się

Kapsuły § Są jedną z najważniejszych konstrukcji modelowania. § Przy ich pomocy przedstawia się ważniejsze elementy architektoniczne skomplikowanych SCR § Komunikacja z innymi kapsułami przy użyci portów § Może zawierać jedną lub więcej pod-kapsuł połączonych ze sobą za pomocą konektorów

Kapsuły – wewnętrzna struktura § Struktóra kapsuły: • porty • pod-kapsuły • konektory •

Kapsuły – wewnętrzna struktura § Struktóra kapsuły: • porty • pod-kapsuły • konektory • role-wtyczki

Kapsuły – maszyna stanu § Maszyna stanu opcjonalnie powiązana z kapsułą jest jedynie kolejną

Kapsuły – maszyna stanu § Maszyna stanu opcjonalnie powiązana z kapsułą jest jedynie kolejną częścią implementacji kapsuły § Szczególne właściwości maszyny stanowej: • • nie mogą się składać z innych pod-kapsuł maksymalnie jedna maszyna stanu na kapsułę obsługiwać sygnałów ( in /out) jedyna jednostka, która może uzyskać dostęp do chronionych wewnętrznych elementów kapsuły

Kapsuły – maszyna stanu Zapis kapsuły na diagramie klasy

Kapsuły – maszyna stanu Zapis kapsuły na diagramie klasy

Porty Port jest fizyczną częścią kapsuły, która pośredniczy w komunikacji kapsuły ze światem zewnętrznym,

Porty Port jest fizyczną częścią kapsuły, która pośredniczy w komunikacji kapsuły ze światem zewnętrznym, jest obiektem, który zawiera specyficzny interfejs. Każdy port kapsuły odgrywa konkretną rolę we współpracy kapsuły z innymi obiektami § Dwa rodzaje portów: • przekaźnikowe (ang. relay ports) • terminatory (ang. end ports)

Porty § Modelowanie w UML Porty, protokoły i role protokołów

Porty § Modelowanie w UML Porty, protokoły i role protokołów

Porty § Oznaczanie portów – reprezentacja diagramu klasy

Porty § Oznaczanie portów – reprezentacja diagramu klasy

Porty § Porty o większej liczbie instancji

Porty § Porty o większej liczbie instancji

Konektory Konektor reprezentuje kanał komunikacyjny, który udostępnia funkcję transportu dla danego protokołu sygnałowego. Podstawową

Konektory Konektor reprezentuje kanał komunikacyjny, który udostępnia funkcję transportu dla danego protokołu sygnałowego. Podstawową cechą konektorów jest to, że potrafią one połączyć jedynie te porty, które pełnią wzajemnie komplementarne role w protokole danego konektora

Konektory § Modelowanie UML • konektor jest modelowany za pomocą związku (ang. association) •

Konektory § Modelowanie UML • konektor jest modelowany za pomocą związku (ang. association) • definiowany jest poprzez rolę związku na diagramie współpracy przedstawiającym kapsułę

Modelowanie zachowania § Zachowanie jest opisywane na poziomie architektonicznym przy użyciu pojęcia protokołu

Modelowanie zachowania § Zachowanie jest opisywane na poziomie architektonicznym przy użyciu pojęcia protokołu

Protokoły § Jest specyfikacją pożądanego zachowania, które ma miejsce przy użyciu konektora § Składa

Protokoły § Jest specyfikacją pożądanego zachowania, które ma miejsce przy użyciu konektora § Składa się z szeregu uczestników, z których każdy pełni określoną rolę § Może zawierać specyfikację prawidłowych sekwencji komunikacyjnych

Protokoły Zapis roli protokołu – diagram klasy

Protokoły Zapis roli protokołu – diagram klasy

Czas - najwżniejszy czynnik SCR § Ogólnie można modelować dwie sytuacje oparte na czasie:

Czas - najwżniejszy czynnik SCR § Ogólnie można modelować dwie sytuacje oparte na czasie: • możliwość wyzwalania działań w określonym momencie • możliwość wywoływania działań po upłynięciu określonego czasu od danego momentu

Modelowanie usług opartych na czasie § Idea usługi opartej na czasie nie wymaga żadnych

Modelowanie usług opartych na czasie § Idea usługi opartej na czasie nie wymaga żadnych rozszerzeń UML lub specjalnego sposobu zapisu

UML real-time na przykładzie. §Przedstawienie problemu §Analiza UML

UML real-time na przykładzie. §Przedstawienie problemu §Analiza UML

Przedstawienie problemu § § § § Co to jest respirator. Zasada działania. Budowa respiratora.

Przedstawienie problemu § § § § Co to jest respirator. Zasada działania. Budowa respiratora. Istota sensorów. Zagrożenia występujące w żelaznych płucach. Ważniejsze monitorowane parametry. Alarmy. Tryby działania.

Analiza obiektowa. § § § Analiza wymagań. Przypadki użycia. Scenariusze. Analiza i identyfikacja przedmiotu.

Analiza obiektowa. § § § Analiza wymagań. Przypadki użycia. Scenariusze. Analiza i identyfikacja przedmiotu. Relacje, atrybuty i zachowania. Diagramy.

Budowa respiratora i podstawowe zasady działania

Budowa respiratora i podstawowe zasady działania

Schemat respiratora

Schemat respiratora

Parametry, które są monitorowane § stężenie O 2 w zainspirowanej kończynie oddychającej obwodu (fi

Parametry, które są monitorowane § stężenie O 2 w zainspirowanej kończynie oddychającej obwodu (fi O 2) § stężenie CO 2 w wygasłej kończynie oddychającej obwodu (et CO 2) § Strumień ciśnienia wydychanego przez pacjenta § sensor ciśnienia obwodu oddychającego

Parametry opisujące respirator:

Parametry opisujące respirator:

Ważniejsze elementy § Istota sensorów. § Zagrożenia występujące w żelaznych płucach. § Alarmy. §

Ważniejsze elementy § Istota sensorów. § Zagrożenia występujące w żelaznych płucach. § Alarmy. § Tryby działania.

Zestawienie typowych alarmów :

Zestawienie typowych alarmów :

Panel sterowania respiratora

Panel sterowania respiratora

Analiza obiektowa. § § § Analiza wymagań. Przypadki użycia. Scenariusze. Analiza i identyfikacja przedmiotu.

Analiza obiektowa. § § § Analiza wymagań. Przypadki użycia. Scenariusze. Analiza i identyfikacja przedmiotu. Relacje, atrybuty i zachowania. Diagramy.

Przypadki użycia:

Przypadki użycia:

Use case

Use case

Scenariusze

Scenariusze

Wyniki błędnego podejścia

Wyniki błędnego podejścia

§ Analiza przedmiotu. § Diagramy klas. § Identyfikacja przedmiotu: § · wentylator § ·

§ Analiza przedmiotu. § Diagramy klas. § Identyfikacja przedmiotu: § · wentylator § · czujnik O 2 § · czujnik CO 2 § · czujnik ciśnienia § · wyświetlacz § · ruchomą gałkę § · przyciski § · CO 2 pochłaniacz § · zawór kontroli ciśnienia gazu

§ Wizualne elementy GUI § § § · · · ciąg znaków etykiety ciąg

§ Wizualne elementy GUI § § § · · · ciąg znaków etykiety ciąg znaków wartości ciąg znaków alarmy ukryty wskaźnik elementu ruchomą gałkę § Elementy danych (zmierzonych lub kontrolnych) § § § § § · · · · · przepustowość wydolność (przepustowość czasowa) Wydajność inspiratorów I: E (stosunek) Tempo respiracji Ciśnienie powietrza fi. O 2 et. CO 2 Alarm

Odpowiedzialności, atrybuty i zachowanie się.

Odpowiedzialności, atrybuty i zachowanie się.

Model analizy :

Model analizy :

Współdziałanie klas i analiza scenariusza.

Współdziałanie klas i analiza scenariusza.

Automatyczna weryfikacja modeli UML Krótka charakterystyka wybranych narzędzi Case

Automatyczna weryfikacja modeli UML Krótka charakterystyka wybranych narzędzi Case

Dlaczego weryfikacja modeli jest ważna ? § Nowe podejścia do tworzenia oprogramowania takie jak

Dlaczego weryfikacja modeli jest ważna ? § Nowe podejścia do tworzenia oprogramowania takie jak np. MDA uwydatniają użycie modeli UML § Szczególnie istotne w przypadku systemów krytycznych, w których życie ludzkie lub drogie systemy mogą być narażone na niebezpieczeństwo § Im szybciej nastąpi wykrycie wady tym lepiej § Wysokie koszty popełnionych błędów we wstępnych fazach, a szczególnie w fazie modelowania

Dlaczego typu narzędzia nie cieszą się dużą popularnością ? § Wiele narzędzi CASE jest

Dlaczego typu narzędzia nie cieszą się dużą popularnością ? § Wiele narzędzi CASE jest zorientowanych na bardzo specyficzne podejście do tworzenia oprogramowania § Wysokie koszty (licencje, szkolenia, itp. ) § Nie spełniają często nierealnych wymagań użytkowników

PVF – Property Verification Framework § Wspiera wykrywanie błędów w modelach UML § Użytkownik

PVF – Property Verification Framework § Wspiera wykrywanie błędów w modelach UML § Użytkownik ma możliwość sprawdzenia modelu pod względem pożądanych właściwości § Jednostki sprawdzające wykorzystują predefiniowany zbiór właściwości, które ma spełniać model § Generowane są sugestie, które mogą pomóc w wyeliminowaniu ewentualnych błędów § Jedną z najważniejszych cech PVF jest jego modularna budowa, umożliwiająca jego włączanie do istniejących już narzędzi CASE

Zakładane ulepszenia PVF § Zaimplementowanie właściwości, które jeszcze nie są zaimplementowane § Zidentyfikowanie nowych

Zakładane ulepszenia PVF § Zaimplementowanie właściwości, które jeszcze nie są zaimplementowane § Zidentyfikowanie nowych właściwości dla map stanów § Ulepszenie interfejsu użytkownika, tworzenie raportów w postaci HTML

Projekt RIVIERA ma za zadanie stworzenie struktury umożliwiającej tworzenie narzędzi CASE Trzy główne cele

Projekt RIVIERA ma za zadanie stworzenie struktury umożliwiającej tworzenie narzędzi CASE Trzy główne cele projektu: • • • Służyć jako środowisko do symulacji i przetwarzania modeli Wspomóc weryfikacje własności modelu Dostarczyć środowiska umożliwiające transformacje pod wpływem pewnych sugestii

Krótka charakterystyka wybranych narzędzi CASE § § § § § I-Logix Raphsody I-Logix Statement

Krótka charakterystyka wybranych narzędzi CASE § § § § § I-Logix Raphsody I-Logix Statement Magnum Together Ph. D DMS Visual Paradigm for UML Community Edition 3. 1 Metamill 3. 1 Visual UML CASE Tool Rational Rose Argo

I-Logix Raphsody § Umożliwia tworzenie współbieżnych regionów § Pozwala na sprawdzenie wielu ciekawych właściwości

I-Logix Raphsody § Umożliwia tworzenie współbieżnych regionów § Pozwala na sprawdzenie wielu ciekawych właściwości np. takich jak: tworzenie pętli (livelocks), izolowanych stanów § Niestety wiele interesujących własności nie może być zweryfikowanych przy użyciu tego narzędzia § Generowany kod XMI nie jest do końca zgodny z innymi narzędziami

I-Logix Statement Magnum § Wykorzystuje kombinacje tradycyjnych notacji graficznych w połączeniu z niektórymi diagramami

I-Logix Statement Magnum § Wykorzystuje kombinacje tradycyjnych notacji graficznych w połączeniu z niektórymi diagramami UML § Możliwość symulacji nieukończonych modeli § Możliwość generowania kodu i dokumentacji z modelu § Umożliwia specyfikowanie współbieżnych stanów § Współpracuje z mapami stanów Harel’a, które nie są identyczne z mapami UML

Together § Potężne środowisko wspierające tworzenie modeli UML i generowanie kodu § Dostarcza wielu

Together § Potężne środowisko wspierające tworzenie modeli UML i generowanie kodu § Dostarcza wielu udogodnień § Dodanie klasy do diagramu, sprawia, że natychmiast pojawia się w kodzie § Możliwość analizowania tworzonych modeli przy użyciu wbudowanych komponentów metrycznych § Nie ma możliwości definiowania stanów współbieżnych

Teza Ph. D § § Wysunięta przez Porres’a Translacja do języka PROMELA Użycie modelu

Teza Ph. D § § Wysunięta przez Porres’a Translacja do języka PROMELA Użycie modelu sprawdzającego SPIN Możliwe tłumaczenie rezultatu SPIN do diagramu sekwencji UML

The DMS Software Reenginering Toolkit § Narzędzie umożliwiające automatyczną analizę programu, jego modyfikacje §

The DMS Software Reenginering Toolkit § Narzędzie umożliwiające automatyczną analizę programu, jego modyfikacje § W skład zestawu narzędzi wchodzą między innymi: kompilator, parser, analizator semantyczny § Stworzony do pracy z systemami zawierającymi kilka milionów linii kodu źródłowego poprzez dziesiątki tysięcy plików źródłowych

Visual Paradigm for UML Community Edition 3. 1

Visual Paradigm for UML Community Edition 3. 1

Sprawdzanie składni projektu Sytuacje jakie zostaną wyłapane przez kontrolera składni: § § wielokrotne dziedziczenie

Sprawdzanie składni projektu Sytuacje jakie zostaną wyłapane przez kontrolera składni: § § wielokrotne dziedziczenie klasa realizuje inny interfejs rozszerza klasę A class is set to be final and interface at the same time.

Sprawdzanie składni klasy

Sprawdzanie składni klasy

Automatyczna generacja kodu projektu

Automatyczna generacja kodu projektu

Automatyczna generacja kodu projektu

Automatyczna generacja kodu projektu

Inżynieria wsteczna § Istniej możliwość tworzenia modelu UML z kodu źródłowego, jak również wprowadzając

Inżynieria wsteczna § Istniej możliwość tworzenia modelu UML z kodu źródłowego, jak również wprowadzając zmiany do wcześniej automatycznie generowanego kodu. VPUML – weryfikacja modelu § Dostarcza możliwość sprawdzenia modelu pod kontem zgodności ze specyfikacją składni UML.

Metamill 3. 1 Visual UML CASE Tool Metamill jest narzędziem do wizualnego modelowania oprogramowania.

Metamill 3. 1 Visual UML CASE Tool Metamill jest narzędziem do wizualnego modelowania oprogramowania. Wspiera wszystkie diagramy UML. Posiada opcję automatycznej generacji kodu C++, ANSI C, Java oraz C#. Metamill jest prostym narzędziem dającym możliwość tworzenia projektu systemu, nie daje jednak żadnych możliwości sprawdzania poprawności modelu. Automatyczna generacja kodu, jak i inżynieria wsteczna używa specjalnych znaczników wewnątrz których kod nie jest zmieniany.

Rational. Rose § Sprawdzanie składni: - zapobieganie pętlom w dziedziczeniu - naruszenia dostępu klas

Rational. Rose § Sprawdzanie składni: - zapobieganie pętlom w dziedziczeniu - naruszenia dostępu klas - detekcja rozbieżności pomiędzy klasą, a obiektem - detekcja rozbieżności pomiędzy komunikatami, a operacjami § Automatyczna generacja kodu § Inżynieria wsteczna § Automatyczna generacja IDL oraz DDL

Rational: Weryfikacja modelu Check. Model - sprawdza zgodność modelu wynik zapisany w Log

Rational: Weryfikacja modelu Check. Model - sprawdza zgodność modelu wynik zapisany w Log

Weryfikacja diagramów współdziałania - wskazuje operacje bez dołączonego komunikatu

Weryfikacja diagramów współdziałania - wskazuje operacje bez dołączonego komunikatu

Weryfikacja diagramów współdziałania - wskazuje obiekty bez wyspecyfikowanej klasy

Weryfikacja diagramów współdziałania - wskazuje obiekty bez wyspecyfikowanej klasy

Weryfikacja diagramów klas - wskazuje naruszenia dostępu pomiędzy klasami z różnych pakietów (przy braku

Weryfikacja diagramów klas - wskazuje naruszenia dostępu pomiędzy klasami z różnych pakietów (przy braku relacji importu pomiędzy pakietami)

Rational ma jednak wady. Pozwala na tworzenie modeli niepoprawnych. Np. tworzenie tranzycji ze stanu

Rational ma jednak wady. Pozwala na tworzenie modeli niepoprawnych. Np. tworzenie tranzycji ze stanu początkowego z różnymi stereotypami, lub wyrażeniami. Generacja kodu § § klasy pakietu modułu Komponentu W kodzie wprowadzone znaczniki ograniczające działanie automatu do obszarów poza nimi.

Argo § open source § Java § sprawdza model (to do), krytykuje § generuje

Argo § open source § Java § sprawdza model (to do), krytykuje § generuje kod źródłowy (brak inżynierii wstecznej) Java, C++, Php, C#

Argo § Sprawdza model podając wskazówki co należy jeszcze zrobić zważając na podstawowe zasady

Argo § Sprawdza model podając wskazówki co należy jeszcze zrobić zważając na podstawowe zasady modelowania § Np. dodawanie nazw do nie nazwanych elementów, stanów początkowych, asocjacji, § sugestie klasyfikowane Jednakże: § umożliwia tworzenie błędnych modeli, np. dwa stany początkowe § podpisanie wyrażeniem tranzycji wychodzącej ze stanu początkowego § pętle w dziedziczeniu