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



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

Język Java część 2 (przykładowa aplikacja)

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Podstawy programowania III WYKŁAD 4

TECHNOLOGIE OBIEKTOWE. Wykład 3

Język Java część 2 (przykładowa aplikacja)

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

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

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

UML w Visual Studio. Michał Ciećwierz

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Michał Adamczyk. Język UML

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Język UML w modelowaniu systemów informatycznych

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Rysunek 1: Przykłady graficznej prezentacji klas.

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

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

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

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

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Praca w środowisku Visual Studio 2008, Visual C

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Język UML w modelowaniu systemów informatycznych

Podstawy inżynierii oprogramowania

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

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

Programowanie Obiektowe GUI

Spis treści. Część I Diagramy języka UML Wstęp 7. Rozdział 1. Studia przypadków 13. Rozdział 2. Diagramy przypadków użycia 29

Modelowanie obiektowe - Ćw. 1.

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

UML a kod. C++, Java i C#

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

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

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

MentorGraphics ModelSim

Podstawy Programowania 2

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Zaawansowane aplikacje internetowe

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

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

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

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

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

Projektowanie baz danych za pomocą narzędzi CASE

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

Aplikacje w środowisku Java

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Programowanie obiektowe

Diagramy czynności Na podstawie UML 2.0 Tutorial

Instrukcja laboratoryjna cz.3

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych

Wstęp do programowania 2

Programowanie obiektowe

Programowanie obiektowe - 1.

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Podstawy projektowania systemów komputerowych

Wstęp do programowania obiektowego. Wykład 2

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Aplikacje w środowisku Java

Programowanie obiektowe

Aplikacje internetowe i rozproszone - laboratorium

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

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Programowanie obiektowe

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Przykład 1 Iteracja 1 tworzenia oprogramowania

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

Podstawowe części projektu w Javie

Projekt INP Instrukcja 1. Autor Dr inż. Zofia Kruczkiewicz

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

Pobieranie edytora CodeLite

Zad. 5: Sterowanie robotem mobilnym

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Java jako język programowania

Diagramy klas. dr Jarosław Skaruz

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Backend Administratora

Unified Modeling Language

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Podstawy języka UML2 w realnych projektach

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

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Wykład 8: klasy cz. 4

Zaawansowane aplikacje internetowe - laboratorium

Modelowanie i analiza systemów informatycznych

Podstawy Programowania Obiektowego

Transkrypt:

AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński

Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)... 3 4 Diagramy stanów (Statecharts)... 5 5 Implementacja... 6 6 Konfiguracja... 7 6.1 Wybór klas do inicjalizacji... 8 6.2 Dodawanie zewnętrznych bibliotek... 9 7 Uruchomienie... 9 7.1 Animowane diagramy stanów... 10 7.2 Animowane diagramy sekwencji... 10 8 Bibliografia... 11 9 Spis ilustracji... 11 1 Wstęp Tutorial ten ma na celu pokazanie sposobu tworzenia projektu Elavator w systemie Rhapsody w oparciu o język Java. Przy tworzeniu tuto riala wykorzystania została wersja 7.1.1.0. Projekt Elevator ma na celu zamodelowanie działania systemu sterowania dwoma windami w biurowcu. Modelowany system powinien działać w taki sposób, aby użytkownik mógł dojechać na jedno z wybranych pięter biurowca. Czas oczekiwania i przejazdu powinien być jak najkrótszy. Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. Należy uruchomić aplikację Rhapsody in J i stworzyć nowy projekt (File > New) podając jego nazwę (Elevator). 2 Przypadki użycia (Use Case) Pierwszym etapem projektu jest stworzenie diagramów przypadków użycia. Przypadki użycia reprezentują wymagania funkcjonalna stawiane systemowi oraz aktorów wchodzących w interakcje z systemem. Aby utworzyć diagram przypadków użycia należy: W drzewku projektu wybrać Add New > Use Case Diagram Następnie dodać aktorów wchodzących w interakcje z systemem oraz przypadki użycia Poniżej znajduje się rysunek (Rysunek 1) reprezentujący stworzony diagram. 2

Rysunek 1 Diagram przypadków użycia. 3 Diagramy modelu (Object Model Diagram) Diagram modelu (OMD) jest logicznym widokiem przedstawiającym statyczną strukturę klas i instancji w systemach obiektowych oraz relacje między nimi. Jest to kolejny etap tworzenie projektu po zdefiniowaniu przypadków użycia, gdy już znamy wymania funkcjonalne. Aby dodać diagram modelu należy: W drzewku projektu wybrać Add New > Object Model Diagram Dodanie diagramów Modelu (Rysunek 2, Rysunek 3) Aby dodać nowy element do diagramu (klasa, interfejs, pakiet, ) należy wybrać odpowiednia ikonkę na pasku (standardowa notacji UML). Dodanie nowego elementu do diagramu powoduje automatyczne dodanie do węzła pakietów (Packages). 3

Rysunek 2 Diagram modelu (OMD). Rysunek 3 Diagram modelu dotyczący GUI. 4

4 Diagramy stanów (Statecharts) Diagram stanów definiuje zachowanie poszczególnych klas systemu. Dodanie klas następuje na etapie modelowania poprzez dodanie ich do diagramów modelu. Diagramy stanów (automaty stanowe) składają się z następujących elementów: Stany każdy stan opisany jest nazwą oraz zawiera kod na wejściu (actions on entry) and i wyjściu (actions on exit) ze stanu. Dodatkowo stan składa się z reakcji, które są podobne do przejść tylko bez zmiany stanu. Przejścia przejścia umożliwiają przejścia z jednego stanu do drugiego podczas działania systemu. Każde przejście ma: o Trigger o Strażnika (opcjonalnie) o Kod do wykonania (opcjonalnie) Kiedy stan otrzymuje zdarzenie równe typowi triggera następuje przejście (gdy wyspecyfikowany jest strażnik musi on zezwolić na przejście zwrócenie wartości logicznej true). Domyślny connector oznacza stan początkowy dla danego diagramu. Poniżej znajduje się diagram stanów (Rysunek 4) dla klasy Elevator reprezentującej windę. Rysunek 4 Diagram stanów dla klasy Elevator. Diagram stanów może składać się z kilku maszyn stanowych. Realizuję się to przez dodanie przerwanej linii oznaczającej granice maszyn stanowych. W powyższym diagramie (Rysunek 4) występują dwie maszyny stanowe. 5

Sub-Statechart każdy ze stanów może mieć dodatkowo zagnieżdżony diagram stanów. Oznaczone jest to specjalnym znaczkiem na obiekcie reprezentującym stan. Dla diagramu (Rysunek 4) występują dwa poddiagramy stanów (Rysunek 5, Rysunek 6). Rysunek 5 Poddiagram dla stanu stop. Rysunek 6 Poddiagram dla stanu running. 5 Implementacja Etap tworzenia diagramów stanów przeplata się z implementacją akcji na wejściu, wyjściu do stanów, kodu strażników itd. Implementacja zależna jest od wybranego języka programowania (w naszym przypadku jest to Java). Poniżej znajduje się okienko dialogowe z kodem (Rysunek 7), jaki zostanie wykonany w momencie wejścia do stanu running dla klasy Elevator. Implementacje jest analogiczna do implementacji jednej 6

z metod klasy analizowanego diagramu stanów, stąd też mamy dostęp do jej wszystkich pól oraz metod (zarówno prywatnych jak i publicznych). Należy zwrócić uwagę, podczas implementacji kodu związanego z przejściami. W przypadku języku Java kod ten jest częścią klasy wewnętrznej Reactive, stąd też dostęp do zewnętrznej można uzyskać przez wyspecyfikowanie jej nazwy wraz z referencją this (e.g. Elevator.this). Rysunek 7 Okienko dialogowe z kodem na wejście do stanu running dla klasy Elevator. 6 Konfiguracja Po zakończeniu procesu konstrukcji diagramów stanów oraz implementacji pora na sprawdzenie wyników działania. Aby uruchomić projekt w środowisku Rhapsody należy stworzyć nowy komponent (Add New > Component).. Komponent pełni rolę inicjalizatora środowiska uruchomieniowego oraz kreatora instancji wybranych klas. 7

6.1 Wybór klas do inicjalizacji Rysunek 8 Wybór klas, których instancje zostaną utworzone. Powyższa formatka przedstawia sposób, w jaki dokonuje się wyboru klas, których instancje zostaną utworzone przez komponent inicjalizujący. W naszym przypadku tworzona jest jedna instancja obiektu MainFrame, który tworzy pozostałe zależne obiekty wykorzystywane przez system. 8

6.2 Dodawanie zewnętrznych bibliotek Rysunek 9 Formatka pokazująca sposób dodawania bibliotek zewnętrznych. Dodanie bibliotek (kodu) zewnętrznych sprowadza się do poprawnego ustawienia zmiennej CLASSPATH za pośrednictwem formatki pokazanej powyżej. Do wartości tej są następnie doklejane biblioteki wymagane przez system Rhapsody. W naszym przypadku zmienna CLASSPATH ma wartość lib\tablelayout.jar,lib\looks-2.1.4.jar, są to następujące biblioteki: TableLayout.jar Layout manager looks-2.1.4.jar Looks and Feel 7 Uruchomienie W tym momencie jesteśmy już gotowi sprawdzić poprawność naszej implementacji oraz konfiguracji. Proces uruchomienia składa się z: Kompilacji (Make) Uruchomienia (Run) 9

Można też wykonać te czynności razem (Generate/Make/Run). 7.1 Animowane diagramy stanów Rysunek 10 Animowany diagram stanów. Animowany diagram stanów pokazuje, w jakim stanie znajduje się dana instancja wybranej klasy. Aktualny stan obiektu wyszczególniony jest kolorem różowym. Animowany diagram stanów tworzy się na podstawie istniejących już diagramów stanów. 7.2 Animowane diagramy sekwencji Animowany diagram sekwencji służy do pokazania jak komunikują się ze sobą konkretne instancje systemu. Aby utworzyć taki diagram należy: Utworzyć Tools > Animated Sequence Diagram Wygenerować zdarzenie za pośrednictwem generatora zdarzeń Poniżej znajduje się przykładowy diagram wraz z sekwencją wykonanych operacji. 10

Rysunek 11 Animowany diagram sekwencji. 8 Bibliografia [1] Rhapsody User Guide (PDF) [2] Rhapsody Getting Started Guide (PDF) [3] Java Tutorial for Rhapsody (PDF) 9 Spis ilustracji Rysunek 1 Diagram przypadków użycia.... 3 Rysunek 2 Diagram modelu (OMD).... 4 Rysunek 3 Diagram modelu dotyczący GUI.... 4 Rysunek 4 Diagram stanów dla klasy Elevator.... 5 Rysunek 5 Poddiagram dla stanu stop.... 6 Rysunek 6 Poddiagram dla stanu running.... 6 Rysunek 7 Okienko dialogowe z kodem na wejście do stanu running dla klasy Elevator.... 7 Rysunek 8 Wybór klas, których instancje zostaną utworzone.... 8 Rysunek 9 Formatka pokazująca sposób dodawania bibliotek zewnętrznych.... 9 Rysunek 10 Animowany diagram stanów.... 10 Rysunek 11 Animowany diagram sekwencji.... 11 11