软件构架实践阅读笔记2
A-7E架构包括三个结构:模块分解结构、使用结构、进程结构。
模块分解结构:对于A-7E这样的系统发生改动可能是由3个原因造成的:软件必须与之交互的硬件发生了变化;所要求的系统外部可见行为发生了变化;完全由该项目的软件设计人员做出的某个决定发生了变化。所以A-7E又可以分为硬件隐藏模块、行为隐藏模块、软件决策模块。
使用结构:使用结构对于软件交互的方式进行了描述,首先使用结构的思想是建立在使用关系基础上的(使用关系:如果过程A的运行必须以过程B的正确运行为前提,那么过程A使用过程B);使用结构的单位是访问过程,可以用二进制矩阵来进行表示。
进程结构:一个进程就是若干编程步骤的集合,每当有触发事件发生或达到时间限制就要重复进行这些编程步骤,一个进程有自己的控制线程,一个进程可以因等待某个事件的发生而将自己挂起。进程结构就是由一组进程构成。它收集两类信息:第一类信息说明在每个进程用到哪些进程,第二类信息说明哪些进程不能同时执行。
构架的功能性和质量属性是正交关系,所以必须从设计、实现到部署的整个过程中考虑质量属性的实现,但是没有任何一个质量属性是完全依赖于设计的,它也不完全依赖于实现或部署,所以最好的办法就是使总体蓝图(构架)以及细节(实现)正确。在复杂的系统中,决不可能以孤立的方式实现质量属性。各个质量属性之间都相互关联,一个质量属性的实现都会给其他质量属性带来积极或消极的影响。
质量属性的场景是一种面向特定的质量属性的需求,包括6个部分:刺激源、刺激、环境、制品、响应、响应度量。质量属性场景又分为可用性场景和可修改性场景:可用性场景并不是都具有这6个部分,每个场景必须具有的就是应用场景的结果以及要执行的测试类型,这些测试用于确定是否实现了该场景;可修改性场景中可以把具体场景的集合用作系统的质量属性需求。
构架可用性与系统故障及其相关后果相关,可用性所关注的方面包括:如何检测系统故障、系统故障发生的频度、出现故障时会发生什么情况、允许系统有多长时间非正常运行、什么时候可以安全地出现故障、如何阻止故障的发生以及发生故障时要进行哪种通知。故障和错误也要进行区分,如果不想进行纠正,错误有可能会变成故障。构架的性能和时间有关。构架安全性是衡量系统在向合法用户提供服务的同时,阻止非授权使用的能力。构架可测试性是指通过测试揭示软件缺陷的容易程度。构架易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户的支持种类。
所以对于一个构架来说衡量它的好与坏有很多标准。它的质量属性尤为重要,因为构架的功能性和质量属性是正交关系。