• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 理科资料 > 正文

    软件工程有必要读研吗 浅议CMM在软件工程中的应用探研及实现

    时间:2019-04-06 03:23:39 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘 要 针对软件工程的特点及开发过程中所面临的困难,详细分析了CMM 的五个等级及关键过程域,提出了在软件工程实施中应用CMM 原理以  加强软件过程管理的一种模型。阐述了该模型中需求管理、软件项目计划、软件项目跟踪和监督、软件质量保证、软件配置管理、组间
      协调及培训管理的过程改进要求,实现了软件开发效率的提升,软件开发失败风险的降低,软件成本的减少,软件丁程工期的缩短和软
      件产品质量的提高。
      关键词 CMM 软件工程 关键过程域一、软件工程的特点及在实施过程中面临的问题
      软件工程主要着眼于大型复杂软件项目开发的指导,是利用工程的概念、原理、技术和方法来开发与维护软件,其主要目的是在规定的时间、规定的工程费用内,开发出满足用户要求的高质量的软件产品。由于大型软件项目本身的复杂性,软件工程将软件的开发划分为软件计划、软件开发和软件运行维护三个阶段,每个阶段采取不同的方法完成不同的任务。软件计划阶段包括项目可行性研究和需求分析,可行性研究指在软件项目正式开发之前,投入一定精力,通过一套准则,从经济、技术、社会等方面对软件项目的必要性、可能性、合理性及面临的风险进行分析和评价,得出软件项目是否可行的结论;需求分析指通过详细的调查用户要求,通过细致的分析,得出合理可行的系统需求,并通过规范的形式描述需求的过程,它对于整个系统的开发过程及软件产品质量是至关重要的。
      软件开发包括软件概要设计、软件详细设计、程序编码、软件单元测试、软件综合测试,软件概要设计是指通过系统需求说明确定系统的组成及各组成部分之间的相互关系;详细设计用来确定模块内部的算法和数据结构;程序编码是用某种程序设计语言实现详细设计的过程;软件单元测试是对源程序中的每一个程序单元进行测试,目的是检查各个模块是否正确实现了规定的功能,从而发现编程和详细设计的错误,软件综合测试是在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试,主要用于发现模块组装过程中可能出现的问题。软件维护运行机制是一个长期的工作,指在软件运行其间,通过各种必要的维护使系统改正错误、或修改扩充功能使软件适应环境变化,延长软件使用寿命,提高软件的效益,使软件能持久地满足用户的需要。
      尽管在大型复杂软件项目的开发过程中我们严格按照软件工程的规范和标准去完成每个任务,但是在实施的过程还是存在下列主要问题。
      (1)用户满意度差。由于软件应用范围越来越广,很多应用领域往往是软件开发者所不熟悉的,开发人员与用户之间信息交流不够,用户需求分析和软件需求分析不能完全反映用户和开发人员的思想,导致软件产品不符合要求。
      (2)软件产品质量差。软件质量保证没有充分运用到软件开发的全过程。
      (3)软件产品可维护性差。在软件的设计、开发过程中不重视程序的可读性,难以维护。
      (4)软件开发成本高,效率低下。
      二、CMM分析
      CMM(Capability Maturity Mode for Software)即软件过程能力成熟度模型,指一个软件过程被明确定义、管理、度量和控制的有效程度。软件过程包括软件开发过程和软件管理过程,指人们从软件开发到维护软件相关产品所采取的一系列步骤。CMM 提供了一个框架,将过程进化的步骤分成五个成熟度等级,每个成熟度等级被分解为几个KPA(关键过程域),KPA是指在某个成熟度等级应重点关注的区域,也是达到此成熟度等级必须解决的关键点。
      五个等级分别是:
      ①Initial级,软件过程没有任何标准和规章,软件产品的质量具有不可预测性。
      ②Repeatable级,已建立基本的项目管理过程,整个项目过程已经制度化,项目过程处于项目管理系统的有效控制和监督之下,通过不断积累软件过程数据来建立完备的软件开发文档,以前成功的经验经规范化后归纳为标准的软件过程并在以后的项目实施过程中加以提炼,是一个持续的质量改进。KPA分别是:需求管理、软件项目计划、软件跟踪与监督、软件子合同管理、软件质量保证、软件配置管理;
      ③Defined级,组织级法律框架健全,软件产品的基本过程被记录下来成为文档,软件工程管理和过程管理紧密结合起来并形成了一定的标准集成到组织的标准软件过程,SPEG(软件过程工程组)来负责整个软件过程的活动,项目可以通过裁减组织的标准软件过程来建立适合自己的软件过程,并始终得到控制和管理。KPA分别是:组织过程焦点、组织过程定义、培训大纲、集成软件管理、软件产品工程、组间协调、同行评审;
      ④Managed级,对软件过程的每一个阶段进行监控、取样和定量分析,对形成的关于软件制作和维护流程的数据库不断更新,保证软件过程保持较高的质量。KPA分别是:定量过程管理、软件质量管理;
      ⑤Optimizing级,整个软件开发机构的重心转移到优化软件过程,软件组织对新技术的采用、产品预防缺陷、过程管理改进已达到循环优化的阶段。KPA分别是:缺陷预防、技术更新预防、过程更改管理。CMM 描述的五个等级的软件过程反映了软件从杂乱无章、依赖于个人的生产到可管理、可监督、有质量保证、标准化、不断完善的阶梯式生产过程,是一个企业软件过程改良的参照框架,可以协助软件组织建立严格、可视、标准、优化的软件开发过程。
      三、CMM 在软件工程中的应用实现方案
      CMM 中每一个成熟度等级都有若干个KPA构成,每个KPA过程包含了一系列相关的活动,要达到一个成熟度等级,必须实现该等级上的全部KPA,过程的改善不能跳跃式的进行。CMM 强调持续不断的软件过程活动的改进与控制,是一个过程改进的框架。考虑到大型软件项目的复杂性和在软件工程实施过程中容易出现的问题,以提高软件质量、降低成本、加强产品开发的可延续性、增加客户满意度为目标,将CMM 的核心思想运用到软件工程中。在具体的应用过程中针对软件开发各阶段所要完成的任务对CMM 的KPA做裁减并建立一种模型,以加强软件工程过程的改进。该模型中的KPA分别是:需求管理、软件项目计划、软件项目跟踪和监督、软件质量保证、软件配置管理、组问协调及培训管理。我们根据这六个KPA来说明具体实施方案。
      (一)需求管理过程改进
      需求管理是在用户和软件项目之间建立对顾客需求的共同理解,实施有效的需求管理是项目成功的关键。CMM 将需求管理作为一个活跃的实体贯穿于整个开发过程中,需求管理渗透在CMM 的不同层次和KPA中。需求管理是软件工程非常关键的一个步骤,需求分析的完整与否直接影响到软件过程的改进,甚至导致软件开发的失败。因此,面向用户的需求一定要和用户人员多沟通、交流,最终通过双方有关部门人员的论证以文档资料的形式确定下来。任何一个需求分析因客观原因可能存在着需求更改的现象,对于这种情况一定要注意需求更改的可控性,要及时判断需求更改所影响的范围,通过定义一个规范的流程来处理需求变更,要建立需求的基准版本和更改版本控制文档资料,一方面使受需求变化影响的产品与需求变更一致,另一方面使需求变动影响到的产品尽可能少,最终目的是需求在发生变更的情况下项目仍然能取得成功。
      (二)软件项目计划过程改进
      软件项目策划是根据目标对软件过程实施活动的安排,是实施CMM 的核心并纳入基线管理。其关键活动有软件生存周期模型、工作产品、工作分解结构、项目估算、风险分析、项目计划。
      在软件工程的实施过程必须做到:
      (1)制定软件项目计划的标准格式,说明系统的功能、性能、应交付的文档资料;
      (2)明确项目所需的资源、条件约束、所用的开发方法和面临的风险;
      (3)说明项目所需人员的类型、组成结构、数量;
      (4)说明项目的开发进度、应完成的任务及时间、预算支出;
      (5)撰写软件项目计划文档。
      四、结语
      软件工程的实施是一个复杂的过程,软件开发人员以及软件开发组织的管理是重要因素,CMM 是软件工程领域一个比较完善的标准,在CMM 的基础上建立一个更为适用的CMM 裁剪模型是我们的目的。由于裁剪的基本原则是维持软件能力成熟度模型的结构和要求,并未从根本上改变模型本身,所以有助于软件开发过程的规范化、标准化,可以提高软件开发效率,降低软件开发失败的风险和错误发生率,提高软件产品质量,缩短整体开发时间,减少开发成本,从而保证用户能得到满意的软件产品。

    推荐访问:软件工程 浅议 CMM

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章