《软件构架实践》4-6章读后感
今天,我阅读了《软件构架实践》4-6章,也就是全书第二部分的开始。
第二部分的主要着重点是设计师如何创建构架。因为质量属性的实现对系统的成功至关重要,因此我们开始对质量属性以及设计师如何借助他的工具箱来实现质量属性进行讨论。
第4章的重点是理解如何表示希望该构架为上述系统提供的质量属性。首先讲了功能性与构架,功能性和质量属性是正交的。功能选择将会规定安全性、性能、可用性或易用性的级别,对于每个质量属性,都可以独立地选择所期望的级别。然后讲了构架和质量属性,在复杂的系统中,决不可能以孤立的方式实现质量属性。每一个质量属性的实现都会对其他质量属性的实现带来积极或消极的影响。然后讲了系统的质量属性,从设计师的角度看,以前对质量属性的讨论中存在以下3个问题,为系统提供的定义并不是可操作的;讨论的重点通常是一个特定的方面属于哪个质量属性;每个团队都开发了其自己的词汇。最后讲了实践中的质量属性场景,一般场景提供了一个生成一般的、独立于系统的、特定于质量属性的场景的框架。每个场景都潜伏在地与正在考虑的系统相关的,但这并不是必须的。为了使一般场景对某个特定系统有用,必须使它们成为特定于系统的。
读完这一章,我知道了质量属性是软件设计师最常追求的目标。由于这些质量属性的定义是重叠的,因此我们选择用一般场景对齐进行刻画。
第5章的主题是质量属性需求和构架决策之间的关系。首先引入了“战术”的概念,实现质量属性依赖于基本的设计决策。我们将之称为“战术”。“战术”就是影响质量属性响应控制的设计决策。我们把战术的集合称为“构架策略”。然后讲了可用性战术,这些战术将会阻止错误发展成故障,至少能够把错误的影响限制在一定范围内,从而使修复称为可能。然后讲了可修改性的战术。一组可修改性的战术的目标是减少由某个变更直接影响的模块的数量。我们把这组可修改性战术称为“局部化修改”。然后讲了性能战术。性能战术的目标就是对在一定时间限制内到达系统的事件生成一个响应。最后讲了战术与构架模式的关系,任何模式都会实现几个战术,他们通常与不同的质量属性有关;而且该模式的任何实现都对战术做出了选择。
读完这一章,我知道了设计师如何实现特定的质量属性需求。这些需求是系统实现业务目标的手段。
第6章通过讲述ISSS系统,向我们说明了构架解决方案在实现应用软件的高性能要求方面的重要作用。按照规划,该系统的寿命长、成本高、规模大、作用重要且受到各方面的广泛关注,因此,ISSS系统在其极高的使用要求方面承受着巨大的更改压力。人机界面、新的硬件、新的商业组件、操作系统和网络升级、以及容量的提高不仅是可能的,而是可以预料的必然结果。通过使用包括硬件和软件冗余以及分层错误检测在内的标准的容错机制,以及采用消息传递的分布式计算,该构架能够满足及其复杂的,广泛的使用要求。