Systemy Czasu Rzeczywistego (2007/2008) - strona z informacjami o przedmiocie.



INFORMACJE WSTĘPNE

- Osoby prowadzące zajęcia: mgr inż. Michał Turek, mgr. inż Paweł Skrzyński.
- Studenci dzielą się we własnym zakresie na cztery +/- równoliczne grupy
- Terminy spotkań organizacyjnych dla dwóch grup (M.Turek) to:
    - wtorek, 16.10.2007, 17:30, laboratorium 330 w budynku H6 (D13)
    - wtorek, 16.10.2007, 19:00, laboratorium 330 w budynku H6 (D13)

PRZEBIEG ZAJĘĆ

- Stałe terminy spotkań to:
    - wtorki, godz 13:00 - 14:30, H6-330/332
    - wtorki, godz 17:30, H6-330/332
- W przypadku wystąpienia konieczności zdefiniowania dodatkowych spotkań w innym terminie - nalezy wysłać maila

- Tematyka zajęć to modelowanie systemów z wykorzystaniem UML.
- Podczas semestru studenci modelują wybrany system, konsultując na zajęciach poszczególne jego etapy (zgodnie z ustalonym harmonogramem)
- Oprogramowaniem wykorzystywanym do projektów jest Telelogic Rhapsody

- Oprócz wtorków istnieje możliwość spotkań w innych dniach tygodnia - po wcześniejszym ustaleniu terminu mailem. Poniżej znajduje się lista terminów, które już zostały dodatkowo przez studentów ustalone. W tych terminach można przychodzić bez uzgodnień mailowych.


ZALICZANIE PROJEKTÓW

- Osoby pragnące uzyskać wyższą ocenę z zaliczenia powinny zakończyć projekt do wtorku 16 stycznia (termin przedłuzony na prośbę studentów).
- 22 stycznia będą miały miejsce wpisy ocen do indeksów.
- Sesja egzaminacyjna rozpoczyna się 25 stycznia.
- UWAGA: W zwiazku z koniecznościa oddania protokołów zaliczeń do dziekanatu dzień 5 lutego 2008 (wtorek) jest ostatecznym terminem dla zaliczenia projektu i uzyskania oceny w normalnym trybie.


POMOCE

- Narzędzia i licencje do ewaluacji narzędzi Telelogic (projekt jest realizowany z uzyciem Telelogic Rhapsody):
    - Telelogic Rhapsody.
    - Telelogic Tau.

- Dokumentacja Telelogic do Rhapsody.
- Prezentacje onLine Rhapsody.

Instalacja pakietu Telelogic Rhapsody:
Pakiet należy zainstalować w wariancie developerskim (pierwsza opcja na liście). Podczas instalacji pakietu należy wybrać języki programowania (i ich dialekty), do których generowany będzie wynikowy kod modelowanego systemu. Cały projekt można rozbudowywwać pod kątem Javy lub C++. W przypadku C++ lepszym wariantem jest wybranie dialektu kompatybilnego z VC 6.0 (więcej przykładów, aplikacje łatwiejsze do wygenerowania).


ETAPY REALIZACJI PROJEKTU

Etap pierwszy:
- Przygotowanie klas, reprezentujących poszczególne komponenty systemu. Do nowo utworzonego pakietu (w poddrzewie "Packages") dodajemy klasy (będą one koncentrowane w poddrzewie "Classes"). W późniejszym etapie do klas będziemy dodawać atrybuty (Attirbutes), operacje (Operations) i maszyny stanów (Statecharts).
- Przygotowanie aktorów (w poddrzewie "Actors") oraz Przypadków użycia (w poddrzewie "Use Cases). Do przypadków użycia na następnym etaie będą przypisywane sekwencje (Sequences).
- Przygotowanie diagramu przypadków użycia (poddrzewo "Use Case Diagrams").
- Przygotowanie projektu kolaboracji pomiędzy aktorami, a planowanymi komponentami systemu (poddrzewo "Collaboration Diagrams").

Etap drugi:
- Stworzenie zestawu operacji i artybutów dla klas (implementacje operacji będą wpisywane w zakładce "Implementation" we właściwościach danej operacji)
- Zdefiniowanie zdarzeń (poddrzewo "Events"), jakie będą przetwarzane przez klasy systemu (zdarzenia przetwarzane przez daną klasę należy następnie przenieść do poddrzewa "Operations" danej klasy).
- Zdefiniowanie interfejsów (poddrzewo Interfaces).
- Budowa wstępnej wersji maszyn stanów (Statechart) dla każdej z klas. W tym celu należy zdefiniować stany (State), diagram stanów (Statechart), oraz nanieść na niego tranzycje. Tranzycja jest aktywowana (co definiujemy w polu Trigger zakładki General jej właściwości) zdarzeniem (z puli Event) lub timerem (funkcja tm(int)). Zdarzenia mogą być powodowane przez instancje innych klas lub moga przychodzić ze środowiska (ENV). Tranzycje można przeprowadzać w kilku kierunkach - zależnie od zdefiniowanego warunku dla tranzycji. Warunek taki zapisujemy z użyciem symbolu "Condition", wprowadzając do niego jedną linię tranzycji, a wyprowadzając dwie. Przy tranzycji wyprowadzonej warunek jej użycia podajemy w polu "Guard" zakładki "General" we właściwościach tranzycji.
- Wygenerowanie sekwencji komunikatów na diagramach sekwencji.

Etap trzeci:
- Generowanie kodu do wybranego języka programowania.
- Integracja wygenerowanego kodu z GUI lub innym interfejsem.