Audience
Architects
Prerequisites
None
Duration
2 Days
Outline for Fundamentals of Architectural Thinking Training
Chapter 1 - Introduction
- Introductions
- Course Outline
- Handouts & Appendices
- Practical Application
- Practical Application: Filling Your Toolbox
- Course Evaluation & Questions
- Course Delivery Overview
Chapter 2 - Architecture Overview
- Architecture
- Architects
- Importance of Architecture
- Communications Vehicle Among Stakeholders
- The Project is Organized Around Architectural Elements
- What is a System?
- Why Focus on Structure?
- Architecturally Significant
- Architecturally Significant Elements
- Solution Architecture
- Solution Architecture Context
- Solution Architecture & Domains
- SA Spans All Domains
- Relationship to EA Architecture Development Process
- Solution Architecture Stakeholders
- Solution Architecture Deliverables
- EA Involvement in SA
- Agile Architecture
- Continuous Architecture
- Group Discussion: Architecture
- Summary
Chapter 3 - Architecture Strategies
- Fundamental Architecture Concepts
- Abstraction
- Coupling
- Cohesion
- Decomposition & Modularization
- Encapsulation & Information Hiding
- Separation of Interface & Implementation
- Architecture Principles
- Components of Principles
- Qualities of a Good Set of Principles
- Example: Architecture Principles
- Sample: Architecture Principles
- Summary
Chapter 4 - Core Architecture Methods
- Shared Vision
- Example Shared Vision
- Draw the Boundary
- Well-defined Interface
- Example: Context Diagram
- Identify the External Interfaces
- Subsystems
- Subsystem Context Diagram
- Layers
- Example: Subsystems with Layers
- Components
- Decomposing the System
- Requirements Allocation
- Group Discussion: Requirements Allocation
- Summary
Chapter 5 - Agile Architecture
- What is the Problem We're Trying to Solve?
- Prioritization
- Integration
- What About How the Environment Has Changed?
- So What to Do?
- Goals of Agile Architecture
- Benefits
- Agile Architecture at Work
- Agile Architecture for Agile Software Projects
- Scaled Agile Framework (SAFe)
- Continuous Architecture
- Agile Architecture for Software
- Agile Architecture Research
- Agile Architecture Research Example 1
- Agile Architecture Research Example 2
- Agile Architecture Research Example 3
- Agile Architecture as an EA Practice
- Agile Architecture in the Industry
- Agile Architecture for EA Conclusion
- Summary
Chapter 6 - Architecture Requirements
- Architecture Quality Attributes
- Quality of Service Requirement Categories
- Checklist: Quality Attribute (QA) Categories
- Trade-off Analysis
- Group Discussion: Trade-offs
- Technique: Requirement Patterns
- Tool: Non-Functional Requirement Patterns
- Checklist: Requirement Statement Best Practices
- Technique: Architecture Change Cases
- Template: Elements of a Change Case
- Example: Change Case
- Eliciting Change Cases
- Group Discussion: Change Case
- Summary
Chapter 7 - Stakeholder Management
- Stakeholders
- Stakeholder Management
- When to Focus on Stakeholder Management
- Steps in the Stakeholder Management Process
- Identifying Stakeholders
- Example Stakeholders & Concerns
- Views and Viewpoints
- Example View: Claim Handling from a Process Viewpoint
- Classifying Stakeholde Positions: The Stakeholder Matrix
- Determining the Stakeholder Management Approach and Tailoring the Deliverables: The Stakeholder Map
- Example: Stakeholder Map
- Template: Stakeholder Map Matrix Template
- Summary
Chapter 8 - Architecture Techniques
- Progressive Filtering
- Rubric
- Example: Service Design Rubric
- Example: Architecture Rubric
- Refactoring
- Think About the Future, But Wait to Act
- Feature Tree
- Decision Tables
- Decision Table Example
- Flowcharts
- Strength, Weakness, Opportunity, Threat (SWOT) Analysis
- Example: SWOT Layout
- SWOT Steps
- Summary
Chapter 9 - Architecture Deliverables
- Documentation Best Practices
- Architecture Requirements Document
- Template: Requirements Specification
- IEEE Architectural Description Document
- Template: Architectural Description Document
- TOGAF Architecture Definition Document
- Templates: Architectural Definition Document
- Group Discussion: Architecture Definition Documents
- Interface Design Document
- Template: Interface Design Document
- Database Design Document
- Template: Database Design Document
- Platform Design Document
- Template: Platform Design Document
- Architecture Decision Document
- Template: Architecture Decision Document
- Group Discussion: Documentation
- Verbal Supports: CREST
- Group Discussion: Presentations
- Summary
Chapter 10 - The Architecture Toolbox
- Improving Architecture Skills
- Improving Architecture Skills: Spend Time @ the Library
- Improving Architecture Skills: Use Cookbooks
- Improving Architecture Skills: Practice with Mentors
- Improving Architecture Skills: Look for Existing Stuff
- Improving Architecture Skills: Build a Toolbox
- What Goes in A Toolbox
- Business Analysis Book of Knowledge (BABOK)
- Resource: Business Architecture Body of Knowledge (BIZBOK™)
- DAMA DMBOK
- Software Engineering Institute (SEI)
- Software Engineering Book of Knowledge (SWEBOK)
- OpenUp
- Microsoft Library
- Financial Industry Organizations
- Health Industry Organizations
- Retail Industry Organizations
- Technology Industry Organizations
- Reference Library
- Practitioner Toolbox Items
- Group Discussion: Toolbox Items
- Summary
Handout 1 - Sample Principles
- Business Principles
- Data Principles
- Application Principles
- Technology Principles
- Governance Principles
- SOA Governance Principles
Handout 2 - Requirement Patterns
Handout 3 - Rubric Worksheet
Appendix A - Reference Library
- Overview
- Industry Organizations
- References & Further Reading
Appendix B - Architecture Tactics
- Tactics
- Availability Tactics
- Modifiability Tactics
- Performance Tactics
- Security Tactics
- Testability Tactics
- Usability Tactics
- Approach for Describing Tactics
- Group Discussion: Tactics
- Pipes & Filters: Tactics
- Service-Oriented Architecture (SOA): Tactics
- Architectural Patterns and Corresponding Tactics for Modifiability
- Summary
Appendix C - Patterns
- What are Patterns?
- Elements of a Pattern
- Pattern Levels
- Pattern Types
- How to Start Using Patterns?
- Common Architectural Patterns
- Layers Pattern
- Example: Retail Layered Architecture
- Object-Oriented Design Patterns
- OO Design Patterns
- Structural Design Pattern: Facade Pattern Example
- Enterprise Integration Patterns
- Messaging Systems: Overview
- Example Pattern: Pipes and Filters
- Example: Monitoring Credit Bureau
- EAA Patterns
- Model-View-Controller (MVC) Pattern
- SOA Patterns
- Example: Saga Pattern
- Business Process Patterns
- Example: Synchronizing Merge Pattern
- Configuration Management Patterns
- New Patterns Continue to Emerge
- Group Discussion: Patterns
- Summary
Appendix D - Pattern List
Appendix E - Interface Specifications
- Interface Specification Best Practices
Appendix F - Architecture Glossary
- ABC
- DEF
- GHI
- MNO
- PQR
- STU
- VWXYZ
Lab Exercises
Lab 1. Requirements
Lab 2. System Scope
Lab 3. Architecture Techniques
Lab 4. Start Your Architecture Toolbox