1、软件项目的生产特征

  软件项目相对于其它项目既有共同的特征,同时也具有自身鲜明的特点。下面从几个方面分析并说明这些特点对软件过程改进以及软件质量管理的影响。

  首先软件项目存在着规模限制,软件项目的规模特征首先是项目的组成人员较少,其资源有限。而资源是进行软件过程改善与软件质量管理的先决条件,不同规模项目进行软件过程改善与质量管理,资源的占用并不是一个简单的线形关系,如200人的软件企业和10人的软件项目实施质量管理所需的投入并不是简单的20:1的关系。“麻雀虽小,五脏俱全”,除开对软件过程改善培训和支持以外,软件企业和软件项目进行过程改善的核心活动基本上是一样的,那么软件项目必须精打细算的利用有限的资源做需要的软件过程改善与质量管理。

  其次是项目独立性:在特定机型上,利用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的开发环境。再加上软件项目特定的目标,采用特定的开发方法、工具和语言,使得软件具有的特色。这种建立在内容、形式各异的基础上的研制或生产方式,自然会给管理工作造成许多实际困难。

  再者软件项目的任何一个成员都可能参与软件生产的各个方面,每个人都是“全才”,既可以进行需求分析,同时也可以进行设计、开发和测试。在软件生产过程中,软件项目在职责划分上更侧重以人员为中心而不是以角色为中心,软件开发缺乏层次性。这一特征对软件过程改进的组织方式产生很大的影响,项目组织在进行过程改善时不太可能设立独立的软件工程组,而是使每一个软件工程人员参与到软件过程改善活动之中,在软件工程项目开发的同时并行进行软件过程改善。

  总之软件项目的特征可理解为创造性强、动态变化快、技术革新迅速,其成功依赖于小团体的创造能力。同时软件项目组也存在着软件过程规范不够明确、组织岗位职责模糊、人员管理松散、技术使用不合理等一系列阻碍软件项目的缺陷。这些缺陷直接导致了软件项目质管理的混乱,因此有必要在以软件过程改善为主线的基础上建立起规范化和制度化的软件项目质量控制框架。

  2、影响软件质量的结构因素

  软件能力成熟度模型重点是从组织管理方面研究评估软件生产过程,从而提高软件质量。软件业通过多年实践,总结出软件质量是人员、过程和技术的函数,即:Q=f(M,P,T)

  其中,Q表示软件质量;M表示人员iP表示软件生产过程;T表示技术。

  从项目管理的角度讲这是组织管理、项目的过程管理和技术工具使用的组成。

  3、软件质量控制框架

  正如我们所知,软件开发建设是一个系统性的工程,在软件开发过程中,影响开发质量的因素有很多,人员、过程、技术可以被看作是独立的因素,但实际上人员、过程、技术三者存在相互依存的关系。把三者合理地结合起来,使人员、过程和技术相互配合,达到整体佳状态,才一是实施软件质量控制追求的目标。而其中人员因素又可以细分为开发人员能力、开发人员数量,反映到组织上是软件项目的角色管理;过程因素可以细分为软件过程成熟度、软件开发周期,主要体现为项目的过程管理:技术因素可以细分为软件复杂性与开发工具两个因素,具体体现为项目的软件配置管理。依据CMMI,将软件质量与其主要因素之间的关系建立一个软件质量控制框架。

  软件质量(SQ)主要受软件开发过程成熟度(PM)、软件的大小与复杂性(SC),软件开发所需的资源(DR)、使用的开发工具(DT)和开发人员的能力(PC)五个要素的影响;同时软件开发质量又影响着软件开发周期(CT)、开发所需的资源(DR)。此外,开发过程成熟度(PM)和系统的大小与复杂性(SC)又分别影响着软件开发所需的资源(DR)、开发周期(CT)。因此对于软件开发质量(SQ),可以用扩展后的函数来表达,于是得到一个软件质量控制模型:SQ=f(PM,SC,DR,DT,PC)