Curso Introduction to Solution and Software Architecture
24 horasVisão Geral
Este Curso Introduction to Solution and Software Architecture apresenta aos alunos os fundamentos da arquitetura de soluções e software. Dentro da visão estratégica mais ampla que a Arquitetura Empresarial (EA) fornece, há uma necessidade de fornecer estrutura e orientação em torno dos recursos de arquitetura de solução mais táticos que são desenvolvidos para garantir que sejam consistentes com a estratégia mais ampla de EA.
Objetivo
Após realizar este Curso Introduction to Solution and Software Architecture você será capaz de:
- Capacidade de discutir o que é arquitetura
- Descrever a arquitetura de soluções empresariais e seus elementos principais
- Descrever a arquitetura de software
- Discuta os atributos de qualidade da arquitetura de software
- Explique como o desenvolvimento baseado em arquitetura é realizado
- Descrever como a documentação da arquitetura é realizada
Publico Alvo
- Compreensão básica do desenvolvimento de software.
Pre-Requisitos
- Arquitetos
- Desenvolvedores
- Designers
- Analistas
Materiais
Inglês + Exercícios + Lab PraticoConteúdo Programatico
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