论文部分内容阅读
随着软件开发的全球化发展,地理上分散的开发人员之间的协同工作在软件开发中所占的地位越来越重要,协同软件工程也因此成为软件开发领域的热门研究方向。软件工程领域的协同的主要特点是基于制品的协同,即基于整个开发过程中各种形式化、半形式化的制品的协同。由于每种制品都是项目的一个模型,因此,软件工程领域的协同也可以理解为基于模型的协同。
作为设计阶段的核心制品,软件体系结构模型从高层定义了系统的组织结构,代表了对系统中某些共性的抽象,与系统相关的大多数人员都可以以之作为彼此理解、达成一致和相互交流的基础。本文主要关注于如何对软件体系结构的设计阶段提供协同支持。
本文以ABC方法为指导,提出了一种软件体系结构协同设计支持方法,并在ABC方法的支撑工具ABC Tool中,以Eclipse插件的形式,实现了上述的协同设计支持工具。本文的工作主要包括:(1)为了增加对团队中其他设计人员的协同设计工作的意识、减少模型合并中可能产生的冲突,本文提供了可视化的体系结构模型比较机制,以简洁、直观的方式帮助设计人员理解其他人员的设计意图。首先对模型间的区别进行了分类,接着计算模型间的区别,并将比较的结果记录在模型中,最后通过视图刷新,实现比较结果的可视化显示;(2)在对模型的比较结果进行可视化显示的基础上,为了帮助设计人员了解这些异同背后的设计理由,本文提供了基于模型的交流机制。通过为每个模型元素增加了设计理由的存储,设计人员可以方便地进行基于模型的交流和沟通;(3)在对模型的比较结果进行充分的沟通交流的基础上,本文提供了基于权限的模型合并机制,即高权限的管理人员可以在模型比较结果的基础上进行模型合并,生成一个融合团队成员意见的新版本体系结构模型;(4)为了增加设计人员对整个项目状态的了解,以便更好地协调自己的行为,本文提供了项目状态的查询机制。主要是以视图的方式显示项目的协同开发过程中体系结构模型的版本发展历史。
通过上述协同设计支持方法在ABCTool中的实现,整个设计过程实现了在开发人员的相互协作的基础上,以迭代的方式不断生成新的、融合了集体智慧的高质量体系结构模型的设计方式。