架构模式也称为架构风格,它是适当地选取战术的结果,这些固定的结果(模式)在高 层抽象层次上具有普遍实用性和复用性。
通过架构模式,架构设计师可以借鉴和复用他人的经验,看看类似的问题别人是如何解 决的。但不要把模式看成是一个硬性的解决方法,它只是一种解决问题的思路。
“模式和业务构件的区别就在于模式会引发你的思考。”
1.演变交付生命周期
在生命周期模型中,架构设计就是从初步的需求分析开始逐步进行循环迭代。即:一方面在了解系统需求前,不能开始设计架构;另一方 面,刚开始进行设计架构时并不需要等到全部需求都收集到。
架构由少数关键需 求决定并在循环迭代中处于基本稳定状态,它作为演变的基础设施。
2.属性驱动设计法
模型强调先建立软件架构,再把架构作为骨架,在骨架上循环迭代,逐步长出有血 有肉的系统之躯。
属性驱动设计法(Attribute-Driven Design,ADD)就是一种定义软件架构 的方法,该方法将分解过程建立在软件必须满足的质量属性之上。
ADD 的输入为:功能需 求(一般表示为用例)、限制条件和质量需求(一组特定于系统的质量场景)。
ADD 的步骤如下:
(1)选择要分解的模块。
(2)根据如下步骤对模块进行求精:
1 | 从具体的质量场景和功能需求集合中选择架构驱动因素。 |
(3)对需要进一步分解的每个模块重复上述步骤。
3.按架构组织开发团队
像软件系统一样,开发小组也应该努力做到松耦合、高内聚。
项目计划在架构确定之后可以结合分工进一步明细化,特别要规划好接口提供的 时间点,保证项目开发的整体协调性。
4.开发骨架系统
演变交付生命周期模型中有两个循环,第一个循环是通过迭代的方式开发出软件架构, 第二个循环是在架构的基础上通过迭代的方式开发出交付的最终版本。开发骨架系统就是第 二个循环的第一步。
5.利用商用构件进行开发
模式本来就是针对特定问题的解,因此,针对需求的特点,也可以选用相应的模式来设 计架构,并利用对应于该模式的商用构件进行软件开发。例如可以使用 J2EE/EJB 进行开发 面向对象的分布式系统。