- 软件体系结构的基本概念
- 软件质量属性相关
- 软件架构模式
- 软件架构设计过程
- 设计模式
- 软件架构文档化
- 软件架构评估
- 软件产品线
- 微服务架构
- What is software architecture? (Structure, Elements, Relationships, Design )
- What does a software architect do?
- Where do architectures come from? (NFRs, ASRs, Quality Requirements; Stakeholders, Organisations, Technical Environments… )
- Architecture Views (Logical view, Process view, Physical view, Development view + Use case scenarios…)
- Architectural activities and process
- Software architecture knowledge areas
- Software Requirements (Functional requirements, Quality requirements (NFRs), Constraints )
- Modeling quality attribute scenarios: (Source, Stimulus, Artefact, Environment, Response, Measure)
- Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability, X-ability
- Tactics for quality attributes
- Architecturally Significant Requirements (How to gather and identify ASRs: Requirements, Interviews, Business goals, Utility tree)
- Architecture Patterns (Context, Problem, Solution: elements + relations + constraints )
- Module Patterns (Layered pattern )
- Component-Connector Patterns (Broker pattern, Model-view-controller pattern, Pipe-and-filter pattern, Client-server pattern, Peer-to-peer pattern, Service-oriented pattern, Publish-subscribe pattern, Share-data pattern)
- Allocation Patterns (Map-reduce pattern, Multi-tier pattern )
- Patterns vs. Tactics
- General Design Strategy (Abstraction, Decomposition, Divide & conquer, Generation and test, Iteration, Reuse )
- Attribute-Driven Design (ADD)
- Choose a part to design Marshal all ASRs for that part Create and test a design for that part Inputs to and outputs of ADD 8-step process: 1. confirm requirements, 2. choose an element to decompose, 3. identify ASRs, 4. choose a design satisfying ASRs, 5. instantiate elements & allocate responsibilities, 6. define interface, 7. verify & refine requirements, 8. repeat step 2-7 until all ASRs satisfied
- Views and Beyond : Styles (viewpoints), patterns and views Structural views: module views, component-and-connector views, allocation views Quality views
- Documenting views: 1. build stakeholder/view table, 2. combine views, 3. prioritise & stage
- Beyond views: documentation info & architecture info (mapping between views)
- Documentation package: views + beyond
- Stakeholders involved in ATAM
- Inputs to and outputs of ATAM
- Phase 0: Partnership & preparation
- Phase 1: Evaluation - 1 present ATAM, 2. present business drivers, 3. present architecture, 4. identify architectural approaches, 5. generate utility tree, 6. analyse architectural approaches
- Phase 2: Evaluation - 2 1. present ATAM & results, 7. brainstorm & prioritize, 8. analyse architectural approaches, 9. present results
- Phase 3: Follow-up
-
Software Product Lines (Engineering).
Product = core assets + custom assets Reusability and Modifiability
-
Product Line Architecture
Reuse: find, understand, and use (invoke) Variation: forms of variation * software entity varied * binding time Architecture: variation points
-
SPL Practice Areas and Patterns
29 practice areas and 22 patterns
简答题、论述题、设计分析题
英⽂题⽬、中⽂或英⽂答题
个别题⽬可能需画图
基础内容70%
⾼阶内容30%
个人认为设计分析题就是其中的高阶内容。
画图可能还要再准备一下。
- Where do software architecture come from? List five possible sources of software architecture.
- What distinguishes an architecture for a software product line from an architecture for a simple product?
- How to model quality attribute scenarios? Graphically model two quality attributes in "stimulus-response" format: availability and performance.
- Describe relationships between architecture patterns and tactics. List four tactics names and describe their usage.
- Briefly describe the general activities involved in a software architecture process.
- Mapping, and list 4 views for each style. (sa07, p.9)
- Explain the context, benefits and limitations of Broker Architecture Pattern.
- Why should a software architecture be documented using different views? Give the name and purposes of 4 example views.
- Briefly describe the fundamental principles of SOA and discuss the impact of SOA on quality attributes like interoperability, scalability and security.
- Describe outputs generated from each phase of ATAM process.
- Why SPL and MDA have high reusability? Compare and discuss their commonality and differences.
- Briefly describe the general activities in a software architecture process, and the major inputs and outputs at each activity.
- What distinguishes an architecture for a software product line from an architecture for a single product?
- What are generic design strategies applied in designing software? Give a concise working example with software architecture for each strategy.
- How to model quality attribute scenarios? Graphically model two quality attributes in “stimulus-response” format: availability and modifiability.
- Describe outputs generated from each phase of ATAM process.
- Map, and list four views of each category of style.
- What are ASR? List four sources and methods for extracting and identifying ASRs.
- Please name at least three Object-Oriented principles, and explain how they are applied in Strategy pattern?
- What should be included in a typical software architecture documentation package? Briefly describe each component and its purpose.
- Describe 4+1 view
- 软件设计的的三个变化维度,每个维度的变化点。differing binding time如何影响可修改性和可测试性。
Variation: forms of variation * software entity varied * binding time
- 软件架构的关注点有哪些?利益相关方有哪些?
- Software requirements, quality attributes, ASRs 的区别和联系
- What is the nature of component-connector style? 以 MVC pattern 举例
- 如何对质量属性场景建模?画出 availability 和 modifiability 的刺激-响应图
- risks, sensitivity points, trade-off points 是什么?各举一个例子
- 连线,并对每种 style 列出四种视图
- Layered pattern 和 Multi-tier pattern 的区别
- 描述 ADD 过程
- 为什么软件架构需要用不同的视图描述?举出四种视图的例子(列出名称和目的)
- 软件产品线架构如何实现可变性?描述可变性机制的工作方式
- 设计一个飞行模拟软件,要求能模拟多种飞机的特性。为了在将来支持更多飞机种类,要求使用策略模式。画出架构图和类图
- 太复杂,忘了
这 7 个估计考的概率很大, 看明天是不是打脸吧…..
- ATAM (看规律ATAM 和 ADD 轮流考)
- 连线,并对每种 style 列出四种视图(每年都考,这个必然了)
- 各种不同视图 (列举)(4+1 或者后面的)
- 如何对质量属性场景建模?画出 availability 和 *** 的刺激-响应图 (可用性是一定要考的,其他的不好说。 概率: 性能 > 可修改性 > 其他)
- 软件产品线…..(肯定会考,但是没法猜考什么)
- 几种设计模式(很可能考设计题,要画图)
- 微服务架构
- 如何对质量属性场景建模?画出 Interoperability 和 modifiability 的刺激-响应图
- What are ASR? List four sources and methods for extracting and identifying ASRs.
- 4+1 视图介绍(还要画图,我的图画的的有点问题,去wiki百科上可以看)
- What are generic design strategies applied in designing software? Give a concise working example with software architecture for each strategy. (和17年一样的)
- Map, and list four views of each category of style.(每年必考题)
- What should be included in a typical software architecture documentation package? Briefly describe each component and its purpose. (和17年基本一样)
- 描述 在 ATAM 的每一个过程中 有哪些 stake holder 和他们的职责
- 软件产品线架构如何实现可变性?描述可变性机制的工作方式,和变化点。 (和去年一样)
- Explain the context, benefits and limitations of Broker Architecture Pattern.
- 微服务 和 SOA 的区别,相同点
- 一个买票系统的设计题,不同的角色有不同的打折方案,用策略模式设计, 最后画图,还要说明策略模式的使用场景。
- 设计题,和 15 年的设计题一模一样