首页 > 代码库 > 05《软件构架实践第二版》阅读笔记之五

05《软件构架实践第二版》阅读笔记之五

      在创建构架方面,已经学习了很多,之前的那些只是都是为了创建构架打下基础,基本概念和原理,构架视图和结构,质量属性,实现质量属性的构架战术和模式。打下这些基础之后,开始了设计构架的学习。

      首先了解了一下生命期中的构架也就是把构架作为软件开发过程基础的任何组织都需要理解构架在其生命期中的位置。把构架放在一个适当位置的模型是演变交付生命期模型。在生命期模型中,构架设计就是从初步的需求分析开始逐步进行迭代。在设计构架之前,我们所需要做的工作,刚开始进行时了解系统需求但是并不需要手机太多,识别优先级最高的业务目标并用质量属性场景或用例来表述这些业务目标,选择对构架影响最大的需求,也就是构架驱动因素。在做了这些前期工作之后,才可以开始构架设计。

      在本书中,描述一个用于设计构架以满足质量需求和功能需求的方法,这种方法被称为属性驱动的设计(ADD)。属性驱动的设计把一组质量属性场景作为输入,并且使用对质量属性实现和构架之间的关系的了解,对构架进行设计。该方法将分解过程建立在软件必须满足的质量属性之上。并且它是一个递归地分解过程,在每个阶段都选择战术和构架模式来满足一组质量属性场景,然后对功能进行分配,以实例化由该模式所提供的模块类型。因为属性驱动的设计是设计过程中构架的第一个连接点,所以一定是粗粒度的,视图的所有细节并不都是通过ADD得到的。

      进行属性驱动的设计有几个关键步骤:1.选择要分解的模块;2.根据这些步骤对模块进行求精;3.对需要进一步分解的每个模块重复上述步骤:(1)选择要分解的模块(2)选择构架驱动因素(3)选择构架模式(4)实例化模块并使用多个视图分配功能(5)定义子模块的接口---模块的接口展示了所提供的服务和所要求的属性(6)验证并求精用例和质量属性场景。所有步骤结束后,模块被分解了为子模块,并且每个子模块都有一个责任的集合,并且拥有了一组用例、接口、质量属性场景以及限制集合。

      对构架进行了充分设计,并且团队为开始构建构架做好准备后,就可以构造骨架系统。在这个过程中,最好首先对骨架子系统中的接口进行协商,然后再运用骨架系统来提高开发效率。很重要的一点还有构架设计必须按需求分析进行,但是并不需要在需求分析完成后再开始构架设计。

05《软件构架实践第二版》阅读笔记之五