Architectural Design Patterns


Een design pattern in de informatica is een generiek opgezette softwarestructuur, die een bepaald veelvoorkomend type software-ontwerpprobleem oplost. Het patroon geeft geen concrete oplossing, maar biedt een soort sjabloon, waarmee het ontwerpprobleem kan worden aangepakt.

Tijdens de cursus Architectural Design Patterns gaan wij in op het belang en de principes van architectural modeling, en de toepassing van Architectural Design Patterns. Architectural Design Patterns hebben betrekking op de grootschalige organisatie van systemen en de samenwerking van hun componenten en lagen; niet op de interne architectuur van de afzonderlijke software-componenten.

Na een review van de basisprincipes van software design patterns en de gebruikte terminologie, wordt aandacht besteed aan de rol van design patterns in de architectuur van softwaresystemen. De belangrijkste categorieën van architectural patterns worden besproken. Aandacht wordt bijvoorbeeld besteed aan call en return patterns, zoals het layers pattern, en aan data flow patterns, zoals het pipes en filter pattern. Ook komen shared memory patterns en distributed systems patterns aan bod. Van ieder pattern worden de voor- en nadelen besproken.

De deelnemers zullen oefenen met de patterns en de toepassing van de patterns voor praktische problemen in de software-architectuur bespreken. Vervolgens worden geavanceerde patterns over concurrency en threads besproken. Tot slot passeert een aantal patterns de revu die niet tot een bepaalde categorie behoren.

De cursus heeft een hands-on karakter. De theorie wordt behandeld aan de hand van presentatieslides en wordt geïllustreerd met demo’s van architectural patterns. Er zijn oefeningen met designproblemen, waar architectural patterns kunnen worden toegepast.

Het cursusmateriaal en de lunch zijn bij de cursus inbegrepen.

Doelgroep

De cursus Architectural Design Patterns is bedoeld voor ervaren developers en software-architecten, die design patterns willen toepassen bij de architectuur van systemen.

Voorkennis

Kennis van een objectgeoriënteerde programmeertaal zoals C++, C# of Java en ervaring met objectgeoriënteerde analyse en design met UML is vereist.

Duur

De duur van deze cursus is twee dagen.

Groepsgrootte

De maximale groepsgrootte bedraagt acht personen.

Certificaat

De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat.

Tijdens de cursus Architectural Design Patterns worden de volgende onderwerpen behandeld:

Module 1: Software Architecture
What is Architecture?
Software Architecture
Layered Architecture
Software Characteristics
Analogy to Building
Role of Architect
Software Architecture Elements
Architecture Context
Architectural Viewpoints
Logical Architecture
Non Functional Requirements
Physical Architecture
Early Load Testing

Module 2: Architectural Patterns
Architectural Modeling
Model Characteristics
Architectural Viewpoints
Pattern Terminology
Gang of Four Design Patterns
Architectural Patterns
Architectural Pattern Categories
Batch Sequential Pattern
Pipe and Filter Pattern
Blackboard Pattern
Publish and Subscribe Pattern
Peer to Peer Pattern
Model View Controller Pattern

Module 3: Call and Return Patterns
Object Oriented Pattern
OO Benefits and Drawbacks
Object Oriented Architecture
Layers Pattern
Layers Problem
Layers Solution
Network Architecture
Layers Benefits and Drawbacks
Layers Pattern Variant
Client Server Pattern
Client Server Architecture
Three Tier Pattern
Three Tier Architecture

Module 4: Data Flow Patterns
Data Flow Architecture
Batch Sequential Pattern
Data Flow Pattern Problems
Batch Sequential
Pipes and Filter Pattern
Pipes and Filter Forces
Pipes and Filter Patterns
Servlet Filters
Web Service Handlers
Call Chain of Handlers
Benefits and Drawbacks
Pipes and Filter Variants

Module 5: Shared Memory Patterns
Data Centered View
Shared Repository Pattern
Shared Repository Architecture
Active Repository Pattern
BlackBoard Pattern
BlackBoard Architecture
BlackBoard Context
Speech Recognition
BlackBoard Solution
BlackBoard Variants
BlackBoard Know Uses
Benefits and Drawbacks

Module 6: Distributed Systems
Proxy Pattern
Types of Proxies
Copy on Write Proxy
Remote Proxy
RMI Proxy Architecture
Broker Pattern
Broker Forces
Broker Solution
Bridge Component
Broker Variations
Benefits and Drawbacks
Broker Class Diagram

Module 7: Interactive Systems
MVC Pattern
MVC Architecture
MVC Model
MVC View
MVC Controller
Multiple Views Same Data
Known Uses MVC
Benefits and Drawbacks
PAC Pattern
PAC Structure
PAC Solution
PAC Benefits and Drawbacks

Module 8: Implicit Invocation
Communication Patterns
RPC Pattern
Publish Subscribe Pattern
Queue versus Publish Subscribe
Topics and Queues
Data Distribution Pattern
Request Reply Pattern
Request Reply Correlation
Multiple Replies
Scalable Request Reply
Guaranteed Delivery Scenario
Guaranteed Delivery

Module 9: Concurrency Patterns
Reactor Pattern
Server Socket Loop
Reactor Pattern Forces
Event Driven Design
Single Threaded Reactor
Non Blocking IO
Thread Pool Reactor
Reactor Known Uses
Reactor Benefits and Drawbacks
Active Object Pattern
Active Object Method Scheduling
Active Object Method Dispatch

Module 10: Other Patterns
MicroKernel Pattern
Microkernel Structure
State Machine Pattern
State Machine Structure
Reflection Pattern
Reflection Structure
Process Control Pattern
Process Control Structure
Master and Slave Pattern
Master and Slave Structure

Plaats Duur Data
Amsterdam - Hullenbergweg 280-308 2 dagen 23 & 24 april 2019 Inschrijven >
Houten - Standerdmolen 10 2 dagen 23 & 24 april 2019 Inschrijven >
Rotterdam - Provenierssingel 66 2 dagen 24 & 25 juni 2019 Inschrijven >
Houten - Standerdmolen 10 2 dagen 24 & 25 juni 2019 Inschrijven >
Amsterdam - Hullenbergweg 280-308 2 dagen 19 & 20 augustus 2019 Inschrijven >
Houten - Standerdmolen 10 2 dagen 19 & 20 augustus 2019 Inschrijven >
Rotterdam - Provenierssingel 66 2 dagen 21 & 22 oktober 2019 Inschrijven >
Houten - Standerdmolen 10 2 dagen 21 & 22 oktober 2019 Inschrijven >