一、开发模型
传统的软件开发过程可以划分为:问题定义、需求分析、软件设计、软件实现、软件测试等过程。如果采用传统的开发过程,软件体系结构的建立应位于需求分析之后,概要设计之前。
基于体系结构的软件开发模型(ABSDM),把整个软件过程划分为为:体系结构需求、设计、文档化、复审、实现、演化等六个子过程。
1、体系结构需求
需求是只用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。体系结构需求受技术环境和体系结构设计师的经验影像。需求过程主要是获取用户需求,标识系统中所要用到的构件。
1.1、需求获取
体系结构需求一般来自三方面:系统的质量目标、系统的商业目标、系统开发人员的商业目标。软件体系结构需求获取过程主要是定义开发人员必须实现的软件功能,是的用户能完成他们的任务,从而满足业务上的功能需求。于此同时,还要获得软件质量属性,满足一些非功能性需求。
1.2、标识构件
这一步又可分为三步实现:
第一步:生成类图。使用CASE工具生成类图。
第二步:对类进行分组。分组后会简化类图结构,使之更加清晰可读。一般,根据类之间的耦合度和内聚度进行分组。例如,在实践DDD时,就可以把一个聚合进行分组,多个聚合即分为多组。
第三步:把类打包成构件。做到构件级的重用。构件和构件又可以打包成更大的构件。
1.3、需求评审
组成一个由不同代表组成的小组,对体系结构需求及相关构件进行仔细的审查。审查的主要内容包括所获取的需求是否真实反映了用户的要求,类的分组是否合理,构件合并是否合理等。
必要时,可以在需求获取-标识构件-需求评审之间进行迭代。
2、体系结构设计
体系结构设计是一个迭代过程。其步骤为:
2.1、提出软件体系结构模型
在建立体系结构的初期,选择一个合适的体系结构风格是首要的。在这个风格的基础上,开发人员通过体系结构模型,可以获取相关体系结构属性的理解。
2.2、把以标识的构件映射到软件体系结构中
把在体系结构需求阶段标识的构件映射到体系结构中,将产生一个中间结构,这个中间结构只包含哪些能明确合适体系结构模型的构件。
2.3、分析构件之间的相互作用
为了把所有已标识的构件集成到体系结构中,必须认真分析这些构件的相互作用和关系。
2.4、产生软件体系结构
一旦决定了构件之间的关系和相互作用,就可以在第二阶段得到中间结构的基础上进行精化。
2.5、设计评审
一旦设计了软件体系结构,必须邀请独立于系统外开发的外部人员对体系结构进行评审。
3、体系结构文档化
绝大多数的体系结构都是抽象的,有一些概念上的构件组成。因此,要让系统分析员和程序员去实现体系结构,还需要把体系结构文档化。
体系结构文档化的主要输出结构是:体系结构需求规格说明书、质量设计说明书(测试体系结构需求的文档)。精确的形式化的描述,是用户和开发人员之间的一个协约。
4、体系结构复审
体系结构设计、文档化、复审是一个迭代过程。一个主版本的软件体系结构分析之后,要安排一次有外部人员(用户代表、领域专家)参加的复审。
复审的目的是标识潜在风险,及早发现体系结构设计中的缺陷和错误,包括体系结构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理、文档表达是否明确、构件的设计是否满足功能与性能的要求等。
5、体系结构的实现
文章未完……先睡觉……