现代软件工程
上QQ阅读APP看书,第一时间看更新

2.3 软件生存周期过程与软件过程工程

软件生存周期过程也称为软件过程,是指软件生存周期中的一系列相关过程。过程就是活动的集合,活动是任务的集合,任务则起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的(重复的)、并行的、嵌套的或者是有条件地引发的。

GB/T 8566—2007把软件生存周期中可以开展的活动分为5个基本过程、8个支持过程和4个组织过程。每一生存周期过程划分为一组活动,每一项活动进一步划分为一组任务,如图2-11所示。

978-7-111-52634-6-Chapter02-11.jpg

图2-11 软件生存周期过程的结构

事实上,无论从概念上如何解释和划分,软件过程都应当包含以下3个含义。

●个体含义:即指软件或系统在生存周期中的某一类活动的集合,如获取过程、供应过程、开发过程和管理过程等。

●整体含义:即指软件或系统在所有上述含义下的软件过程的总体。

●工程含义:即指解决软件过程的工程,它应用软件工程的原则和方法来构造软件过程模型,并结合软件的具体要求进行例化,以及在用户环境中运作,以此来进一步提高软件的开发率,降低成本。

软件过程的工程含义还可以包含以下几个方面。

1)软件过程不仅要有工程视图,也要有合同视图(包括系统视图和用户视图)。任何软件的开发必然涉及供需双方,从合同视图考虑相关的活动必要而且可行;同时,由于软件复用技术已经较为成熟,对已有构件或子系统的复用需求也需涉及供需活动,对供需活动的良好定义能够从客户接口方面保证软件的质量。为此软件过程应当涉及获取过程和供应过程。

2)软件过程包含管理视图。提高生产率和软件质量这两个目标能否实现,其关键还在于管理和支持能力,就管理与被管理、管理与支持等命题已出现越来越多的研究结果,它贯穿于软件生存周期,又同软件开发相对独立,为此软件过程应当涉及管理过程和支持过程。

3)软件过程应包含运作视图。由于区分了软件开发环境和业务运作环境,并且系统或软件也不一定全部自行开发,可以从获取过程得到所需的部分软件并投入使用,因而需要考虑与软件运作相关的问题,运作过程便从工程过程中独立出来,形成相对独立的过程。

4)不同角色由于其视图不同,所参与的软件过程亦不相同。如管理者按其管理视图参与的是管理过程;用户和操作人员按其运作视图参与的是运作过程;开发人员和维护人员按其工程视图参与的是开发过程和维护过程;获取者(如设备、系统软件采购人员)或供应者(如软件销售人员)按其合同视图参与的是获取过程或供应过程;介入支持活动的人员(如培训工程师、设备管理员等)按他们支持的目标负责支持过程的某些工作。软件过程研究的对象因而扩展到从事软件活动的各类人员上。

对一个特定的软件项目而言,软件过程可被视为开展与软件开发相关的一切活动的指导性的纲领和方案,因而软件过程的优劣对软件的成功开发起决定作用。那么,如何建立那些对软件项目的开发具有积极意义的软件过程,便是“软件过程工程”所涉及和研究的内容。因此,“软件过程工程”定义为:为建立软件过程所必须实施的一系列工程化的活动,它涉及与此有关的方法、工具和环境的研究。

“软件过程工程”是“软件工程”理论中新形成的一个重要内容,而“软件生存周期过程”则是“软件过程工程”的基本概念。因此,以工程化的思维方式理解“软件生存周期过程”概念及其他相关概念、构成软件生存周期过程的各项内容,以及构造一个软件生存周期过程的各项活动等,对了解和理解“软件过程工程”并进而对“软件过程工程”理论进行研究尤为重要。