Nazwa przedmiotu:
Inżynieria oprogramowania 1
Koordynator przedmiotu:
Dr inż. Michał Okulewicz
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka i Systemy Informacyjne
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
1120-IN000-ISP-0353
Semestr nominalny:
5 / rok ak. 2020/2021
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. godziny kontaktowe – 45h; w tym a) obecność na wykładach – 30h b) obecność na ćwiczeniach – 15h 2. praca własna studenta – 55 h; w tym a) zapoznanie się z literaturą – 10h b) przygotowanie do zajęć ćwiczeniowych – 15h c) przygotowanie do testów, rozwiązanie samodzielne zadań – 10h d) napisanie projektu, konsultacja – 20 h Razem 100 h, co odpowiada 4 pkt. ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
1. obecność na wykładach – 30h 2. obecność na ćwiczeniach – 15h Razem 45h, co odpowiada 2 pkt. ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1. obecność na ćwiczeniach – 15 h 2. przygotowanie do ćwiczeń – 15 h 3. przygotowanie do testów, rozwiązanie samodzielne zadań – 10h 4. napisanie projektu, konsultacja – 20 h Razem 60h, co odpowiada 2 pkt. ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt15h
  • Lekcje komputerowe0h
Wymagania wstępne:
Programowanie 2 – obiektowe, Programowanie 3 – zaawansowane, Systemy operacyjne, Bazy danych, Projektowanie obiektowe
Limit liczby studentów:
.
Cel przedmiotu:
Celem przedmiotu jest przekazanie wiedzy dotyczącej podstawowych zasad i technik inżynierii oprogramowania oraz wykształcenie umiejętności tworzenia prostych modeli systemów informatycznych.
Treści kształcenia:
Wykład: Pojęcia wstępne: projekt informatyczny a praca zespołowa, problemy z projektowaniem i realizacją systemów informatycznych, podstawowe potrzeby prowadzące do konieczności wykorzystania inżynierii oprogramowania. Modele rozwoju oprogramowania i zarządzania wytwarzaniem produktu IT: kaskadowy, RUP, XP, SCRUM, DSDM. Inżynieria wymagań: FURPS+, BPMN, User Stories. Omówienie faz rozwoju projektu: planowanie, analiza (szacowanie złożoności oprogramowania na przykładzie Planning Poker), projektowanie (przygotowywanie pewnych dokumentów specyfikacji), implementowanie (wybór języka, sposób pracy z repozytorium kodu git, repozytoria pakietów), dokumentowanie (tworzenie dokumentacji), testowanie (testy jednostkowe i środowisko continuous integration), instalowanie (przygotowanie pakietów dla klienta), utrzymanie (przygotowywanie aplikacji do zmian i poprawek). Projekt: Zajęcia obejmują dyskusje związane z inżynierią wymagań oraz modelowaniem w UML w zakresie diagramów klas, diagramów przypadków użycia, diagramów stanu, aktywności i sekwencji. Konsultacje projektu obejmują weryfikację postępu prac oraz poprawność wykorzystanych modeli UML i kompletność opisu językowego systemu.
Metody oceny:
W czasie semestru odbywa się 7 dwugodzinnych zajęć projektowych. Podczas zajęć przeprowadzane jest 2-krotna punktowana weryfikacja postępów prac nad projektem. Na koniec semestru zajęć grupy studentów po cztery-pięć osób oddają projekt zadanego systemu informatycznego. Końcowa ocena składa się w 50% z ocen z testów teoretycznych i praktycznych przeprowadzonych na wykładzie oraz egzaminu ustnego i w 50% z oceny z wykonanej dokumentacji projektowej (w tym ocen cząstkowych wynikających z bieżących postępów w trakcie semestru). Uzyskanie przynajmniej 70% punktów z pisemnych testów teoretycznych i praktycznych uprawnia do zwolnienia z egzaminu ustnego.
Egzamin:
tak
Literatura:
1. K. Wiegers, J. Beatty, Software requirements, Pearson Education, 2013. 2. M. Belbin, Belbin team roles, Book Belbin Team Roles, 2004. 3. Business Process Model And Notation http://www.omg.org/spec/BPMN/2.0/ 4. Unified Modeling Language 1.5 http://www.omg.org/spec/UML/1.5/ 5. Unified Modeling Language 2.5 http://www.omg.org/spec/UML/2.5/ 6. Manifesto for Agile Software Development http://agilemanifesto.org/ 7. IBM Rational Unified Process https://www.ibm.com/developerworks/rational/library/1826.html 8. Scrum Guide http://www.scrumguides.org/scrum-guide.html 9. B. Chrabski, K. Zmitrowicz, Inżynieria wymagań w praktyce, PWN 2015. 10. Sz. Drejewicz, Zrozumieć BPMN modelowanie procesów biznesowych, Wydawnictwo Helion, 2012. 11. J. Żeliński, Analiza biznesowa: praktyczne modelowanie organizacji, Wydawnictwo Helion, 2017. 12. M. Belbin, Twoja rola w zespole, Gdańskie Wydawnictwo Psychologiczne, 2003. 13. GitFlow https://datasift.github.io/gitflow/IntroducingGitFlow.html 14. Jenkins CI https://www.jenkins.io/doc/
Witryna www przedmiotu:
e.mini.pw.edu.pl
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka W01
Zna język UML i sposoby stosowania go w praktyce.
Weryfikacja: dwa testy, egzamin oraz projekt
Powiązane charakterystyki kierunkowe: K_W12
Powiązane charakterystyki obszarowe:
Charakterystyka W02
Zna modele rozwoju oprogramowania, w tym modelu kaskadowego, spiralnego, odkrywczego wraz z poszczególnymi fazami oraz niekonwencjonalne metody wytwarzania oprogramowania: open-source, scrum, itd
Weryfikacja: dwa testy i egzamin
Powiązane charakterystyki kierunkowe: K_W07, K_W09, K_W12, K_W14, K_W15
Powiązane charakterystyki obszarowe:
Charakterystyka W03
Posiada podstawową wiedzę dotyczącą środowisk wytwórczych, pracy w zespole oraz narzędzi do pracy zespołowej
Weryfikacja: dwa testy i egzamin
Powiązane charakterystyki kierunkowe: K_W11, K_W12
Powiązane charakterystyki obszarowe:

Profil ogólnoakademicki - umiejętności

Charakterystyka U01
Potrafi stworzyć model systemu w języku UML obejmujący wymagania użytkownika oraz projekt rozwiązania
Weryfikacja: dwa testy, egzamin oraz projekt
Powiązane charakterystyki kierunkowe: K_U01, K_U10, K_U13, K_U28
Powiązane charakterystyki obszarowe:
Charakterystyka U02
Potrafi zaprojektować prosty system informatyczny
Weryfikacja: Projekt
Powiązane charakterystyki kierunkowe: K_U23, K_U26, K_U28, K_U30
Powiązane charakterystyki obszarowe:
Charakterystyka U03
Potrafi zastosować wybraną metodę oszacowania pracochłonności zadania
Weryfikacja: obowiązkowy projekt realizowany w semestrze następnym
Powiązane charakterystyki kierunkowe: K_U26
Powiązane charakterystyki obszarowe:

Profil ogólnoakademicki - kompetencje społeczne

Charakterystyka K01
Rozumie zagadnienia związane z pracą grupową
Weryfikacja: projekt oraz obowiązkowy projekt realizowany w semestrze następnym
Powiązane charakterystyki kierunkowe: K_K05
Powiązane charakterystyki obszarowe:
Charakterystyka K02
Rozumie zasady negocjowania z klientem oraz prowadzenia wywiadu związanego z określeniem wymagań użytkownika
Weryfikacja: projekt oraz obowiązkowy projekt realizowany w semestrze następnym
Powiązane charakterystyki kierunkowe: K_K04
Powiązane charakterystyki obszarowe:
Charakterystyka K03
Zna zagadnienia związane z jakością produktów informatycznych oraz konsekwencje szybkiego rozwoju nowych technologii w informatyce.
Weryfikacja: projekt oraz obowiązkowy projekt realizowany w semestrze następnym
Powiązane charakterystyki kierunkowe: K_K01, K_K03, K_K04
Powiązane charakterystyki obszarowe: