Architectural Thinking
Duration (in days):
5

Description:
When programmers are promoted to architects, organizations often loose a great programmer and gain a terrible architect. In this course, we aim at teaching a software engineer how to become an architect. It is also a great course for architects to learn about the latest architectural patterns and processes.
Objectives:
Recognize and understand the various aspects of IT architectures
Be able to recognize, understand and use the most common architectural patterns
Effectively document IT architectures
Be able to identify the various customers of an IT architecture
Understand how to analyze architectural assets
Apply an effective methodology for evolving architectures
Prerequisites:
When programmers are promoted to architects, organizations often loose a great programmer and gain a terrible architect. In this course, we aim at teaching a software engineer how to become an architect. It is also a great course for architects to learn about the latest architectural patterns and processes.
Audience
Architects and software developers.
Outline
Introduction
What is an IT Architecture?
Architectural categories
What makes a good architecture?
Software processes and the architecture business cycle
Where do architectures come from?
Typical architectural goals
The Architectural Development Process
Reference process
How to validate?
How to evolve?
How to start?
Rational Unified Process (RUP)
TOGAF Lifecycle
Agile development
Agile and architecture
Architectural views
The Stakeholders
What are views?
The Zachman Framework
IEEE 1471-2000
How to select views?
Commonly used views
Documenting architecture
Why notation?
UML 2.0 and architectural descriptions
Is UML enough?
Other notations
A documentation template
Requirements and Architecture
The requirements view
Ensuring continuity in architecture
Documentation of requirements
Validation of architecture against functional requirements
Commonly used Viewpoints
Business Viewpoint
Business Domain Viewpoint
Design Viewpoint
Integration Viewpoint
Reuse Viewpoint
Scalability Viewpoint
Security Viewpoint
Risk Viewpoint
Maintainability Viewpoint
Architectural Patterns
Service Oriented Architectures
Microservices
Lambda Architecture
Event-Sourcing
Categories of patterns
Object-Oriented Frameworks
Patterns versus idioms
Broker
Blackboard
Publish Subscribe
Model View Controller
Layers
Architectural assets
What is an Asset?
Asset management
Reuse perspective