-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
The course Architectural Design Patterns discusses the importance and principles of architectural modeling and the application of Architectural Design Patterns. Architectural Design patterns are concerned with the large-scale organization of systems and the cooperation of their components and layers and not to the internal architecture of the individual software components.
The course starts with a review of the basic principles of software architecture, software design patterns and the terminology used.
Subsequently attention is paid to the role of design patterns in the architecture of software systems. The main categories of architectural patterns are discussed.
For example Call and Return Patterns such as the Layers pattern and the Client Server pattern are covered. The pros and cons are discussed.
Data Flow patterns are treated as well. Examples are the Pipes pattern as used in the Linux operating system and the Filter pattern that is known from the Java Servlet implementation. Shared Memory patterns such as the Blackboard pattern are also on the program of the course.
Distributed systems patterns such as the Proxy and Broker pattern are also discussed. Practical implementations of each pattern are reviewed and the pros and cons are explained.
Finally advanced patterns about concurrency and threads are covered and a number of patterns that do not belong to a particular category are treated. Participants will practice with the patterns and discuss the application of the patterns to practical problems in software architecture.
The course Architectural Design Patterns is aimed at experienced developers and software architects who want to apply design patterns for the architecture of systems.
Knowledge of an object-oriented programming language like C++, C# or Java and experience with object oriented analysis and design with UML is desired.
The course Architectural Design Patterns has a hands-on character. The theory is covered on the basis of presentation slides and is illustrated with demos of architectural patterns. There are exercises in design problems where architectural patterns can be applied. The course material is in English. The course times are from 9.30 up and to 16.30.
Participants receive an official certificate Architectural Design Patterns after successful completion of the course.
Module 1 : Software Architecture |
Module 2 : Architectural Patterns |
Module 3 : Call and Return Patterns |
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 |
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 |
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 |
Module 5 : Shared Memory Patterns |
Module 6 : Distributed Systems |
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 |
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 |
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 |
Module 8 : Implicit Invocation |
Module 9 : Concurrency Patterns |
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 |
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 |
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 |
All our courses are classroom courses in which the students are guided through the material on the basis of an experienced trainer with in-depth material knowledge. Theory is always interspersed with exercises.
We also do custom classes and then adjust the course content to your wishes. On request we will also discuss your practical cases.
The course times are from 9.30 to 16.30. But we are flexible in this. Sometimes people have to bring children to the daycare and other times are more convenient for them. In good consultation we can then agree on different course times.
We take care of the computers on which the course can be held. The software required for the course has already been installed on these computers. You do not have to bring a laptop to participate in the course. If you prefer to work on your own laptop, you can take it with you if you wish. The required software is then installed at the start of the course.
Our courses are generally given with Open Source software such as Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda and Netbeans. You will receive the digital course material to take home after the course.
The course includes lunch that we use in a restaurant within walking distance of the course room.
The courses are planned at various places in the country. A course takes place at a location if at least 3 people register for that location. If there are registrations for different locations, the course will take place at our main location, Houten which is just below Utrecht. A course at our main location also takes place with 2 registrations and regularly with 1 registration. And we also do courses at the customer’s location if they appreciate that.
At the end of each course, participants are requested to evaluate the course in terms of course content, course material, trainer and location. The evaluation form can be found at https://www.klantenvertellen.nl/reviews/1039545/spiraltrain?lang=en. The evaluations of previous participants and previous courses can also be found there.
The intellectual property rights of the published course content, also referred to as an information sheet, belong to SpiralTrain. It is not allowed to publish the course information, the information sheet, in written or digital form without the explicit permission of SpiralTrain. The course content is to be understood as the description of the course content in sentences as well as the division of the course into modules and topics in the modules.