Duration: 3 days
Course code: SS-ARC-002
The Software Architecture training course is built for IT Architects and other software professionals aspiring to become IT architects
The Software Architecture course requires fundamental understanding of software development.
The Software Architecture 2 training course teaches IT architects the mindset required to build robust, scalable and maintainable architectures. The course teaches a methodology and a set of techniques that show how to ensure that all aspects of a technical architecture are covered and documented.
The Software Architecture training course also teaches a set of architectural structures and patterns essential in building enterprise architectures. This course covers advanced aspects of object technology. The course teaches a variety of approaches to advanced issues important in real world applications. Particular attention is given to topics that improve the precision and quality of developed systems.
Upon completion, students will be able to:
- 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 IT architecture
- Understand how to analyze architectural assets
- Apply an effective methodology for evolving architectures
Outline for Software Architecture 2 Training Course
- What is IT Architecture?
- Architectural categories
- What makes a good architecture?
- Achieving architectural goals
- Software processes and the architecture business cycle
- Where do architectures come from?
The Architectural Development Process
- A reference process
- How to validate?
- How to evolve?
- How to start?
- Rational Unified Process (RUP)
- TOGAF Lifecycle
- The Stakeholders
- What are views and viewpoints?
- The Zachman Framework
- IEEE 1471-2000
- How to select views
Commonly used Viewpoints
- Business Viewpoint
- Business Domain Viewpoint
- Design Viewpoint
- Integration Viewpoint
- Reuse Viewpoint
A Notation for Describing Software 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
- The impact of non-functional requirements
- What are Quality Attributes?
- Example Taxonomies
- Achieving Quality Attributes
- Evaluating Software Architectures
- What is an Asset?
- Asset management
- Reuse perspective
- Categories of patterns
- Object-Oriented Frameworks
- Layered / Multi-tier architectures
- Model-View-Controller Family: MVC, MVP, MVVM
- Blackboard and Event-Driven Reactive Systems
- Publish subscribe
- Service Oriented Architectures
- Web Services and REST
- Scalable systems
- Scaling out
- Big Data
- MapReduce and Hadoop
- Event Processing and Streams
- NoSQL and its impact
- Events and Stream processing
- Lambda Architecture