Projektowa v2


0x01 graphic

System informatyczny wspomagający obsługę firmy prowadzącej gry losowe

Dokumentacja projektowa

Wersja pierwsza

Spis treści

Prowadzący: dr inż. Grzegorz Bliźniuk

Grupa laboratoryjna: I0Y3S1

Zespół wytwórczy 18/2012/GB

Nazwa roli

Nazwisko i imię

Zamawiający / Kierownik projektu

Skłodowski Radosław

Analityk / Projektant

Stuczyński Robert

Analityk / Tester akceptacyjny

Sobczak Michał

Projektant / Tester wewnętrzny

Sokołowski Michał

Tester akceptacyjny / Metodolog

Rudalski Rafał

Przydział zadań:

Skłodowski Radosław

Interfejsy użytkownika, Optymalizacja systemu, Protokoły komunikacyjne, Projekt bazy danych

Stuczyński Robert

Diagramy wdrożeniowe, Protokoły komunikacyjne, Optymalizacja systemu,

Sobczak Michał

Rozbudowany diagram klas, Optymalizacja systemu, Plan testów, Diagramy wdrożeniowe

Sokołowski Michał

Projekt bazy danych, Protokoły komunikacyjne, Plan testów, Interfejsy użytkownika

Rudalski Rafał

Harmonogram implementacji, Plan testów, Podsumowanie, Projekt bazy danych

  1. Wstęp

Niniejszy dokument opisuje fazę projektową systemu informatycznego tworzonego dla firmy "G4mbler”. Celem tej fazy jest opracowanie szczegółowego opisu implementacji systemu. Rozstrzyga ona kwestie jak zbudowany ma być system, aby zrealizować wszystkie wymagania określone w fazach poprzedzających. W dokumencie opisane zostały wszystkie szczegóły, zwłaszcza szczegóły techniczne, o które wzbogacony został model systemu, tak aby był jak najbardziej wydajny, niezawodny i łatwy w konserwacji.

  1. Diagram klas

Diagram klas fazy analizy przedstawiał bardzo uproszczony, poglądowy zbiór klas, na które składa się nasz system informatyczny. Diagram utworzony w fazie projektowania jest rozszerzeniem diagramu z fazy analizy. Nie tylko przedstawia relację pomiędzy klasami:

ale także wszystkie potrzebne zmienne (atrybuty klas) oraz funkcje składowe (metody).

0x08 graphic

  1. Projekt bazy danych

    1. Model konceptualny

0x01 graphic

    1. Definicje

Encje:

Asocjacje

Uwagi

  1. Optymalizacja systemu

Naszą aplikację zdecydowaliśmy się pisać w języku C++, wykorzystując maksymalnie możliwości, jakie daje podejście obiektowe. Aby ograniczyć wykorzystanie zasobów sprzętu, na jakim aplikacja będzie uruchamiana, zwracaliśmy szczególną uwagę na wykorzystanie odpowiednio minimalistycznych typów danych. Możliwości języka są odpowiednie dla naszego celu, ponadto dodawanie nowych funkcjonalności w przyszłości będzie stosunkowo proste (nawet dodawanie modułów pisanych w innych językach). Co bardzo istotne, język C++ oferuje możliwość używania funkcji wplatanych, których wykorzystanie w zauważalny sposób wpływa na wydajność aplikacji. W każdym przypadku będzie używany algorytm o możliwie najniższej złożoności (wyłączając przypadki, gdzie bardziej złożony algorytm będzie znacznie bardziej odpowiedni dla konkretnego działania).

W kilku przypadkach postanowiliśmy wykorzystać język Assembler, ze względu na istotność tych konkretnych funkcji, ale przede wszystkim ze względu na znaczną różnicę w wydajności obu języków. Oczywiście fragmenty w tym języku nie będą zbyt obszerne, gdyż ich pisanie zajęłoby zbyt dużo czasu, a usuwanie ewentualnych błędów byłoby niezwykle trudne. Assembler zostanie więc zastosowany wyłącznie w krytycznych punktach projektu, gdzie istotnie można podnieść wydajność.

Ponieważ aplikacja korzysta z bazy danych, która sama w sobie nie jest rozwiązaniem idealnym, zastosujemy indeksy. Wspomagają one w znaczący sposób wyszukiwanie i przyspieszają je, szczególnie przy dużej liczbie rekordów w bazie.

Projektując aplikację mamy na uwadze moc obliczeniową sprzętu, na jakim przyjdzie jej pracować, przy czym w każdym możliwym przypadku stawiamy na obniżenie złożoności obliczeniowej naszego kodu. Zdajemy sobie sprawę, że takie minimalistyczne podejście pozwoli na sprawne i szybkie działanie aplikacji, a ponadto pozostawi wolne zasoby na nieprzewidziane zdarzenia i przyszłe modyfikacje aplikacji.

  1. Interfejs użytkownika

    1. Okno logowania

Każdy z użytkowników zaczyna pracę od wprowadzenia swoich danych do logowania, przy czym może się ono odbywać poprzez wpisanie loginu i hasła lub też użycie karty pracowniczej wraz z hasłem. Zalecane jest używanie karty pracowniczej. W trosce o bezpieczeństwo hasło pojawia się w formie gwiazdek symbolizujących pojedynczy znak.

Gracz loguje się do systemu używając swojej karty na stanowisku z grą, z której aktualnie korzysta - wówczas zostaje zalogowany automatycznie.

0x01 graphic

W przypadku użycia karty, użytkownika wita następujący interfejs:

0x01 graphic

    1. Interfejs pracownika

W przypadku identyfikacji użytkownika jako Pracownik, interfejs aplikacji wygląda następująco:

0x01 graphic

Z tego poziomu dostępne są wyłącznie opcje, do używania których uprawniony jest Pracownik. Dla maksymalizacji wygody i czytelności interfejsu zostały użyte zakładki.

Dostępne opcje, zgodnie z zakładanymi funkcjonalnościami:

    1. Interfejs kierownika

0x01 graphic

Interfejs kierownika prezentuje się podobnie, jednakże zawiera inne opcje. Są to:

    1. Interfejs właściciela

0x01 graphic

Właściciel ma dostęp do wszystkich funkcjonalności swoich pracowników, a ponadto ma możliwość oglądania generowanych dla niego raportów.

    1. Okno pomocy

0x01 graphic

Każdy z użytkowników systemu ma dostęp do pliku pomocy, w którym znajdzie potrzebne informacje do szybkiego i sprawnego obsługiwania potrzebnych funkcji.

    1. Przykładowy interfejs gracza

0x01 graphic

Ze względu na różnorodność gier oferowanych w kasynie, interfejs gracza dla poszczególnych stanowisk będzie różnorodny. Jednakże każde z nich oferuje podobne opcje (pomijając opcje charakterystyczne dla gry):

  1. Protokoły komunikacyjne

W celu zapewnienia wymiany danych i informacji w naszej sieci potrzebne są protokoły komunikacyjne. Ponieważ firmowa sieć komputerowa ma być wewnętrzna i nie posiadać dostępu do internetu, komunikacja będzie odbywać się głównie poprzez sieć LAN.

Aplikacja musi się komunikować z bazą danych, która zawiera prawie wszystkie istotne do działania informacje. Komunikacja z bazami Microsoft SQL Server / Oracle będzie odbywała się z wykorzystaniem protokołu OLE DB lub ODBC. Odpowiednie połączenia zostaną zestawione na etapie wdrażania projektu.

  1. Diagramy wdrożeniowe

    1. Diagram komponentów

  1. Gracz

Gracz łączy się z panelem urządzenia wprowadzając do czytnika kart swoją kartę gracza. W panelu urządzenia znajdują się wszystkie ustawienia użytkownika, w tym możliwość ustawienia stawki, za jaką będzie grał. Zostaje nawiązana komunikacja z bazą danych w celu sprawdzenia, czy gracz posiada taką kwotę, oraz zmiana stanu konta w przypadku wygranej lub przegranej.

Diagram komponentów dla gracza:

0x01 graphic

b) Pracownik

Podczas przesyłania danych aby zapewnić ich bezpieczeństwo wykorzystujemy szyfrowanie RSA. Baza danych są implementowane przez firmę Sybase i kompatybilne z bazą SQL Anywhere.

Przy aplikacji wyróżniono oddzielny komponent na graficzny interfejs użytkownika. GUI bowiem ma być niezależne od samej aplikacji. Dzięki temu obydwa komponenty będzie można rozwijać oddzielnie - zmiana jednego nie będzie pociągała za sobą zmiany drugiego. Ułatwia to modyfikowanie interfejsu zgodnie z oczekiwaniami osób korzystających z niego.

Pracownik ma specjalny komponent do zarządzania kartami graczy, który łączy się z bazą danych po wprowadzeniu karty gracza przy użyciu komponentu bazy danych, modyfikując ją o wprowadzone zmiany.

Diagram komponentów dla pracownika:

0x01 graphic

c) Kierownik

W diagramie komponentów dla kierowników są dodatkowo komponenty pracownik i raport. Generowany raport może być przeglądany bezpośrednio w aplikacji. Komponent pracownik daje możliwość zarządzania pracownikami. Posiada możliwość dodania, zmiany, usunięcia, bądź zlecenia wypłaty.

Również tutaj graficzny interfejs jest wydzielony z aplikacji.

Diagram komponentów dla kierownika:

0x01 graphic

    1. Diagram rozlokowania

Diagramy rozlokowania zwane są też ogólnie diagramami wdrożeniowymi. Umożliwiają opis fizycznej alokacji poszczególnych komponentów aplikacji - na przykład w serwerowniach głównych, serwerowniach zapasowych, czy też miejscach użytkowania aplikacji na urządzeniach statycznych i urządzeniach mobilnych.

  1. Gracz

Gracz łączy się z serwerem obsługi poprzez podanie karty do czytnika kart. Komunikacja między serwerami firmy odbywa się poprzez FastEthernet.

Serwer obsługi klienta łączy się z serwerem bazy danych przy prowadzaniu stawki, w celu sprawdzenia czy klient posiada taką kwotę, oraz przy rozpoczynaniu gry, aby wczytać ustawienia urządzenia. Ustawienia urządzeń tworzone są przez centralę. Wszystkie zmiany zapisywane są w bazie danych. Komputer centrali i serwer obsługi klienta są połączone z centralną bazą danych.

0x01 graphic

  1. Pracownik

Pracownik doradztwa może łączyć się bazą danych centrali firmy poprzez zbiór protokołów TCP/IP. Może zarządzać kartami graczy (gracz wprowadza swoją kartę). Poprzez aplikację Klient.exe, Komputer pracownika łączy się z serwerem bazy danych, do DaneKlienta.db, oraz dokonuje modyfikacji.

0x01 graphic

  1. Kierownik

Komputery zarządu stoją w siedzibie firmy, dlatego komunikacja odbywa się przez FastEthernet. Zarząd nie ma dostępu do systemu z zewnątrz. Komputer kierownika ma dostęp do baz danych raportów i pracowników serwera bazy danych.

0x01 graphic

  1. Harmonogram implementacji

Budowa systemu informatycznego została podzielona na następujące etapy:

Implementacja bazy danych

Czerwiec 2012

Fizyczne lokowanie serwerów i łącz

Lipiec - Sierpień 2012

Implementacja klas systemowych

Sierpień - Wrzesień 2012

Implementacja pozostałych elementów systemu

Październik - Listopad 2012

Implementacja interfejsów użytkownika

Grudzień 2012

Testy wewnętrzne

Grudzień 2012

Wdrożenie

Styczeń 2013

Testy, zapełnianie bazy danych

Styczeń 2013

Start komercyjny

Luty 2013

  1. Plan testów

a) Testowanie bazy danych

Tworzona baza danych zostanie przetestowana pod względem bezpieczeństwa oraz dbałości o niski poziom redundancji przechowywanych danych. Dostęp do wglądu w bazę danych powinien mieć tylko pracownik kasyna odpowiedzialny za daną sekcję, który ma również możliwość łatwej edycji zawartych w niej rekordów. W celu zabezpieczenia przed nieumyślnym skasowaniem danych sprawdzamy funkcjonalności odpowiedzialne za usuwanie danych z baz. Naszym zadaniem jest zbadanie wszystkich możliwości obejścia zabezpieczeń tego modułu oraz miejsc w poszczególnych aplikacjach, które łączą się z bazą danych, aby zapisane dane dostępowe do bazy były niedostępne do ewentualnego podglądu. Wykorzystane zostanie także narzędzie do automatyzowania procesu wykonywania zapytań testowych. W ten sposób system zarządzania bazą danych zostanie „zasypany” dużą liczbą zapytań. Dzięki temu zbadamy nie tylko poprawność, ale także odporność systemu na duży ruch.

b) Testowanie aplikacji przeznaczonych dla pracowników

Dzięki aplikacji przeznaczonej dla pracownika, ma on możliwość dodania, usunięcia oraz przeglądania danych zawartych w bazach oraz generacji raportów i operacji pieniężnych. Testując sprawdzamy odporność formularzy na wprowadzane dane. Ewentualne błędy, przy zapisie do bazy danych, mogłyby spowodować duże konsekwencje. Badamy odporność na wprowadzanie danych specyficznych, bądź danych, które w dane pole wprowadzone być nie powinny. Tego typu testy dotyczą każdej aplikacji. Należy ponadto sprawdzić, czy dane przesyłane między poszczególnymi stanowiskami pracowniczymi nie ulegają zniekształceniu bądź przekłamaniu.

c) Testowanie aplikacji dla klientów

Klient ma możliwość podejrzenia i edycji środków na swojej karcie gracza. Jest to aplikacja najbardziej narażona na ataki z zewnątrz, ponieważ jest dostępna dla praktycznie wszystkich użytkowników. Podobnie jak przy aplikacji pracowniczej sprawdzaliśmy aplikację w przypadkach wprowadzania złośliwych danych, które mogą spowodować incydenty bezpieczeństwa. Aplikacja jest narażona na specyficzne ataki, chociażby podrobienia id bądź hasła i wyczyszczenia środków na karcie. Sprawdzając każde pole formularza zabezpieczamy klientów przez kradzieżą tożsamości, a nawet danych dotyczących karty płatniczej, której używa. Trzeba sprawdzić mechanizm potwierdzeń przy operacjach. Na przetestowanie aplikacji należy przeznaczyć wiele czasu i możliwości. Trzeba wykorzystać narzędzia wspomagające testy i automatyzujące tworzenie szkodliwych żądań. Ponadto trzeba się upewnić, że wszystkie pliki, które nie mają być bezpośrednio dostępne dla użytkownika znajdują się poza katalogiem serwera odpowiadającym za przechowywanie ich danych.

d) Testowanie modułu przelewów

Moduł przelewów jest jedną ze składowych aplikacji przeznaczonej dla klientów oraz pracowników. Naszym zadaniem w tej fazie testów jest przetestowanie zabezpieczeń oraz reakcje na różne dane, które zostaną wpisane nieprawidłowo. Należy także sprawdzić, czy system banku prawidłowo reaguje na żądania projektowanego systemu, czy nie ma przekłamań w kwotach przelewów ani przy rozpoznawaniu użytkownika zlecającego przelew.

f) Testowanie systemu pomocy.

System pomocy zawiera zbiór pytań umożliwiających zidentyfikowanie problemu użytkownika oraz doradzenie mu odpowiedniego rozwiązania. Należy więc sprawdzić sposób doboru reguł przez mechanizm wnioskowania oraz działanie każdej reguły w różnych konkretnych przypadkach wymagających decyzji, rady czy opinii. Mechanizm należy przetestować pod względem łatwości obsługi oraz jednoznaczności odpowiedzi, tak aby użytkownik słabo zaznajomiony z systemem nie miał problemu z ustaleniem odpowiedzi na poszczególne pytania. Zmniejszy to możliwość przekazania do osoby zajmującej się konserwacją systemu problemu, który mógłby zostać rozwiązany za pomocą systemu pomocy.

  1. Podsumowanie

Niniejszy dokument podsumowuje wszelkie aspekty dotyczące projektowania systemu i wszelkich innych czynności koniecznych do wykonania przed jego wdrożeniem. Przedstawione zostały kwestie dotyczące technicznej i wizualnej strony projektu. Dokument zawiera graficzne przedstawienie zbioru klas systemu oraz budowy baz danych. Ukazany został i opisany interfejs systemu dostępny dla poszczególnych jego użytkowników. Poruszone zostały zagadnienia dotyczące optymalizacji systemu, protokołów komunikacyjnych oraz testów poszczególnych modułów, wchodzących w skład projektowanego systemu. Dzięki temu system jest gotowy do implementacji nie pozostawiając wątpliwości co do budowy i wymagań funkcjonalnych.

[Dokumentacja analityczna systemu informatycznego]

Warszawa 2012



Wyszukiwarka

Podobne podstrony:
projekt v2 1
PROJEKT 3 v2
projekt v2
Projekt Podstawowe prawa i?finicje elektrotechniki v2 7b Final
projekt tbm johny1 kt, studja, 5 semestr, 3 rok, tbm - projekty, od Jaro, TBM2, Johny-projekt TBM v2
projekt rozporzadzenia szkolenia 15.12.08 v2
IO wyk6 projektowanie architektura v2
projekt plakatu v2
BYT 2004 Jakosc w projekcie informatycznym v2
ZPT 05 Wymiarowanie projektow cz 2 v2 odblokowany
projekt SD NAW MT RW v2
Projekt klimatyzacja Minikowski 11 01 2010 V2
IO wyk6 projektowanie architektura v2
projekt o narkomanii(1)

więcej podobnych podstron