Dokument wymagań projektowych Nazwa projektu: „Sprawdzarka z zajęć” Autorzy: Michał Rosiński, Patryk Gałka, Patryk Łukasiewicz, Adam Świnka Data: 25.10.2020 r 1. Elementy składowe projektu(produkty projektu) a) Elementy niefunkcjonalne I semestr • Prototypy aplikacji internetowej • Schematy i specyfikacja odnośnie architektury wykorzystanej w projekcie(wstępne plany i schematy) • Repozytorium Git zawierające kod aplikacji • Tablica projektowa Jira II semestr • Publikacja aplikacji w domenie internetowej ‘amu.edu.pl’ • Finalne prototypy aplikacji internetowej • Schematy i specyfikacja odnośnie architektury wykorzystanej w projekcie(finalna wersja i schemat) • Repozytorium Git, API • Tablica projektowa – Jira b) Elementy funkcjonalne I semestr • Aplikacja internetowa zintegrowana z REST API • Aplikacja serwerowa w języku Python oparta o framework Django w niepełnej funkcjonalności • Baza danych oparta o silnik MySQL wbudowana w framework Django II semestr • Aplikacja serwerowa w języku Python oparta o Framework Django w pełnej funkcjonalności • Instancja serwera bazy danych oparta o silnik MySQL 2. Granice projektu a) Produkty zawarte: • Aplikacja internetowa • Publikacja aplikacji w domenie amu.edu.pl • Aplikacja serwerowa – REST API • Relacyjna baza danych oparta o silnik MySQL • Platforma LDAP • Platforma Moodle • Aplikacja Microsoft Teams • Prototypy aplikacji internetowej • Dokumentacja dotycząca oprogramowania REST API • Dokumentacja, schematy i specyfikacja odnośnie architektury wykorzystanej w projekcie • Repozytorium Git zawierające kod aplikacji, API • Tablica projektowa – Jira b) Produkty niezawarte • Aplikacja mobilna(w tym przypadku byłaby mało praktyczna biorąc pod uwagę np. wstawianie plików o rozszerzeniu .pml) • Serwis internetowy USOS(brak możliwości skontaktowania się z Centrum Informatycznym UAM. W zamian za to system będzie zintegrowany z platformą LDAP) c) Funkcjonalności niezawarte • Możliwość oddawania zadań po terminie(klient nie życzy sobie aby oddawać zadania po terminie) • Wykorzystywanie sieci Petriego do analizy danych • Korzystanie z systemu przez studentów spoza wydziału(dla innych wydziałów aplikacja nie będzie potrzebna) • Wybieranie w aplikacji uczelni do której system mógłby mieć dostęp(po co, gdy tylko studenci WMI będą z niego korzystać) 3. Lista wymagań funkcjonalnych a) Sprawdzanie poprawności wykonanych zadań, takich jak sprawozdania w formacie .txt z metryczką w formacie .xml oraz programów napisanych w języku Promela b) Sprawdzanie poprawności formy metryczki w formacie .xml zawartej w zadaniach starego typu(sprawozdań) c) Wprowadzanie wyrażenia logiki temporalnej pod kodem źródłowym programu oddanego przez studenta d) Wstawianie kodu źródłowego Promeli do specjalnego formularza e) Komunikacja, wymiana informacji i pomysłów na forum internetowym f) Udostępnianie nowych zadań, plików, sprawozdań dla studentów g) Przyjmowanie rozwiązanych zadań od studentów h) Kontrolowanie prac nadesłanych przez studentów i wysyłanie informacji prowadzącemu o podejrzeniu plagiatu i) Aktualizowanie listy wszystkich studentów, wraz ze statystyką liczby punktów przez nich zdobytych j) Przekierowanie prowadzącego poprzez link do rozwiązania zadania oddanego przez studenta k) Integracja z aplikacją Microsoft Teams oraz platformą Moodle l) Prowadzenie rozmów wideo i komunikacja na czacie w aplikacji Microsoft Teams zintegrowanej z systemem 4. Lista wymagań niefunkcjonalnych a) Schematy i specyfikacja odnośnie architektury wykorzystanej w projekcie b) Tablica projektowa – Jira c) Prototypy aplikacji internetowej d) Prototyp bazy danych e) Publikacja aplikacji w domenie internetowej ‘amu.edu.pl’ f) Prototyp forum internetowego g) Prototyp formularza h) Wielkość i rozszerzenie przesyłanego pliku 5. Mierzalne wskaźniki wdrożeniowe a) System zostanie udostępniony w domenie internetowej amu.edu.pl i będą z niego korzystać osoby zapisane na zajęcia ‘Algorytmy rozproszone’ b) System zostanie przetestowany co najmniej 50 rozwiązanymi zadaniami, zarówno dotyczących sprawozdań, jak i programów zaimplementowanych w języku Promela, aby sprawdzić działanie sprawdzarki i systemu antyplagiatowego c) System zostanie poddany testom obciążeniowym, aby zbadać szybkość odpowiedzi serwera w przypadku gdy z systemu będzie korzystać określona liczba użytkowników d) Wielokrotnie(co najmniej 20 razy) zostanie przetestowane działanie systemu z zintegrowanymi z systemem aplikacjami i platformami zewnętrznymi e) Na koniec pierwszego semestru system zostanie dostarczony do klienta w wersji testowej alpha (rozumianej zgodnie z metodyką Agile) f) Na koniec drugiego semestru klient dostanie system w wersji testowej beta g) Prototyp zostanie zaakceptowany ustnie przez klienta 6. Kryteria akceptacji projektu dla I semestru prac • Ukończenie i wdrożenie podstawowych funkcjonalności do aplikacji internetowej • Przetestowanie zaimplementowanych funkcjonalności pod kątem użytkowym przez klienta • Wykonanie testów jednostkowych i sprawdzenie czy spełniają swoje zadanie • Wdrożenie systemu antyplagiatowego • Wykonanie testów dla sprawdzenia poprawności działania systemu antyplagiatowego • Dostarczenie prototypu aplikacji internetowej w wersji testowej alfa • Spełnienie częściowych wymagań klienta • Akceptacja wersji alfa produktu • Dostarczenie wstępnych prototypów składowych produktu • Planowana integracja systemu z platformą LDAP • Planowane wdrożenie systemu sprawdzającego rozwiązania zadań • Planowane połączenie systemu z aplikacją Microsoft Teams oraz z platformą Moodle 7. Kryteria akceptacji projektu dla II semestru prac • Ukończenie wszystkich funkcjonalności • Wdrożenie systemu sprawdzającego poprawność wykonanych sprawozdań oraz programów w języku Promela • Dostarczenie i zaakceptowanie wersji beta aplikacji internetowej • Dostarczenie wszystkich prototypów składowych produktów • Pozytywnie zakończone testy działania systemu • Integracja systemu z aplikacją Microsoft Teams oraz platformą Moodle • Integracja z uczelnianym systemem LDAP • Wdrożenie aplikacji na serwerze wskazanym przez klienta • Brak błędów utrudniających korzystanie z aplikacji • Wdrożenie aplikacji internetowej dla użytkownika końcowego w domenie internetowej amu.edu.pl • Produkt końcowy oddany w czasie 8. Organizacja pracy zespołu • Strona klienta: a) Dr Michał Hanćkowiak:  Product Owner  Komunikacja Product Owner z zespołem wykonawczym  Promotor zespołu • Strona zespołu projektowego: a) Michał Rosiński  Utworzenie interfejsu użytkownika  Utworzenie front-endu aplikacji wraz z mechanizmem logowania i rejestracji na stronie  Wylistowanie studentów wraz ze statystyką łącznej liczby punktów na stronie prowadzącego  Zaimplementowanie możliwości przekierowania prowadzącego do rozwiązanego zadania poprzez kliknięcie w link  Stworzenie bazy danych na potrzeby aplikacji API b) Patryk Gałka  Implementacja aplikacji serwerowej API  Projektowanie architektury aplikacji  Wdrożenie mechanizmu wysyłania i wstawiania plików na serwerze  Zaimplementowanie mechanizmu pobierania zadań ze strony prowadzącego  Zaimplementowanie systemu sprawdzającego poprawność nadesłanych rozwiązań zadań c) Patryk Łukasiewicz  Implementacja aplikacji serwerowej API  Projektowanie architektury aplikacji  Projektowanie prototypu bazy danych  Utworzenie forum internetowego dla aplikacji  Wdrożenie mechanizmu sprawdzającego poprawność i formę metryczki w formacie .xml w sprawozdaniach d) Adam Świnka  Reprezentatywna rola i zarządzanie komunikacją z klientem  Pełnienie funkcji lidera zespołu  Projektowanie architektury aplikacji  Projektowanie prototypu aplikacji internetowej  Implementacja aplikacji serwerowej API  Zarządzanie dokumentacją  Implementacja systemu antyplagiatowego • Przyjęta metodyka to Scrum. Została ona zaakceptowana przez wszystkich członków zespołu. Odrzucona została metodyka RUP ze względu na zbyt małą liczbę osób w grupie • Do wspomagania prac projektowych wykorzystywany jest system JIRA. Kod źródłowy jest zarządzany za pomocą repozytorium Git • Zadanie do wykonania w określonym przyroście miało swój termin wykonania przez okres dwóch tygodni i zwykle dwa dni przed terminem wykonania zostało skończone 9. Ryzyka technologiczne • Ryzyka ze względu na zasoby: a) Odejście członka implementującego stronę serwerową lub zrezygnowanie z wykonywania przez niego tej czynności – trudność w ukończeniu serwera b) Określone ramy czasowe – dwa semestry na wykonanie działającego produktu c) Ograniczona znajomość technologii zastosowanych przy budowie projektu, członkowie zespołu za mało czasu poświęcili na stosowanie tych technologii w praktyce, niemożliwe do przewidzenia problemy oraz uwidaczniające się przeszkody podczas pracy nad projektem d) Odejście członka implementującego określone funkcjonalności – trudność w całkowitym ukończeniu architektury systemu • Inne: a) Liczne nieporozumienia na linii zespół-klient, związane z implementacją określonych funkcjonalności, wyglądem końcowym poszczególnych stron internetowych czy lokalizacją pól do wprowadzania tekstu, niektórych wyrażeń, kodu programów itp. b) Nagła zmiana wymagań klienta, która wiąże się z ryzykiem nieukończenia w czasie niektórych elementów zawartych w architekturze projektu c) Planowana jest implementacja antyplagiatu metodą porównywania ze sobą takich samych i podobnych łańcuchów znaków. Jeśli okaże się, że jest zbyt wolna lub w trakcie testów pojawią się błędy, zostanie zastosowana szybsza i lepsza metoda d) Zaproponowana integracja systemu z aplikacją Microsoft Teams oraz platformą Moodle może wpłynąć na czas działania aplikacji internetowej. W sytuacji gdy czas reakcji okaże się zbyt długi konieczne będzie zrezygnowanie z integracji z co najmniej jedną platformą e) Dodanie nowych wymagań przez klienta – możliwe wydłużenie czasu pracy związane z rekonstrukcją kodu, niepoprawna implementacja niektórych wymagań funkcjonalnych, brak możliwości dodania nowych wymagań f) Nieporozumienia w zespole dotyczące implementacji funkcjonalności, architektury w określonym czasie g) Napięty termin oraz duża ilość obowiązków związanych z uczelnią i sprawy prywatne mogą negatywnie wpłynąć na zrealizowanie aplikacji h) Brak odpowiedniego zaangażowania w projekt poszczególnych członków zespołu oraz klienta i) Konflikty i brak właściwej organizacji w zespole 10. Kamienie milowe • I faza, I semestr (02.2020 – 09.2020): a) Przygotowanie prototypu aplikacji b) Stworzenie backlogu dla projektu „Sprawdzarka z zajęć” w systemie JIRA – opracowanie funkcjonalności oraz user stories c) Rozpoczęcie prac programistycznych nad projektem d) Testowanie aplikacji przez zespół e) Ukończenie MVP aplikacji f) Wdrożenie MVP aplikacji w domenie internetowej g) Poddanie MVP testom funkcjonalnym • II faza, II semestr(10.2020 – 01.2021): a) Reorganizacja i zdefiniowanie backlogu b) Rozpoczęcie prac programistycznych nad projektem c) Testowanie aplikacji przez zespół d) Ukończenie aplikacji wraz ze wszystkimi wcześniej założonymi funkcjonalnościami e) Wdrożenie aplikacji w domenie internetowej „amu.edu.pl” dla użytkowników końcowych f) Przekazanie produktu klientowi