新闻动态
软件开发过程中的并行性分析
https://www.sytm.net 发布日期:2013/11/3 11:25:20

并行是软件过程中普遍存在的一类现象。在软件过程中,存在着许多并行性。直观上看,粒度较粗的并行性体现在过程一级。如软件开发过程、软件管理过程和软件文档编制过程等之间是并行的。粒度细一些,多个角色之间的活动往往也是并行的。软件并行开发通过挖掘各种并行成分,充分鼓励并行,并通过有效的过程控制,使各种并行成分统一协调地进行,达到加快软件开发速度的目的。软件并行开发还强调改变传统的串行进行软件开发的模式,将软件开发过程划分为若干可以并行进行的单位(称为子开发过程),使其并行进行,从而将原来存在于软件开发过程总的局部进行性延拓到该过程的全局。本质上,子开发过程也是软件过程。经过进一步的分析发现,软件过程中的并行性远不止以上两类。根据并行粒度的不同,将它们划分为以下五类(统称为软件过程并行)。

1.软件过程之间的并行(过程并行)

软件过程之间可以是顺序的,也可以是并行的。并行的软件过程之间可以存在同步关系。例如,开发过程和维护过程之间基本上是顺序进行的,开发过程在前而维护过程在后。而开发过程、管理过程和文档编制过程之间则是并行的。开发时有管理,管理的对象是开发;开发时需要产生文档,文档描述的对象是开发和开发结果。管理过程和文档编制过程之间也有类似的关系。

这四个软件过程之间是并行的,而且还存在着同步关系。通过这些交互作用实现各并行软件过程之间的同步关系。

2.软件过程内部的全局性并行(子过程并行)

软件过程内部各活动之间是存在并行性的。例如,软件开发过程的程序设计活动,就存在多个程序员同时程序设计的现象。事实上,可以提升软件过程内部的并行性粒度,将局部的并行性延拓到全局,构成相对独立的并行成分(称为子过程),对于提高软件生产率具有重要的意义。例如,在延拓以后,软件开发过程(软件过程之一)内部的并行性。为避免繁琐,各子开发过程之间的同步关系图中从略。

3.阶段之间的并行(阶段并行)

制造业并行工程强调的重点是阶段之间的交叠与并行。类似地,软件并行开发也强调软件过程中阶段的交叠与并行。制造业并行工程似乎并不强调本节所分析的其他几类并行,而软件并行开发对这几类并行均加以同等地看待。阶段之间的并行交叠对提高生产率也具有重要意义。如软件开发过程内部某子开发过程各阶段的并行。

4.软件发行版本之间的并行(版本并行)

在开发一个软件发行版本的同时,就进行着下一个软件版本的开发。此类并行是粒度最粗的并行。

5.活动之间的并行(活动并行)

活动并行是软件过程中粒度最细的一类并行。活动是任务的集合,任务是把输入变成输出的操作。如软件开发过程中的程序设计阶段,程序员同时进行程序设计活动就是最常见到并被广泛应用的一种活动并行。通常不再让任务并行,而把活动看成是任务序列。若需要让任务并行,不妨将其看成是活动即解决问题。

上述几类并行性按并行粒度的不同,从粗到细依次为:软件发行版本之间的并行(版本并行)、软件过程之间的并行(过程并行)、软件过程内部全局性并行成分之间的并行(子过程并行)、阶段之间的并行(阶段并行)、活动之间的并行(活动并行)。

更多阅读
返回列表
© 2010 TianMei Technology All rights reserved. ICP:辽B2-20150138辽公网安备 21010202000010号  目录概览