Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas Materiały dla nauczyciela Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego
Spis treści 1. Informacje wstępne...3 1.1. Cel ćwiczenia...3 1.2. Niezbędne wyposaŝenie...3 2. Scenariusz pracy...3 2.1. Demonstracja budowy diagramu klas...3 2.2. Zadanie 1 dzielenie duŝych diagramów klas...8 2.3. Zadanie 2 podział modelu klas na pakiety...8 3. Sugerowana tematyka i wskazówki dydaktyczne...8 4. Zasady zaliczenia...8 5. Literatura...9 2
1. Informacje wstępne 1.1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów ze sposobami tworzenia modelu klas w narzędziu Enterprise Architect, przedstawianiem klas modelu na diagramach oraz grupowaniem klas w pakiety. Przed przystąpieniem do wykonywania ćwiczenia, student powinien posiadać podstawową wiedzę teoretyczną na temat semantyki oraz składni konkretnej poszczególnych elementów diagramu klas, takich jak: klasa, atrybut, operacja, asocjacja, generalizacja, pakiet. 1.2. Niezbędne wyposaŝenie Do przeprowadzenia ćwiczenia niezbędne jest następujące wyposaŝenie sali laboratoryjnej: rzutnik multimedialny z komputerem, stacje robocze dla kaŝdego studenta, oprogramowanie Enterprise Architect zainstalowane na kaŝdej stacji roboczej. 2. Scenariusz pracy 2.1. Demonstracja budowy diagramu klas W tej części zajęć prowadzący demonstruje tworzenie modelu klas. Prowadzący pokazuje róŝne sposoby umieszczania na diagramie poszczególnych elementów: klas, asocjacji, generalizacji, atrybutów oraz operacji. Prowadzący objaśnia jednocześnie semantykę tworzonych elementów modelu. Wszystkie wykonywane czynności naleŝy prezentować na rzutniku. Studenci powinni skupić uwagę na wykonywanych czynnościach i komentarzu prowadzącego. Proponowany scenariusz demonstracji: 1. Uruchomienie EA i utworzenie nowego projektu. W drzewie projektu naleŝy utworzyć odpowiedni widok oraz diagram klas (Rys. 2.1). 3
Rys. 2.1 2. Utworzenie kilku klas modelujących fragment wybranej dziedziny. Podczas tworzenia klas naleŝy omówić właściwości klas, które mogą być ustawiane w oknie tworzenia nowej klasy. NaleŜy zaprezentować róŝna sposoby umieszczania klas w modelu oraz na diagramie. a. Tworzenie klas poprzez przeciągnięcie na diagram odpowiedniego elementu z przybornika (Rys. 2.2). Rys. 2.2 b. Tworzenie klas poprzez uŝycie ikony Create Element w drzewie projektu. Tworząc klasę w ten sposób, naleŝy zaznaczyć opcję Add to Current Diagram w oknie tworzenia nowego elementu, aby umieścić tworzoną klasę na aktualnie otwartym diagramie (Rys. 2.3). 4
Rys. 2.3 3. Utworzenie asocjacji pomiędzy klasami. Oprócz asocjacji zwykłych naleŝy równieŝ utworzyć agregację i/lub kompozycję. Demonstracja powinna uwzględniać róŝne sposoby tworzenia asocjacji (Rys. 2.4). a. Tworzenie asocjacji poprzez wybór odpowiedniego elementu z przybornika. b. Tworzenie asocjacji poprzez wybór klasy będącej źródłem asocjacji i przeciągnięcie symbolu strzałki w kierunku klasy będącej celem asocjacji. Rys. 2.4 4. Utworzenie relacji dziedziczenia. Dla wybranej klasy naleŝy stworzyć klasy dziedziczące (specjalizujące) z niej oraz utworzyć między tymi klasami relację generalizacji/specjalizacji. MoŜna zaprezentować róŝne sposoby tworzenia tego typu relacji. a. Poprzez uŝycie odpowiedniego elementu z przybornika. b. Poprzez przeciągnięcie symbolu strzałki od wybranej klasy na puste miejsce na diagramie oraz wybór odpowiedniej opcji z menu podręcznego (Rys. 2.5). 5
Rys. 2.5 5. Dla utworzonych asocjacji naleŝy zademonstrować sposób ustawiania właściwości asocjacji w oknie właściwości. Demonstracja powinna obejmować najwaŝniejsze elementy, takie jak: ukierunkowanie asocjacji (Direction), role źródła (Source Role) oraz celu (Target Role) asocjacji, krotność asocjacji (Multiplicity) dla źródła i celu asocjacji (Rys. 2.6). Rys. 2.6 6. Dla wybranych klasy lub klas naleŝy zademonstrować sposób tworzenia atrybutów oraz operacji. Przy tworzeniu atrybutów klasy, naleŝy omówić najwaŝniejsze elementy, takie jak: nazwa atrybutu (Name), typ atrybutu (Type) oraz zakres widoczności (Scope) (Rys. 2.7). 6
Rys. 2.7 Przy tworzeniu operacji klasy, naleŝy omówić najwaŝniejsze elementy, takie jak: nazwa operacji (Name), parametry operacji (Parameters), typ zwracany (Return Type), zakres widoczności (Scope) (Rys. 2.8). Rys. 2.8 7
2.2. Zadanie 1 dzielenie duŝych diagramów klas Zadanie to polega na samodzielnym stworzeniu przez studentów modelu klas dla wybranej dziedziny oraz wizualizacja tego modelu na diagramach. Proponowany scenariusz wykonania zadania: 1. Przedstawienie przez prowadzącego tematyki zadania dziedziny, dla której studenci powinni stworzyć model klas. 2. Stworzenie przez studentów modelu z jednym duŝym diagramem zawierającym 7-10 klas oraz powiązania między nimi (asocjacje oraz relacje dziedziczenia). 3. Wyodrębnienie w modelu dziedziny dwóch obszarów tematycznych. 4. Utworzenie dwóch oddzielnych diagramów klas odpowiadających wyodrębnionym obszarom oraz umieszczenie na tych diagramach odpowiednich klas. Wybrane klasy mogą (powinny) być umieszczone na obu diagramach w celu zachowania powiązań między klasami, które są istotne dla zrozumienia danego obszaru tematycznego. Szczegółowy scenariusz wykonania zadania znajduje się w instrukcji dla studentów. 2.3. Zadanie 2 podział modelu klas na pakiety Zadanie to polega na samodzielnej rozbudowie przez studentów modelu stworzonego w poprzednim zadaniu. Proponowany scenariusz wykonania zadania: 1. Utworzenie w drzewie projektu pakietów odpowiadających wydzielonym obszarom tematycznym modelu. 2. Przeniesienie w drzewie projektu odpowiednich diagramów oraz klas dla kaŝdego z obszarów tematycznych do odpowiedniego pakietu. 3. Uwidocznienie przestrzeni nazw w ikonach klas na diagramach oraz przenoszenie klas między pakietami w celu obserwacji zmiany przestrzeni nazw. Szczegółowy scenariusz wykonania zadania znajduje się w instrukcji dla studentów. 3. Sugerowana tematyka i wskazówki dydaktyczne Dziedzina zaproponowana przez prowadzącego, dla której będzie tworzony model klas, powinna być znana studentom z doświadczenia bądź zrozumiała w sposób intuicyjny tak, aby mogli oni poświęcić uwagę na tworzenie poprawnych konstrukcji w języku UML zamiast na analizę danego zagadnienia. Przykładami takich obszarów dziedzinowych mogą być np.: uczelnia, biblioteka, bank, sklep internetowy, itp. 4. Zasady zaliczenia Warunkiem zaliczenia jest dostarczenie przez studenta pliku w formacie EAP zawierającego modele stworzone podczas zajęć. Zaliczenie ćwiczenia polega na sprawdzeniu poprawności wykonania zadań przez studenta. W szczególności naleŝy zwrócić uwagę na zgodność diagramów ze składnią języka UML oraz zastosowanie wszystkich wymaganych elementów i konstrukcji języka. Stopień odzwierciedlenia w modelu zadanej dziedziny rzeczywistej nie powinno znacząco wpływać na ocenę. Dodatkowo naleŝy sprawdzić poprawność wykorzystania narzędzia EA. Za poprawne wykonanie ćwiczenia student moŝe otrzymać 2 punkty. 8
5. Literatura 1. OMG Unified Modeling Language, Superstructure, version 2.2, formal/2009-02-02 (http://www.omg.org/spec/uml/2.2/superstructure) 2. Martin Fowler: UML w kropelce, wersja 2.0, LTP Oficyna Wydawnicza, 2005 3. Michał Smiałek: Zrozumieć UML 2.0. Metody modelowania obiektowego, Wydawnictwo Helion, 2005 4. Grady Booch, James Rumbaugh, Ivar Jacobson: UML przewodnik uŝytkownika, wydanie drugie, WNT, 2005 5. Enterprise Architect User Guide (http://www.sparxsystems.com/bin/eauserguide.pdf) 9