3 Dokumentacja projektowa I8Y2 (2)

background image

Dokumentacja projektowa systemu informatycznego

1

KittyTeam


SYSTEM INFORMATYCZNY OBSŁUGI

BIURA PODRÓŻY

Dokumentacja projektowa






















Warszawa, 2010

background image

Dokumentacja projektowa systemu informatycznego

2

Spis treści


1. Wstęp

2. Diagram klas

2.1. Diagram klas;

2.2. Definicje;

3. Projekt bazy danych

3.1. Model konceptualny;

3.2. Definicje;

4. Optymalizacja systemu
5. Interfejsy użytkownika
6. Protokoły komunikacyjne
7. Diagramy wdrożeniowe

7.1. Diagram komponentów;
7.2. Diagram rozlokowania;

8. Harmonogram implementacji
9. Plan testów
10. Podsumowanie

Status dokumentu

Zespół wytwórczy 9/2010/GB w składzie

Kierownik projektu / Zamawiający

Paulina Turlewicz

Zamawiający / Tester akceptacyjny

Piotr Szela

Analityk / Projektant

Piotr Surma

Analityk / Tester wewnętrzny

Maciej Zarzycki

Projektant / Tester wewnętrzny

Karol Pawłowski

Zmiany w stosunku do wersji poprzedniej

Wersja pierwsza.

background image

Dokumentacja projektowa systemu informatycznego

3

1. Wstęp

Niniejszy dokument stanowi podsumowanie fazy projektowej systemu informatycznego dla biura

podróży „Husajn”. Dzięki niemu można odpowiedzied na pytanie: Jak system ma byd
zaimplementowany? Stanowi uściślenie ustaleo wykonanych w fazie analizy. Dzięki temu uzyskujemy
pełen obraz systemu poprzez pełne zdefiniowanie klas oraz struktury bazy danych, a także
graficznych interfejsów istotnych z punktu widzenia użytkownika koocowego. Przez to uzyskujemy
pełen obraz systemu od warstw najniższych po najwyższe, jednoznacznie wskazujące sposób
implementacji.

2. Diagram klas

Diagram klas fazy analizy przedstawiał uproszczony, poglądowy zbiór klas, na które składa się

system. Poniższy diagram jest uściśleniem poprzedniego. Nie tylko przedstawia relacje pomiędzy
klasami:

Asocjacje;

Agregacje;

Kompozycje;

Generalizacje;

ale także wszystkie wymagane zmienne i funkcje składowe (metody). W diagramie, celem
zachowania czytelności nie przedstawiono akcesorów do zmiennych składowych (getterów i
setterów), które będą implementowane w zależności od potrzeb oraz możliwości języka
programowania.

2.1. Diagram klas


Na kolejnych stronach przedstawiony jest uściślony diagram klas.

background image



background image


background image

6

Dokumentacja projektowa systemu informatycznego

2.2. Definicje

Klasa JednostkaOrganizacyjna jest klasą abstrakcyjną, z której dziedziczą wszystkie klasy
konkretne elementów systemu. To właśnie klasy, które z niej dziedziczą bezpośrednio będą
stanowid najwyższą warstwę architektury – warstwę interfejsu. Zawiera ona tylko jedno pole
id jednostki;

Klasami pochodnymi są:

o Strona, która przechowuje tylko najważniejsze informacje dotyczące strony WWW

(adresy serwerów DNS, informacje dotyczące domeny);

o Zarzad, która zawiera metody związane w przeglądaniem raportów i statystyk oraz

zarządzania pracownikami;

o Biuro przechowująca przede wszystkim dane adresowe biura i możliwośd ich edycji;
o Centrala składająca się z metody ulozOferte(), dzięki której możliwe jest tworzenie

ofert na wycieczki oraz z metod służących do komunikacji z podwykonawcami;

o Podwykonawca zawierająca dane adresowe i kontaktowe podwykonawcy,

informacje dotyczące działalności i daty zawarcia umowy oraz dane do przelewów;
Metody służą do komunikacji z centralą (wymiana danych) oraz akceptacji pobranych
zamówieo;

Z klasy Podwykonawcy dziedziczą klasy wyspecjalizowane w danych działalnościach
usługodawców:

o Hotel przechowuje terminy rezerwacji dla danej oferty, standard pokojów oraz liczba

zarezerwowanych pokojów;

o Restauracja zawiera dane dotyczące wyżywienia na wycieczce, w tym liczbę posiłków

dziennie dla ilu osób;

o Przewodnik to klasa, która zawiera datę początku pracy przewodnika na wycieczce,

ilośd godzin oraz liczbę osób, które przewodnik może mied w grupie;

o Ubezpieczenie informuje o wykupionym pakiecie oraz wartości ubezpieczenia;
o Transport przechowuje dane dotyczące typu i klasy środka transportu, terminów

wyjazdu oraz liczbie miejsc siedzących i stojących;

Najważniejszą z punktu widzenia działalności biura podróży jest klasa Oferta. Spośród
składowych przechowuje identyfikator wycieczki (zgodny z tym, który zapisany jest w bazie
danych), jej cenę oraz terminy. Metody służące do dodawania, modyfikacji, usunięcia, bądź
przekazania do realizacji przez podwykonawców są wykorzystywane wyłącznie przez centralę
z jednym wyjątkiem. Biuro może przygotowad ofertę specjalną (na zamówienie), ale Centrala
musi ją potwierdzid. Każdy natomiast może wyszukad ofertę, pobrad jedną z nich po ID, bądź
kolejną po ID.

Nieodłączną klasą jest Zamówienie. Jej obiekt zostaje powołany w momencie kupna
wycieczki i przechowuje informacje dotyczące ilości zarezerwowanych miejsc oraz informacje
dotyczące sposobu płatności. Metody pozwalają na zamówienie, odwołanie zamówienia lub
jego modyfikację;

Sama płatnośd wykorzystuje klasę Płatnośd do zlecenia przelewu lub jego anulowania.
Anulowanie następuje jednak tylko poprzez zamówienia złożone przez stronę internetową
(zgodnie z założeniami z wcześniejszych faz). Przechowywana jest data dokonania płatności,
jej kwota oraz informacja o potwierdzeniu przez bank.

background image

7

Dokumentacja projektowa systemu informatycznego

W systemie wyróżniono klasę abstrakcyjną Osoba, która zawiera identyfikator osoby z bazy
danych, jej dane osobowe i kontaktowe oraz metody służące do dodania osoby, modyfikacji
jej danych i usunięcia, a także metodę zwracającą datę urodzenia na podstawie numeru
PESEL. Dziedziczą z niej następujące klasy pochodne:

o Klient, którą rozszerzono o informację, czy klient życzy sobie wystawiania faktur VAT

dotyczących swoich zamówieo;

o Pracownik z informacjami o jednostce, w której pracuje oraz o stanowisku pracy, a

także z datą zatrudnienia;

W relacji kompozycji z klasą Pracownik jest klasa Wypłata zawierająca pola o kwocie wypłaty
i dacie przelewu oraz metodę zlecającą przelew;

Klasa Raport jest związana z klasą Zarząd. Dzięki niej możliwe jest generowanie raportów i
statystyk;

StatusZamówienia łączy Ofertę, Podwykonawców i Centralę. Dzięki niej odbywa się
wzajemna komunikacja i wymiana informacji. Pomocną w realizacji asocjacji Podwykonawca
-> StatusZamówienia jest klasa RealizowaneZamowienie, która łączy konkretnego
usługodawcę z konkretnym zamówieniem;

Podobną funkcję pełni klasa ZłożoneZamówienie w relacji Klient -> Zamówienie. Przypisuje
ono zamówienia poszczególnym klientów, którzy je kupili;

Warto zwrócid uwagę, że dla jednej oferty może byd przydzielonych wiele obiektów klas

podwykonawców (np. zakwaterowanie może odbywad się w wielu hotelach na różnych etapach
podróży). Przez to implementacja relacji zachodzących między Ofertą, a Podwykonawcami może
zostad zrealizowana za pomocą tablic obiektów bądź list. Ponadto z punktu widzenia projektowanego
systemu usługi zapewniane przez podwykonawców są częścią oferty, stąd relacje między nimi to
agregacje lub kompozycje.

3. Projekt bazy danych

3.1. Model konceptualny


Na poniższym schemacie przedstawiono model konceptualny bazy danych.

background image

8

Dokumentacja projektowa systemu informatycznego

background image

9

Dokumentacja projektowa systemu informatycznego

3.2. Definicje

Encja Adres jest encją abstrakcyjną i nie jest generowana. Zawiera podstawowe dane
adresowe, jak np. nazwa ulicy z numerem budynku i lokalu oraz kod i poczta. Dziedziczą z niej
inne encje abstrakcyjne: Osoba i jednostkaOrganizacyjna;

Osoba również nie jest generowana, uzupełnia ona Adres o imię, nazwisko, pesel oraz nip, a
także o swój id (klucz główny);

jednostkaOrganizacyjna uzupełnia Adres o identyfikator jednostki (klucz główny);

Z encji jednostkaOrganizacyjna dziedziczy encja Biuro, która zawiera klucz główny idBiura;

Z tej samej encji dziedziczy także podwykonawca. Jest to także encja abstrakcyjna, która do
odziedziczonych pól dodaje swój id (klucz główny), typ działalności, datę zawarcia umowy z
podwykonawcą oraz dane kontaktowe do przedstawiciela danego podwykonawcy;

5 klas uściślających podwykonawcę to Hotel, Restauracja, Przewodnik, Ubezpieczenia i
Transport. Dodają one pola opisujące daną działalnośd zgodnie z założeniami systemu. Pola
tych encji są analogiczne do pól klas o tych samych nazwach na diagramie klas;

Z encji Osoba dziedziczą Pracownik przechowująca dane o jednostce i stanowisku oraz dacie
zatrudnienia, a także Klient z informacją o chęci otrzymywania faktur VAT za zamówione
usługi;

W relacji jeden-do-wielu z encją Klient jest encja Zamówienia. Encja ta posiada swój klucz
główny oraz informacje dotyczące ilości osób zamawiających i sposobu płatności;

Z kolei w relacji jeden-do-wielu z encją Zamówienia jest encja Płatności. Ona zawiera
szczegóły dotyczące transakcji, takie jak data i kwota oraz potwierdzenie banku;

Najważniejszą z punktu widzenia systemu jest encja Oferta. Sama przechowuje cenę oraz
terminy wycieczki, a także swój klucz główny. Znajduje się ona w relacji jeden-do-wielu z
encją Zamówienia oraz w relacji wiele-do-wielu z encjami uściślającymi poszczególnych
podwykonawców. Dzięki temu z każdym typem podwykonawcy zostanie utworzona
intersekcja, która umożliwi dopasowanie wielu podwykonawców danej dziedziny z jedną
ofertą.


Struktura bazy danych przedstawiona w ten sposób minimalizuje stopieo redundancji, co w
znacznym stopniu ułatwia zarządzanie i podnosi wydajnośd. Dodatkowo projektowana baza znajduje
się w trzeciej postaci normalnej.

4. Optymalizacja systemu

Nieprawidłowa implementacja może doprowadzid do powstania systemu o zbyt niskiej

efektywności. Celem optymalizacji projektu wykorzystujemy wiele czynności i mechanizmów
poprawiających efektywnośd. Przede wszystkim, tam gdzie to możliwe wybieramy typy danych o
minimalnej, niezbędnej wartości
. Kiedy wymagane są tylko dwa stany wartości, wystarczającym
będzie typ logiczny (boolean). Niestety, nie wszystkie języki programowania pozwalają na używanie
zmiennych o takim typie.

background image

10

Dokumentacja projektowa systemu informatycznego

Na etapie implementacji niezbędnym okazuje się używanie funkcji wplatanych (inline). Dzięki

temu kod zachowuje czytelnośd, bo funkcja ma swoją definicję, ale przez kompilator jej wywołanie
zamieniane jest z jej instrukcjami. Przez to ograniczamy ilośd przeniesieo sterowania, co korzystnie
wpływa na wydajnośd. Niestety, podobnie jak w powyższym przypadku, nie wszystkie języki
umożliwiają używanie funkcji wplatanych. Dlatego znaczna częśd projektowanego systemu
implementowana będzie w języku C++.


Częstą funkcją używaną przy wyszukiwaniu ofert będzie funkcja sortowania. W zależności od

kryteriów wyszukiwania, ilośd danych do sortowania może byd zmienna. Dlatego zaimplementowana
będzie funkcja, która w przypadku małej ilości informacji używad będzie sortowania przez
wstawianie
. Mimo, iż złożonośd tego algorytmu jest kwadratowa, to znakomicie sprawdza się przy
sortowaniu małej liczby wartości. Dla dużych zbiorów danych używany będzie algorytm o niższej
złożoności, np. algorytm sortowania przez scalanie.


W „wąskich gardłach” systemu wykorzystany będzie język assembler celem podniesienia

wydajności. Jednym z takich wąskich gardeł jest wybór wszystkich podwykonawców dla danej oferty
wycieczki. Podwykonawców może byd bowiem wielu. W przypadku strony internetowej w
krytycznych punktach stosowany będzie program na serwerze w języku C wywoływany z poziomu
języka skryptowego strony. Wynik działania programu zostanie przekazany językowi strony (np. PHP).
Języki skryptowe stron są dośd wolne, gdyż podlegają interpretacji, a doświadczenia inny serwisów
internetowych mówią, że programy w C znacznie podnoszą wydajnośd.


Celem przyspieszenia wyszukiwania w bazie danych zastosowane będą indeksy, w tym indeksy

wyszukiwania pełnotekstowego (fulltext indexes). Dzięki temu wydajnośd wyszukiwania w bazie
danych znacznie wzrośnie. Niestety, nie wszystkie silniki wspierają wyszukiwanie pełnotekstowe.


Niezwykle ważnym mechanizmem jest mechanizm cache. W przypadku strony internetowej

użytkownik często wraca do danej podstrony lub do danego wyszukiwania. Jeśli dane się nie zmieniły,
serwer nie musi na nowo przetwarzad żądania. Dzięki temu działania języka strony WWW można
znacznie ograniczyd lub w niektórych przypadkach nawet całkowicie wykluczyd. Kiedy następuje
nowe żądanie, serwer zapisuje wygenerowany kod HTML w katalogu cache, po czym wysyła go do
przeglądarki użytkownika. Kiedy klient ponownie zażąda tej samej strony, nastąpi przesłanie jej z
katalogu cache. Dzięki temu nie trzeba ponownie łączyd się z bazą danych, pobierad rekordów,
przetwarzad ich, nie jest uruchamiany system szablonów, ani nie są wykonywane inne obliczenia.


Warto także rozdzielid jeden „duży” serwer na kilka mniejszych realizujących specjalne zadania.

Warto na przykład wydzielid z serwera WWW taki, który przechowywałby pliki. Dzięki temu działałby
niezależnie od serwera obliczeniowego. Ruch plików (np. obrazki na stronie) generuje poważne
obciążenie, stąd odizolowanie go od obliczeo jest bardzo sensowne.


Zaprezentowane wyżej mechanizmy optymalizacji zapewniają znaczny skok wydajności systemu.

Dobór odpowiednich algorytmów często znaczy więcej niż moc obliczeniowa samej maszyny.

background image

11

Dokumentacja projektowa systemu informatycznego

5. Interfejsy użytkownika

a) Strona www

Strona WWW ma byd prawidłowo wyświetlana pod wszystkimi czołowymi przeglądarkami

internetowymi (Internet Explorer >=7, Mozilla Firefox >=3, Opera >=10, Google Chrome >=3). Strona
wykonana zgodnie ze standardami W3C (łącza w dokumentacji specyfikacji).

Użytkownik strony ma do dyspozycji gotowy katalog - na jego podstawie klient na głównej stronie

może wyszukad wycieczkę wpisując gdzie i kiedy chce jechad. W momencie logowania oraz na etapie
płatności strona wykorzystuje transmisję szyfrowaną.






background image

12

Dokumentacja projektowa systemu informatycznego

b) Aplikacja biura

Każde biuro terenowe to jedno konto w systemie - ma swój identyfikator i przesyła dane jako

oddział. Firma (zleceniodawca) zdecydowała się bowiem prowadzid statystyki całego konkretnego
biura, a nie każdego pracownika z osobna.


W menu znajduje się możliwośd wyboru aktualnej oferty firmy, panel służący do zamawiania

wycieczek oraz do tworzenia oferty indywidualnej, a także panel transakcyjny. Pracownik wprowadza
w nim potwierdzenia rezerwacji wycieczek po otrzymaniu płatności. Nie zabrakło możliwości
filtrowania ofert po wybranych kryteriach (cel podróży, cena, zakwaterowanie, wyżywienie, itp) –
podobnie jak ma to miejsce na stronie internetowej.

background image

13

Dokumentacja projektowa systemu informatycznego

c) Interfejs podwykonawcy

Podobnie jak to miało miejsce w przypadku aplikacji biura, każdy podwykonawca ma swoje konto

w systemie, przez co jest rozpoznawany przez aplikację. Każdy z usługodawców może mied nieco inny
panel, zgodny z typem działalności jaką prowadzi. Na przykład właściciel firmy transportowej nie
będzie posiadał pól odnośnie możliwości zakwaterowania czy ubezpieczenia.


W opcji rezerwacji środków własnych podwykonawca może sprawdzid jakie usługi rezerwuje u

nich centrala firmy. Wtedy podwykonawca może sprawdzid poprawnośd wprowadzonych informacji i
w zależności od nich podjąd pewne kroki. Może zażądad dodatkowych danych, bądź potwierdzid i
wykonad powierzoną mu pracę.


Sekcja zarządzanie turystami pozwala na wymianę danych klientów, celem dokonania rezerwacji

biletów bądź pokojów, a nawet informacje specjalne jak chociażby uczulenia klienta (celem
wykluczenia z posiłków czynników uczulających).

background image

14

Dokumentacja projektowa systemu informatycznego

d) Interfejs zarządu

Celem szczególnym budowy interfejsu dla zarządu spółki było jego szczególne uproszczenie.

Dlatego zrezygnowaliśmy tu z budowy opartej na kontach, zamieniając ją na ogólny interfejs dla
wszystkich użytkowników. Mogliśmy to wykonad między innymi dlatego, że członkowie zarządu
głównie przeglądają informacje w sowim panelu (takie jak raporty i statystyki), a nie wprowadzają
zmian. Osoby zarządzające pracownikami (dział HR) ma jednak swój klucz, który daje im możliwośd
edycji pracowników (zatrudnienie, zmiana danych, zwolnienie). Jest to chroniona częśd aplikacji dla
zarządu.


Program dla zarządu na bieżąco wykonuje kopie zapasowe i snapshoty aplikacji w sposób

zautomatyzowany, celem odtworzenia stanu po nieprawidłowym użyciu. Program nie pozwala na
opuszczenie interfejsu bez potwierdzenia wprowadzonych zmian (ukazuje wtedy pełną listę zmian) i
wylogowania z aplikacji.


Aplikacja zarządu z założenia miała byd minimalistyczna. Liczba sytuacji, w której pracownik

wprowadza dane jest zredukowana do niezbędnego minimum. Symbole graficzne zostały zastąpione
dużymi, intuicyjnymi ikonami oraz zastosowano rozszerzony system potwierdzeo.

background image

15

Dokumentacja projektowa systemu informatycznego

e) Aplikacja centrali

Każdy pracownik centrali ma własne konto w systemie. Zmiany wprowadzone przez centralę są

krytyczne z punktu widzenia działalności firmy, dlatego ważne jest śledzenie zmian oraz osób
odpowiadających za te zmiany.


W oknie finalizacji pracownik centrali może akceptowad oferty indywidualne nadesłane przez

biura terenowe. Kliknięcie w każdą ofertę przenosi do okna ze szczegółami oferty, w tym danymi o
podwykonawcach i wszystkich klientach, którzy złożyli zamówienie. Dzięki temu możliwe jest
śledzenie wpłat i wystawianie ewentualnych upomnieo o płatnościach, bądź ich anulowanie. Możliwe
jest także wysłanie zapytania do podwykonawcy (dane osoby kontaktowej są przechowywane w
bazie danych), celem omówienia szczegółów realizacji usługi.


Niezwykle istotnym jest panel tworzenia ofert. Pracownik układa w nim zakres wycieczki

uwzględniając aktualne trendy na rynku, możliwości dostarczenia usług przez podwykonawców, a
także inne subiektywne cechy. Może dodawad szczególne atrakcje, zdjęcia (każdy pracownik ma
dostęp do ogólnej bazy multimediów związanych z różnymi zakątkami świata). Pracownicy wyżsi
stażem ustalają ceny, rabaty i inne promocje. Tak utworzona oferta trafia do bazy danych i może byd
wyszukana przez klientów na stronie internetowej oraz przez pracownika biura w swojej aplikacji.
Dopuszcza się jednak nieznaczne opóźnienia związane z architekturą i ustaleniami optymalizacyjnymi
systemu, np. cache’owanie (szczególnie jeśli chodzi o stronę internetową).


W panelu finansowym dokonuje się przelewów dla podwykonawców, sprawdza płatności od

klientów i inne dane związane z finansami.

background image

16

Dokumentacja projektowa systemu informatycznego

6. Protokoły komunikacyjne

W celu zapewnienia łączności i wymiany danych między jednostkami i urządzeniami stosowane

są protokoły komunikacyjne. Jest to zbiór ścisłych reguł i kroków postępowania. W sieci lokalnej
korzysta się z transmisji FastEthernet, natomiast w komunikacji z odległym hostem (poprzez sied
Internet) wykorzystuje się protokoły modelu TCP/IP. Z punktu widzenia użytkownika, nie jest istotne
jaki protokół w danej chwili jest wykorzystywany, jednak mając na uwadze konkretne problemy
projektowe w danych segmentach aplikacji, wyróżniamy niżej wymienione protokoły.

a) http – dzięki niemu możliwe jest przesyłanie hipertekstu (stron sieci Web) z serwera do

klienta. Można także przesyład żądania klienta. Jest to główny protokół, na którym oparty jest
interfejs Web dla użytkownika;

b) https – analogiczny protokół, używany celem szyfrowania transmisji między hostami; w

systemie wykorzystywany przy przesyłaniu wrażliwych danych, takich jaki dane logowania czy
informacje w momencie dokonywania płatności;

c) ftp – protokół transmisji plików; częśd plików może zostad udostępniona do pobrania przez

klientów, np. materiały reklamowe, broszury oraz multimedia;

d) pop3 i smtp – protokoły wykorzystywane przez pocztę elektroniczną;


7. Diagramy wdrożeniowe

7.1. Diagram komponentów

a) Strona i biuro

Komponenty dla strony internetowej i aplikacji biura są do siebie podobne. W obu sytuacjach

mamy do czynienia z szyfrowaniem podczas przesyłania „delikatnych” danych. Do wyboru jest
szyfrowanie RSA i DES. Także przy bazie danych, mimo użycia bazy firmy Oracle, system ma byd
kompatybilny z bazą firmy Microsoft.


Przy wyborze oferty korzysta się z katalogu ofert. Natomiast płatnośd i zamówienie wchodzą w

skład jednego komponentu – transakcji.


Przy aplikacji biura wyróżniono oddzielny komponent na graficzny interfejs użytkownika. GUI

bowiem ma byd niezależne od samej aplikacji. Dzięki temu obydwa komponenty będzie można
rozwijad 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.

background image

17

Dokumentacja projektowa systemu informatycznego

Strona internetowa

Biuro

background image

18

Dokumentacja projektowa systemu informatycznego

b) Centrala oraz podwykonawcy

Podobnie jak w przypadku wyżej, także tutaj wydzielono komponent graficznego interfejsu

użytkownika. Aplikacja ma dostęp do katalogu ofert, ale przede wszystkim komponent ofert daje
możliwośd ich dodawania i modyfikacji. Umożliwia także akceptację ofert indywidualnych
nadesłanych przez biura.


Na diagramie uwzględniono także rolę podwykonawców w systemie. Zaznaczono możliwośd

wzajemnej komunikacji oraz organizowania finansów. Odpowiada za nią komponent transakcji.
Realizuje ponadto transakcje do zamówieo klientów, w tym płatności, sprawdzanie ich poprawności i
ewentualne wystawianie upomnieo.


Także na tym diagramie uwzględniono, że częśd systemu centrali ma byd nie tylko kompatybilna z

bazą danych firmy Oracle, ale także z systemem Microsoft SQL Server.

background image

19

Dokumentacja projektowa systemu informatycznego

c) Zarząd

Zmianą w diagramie komponentów dla zarządu są dodane komponenty pracownik i raport.

Generowany raport może byd przeglądany bezpośrednio w aplikacji. Komponent pracownik
dostarcza możliwości dodania, zmiany, usunięcia, bądź zlecenia wypłaty.


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




7.2. 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.





background image

20

Dokumentacja projektowa systemu informatycznego


a) Obsługa klienta

Komputer klienta łączy się z serwerem obsługi poprzez stos protokołów TCP/IP. Komunikacja

między serwerami firmy odbywa się poprzez FastEthernet.


Klient może się zarejestrowad oraz przeglądad oferty stworzone przez centralę. Po wybraniu

satysfakcjonującej go wycieczki może ją zamówid poprzez odpowiedni formularz. Wszystkie zmiany
zapisywane są w bazie danych. Komputer centrali i serwer obsługi klienta są połączone z centralną
bazą danych.


background image

21

Dokumentacja projektowa systemu informatycznego

b) Biuro

Pracownik biura może łączyd się bazą danych centrali firmy poprzez zbiór protokołów TCP/IP.

Może wyszukad oferty oraz zamówid ofertę, która podoba się klientowi. Może także, w zależności od
potrzeb złożyd specjalne zamówienie.


Pracownik może także drukowad oferty klientowi celem zapoznania się z nimi w domu. Gdy się

zdecyduje, możliwe jest wydrukowanie paragonu na drukarce, która połączona jest z systemem.
Wykorzystywany jest także program księgowy GTSubiekt.

background image

22

Dokumentacja projektowa systemu informatycznego

c) Podwykonawcy

Podwykonawcy również komunikują się poprzez TCP/IP. Dane przez nich aktualizowane zapisują

się w bazie danych dotyczących ich zasobów, natomiast sami pobierają zamówienia i informacje o
klientach.


Każde żądanie przechodzi jednak przez serwer centrali celem zapewnienia poprawności i

spójności wymienianych danych.

background image

23

Dokumentacja projektowa systemu informatycznego

d) Transakcje

W transakcjach pośredniczy serwer banku. Artefakt banku na schemacie pełni rolę poglądową,

gdyż każdy bank może inaczej implementowad swój system.

e) Zarząd

Komputery zarządu stoją w siedzibie firmy, dlatego komunikacja odbywa się przez FastEthernet.

Zarząd nie ma dostępu do systemu z zewnątrz.

background image

24

Dokumentacja projektowa systemu informatycznego

8. Harmonogram implementacji

Budowa systemu informatycznego dla biura podróży Husajn została podzielona na następujące

etapy:

Implementacja bazy danych

Czerwiec 2010

Fizyczne lokowanie serwerów i łącz

Czerwiec – lipiec 2010

Implementacja modelu (MVC) – podstawowych klas modelu

Lipiec – wrzesieo 2010

Implementacja pozostałych elementów systemu, łączenie

Sierpieo – październik 2010

Implementacja interfejsów użytkownika

Listopad 2010

Testy wewnętrzne

Listopad 2010

Wdrożenie

Pocz. grudnia 2010

Testy, zapełnianie bazy danych, tworzenie ofert

Grudzieo 2010

Start komercyjny

Początek 2011


9. Plan testów

a) Testowanie bazy danych

Tworzona baza danych zostanie przetestowana pod względem bezpieczeostwa oraz dbałości o

niski poziom redundancji (nadmiarowości) przechowywanych danych. Dostęp do wglądu w bazę
danych powinien mied tylko pracownik działu IT, który ma również możliwośd łatwej edycji zawartych
w niej rekordów. W celu zabezpieczenia przed nieumyślnym skasowaniem danych sprawdzamy
funkcjonalnośd i działanie modułu umożliwiającego tworzenie kopii zapasowych. Moduł ten ma
wbudowaną funkcję autowywoływania przed każdą próbą edycji danych. Kopię można ustawid na
wykonywanie backupu całościowego lub przyrostowego. Naszym zadaniem jest zbadanie wszystkich
możliwości obejśd 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 zapytao

testowych. W ten sposób system zarządzania bazą danych zostanie „zasypany” dużą liczbą zapytao.
Dzięki temu zbadamy nie tylko poprawnośd, ale także odpornośd systemu na duży ruch.

b) Testowanie aplikacji przeznaczonych dla pracowników

Dzięki aplikacji przeznaczonej dla pracownika, ma on możliwośd dodania oferty, przyjęcia

zamówienia. Testując sprawdzamy odpornośd formularzy na wprowadzane dane. Ewentualne błędy,
przy automatycznym zapisie do bazy danych, mogłyby spowodowad duże konsekwencje. Badamy
odpornośd na wprowadzanie danych specyficznych, bądź danych, które w dane pole wprowadzone
byd nie powinne. Tego typu testy dotyczą każdej aplikacji. Należy ponadto sprawdzid, czy dane
przesyłane między biurem a centralą nie ulegają zniekształceniu bądź przekłamaniu. Tutaj także
okazuje się pomocna aplikacja do automatyzowania procesu testowania.

background image

25

Dokumentacja projektowa systemu informatycznego

c) Testowanie aplikacji internetowej dla klientów

Klient ma możliwośd zamówienia oferty przez Internet. 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ą spowodowad incydenty bezpieczeostwa.


Aplikacja WWW jest narażona na specyficzne ataki, chociażby wstrzyknięcia kodu HTML, JS w

formularz i zapisanie ich w bazie. Atak typu XSS (Cross Site Scripting) może dad początek phishingowi
poprzez podmianę strony bądź przekserowanie na stronę osoby atakującej. Sprawdzając każde pole
formularza zabezpieczamy klientów przez kradzieżą tożsamości internetowej, a nawet danych
dotyczących karty płatniczej.


Należy zwrócid uwagę na ataki CSRF (Cross Site Request Forgery), które mogą doprowadzid do

nieświadomego przesyłania przez użytkownika do serwera żądania spreparowanego przez osoby o
wrogich zamiarach. Trzeba sprawdzid mechanizm potwierdzeo przy zamówieniach oraz poprawnośd
generowania tokenów (transparentnych dla użytkownika) przy każdorazowym żądaniu strony. Należy
ograniczyd metodę GET do przesyłania wrażliwych danych.


Trzeba ponadto sprawdzid podatnośd aplikacji Web na ataki Session Poisoning oraz Session

Fixation. Mogą one doprowadzid do przejęcia bądź uszkodzenia sesji użytkownika, a co za tym idzie
uzyskania dostępu do jego konta.


Szczególnie krytycznym z punktu widzenia aplikacji internetowej byłby błąd SQL Injection. Na

przetestowanie strony pod kątem podatności na niego należy przeznaczyd wiele czasu i możliwości.
Trzeba wykorzystad narzędzia wspomagające testy i automatyzujące tworzenie szkodliwych żądao.


Ponadto trzeba się upewnid, że wszystkie pliki, które nie mają byd bezpośrednio dostępne dla

użytkownika znajdują się poza katalogiem public_html serwera.

d) Testowanie modułu przelewów

Moduł przelewów jest jedną ze składowych aplikacji internetowej przeznaczonej dla klientów

oraz podwykonawców. Naszym zadaniem w tej fazie testów jest przetestowanie zabezpieczeo oraz
reakcje na różne dane, które zostaną wpisane nieprawidłowo. Należy także sprawdzid, czy system
banku prawidłowo reaguje na żądania projektowanego systemu, czy nie ma przekłamao w kwotach
przelewów ani przy rozpoznawaniu użytkownika zlecającego przelew.

e) Testowanie aplikacji dla podwykonawców

Natychmiastowy kontakt z podwykonawcą jest niezbędny do wykonywania koniecznych zadao

przy realizacji poszczególnych zamówieo. Sprawdzenie automatyzacji działania oraz zabezpieczenie
kanałów komunikacyjnych jest w tym wypadku głównym zadaniem. Musimy sprawdzid co się stanie
przy wyczerpaniu środków do realizacji zadania z jednej lub drugiej strony.

background image

26

Dokumentacja projektowa systemu informatycznego

Należy także sprawdzid reakcje na dane niestandardowe oraz potencjalnie niebezpieczne. Trzeba

przetestowad moduł odpowiedzialny za komunikację, czy nie ma zmian w przesyłanych informacjach
oraz czy podwykonawcy mają dostęp tylko do tych danych, do których udzielono im dostępu.

10. Podsumowanie

Niniejszy dokument podsumowuje fazy przedimplementacyjne ściśle definiując i opisując

projektowany system. Każde zagadnienie zostało przeanalizowane, a dostarczone diagramy w sposób
intuicyjny i jednoznaczny przedstawiają system z różnych punktów widzenia. Każdy komponent
systemy został przeanalizowany, a wnioski zapisane. Dzięki temu system jest gotowy do
implementacji, nie pozostawiając niejednoznaczności i niedomówieo w kwestii jego budowy i
wymagao funkcjonalnych, niefunkcjonalnych i dziedzinowych.


Zostały omówione także fazy postimplementacyjne, w tym wszystkie protokoły jakie zostaną

użyte do komunikacji między wszystkimi komponentami. Przeanalizowano także fizyczną budowę i
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.


Przygotowano także plan testów, które zostaną wykonane przez wdrożeniem systemu.

Sprawdzają one podatnośd na niestandardowe użycie oraz potencjalne incydenty bezpieczeostwa.


Wyszukiwarka

Podobne podstrony:
Wykład 3 Dokumentacja projektowa i STWiOR
GAITC Dokumentacja projektu
DU202poz2072 Szczegółowy zakres i forma dokumentacji projektowej
Tomaszewicz,projektowanie urbanistyczne, DOKUMENTACJA PROJEKTOWA NORMY I PRZEPISY PRAWNE W PROJEKTOW
Rozp w sprawie geodezyjnej ewidencji sieci uzbrojenia terenu oraz zespołów uzgadniania dokumentacji
wniosek o koordynacje dokumentacji projektowej
50 w sprawie geodezyjnej ewidencji sieci uzbrojenia terenu oraz zespołów uzgadniania dokumentacji pr
dokumentacja projektowa
1 Dokumentacja wymagan I8Y2
Rodzaje dokumentacji projektowych Etapy ich powstawania
DOKUMENTACJA PROJEKTOWO-BUDOWLANA, Podstawy projektowania inżynierskiego
Protokół odbioru dokumentacji projektowej, BUDOWNICTWO, potrzebne druki
Dokumentacyjna Projektowanie 2
Programowanie obiektowe dokumentacja projektu

więcej podobnych podstron