Nazwa przedmiotu:
Projektowanie i integracja systemów
Koordynator przedmiotu:
Rajmund Kożuszek
Status przedmiotu:
Fakultatywny ograniczonego wyboru
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne
Kod przedmiotu:
PIS
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.,  udział w projekcie: 30 godz.,  udział w konsultacjach związanych z realizacją przedmiotu: 4 godz. 2. praca własna studenta – 41 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.  zbieranie materiałów niezbędnych do przygotowania projektu: 25 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 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 55 godzin przygotowania do i realizacji projektu
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt30h
  • Lekcje komputerowe0h
Wymagania wstępne:
Sztuka wytwarzania oprogramowania, Programowanie aplikacyjne, Bazy danych 1
Limit liczby studentów:
60
Cel przedmiotu:
Przedmiot ma na celu przekazanie wiedzy na temat współczesnych zagadnień architektonicznych złożonych systemów informatycznych, problemów projektowania, integracji, wdrażania i ich utrzymania. Przedmiot pokazuje sposób projektowania poszczególnych warstw systemów informatycznych: od poziomu serwerów, dostępu do danych, przez logikę biznesową aż po integrację złożonych systemów. Student po ukończeniu kursu będzie w stanie wytypować właściwe podejście architektoniczne w zależności od postawionego problemu i będzie znał najważniejsze narzędzia używane na poszczególnych warstwach, ich korzyści i ograniczenia.
Treści kształcenia:
WYKŁADY: 1. Wprowadzenie(2 godz.) Regulamin. Organizacja i automatyzacja procesu wytwarzania oprogramowania, warsztat pracy. Narzędzia IDE, software pipeline, repozytorium wersjonowania kodu w złożonych projektach. 2. Architektura aplikacji (4 godz.) Kluczowe wzorce architektoniczne, architektura usługowa SOA, mikroserwisy, architektura zdarzeniowa EDA, serverless architecture, szyna integracyjna, dokumentacja i modelowanie architektury. Decyzje architektoniczne. 3. Projektowanie i implementacja warstwy dostępu do danych (4 godz.) Modele baz danych, podejście SQL i noSQL, single-model db, multi-model db, polyglot persistence, wybrane bazy noSQL (Cassandra, MongoDB), bezpośrednia komunikacja z bazą danych (jdbc), odwzorowanie relacyjno-obiektowe - wady, zalety, techologie (Hibernate, JDBC, JPA). Projektowania warstwy abstrakcji dostępu do danych: wzorce (DAO, Repository) i technologie (np Spring Data, JCR), Wydajność / HA (partycjonowanie, cache ), transakcje w tym transakcje rozproszone. 4. Projektowanie, implementacja i zdalne udostępnianie logiki biznesowej (4 godz.) Logika lokalna vs zdalna, organizacja zależności lokalnych w paradygmacie DI/IoC (na przykładzie Spring), CLEAN architecture, Domain Driven Design, zdalne udostępnianie logiki, protokoły binarne vs tekstowe, usługi oparte na REST, usługi oparte na SOAP, odkrywanie usług, kontrakt, dokumentacja, OpenAPI, wersjonowanie API, zabezpieczanie usług, technologie: SpringMVC, JAX-WS, projektowanie logiki podatnej na ciągłe zmiany: systemy reguł i procesów biznesowych. 5. Zagadnienia jakości w projekcie IT (3 godz.) Techniki programowania oparte na testowaniu: Behaviour-driven Development, Specification by Example, Test-driven Development, testowanie jednostkowe, integracyjne i akceptacyjne, testowanie interfejsów użytkownika, automatyzacja testów, testy wydajnościowe, testy bezpieczeństwa. 6. Integracja systemów klasy enterprise (4 godz.) Podstawowe strategie integracji (pliki, baza, RPC, komunikaty), wzorce EAI, architektura zdarzeniowa (EDA), architektura usługowa - aspekty zaawansowane, szyna korporacyjna (ESB), technologie/standarty: JMS, AMPQ, Kafka, Camel, Spring Integration 7. Wybrane aspekty wdrażania i utrzymania aplikacji (3 godz.) Bare metal, wirtualizacja, konteneryzacja, chmura, infrastructure as a code, wdrożenia on-permise i wdrożenia w chmurze, modele chmurowe, monitoring środowiska produkcyjnego, ciągłe dostarczanie, zagadnienia jakości i bezpieczeństwa 8. Rozwiązania komercyjne a rozwiązania otwartego oprogramowania (open source) - powtórzenie (2 godz.). Rodzaje licencji i ich konsekwencje w projekcie IT. PROJEKT: Etap 1: Analizy postawionego problemu, dobór architektury i technologii z uzasadnieniem Etap 2: Zapoznania z technologią (oceniane indywidualnie) Etap 3: Stworzenia warsztatu pracy i zrębu projektu Etap 4: Zaprojektowania i implementacji Końcowy etap projektu będzie rozliczany na podstawie krótkiej prezentacji połączonej z demonstracją działania systemu, a także dokumentacji projektowej.
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 projektowe w wymiarze 2 godz. tygodniowo; w ramach tych zajęć student, korzystając z oprogramowania i sprzętu komputerowego, będzie realizował wskazane zadanie dotyczące projektowania architektury i implementacji systemu informatycznego Sprawdzanie założonych efektów kształcenia realizowane jest przez:  ocenę wiedzy i umiejętności związanych z realizacją zadań projektowych – ocena na podstawie krótkiej prezentacji połączonej z demonstracją działania systemu, a także dokumentacji projektowej;  ocenę wiedzy wykazanej na dwóch kolokwiach pisemnych.
Egzamin:
nie
Literatura:
• Bass, Len, Paul Clements, and Rick Kazman. Software architecture in practice. Addison-Wesley Professional, 2003. • Clements, Paul, et al. Documenting software architectures: views and beyond. Pearson Education, 2002.
Witryna www przedmiotu:
https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103A-INxxx-ISP-PIS
Uwagi:
(-)

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka W01
ma wiedzę dotyczącą fundamentalnych pojęć z zakresu architektury współczesnych systemów informatycznych
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: W08, W09
Powiązane charakterystyki obszarowe: P6U_W, I.P6S_WG.o, III.P6S_WG
Charakterystyka W02
zna wzorce architektoniczne w różnych widokach, zna ich zalety, wady i wie kiedy należy stosować
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: W09, W08
Powiązane charakterystyki obszarowe: P6U_W, I.P6S_WG.o, III.P6S_WG
Charakterystyka W03
ma podstawową wiedzę z zakresu projektowania i implementacji warstwy danych
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: W08, W09
Powiązane charakterystyki obszarowe: P6U_W, I.P6S_WG.o, III.P6S_WG
Charakterystyka W04
ma podstawową wiedzę z zakresu projektowania i implementacji logiki biznesowej
Weryfikacja: kolokwium, ocena projektu
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ą integracji systemów klasy enterprise
Weryfikacja: kolokwium, ocena projektu
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ą wpływu procesów wytwarzania oprogramowania na architekturę
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: W08, W09
Powiązane charakterystyki obszarowe: P6U_W, I.P6S_WG.o, III.P6S_WG
Charakterystyka W07
ma podstawową wiedzę z zakresu architektury wdrażania oprogramowania
Weryfikacja: kolokwium, ocena projektu
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 zaprojektować właściwą architekturę systemu, dokonać świadome decyzje architektonicznych i je uzasadnić
Weryfikacja: kolokwium, ocena projektu
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 zastosować właściwe wzorce architektoniczne
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: U04, U06, U01, U02
Powiązane charakterystyki obszarowe: III.P6S_UW.o, P6U_U, I.P6S_UW.o
Charakterystyka U03
potrafi użyć podstawowych technologii integracyjnych systemów informatycznych
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: U01, U02, U04, U06
Powiązane charakterystyki obszarowe: P6U_U, I.P6S_UW.o, III.P6S_UW.o
Charakterystyka U04
potrafi stworzyć zrąb projektu i warsztat pracy do rozwoju systemu informatycznego
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: U01, U02, U04, U06
Powiązane charakterystyki obszarowe: P6U_U, I.P6S_UW.o, III.P6S_UW.o
Charakterystyka U05
potrafi przygotować dokumentację przedstawiającą w czytelny sposób architekturę projektowanego systemu
Weryfikacja: kolokwium, ocena projektu
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, ocena projektu
Powiązane charakterystyki kierunkowe: U06, U01, U02, U04, U05
Powiązane charakterystyki obszarowe: I.P6S_UW.o, III.P6S_UW.o, P6U_U
Charakterystyka U07
potrafi pracować indywidualnie i w zespole
Weryfikacja: kolokwium, ocena projektu
Powiązane charakterystyki kierunkowe: U08
Powiązane charakterystyki obszarowe: P6U_U, I.P6S_UO

Profil ogólnoakademicki - kompetencje społeczne

Charakterystyka K01
rozumie potrzebę stałego aktualizowania i wzbogacania posiadanej wiedzy
Weryfikacja: kolokwium, ocena projektu
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, ocena projektu
Powiązane charakterystyki kierunkowe: K05
Powiązane charakterystyki obszarowe: P6U_K, I.P6S_KO