Wytwarzanie oprogramowania sterowane modelami - laboratorium
Aktualizacja dla semestru 2011L
Laboratorium (sem. 2)
Prowadzący: Michał Śmiałek, Wiktor Nowakowski
Cel przedmiotu
Celem przedmiotu jest poznanie praktyki w zakresie organizacji procesu inżynierii oprogramowania przy pomocy modeli. W ramach ćwiczeń laboratoryjnych, studenci poznają praktyczne aspekty tworzenia oraz wykorzystania narzędzi do edycji i transformacji modeli. Uzyskują również wiedzę z zakresu cyklu wytwarzania oprogramowania sterowanego modelami - od wymagań do kodu. Jako rezultat nauczania, studenci uzyskują praktykę w zakresie narzędzi i metod modelowania oprogramowania, przy pomocy których można zwiększyć efektywność procesu wytwarzania oprogramowania.
Zasady zaliczenia
- Zaliczenie przedmiotu odbywa się poprzez wykonywanie ćwiczeń laboratoryjnych.
- Ćwiczenia wykonywane są indywidualnie lub w grupach.
- Za każde ćwiczenie można dostać od 3 do 13 pkt., w sumie – 100 pkt.
- Ocena końcowa jest wyliczana na podstawie sumy punktów za ćwiczenia: 0-50 pkt. – 2,0; 51-60 pkt. – 3,0; i kolejne oceny co 10 punktów.
Literatura
- Stephen J. Mellor, Kendall Scott, Avel Uhl, Dirk Weise - MDA Distilled. Principles of Model-Driven Architecture, Addison-Wesley, 2004
- Object Management Group - Unified Modeling Language (UML) Superstructure, v. 2.1.1, OMG, 2007 (patrz wykład 4)
- Hermann Kaindl, Michał Śmiałek et al. - Requirements Specification Language Definition, D2.4.2, ReDSeeDS, 2009 (patrz wykład 6)
- Tutorial języka MOLA (patrz wykład 8))
- Michał Śmiałek - Zrozumieć UML 2.0. Metody modelowania obiektowego, Helion, 2005
Plan ćwiczeń
Uwaga: w celu skorzystania z narzędzi podczas laboratorium, należy je skonfigurować zgodnie z instrukcją zawartą w załączniku.
|
CZĘŚĆ I - WPROWADZENIE DO NARZĘDZI, TWORZENIE TRANSFORMACJI |
|
|
Ćwiczenia w tej części wykonywane są indywidualnie |
|
Ćwiczenie 1 |
Wprowadzenie do narzędzi ReDSeeDS i METAclipse (3 pkt.) 1. Demonstracja: Narzędzie METAclipse. Meta-model języka UML w narzędziu METAclipse. Przypomnienie podstawowych konstrukcji języka MOLA. Nawigacja w narzędziu. Tworzenie pakietów i procedur. Kompilacja transformacji. Wykonywanie transformacji w narzędziu ReDSeeDS. Wprowadzanie modeli źródłowych i przeglądanie wyników transformacji w narzędziu ReDSeeDS. 2. Zadanie: Wprowadzenie, skompilowanie i uruchomienie prostej transformacji UML->UML. |
|
Ćwiczenie 2 |
Zdefiniowanie transformacji UML->UML (1) (8 pkt.) 1. Przygotowanie do zajęć: Zapoznać się z meta-modelem języka UML w zakresie klas, pakietów i komponentów (zawartym w narzędziu METAclipse). Powtórzyć konstrukcje języka MOLA oraz zasady tworzenia programów w języku MOLA. 2. Kolokwium: napisanie elementarnej transformacji w języku MOLA. Zaliczenie kolokwium warunkuje udział w następnych zajęciach. 3. Zadanie: Zdefiniowanie bardziej złożonej transformacji modelu zapisanego w języku UML w inny model zapisany w języku UML. Model źródłowy powinien się znaleźć w części "Architecture" narzędzia ReDSeeDS. Model docelowy powinien być umieszczony w części "Detailed Design". Efektem powinna być napisana i wstępnie uruchomiona transformacja. WAŻNE: wyniki powinny być zapisane na pen-drive w celu wykorzystania na następnych zajęciach. |
|
Ćwiczenie 3 |
Zdefiniowanie transformacji UML->UML (2) (8 pkt.) 1. Przygotowanie do zajęć: Powtórzyć zasady tworzenia i wywoływania procedur w języku MOLA. 2. Zadanie: Modyfikacja transformacji z Zajęć 2 poprzez dodanie odpowiednich procedur zgodnie z treścią zadania. |
|
Ćwiczenie 4 |
Wprowadzenie do edytorów języka RSL (ReDSeeDS, EA) (4 pkt.) 1. Przygotowanie do zajęć: Przypomnieć sobie składnię języka RSL. 2. Demonstracja: Omówienie edytora języka RSL w narzędziu ReDseeDS. Omówienie edytora języka RSL w narzędziu EA. Tworzenie scenariuszy i pojęć. Podział pojęć - dziedzinowe i UI. Umieszczanie pojęć w odpowiednich pakietach. 3. Zadanie: Zdefiniowanie prostego modelu wymagań dla zadanego systemu (kilka przypadków użycia, scenariusze, słownik). WAŻNE: wyniki powinny być zapisane na pen-drive w celu wykorzystania na następnych zajęciach. |
|
Ćwiczenie 5 |
Wprowadzenie do generacji RSL->UML->kod (7 pkt.) 1. Przygotowanie: Przypomnieć sobie wykonywanie transformacji w narzędziu ReDSeeDS. Powtórzyć składnię języka RSL. 2. Kolokwium: Napisanie scenariuszy przypadku użycia zgodnych ze składnią języka RSL. 3. Demonstracja: Omówienie docelowej architektury systemu. Omówienie reguł transformacji z języka RSL w język UML. Prezentacja modelu w języku UML wygenerowanego na podstawie modelu w języku RSL. Generacja kodu w narzędziu EA. Prezentacja zaimplementowanego prostego systemu oraz pokazanie zależności między kodem a zdaniami scenariusza. 4. Zadanie: Wykonanie transformacji na podstawie modelu z ćwiczenia 4. Dokonanie analizy modelu i kodu utworzonego po transformacji w narzędziu EA. |
|
|
CZĘŚĆ II - TWORZENIE WŁASNYCH SYSTEMÓW |
|
|
Ćwiczenia w tej części wykonywane są w grupach 2-osobowych. |
|
Ćwiczenie 6 |
Tworzenie specyfikacji w języku RSL w narzędziu EA (6 pkt.) 1. Przygotowanie do zajęć: Przypomnieć sobie tworzenie specyfikacji wymagań w EA. 2. Zadanie: Wykonanie modelu zawierającego przypadki użycia, scenariusze i pojęcia w języku RSL. Model będzie dotyczył zadanej tematyki i zakresu funkcjonalnego. Ocena będzie zależeć od liczby poprawnie sformułowanych scenariuszy i zdań w języku RSL. |
|
Ćwiczenie 7 |
Tworzenie projektu systemu w języku UML (9 pkt.) 1. Przygotowanie do zajęć: Przypomnieć sobie reguły transformacji RSL->UML. 2. Zadanie: Stworzenie w narzędziu EA modelu projektowego systemu na podstawie specyfikacji wymagań. Model powinien zawierać 3 warstwy (prezentacja, logika aplikacji, logika dziedziny). Należy zapewnić istnienie wszystkich niezbędnych klas, atrybutów, operacji i parametrów. |
|
Ćwiczenie 8 |
Generacja kodu i implementacja systemu (1) (13 pkt.) 1. Zadanie: Wygenerowanie w narzędziu EA kodu w języku Java. Uzupełnienie kodu w celu uzyskania zgodności ze scenariuszami; dodanie instrukcji kontrolnych (wyświetlanie komunikatów kontrolnych na standardowe wyjście). |
|
Ćwiczenie 9 |
Tworzenie specyfikacji w języku RSL w narzędziu ReDSeeDS (6 pkt.) 1. Przygotowanie: Przypomnieć sobie tworzenie specyfikacji w języku RSL w narzędziu ReDSeeDS. 2. Zadanie: Wykonanie modelu zawierającego przypadki użycia, scenariusze i pojęcia w języku RSL. Model będzie dotyczył zadanej tematyki i zakresu funkcjonalnego. |
|
Ćwiczenie 10 |
Generowanie projektu systemu w języku UML w narzedziu ReDSeeDS (9 pkt.) 1. Przygotowanie: Przypomnieć sobie reguły transformacji z języka RSL w język UML. 2. Zadanie: Wygenerowanie w narzędziu ReDSeeDS modelu projektowego systemu. Model powinien zawierać 3 warstwy (prezentacja, logika aplikacji, logika dziedziny). Należy zapewnić istnienie wszystkich niezbędnych klas, atrybutów, operacji i parametrów. |
|
Ćwiczenie 11 |
Generacja kodu i implementacja systemu (2) (12 pkt.) 1. Zadanie: Wygenerowanie w narzędziu EA kodu w języku Java. Uzupełnienie kodu w celu uzyskania zgodności ze scenariuszami; dodanie instrukcji kontrolnych (wyświetlanie komunikatów kontrolnych na standardowe wyjście). |
|
|
CZĘŚĆ III - WZORCE LOGIKI APLIKACJI |
|
|
Ćwiczenia w tej części wykonywane są indywidualnie w podziale na dwie grupy (zaj. 13 i 14). |
|
Ćwiczenie 12 |
Wprowadzenie do WLA (3 pkt.) 1. Demonstracja: Przedstawienie koncepcji WLA - główne założenia i cele, kluczowe elementy rozszerzenia języka RSL. Prezentacja biblioteki WLA i poszczególnych wzorców. Prezentacja plug-inu WLA do narzędzia ReDSeeDS. Prezentacja prostego przykładu stosowania WLA. 2. Zadanie: Wykonanie scenariusza przypadku uzycia z zastosowaniem prostego WLA. 3. Demonstracja: Przedstawienie założeń zadania dla zajęć 13 i 14 oraz sposobu jego przeprowadzenia. Prezentacja założeń dwóch systemów (wizja dziedzin zastosowań). |
|
Ćwiczenie 13 |
Tworzenie specyfikacji przy pomocy WLA (1) (6 pkt.) 1. Zadanie: (praca indywidualna, studenci podzieleni na dwie grupy) Grupa A modeluje system "1" w języku RSL. Grupa B modeluje system "2" w języku RSL z zastosowaniem biblioteki WLA. Obydwie grupy używają narzędzia ReDSeeDS (bez lub z wykorzystaniem plug-inu WLA). |
|
Ćwiczenie 14 |
Tworzenie specyfikacji przy pomocy WLA (2) (6 pkt.) 1. Zadanie: (praca indywidualna, studenci podzieleni na dwie grupy) Grupa B modeluje system "1" w języku RSL. Grupa A modeluje system "2" w jezyku RSL z zastosowaniem biblioteki WLA. Obydwie grupy używają narzędzia ReDSeeDS (bez lub z wykorzystaniem plug-inu WLA). |
|
Ćwiczenie 15 |
Podsumowanie 1. Omówienie wniosków z zajęć 12-14. 2. Omówienie wyników całego laboratorium. |
|