1.架构复用
软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理、复用、集成新的系统。
软件架构复用的类型包括机会复用和系统复用。机会复用是指开发过程中,只要发现有可复用的资产,就对其进行复用。系统复用是指在开发之前,就要进行规划,以决定哪些需要复用。
可复用的资产包括:需求、架构设计、元素、建模与分析、测试、项目规划、过程方法和工具、人员、样本系统、缺陷消除
复用的基本过程主要包括三个阶段:
1)首先构造/获取可复用的软件资产
2)其次管理这些资产(构件库)
3)最后针对特定的需求,从这些资产中选择可复用的部分,以开发满足需求的应用系统
2.特定领域软件架构DSSA
DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。
DSSA就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考架构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。
垂直域:在一个特定领域中的通用的软件架构,是一个完整的架构
水平域:在多个不同的特定领域之间的相同的部分的小工具
2.1.基本活动
1)领域分析,主要目标是获得领域模型(领域需求)。识别信息源,在此基础上,就可以分析领域中系统的需求,确定哪些需求是领域中的系统广泛共享的,从而建立领域模型。
2)领域设计,目标是获得DSSA。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。建立了领域模型之后,就可以派生出满足这些被建模的领域需求DSSA。
3)领域实现,目标是依据领域模型和DSSA开发和组织可重用信息。可重用信息可能从现有系统中提取得到,也可能通过新的开发得到。
2.2.参与角色
1)领域专家:包括该领域中系统的有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。
2)领域分析人员
3)领域设计人员
4)领域实现人员
2.3.建立DSSA的过程
1)定义领域范围:领域中的应用要满足用户一系列的需求
2)定义领域特定的元素:建立领域字典,归纳领域中的术语,识别出领域中相同和不相同的元素
3)定义领域特定的设计和实现需求的约束:识别领域中的所有约束,这些约束对领域的设计和实现会造成什么后果
4)定义领域模型和架构:产生一般的架构,并描述其构建说明
5)产生、搜集可复用的产品单元:为DSSA增加复用构建,使可用于新的系统。
以上过程是并发的、递归的、反复的、螺旋型的。
2.4.三层次模型
1)领域开发环境:领域架构师决定核心架构,产出参考结构、参考需求、架构、领域模型、开发工具
2)领域特定的应用开发环境:应用工程师根据具体环境来将核心架构实例化
3)应用执行环境:操作员实现实例化后的架构
3.基于架构的软件开发ABSD
ABSD方法是架构驱动,强调由业务、质量和功能需求的组合驱动架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。
使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求获取和分析还没有完成,就开始了软件设计。
ABSD方法有三个基础。第一个基础是功能的分解,使用已有的基于模块的内聚和耦合技术;第二个基础是通过选择架构风格来实现质量和业务需求;第三个基础是软件模板的使用,软件模板利用了一些软件系统的结构。
ABSD方法是递归的,且迭代的每一个步骤都是清晰定义的。因此,不管设计是否完成,架构总是清晰的,有助于降低架构设计的随意性。
3.1.过程
1)体系结构需求(架构需求):重在标识构件的三步
2)架构设计:将需求阶段的标识构件映射成构件,进行分析
3)架构(体系结构)文档化:主要产出两种文档,即架构规格说明,测试架构需求的质量设计说明书。文档是至关重要的,是所有人员通信的手段,关系开发的成败。
4)架构复审:由外部人员(独立于开发组之外的人,如用户代表和领域专家等)参加复审,复审架构是否满足需求,质量问题,构件划分是否合理等。若复审不通过,则返回架构设计阶段进行重新设计、文档化在复审。
5)架构实现:用实体来显示出架构。实现构件,构件组装成系统
6)构件演化:对架构进行改变,按需求增删构件,是架构可复用。