Inżynieria Oprogramowania - Zasady zaliczania przedmiotu
Harmonogram
Kryteria zaliczenia przedmiotu:
- ocena z ćwiczeń wystawiana będzie na podstawie dwóch grupowych projektów. Jeden z projektów realizowany będzie w metodyce RUP, a drugi w metodyce SCRUM.
- za każdy projekt każdy student otrzymuje indywidualną ocenę. Ocena końcowa będzie średnią z obu ocen.
- do zaliczenia ćwiczeń wymagane jest otrzymanie pozytywnej oceny z każdego projektu.
- Do realizacji projektów powstaną grupy 12-15 osobowe studentów (każda grupa ćwiczeniowa podzieli się na dwa równoliczne zespoły). Grupy mogą być różne do realizacji różnych projektów (podział RUP może być inny niż podział SCRUM).
- za projekt każda grupa może uzyskać liczbę punktów od 2x do 5x, gdzie x jest liczbą osób w zespole. Oceny poszczególnych studentów za projekt muszą sumować się do liczby punktow uzyskanych za projekt. Poszczczególne oceny grupa ustala samodzielnie. W przypadku wątpliwości głos decydujący będzie miał kierownik projektu.
Literatura:
- Borges P., Monteiro P., Machado R.J. (2012) Mapping RUP Roles to Small Software Development Teams. In: Biffl S., Winkler D., Bergsmann J. (eds) Software Quality. Process Automation in Software Development. SWQD 2012. Lecture Notes in Business Information Processing, vol 94. Springer, Berlin, Heidelberg
- Scrum Guide
Szczegółowy opis składowych zaliczenia:
Projekt RUP:
Czas jego realizacji projektu będzie trwał od momentu jego rozpoczęcia do końca roku kalendarzowego. Na koniec roku nastąpi przydział punktów, a wraz z nim wystawione będą oceny z tej części.
Projekt powinien składać się wyraźnie zarysowanych 4 faz, które będą wyznaczały kolejne zajęcia:
- faza rozpoczęcia (Inception phase), (2 tydzień)
- faza opracowywania (Elaboration phase), (2 tygodnie)
- faza konstrukcji (Construction phase), (3 tygodnie)
- faza przekazania systemu (Transition phase). (1 tydzień)
W projekcie należy wyznaczyć następuje role dla poszczególnych osób. Każda rola musi być obsadzona (nie może być pozycji bez osób). Kilka wskazanych ról może (lub musi) być obsadzonych przez więcej niż jedną osobę. Każdy członek zespołu musi być przypisany do jakiejś roli.
Role osób w zespole wraz z odpowiedzialnościami:
- Kierownik Projektu (Project Manager): zadowolenie klienta (Customer Satisfaction), zarządzanie terminami i budżetem (Schedule&Budget), zarządzanie zespołem (Team Management)
- Inżynier Procesu (Process Engineer): zadowolenie klienta (Customer Satisfaction), zgodność z metodyką (RUP compliance), zarządzanie odpowiedzialnościami w zespole (Team Training)
- Analityk Systemowy (System analyst): zadowolenie klienta (Customer Satisfaction), komunikacja z klientem (Communication with Customer), ustalenia zakresu projektu, stworzenie przypadków użycia (Scope&Use Cases), dokumentacja dla klienta, instrukcja użytkownika (User Manual) - co najmniej 2 osoby
- Architekt Systemu (oprogramowanie i baza danych) (Software Architect+Database Designer): zadowolenie klienta (Customer Satisfaction), architektura systemu (General architecture), diagramy UML, projekt bazy danych
- Integrator: zadowolenie klienta (Customer Satisfaction), przegląd kodu (Code review), zarządzanie podziałem na moduły (Coordination of submodules), dokumentajca API (API documentation), powiązania pomiędzy poszczególnymi elementami kodu
- Administrator Systemu (System Administrator): zadowolenie klienta (Customer Satisfaction), zarządzanie infrastrukturą (Infrastructure), zarządzanie instalacją i wdrożeniem systemu (Deployment)
- Menedżer Testów (Test Manager): zadowolenie klienta (Customer Satisfaction), opracowanie i pilnowanie kryteriów niezawodności systemu (System reliability), plan testów (Test Plan), testowanie ręczne systemu (Manual Tests)
- Projektant GUI (User-interface Designer): zadowolenie klienta (Customer Satisfaction), projekt interfejsu (UX design), intuicyjność systemu (Usability)
- Przegląd projektu (Project reviewer): zadowolenie klienta (Customer Satisfaction), dokumentacja wykonanych prac (Development documentation), dbałość o jakość pozostałych części dokumentacji i ich spójność (Documentation quality and review)
- Programista (Implementator): zadowolenie klienta (Customer Satisfaction), tworzenie kodu (Realization of architecture), jakość kodu (Code quality), testy automatyczne (Automatic tests) - od 1 do 4 osób
Projekt SCRUM
Czas jego realizacji projektu będzie trwał od ostatnich zajęć w starym roku do końca semestru. Przy czym pierwszy sprint wypadnie na pierwszych zajęciach nowego roku.
Punkty będą przydzielane na skutek zadowolenia klienta z każdego przyrostu sprintowego. 1/x punktów za pierwszy tydzień, 1/x za drugi itd. gdzie x jest liczbą tygodni(sprintów) zajęć w nowym roku.
Projekt powinien składać się ze sprintów, które będą wyznaczały kolejne zajęcia. Każdy tydzień zajęć w nowym roku będzie jednym sprintem.
W projekcie należy wyznaczyć następuje role dla poszczególnych osób.
Role osób w zespole wraz z odpowiedzialnościami:
- Mistrz Skrama (Scrum Master): zadowolenie klienta (Customer Satisfaction), zarządzanie zespołem (Team Management), zgodność ze Scrumem (SCRUM compliance) - 1 osoba
- Właściciel Produktu (Product Owner): zadowolenie klienta (Customer Satisfaction), komunikacja z klientem (Communication with Customer) - 1 osoba
- Członek zespołu programistycznego (Development Team member): zadowolenie klienta (Customer Satisfaction), realizacja wymagań klienta (Development) - od 1 do 6 osób. Należy każdorazowo do kontaktu bezpośredniego z klientem wyznaczać osobę towarzyszącą Właścielowi Produktu.
W ramach prowadzeniu projektu należy uruchomić Jirę w trybie Scrum i odpalać w kolejnych tygodniach sprinty z zadaniami do wykonania.