WA1811

Introduction to Solution and Software Architecture Training

This course introduces the students to the fundamentals of Solution and Software Architecture. Within the broader strategic vision that Enterprise Architecture (EA) provides, there is a need to provide structure and guidance around the more tactical solution architecture capabilities that are developed to ensure they are consistent with the broader EA strategy.
Course Details

Duration

3 days

Prerequisites

Basic understanding of software development.

Target Audience

  • Architects
  • Developers
  • Designers
  • Analysts

Skills Gained

  • Ability to discuss what architecture is
  • Describe Enterprise Solution Architecture and it’s core elements
  • Describe software architecture
  • Discuss the software architecture quality attributes
  • Explain how architecture based development is carried out
  • Describe how architecture documentation is performed
Course Outline
  • Architecture Primer
    • Architects
    • Architects and Architecture
    • Group Discussion
    • Enterprise Architecture Definitions (Wikipedia)
    • More Enterprise Architecture Definitions
    • A Rose By Any Other Name
    • Enterprise, Solution, and Technical Architectures
    • City Planners
    • City Planning and EA
    • Examples of Enterprise Architecture
    • Solution Architecture
    • Examples of Solution Architecture
    • Solution Architecture Example: SOA for Insurance
    • Technical Architecture
    • Examples of Technical Architecture
    • Technical Architecture Example
    • Architecture Is Not Only Design
  • Solution Architecture Overview
    • Understanding Solution Architecture
    • The Solution Architect
    • The Solution Architecture Context
    • Introducing Architecture Domains
    • Identifying the Architecture Domains
    • Diving into the Domains
    • Solution Architecture Realization Process
    • Requirements and Deliverables
    • Divide and Conquer
  • Solution Architecture Styles
    • Catalog of Architectural Styles
    • Asynchronous Messaging
    • Message Oriented Middleware (MOM)
    • Example MOM implementation Platforms
    • MOM Messaging
    • MOM Qualities
    • Publish/Subscribe Messaging
    • Point-to-Point Messaging (P2P)
    • MOM Related Standards
    • MOM Example
    • Service Oriented Architecture (SOA)
    • Service-Oriented Interaction Model
    • SOA Characteristics
    • Microservices
    • Microservices Architecture
    • Microservices vs Enterprise Service Bus (ESB)
    • Many Flavors of Web Services
    • Understanding REST
    • Principles of RESTful Services
    • SOAP and RESTful Web Services
  • Defining the Cloud
    • A Bit of History
    • Cloud Computing at a Glance
    • Electrical Power Grid Service Analogy
    • The NIST Perspective
    • Five Characteristics
    • On-demand Self-Service (NIST Characteristic)
    • Broad Network Access (NIST Characteristic)
    • Resource Pooling (NIST Characteristic)
    • Rapid Elasticity (NIST Characteristic)
    • Measured Service (NIST Characteristic)
    • The Three Cloud Service Models: IaaS, PaaS and SaaS
    • The Four Cloud Deployment Models (NIST)
    • The NIST Cloud Definition Framework
    • A Hybrid Cloud Diagram
    • Cloud Services
    • Managed vs Unmanaged Services
    • Shared Responsibility Model
    • The AWS (Simplified) Service Stack
  • 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
  • Solution Architecture Adoption
    • Adopting Solution Architecture
    • Architecture Adoption Best Practices
    • Architecture Adoption – Phase 1
    • Identify your business drivers
    • Get Educated
    • Articulate a Value Proposition
    • 4. Define one or more scenarios
    • Architecture Adoption – Phase 1
    • Architecture Adoption – Phase 2
    • Produce a Road Map
    • Gain Stakeholder Buy-in
    • Architectural Adoption – Phase 2
    • Architectural Adoption – Phase 3
    • Establish Governance
    • Invest in Infrastructure
    • Execute a Pilot Project
    • Scoping the Pilot Project
    • Scoping the Pilot Project (cont’d)
    • Roll Out to the Enterprise
  • The Software Development Process
    • Section A Software Development Methodologies
    • Waterfall Development Methodology
    • Iterative Development Methodology
    • Low Ceremony/High Ceremony
    • Comparison of Some Software Methodologies
    • The Spirit of the Rational Unified Process: Well-Defined Software Engineering
    • Two Dimensions of the RUP Process
    • Dynamic Dimension of RUP: Life-cycle Phases & Milestones
    • Static Dimension of RUP: Modeling Elements
    • Static Dimension of RUP: Disciplines
    • Spirit of RUP: Iterative & Risk-Driven Approach
    • The Life-cycle of Projects Using the Rational Unified Process: Inception Phase
    • Inception Phase (Cont…)
    • Elaboration Phase
    • Elaboration Phase (Cont…)
    • Develop Executable Architecture
    • Construction Phase
    • Construction Phase (Cont…) Typical tasks in the Construction Phase
    • Transition Phase
    • Transition Phase (Cont…)
    • The Open Unified Process
    • Four Core Principles of OpenUP
    • OpenUP Teams
    • OpenUP Basic Elements
    • The Eclipse Process Framework (EPF) Ecosystem
    • The EPF Composer
  • Quality of Service (QoS) Requirements
    • Qualities of Service and Design
    • Performance: Requirements
    • Performance: Response Time Pattern
    • Performance: Transaction Time Patterns
    • Performance: Throughput Pattern
    • Scalability
    • Scalability: Capacity Patterns
    • Reliability & Availability
    • Mean Time Between Failures (MTBF)
    • Availability: Pattern
    • Extensibility
    • Maintainability
    • Manageability
    • Security
    • Cultural Adaptability
    • Portability
    • Testability
    • Usability
    • Upgradeability
    • Recoverability
    • Recovery Time Objective (RTO)
    • Recovery Point Objective (RPO)
    • Prioritizing Quality of Service Requirements
    • Inspecting QoS Requirements for Trade-off Opportunities
    • Quality of Service Testing
  • Supporting QoS Requirements
    • Tactics
    • Availability Tactics
    • Supporting System's High Availability
    • The CAP Theorem
    • Mechanisms to Guarantee a Single CAP Property
    • Modifiability Tactics
    • Horizontal and Vertical Scalability
    • Leveraging Cloud Scaling Services
    • Performance Tactics
    • Achieving the Performance You Need
    • Security Tactics
    • Single Sign-On (SSO) with Federated Identity Management
    • OpenID
    • OpenID Communication Diagram
    • OAuth 2.0
    • OAuth 2.0 Communication Diagram
    • OpenID Connect
    • OpenID Connect Communication Diagram
    • Operational Security in the Cloud
    • DevOps Security Concerns
    • Testability Tactics
    • Achieving Testability with Test-Driven Development and Continuous Integration
    • Typical Setup for OSS-based Continuous Integration
    • Responsive Web Design (RWD) Support for Usability
  • Requirements Workflow
    • Requirements Workflow
    • What Is A Requirement?
    • Requirements Gathering
    • What Is Requirements Management?
    • Requirements Management
    • Timing of Requirements Workflow
    • The Cost Of Requirement Errors
    • The Game Plan Towards Building Quality Software
    • Problem Analysis and Understanding User Needs
    • Problem Analysis Steps
    • Business Models
    • Gather Requirements
    • Interviewing
    • Requirements Workshop
    • Brainstorming
    • Storyboarding
    • Use Cases
    • Prototyping
    • Recall: Inception Phase
    • Example of Use Cases
    • Recall: Elaboration Phase
    • Example of a Use Case Diagram
    • Delivery
  • Analysis Workflow
    • Analysis Workflow
    • Motivation
    • Analysis Deliverables
    • Good Analysis Characteristics
    • Analysis in the Rational Unified Process
    • Analysis Workflow Steps
    • Class Analysis
    • What is an Analysis Class?
    • Analysis Class Relationships
    • Use Case Analysis
    • Interaction Diagrams
    • Example Analysis Sequence Diagram
    • Example Analysis Collaboration Diagram
    • Architectural Analysis
    • Packages
    • Package Practicality
    • Example Package Diagram
    • Post Analysis
  • Design Workflow
    • Analysis and Design
    • Design Time
    • Design in RUP
    • Design vs. Analysis Model
    • One Model Or Two?
    • Design Workflow
    • Design Classes
    • Design Class Refinement
    • Design Class Refinement
    • Class Removal
    • Refining Relationships
    • Example Design Class Diagram
    • Use Case Design
    • Example Design Sequence Diagram
    • Construction
  • Software Architectural Styles
    • Client-Server Computing
    • Client-Server Pros/Cons
    • Case Study
    • Client-Server Example
    • Tiered Architectures
    • Single-tier Architecture
    • Single-tier Pros/Cons
    • Single-tier Example
    • Two-tier Architecture
    • Two-tier Pros/Cons
    • Two-tier Example
    • Three-tier Architecture
    • Three-tier Pros/Cons
    • Three-tier Example
    • N-Tier Architecture
    • N-Tier Pros/Cons
    • N-Tier Example
  • Designing Modern Applications
    • Web 2.0
    • Rich Internet Client Applications
    • Single Page Applications (SPA) with AngularJS
    • Two-way Data Binding (the AngularJS Way)
    • Other Client Side MV(C) Frameworks
    • \"Rich Client\" - \"Thin Server\" Architecture
    • Mobile Platforms
    • Types of Mobile Applications
    • Native Mobile Applications
    • Mobile Web Applications
    • Hybrid Mobile Applications
    • Hybrid App Tools and Frameworks
    • RIA as a Driving Force to Turn the \"Thin Server\" into Microservice(s)
    • So, How Can Microservices Help Me?
    • The Data Exchange Interoperability Consideration
    • Microservices in Their Purest Form: AWS Lambdas
    • The Microservices Architecture Design Principles
    • Decentralized Processing
    • Crossing Process Boundary is Expensive!
    • Managing Microservices
    • Traditional Enterprise Application Architecture (Simplified)
    • Microservices Architecture Example (Simplified)
    • Design for Failure
    • Fault Injection During System Testing