W wyniku realizacji projektu mają powstać trzy „artefakty”.
Wpływ na ocenę:
Model formalny | 25% |
---|---|
Specyfikacja | 25% |
Implementacja | 50% |
Model formalny tworzony jest z wykorzystaniem sieci Petriego. Ma pokazać zasadę działania obejmującą fragment funkcjonalności.
Jego zadaniem jest przede wszystkim:
Model formalny będzie zawsze pewnym przybliżeniem – np.: zamiast 1-n procesów uwzględni procesy w konfiguracji 1-1.
Nie będzie tak szczegółowy, jak implementacja
Używane narzędzie: Renew
Specyfikacja składa się z dwóch podstawowych dokumentów:
Analiza wymagań powinna definiować model logiczny i być sporządzona w oderwaniu od platformy, na której dokonuje się implementacji.
Powinna:
Nie powinna zawierać elementów leksykalnych języka implementacji, typu: button1Clicked, actionPerformed, Thread, Socket, paint.
Wiele projektów ma charakter symulacyjny. Na poziomie analizy wymagań należy przeprowadzić rozgraniczenie między:
Gdyby konieczne było ograniczenie specyfikacji – lepiej dokładniej wyspecyfikować system, a bardziej pobieżnie model otoczenia.
W większości przypadków do zdefiniowania wymagań dla otoczenia wystarczy to, co wynika ze scenariuszy przypadków użycia lub diagramów sekwencji.
W specyfikacji należy wykorzystać język UML.
Diagramy UML można sporządzić wykorzystując ArgoUML, StarUML, Eneterprise Architect, Rational Rose lub Visio.
Projekt systemu powinien zawierać odniesienia do implementacji.
Struktura: definicje klas, relacje pomiędzy klasami Zachowanie: diagramy stanów, sekwencji Odwzorowanie wymagań w projekt (głównie zadań wykonywanych w systemie w metody konkretnych obiektów) W tej części wykorzystywany jest UML.
Oczekiwana objętość dokumentacji około 10 stron.
Główne części:
Zaleca się mocną strukturalizację dokumentu.
Implementacja ma być przeprowadzona w języku Java. Język nie jest językiem czasu rzeczywistego, ale do celów symulacyjnych może być z powodzeniem wykorzystany; zapewnia bardzo efektywne mechanizmy programowania współbieżnego (wątki, komunikacja, synchronizacja i wzajemne wykluczanie). Dodatkową zaletą jest łatwość tworzenia interfejsu graficznego.
Program może być zrealizowany jako aplikacja lub aplet. Nie ma to wpływu na ocenę, chciaż forma apletu może wydawać się łatwiejsza do przedstawienia.
Oczekuje się, że aplikacja będzie skonstruowana w postaci zbioru wątków komunikujących sie za pośrednictwem obiektów typu semafory, kolejki komunikacji, ewentualnie zabezpieczone obiekty dzielone.
Wykluczona jest realizacja sekwencyjnego programu sterowanego zdarzeniami generowanymi w interfejsie graficznym
Efektem tej fazy jest prezentacja działającego programu oraz dostarczenie go w formie kodu źródłowego i w wersji skompilowanej. Nie należy dostarczać programu w formie projektu dla aplikacji typu IDE. W dokumentacji należy podać komendę uruchamiającą program/dostarczyć plik BAT.
Zakłada się, że z językiem Java zapoznaliście się Państwo na przedmiocie Języki i Techniki Programowania.
Narzędzia: dowolny kompilator/interpreter języka Java (liniowy z SDK lub IDE): javac/java, JBuilder, NetBeans, RealJ, JCreator, Eclipse.
Wszystkie używane narzędzia są dostępne jako freeware, ew. Visio na licencji akademickiej dostępnej bezpłatnie dla studentów AGH.