Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Projektowanie i integracja systemów

Informacje ogólne

Kod przedmiotu: 103A-INxxx-ISP-PIS Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Projektowanie i integracja systemów
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Przedmioty techniczne )---EITI
( Przedmioty wariantowe )-Informatyka-inż.-EITI
Punkty ECTS i inne: 4.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

PIS

Numer wersji:

1

Skrócony opis:

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.

Pełny opis:

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ść wykładu

  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.



Zakres projektu

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.

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.
Metody i kryteria oceniania:

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.

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (jeszcze nie rozpoczęty)

Okres: 2021-10-01 - 2022-02-20
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 30 godzin, 150 miejsc więcej informacji
Wykład, 30 godzin, 150 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: (brak danych)
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103100 - Instytut Automatyki i Informatyki Stosowanej

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.