Zadanie projektowe powinno być realizowane w zespołach dwuosobowych; każda osoba jest członkiem zespołu programistycznego, dodatkowo jedna z osób pełni rolę właściciela produktu, odpowiada ona za to, że będzie realizowany właściwy produkt i we właściwym czasie, druga osoba jest odpowiedzialna za jakość, tzn. odpowiednią ilość testów i odpowiednią jakość dokumentacji.
Należy użyć właściwych algorytmów i starannie zaprojektować obiekty i powiązania pomiędzy nimi. Implementacja powinna wykorzystywać odpowiednie mechanizmy dostarczane przez bibliotekę standardową oraz biblioteki Boost (np. obsługa błędów przez wyjątki, sprytne wskaźniki do zarządzania zasobami, hierarchie klas, jeżeli trzeba to szablony, odpowiednie wzorce projektowe itd.).
Należy w przemyślany sposób podzielić źródła na moduły oraz zapewnić możliwość kompilacji i uruchamiania dostarczanej aplikacji na różnych platformach, w szczególności powinna być ona kompilowana przez g++ pod Linux-em oraz przez Visual Studio. Należy używać narzędzi, które automatyzują typowe czynności, w szczególności budują aplikację (np. SCons).
Proszę dostarczyć wynik swojej pracy pozbawiony niepotrzebnych elementów: plików tymczasowych, plików generowanych przez kompilator, nieużywanych fragmentów kodu itp.
Dokumentację oddajemy tylko elektronicznie.
Terminy związane z projektem są następujące:
data | forma | |
---|---|---|
Propozycje tematów. | do 10 października | Aktywacja odnośników na stronie przedmiotów z podaniem prowadzącego i maksymalnej liczby studentów. |
Zgłaszanie własnych projektów studentów. | do 15 października | Studenci zgłaszają tematy mailem do prowadzących, którzy po analizie umieszczają ten temat w systemie do zapisów albo odmawiają umieszczenia tematu. |
Tworzenie zespołów. | do 20 października | Studenci tworzą zespoły w systemie do zapisów. Zespół wybiera preferowany temat projektu. |
Ustalenie składu zespołów, przydział zadań | 21 października | Prowadzący przypisują zadania do zespołów zgłoszonych w systemie do Zapisów. System optymalizuje ogólne zadowolenie zespołów z przypisania do tematów. |
Przydział zadań, poprawki | do 25 października | Wyjaśnianie ewentualnych błędów w przydziałach. |
Oddanie dokumentacji wstępnej (max. 2 strony A4). | do 4 listopada | Zespół przekazuje dokumentację prowadzącemu. Prowadzący projekt wyznacza termin spotkania i dyskusji. |
Oddanie szkieletu aplikacji. | do 4 grudnia | Zespół przekazuje archiwum zawierające szkielet aplikacji prowadzącemu |
dostarczenie implementacji i dokumentacji końcowej | do 20 stycznia | Zespół przekazuje dokumentację końcową oraz źródła projektu prowadzącemu. Prowadzący wyznacza termin prezentacji. Dokumentacja końcowa to opis prac o objętości 3 stron A4 oraz dokumentacja wygenerowana z kodu. |
Ostateczny termin oddania projektu. | 27 stycznia. | Po tym czasie projekty nie będą przyjmowane. |
przekroczenie terminów skutkuje zmniejszeniem maksymalnej puli punktów o 20% za każdy rozpoczęty tydzień spóźnienia
Proszę zapisywać się za pomocą systemu assigner Dostęp możliwy z sieci wewnętrznej WEiTI. Filmy instruktażowe (mp4): dołączanie do grupy, tworzenie zespołu, przeglądanie tematów, dołączanie do zespołu i ustawianie preferencji. Instrukcja użytkownika (pdf): slajdy. Proszę zgłaszać błędy i uwagi tego systemu poprzez stronę domową na github.
W tym semestrze projekt prowadzi:
Należy opisać docelową funkcjonalność oprogramowania. Zakres realizowanych funkcji warto opisać biorąc pod uwagę faktyczne możliwości ich realizacji. Stopień realizacji jest brany pod uwagę przy ocenie końcowej wersji aplikacji lub biblioteki.
Należy zadbać, aby szkielet zawierał istotne dla projektu biblioteki i narzędzia, kompilował się i uruchamiał na różnych środowiskach, zawierał skrypty do budowania aplikacji (np. SCons) oraz przykładowe testy jednostkowe. Kod źródłowy powinien być zarządzany przez repozytorium (np Bitbucket).