Technical Architecture and Patterns Training Course


With the emergence of very complex distributed systems, complexity of a single system moved to the complexity of the architecture of the group of systems. This course covers the relationship of Software Architecture with Technical Enterprise Architecture. These two areas are interrelated in a way which currently is not well described. For example, splitting complex monolithic system into two systems communicating via web services will trigger substantial changes to both the new systems, and the architecture between them.

This course will cover trade-offs, currently common patterns and solutions for managing complex systems and communication within and between them.

Course Outline


  • System and Component Cohesion
  • System/component Dependencies
  • Software Architecture
  • Technical Architecture
  • Enterprise Architecture
  • SOA and Micro services architecture
  • Relationships between above concepts
  • Logic redudancy vs dependency
  • Data reduancy  vs dependency

Software Architecture


  • clarification of terms: architecture, design, modeling
  • orthogonality
  • conways Law

Common Architectures

  • modular decomposition
  • hierarchical architecture
  • centralised (Mediator Pattern)
  • event-based architecture
  • interrupt-based
  • OSI
  • client/server
  • layer model

Principles of OO Design

  • DRY, SRP
  • encapsulation
  • program against an interface
  • Liskovs principle
  • Law of Demeter

Design Patterns

  • what are Design Patterns
  • Creational Patterns
  • Structural Patterns
  • Behavioural Patterns
  • Model-Controller-View (MCV)

Design Tools

  • Domain specific language
  • Lexical Analysis
  • CRC cards
  • scenarios
  • Use Case descriptions

UML Graphical Representations

  • Class Diagram
  • Sequence Diagram
  • aggregation diagram
  • UML tools

Non-UML Graphical Representations

  • ER-modeling
  • State Machine
  • data flow
  • architectural model

Design and Maintenance

  • Lehmanns Laws
  • Architectural Antipatterns
  • Refactoring Strategies

SOA and Integration Patterns

  • Integration technologies and methods
  • Synchronous/Asynchronous
  • More details direct communication patterns
  • Direct and brokered communication
  • Message Queuing
  • ESB

Deployment Patterns

  • Code Deployment
  • Immutable deployment
  • Availability, Scaleability, High Performance, Fault tolerance patterns
  • Data and messages replication and clustering (CAP theorem)

Leave a Reply

Your email address will not be published. Required fields are marked *