基于架构的软件设计ABSD
阅读数:1033 评论数:0
跳转到新版页面分类
架构学
正文
一、概述
Architecture-Based Software Design,强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功的分解为基础,通过选择架构风格实现质量和商业需求,并强调在架构设计过程中使用软件架构模板。该方法特别适用于开发一些不能预先决定所有需求的软件系统,也可为需求不能在短时间内明确的软件项目提供指导。
强调采用视图和视角来描述软件架构,强调采用用例和质量属性来描述需求。
二、ABSD方法有三个基础:
1、功能分解。
在功能分解中使用已有的基于模块的内聚和耦合技术。
2、通过选择体系结构来实现质量和商业需求。
3、软件模板的使用。
三、ABSD开发阶段
采用ABSD方法进行软件开发时,需要经历架构需求、架构设计、架构文档化、架构复审、架构实现和架构深化六个阶段。
明确用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。主要活动包括需求获取、标识构件、架构评审。
(1)需求获取
定义开发人员必须实现的软件功能,从而满足功能需求。与此同时,还要获得软件的质量属性,满足一些非功能性需求。
(2)标识构件
首先获得系统的基本结构,然后对基本结构进行分组,最后将基本结构打包成构件。
(3)架构需求评审
组织一个由系统涉众(用户、系统分析师、架构师、设计实现人员等 )组成的小组,对架构需求及相关构件进行审查。审查的主要内容包括所获取的需求是否真实反映了用户需求、构件合并是否合理等。
这是一个迭代过程,利用架构需求生成并调整架构决策。主要活动包括提出架构模型、将已标识的构件映射到架构中、分析构件之间的相互作用、产生系统架构的架构设计评审。
对架构设计进行分析与整理,生成架构规格说明书和测试架构需求的质量设计说明书。
在一个主版本的软件架构分析之后,安排一次由外部人员(客户代表和领域专家)参加的架构复审。架构复审需要评价架构是否能够满足需求,质量需求是否在架构中得以体现、层次是否清晰、构件划分是否合理等。从而标识潜在的风险,及早发现架构设计中的缺陷和错误。
主要是对架构进行实现的过程,主要活动包括架构分析与设计、构件实现、构件组装和系统测试。
主要解决用户在系统开发过程中发生的需求变更问题。主要活动包括架构演化计划、构件变动、更新构件的相互作用、构件的组装与测试的技术评审。
四、软件开发中可能的问题
1、在架构需求获取过程中如何对捕获的架构需求进行筛选和优先级排序。
2、在架构复审过程中如何解决评审人员的意见不一致问题。
3、在架构实现过程中如何根据项目组实际情况选择开发语言与开发平台。
4、在架构演化过程中如何筛选并处理用户的需求变理。