Laboratorium narzędzi obiektowych CASE
Prowadzący przedmiot:
dr inż. Michał Śmiałek (http://www.iem.pw.edu.pl/~smialek)
mgr inż. Albert Ambroziewicz <a DOT ambroziewicz AT iem DOT pw DOT edu DOT pl>
- mgr inż. Wiktor Nowakowski
- mgr inż. Tomasz Straszak
Wykład
Materiały teoretyczne dotyczące laboratorium można znaleźć w wykładzie dr. Michała Śmiałka "Analiza i projektowanie obiektowe" na stronie http://www.iem.pw.edu.pl/~smialek/apo/index.htm
Laboratorium
Cel: Podstawowym celem laboratorium jest zapoznanie się z przebiegiem projektów wytwarzania oprogramowania przy wykorzystaniu narzędzi CASE (Computer-Aided Software Engineering) opartych na języku UML.
Goal: The fundamental goal of this lab is to acquire experience in participating in software development projects where UML-based CASE tools are extensively used.
Short description: The laboratory is based on large groups of students (around 12 people). Several such groups (usually 5-6) are formed to constitute “project teams”. These teams divide themselves into smaller sub-teams (architects + designers/programmers). The teams receive an assignment to write a small but complete distributed software system according to a specific requirements specification. The teams divide their systems into components assigned to sub-teams. The development process is controlled by the architecture sub-teams. All the development efforts are centered on the usage of a CASE tool.
Wszyscy w projekcie wykorzystują narzędzie CASE dostępne w laboratoriach. Przez cały czas projektu poszczególne grupy uaktualniają projekt udostępniany on-line na stronie WWW całego zespołu. Projekt jest systematycznie weryfikowany przez prowadzących.
Role projektowe
W trakcie zajęć grupy dziekańskie są podzielone na kilkuosobowe zespoły. W ramach każdego zespołu liczącego około 9 osób, wyróżnione są następujące grupy:
- Grupa architektów (3 osoby)
- Grupy realizacyjne
Grupa 1 (3 osoby)
Grupa 2 (3 osoby)
Laboratorium jest podzielone na dwie zasadnicze części: projektową i implementacyjno-wdrożeniową. W części projektowej każda z grup tworzy projekt przydzielonych przypadków użycia lub w przypadku architektów projekt architektury systemu (komponentów i interfejsów pośredniczących) oraz bazy danych. Druga część laboratorium składa się z implementacji oraz wdrożenia systemu. W drugiej części grupy zajmują się implementacją przypadków użycia, które zostały zaprojektowane przez inną grupę w poprzedniej części. Oznacza to, że grupy nie zajmują się implementacją przypadków użycia zaprojektowanych przez siebie. Do celów wdrożeniowych każdy zespół otrzymuje do dyspozycji własną maszynę wirtualną w technologii VMware. Zadaniem wybranych członków zespołu jest samodzielna instalacja systemu operacyjnego oraz odpowiedniego oprogramowania. Główną osobą kontaktową w sprawie maszyn wirtualnych jest Robert Szmurło (GE229).
Harmonogram
Zajęcia 1 |
Przedstawienie podstawowych zagadnień języka UML. Ćwiczenia w narzędziu CASE. Podział na zespoły i grupy. |
Zajęcia 2 |
Przedstawienie podstawowych zagadnień języka UML. Ćwiczenia w narzędziu CASE. Przydział przypadków użycia do realizacji. |
Zajęcia 3 |
Przedstawienie podstawowych zagadnień języka UML. Ćwiczenia w narzędziu CASE. |
Zajęcia 4 |
Odbiór przez prowadzących scenariuszy przypadków użycia i scenopisów (10pkt), oraz przygotowanej przez architektów pierwszej wersji projektu komponentów systemu (10pkt). Komponenty systemu uwzględniają również dostęp do bazy danych. |
Zajęcia 5 |
Praca zespołowa głównie między architektami i grupami realizacyjnymi w celu uzgodnienia projektu komponentów systemu ze szczególnym nastawieniem na interfejsy i dostęp do danych w bazie danych. |
Zajęcia 6 |
Odbiór przez prowadzących diagramów klas i diagramów sekwencji przygotowanych przez grupy realizacyjne ( 15pkt + 15pkt), odbiór drugiej wersji projektu komponentów systemu, interfejsów przygotowanych przez architektów i projektu bazy danych. (15pkt + 15pkt) Przydzielenie przypadków użycia do implementacji, współpraca między grupami, które zaprojektowały przypadek użycia z grupą która będzie go implementować. Krytycznym elementem dla sukcesu projektu jest jak najszybsze rozpoczęcie implementacji przez architektów komponentów dostępowych do bazy danych. |
Zajęcia 7 |
Architekci prezentują grupom wstępną wersję komponentów dostępowych do bazy danych. W trakcie spotkania ustalane są ewentualne zmiany w projekcie. Zmiany muszą być naniesione przez odpowiednie grupy (architekci lub grupy realizacyjne). |
Zajęcia 8 |
Grupy implementujące oceniają jakość projektu przygotowanego przez grupę, która go zaprojektowała (10pkt). (W dalszej części instrukcji znajdą się podpowiedzi jakimi kryteriami grupy powinny się kierować. Wszystkie grupy realizacyjne oceniają projekt architektów (10pkt). |
Zajęcia 9-12 |
Implementacja przypadków użycia oraz ich sukcesywne wdrażanie. Jeden z architektów zajmuje się konfiguracją środowiska wdrożeniowego (maszyna VMware). |
Zajęcia 13 |
Odbiór testów funkcjonalnych całego systemu przygotowanego przez architektów (15pkt), oraz odbiór implementacji systemu przez grupy realizacyjne (20pkt). Wykonanie przez grupy realizacyjne razem z prowadzącym testów uruchomionego systemu. (10 pkt) |
Zajęcia 14 |
Realizacja poprawek z uwzględnieniem poprawek/zmian w projekcie. |
Zajęcia 15 |
Wykonanie ponowne testów po usunięciu pierwszych usterek (10pkt). Odbiór i weryfikacja zgodności dokumentacji projektowej z zrealizowanym systemem. (10pkt) Wpisy. |
Zadania i Punktacja
W trakcie zajęć do zrealizowania będą następujące zadania, które zostaną odpowiednio rozdzielone przez prowadzących:
Grupy realizacyjne:
- Zadania projektowe:
- Scenariusze przypadków użycia połączone ze scenopisami. (10 pkt)
- Diagramy klas (15pkt)
- Diagramy sekwencji (15pkt)
- Ocena jakości projektu ustalona przy współpracy z prowadzącym przez grupę implementującą (10pkt).
- Zadania implementacyjne i wdrożeniowe:
- Implementacja poszczególnych modułów (20pkt)
- Wykonanie testów oraz ich ocena przez prowadzących (10pkt)
- Wykonanie testów po drugiej iteracji (10pkt)
- Zgodność projektu z implementacją (10pkt)
Architekci:
- Zadania projektowe:
- Projekt komponentów systemu z interfejsami (10pkt (I iteracja) + 15pkt (II iteracja))
- Projekt bazy danych oraz komponentów dostępowych do bazy (15pkt)
- Ocena jakości projektu architektów przez wszystkie grupy realizacyjne (10pkt)
- Zadania implementacyjne i wdrożeniowe:
- Koordynacja projektu, powadzenie spotkań, zapewnienie spójności systemu, dostępność strony WWW. (15pkt)
- Zarządzanie środowiskiem wdrożeniowym: system operacyjny, serwer aplikacji + instalacja bazy danych.
- Projekt graficzny: style, projekt interfejsu użytkownika. Administracja bazy danych (konfiguracja, zarządzanie użytkownikami). (10pkt)
- Przygotowanie dokumentu testów funkcjonalnych. (15pkt)
- Zgodność projektu komponentów, interfejsów i bazy danych z implementacją (10pkt)
Wzory plików i dokumentów
Treść projektu jest dostępna tutaj projekt.eap.
Strony zespołów
Strony zespołów z roku 2009
Zespół FlyEE (środa 8-10): http://www.iem.pw.edu.pl/~kamienop/index.html
Zespół PAWTOKRAPŁM (środa 8-10): http://case.sport.o12.pl/
Zespół A (środa 10-12): http://www.iem.pw.edu.pl/~karwacka/case/web/index.php
Zespół B (środa 10-12): http://caselab2.cba.pl/
Zespół C (czwartek 10-12): http://code.google.com/p/onc
Zespół D (czwartek 16-18): http://www.iem.pw.edu.pl/~zielinsa/
Zespół E (czwartek 16-18): http://case.niziol.pl/
Strony zespołów z roku 2008
Zespół .NET: http://www.iem.pw.edu.pl/~lipinsk/Case (środa 8:30)
Zespół J2EE: http://???
Zespół J2EE: http://p.org.pl/ (Strona prywatna projektu: http://dot.p.org.pl/) (Środa 10:15-12:00)
Zespół J2EE: http://proj-case.wikidot.com/
Strony zespołów z roku 2007
Zespół .NET: http://volt.iem.pw.edu.pl/~karwats/ (środa 8:30)
Zespół .NET: http://www.eefitness.jof.pl/ (poniedziałek 8:30)
Zespół J2EE: http://www.ee.pw.edu.pl/~ilczukm/CASE (poniedziałek 10:15)
Zespół .NET: http://robert.yz.pl (czwartek 10:15)
Zespół J2EE: http://www.caselab.glt.pl/ (czwartek 10:15)
Zespół .NET: http://caselab.jof.pl (czwartek 16:15)
Zespół J2EE: http://www.iem.pw.edu.pl/~andruszm/case.html (czwartek 16:15)
Zespół .NET: http://case.pac.com.pl
Literatura
- Michał Śmiałek - Zrozumieć UML 2.0. Metody modelowania obiektowego, Helion, 2005, ISBN: 83-7361-918-6
- Grady Booch, James Rumbaugh, Ivar Jacobson - UML, przewodnik użytkownika, WNT, Warszawa, 2001
- Joseph Schmuller - UML dla każdego, Helion, Gliwice, 2003, recenzja
Martin Fowler, Kendall Scott - UML w kropelce, LT&P, 2002, recenzja
- Robert J. Muller - Bazy danych. Język UML w modelowaniu danych, Mikom, Warszawa, 2000
- Clemens Szyperski - Oprogramowanie komponentowe. Obiekty to za mało, WNT, Warszawa, 2001
- Cetus Links - obszerny zbiór odnośników n/t obiektów i komponentów
Skala oceny końcowej laboratorium
Próg punktowy |
Ocena |
51 |
3.0 |
61 |
3.5 |
71 |
4.0 |
81 |
4.5 |
91 |
5.0 |