Wytwarzanie oprogramowania sterowane modelami
Aktualizacja dla semestru 2011L
Wykład (sem. 1)
Prowadzący: Michał Śmiałek
Cel i treść przedmiotu
Celem przedmiotu jest nauczenie właściwej organizacji procesu inżynierii oprogramowania przy pomocy modeli. Dla zrozumienia treści przedmiotu konieczna jest jedynie elementarna wiedza na temat modelowania w języku UML oraz podstawy inżynierii oprogramowania. W ramach wykładu przedstawione są dwa podstawowe obszary wytwarzania oprogramowania sterowanego modelami: definiowanie języków modelowania oraz transformacje modeli. Studenci otrzymują wiedzę z zakresu definiowania składni abstrakcyjnej języków modelowania przy pomocy meta-modeli w języku MOF (opartym na języku UML). Dowiadują się również, w jaki sposób definiować składnię konkretną (widoczną dla użytkownika) oraz semantykę języka. W drugiej części wykładu, przedstawiane są podstawowe zasady pisania i wykonywania transformacji modeli w języku MOLA. Przedstawiane są odpowiednie konstrukcje języka służące do określania meta-modeli oraz wzorców, reguł i algorytmów przekształcania modeli. Jako rezultat nauczania, studenci powinni uzyskać wiedzę, w jaki sposób zwiększyć efektywność procesu wytwarzania oprogramowania przy pomocy zasad modelowania oprogramowania.
Zasady zaliczenia
- Zaliczenie przedmiotu odbywa się poprzez wykonywanie ćwiczeń wykładowych oraz sprawdzian końcowy.
- Ćwiczenia wykonywane są indywidualnie lub w grupach dwuosobowych.
- Za każde ćwiczenie można dostać 6 pkt., w sumie – 72 pkt.
- Za sprawdzian końcowy można dostać 28 pkt. Sprawdzian należy zaliczyć na co najmniej 15 punktów.
- Ocena końcowa jest wyliczana na podstawie sumy punktów za ćwiczenia i sprawdzian końcowy: 0-50 pkt. – 2,0; 51-60 pkt. – 3,0; i kolejne oceny co 10 punktów.
- Osoby, które nie wykonywały ćwiczeń podczas wykładów mogą przystąpić do rozszerzonego sprawdzianu końcowego, za który można otrzymać 100 pkt. Decyzja o przystąpieniu do sprawdzianu standardowego (za 28 pkt.) lub rozszerzonego (za 100 pkt.) należy do studenta.
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 wykładu
Wykład 1 |
Wprowadzenie do wytwarzania oprogramowania sterowanego modelami (MDSD). Co to jest model? Modele w świecie i w wytwarzaniu oprogramowania. Poziomy abstrakcji modeli i ich przekształcanie. Standardowe i niestandardowe języki modelowania. Co to jest meta-model? Definiowanie języków modelowania. |
Wykład 2 |
Infrastruktura dla definiowania języków modelowania. Infrastruktura dla tworzenia meta-modeli. Czterowarstwowy model dla meta-modelowania. Języki meta-modelowania. Co to jest profil? |
Wykład 3 |
Podstawy tworzenia meta-modeli. Definiowanie składni abstrakcyjnej. Definiowanie składni konkretnej. Definiowanie semantyki. Przykład definiowania meta-modelu. |
Wykład 4 |
Meta-model języka UML (1). Podstawowe konstrukcje języka MOF. Meta-model dla modeli przypadków użycia. UWAGA: Tu można pobrać specyfikację języka UML (2.1.1). |
Wykład 5 |
Meta-model języka UML (2). Podstawowe pakiety meta-modelu języka UML. Wprowadzenie do hierarchii meta-klas. Meta-model dla modeli czynności. |
Wykład 6 |
Meta-model języka RSL. Podstawowa struktura meta-modelu. Meta-model dla przypadków użycia i scenariuszy. UWAGA: Tu można pobrać specyfikację języka RSL. |
Wykład 7 |
Podstawy transformacji modeli. Podstawowe sposoby definiowania transformacji. Zależność algorytmów transformacji od meta-modeli języków źródłowego i docelowego. Różne rodzaje transformacji. Przegląd języków transformacji modeli. |
Wykład 8 |
Wprowadzenie do języka MOLA. Przykład elementarnej transformacji. Transformacja a metamodele języka źródłowego i docelowego. Reguły, wzorce, pętle, akcje. UWAGA: Tu można pobrać krótkie wprowadzenie do języka MOLA |
Wykład 9 |
Zaawansowane konstrukcje języka MOLA (1). Podsumowanie instrukcji języka MOLA. Pętle zagnieżdżone, procedury. Zmienne i przetwarzanie tekstu. Przykład transformacji z użyciem pętli zagnieżdżonych i procedur. |
Wykład 10 |
Zaawansowane konstrukcje języka MOLA (2). Przykład transformacji modelu maszyny stanów. Usuwanie elementów modelu. Przykład transformacji z użyciem rekurencji. |
Wykład 11 |
Ćwiczenia z metamodelowania i transformacji (1). Konstrukcja języków modelowania. Konstrukcja transformacji. |
Wykład 12 |
Ćwiczenia z metamodelowania i transformacji (2). Czytanie transformacji. Pisanie procedur w języku MOLA. |
Wykład 13 |
Od wymagań do kodu w jeden dzień? Technologie dla "fabryk oprogramowania". Automatyczne przekształcanie wymagań. Repozytoria przypadków oprogramowania. Ewolucja oprogramowania sterowana wymaganiami. |
Wykłady 14 i 15 |
Podsumowanie i przygotowanie do sprawdzianu. |