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. Within the context of each solution stack, there is additionally a need to properly craft software solutions so that they are in compliance with and help to enable the vision of the larger solution architecture. This course provides the critical linkage between Enterprise, Solution, and Software Architectures.
Throughout the three days, the course content is reinforced through hands-on exercises, group discussion, and case study examination. Students will leave with a balanced understanding of the leading Solution and Software Architecture approaches in the marketplace and a solid grasp regarding how to align those within the context of a broader Enterprise Architecture (EA) strategy.
Topics
§ Architecture Primer
§ Understanding Enterprise Solution Architecture
§ Solution Architecture Core Elements
§ Working with Solution Architecture Styles
§ What Is Software Architecture?
§ Quality Attributes
§ Software Architecture Reviews
§ Software Architecture-Based Development
§ Reuse of Architectural Assets
§ Architectural Views
§ Architecture within Industry Verticals
What You Will Learn
After completing this course, the student should be able 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
Audience
This course is designed for Architects, Developers, Designers and Analysts.
Prerequisites
Basic understanding of software development.
Duration
3 days.
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
§ Message Oriented Middleware (MOM)
§ MOM Messaging
§ MOM Qualities
§ Publish/Subscribe Messaging
§ Point-to-Point Messaging (P2P)
§ MOM Related Standards
§ MOM Example
§ Service Oriented Architecture (SOA)
§ Enterprise Model
§ SOA Interaction Model
§ SOA Characteristics
§ Enterprise Service Bus (ESB)
§ Web Services
§ SOA Standards Organizations
§ SOA Example
§ SOA Example: Illustrated
§ Web 2.0
§ The WOA Difference
§ Web 2.0 Technologies
§ REST: Constraints
§ REST: Uniform Interface
§ REST Example
§ Plain-Old-XML (POX) Example
§ JavaScript Object Notation (JSON)
§ Really Simple Syndication (RSS) & Atom
§ Syndication Example
§ Business Process Management
§ Further Qualifying BPM
§ BPM Architecture
§ BPM Architecture Model
§ BPM Standards
§ Master Data Management (MDM)
§ Understanding Master Data
§ Qualities of Master Data
§ MDM Implementation Styles
§ MDM Example
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
§ Monitoring Credit Bureau Example
§ 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
§ Performance: Considerations
§ Scalability
§ Scalability: Capacity Patterns
§ Scalability: Considerations
§ Reliability & Availability
§ Mean Time Between Failures (MTBF)
§ Availability: Pattern
§ Availability: Considerations
§ 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
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