软件架构实践阅读笔记03
软件架构实践在1-6章主要讲述创建架构的基础,介绍了一组广泛的基本概念和原理,主要是架构的商业方面,架构视图和架构,质量属性,和质量属性的结构战术和模式。后面开始讲述具体的架构设计,这也是比较重要的环节,因此我反复研读。
以前,我们提到一个概念叫做生命周期,好像是从出入编程的时候就已经知道了这个词,说的是时限性,而架构也是如此。目前有几个生命期模型,架构放在一个合适的模型是演变交付的生命期模型。该模型允许在迭代中添加功能,并在开发足够的特性后,交付此功能。 而说设计架构,究竟什么时候开始设计架构呢?功能、质量、商业需求塑造了构架。也就是说,设计架构的前提必须需要知道系统需求,识别最高的业务目标以及架构驱动原因。
那么如何设计架构以用于满足质量需求和功能需求呢?这里介绍了一种方法——属性驱动的设计(ADD),简单概括下ADD,就是分解、分配、实例化。分解过程建立软件必须满足的质量属性,在每个阶段选择战术和架构模式来满足属性场景,然后对功能尽心分配,最后实例化。
在设计的过程中,一定要形成团队结构,团队结构一开始就可以说是对应了相应的分解和分配,这个还是相呼应的。
当设计了架构之后,就可以发开骨架系统了,所谓骨架系统就是在上面进行迭代开发的框架。
第八章主要讲述的是商业周期中将架构与所期望的质量属性想联系的部分。此处举了一个简单的例子——飞行模拟系统。此系统的客户是美国空军,最终用户是机上飞行员和其他人员。根据前面的了解,这个系统不仅受客户和用户的影响,还受开发组织、技术环境、设计师经验和质量属性的影响。同时,系统也反作用于这些影响因素。第一步,认清需求,此系统一个作用是训练飞行员和机组成员。另外,此系统还需要模拟相应的环境和教练的模拟。以这三个为出发点开始设计,然后进行不断的调试、测试和修改。同时,在实现功能的前提下,实现质量属性。
对于系统共和开发系统的项目,架构起到的是蓝图的作用。定义了必须由设计和实现小组的完成的工作任务。而架构编档时创建架构最有价值的一步。是的,又要写文档了,这个绝对是给我们工科生的一万点暴击。及时架构非常完美,没有主要涉众理解它,那也是纸上谈兵。架构必须要用足够的细节来描述它,并且以一种其他人可以找到信息的方式进行组织。在这里,我们又使用到了以前学的一个内容,视图,使用相关视图可以直接进行说明。在视图编档的过程中,也有相应的其他原则。最后,我们所学的建模语言再一次地派上用场。如此,更多的人才能了解这个伟大或简单的架构。