基于架构的设计(ABSD)Architecture-Based Software Design是一种软件设计方法,强调软件架构设计应该由商业、质量和功能需求共同驱动。这种方法允许设计活动在明确项目总体功能框架的前提下开始,并且需求抽取和分析活动应与设计活动并行进行,而非在设计活动开始后终止。
ABSD有三个基础:
- 功能的分解:将系统的功能需求分解为更小的、可管理的部分。
- 选择体系结构风格以实现质量和商业需求:根据系统需求选择合适的体系结构风格,以确保系统能够满足商业目标和质量要求。
- 软件模板的复用:利用已有的软件模板来减少重复的设计工作,提高效率。
ABSD的特点包括:
- 自顶向下、递归细化、迭代清晰的设计过程,直到能产生软件构件和类。
- 使用不同的视角和视图来描述软件架构,以确保全面性和准确性。
- 采用用例来描述功能需求,使用质量场景来表述质量需求,这有助于更好地理解和实现需求。
ABSD的开发过程包括以下几个阶段:
- 架构需求:包括需求获取(获取系统的质量目标、商业目标和开发人员的目标)、标识构件(生成类图、对类进行分组、将类打包成构件)和架构需求评审(需求获取-标识构件-需求评审迭代)。
- 架构设计:包括提出软件架构模型、将已标识的构件映射到架构中、分析构件之间的相互作用、生成软件架构和设计评审。
- 架构文档化:主要输出内容有体系结构规格说明和质量设计说明书,后者用于测试体系结构需求。软件架构文档应该从使用者的角度进行书写,针对不同背景的人员采用不同的书写方式,并将文档分发给相关人员。架构文档要保持较新,但不要随时保证文档最新,要保持文档的稳定性。
- 复审:目的是表示潜在风险,提早发现缺陷和错误。
- 架构实现:包括分析与设计、构件实现、构件组装和系统测试。
- 架构演化:涉及需求变化的归类、制定演化方案、修改或调整构件及其相互作用、构件的重新组装与测试以及技术评审,以应对系统需求的变化。
这种设计方法有助于开发出高质量的软件系统,并且能够灵