Wydział Informatyki
Kierunek studiów Informatyka Poziom i forma studiów drugiego stopnia stacjonarne
Specjalność / Ścieżka dyplomowania Inżynieria Oprogramowania Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Zaawansowana inżynieria oprogramowania Kod przedmiotu INF2ZIO
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 2
15 30 Punkty ECTS 4
Przedmioty wprowadzające
Cele przedmiotu

Celem wykładu jest rozszerzenie wiedzy dotyczącej inżynierii oprogramowania, a w szczególności metod modelowania i projektowania obiektowego przy wykorzystaniu Unified Modeling Language. Przedstawiony zostanie proces wytwórczy oprogramowania na podstawie Unified Process for Education (UPEDU), który jest dostosowaną do potrzeb edukacyjnych wersją komercyjnego procesu opracowanego przez firmę Rational (Rational Unified Process - RUP). Omówione zostaną też alternatywne zwinne metody wytwórcze i zarządzania projektami.

Celem zajęć jest praktyczne zweryfikowanie wiedzy dotyczącej procesu wytwarzania oprogramowania. Studenci pracując w grupach (3-osobowych) mają za zadanie stworzenie (i w miarę możliwości rzeczywiste wdrożenie) funkcjonującej aplikacji.

Treści programowe

Wykład:
1. Przedstawienie procesu inżynierii oprogramowania (ang. software engineering process) na podstawie Rational Unified Process (RUP) i Unified Process for Education (UPEDU) .
2. Fazy cyklu życia i podstawowe zasady RUP.
3. Cykl życia projektu RUP.
4. Zarządzanie konfiguracjąi zmianami (ang. the software configuration and change managment discipline).
5. Rozpoznanie wymagań(ang. requirements discipline).
6. Architektura oprogramowania.
7. Analiza i projektowanie (ang. analysis and design discipline).
8. Implementacja (ang. implementation discipline), UP:Testowanie (ang. testing discipline).
9. Zarządzanie przedsięwzięciem projektowym (ang. the software project managment discipline).
10. Zarządzanie projektami - PRINCE2.
11. Ocena i poprawa procesu wytwórczego, certyfikacja.
12. Zespół wykonawczy.
13. Metody zwinne (ang. agile): programowanie ekstremalne XP (ang. eXtreme Programming). Metody zwinne: Scrum.
15. MDA i MDD: Model Driven Architecture oraz Model Driven Development.
16. Porównanie poznanych procesów wytwórczych.

Pracownia specjalistyczna:
1. Przedstawienie narzędzi do UML i projektowania aplikacji;
2. Faza inicjacji: wstępne rozpoznawanie wymagań (wizja, słownik), opracowywanie planów pracy
3. Faza rozwinięcia: rozpoznawanie wymagań (wyszukanie aktorów, opracowanie modelu przypadków użycia, opracowanie wymagań niefunkcjonalnych), analiza ryzyka
4. Faza rozwinięcia: definiowanie architektury (architektura systemu, realizacja przypadków użycia, klasy analizy)
5. Faza rozwinięcia: rozwijanie projektu (klasy i model projektowy)
6. Faza budowy: Iteracja I (opracowanie planów integracji, planów testów, implementacja komponentów podstawowej funkcjonalności, implementacja komponentów testowych, testowanie jednostkowe)
7. Faza budowy: Iteracja II (usuwanie defektów, implementacja pozostałych komponentów )
8. Faza budowy: Iteracja II (integracja systemu, testowanie systemu, usuwanie defektów, przeglądy kodu)
9. Faza przekazania: opracowanie dokumentacji administracyjnej i użytkownika, instalacja systemu, testowanie akceptacyjne, wdrożenie

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,  

Forma zaliczenia

Wykład - egzamin pisemny.
Pracownia specjalistyczna - projekt systemu wraz z dokumentacją.

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 posiada teoretyczną wiedzę na temat realizacji systemów informatycznych (analiza wymagań, projekt analityczny, implementacja, testowanie, wdrażanie) i procesów zarządzania i organizacji pracy w przedsięwzięciach informatycznych INF2_W02
INF2_W05
EU2 przygotowuje proces testowania systemów informatycznych INF2_U08
EU3 ocenia czas potrzebny do realizacji; wykonuje zadania zgodnie z harmonogramem prac i adaptuje się do pracy indywidualnej i w zespole w przedsięwzięciu informatycznym INF2_U13
EU4 znajduje odpowiedni model systemu informatycznego INF2_U02
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 egzamin zaliczający wykład W
EU2 dokumentacja projektu, dyskusja na temat projektu, obserwacja pracy na zajęciach Ps
EU3 dokumentacja projektu, dyskusja na temat projektu, obserwacja pracy na zajęciach Ps
EU4 dokumentacja projektu, dyskusja na temat projektu, obserwacja pracy na zajęciach Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach - 15x1h 15
2 - Udział w pracowni specjalistycznej - 15x2h 30
3 - Przygotowanie do pracowni specjalistycznej 5
4 - Opracowanie sprawozdań z pracowni specjalistycznej i wykonanie zadań domowych (prac domowych) 15
5 - Udział w konsultacjach 5
6 - Realizacja zadań projektowych (w tym przygotowanie prezentacji) 20
7 - Przygotowanie do zaliczenia pracowni oraz do egzaminu 8
8 - Udział w egzaminie 2
RAZEM: 100
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 52
(1)+(5)+(2)+(8)
2.1
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 65
(2)+(4)+(6)
2.6
Literatura podstawowa

1. G. Hulten, Budowanie systemów inteligentnych, PWN, 2019.
2. A. Januszewski, Funkcjonalność informatycznych systemów zarządzania, PWN, Warszawa 2020.
3. S. Szejko, Metody wytwarzania oprogramowania, Mikom, 2002.
4. J. Płodzień, E. Stemposz, Analiza i projektowanie systemów informatycznych, Wydawnictwo PJWSTK, 2005.
5. B. Bereza-Jarociński, B. Szomański, Inżynieria oprogramowania. Jak zapewnić jakość tworzonym aplikacjom, Helion, 2009.
6. A. Koszlajda, Zarządzanie projektami IT. Przewodnik po metodykach, Helion, 2010.
7. M. Seidl, M. Scholz, Ch. Huemer, G. Kappel, UML @ Classroom. An Introduction to Object-Oriented Modeling, Springer, 2015 (dostęp otwarty).
8. G. O'Regan, Concise Guide to Software Engineering. From Fundamentals to Application Methods, Springer, 2017 (dostęp otwarty).

Literatura uzupełniająca

1. M. E. Bays, Metodyka wprowadzania oprogramowania na rynek, WNT, 2001.
2. E. Kolbusz, W. Olejniczak, Z. Szyjewski, Inżynieria systemów informatycznych w e-gospodarce, PWE, 2005.
3. K. Waćkowski, J. Chmielewski, Wspomaganie zarządzania projektami informatycznymi. Poradnik dla menedżerów, Helion, 2007.
4. M. Fowler i in., Refaktoryzacja. Ulepszanie struktury istniejącego kodu, WNT, 2006.

Jednostka realizująca Katedra Oprogramowania Data opracowania programu
Program opracował(a) 2020.05.22