论文部分内容阅读
摘 要:软件产业是一个新兴产业,近些年来,随着计算机技术的飞速发展,软件产业迅速壮大,中国软件产业起步较晚,不仅在人才和技术方面与软件产业先进的国家之间有较大的差距,在管理方面也相差很大,CMM是能力成熟度模型的简称,它可以在组织定义、需求分析、编码调试、系统测试等软件分析的各个过程中发挥作用,提高软件开发的质量和速度。本文简要介绍了CMM和基于CMM的软件开发过程,并提出了CMM软件开发过程中需要解决的三个问题。
关键词:CMM;软件开发;研究应用
前言
目前,CMM是近些年来国际影响力最大的软件过程国际标准,它整合了各类过程控制类软件的优势,提高了软件开发的效率和质量。软件开发需要成熟先进的技术和完善的系统总体设计,CMM三级定义的软件开发流程使软件开发更简单,对项目的进度和状态的判断更准确,因此,研究易于CMM的软件开发过程对软件产业的发展十分重要。
1 CMM软件开发概述
1.1 CMM概述
能力成熟度模型英文缩写为SW-CMM,简称CMM,它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述,它于1991年由卡耐基-梅隆大学软件工程研究院正式推出,CMM由成熟度级别、过程能力、关键过程域、目标、共同特点、关键实践六部分构成,它的核心是把软件开发当成是个过程,并基于这一思想对软件开发和维护过程进行监测和研究,目的是改进旧日繁琐的软件开发过程,除此之外,CMM还可用于其他领域过程的控制和研究。CMM的重要思想是它的成熟度级别的划分,它将软件开发组织从低到高分为五个等级,第一级是初始级,这一级软件开发组织的特点是缺乏完善的制度、过程缺乏定义、规划无效;第二级是可重复级,这一级的软件开发组织基本建立了可用的管理制度,可重复类似软件的开发,因此这一级有一重要的过程--需求管理;第三级是已定义级,软件企业将软件开发标准化,可以按照客户需求随时修改程序,这一级的重要过程是组织过程;第四级是已管理级,软件企业将客户需求输入程序,程序自动生成结果并自动修改,这一级的重要过程是软件过程管理;第五级是优先级,软件企业基于过程控制工具和数据统计工具随时改变过程,软件质量和开发效率都有所提高,这一级的重要过程是缺陷预防。CMM成熟度的划分对国内软件开发组织的自我定位和进步都很大的影响。
1.2 CMM软件开发过程
首先进行项目规划,软件开发人员先了解客户的需求,通过调查问卷、投票等形式搜集信息,相关人员对信息进行归纳处理,提出新的软件的创意,小组人员讨论出软件的小改模型之后进行可行性分析并研究探索新创意的创新性和可行性,提出模型中需要解决的问题,估计项目所需的资金和人力资源,列成项目计划书交付评审。评审通过后,确定软件的具体作用,明确新软件的功能,在目标客户范围内搜集信息,建立准确的模型,制定软件开发计划。先进行概要设计,构建系统的轮廓,根据软件开发计划划分系统模块并建立逻辑视图,建立逻辑视图的核心是对信息进行度量,设计工作量、审核工作量、返工工作量以及完善设计中存在的缺陷等,设定软件标准和数据库标准。然后进行详细设计,针对每一个单元模块进行优化设计,审核设计中的缺陷和未完善之处,将概要设计阶段引入的函数进行详细分解,运用程序语言对函数进行具象的描述,将代码框架填充完整,补充需求跟踪矩阵,最后设计以模块为单元的测试。完善设计方案后,开始编码调试,先进行编码,小组每个人的编码成果都要经过其他人的检查,以防出现漏洞,然后按照测试设计进行单元测试。单元测试无误后进行集成测试,系统集成完毕后将所有测试用例用来测试,系统零失误通过测试说明系统无漏洞,否则检查漏洞重新测试,测试结果形成测试报告留存。软件交付客户验收前进行最后一次测试,检测软件功能与客户需求之间的差距,测试人员在客户提出的每个情境下测试软件功能,测试无误后交予客户。客户验收无误后,小组每个成员针对自己负责的模块进行经验总结,总结基于CMM的软件的开发的经验。
1.3 CMM在软件开发中的作用
CMM在项目管理活动、项目开发活动、组织支持活动三方面都可发挥作用,对提高软件开发的质量和效率有很大的影响,然而,目前我国基于CMM的软件开发还处于起步阶段,主要应用的领域是铁路信号系统、海关软件开发、军用软件开发、雷达软件等,推进了铁路新开系统的开发和利用,拓宽了海关软件开发的平台,承接了以前军用软件开发轴端,提高了雷达软件开发质量。在更广大的领域,CMM还应充分发挥其自我评估、主人评估的作用,为更多的软件开发组织解决软件项目过程改进、多软件工程并行的难题。
2 基于CMM的软件开发过程需要解决的问题
2.1 软件开发平台的实现
软件开发平台是基于CMM的软件开发的基础,目前软件开发的代表性理论是结构化分析设计方法,它利用图形描述的方法将数据流图作为手段更具体的描述了即将开发的系统的模型,在程序设计中,它将一个问题分解为许多相关的子集,每个子集内部都是根据问题信息提取出的数据和函数关系,将这些子集按照包含与被包含的关系从上到下排列起来,定义最上面的子集为对象,即新的数据类型,平台开发的基础就是这个新的数据类型,平台的框架则是将表现层、业务层、数据交换层用统一的结构进行逻辑分组。
2.2 软件组织中的软件过程控制
软件过程是用于开发和维护软件的方法和转换程序,工程观点、系统观点、管理观点、运行观点和用户观点缺一不可,软件过程控制的核心是尽量不和具体的组织机构及组织形式联系的原则,它需要定义和维护软件过程,将硬件、软件、其他部件之间的接口标准化,并确定各组织机构的规范化,制定过程改进的计划后,要先选定几个具有普遍特征的项目作为测试项目,先进行试运行,确定软件过程控制的有效性,准确的记录过程控制的数据和具体问题,运用CMM将这些问题解决后,将过程控制程序应用到所有的项目中。
2.3 软件过程改进模型
软件过程改进模型的核心是评估系统在服务器端的实现流程,登录系统后对新项目进行描述,在线进行项目需求文档编写,同时指派SQA人员到项目组进行指导,根据需求文档制定项目SCM计划,进而得出跟踪需求,收集当前软件过程中的实际数据并与计划值比较,报告比较结果,若结果在误差允许范围之内,则项目结束,如超出误差允许范围,则调整项目计划,调整后的项目计划再进行以上流程,直至实际数据与计划值的差在在误差允许范围之内,软件过程改进模型建立完毕。
3 结束语
目前,国际大多数软件开发过程和质量管理都遵循CMM,在软件开发中,CMM的各个关键过程都有对应的角色和负责的阶段,对软件开发的速度和质量的提高有重要的意義。在我国,基于CMM的软件开发过程的研究正处于起步阶段,CMM还有很多功能没有挖掘出来,在基于CMM的软件开发过程中,工作人员要充分发挥和挖掘CMM的价值,大胆创新,在实践中改进软件控制、软件开发管理等过程,不断提高软件开发的能力。
参考文献
[1]周明辉.石油化工工程质量监督系统网络信息平台的设计[J].工程质量,2015-3:10.
[2]王玲.基于CMMI4级的高成熟度过程改进的实践探索——以XX公司软件研发持续改进的实践为例[J].电子技术与软件工程,2015-1:62.
关键词:CMM;软件开发;研究应用
前言
目前,CMM是近些年来国际影响力最大的软件过程国际标准,它整合了各类过程控制类软件的优势,提高了软件开发的效率和质量。软件开发需要成熟先进的技术和完善的系统总体设计,CMM三级定义的软件开发流程使软件开发更简单,对项目的进度和状态的判断更准确,因此,研究易于CMM的软件开发过程对软件产业的发展十分重要。
1 CMM软件开发概述
1.1 CMM概述
能力成熟度模型英文缩写为SW-CMM,简称CMM,它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述,它于1991年由卡耐基-梅隆大学软件工程研究院正式推出,CMM由成熟度级别、过程能力、关键过程域、目标、共同特点、关键实践六部分构成,它的核心是把软件开发当成是个过程,并基于这一思想对软件开发和维护过程进行监测和研究,目的是改进旧日繁琐的软件开发过程,除此之外,CMM还可用于其他领域过程的控制和研究。CMM的重要思想是它的成熟度级别的划分,它将软件开发组织从低到高分为五个等级,第一级是初始级,这一级软件开发组织的特点是缺乏完善的制度、过程缺乏定义、规划无效;第二级是可重复级,这一级的软件开发组织基本建立了可用的管理制度,可重复类似软件的开发,因此这一级有一重要的过程--需求管理;第三级是已定义级,软件企业将软件开发标准化,可以按照客户需求随时修改程序,这一级的重要过程是组织过程;第四级是已管理级,软件企业将客户需求输入程序,程序自动生成结果并自动修改,这一级的重要过程是软件过程管理;第五级是优先级,软件企业基于过程控制工具和数据统计工具随时改变过程,软件质量和开发效率都有所提高,这一级的重要过程是缺陷预防。CMM成熟度的划分对国内软件开发组织的自我定位和进步都很大的影响。
1.2 CMM软件开发过程
首先进行项目规划,软件开发人员先了解客户的需求,通过调查问卷、投票等形式搜集信息,相关人员对信息进行归纳处理,提出新的软件的创意,小组人员讨论出软件的小改模型之后进行可行性分析并研究探索新创意的创新性和可行性,提出模型中需要解决的问题,估计项目所需的资金和人力资源,列成项目计划书交付评审。评审通过后,确定软件的具体作用,明确新软件的功能,在目标客户范围内搜集信息,建立准确的模型,制定软件开发计划。先进行概要设计,构建系统的轮廓,根据软件开发计划划分系统模块并建立逻辑视图,建立逻辑视图的核心是对信息进行度量,设计工作量、审核工作量、返工工作量以及完善设计中存在的缺陷等,设定软件标准和数据库标准。然后进行详细设计,针对每一个单元模块进行优化设计,审核设计中的缺陷和未完善之处,将概要设计阶段引入的函数进行详细分解,运用程序语言对函数进行具象的描述,将代码框架填充完整,补充需求跟踪矩阵,最后设计以模块为单元的测试。完善设计方案后,开始编码调试,先进行编码,小组每个人的编码成果都要经过其他人的检查,以防出现漏洞,然后按照测试设计进行单元测试。单元测试无误后进行集成测试,系统集成完毕后将所有测试用例用来测试,系统零失误通过测试说明系统无漏洞,否则检查漏洞重新测试,测试结果形成测试报告留存。软件交付客户验收前进行最后一次测试,检测软件功能与客户需求之间的差距,测试人员在客户提出的每个情境下测试软件功能,测试无误后交予客户。客户验收无误后,小组每个成员针对自己负责的模块进行经验总结,总结基于CMM的软件的开发的经验。
1.3 CMM在软件开发中的作用
CMM在项目管理活动、项目开发活动、组织支持活动三方面都可发挥作用,对提高软件开发的质量和效率有很大的影响,然而,目前我国基于CMM的软件开发还处于起步阶段,主要应用的领域是铁路信号系统、海关软件开发、军用软件开发、雷达软件等,推进了铁路新开系统的开发和利用,拓宽了海关软件开发的平台,承接了以前军用软件开发轴端,提高了雷达软件开发质量。在更广大的领域,CMM还应充分发挥其自我评估、主人评估的作用,为更多的软件开发组织解决软件项目过程改进、多软件工程并行的难题。
2 基于CMM的软件开发过程需要解决的问题
2.1 软件开发平台的实现
软件开发平台是基于CMM的软件开发的基础,目前软件开发的代表性理论是结构化分析设计方法,它利用图形描述的方法将数据流图作为手段更具体的描述了即将开发的系统的模型,在程序设计中,它将一个问题分解为许多相关的子集,每个子集内部都是根据问题信息提取出的数据和函数关系,将这些子集按照包含与被包含的关系从上到下排列起来,定义最上面的子集为对象,即新的数据类型,平台开发的基础就是这个新的数据类型,平台的框架则是将表现层、业务层、数据交换层用统一的结构进行逻辑分组。
2.2 软件组织中的软件过程控制
软件过程是用于开发和维护软件的方法和转换程序,工程观点、系统观点、管理观点、运行观点和用户观点缺一不可,软件过程控制的核心是尽量不和具体的组织机构及组织形式联系的原则,它需要定义和维护软件过程,将硬件、软件、其他部件之间的接口标准化,并确定各组织机构的规范化,制定过程改进的计划后,要先选定几个具有普遍特征的项目作为测试项目,先进行试运行,确定软件过程控制的有效性,准确的记录过程控制的数据和具体问题,运用CMM将这些问题解决后,将过程控制程序应用到所有的项目中。
2.3 软件过程改进模型
软件过程改进模型的核心是评估系统在服务器端的实现流程,登录系统后对新项目进行描述,在线进行项目需求文档编写,同时指派SQA人员到项目组进行指导,根据需求文档制定项目SCM计划,进而得出跟踪需求,收集当前软件过程中的实际数据并与计划值比较,报告比较结果,若结果在误差允许范围之内,则项目结束,如超出误差允许范围,则调整项目计划,调整后的项目计划再进行以上流程,直至实际数据与计划值的差在在误差允许范围之内,软件过程改进模型建立完毕。
3 结束语
目前,国际大多数软件开发过程和质量管理都遵循CMM,在软件开发中,CMM的各个关键过程都有对应的角色和负责的阶段,对软件开发的速度和质量的提高有重要的意義。在我国,基于CMM的软件开发过程的研究正处于起步阶段,CMM还有很多功能没有挖掘出来,在基于CMM的软件开发过程中,工作人员要充分发挥和挖掘CMM的价值,大胆创新,在实践中改进软件控制、软件开发管理等过程,不断提高软件开发的能力。
参考文献
[1]周明辉.石油化工工程质量监督系统网络信息平台的设计[J].工程质量,2015-3:10.
[2]王玲.基于CMMI4级的高成熟度过程改进的实践探索——以XX公司软件研发持续改进的实践为例[J].电子技术与软件工程,2015-1:62.