4) 基于架构的软件开发

基于架构的软件开发ABSD #

  基于架构的软件开发ABSD(Architecture-Based Software Development)。它能很好地支持重用(比如说有需求库,有构件库)。

  使用ABSD方法,设计活动可以从项目总体功能框架明确就开始;ABSD方法是一个自顶向下,递归细化的过程,直到能产生软件构件、模块或类。

  架构设计是一个迭代过程,在建立软件架构的初期,选择一个合适的架构风格是首要的,在此基础上,开发人员通过架构模型,可以获得关于软件架构属性的理解,为将来的架构实现与演化过程建立了目标。

  1、ABSD方法是架构驱动,即强调由业务、功能和质量需求的组合驱动架构设计。

  2、ABSD方法有三个基础。第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术,第二个基础是通过选择架构风格来实现质量和业务需求,第三个基础是软件模板的使用。

  3、视角与视图来描述架构、用例用来描述功能需求、特定场景(质量场景)用来描述非功能需求(质量需求)。

  ANSI/IEEE1471-2000是对软件密集型系统的架构进行描述的标准。在该标准中,视图这一概念主要用于描述软件架构模型。在此基础上,通常采用视角描述某个利益相关人(Stakeholder)所关注架构模型的某一方面。架构则是对所有利益相关人关注点的响应和回答

  在考虑架构时,可以从不同的视角来检查,这促使软件设计师考虑架构的不同属性。例如,展示功能组织的静态视角能判断系统质量特性,展示并发行为的动态视角能判断系统行为特性。

  • 其开发过程如下

p9gxrM6.png

1 架构需求 ✅✅✅ #


p9RTuX4.png

2 架构设计 ✅✅✅✅ #


  架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。

p9RTl7R.png

3 架构文档化 ✅✅✅ #


  架构文档是对软件架构的一种描述,帮助程序员使用特定的程序设计语言实现软件架构。软件架构文档的写作应该遵循一定的原则,这些原则包括:文档要从使用者的角度进行编写;必须分发给所有与系统有关的开发人员;应该保持架构文档的即时更新,但更新不要过于频繁,架构文档中描述应该尽量避免不必要的重复,每次架构文档的修改都应该有修改记录。

p9RTwBd.md.png

4 架构复审 ✅✅✅✅✅ #


  架构复审是基于架构开发中一个重要的环节。架构设计文档化和复审是一个迭代的过程;架构复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误;在一个主版本的软件架构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审;架构复审过程中,通常会对一个可运行的最小化系统进行架构评估和测试(对项目的骨架进行测试)。评估很重要,会在“软件架构评估”中单独讲。

5 架构实现 ✅✅✅✅ #


p9RT8tx.md.png

6 架构演化 ✅✅✅✅ #


p9RTGh6.png

例题 p9RTDAI.md.png

p9RT2jg.md.png