Wzorce projektowe i architektoniczne, architektura aplikacji dla projektantów

LICZBA DNI: 5 (40h)

KOD KURSU: ARCH/PRO

# quality

# uml

Autor szkolenia:
Michał Podbielski

O szkoleniu

DLA KOGO?

Głównymi adresatami szkolenia są projektanci oraz osoby planujące wykonywać czynności projektowe.

Szkolenie adresowane jest do osób, które chciałyby zapoznać się z wzorcami architektonicznymi oraz projektowymi od strony aspektów projektowych.

Za przydatne uznają je osoby, które muszą tworzyć projekt dla wybranej już architektury. Dowiedzą się nie tylko, na co zwracać uwagę przy konkretnych wzorcach architektonicznych, ale poznają też kluczowe przesłanki doboru konkretnej architektury. Dzięki temu nauczą się jak stworzyć projekt, który nie będzie kłócił się z założeniami architektonicznymi i pozwoli na osiągnięcie założonych poziomów parametrów systemowych.

WYMAGANIA

Szkolenie wprowadza do zagadnień projektowych od podstaw. Zarówno w zakresie zrozumienia cech poznawanych wzorców architektonicznych, modelowania w UML, jak i kluczowych aspektów modelowania na poziomie projektowym.

W związku z tym szkolenie nie posiada wymagań wstępnych stawianych uczestnikom aczkolwiek mile widziana jest znajomość JEE, gdyż czas szkolenia nie pozwala na pełne omówienie ograniczeń zawartych tam technologii, a część ćwiczeń odwołuje się do nich.

ZALETY

Jakościowe spojrzenie na użyte wzorce

Umiejętne użycie wzorców z zachowaniem ograniczeń architektonicznych

Zrozumienie architektury

Cele szkolenia

Celem szkolenia jest zdobycie umiejętności projektowania przy wybranych wzorcach architektonicznych z użyciem wzorców projektowych. Innymi słowy uwzględnienie w projekcie ograniczeń architektonicznych narzuconych przez model architektury (zawarte w nim warstwy, stosy technologiczne, rozmieszczenie komponentów i protokoły komunikacji).

Na szkoleniu uczestnik poznaje parametry systemowe oraz wzorce architektoniczne od strony ich struktury i osiągania określonych celów (wyrażonych we wspomnianych parametrach systemowych).

Uczymy się struktury i modelowania w UML na poziomie architektonicznym, a następnie przechodzimy do poziomu projektowego.

Na poziomie projektowym uwzględniamy ograniczenia architektury przy modelowaniu przypadków użycia, jak również uszczegóławiamy architekturę na poziomie diagramów architektonicznych.

Aby to osiągnąć poznajemy wspominane parametry systemowe, wybrane diagramy UML oraz same wzorce architektoniczne i projektowe.

Szkolenie pomija wiele aspektów niezbędnych architektom do podjęcia decyzji architektonicznych, gdyż te obszary omawiane są na szkoleniu dedykowanym dla architektów.

Program

  • Czym są parametry systemowe
  • Jak poprawnie definiować wymagania niefunkcjonalne
  • Parametry systemowe:
    • Usability, Security, Performance,
    • Scalability, Availability, Reliability,
    • Extensibility, Reusability, Portablity, Flexibility,
    • Realizability, Planability, Testability,
    • Maintainability, Serviceability, Managebility
    • Wymiary systemu i ich wpływ na parametry systemu
  • Priorytetyzowanie parametrów systemowych
  • Wprowadzenie do wzorców
  • Problemy architektury komponentowej
  • Wzorce podziału odpowiedzialności:
    • MVC i SPA, Web-centric, Application-centric, Enterprise,
  • Architektura wielowarstwowa (Layers Pattern)
  • Wzorce EAI (Enterprise Application Integration):
    • SOA, ESB, MOM, Microsercvices
  • Wzorce infrastruktury:
    • Redundancja Ścieżek, Skalowanie poziome i pionowe,
    • Load Balancing, Clustering, HA, Failover, Forward Proxy Cache
  • Wzorce blokowania zasobów:
    • Optimistic, Pessimistic, Implicit i Coarse-Grained Lock
  • Inne wzorce architektoniczne:
    • Dependency Injection i Inversion, Stable Dependency Principle,
    • CQRS, Event Sourcing
  • Słów kilka o szablonach: POSA, PEAA, Core J2EE, EAI
  • Podstawy obiektowości
  • Czym jest modelowanie
  • Czym jest, a czym nie jest UML
  • Rozwój UML
  • Podstawowe elementy UML (kwalifikatory, relacje, diagramy)
  • Mechanizmy rozszerzania UML
  • Zastosowania UML
  • Diagram a model
  • Diagram komponentów
  • Diagram wdrożenia
  • Instancyjne diagramy wdrożenia
  • Niskopoziomowe diagramy wdrożenia
  • Szablony architektoniczne
  • Model wdrożenia na diagramach wdrożenia (artefakty)
  • Diagram pakietów
  • Warstwy i komponenty a realizacja projektu
  • Warstwy i komponenty a model projektowy
  • Uwzględnienie ograniczeń architektury w projekcie
  • Diagram klas
    • Klasa i jej elementy
    • Klasy i metody abstrakcyjne
    • Interfejs
    • Relacje
      • Realizacja
      • Dziedziczenie
      • Zależność i wybrane stereotypy
      • Asocjacja i jej cechy
      • Agregacja i kompozycja
      • Klasa asocjacyjna
    • Klasy szablonowe
    • Zbiory i ograniczenia dziedziczenia
    • Ograniczenia końców asocjacji
  • Diagram sekwencji
    • Linia życia
    • Rodzaje komunikatów
      • Synchroniczny
      • Asynchroniczny
      • Zwrotny
      • Tworzenie i niszczenie obiektu
      • Komunikat zgubiony i odnaleziony
    • Bloki złożone: alt, break, loop, par
    • Referencja do diagramu
  • Jak wzorce projektowe wpływają na architekturę
  • Wybrane wzorce GOF
    • Factory Method (flexibility)
    • Abstract Factory (reliability, flexibility)
    • Builder (reliability, flexibility)
    • Prototype (performance)
    • Singleton (performance)
    • Façade (performance, flexibility)
    • Command (flexibility)
    • Strategy (flexibility)
    • Adapter (flexibility)
    • Mediator (flexibility)
    • Observer (performance, flexibility)
    • Template Method (reliability, flexibility)
    • Memento (reliability)
    • Flyweight (memory performance)
    • Chain of responsibility (flexibility)
    • Proxy (flexibility, performance)
    • Decorator (flexibility)
  • Wybrane wzorce Core J2EE
    • Warstwa Prezentacji
      • Intercepting Filter (flexibility)
      • Context Object (maintenance, flexibility)
      • Service To Worker (flexibility)
    • Warstwa Biznesowa
      • Business Delegate (maintenance)
      • Service Locator (maintenance)
      • Session Façade (performance, flexibility)
      • Transfer Object (performance)
      • Value List Handler (performance, scalability)
      • Application Service (flexibility, maintenance)
      • Business Object (flexibility, maintenance)
    • Warstwa Integracji
      • DAO (flexibility)

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.