Wzorce projektowe i architektoniczne, architektura aplikacji dla projektantów
LICZBA DNI: 5 (40h)
KOD KURSU: ARCH/PRO
Weź udział w szkoleniu
Termin
Lokalizacja
Trener
Cena / os
21
czerwca
Warszawa,
Termin
21
czerwca
Lokalizacja
Warszawa,
Trener
Cena / os
Powiadom
o kolejnych terminach
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
Parametry systemowe
- 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, Manageability
- Wymiary systemu i ich wpływ na parametry systemu
Wzorce architektoniczne
- Wprowadzenie do wzorców
- Stable Dependency Principle
- Wzorce podziału odpowiedzialności
- MVC i SPA, Desktop, Client-Server
- Web-centric, Application-centric, Enterprise
- Architektura wielowarstwowa (Layers Pattern)
- Wzorce infrastruktury
- Redundancja Ścieżek, Skalowanie poziome i pionowe
- Load Balancing, Reverse Proxy, Cloud
- Clustering, HA, Failover
- Wzorce EAI (Enterprise Application Integration)
- MOM, SOA, ESB
- Microservices i technologie
- Microservices a SOA
- Microservices a monolit
- Client-side a Server-side service discovery
- DevOps i Continuous Delivery/Deployment
- Zalety i problemy microservices
- On Premise(s), IaaS, CaaS, PaaS, FaaS, SaaS
- Microservices i skalowanie 3D
- Jak tworzyć architekturę microservices
- Polyglot Persistence
- CQRS i Event Sourcing jako wsparcie microservices
- Niespójne dane, czyli ACID kontra BASE
- Słów kilka o szablonach: Microservices Patterns, POSA, PEAA, Core J2EE, DDD, EIP
Wprowadzenie do UML (opcjonalne)
- 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
Modelowanie architektury w UML
- Diagram komponentów
- Diagram wdrożenia
Zaawansowane aspekty modelowania architektury w UML (opcjonalne)
- Instancyjne diagramy wdrożenia
- Niskopoziomowe diagramy wdrożenia
- Szablony architektoniczne
- Model wdrożenia na diagramach wdrożenia (artefakty)
- Diagram pakietów
Przejście z architektury do projektu
- Warstwy i komponenty a realizacja projektu
- Warstwy i komponenty a model projektowy
- Uwzględnienie ograniczeń architektury w projekcie
Modelowanie projektu w UML - wybrane diagramy
- 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
- Diagram sekwencji
- Linia życia
- Rodzaje komunikatów
- Synchroniczny
- Asynchroniczny
- Zwrotny
- Tworzenie i niszczenie obiektu
- Bloki złożone: alt, break, loop, par
Wzorce projektowe a architektura
- 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)
- Memento (reliability)
- 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)
- Application Service (flexibility, maintenance)
- Business Object (flexibility, maintenance)
- Warstwa Integracji
- DAO (flexibility)
