|
知识路径: > 软件架构基础知识 > 架构设计与演化 >
|
相关知识点:2个
|
|
|
|
一般地,实验原型阶段的第一个开发周期没有具体的、明确的目标。此时,为了提高开发效率,缩短开发周期,所有开发人员可以分成了两个小组,一个小组创建图形用户界面,另一个小组创建一个问题域模型。两个小组要并行地工作,尽量不发生相互牵制的现象。
|
|
|
在第一个周期结束时,形成了两个版本,一个是图形用户界面的初始设计,主要包括一些屏幕元素,例如窗口、菜单等;另一个是问题域模型,该模型覆盖了问题域的子集。用户界面设计由水平原型表示,也就是说,运行的程序只是实现一些用户界面控制,没有实现真正的系统功能。问题域模型可由一个统一建模语言类图表示,该类图并不是运行的原型的一部分。然而,它并不只是一个简单的类图,可由一个CASE工具(如IBM Rational Rose)自动产生代码,而且,当一个新的元素增加到模型中时,这些代码会自动进行增量更新。
|
|
|
第二个开发周期的任务是设计和建立一个软件架构,该架构应该具有以下特征:
|
|
|
(1)必须足够灵活,不但能包含现有的元素,而且能包含新增的功能。
|
|
|
(2)必须提供一个相当稳定的结构,在这个结构中,原型能在实验原型阶段进行演化。
|
|
|
(3)必须支持一个高效的开发组织,允许所有开发人员并行地在原型的基础上进行开发。
|
|
|
|
(1)标识构件。为系统生成初始逻辑结构,包含大致的构件。这一阶段又可分为3个小步骤:生成类图、对类进行分组、把类打包成构件。
|
|
|
(2)提出软件架构模型。在建立架构的初期,选择一个合适的架构风格是首要的。在这个风格基础上,开发人员通过架构模型,可以获得关于架构属性(如程序逻辑结构、开发平台等)的理解。此时,虽然这个模型是理想化的(其中的某些部分可能错误地表示了应用的特征),但是,该模型为将来的调整和演化过程建立了目标。
|
|
|
(3)把已标识的构件映射到软件架构中。把在第(1)阶段已标识的构件映射到架构中,将产生一个中间结构,这个中间结构只包含那些能明确适合架构模型的构件。
|
|
|
(4)分析构件之间的相互作用。为了把所有已标识的构件集成到架构中,必须认真分析这些构件的相互作用和关系。
|
|
|
(5)产生软件架构。一旦决定了关键的构件之间的关系和相互作用,就可以在第(3)阶段得到的中间结构的基础上进行细化。可以利用顺序图标识中间结构中的构件和剩下的构件之间的依赖关系,分析第(2)阶段模型的不一致性(如丢失连接等)。
|
|
|