- 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:
III.P6S_WG, P6U_W, I.P6S_WG.o
- 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:
W09, W08
Powiązane charakterystyki obszarowe:
P6U_W, I.P6S_WG.o, III.P6S_WG
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:
U06, U01, U02, U04
Powiązane charakterystyki obszarowe:
I.P6S_UW.o, III.P6S_UW.o, P6U_U
- 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:
III.P6S_UW.o, P6U_U, I.P6S_UW.o
- Charakterystyka U06
- potrafi wyszukać niezbędne informacje w zasobach literaturowych
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 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