(2) 顺序执行的活动.Cugola[89]采用基于有限状态自动机的状态转换图,表示过程中制品的状态以及状态间的转换;Acuna等人[57]采用状态转换图,描述过程元素的内部和过程元素之间的顺序行为.Franch[38]和Ribò[43]采用前趋关系表示活动间的前趋和后继关系.
(3) 并发交互的活动.支持该类过程描述的建模方法,一般与描述并发软件系统的形式化方法具有较为密切的关系,前者往往是在后者的基础上,根据软件过程建模的需求作适当的改进而提出来的.Podnar等人[44]使用电信领域内广泛采用的规约描述语言,对软件过程进行描述、仿真和验证.Bendraou等人[33]和Ge等人[60],分别采用Petri网、对象Petri网[100]描述SPEM 2.0的语义和支持软件过程的多视图建模.对于进程代数方法,Li[53]
π演算描述软件过程并发活动间的通信和同步.Cobleigh[86]采用并发的和Yang等人[47]分别采用顺序通信进程、
状态转换图描述Little-JIL的语义.
(4) 隐含的并发活动.通过隐含方式描述软件过程的研究,主要分为两大类.第1类是采用人工智能逻辑推理的方式,得到软件开发过程:Zhao等人[22]采用多Agent系统,由具有一定感知、知识表示、推理和协商能力的Agents,通过协作的方式建立软件开发过程,并完成开发任务;Ahmed-Nacer[23]把软件过程用一系列的逻辑规则来表示,只有当一条规则的条件部分被满足时,才会执行规则结论部分所对应的活动.同时,一个活动的执行可能会改变全局的状态,从而改变规则条件部分是否被满足的状态.第2类是软件过程仿真.在软件过程仿真中,一般也不具备一个明确的软件过程活动序列,而只是通过一些参数定义软件过程的仿真模型,仿真模型的每次运行则产生一个软件过程的实例.Padberg[26]使用离散事件系统进行软件过程仿真,以比较项目的不同调度策略.Pfahl[85]把系统动力学仿真与传统软件过程建模结合在一起,以降低系统动力学模型建立的难度.
从表3和上面的分析中,我们可以进一步得到如下结论:
表3中的前两种范式主要描述软件过程的静态方面或者顺序活动行为.由于这两种描述方式主要是基于一些非形式化的面向对象表示方法和描述顺序行为的图示,不涉及软件过程活动间的并发和交互,因此这类方法易于理解和使用,比较适合于以沟通、理解、提取、表示为目的的软件过程建模.另一方面,软件的开发特别是大规模软件或者分布式开发,是一项很复杂的过程.软件过程的很多任务都是并行的,同时,因为资源、信息或者数据的共享,需要活动之间相互协调和配合.因此,表3中后两种范式所具有的、描述软件过程行为并发和交互的能力,对于真实、全面地刻画一个软件过程来讲是至关重要的.
表3中的前3种范式都属于说明性(prescriptive or descriptive)软件过程模型的范畴,而在最后一种范式中,一般不具有一个明确的软件过程,或者建立软件过程模型的目的并不是为了指导实际软件开发活动.一个说明性的过程模型主要用于说明软件开发活动如何实施,包括主要的开发活动、活动的组织、活动的执行者、工作产品在活动间的传递、工作产品间的关系等等,同时可以从静态和动态、不同的抽象层次来描述一个预定义的或者实际软件开发过程.因此,从表3可以看出,软件过程建模方法的研究主要集中在说明性的软件过程模型.说明性过程模型的优点在于可以直接指导实际软件开发活动,并且与实际软件开发过程之间基本能够对应.对于基于多Agent的软件过程建模,其优点一般源于Agent所具有的自治性、与其他Agent和环境交互时所具有的灵活性,以及能够自主地推理、规划和执行等特点;但建立起支持多Agent所需的知识库是一项很具挑战性的任务,同时,实际软件开发活动中个体的组织方式与多Agent系统相比更具刚性.类似地,在基于规则的软件过程模型中,只有当一条规则的前置条件被满足时,才执行后置条件所对应的动作,其缺点在于缺乏一个总体上清晰和明了的软件过程.而软件过程仿真主要用于软件过程的随机模拟和分析,而所建立的模型只是在不影响分析结果的前提下对要研究的过程的粗略抽象,其目的并不是为了指导软件过程的执行或者刻画实际软件过程.
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究软件过程建模方法研究(14)全文阅读和word下载服务。
相关推荐: