由于一些知识性的特殊需要,要求掌握比较过时的软件架构设计理论,因而作此文案用于记忆和查询。该部分内容与现实中软件开发相去甚远,也可以理解一些东西之间确实存在很大的鸿沟,不多说,开始码字咯。
Bass、Clements和Kazman的定义:系统的一个或多个结构,结构中包含软件的构件,构件的外部可见属性以及它们之间的关系。体系结构并非是一个可以运行的软件,而是一种表达,使软件工程师能够分析设计针对需求的有效性、尽早的考虑多种方案、降低风险。
需求分析阶段:需求是问题空间,软件架构是解空间,在软件需求模型向SA模型转化时主要关注,如何根据需求模型构建SA模型和如何保证模型转化的可追踪性。
设计阶段:SA(software architecture)模型的研究关注,基本概念、描述语言、多视图支持。
实现阶段:研究SA的开发过程支持,如项目组织结构、配置管理;寻求从SA向实现过渡的途径,如将程序设计语言引入到SA阶段、模型映射、构件组装、复用中间件平台等;研究SA的测试技术。
构件组装阶段:支持可复用构建的互联、在组装时消除体系结构的失配问题,例如将中间件作为连接子。
部署阶段:提供高层体系结构视图描述部署阶段的软硬件模型、基于模型分析部署方案的质量属性。
后开发阶段:围绕维护、演化、复用等方面进行,研究方向包括动态软件体系结构、体系结构恢复和重建。
ABSD(Architecture-Based Software Design),基于体系结构的软件设计的基础包括:功能的分解、选择体系结构风格来实现质量和商业需求、软件模板的使用。概念包括:设计元素、视角与视图、用例和质量场景。
需求:需求的获取来自三个方面,包括系统质量目标、商业目标和开发人员商业目标。标识构件过程包括生成类图、对类进行分组、把类打包成构件,之后进行架构需求的评审。
设计:首先选择软件架构风格,之后将以表示的构件映射到软件体系结构并分析其相互作用,最后产生架构文档并评审。
文档化:产出体系结构规格说明和测试体系结构需求的质量设计说明书两个文档。
复审:有外部人员(用户代表和领域专家)参加的评审,目的在于标识潜在的封校和发现设计的缺陷和错误。
实现:按照设计决策,分割规定构件,按照指定方式交互并通过测试。
演化:需求变化归类,指定演化计划,增加、修改、删除构件、更新相互作用、组装和测试。
DSSA(Domain Specific Software Architecture)就是在一个特定领域中为一组应用提供组织结构参考的标准软件体系结构。其特征为:一个严格定义的问题域和问题解域;具有普遍性;对整个领域的构件组织模型有很恰当的抽象;具备该领域固定的、典型的在开发过程中可重用元素。其基本活动包括:领域分析,获得领域模型;领域设计,获得DSSA;领域实现,依据领域模型和DSSA开发和组织可重用信息。
DSSA的建立过程包括5个阶段:
敏感点(sensitivity point),是一个或者多个构件的特性,研究敏感点可使得设计人员或分析员明确实现资料目标时需要注意什么。
权衡点(tradeoff point),影响多个质量属性的特性,是多个质量属性的敏感点,例如修改加密级别将同时影响安全性和性能。
风险承担者(stakeholder),也称为利益相关人,由于体系结构涉及很多人的利益,每个人都会都该结构施加不同的影响,已达到自己的目标。
场景(scenarios),通过设定场景,找出质量目标,并作为判定该体系结构优劣的标准。一般使用刺激(stimulate, environment, response)三方面对场景进行描述。
卡耐基梅隆大学Kazman于1983提出的最早的一种形成文档并得到广泛应用的软件质量属性的分析评价体系。其主要概念包括:特定目标,SAAM的目标时对描述应用程序属性的文档进行假设和原则的验证;评估技术,场景技术;质量属性,把任何形式的质量属性都具体化场景,可修改性是该分析的主要属性;风险承担者;体系结构描述;方法活动,输入问题是问题描述、需求生命、体系结构描述,其包含步骤,场景开发、体系结构描述、单一场景评估、场景交互和总体评估;可重用性;方法验证,医用到空中交通管制系统、嵌入式音频系统等。
基于SAAM,主要针对性能、实用性、安全性和可修改性,在系统开发前,对质量属性进行评价和折中。其主要概念包括:特定目标,多个相互影响的质量属性;质量属性;风险承担者;体系结构描述,受历史遗留系统、互操作性和以前失败的项目约束,基于Kruchten的4+1视图;评估技术,提供三种不同的类型的场景,分别是用例(典型场景)、增长场景(修改场景)、探测场景(受压时的极端场景),并且使用定性的启发式分析方法对一个质量属性构造一个精确分析模型进行分析;方法的活动包括4个主要的活动领域(阶段),在之后详细介绍;领域知识的可重用性,领域知识库通过基于属性的体系结构风格(ABAS, Attribute-Based Architecture Style)维护;方法验证。
4个主要的活动领域
场景和需求收集:收集场景、收集需求/约束/环境
体系结构视图和场景实现:描述体系结构视图、实现场景
属性模型的构造和分析:特定属性分析,选用优秀的单一理论
折中:标志折中、标志的敏感性