Inżynieria oprogramowania
Projekt
Dawid Marks
Kierunek Informatyka
III rok niestacjonarnych studiów I stopnia
Rok akademicki 2011/2012
prowadzący: dr inż. Krzysztof Bartecki
Temat projektu
Ogród Zoologiczny
Politechnika Opolska 2012
Spis treści
1. Cel projektu |
3 |
2. Opis dziedziny problemu |
3 |
3. Zakres i kontekst przedsięwzięcia |
3 |
3.1. Zakres przedsięwzięcia |
3 |
3.2. Kontekst przedsięwzięcia |
4 |
4. Wymagania funkcjonalne |
4 |
4.1. Hierarchia wymagań funkcjonalnych |
7 |
5. Wymagania niefunkcjonalne |
7 |
6. Narzędzia programistyczne |
8 |
7. Architektura systemu |
8 |
8. Platforma sprzętowa |
8 |
8.1. Serwer |
8 |
8.2. Klient |
8 |
9. Diagramy DFD |
9 |
9.1. Diagram DFD kontekstowy |
9 |
9.2. Diagram DFD I poziomu |
9 |
9.3. Diagramy DFD II poziomu |
10 |
9.4. Diagramy DFD III poziomu |
11 |
9.5. Diagramy DFD IV poziomu |
14 |
10. Macierz CRUD |
19 |
11. Diagram związków encji |
20 |
12. Słownik danych |
20 |
12.1. Magazyny danych |
20 |
12.2. Przepływ danych |
21 |
13. Specyfikacja procesów |
23 |
1. Cel projektu
łatwy dostęp do ewidencji gatunków, zwierząt, sektorów, wybiegów, pomieszczeń ogrodu zoologicznego,
łatwy dostęp do wykazu wszystkich pracowników ogrodu zoologicznego,
łatwość w administracji ogrodu zoologicznego.
2. Opis dziedziny problemu
System ma na celu ułatwienie administracji, szybki dostęp do wykazu ewidencji nabytków, pomieszczeń oraz pracowników ogrodu zoologicznego.
3. Zakres i kontekst przedsięwzięcia
3.1. Zakres przedsięwzięcia
wykaz gatunków,
dodawanie gatunków,
edytowanie danych o gatunkach,
wyświetlenie danych o gatunku,
wykaz zwierząt,
dodawanie zwierząt,
edytowanie danych o zwierzętach,
wyświetlenie danych o zwierzęciu,
wykaz sektorów,
dodawanie sektorów,
edytowanie danych o sektorach,
wyświetlenie danych o sektorze,
wykaz wybiegów,
dodawanie wybiegów,
edytowanie danych o wybiegach,
wyświetlenie danych o wybiegu,
wykaz pomieszczeń,
dodawanie pomieszczeń,
edytowanie danych o pomieszczeniach,
wyświetlenie danych o pomieszczeniu,
wykaz opiekunów,
wykaz pracowników,
dodawanie pracowników,
edytowanie danych o pracownikach,
wyświetlenie danych o pracowniku.
3.2. Kontekst przedsięwzięcia
Zewnętrznymi systemami, z którymi system będzie współpracował, będą:
pracownik
właściciel
4. Wymagania funkcjonalne
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu gatunków. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych gatunków uszeregowanych alfabetycznie.
System powinien umożliwiać pracownikowi oraz właścicielowi na dodanie nowego gatunku. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz do wypełnienia w którym określa nazwę gatunku.
System powinien umożliwiać pracownikowi oraz właścicielowi na edycję dodanego gatunku. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz wypełniony wcześniej podanymi danymi i dokonuje poprawek.
System powinien umożliwiać pracownikowi oraz właścicielowi na wyświetlenie danych wybranego gatunku. Polegało by to na tym że pracownik lub właściciel dostaje spis wszystkich informacji o gatunku.
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu zwierząt. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych zwierząt uszeregowanych alfabetycznie.
System powinien umożliwiać pracownikowi oraz właścicielowi na dodanie nowego zwierzęcia. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz do wypełnienia w którym określa nazwę gatunku, nazwę zwierzęcia, miejsce skąd zwierze jest sprowadzone oraz numer wybiegu.
System powinien umożliwiać pracownikowi oraz właścicielowi na edycję dodanego zwierzęcia. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz wypełniony wcześniej podanymi danymi i dokonuje poprawek.
System powinien umożliwiać pracownikowi oraz właścicielowi na wyświetlenie danych wybranego zwierzęcia. Polegało by to na tym że pracownik lub właściciel dostaje spis wszystkich informacji o zwierzęciu.
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu sektorów. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych sektorów uszeregowanych alfabetycznie.
System powinien umożliwiać pracownikowi oraz właścicielowi na dodanie nowego sektora. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz do wypełnienia w którym określa nazwę nazwę sektora.
System powinien umożliwiać pracownikowi oraz właścicielowi na edycję dodanego sektora. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz wypełniony wcześniej podanymi danymi i dokonuje poprawek.
System powinien umożliwiać pracownikowi oraz właścicielowi na wyświetlenie danych wybranego sektora. Polegało by to na tym że pracownik lub właściciel dostaje spis wszystkich informacji o sektorze.
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu wybiegów. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych wybiegów uszeregowanych alfabetycznie.
System powinien umożliwiać pracownikowi oraz właścicielowi na dodanie nowego wybiegu. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz do wypełnienia w którym określa nazwę wybiegu oraz sektor.
System powinien umożliwiać pracownikowi oraz właścicielowi na edycję dodanego wybiegu. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz wypełniony wcześniej podanymi danymi i dokonuje poprawek.
System powinien umożliwiać pracownikowi oraz właścicielowi na wyświetlenie danych wybranego wybiegu. Polegało by to na tym że pracownik lub właściciel dostaje spis wszystkich informacji o wybiegu.
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu pomieszczeń. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych pomieszczeń uszeregowanych alfabetycznie.
System powinien umożliwiać pracownikowi oraz właścicielowi na dodanie nowego pomieszczenia. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz do wypełnienia w którym określa nazwę pomieszczenia, sektor oraz funkcję jaką spełnia.
System powinien umożliwiać pracownikowi oraz właścicielowi na edycję dodanego pomieszczenia. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz wypełniony wcześniej podanymi danymi i dokonuje poprawek.
System powinien umożliwiać pracownikowi oraz właścicielowi na wyświetlenie danych wybranego pomieszczenia. Polegało by to na tym że pracownik lub właściciel dostaje spis wszystkich informacji o pomieszczeniu.
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu opiekunów. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych opiekunów uszeregowanych alfabetycznie.
System powinien umożliwiać pracownikowi oraz właścicielowi na wgląd do wykazu pracowników. Polegało by to na tym, że pracownik lub właściciel dostaje listę wszystkich dodanych pracowników uszeregowanych alfabetycznie.
System powinien umożliwiać właścicielowi na dodanie nowego pracownika. Polegało by to na tym, że pracownik lub właściciel otrzymuje formularz do wypełnienia w którym określa nazwisko, imię, adres zamieszkania, funkcję, oraz przypadku opiekuna zwierze, w pozostałych przypadkach sektor.
System powinien umożliwiać właścicielowi na edycję dodanego pracownika. Polegało by to na tym, że właściciel otrzymuje formularz wypełniony wcześniej podanymi danymi i dokonuje poprawek.
System powinien umożliwiać właścicielowi na wyświetlenie danych wybranego pracowniku. Polegało by to na tym że właściciel dostaje spis wszystkich informacji o pracowniku.
4.1. Hierarchia wymagań funkcjonalnych
5. Wymagania niefunkcjonalne
musi istnieć możliwość obsługi systemu za pomocą myszki i klawiatury oraz wyłącznie za pomocą klawiatury,
system automatycznie dodaje do każdego rekordu datę dodania owego rekordu do bazy danych,
kopia bezpieczeństwa bazy danych powinna być wykonywane w każdą niedzielę o godzinie 00:00:00,
czas szkolenia użytkowników systemu wynosi 5 godzin.
6. Narzędzia programistyczne
Jako platformę proponuje użyć Eclipse, gdyż pozwala ona na napisanie systemu w języku Java, co będzie pozwalało na uruchomienia aplikacji na każdym systemie operacyjnym który posiada maszynę wirtualną Java, ponadto język Java jest kompatybilny z serwerami baz danych, a sama platforma programistyczna jest darmowa.
7. Architektura systemu
System operacyjny działający w architekturze klient-serwer, z zastosowaniem graficznego systemu operacyjnego opartego na jądrze UNIX, jako serwer bazy danych zaleca się użycie MySQL.
8. Platforma sprzętowa
8.1. Serwer
procesor Intel Xenon Quadcore x3430 (4x2,4GHz),
przestrzeń dyskowa 250GB,
pamięć RAM 4GB,
monitor LCD o przekątnej 15 cali,
klawiatura,
mysz.
Serwer powinien działać szybko aby obsłużyć kilka klientów, przestrzeń dyskowa powinna być duża gdyż do system będzie przechowywał wiele informacji.
8.2. Klient
procesor Intel Core 2 Duo (1,6GHz),
przestrzeń dyskowa 10 GB,
pamięć RAM 1GB,
monitor LCD panoramiczny o przekątnej nie mniejszej niż19 cali,
klawiatura,
mysz.
Klient nie musi być aż tak potężny jak serwer, ale powinien posiadać większy monitor aby wyświetlić więcej danych. Przestrzeń dyskowa jest tu wykorzystywana głównie na system operacyjny.
9. Diagramy DFD
9.1. Diagram DFD kontekstowy
|
Diagram DFD kontekstowy |
9.2. Diagram DFD I poziomu
|
Diagram DFD I poziomu |
9.3. Diagramy DFD II poziomu
|
Zdarzenie 2: Zarządzaj okazami |
|
Zdarzenie 3: Zarządzaj nieruchomościami |
|
Zdarzenie 4: Zarządzaj pracownikami |
9.4. Diagramy DFD III poziomu
|
Zdarzenie 5: Zarządzaj gatunkami |
|
Zdarzenie 6: Zarządzaj zwierzętami |
|
Zdarzenie 7: Zarządzaj sektorami |
|
Zdarzenie 8: Zarządzaj wybiegami |
|
Zdarzenie 9: Zarządzaj pomieszczeniami |
4.5. Diagramy DFD IV poziomu
|
Zdarzenie 11: Dodaj pracownika |
|
Zdarzenie 12: Edytuj dane pracownika |
|
Zdarzenie 17: Dodaj gatunek |
|
Zdarzenie 18: Edytuj dane gatunku |
|
Zdarzenie 22: Dodaj zwierze |
|
Zdarzenie 23: Edytuj dane zwierzęcia |
|
Zdarzenie 27: Dodaj sektor |
|
Zdarzenie 28: Edytuj dane sektora |
|
Zdarzenie 32: Dodaj wybieg |
|
Zdarzenie 33: Edytuj dane wybiegu |
|
Zdarzenie 37: Dodaj pomieszczenie |
|
Zdarzenie 38: Edytuj dane pomieszczenia |
10. Macierz CRUD
Zdarzenie |
Gatunki |
Pomieszczenia |
Pracownicy |
Sektory |
Wybiegi |
Zwierzęta |
10 |
|
R |
R |
R |
|
R |
13 |
|
D |
|
|
|
|
14 |
|
R |
|
|
|
|
15 |
R |
|
|
|
|
|
16 |
R |
|
|
|
|
R |
19 |
D |
|
|
|
|
|
20 |
|
|
|
|
|
R |
21 |
R |
R |
|
|
R |
R |
24 |
|
|
|
|
|
D |
25 |
|
|
|
R |
|
|
26 |
|
R |
R |
R |
R |
|
29 |
|
|
|
D |
|
|
30 |
|
|
|
|
R |
|
31 |
|
|
|
|
R |
R |
34 |
|
|
|
|
D |
|
35 |
|
|
R |
|
|
|
36 |
|
R |
R |
|
|
|
39 |
|
|
D |
|
|
|
41 |
|
R |
|
|
|
|
42 |
|
C |
|
|
|
|
44 |
|
U |
|
|
|
|
50 |
|
R |
|
|
|
|
46 |
R |
|
|
|
|
|
47 |
C |
|
|
|
|
|
49 |
U |
|
|
|
|
|
51 |
R |
|
|
|
|
|
53 |
|
|
|
|
|
R |
54 |
|
|
|
|
|
C |
56 |
|
|
|
|
|
U |
57 |
|
|
|
|
|
R |
59 |
|
|
|
R |
|
|
60 |
|
|
|
C |
|
|
62 |
|
|
|
U |
|
|
63 |
|
|
|
R |
|
|
65 |
|
|
|
|
R |
|
66 |
|
|
|
|
C |
|
68 |
|
|
|
|
U |
|
69 |
|
|
|
|
R |
|
71 |
|
|
R |
|
|
|
72 |
|
|
C |
|
|
|
74 |
|
|
U |
|
|
|
75 |
|
|
R |
|
|
|
11. Diagram związków encji
12. Słownik danych
Cyfra = [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ]
Litera = [a … z | A … Z ]
Znak = [ % | - | . | : | _ ]
Rok = Cyfra + Cyfra + Cyfra + Cyfra
Miesiąc = [ 1 ... 12 ]
Dzień = [ 0 … 31 ]
Godzina = [ 0 … 23 ]
Minuta = [ 0 … 60 ]
Sekunda = [ 0 … 60 ]
Data
= Rok + Znak - + Miesiąc + Znak - + Dzień + Znak _
+
Godzina + Znak : + Minuta + Znak : + Sekunda
12.1. Magazyny danych
Gatunek = @id_gatunku + nazwa_gatunku + dodano
@id_gatunku = {Cyfra}
nazwa_gatunku = {Litera}
dodano = Data
Pracownik = @id_pracownika + nazwisko_pracownika + imie_pracownika + adres + telefon + NIP + PESEL + funkcja_pracownika + zatrudniono + dodano
@id_pracownika = {Cyfra}
nazwisko_pracwonika = {Litera}
imie_pracownika = {Litera}
adres
= Ulica + Nr_budynku + (
Nr_lokalu ) + Kod_pocztowy
+ Miejscowość
Ulica = {Litera}
Nr_budynku = {Cyfra} + (Litera)
Nr_lokalu = {Cyfra} + (Litera)
Kod_pocztowy = Cyfra + Cyfra + Znak - + Cyfra + Cyfra + Cyfra
Miejscowość = {Litera}
telefon = 9{Cyfra}
NIP = 10{Cyfra}
PESEL = 10{Cyfra}
funkcja_pracownika = [ sprzatanie | opieka | administracja | ochrona ]
zatrudniono = Data
dodano = Data
Pomieszczenie = @id_pomieszczenia + nazwa_pomieszczenia + dodano
@id_pomieszczenia = {Cyfra}
nazwa_pomieszczenia = {Litera}
dodano = Data
Sektor = @id_sektora + nazwa_sektora + dodano
@id_sektora = {Cyfra}
nazwa_sektora = {Litera}
dodano = Data
Wybieg = @id_wybiegu + nazwa_wybiegu + dodano
@id_wybiegu = {Cyfra}
nazwa_wybiegu = {Litera}
dodano = Data
Zwierze = @id_zwierzecia + nazwa_ zwierzecia + kraj + dodano
@id_zwierzecia = {Cyfra}
nazwa_zwierzecia = {Litera}
kraj = 2{Litera}
dodano = Data
12.2. Przepływy danych
Dane_Gatunku = @id_gatunku + nazwa_gatunku + dodano
Dane_Gatunków = {Dane_Gatunku}
Id_Gatunku = @id_gatunku
Dane_Pracownika
= @id_pracownika + nazwisko_pracownika + imie_pracownika
+
adres + telefon + NIP + PESEL + funkcja_pracownika
+
zatrudniono + dodano
Dane_pracowników = {Dane_Pracwonika}
Id_Pracownika = @id_pracwonika
Nip = nip
Dane_Pomieszczenia = @id_pomieszczenia + nazwa_pomieszczenia + dodano
Dane_Pomieszczeń = {Dane_Pomieszczenia}
Id_Pomieszczenia = @id_pomieszczenia
Nazwa_Pomieszczenia = nazwa_pomieszczenia
Dane_Sektora = @id_sektora + nazwa_sektora + dodano
Dane_Sektorów = {Dane_Sektora}
Id_Sektora = @id_sektora
Nazwa_Sektora = nazwa_sektora
Dane_Wybiegu = @id_wybiegu + nazwa_wybiegu + dodano
Dane_wybiegów = {Dane_Wybiegu}
Id_Wybiegu = @id_wybiegu
Nazwa_Wybiegu = nazwa_wybiegu
Dane_Zwierzęcia = @id_zwierzecia + nazwa_ zwierzecia + kraj + dodano
Dane_Zwierząt = {Dane_Zwierzęcia}
Nazwa_Zwierzęcia = nazwa_zwierzecia
13. Specyfikacja procesów
Zdarzenie 13: Zwolnij pracownika
Warunek początkowy 1:
Administrator postanowił zwolnić pracownika o danym Id_Pracwonika i kliknął przycisk Zwolnij Pracownika, a pracownik widnieje w bazie danych.
Warunek końcowy 1:
Dane pracownika o danym Id_pracwonika zostaną usunięte z bzy danych.
Warunek początkowy 2:
Administrator postanowił zwolnić pracownika o danym Id_Pracwonika i kliknął przycisk Zwolnij Pracownika, a pracownik nie widnieje w bazie danych.
Warunek końcowy 2:
Generuje się komunikat o błędzie.
Zdarzenie 20: Wyświetl zwierzęta
Warunek początkowy 1:
Pracownik
lub Właściciel kliknął w zakładkę Pokaż listę
dodanych zwierząt, gdy
w
bazie danych zostało zarejestrowane przynajmniej jedno zwierze.
Warunek końcowy 1:
Pracownik lub Właściciel otrzymuje listę wszystkich dodanych zwierząt.
Warunek początkowy 2:
Pracownik
lub Właściciel
kliknął w zakładkę Pokaż listę dodanych zwierząt,
gdy
w bazie danych nie zostało zarejestrowane żadne zwierze.
Warunek końcowy 2:
Generuje się komunikat o błędzie.
Zdarzenie 26: Wyświetl dane sektora
Warunek początkowy:
Wybrano poprawny Id_Sektora.
Warunek końcowy:
Wyświetlane są wszystkie dane o sektorze odnośnie wybranego Id_Sektora.
Zdarzenie 64: Wypełnij formularz dodawania wybiegu
Warunek początkowy 1:
Podano wszystkie wymagane dane odnośnie wybiegu.
Warunek końcowy 1:
Nastąpi sprawdzenie czy wybieg o podanych danych już istnieje w bazie danych.
Warunek początkowy 2:
Nie podano wszystkich wymaganych danych.
Warunek końcowy 2:
Generuje się komunikat o błędzie.
Zdarzenie 75: Odczytaj dane pomieszczenia
Warunek początkowy 1:
Odczytano z bazy danych danych pomieszczenie o danym Id_Pomieszczenia.
Warunek końcowy 1:
Nastąpi przesłanie odczytanych danych do formularza edycji pomieszczenia.
Warunek początkowy 2:
Nie odczytano z bazy danych danych pomieszczenia o danym Id_Pomieszczenia.
Warunek końcowy 2:
Generuje się komunikat o błędzie.
-