《基于CMMI的软件工程及实训指导》第一章 软件工程基础

课程定位:

  软件工程是从管理和技术两方面来研究如何让采用工程的概念、原理和技术方法并加以综合,指导开发人员更好地开发和维护计算机软件。

本章重点:

  • 软件工程基本原理;
  • 质量管理体系ISO9001;
  • 项目管理知识体系PMBOK;
  • 软件能力成熟度模型集成CMMI;

1.1软件工程基本原理

1.1.1Boehm软件工程7原理:(缺点:可操作性差,缺少评价标准,缺少相互之间的可比性)

1.按照软件生命周期的阶段划分制定计划,严格依据计划进行管理

             6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划

             不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维运工作,绝不能受客户或上级人员的影响而擅自背离或随意修改预定计划。

2.坚持进行阶段评审

             缺陷发现与改正越晚,所需付出的代价越高。在每个阶段都应进行严格的评审,以便尽早发现在软件开发过程中所犯的错误。

3.实行严格的产品控制

              基准配置管理、定义基线、管理和控制基线

4.采用现代程序设计技术

              提高软件开发与维护的效率

5.结果能清楚地审查

              根据软件开发项目的目标及完成期限,规定开发机构的责任和产品标准,使得所得到的结果能够清楚地加以审查。

6.开发小组的人员应该少而精

7.承认不断改进软件工程实践的必要性

1.1.2当今软件公司采用的模型

                      

图中可以看出:1.三者不存在互相包含的关系,但有很强的关联性。

                         2.三者不存在互相替代的关系,但侧重点各有不同。

                         3.PM/PMOK和ISO9001并不专门针对软件公司,但可用于软件公司,特别是提供包含软件产品、集成工程和服务的软件公司。

                         4.CMM、CMMI专用于软件公司或软件项目、系统集成公司或系统集成项目。

1.2质量管理体系ISO9001

1.2.1 ISO9001简介

             ISO9001是迄今为止世界上最成熟的质量框架。ISO9001不仅为质量管理体系,也为总体管理体系设立了标准。他帮助各类组织通过客户满意度的改进、员工     积极性的提升及持续改进来获得成功。ISO9001规定了公司质量管理体系的基本要求,它是同用的,适用于所有行业或经济领域,不论其提供何种类别的产品,但ISO9001本身并不规定产品质量的要求。

1.2.2 质量管理原则

   1.以顾客为中心。

   2.高层管理者推动。

   3.全员参与。

   4.采用过程方法。

   5.系统的管理。

   6.持续改进。

   7.基于事实的决策。

    8.互利的供方关系。

1.2.3建立和实施质量管理体系的步骤

   1.确定顾客的需求和期望。

   2.建立公司的质量方针和质量目标。

   3.确定实现质量目标所必需的过程和职责。

   4.针对每个过程实现质量目标的有效性确定测量方法。

   5.通过测量,确定每个过程的现行有效性。

   6.确定防止不合格项并消除产生原因的措施。

   7.寻找提高过程有效性的效率和机会。

   8.确定并优先考虑那些能提供最佳结果的改进。

   9.为实施已确定的改进,对战略、过程和资源进行策划。

   10.实施改进计划。

   11.监控改进效果。

   12.对照预期效果,评价实际结果。

   13.评审改活动,确定必要的纠正、跟踪措施。

1.2.4过程方法

              任何"得到输入并将其转化为输出"的序列活动均可是为过程。为组织有效运行,必须识别和管理许多内部组织相互联系的过程。通常一个过程的输出将直接形成下一个过程的输入。系统识别和管理组织内的所使用的过程,特别是这些过程之间的相互作用,称为“过程方法”。ISO9001标准鼓励采用过程方法建立和实施质量管理体系。

1.2.5过程关系图

                                                

1.3项目管理知识体系PMBOK

1.3.1 PMBOPK简介

     PMBOK是Project Management Body Of Knowledge 的缩写,即项目管理知识体系,是美国项目管理协会对项目管理所需知识技能和工具进行的概括性描述。
1.3.2 项目的基本属性

     项目,是在限定时间内、利用有限资源、为完成有一定质量要求的目标而进行的一系列有序活动的一次性组合。
  1.整体性:是一系列活动的有序组合;

   2.唯一性:每个项目均是具体的特殊的,没有两个完全相同的项目;

   3.一次性:目标一旦完成,项目即告结束;

   4.目标性:一个项目有确定的成果性目标;

   5.多约束性:在多种约束条件下完成项目的成果性目标,约束包括时间、资源、质量及其他非技术性约束;

   6.依赖性:项目活动的进行涉及多个方面的因素,有对内部各级各部门的依赖,有对用户条件的依赖,有对标准的依赖和对各类变更的依赖等等;

   7.冲突性:项目内部会有多种冲突,需要沟通,协调和培训;

   8.周期性:基本生命周期属性,经历大体相同的阶段。

1.3.2 项目参数

   用于刻画一个项目的主要参数有:范围、进度、资源、成本和质量。
1.3.3 项目生命周期
  项目生命周期划分为4个阶段:定义、策划、实施、收尾。

                                              项目生命周期与软件生命周期表

项目生命周期 软件生命周期
项目定义 立项管理,需求开发及管理
项目计划 项目计划
项目实施 系统设计,编码,测试
项目收尾 发布,提交,运行维护,技术支持和产品退役

1.3.4 项目管理基本过程

       项目管理基本过程共五个:启功过程、策划过程、执行过程、控制过程和结束过程。

1.3.5 项目管理基本职能

    项目管理基本职能有9个,分别为:项目整体管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理。

                                       

1.3.6项目管理成熟度模型

      CMM发布后,有人根据PMBOK和CMM,进一步提出了一套项目管理成熟度模型,简称PMMM。PMMM V5.0标准文本与CMM非常相似,也分成5级(分别是:初始级,可重复级,已定义级,受管理级,优化级)。

1.4软件能力成熟度模型集成CMMI

1.4.1 CMMI介绍

         软件能力成熟度模型集成的英文全名是Capability Maturity Model Integration,缩写为CMMI。目的是为组织过程和提高管理产品开发、发布和维护能力提供保障帮助组织客观评价自身能力成熟度和过程域能力,为过程改进建立优先级以及执行过程改进。

1.4.2 CMMI和过程改进         

           软件过程改进是一个持续的、全员参与的过程。CMMI实施或软件过程改进采用的方法称为IDEAL模式,分5步:启动、诊断、建立、行动和推进。                            

                                                                                     

1.4.3 CMMI结构框架

         在CMMI模型中,最基本的概念是“过程域”(即PA),每个PA分别表示了整个过程改进活动中应侧重关注的或改进的某个方面的问题。模型的全部描述就是按过程域作为基本构件而展开的,针对每个过程域分别规定了应达到什么目标即了达到这些目标应当做哪些“实践”,但模型并不规定这些模型由谁做、如何做,等等。在V1.3版本中,共计22个过程域。
                                                           

      22个过程域并非各自完全独立,而是互有联系。

                                                         

                                                         

 1.4.4 CMMI的阶梯表示

         在阶梯式表示法中,CMMI所包含的22个过程域,按照成熟度的概念分成4个组。

                        

                    

     成熟度等级为机构的过程改进提供了一种阶梯式的上升顺序。按照这个顺序实施过程改进,不需要同时处理可能涉及的所有过程,而是把过程改进的注意力集中于当前本机构最需要改进的一组过程域上。在以上几个成熟度级别中,每个成熟度等级为提升到更高一级奠定了基础。

原文地址:https://www.cnblogs.com/Exin/p/13617754.html