Techniki modelowania programowania 1 Modelowanie odwrotne
Transkrypt
Techniki modelowania programowania 1 Modelowanie odwrotne
Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Techniki modelowania programowania Laboratorium Modelowanie proste i odwrotne. 1 Modelowanie odwrotne (ang. reverse engineering) w środowisku Model Maker 1. Z katalogu instalacyjnego Delphi w podkatalogu ./Demos wybrać i skopiować do katalogu roboczego użytkownika jeden z projektów demonstracyjnych. Uruchomić środowisko Delphi i otworzyć wszystkie pliki skopiowanego projektu. Następnie uruchomić Model Maker-a: (a) rozpoznać rozkład i znaczenie okienek roboczych Model Makera (Okna widoku, składników klas oraz edytorów), (b) zaimportować wszystkie pliki z kodem projektu demo (*.pas). Najszybciej jest zastosować metodę ’przeciągnij i upuść’ do okna Widoku plików (Unit view) lub wykorzystać jedną z ikon menu. Zwrócić uwagę na sposób w jaki ModelMaker dokonał modelowania odwrotnego, w szczególności zaobserwować hierarchiczną strukturę klas, sposób wyświetlania składników klas oraz jak reprezentowany jest kod poszczególnych funkcji oraz kod zawarty w plikach (zakładki Implementation oraz Unit code). (c) dokonać wizualizacji zaimportowanych klas. W tym celu w zakładce edytora Diagrams utworzyć nowy diagram klas i przeciągnąć do niego po kolei wszystkie klasy z drzewa hierarchii klas. Zauważyć pojawiające się na diagramie relacje dziedziczenia. We właściwościach edytora diagramów sprawdzić sposób wyświetlania w zależności od załączonych filtrów własności klas. (d) spróbować zmian relacji w diagramie i zaobserwować ich wpływ na resztę modelu. Przywrócić zmiany. (e) rozpoznać podstawowe ikonki elementów diagramu i ich znaczenie, wprowadzić do diagramu różne komentarze i notki z opisem zaimportowanych klas, (f) utworzyć w diagramie nową klasę, tak aby dziedziczyła po którejś z istniejących i wyposażyć ją w dowolną wymyśloną własność (ikona add property), (g) przyjrzeć się w jaki sposób środowiska Delphi i ModelMaker są ze sobą zintegrowane oraz jak mogą sobą nawzajem sterować. Następnie wygenerować z modelu kod projektu oraz zaobserwować w środowisku Delphi charakter wszelkich zmian. (h) wygenerować automatyczną dokumentację do modelu. 2 Zadania 1. Rozważyć klasę podstawową Figura oraz klasy pochodne: Punkt, Kwadrat, Okrąg, Trójkąt, Prostokąt, Elipsa, Wielokąt, tak aby odzwierciedlały poniższy graf: - Prostokąt Kwadrat * - Punkt - Elipsa Figura XXX Okrąg HH XX XXX H j H z Wielokąt Trójkąt X Klasę Figura wyposażyć w dwie zmienne typu Integer do przechowywania współrzędnych środka figury, a wszystkie pozostałe klasy w pola niezbędne do jednoznacznego narysowania figury w danym układzie współrzędnych. Ponadto przewidzieć dla każdej z klas prototyp funkcji wyświetlającej figurę o nazwie rysuj(). 1 • W środowisku ModelMaker: – zbudować diagram klas (dodać niezbędne komentarze oraz notatki!), – wprowadzić wszystkie niezbędne zmienne i deklaracje funkcji (jw.), – wygenerować kod do pliku, • W środowisku Delphi: – utworzyć nowy projekt aplikacji i dołączyć do niego plik kodu z ModelMaker-a, – w oparciu o podstawowe procedury rysujące klasy TCanvas zaimplementować w możliwie najprostszy sposób ciała funkcji rysuj() dla wszystkich klas (rysowanie ma odbywać się na formularzu głównym), • Następnie: – odświeżyć model w ModelMaker-ze, tak aby uwzględniał wszystkie elementy aplikacji, – odświeżyć diagramy i uzupełnić opisy elementów modelu, – wygenerować dokumentację na najwyższym poziomie szczegółowości. 2. Poniżej został przedstawiony szkicowy i niepełny opis gry w hokeja: Drużyna hokejowa składa się ze środkowego, bramkarza, dwóch skrzydłowych i dwóch obrońców. Każdy zawodnik ma kij hokejowy służący do przesuwania krążka po lodzie. Celem jest trafienie krążkiem do bramki przeciwnika. Mecze są rozgrywane na boisku o wymiarach 30 m szerokości i 61 m długości. Zadaniem środkowego jest podawanie krążka do skrzydłowych, którymi zwykle są najlepsi w drużynie strzelcy. Obrońcy starają się nie dopuścić zawodników przeciwnej drużyny do zajęcia pozycji umożliwiającej strzał. Bramkarz jest ostatnią linią obrony, ostatnią zaporą dla krążka lecącego do bramki. Za każdym razem, gdy nie wpuści krążka do bramki, uznaje mu się jedną „obronę”. Każdy gol to jeden punkt. Gra trwa 60 minut i jest podzielona na trzy dwudziestominutowe tercje. Na podstawie tych informacji stworzyć diagram klas i wzajemnych powiązań odzwierciedlający strukturę gry w hokeja. Wyposażyć klasy w niezbędne składniki. Opisać i skomentować model. Następnie spróbować wygenerować kod. 2