Inżynieria oprogramowania (wykład) - 2019/2020

Opis zajęć
Informacje ogólne
Prowadzący:dr Mykola Prodaniuk
Organizator:Wydział Matematyki, Informatyki i Architektury Krajobrazu - Instytut Matematyki i Informatyki
Liczba godzin tydzień/semestr: 2/30
Język wykładowy:Język polski
Cele przedmiotu
C1-Podniesienie poziomu wiedzy studentów w zakresie inżynierii oprogramowania
C2-Przedstawienie i szczegółowe omówienie wszystkich aspektów tworzenia oprogramowania od początkowej fazy specyfikacji aż do jego pielęgnacji po dacie rozpoczęcia użytkowania
C3-Zapoznanie studentów i wyrobienie u nich umiejętności pracy zgodnie z metodykami strukturalną, obiektową i zwinną
Wymagania wstępne
Znajomość programowania strukturalnego i obiektowego, język angielski
Efekty kształcenia dla przedmiotu
W1 - Student wie, czym jest inżynieria oprogramowania, proces tworzenia oprogramowania, zarządzanie przedsięwzięciami (K_W04, K_W06, K_W08)
W2 - Student wie, jak powinny być stawiane wymagania oprogramowaniu, jak wygląda proces inżynierii wymagań, modelowanie systemu, prototypowanie oprogramowania, weryfikacja, testowanie i odbiór zatwierdzonego oprogramowania (K_W04, K_W06)
W3 - Student wie jakie są metody zarządzanie personelem, zarządzania jakością, szacowania oprogramowania, ulepszania oprogramowania K_W06, K_W08)
U1 - Student umie konstruować wymagania niefunkcjonalne i sporządzać specyfikację oprogramowania (K_U02, K_U04, K_U13, K_U14, K_U23)
U2 - Student potrafi używać diagramów opisu struktury i zachowań programu (K_U02, K_U04, K_U13, K_U14, K_U23)
U3 - Student potrafi w stopniu podstawowym korzystać z języka UML (K_U02, K_U04, K_U13, K_U14, K_U23)
U4 - Student potrafi opracować plan przedsięwzięcia dotyczącego budowy oprogramowania (K_U02, K_U04, K_U14, K_U23)
U5 - Student potrafi kontrolować i zarządzać wersjami tworzonego oprogramowania oraz stosować się do zasad obowiązujących programistów podczas pracy w zespole (K_U02, K_U04, K_U13, K_U14, K_U23, K_U29, K_U30)
K1 - Student jest otwarty na złożoność problemów, z którymi może spotkać się w życiu (K_K01, K_K06)
K2 - Student umiejętnie rozwiązuje problemy inżynierii oprogramowania stosując poznane metody oraz obiektywnie ocenia uzyskane wyniki (K_K01, K_K03)
K3 - Student potrafi pracować zarówno indywidualnie, jak i zespołowo, właściwie planując pracę swoją i zespołu w kontekście postawionego celu (K_K02, K_K04, K_K07)
Metody dydaktyczne
Wykład informacyjny (konwencjonalny) z prezentacją multimedialną
Treści programowe przedmiotu
Wykład:
1 Wprowadzenie 1
2 Procesy wytwarzania oprogramowania 2
3 Inżynieria wymagań 2
4 Metody strukturalne 3
5 Metody obiektowe i podstawy UML 5
6 Jakość kodu, inspekcje kodu 2
7 Testowanie 3
8 Dokumentacja użytkowa 1
9 Konserwacja 2
10 Systemy krytyczne 2
11 Metody formalne 1
12 Wzorce projektowe 4
13 Programowanie ekstremalne i Scrum 2
Kryteria oceny i sposoby weryfikacji zakładanych efektów kształcenia
Student potrafi:
NA OCENĘ 3
W1-opisać najważniejsze procesy cyklu życia oprogramowania i omówić artefakty tych procesów w stopniu podstawowym
W2-opisać podstawowe elementy metodyk inżynierii oprogramowania oraz podstawowe wzorce projektowe
U1-pracować w każdej z faz cyklu życia oprogramowania, wykorzystując podstawowe notacje, pojęcia i diagramy, np. najprostsze wzorce projektowe i oprogramowanie
U2-posługiwać się podstawowymi diagramami strukturalnymi (diagram wymagań funkcjonalnych, diagram przepływu danych) i obiektowymi (diagram klas, diagram przypadków użycia), opisującymi strukturę kodu i zachowanie oprogramowania – z wykorzystaniem podstawowych kategorii składniowych wspomnianych diagramów, oraz wykorzystując w tym celu odpowiednie oprogramowanie
K1-pracować zgodnie z etyką obowiązującą inżynierów oprogramowania
K2-umiejętnie rozwiązywać podstawowe problemy, z którymi może spotkać się w życiu, stosując poznane metody inżynierii oprogramowania, obiektywnie oceniając uzyskane wyniki
K3-pracować efektywnie, sprawnie, zespołowo i indywidualnie, umiejętnie oceniając priorytety w pracy nad tworzonym oprogramowaniem
NA OCENĘ 4
W1-opisać procesy cyklu życia opr. i omówić ich artefakty
W2-opisać najważniejsze metodyki inżynierii opr. oraz wzorce projektowe
U1-pracować w każdej z faz cyklu życia opr.
U2-posługiwać się diagramami strukturalnymi i obiektowymi, opisującymi strukturę kodu i zachowanie oprogramowania, wykorzystując w tym celu odpowiednie oprogr.
K1-pracować zgodnie z etyką obowiązującą inż. opr., odnosząc wyniki swojej pracy do odpowiednich dobrych praktyk i standardów obowiązujących inżynierów opr.
K2-umiejętnie rozwiązywać problemy, z którymi może spotkać się w życiu, stosując poznane metody inżynierii oprogramowania, obiektywnie oceniając uzyskane wyniki
K3-pracować efektywnie, sprawnie, zespołowo i indywidualnie, umiejętnie oceniając priorytety w pracy nad tworzonym oprogramowaniem, w szczególności umiejętnie współpracując z kolegami z grupy
NA OCENĘ 5
W1-opisać procesy cyklu życia opr. i omówić ich zaawansowane artefakty, jak również metody wykorzystywane do ich wytworzenia
W2-opisać w stopniu zaawansowanym najważniejsze metodyki inżynierii opr., wzorce projektowe, krytycznie ocenić ich efektywność i potencjalne zastosowanie
U1-pracować w każdej z faz cyklu życia opr. stosując zaawansowane notacje, pojęcia, diagramy, zaawansowane wzorce projektowe, posługiwać się biegle biblioteką JUnit
U2-posługiwać się w stopniu zaawansowanym diagramami strukturalnymi i obiektowymi (np. diagramami czynności i stanów UML), opisującymi strukturę kodu i zachowanie oprogramowania, biegle wykorzystując w tym celu odpowiednie oprogr.
K1-pracować zgodnie z etyką obowiązującą inżynierów opr., odnosząc wyniki swojej pracy do odpowiednich dobrych praktyk i standardów obowiązujących inżynierów opr., dbać o możliwie najwyższą jakość wytwarzanych przez siebie artefaktów
K2-umiejętnie rozwiązywać złożone i zaawansowane problemy, z którymi może spotkać się w życiu, stosując poznane metody inżynierii opr., obiektywnie oceniając uzyskane wyniki, korzystając z nowoczesnych technik inf., potrafić zastosować poznane modele do zaawansowanych procesów, w szczególności gospodarczych
K3-pracować efektywnie, sprawnie, zespołowo i indywidualnie, umiejętnie oceniając priorytety w pracy nad tworzonym oprogramowaniem, korzystając z zaawansowanych narzędzi inf., szczególnie współpracując z kolegami

Egzamin: 35 pytań wielokrotnego wyboru (należy stwierdzić prawdę/fałsz dla 140 zdań, 1 punkt za jedno złożone z 4 zdań pytanie). Niech N=maksymalna liczba zdobytych punktów w grupie zdających. Wówczas: Ocena: 5: [N - (N - 10)*0.2; N], 4+: [N - (N - 10)*0.4; N - (N - 10)*0.2), 4: [N - (N - 10)*0.6; N - (N - 10)*0.4), 3+: [N - (N - 10)*0.8; N - (N - 10)*0.6), 3: [10; N - (N - 10)*0.8), 2: [0,10), +bonusy za oceny 5 z ćwiczeń, aktywne uczestnictwo + egzamin USTNY
Literatura podstawowa i uzupełniająca
Literatura podstawowa
1. K. Sacha, Inżynieria oprogramowania, PWN, Warszawa 2010
2. A. Jaszkiewicz, Inżynieria oprogramowania, Helion, Gliwice 1997
3. I. Sommerville, Inżynieria oprogramowania, WNT, Warszawa 2003
Literatura uzupełniająca
1. L. Miękina, Inżynieria oprogramowania, Wydawnictwo AGH, Kraków 2009
2. P. Stevens, UML. Inżynieria oprogramowania, Helion, Gliwice 2007
3. J. Myers, C. Sandler, T. Badgett, T. M. Thomas, Sztuka testowania oprogramowania, Helion, Gliwice 2005
4. R. C. Martin. Czysty kod. Podręcznik dobrego programisty, Helion, Gliwice 2010
5. Bruegge B., Dutoit A. H., Inżynieria oprogramowania w ujęciu obiektowym. UML, wzorce projektowe i Java, Helion, Gliwice 2011
6. http://wazniak.mimuw.edu.pl
Kierunek studiów: Informatyka (stacjonarne I stopnia)
Lokalizacja w planach rocznych:
Etap:Rok III - Semestr 5
Punkty ECTS: 5
Forma zaliczenia: Egzamin
Terminarz:
DataDzieńSalaGodz.od-do
2019-12-19czwartekWMP-21 09:10 - 12:30
2020-01-09czwartekWMP-21 09:10 - 12:30
2020-01-23czwartekWMP-21 09:10 - 12:30