基于架构的软件设计(Architecture-Based Software Design,ABSD),这个开发方法是架构驱动。
即强调由业务、质量和功能需求的组合驱动架构设计。就是会考虑到业务的情况,会把质量属性的东西,功能层次的东西结合起来,作为设计这个系统时的目标去推动整个系统的开发过程。
使用基于架构的软件设计(ABSD)方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求的获取和分析还没有完成(甚至远远没有完成),就开始了软件设计。

ABSD的三个基础
基于架构的软件设计(ABSD)有三个基础。
功能的分析在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术。就是将功能拆分。选择架构风格来实现质量和业务需求软件模板的使用软件模板利用了一些软件系统的结构。也就是固化的去使用设计模式的层次的东西ABSD的递归性
基于架构的软设计(ABSD)方法是递归的,且迭代的每一个步骤都是清晰的定义。因此不管设计是否完成,架构总是清晰的,这个有助于降低架构设计的随意性。
ABSD的视角与视图
并且ABSD从不同的视角来检查,会有不同的视图。
视角就是你看问题的角度,比如看一栋房子从这个方向(视角)看过去,是这样一个样子(视图)。从另外一个视角看过去,是另外一个样子(视图)。
要知道,视图与视角的关系并且知道这个东西是在ABSD方法论中提出来的。
如何捕获功能需求和质量需求
用例是用来捕获功能需求(就是看需要完成哪些功能,比如识别参与者,和用户访谈,去看要完成哪些功能)
特定场景来捕获质量需求(质量需求主要是非功能性的东西,比如性能,可靠性,可维护性。特定场景比如就是我要求点击报表下载,一秒钟需求返回结果)
1.2、开发过程(非常重要)基于架构的软件开发方法的开发过程如下:
架构需求与设计
架构需求其实对应的就是需求分析
架构设计跟我们传统的架构设计的思想是一样的
下图表示架构需求和设计的了、过程
架构文档化
架构文档化过程的主要输出
架构规格说明测试架构需求的质量设计说明书文档的完整性和质量是软件架构成功的关键因素
文档的三大注意事项
文档要从使用者的角度进行编写必须分发给所有与系统有关的开发人员且必须保证开发者手上的文档是最新的架构复审(后面会详解)
架构复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误。
对应的其实就是架构评估。这里面的知识点很多,会留在下一次再学习。
架构实现与演化
架构实现其实就是编码,测试,做这样一些这样的事情
架构演化意思就是整个系统开发完了之后,还是不能说一次性就完成了。还是可能发现一些问题,就会有持续性改动,从而又回到了上面的流程,按照流程再走一遍,对系统进行优化。
架构实现与演化的过程如下图:
优势
ABSD能够很好的支持软件的重用。因为每一个环节的模式化都做得很强,架构设计出来,场景化之后就能够很好的重用。
2、小结这一块的知识考得很多,并且很细,所有这上面几个图的过程一定要根据整体的流程去理解它的意思。学无止境,加油!