Projekt modułu Gra strategiczna „Strusia jama” Wyrzutnie Michał Gabrysiak Natalia Tatusz Inżynieria Oprogramowania poniedziałek, 12:15 2009/2010
Cel i założenia Cel: Stworzenie modułu odzwierciedlającego działanie wyrzutni rakiet Zapewnienie użytkownikowi możliwości rozwoju wyrzutni, oraz ingerencji w nie (niszczenie wyrzutni, naprawa). Dzięki czemu gra staje się bardziej „wciągająca” Założenia: Użytkownik może używać dowolnej liczby wyrzutni i rakiet. Utrzymanie wyrzutni przez turę jest zależne od odległości wyrzutni od najbliższego miasta Każda wyrzutnia znajduje się w stanie aktywacji lub braku aktywacji (np. brak funduszy na utrzymanie, brak rakiet).
Wymagania Wymagania funkcjonalne: możliwość wystrzelenia rakiety możliwość naprawy wyrzutni możliwość zniszczenia rakiet lub sond przeciwnika możliwość zniszczenia własnej wyrzutni bądź rakiety (bez zwrotu kosztów) możliwość budowy rakiety lub wyrzutni Wymagania niefunkcjonalne: moduł wyrzutni jest niezależny od innych modułów poza pozostałymi modułami logiki. możliwość nieograniczonego rozwoju rakiet i wyrzutni łatwość dostosowania działania wyrzutni do innego interfejsu graficznego i sieciowego łatwa możliwość wprowadzenia wyrzutni i rakiet nowego typu
Diagram przypadków użycia
Diagram przypadków użycia
Powiązania z innymi modułami Nasz moduł jest głównie zależny od Zarządcy jako modułu zarządzającego całą rozgrywką. Odpowiada głównie za zestrzeliwanie nadlatujących wrogich rakiet oraz budowa nowych wyrzutni i rakiet. Odbywa się komunikacja z modułem Państwa w celu uzyskania wiadomości, które wyrzutnie zostały zniszczone. Wyrzutnie korzystają z szablonów. Nie jest to typowy moduł.
Diagram klas
Diagram interakcji (wystrzel rakietę balistyczną)
Scenariusz przypadku użycia Nazwa: wystrzel rakietę balistyczna Aktorzy: Gracz, gracz-przeciwnik Krótki opis: Wystrzał rakiety lub poinformowanie zarządcy o braku możliwości strzału Warunki początkowe: Gracz musi zainicjować wystrzelenie rakiety (wybranie wyrzutni,wybranie celu). Na mapie muszą być dostępni przeciwnicy, w któych zostanie wystrzelona rakieta. Warunki końcowe: Rakieta zostaje wystrzelona (usuniecie z listy rakiet, dopisanie do listy rakiet wystrzelonych) lub wysłanie komunikatu do zarządcy o niemożliwości wystrzału (niespełnienie warunków) Główny przepływ zdarzeń: Sprawdź dostępność rakiet balistycznych Sprawdź aktywność danej wyrzutni Sprawdzenie zasięgu danej rakiety. Wystrzał rakiety (zwrócenie referencji do wystrzelonej rakiety lub wartości null) Alternatywne przepływy zdarzeń: 1a. Sprawdzanie kolejnej rakiety z listy rakiet 2a,3a. Warunek nie spełniony. Zwróć null. Specjalne wymagania: Sprawdzanie dostępności danego typu rakiet musi odbywać się w pętli.
Objaśnienie
Diagram interakcji (skanuj obszar)
Scenariusz przypadku użycia Nazwa: wystrzel rakietę balistyczna Aktorzy: Gracz, gracz-przeciwnik Krótki opis: Wystrzał rakiety lub poinformowanie zarządcy o braku możliwości strzału Warunki początkowe: Gracz musi zainicjować wystrzelenie rakiety (wybranie wyrzutni,wybranie celu). Na mapie muszą być dostępni przeciwnicy, w któych zostanie wystrzelona rakieta. Warunki końcowe: Rakieta zostaje wystrzelona (usuniecie z listy rakiet, dopisanie do listy rakiet wystrzelonych) lub wysłanie komunikatu do zarządcy o niemożliwości wystrzału (niespełnienie warunków) Główny przepływ zdarzeń: Sprawdź dostępność rakiet balistycznych Sprawdź aktywność danej wyrzutni Sprawdzenie zasięgu danej rakiety. Wystrzał rakiety (zwrócenie referencji do wystrzelonej rakiety lub wartości null) Alternatywne przepływy zdarzeń: 1a. Sprawdzanie kolejnej rakiety z listy rakiet 2a,3a. Warunek nie spełniony. Zwróć null. Specjalne wymagania: Sprawdzanie dostępności danego typu rakiet musi odbywać się w pętli.
Diagram komponentów
Realizacja założeń i wymagań Wymagania funkcjonalne są realizowane przez odpowiednie metody ( np. naprawa, destrukcja wyrzutn)i. Moduł jest niezależny od innych modułów poza logicznymi gdyż korzysta z interfejsu komunikacji dostarczanego przez Zarządcę nie komunikując się bezpośrednio z żadnym innym modułem. Informacja o aktywacji wyrzutni będzie ustawiana w zmiennej ready, która będzie współpracować z metoda activate() Za rozwój rakiet i wyrzutni odpowiedzialne są technologie, opracowywane przez inną część modułu logiki. Nasz moduł wyrzutni dzięki szablonom może z łatwością przyjąć każdy nowy wynalazek jaki zostanie wymyślony. Nie są nałożone żadne ograniczenia na wynalazki. Informacje o stanie wynalazków będą przekazywane poprzez szablon. Nie są nałożone żadne liczbowe ograniczenia na ilość posiadanych przez gracza wyrzutni i rakiet. Dane założenie będzie zapewnione poprzez zastosowanie list.
Realizacja powiązań z innymi modułami Moduł Wyrzutni komunikuje się z innymi modułami Logiki poprzez interfejsy i tak: Interfejs zniszczeń wyrzutni służy do komunikacji z modułem Państwo w celu usuwania zniszczonych przez rakiety wyrzutni oraz przypisywania im uszkodzeń podczas ataku. Interfejs wyrzutni to interfejs łączący moduł Wyrzutni z modułem Zarządcy. Komunikacja następuje głównie przy użyciu klasy RocketForm. Interfejs odczytu służy do odczytywania danych z szablonów przy budowaniu nowych wyrzutni i kupowaniu nowych rakiet.