软件系统设计期末复习清单
pmx部分
设计模式
设计模式组合
lss部分
微服务架构20分
属性驱动设计成熟领域
文档化 关键view
微服务架构设计
关键模式 三种模式的价值 核心理念 本质 解决问题
观测流程 核心模式
部署大概流程
张贺部分
Outline
- Software Architecture
- Quality Attributes & Tactics
- Architecture Patterns
- Identifying ASRs
- Designing Software Architecture
- Microservices Architecture
Software Architecture in General
- What is software architecture?
- Structure, Elements, Relationships, Design
- What does a software architect do?
- Liaison, Software engineering, Tech. knowledge, Risk mgmt
- Where do architectures come from?
- NFRs, ASRs, Quality Requirements; Stakeholders, Organisations, Technical Environments…
- Architecture [4+1] Views
- Logical view, Process view, Physical view, Development view + Use case scenarios…
- Architectural activities and process
- Software architecture knowledge areas
Quality Attributes & Tactics
- Software Requirements
- Functional requirements, Quality requirements (~NFRs), Constraints
- Quality Attributes & Tactics
- Internal vs. External Attributes
- Modeling quality attribute scenarios: Source, Stimulus, Artefact, Environment, Response, Measure
- Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability, X-ability…
- Strategies & Tactics for quality attributes
- Strategies vs. Tactics vs. Patterns vs. Styles
Identifying ASRs
- Architecturally Significant Requirements
- Functional requirements, Quality requirements, Constraints
- How to gather and identify ASRs?
- Requirement Docs, QA Workshop (interviews), Business goals
- Utility tree (Ranked scenarios: Importance vs. Difficulty)
Design Decisions
- General Design Strategy
- Abstraction, Decomposition, Divide & conquer, Generation & test, Iteration, Reuse
- Categories of design decisions
- Allocation of responsibilities
- Coordination model
- Data model
- Management of resources
- Mapping among architecture elements
- Binding time decisions
- Choice of technology
lj模式
架构模式演化