- Nazwa przedmiotu:
- Wdrażanie i utrzymanie systemów informatycznych
- Koordynator przedmiotu:
- Rajmund Kożuszek
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Inżynieria oprogramowania
- Kod przedmiotu:
- WUS
- Semestr nominalny:
- 5 / rok ak. 2021/2022
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 1.	liczba godzin kontaktowych – 64 godz., w tym
	obecność na wykładach: 30 godz.,
	obecność na zajęciach laboratoryjnych: 30 godz.,
	udział w konsultacjach związanych z realizacją przedmiotu: 4 godz.
2.	praca własna studenta – 56 godz., w tym
	analiza literatury i materiałów wykładowych związana z przygotowaniem do kolejnych wykładów, wskazanie przykładów do wykonania: 16 godz.  
	wykonanie ćwiczeń przygotowawczych do laboratorium: 30 godz.
	przygotowanie do kolokwiów: 10 godz.
Łączny nakład pracy studenta wynosi 120 godz., co odpowiada 4pkt. ECTS.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 2,25 pkt. ECTS, co odpowiada 64 godz. kontaktowym
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 2 pkt. ECTS, co odpowiada 60 godzin realizacji ćwiczeń
- Formy zajęć i ich wymiar w semestrze:
- 
            
                - Wykład30h
- Ćwiczenia0h
- Laboratorium30h
- Projekt0h
- Lekcje komputerowe0h
 
- Wymagania wstępne:
- Systemy operacyjne
- Limit liczby studentów:
- 60
- Cel przedmiotu:
- Celem przedmiotu jest wykształcenie umiejętności wdrażania i utrzymywania istniejących systemów informatycznych. Student po zakończeniu przedmiotu powinien mieć wiedzę na temat podstawowych praktyk, procesów i zasad służących niezawodnej eksploatacji systemów informatycznych.  Do procesów eksploatacji systemów zalicza się utrzymanie niezawodnego działania, monitoring, identyfikacja zagrożeń i błędów oraz wprowadzanie niewielkich zmian dostosowujących do zmian środowiska pracy. Przedmiot wprowadza we współczesne praktyki, technologie i narzędzia eksploatacji systemów: technologie wirtualizacji, konteneryzacji i orkiestracji kontenerów oraz praktyki DevOps.
- Treści kształcenia:
- WYKŁADY:
1.	Wprowadzenie (2 godz.)
Informacje o przedmiocie. Regulamin przedmiotu. Powtórzenie podstawowych pojęć: serwer, system operacyjny, maszyna wirtualna, kontener, moduł programu, sieć komputerowa. Podstawowe zadania utrzymaniowe, role w procesie utrzymania oprogramowania. Metryki utrzymaniowe i SLA. 
2.	Infrastruktura, automatyzacja infrastruktury produkcyjnej (4 godz.)
Infrastruktura fizyczna, infrastruktura programowalna, automatyzacja infrastruktury. Cloud IaaS, PaaS, SaaS. Kontenery, konteneryzacja i orkiestracja. Różne wcielenia środowiska wykonawczego: proces, wątek, maszyna wirtualna, kontener. Podstawy Kubernetes.
3.	Dostępność i wydajność (2 godz.)
Sposób definiowania i monitorowania dostępności i wydajności, metryki, SLA. 
4.	Monitoring i diagnostyka systemów (3 godz.)
Kluczowe parametry i miejsca monitorowania. Testy regresji. Testy bezpieczeństwa i pentesty. Narzędzia monitorowania systemów. Przetwarzanie i przechowywanie logów systemów – narzędzia i dobre praktyki. Alerty i eskalacja awarii. 
5.	DevOps (4 godz.)
Filozofia, kultura i procesy DevOps. Kompetencje DevOps i relacje z innymi działami w organizacjach wytwarzających oprogramowanie. Zarządzanie procesem wytwarzania oprogramowania z perspektywy DevOps - build pipeline, narzędzia continuous integration/continous delivery.
6.	Utrzymanie kodu (4 godz.)
Konwencje kodu, definiowanie i utrzymywanie. Wzorce projektowe i architektoniczne sprzyjające utrzymaniu kodu. Praktyki przeglądu kodu (code review). Dokumentowanie zmian. Wersjonowanie kodu, różne strategie rozwoju nowych funkcjonalności: pull requests, feature toggles, rozgałęzianie i łączenie gałęzi. Praca z kodem zastanym, legacy code.
7.	Inżynieria wsteczna i refaktoring (2 godz.)
Techniki i narzędzia inżynierii wstecznej. Dekompilacja. Refaktoring na przykładzie Javy.
 
8.	UML we wdrażaniu i utrzymaniu (2 godz.)
Diagramy UML istotne z perspektywy wdrażania i utrzymania systemów. 
9.	ITIL (4 godz.)
Podstawy procesów zarządzania usługami IT według zaleceń ITIL. Narzędzia CMDB.
LABORATORIA:
1.	Docker i Kubernets – tworzenie i zarządzanie środowiska kontnerów w oparciu o dockera i Kubernetes.
2.	Instalacja aplikacji web przy użyciu Angulara, Spring Boota i bazy danych, użycie Liquibase. 
3.	Kod zastany – instalacja, analiza struktury, dodanie prostej funkcjonalności na przykładzie projektu open-source. 
4.	Złożone operacje na repozytorium zarządzania kodem Git
- Metody oceny:
- Realizacja przedmiotu obejmuje następujące formy zajęć: 
-	wykład prowadzony w wymiarze 2 godz. tygodniowo; w wybranych zagadnieniach przewidziana jest aktywizacja studentów na wykładzie,
-	zajęcia laboratoryjne w wymiarze 2 godz. tygodniowo; w ramach tych zajęć student, korzystając z oprogramowania i sprzętu komputerowego, będąc pod opieką prowadzącego zajęcia, będzie realizował wskazane ćwiczenia dotyczące wdrażania i utrzymania systemów informatycznych. 
Sprawdzanie założonych efektów kształcenia realizowane jest przez:
	ocenę wiedzy i umiejętności związanych z realizacją zadań laboratoryjnych – ocena z wybranych ćwiczeń laboratoryjnych oraz zadania projektowego;
	ocenę wiedzy wykazanej na dwóch kolokwiach pisemnych.
- Egzamin:
- nie
- Literatura:
- •	Kim, Gene, et al. The DevOps Handbook:: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution, 2016.
•	Strona ITIL -  https://www.axelos.com/best-practice-solutions/itil
•	Strona Kubernetes - https://kubernetes.io/
•	Strona docker - https://www.docker.com/
- Witryna www przedmiotu:
- https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INIOP-ISP-WUS
- Uwagi:
- (-)
Efekty uczenia się
    Profil ogólnoakademicki - wiedza
                    - Charakterystyka W01
- ma wiedzę dotyczącą infrastruktury produkcyjnej, w której są eksploatowane współczesne systemy informatyczne
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        W09, W08
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o, III.P6S_WG
- Charakterystyka W02
- ma podstawową wiedzę w zakresie zarządzania, monitorowania i definiowania dostępności i wydajności systemów informatycznych
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        W08, W09
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o, III.P6S_WG
- Charakterystyka W03
- ma podstawową wiedzę z zakresu monitoringu, diagnostyki i testowania zgodności systemu informatycznego z wymaganiami
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        W08, W09
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o, III.P6S_WG
- Charakterystyka W04
- ma podstawową wiedzę na temat praktyk utrzymaniowych DevOps oraz standardów procesów zarządzania usługami ITIL
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        W08, W09
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o, III.P6S_WG
- Charakterystyka W05
- ma podstawową wiedzę dotyczącą utrzymywania i pielęgnacji kodu
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        W08, W09
 Powiązane charakterystyki obszarowe: 
                        P6U_W, I.P6S_WG.o, III.P6S_WG
- Charakterystyka W06
- ma podstawową wiedzę dotyczącą inżynierii wstecznej systemów informatycznych
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        W08, W09
 Powiązane charakterystyki obszarowe: 
                        I.P6S_WG.o, III.P6S_WG, P6U_W
Profil ogólnoakademicki - umiejętności
                    - Charakterystyka U01
- potrafi skonfigurować niebanalne środowisko wykonawcze, w postaci zbioru kontenerów lub maszyn wirtualnych, zgodnie z założonymi wymaganiami
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U01, U02, U04, U05, U06
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U02
- potrafi  zainstalować na istniejącym środowisku aplikację składającą się z oprogramowania systemowego i aplikacyjnego, zgodnie z przedstawionymi wytycznymi
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U04, U05, U06, U01, U02
 Powiązane charakterystyki obszarowe: 
                        III.P6S_UW.o, P6U_U, I.P6S_UW.o
- Charakterystyka U03
- potrafi analizować  i modyfikować zastany, niebanalny kod istniejącego systemu informatycznego
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U01, U02, U04, U05, U06
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U04
- potrafi posługiwać się repozytorium kodu i dokonywać na nim złożonych operacji
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U04, U05, U06, U01, U02
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U05
- potrafi przygotować prostą dokumentację przedstawiającą rozwiązanie zadanego problemu
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U01, U02, U04, U05, U06
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U06
- potrafi wyszukać niezbędne informacje w zasobach literaturowych
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U01
 Powiązane charakterystyki obszarowe: 
                        P6U_U, I.P6S_UW.o, III.P6S_UW.o
- Charakterystyka U07
- potrafi pracować indywidualnie i w zespole
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        U08
 Powiązane charakterystyki obszarowe: 
                        I.P6S_UO, P6U_U
Profil ogólnoakademicki - kompetencje społeczne
                    - Charakterystyka K01
- rozumie potrzebę stałego aktualizowania i wzbogacania posiadanej wiedzy
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        K01
 Powiązane charakterystyki obszarowe: 
                        P6U_K, I.P6S_KK
- Charakterystyka K02
- ma świadomość konieczności komunikowania się z otoczeniem, także pozazawodowym, w sposób zrozumiały dla odbiorcy
 Weryfikacja: kolokwium, laboratorium
 Powiązane charakterystyki kierunkowe: 
                        K05
 Powiązane charakterystyki obszarowe: 
                        P6U_K, I.P6S_KO
- Charakterystyka K03
- rozumie jak przeprowadzić wdrożenie i utrzymanie projektu informatycznego w sposób przedsiębiorczy
 Weryfikacja: laboratorium
 Powiązane charakterystyki kierunkowe: 
                        K04
 Powiązane charakterystyki obszarowe: 
                        P6U_K, I.P6S_KO