软件架构复习资料 五
Chapter 1. What is Software Architecture?
理解:
软件体系结构(软件架构)的定义
系统的软件体系结构是建立一个对系统来说所需要的结构,包括软件元素,它 们之间的关系,以及两者的性质。
架构模式的概念。
架构模式,也叫架构风格,一个架构模式描述软件系统里的基本的结构组织或 纲要。架构模式提供一些呈先定义好的子系统,指定它们的责任,并给出把它 们组织在一起的法则和指南。
掌握:
软件系统有哪几类结构? 模块、组件和连接器、配置。
模块分配具体的职责,是工作的基础;
我们调用运行时结构组件和连接器结构,在我们的使用中,组件始终是运行时 实体;
分配结构描述从软件结构映射到系统的环境,组织、发展、安装、执行;
在每类结构里,元素及其之间的关系是什么?
元素是一类模块(类、层或功能的划分等),模块与其他模块相关联通过概括化 或专业化的关系;
元素运行组件如服务、同行、客户、服务器、过滤器等,连接器是组件间的通 信工具;
每类结构各有哪些常见的结构?其特点是什么?
模块:
分解结构:分解结构决定了系统的可修改性,以确保可能的变化是局部的;
使用结构:使用关系是一种专门的依赖关系,用来拓展或缩小系统,创建子系 统,进行增量开发;
层结构:通过接口提供一个有凝聚力的服务集合;
类结构:允许重载和增量增加的功能;
数据模型:描述了数据实体及其关系的静态信息结构;
组件和连接器:
服务结构:单位服务与其他服务的协调机制;
并发结构:确定机会的并行性和资源争夺可能发生的位置;
配置:
部署结构:显示软件如何被分配给硬件处理和通信元素,特别感兴趣分布式和 并行系统;
实施结构:显示了软件元素如何在系统的开发、集成和配置控制环境中映射到 文件结构。分配责任,实施和整合模块给将要执行它的团队;
了解:结构与视图是什么关系?好的结构的一些经验法则。
Chapter 2. Why is Software Architecture Important?
理解:13 个理由。
1、影响质量属性。
2、当系统的发展有助于改变和管理变化。
3、一个系统的质量的早期预测。
4、加强利益相关者之间的沟通。
5、捕捉最早的,因此最根本的,最难改变的设计决策。
6、定义了一组在随后的执行上的约束。
7、决定一个组织的结构,反之亦然。
8、为进化的原型设计提供依据。
9、让建筑师和项目经理了解成本和进度。
10、作为一种可重用的可重用模型,该模型是产品线的核心。
11、架构为基础的发展重点关注的组件组件,而不是简单地在创作。 12、减少设计和系统复杂度
。
13、为培训新的团队成员奠定基础
Chapter 3. The Many Contexts of Software Architecture
理解:技术环境、项目生命周期、商业环境、架构师职业环境中的软件体系结 构。架构与环境的相互影响。
最重要的技术背景是一系列的质量属性,架构可以帮助实现,架构的当前技术 环境也是一个重要因素;
软件开发过程是软件系统开发的标准,强加给软件工程师团队,告诉他们下一 步要做什么,四个主要的软件开发过程:瀑布、迭代、敏捷、模型驱动开发;
结构与系统构造不轻浮,服务于某些商业用途,目的可能会随时间而改变;
系统被创建以满足一个或多个组织的业务目标,架构师需要了解客户是谁,他 们的目标是什么,这些目标将对许多架构产生影响;
每一个质量属性都源于一些附加值,有些业务目标在需求的形式中不会出现, 还有一些商业目标对架构没有影响;
了解:涉众。
商业、技术、项目影响利益相关者,利益相关者和专业背景影响架构师,从而 影响架构和系统;
Chapter 4. Understanding Quality Attributes
了解:系统的功能需求。功能需求与系统架构的关系。功能需求与质量需求的 关系。系统约束。
功能是系统做工作的能力,这是它的目的(什么与怎样);
功能不确定体系结构,给定一组所需的功能,可以不受约束的创建满足该功能 的架构;
质量需求保证功能需求;
理解:系统的质量需求。战术的概念。
质量需求是指对产品需要的表述或将需要转化为一组针对实体特性的定量或定 性的规定要求,以使其实现并进行考核。
掌握:质量属性场景的概念和举例。质量设计的 7 种决策。
质量属性的场景:
刺激:是一个条件,当它到达一个系统时需要一个响应;
刺激源:是一些实体(人、计算机系统、其他机构)产生的刺激;
响应:刺激到来之后的活动;
响应措施:当响应发生时,它应该是可以以某种方式测量的,因此需求是可测 试的;
环境:刺激发生在一定的条件下;
人造物品:一些人造物品也是刺激;
刺激源——刺激——人造物品——响应——相应措施;
责任分配、协调模型、数据模型、资源管理、架构元素映射、绑定时间决定、 技术选择;
Chapter 5. Availability
理解:可用性概念。
可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。 可用性建立在可靠性上增加恢复的概念(修复)。
从根本上讲,可用性是通过减少故障来减少服务中断时间的。
了解:可用性公式。可用性一般场景。
(总时间-服务中断的时间)/总时间;
掌握:
可用性战术
故障检测:信号/响应、监测器、心
跳、时间戳(用于检测不正确的序列)、正常检查(检
查序列的有效性和合理性)、状态检测、投票(赋值结果是否相同)、异常检测、 自测试;
从故障中恢复:主动冗余(保护所有结点)、被动冗余(保护活动成员)、备用、