论文部分内容阅读
现代软件开发更加注重过程的控制作用。在软件开发中,软件过程把人、工具以及规程和方法集成在一起,生产出高质量的软件产品。对软件过程的支撑技术的有诸多方面的研究。
已经出现了很多软件过程建模语言,每一种语言都侧重于说明软件过程的某一个或某些侧面的描述,它们符合软件过程的某些特性,并适应于特定的应用环境。同样,我们要设计一种建模语言,也必须充分考虑软件过程本身的特性,满足当前软件开发需要。
大多过程建模语言都不同程度的存在着单一复杂,不够灵活,僵化,忽视软件过程中人的创造性,缺少复用机制等过程演化改进支持手段的问题。
研究表明,单一的完整的静态过程无法很好的适应软件过程复杂度的控制及软件开发方式的灵活性。事实上,软件过程模型是可以分层次的,通常软件开发过程中,存在很多规模较小的固化的流程,这些流程是可以模块化、内聚性非常强的,而且通用性也非常强,易于复用,这是比较低的层次的过程组件或者模式,显然,这些组件是结构化的,即在建模的时候基本上能够完全指定过程细节;相反地,对于大粒度的过程,甚至是整个生命周期的过程,通常指导性的内容居多,这个高层次的过程需要底层过程组件之间相对灵活和松散的结合方式,因为这些大的过程是非常复杂的,牵涉到更多的人员之间的交互,部门之间的交流,一方面不太容易固化,另一方面需要应付需求和外界情况的不断变化,因此这个层次是半结构化甚至是非结构化的,即在建模时,不太可能完全指定过程模型的全部细节,甚至完全靠人之间的交流。
从实践的角度来看,组间协调以及虚拟企业、软件外包等软件开发方式,也需要软件过程的相互协调和知识共享和复用,特别是软件过程知识的共享,以推进软件过程的改进。
因此,本文认为软件过程的复用和协同是过程建模的两个基本而重要的需求。
针对这些需要,本文提出了过程片段的概念,并在前期工作CPMS系统的过程定义语言CSPDL基础上设计了一种两个层次的软件过程建模语言——ROL。ROL的基本思想就是,在低层次上,建模语言使用工作流描述过程片段,由过程引擎解释执行;把过程片段作为基本的复用颗粒,为了支持过程片段的复用,增强过程模型的描述功能,使用对象式定义过程元模型,实现了活动、角色、人员、工具等方面的统一建模和多维度描述方式,这种方式可以比较容易的建立CBR的查询索引;支持模板级、实例级、实施级分级建模,增强过程片段的可复用性,并在一定程度上支持过程片段的剪裁定制和演化,以及延迟绑定的机制。在高层次上,支持过程片段之间的协同机制,具体的实现机制是在每个片段上定义“锚点”,即过程片段之间的接口,并通过定义“锚点”之间的同步、异步等并发消息规定过程片段之间的协同协议。在过程模型的表示形式上,继续采用图形和XML文本两种表示形式。这种方式具有易读、易理解、易解析、易交换和易部署的特点。
以ROL为基础和前期CPMS系统的基础上,设计了支持复用和系统的软件过程环境ROSPE系统,并实现了其建模工具ModelMaker的界面原型。本文介绍了ROSPE系统对CPMS系统的扩展思路及其系统结构和各个组件的功能和基本设计,特别是建模工具ModelMaker。
最后,针对软件过程复用、协同以及两层建模的相关工作进行了比较和分析,并对ROL以及ROSPE的不足和进一步的需要进行完善的工作进行了总结。