dla studentów informatyki (3 rok, inż.)
Przed rozpoczęciem zajęć proszę zapoznać się z całością tej strony.
Organizacja zajęć
Celem tego kursu jest projektowanie, implementacja i testowanie relacyjnej bazy danych i związanej z nią desktopowej lub mobilnej aplikacji, nie będącej aplikacją webową. W ramach projektowania i testowania należy korzystać z wiedzy zdobywanej na laboratoriach z Inżynierii Oprogramowania.
Zadania te wykonywane są w 3-osobowych zespołach, które same ustalają sobie sposób współpracy i podział zadań, zgodnie z umieszczonym niżej planem zajęć. Skład zespołu zostanie wylosowany podczas pierwszych zajęć.
Zajęcia mają postać dobrowolnych konsultacji z nauczycielem. Przynajmniej 1 raz na każdy etap zajęć trzeba być na zajęciach. Większa nieobecność na zajęciach może prowadzić do niezaliczenia kursu.
Poniżej znajdują się m.in.: plan zajęć (czyli co i do kiedy należy wykonać), przykładowe tematy projektów, wymagania dotyczące zawartości i oddawania sprawozdań oraz sposób oceniania.
Plan zajęć
Prace nad projektem podzielone są na 3 etapy.
- wstęp (tydzień 1):
- Utworzenie składu zespołu projektowego.
- Propozycja tematu projektu (wymaga akceptacji).
- 1 etap (tygodnie 1–3): Specyfikacja wymagań:
- Opracowanie wymagań funkcjonalnych i niefunkcjonalnych dla bazy i aplikacji bazodanowej, czyli co (wymagania funkcjonalne) i jak (wymagania niefunkcjonalne) ma ona robić, oraz dla kogo (użytkownicy).
- Specyfikacja wymagań funkcjonalnych i realizujących je procesów biznesowych przy pomocy diagramu przypadków użycia i tekstowych opisów wszystkich przypadków użycia (scenariusze funkcjonowania aplikacji bazodanowej).
- 2 etap (tygodnie 4–8): Projekt, implementacja i testy bazy danych:
- Identyfikacja encji (danych przechowywanych w bazie) na podstawie analizy scenariuszy funkcjonowania aplikacji bazodanowej. Encja będzie też nazwą przyszłej tabeli.
- Sformułowanie wymagań dotyczących dostępu do bazy i jej zawartości (który użytkownik, na której tabeli, jakie operacje może wykonywać: wstawianie, modyfikacja usuwanie i wyszukiwanie).
- Opracowanie diagramu konceptualnego modelu bazy w 3. postaci normalnej:
- 1. postać normalna:
- każda kolumna przechowuje atomową wartość,
- min. jedna z kolumn zawiera klucze główne.
- 2. postać normalna:
- j.w.
- każda kolumna zależy od całego klucza, a nie tylko jego części.
- 3 postać normalna:
- j.w.
- żadna kolumna niekluczowa nie jest zależna od innej kolumny niekluczowej.
- 1. postać normalna:
- Opracowanie diagramu fizycznego modelu bazy (dostosowanego do wybranego serwera bazy danych), na podstawie konceptualnego modelu i utworzenie skryptu SQL definiującego tę bazę, zawierającego m.in.:
- Zdefiniowanie użytkowników bazy danych i nadanie im odpowiednich uprawnień.
- Zdefiniowanie typów kolumn zgodnie z wymaganiami serwera.
- Ustawienie odpowiednich kolumn jako unikalne i/lub opcjonalne.
- Zdefiniowanie kluczy głównych i obcych dla powiązania tabel.
- Zdefiniowanie zachowania bazy w przypadku modyfikacji i usuwania danych w powiązanych tabelach, z wykorzystaniem wyzwalaczy.
- Zdefiniowanie procedur i/lub funkcji dostępu do danych (automatyzacja i bezpieczeństwo wykonywania zapytań na bazie przez aplikację bazodanową).
- Wykorzystanie innych możliwości wybranego systemu zarządzania bazą (opcjonalnie).
- Wdrożenie bazy i przetestowanie jej (przy pomocy odpowiednich narzędzi, ewentualnie „ręcznie”; głównie testy jednostkowe), w tym sprawdzenie:
- integralności semantycznej (czy dane mają właściwy typ, rozmiar, format itp.);
- integralności encji (czy tabele mają unikalne i niepuste klucze główne);
- integralności referencji (czy wartości kluczy obcych są puste lub odpowiadają odpowiednim kluczom głównym z powiązanymi tabelami).
- 3 etap (tygodnie 9–14): Projekt, implementacja i testy aplikacji bazodanowej:
- Opracowanie makiety interfejsu graficznego aplikacji bazodanowej na podstawie scenariuszy funkcjonowania aplikacji bazodanowej i struktury bazy: szkic pokazujący krok po kroku jak będzie wyglądać i zachowywać się ta aplikacja na skutek działań jej użytkownika.
- Opracowanie diagramów czynności dla scenariuszy realizacji przypadków użycia: algorytm funkcjonowania aplikacji bazodanowej.
- Opracowanie diagramu klas: klasy i ich powiązania w aplikacji bazodanowej. Zastosowanie podziału na warstwy: modelu (szczegółowo), kontrolera/prezentera (szczegółowo) i widoku (przynajmniej szkicowo).
- Wykonanie i wdrożenie desktopowej lub mobilnej (nie webowej) aplikacji użytkownika dla wykonanej wcześniej bazy danych.
- Przetestowanie aplikacji bazodanowej (przy pomocy odpowiednich narzędzi, ewentualnie „ręcznie”; głównie testy funkcjonalne), w tym sprawdzenie:
- intuicyjności i idioto-odporności działania aplikacji,
- zgodności działania aplikacji ze scenariuszami jej funkcjonowania,
- wpływu aplikacji bazodanowej na zachowanie integralności i bezpieczeństwa bazy danych.
- zakończenie (tydzień 15):
- Oddanie raportu (1 plik pdf) z wszystkich etapów realizacji projektu w ich ostatecznej wersji.
- Prezentacja ukończonej bazy i aplikacji bazodanowej, jeśli nie było tego wcześniej.
- Wystawienie oceny końcowej.
Tematy projektów
Przykładowe przeznaczenie projektów z zeszłych lat:
- dla hurtowni napojów,
- dla internetowego serwisu muzyków,
- dla internetowego sklepu z odzieżą,
- dla kibiców sportowych,
- dla kina,
- dla obsługi konta bankowego,
- dla optymalizacji diety,
- dla organizacji studenckiej,
- dla producenta i sprzedawcy samochodów,
- dla produkcji i dystrybucji napojów,
- dla przychodni,
- dla sklepu i wypożyczalni książek,
- dla społecznościowego systemu podwożenia ludzi,
- dla stacjonarnego sklepu z elektroniką,
- dla studia nagrań,
- dla wypożyczalni miejskich rowerów,
- dla wypożyczalni samochodów,
- dla zamówień w fabryce.
Przydatne strony
- Entity Relationship Diagram (ERD) – przykłady
- UML Diagrams – przykłady
- Język UML – diagramy zachowań
- Język UML – diagramy struktury
- Język UML – modelowanie systemu informatycznego
Sprawozdania
Każdy etap zajęć kończy się oddaniem sprawozdania z tego etapu, a zakończenie semestru – oddaniem połączonego sprawozdania ze wszystkich etapów, po ich ewentualnym poprawieniu lub uzupełnieniu.
Sprawozdanie ma być w pliku pdf, w którym należy umieścić to, co wykonano w ramach danego etapu (lub całego kursu, w sprawozdaniu końcowym). W szczególności:
- dla projektu bazy lub aplikacji – opisy słowne, diagramy, rysunki itp.;
- dla implementacji bazy – sposób jej wdrożenia i cały jej kod SQL z wyjaśnieniem przykładowych fragmentów;
- dla implementacji aplikacji – sposób jej wykonania, wybrane fragmenty jej kodu z wyjaśnieniem i ilustracje pokazujące jej działanie;
- dla testów bazy lub aplikacji – sposób jej testowania i opisy lub kod przykładowych testów.
Najpóźniej ostatniego dnia każdego etapu, w czasie zajęć, przynajmniej 1 student z zespołu projektowego musi przyjść na zajęcia w celu omówienia pracy wykonanej w danym etapie. Wcześniej sprawozdanie z tego etapu należy przesłać mailem.
Oceny
Studenci otrzymują jedną lub kilka ocen za prace wykonane w każdym etapie. Podstawą oceny jest sprawozdanie i pokazanie działania bazy/aplikacji. Ocenę tę można poprawić w ciągu tygodnia po jej otrzymaniu, na maksymalnie 4,5 (mogą być wyjątki).
Studenci dowiadują się o ocenach podczas zajęć, na których je otrzymują. W razie potrzeby informacja te może być przekazana mailowo.
Oceny z 1. etapu są za: 1) określenie wymagań systemu informatycznego.
Oceny z 2. etapu są za: 1) model konceptualny bazy, 2) model fizyczny bazy, 3) kod SQL bazy i jego kompletność, 4) wyzwalacze, procedury, funkcje i dodatkowe elementy kodu SQL bazy, 5) testy bazy.
Oceny z 3. etapu są za: 1) makieta interfejsu graficznego aplikacji, 2) diagramy czynności zachowania aplikacji, 3) diagramy klas struktury aplikacji, 4) testy aplikacji.
Za oddanie sprawozdania po terminie ocena jest obniżana o 1 stopień.
Ocena końcowa to średnia wszystkich cząstkowych ocen.