软件项目管理-进度计划 质量保证 CMM
本文由发表于6年前 | 软件开发与管理 | 暂无评论 |  被围观 7,945 views+

1、项目管理的目的是什么?软件项目管理的主要内容是什么?

目的:通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程

内容:

(1) 人员的管理与组织
(2) 软件度量
(3) 软件项目计划
(4) 风险管理
(5) 软件质量保证
(6) 软件过程能力评估
(7) 软件配置管理
2、软件规模估算的两种典型方法是什么?含义分别是什么?

代码行技术:这种方法依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数

每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),分别算出这3种规模的平均值a*,b*,m*和之后,再用下式计算程序规模的估计值:L=(a*+4m*+b*)/ 6

功能点技术:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模

3、根据什么、如何确定软件项目组的最佳规模,为什么存在项目组的最佳规模?

对于某一个组员来说,他与其他组员通信的路径数在1~(P-1)的范围内变化。如果不与任何人通信时个人生产率为L,而且每条通信路径导致生产率减少l,则组员个人平均生产率为:Lr=L-l(P-1)r

其中,r是对通信路径数的度量,0<r≤1(假设至少有一名组员需要与一个以上的其他组员通信,因此r>0)。

对于一个规模为P的项目组,从(13.5)式导出项目组的总生产率为:Ltot=P(L-l(P-1)r)

对于给定的一组L、l和r的值,总生产率Ltot是项目组规模P的函数。随着P值增加,Ltot将从0增大到某个最大值,然后再下降。因此,存在一个最佳的项目组规模Popt,这个规模的项目组其总生产率最高。

4、以工程网络图为工具,如何估算工程进度(工程网络图如何画)?

 

5、什么是软件质量?它主要包括哪三方面的内容?

软件质量就是“软件与明确地和隐含地定义的需求向一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品但都应该具有的隐含特征相一致的程度。


它包括三方面含义:

(1)软件需求是度量软件质量的基础,与需求不一致就是质量部高;
(2)指定的开发标准定义了一组指导软件开发的准则,如果没有遵守这些准则,肯定会导致软件质量不高;
(3)通常,有一组没有显式描述的隐含需求(例如,软件应该是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的;
6、什么是软件配置项、什么是软件配置(包含的内容)、什么是基线(在什么时候产生)?

软件配置项:在软件过程中产生的程序、数据、文档
软件配置项包含内容:

1、计算机程序(源代码和可执行程序);
2、描述计算机程序的文档(供技术人员或用户使用);
3、数据(程序内包含的或在程序外的)。

基线:是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化。IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。

7、软件配置管理的工作(任务)包括哪几方面?

主要任务是控制变化,同时也负责各个软件配置项和软件各种版本的标识、软件配置审计以及软件配置发生的任何变化的报告。

软件配置管理主要有5项任务:标识、版本控制、变化控制、配置审计和报告五个任务。

8、什么是CMM,它的基本思想是什么?

CMM是指能力成熟度模型,是用于评价软件机构的软件过程能力成熟度的模型。

CMM(能力成熟度模型)的基本思想是:由于问题是由人们管理软件过程的方法不当引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量。CMM有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将开发出质量更好的软件,使更多的软件项目免受时间延误和费用超支之苦。

9、CMM的两个主要应用分别是什么?

软件过程评估和软件过程改进

10、CMM有哪5个等级,其基本含义分别是什么?

1初始级:处于1级成熟度的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测;

2、可重复级:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎现实的计划;

3、已定义级:管理活动和工程活动都是稳定的,软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性,这种能力是基于在软件中对已定义的过程模型的活动、人员和职责都有共同的理解;

4、已管理级:软件过程是可度量的,软件过程在可度量的范围内运行。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋,在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的;

5、优化级:软件过程是可优化的。软件机构能够持续不断地改进其过程能力,既对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。

题目1、软件质量保证的三个措施及其具体内容。
1、基于非执行的测试(也称为复审或评审),主要用来唯在编码之前各阶段产生的文档的质量;
2、基于执行的测试(即以前读过的软件测试),需要在程序编写出来之后进行,它是保证软件质量的最后一道防线;
3、程序正确性证明,使用数学方法严格验证程序是否与对它的说明完全一致。

题目2、软件配置管理的任务。

标识、版本控制、变化控制、配置审计和报告五个任务。

题目3、软件开发小组人员如何确定,人员个数怎么确定?

据软件规模估算出完成项目所需的工作量,确定开发人员的个数,并合理地组织项目组结构。

题目4、软件配置的内容、基线。

软件配置项:1、计算机程序(源代码和可执行程序);2、描述计算机程序的文档(供技术人员或用户使用);3、数据(程序内包含的或在程序外的)。

基线:是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化。IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。

题目5、什么样的配置才能称得上是基线?

通过了正式复审的软件配置。

题目6、工程网络的进度

题目7、估算软件规模的方法有哪些?P

1、代码行技术L=( ,a为最小规模的平均值,b为最大规模的平均分,m为可能的规模平均值;2、功能点技术。

题目8、CMM的基本思想是什么?

CMM(能力成熟度模型)的基本思想是:由于问题是由人们管理软件过程的方法不当引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量。CMM有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将开发出质量更好的软件,使更多的软件项目免受时间延误和费用超支之苦。

题目9、CMM的五个等级。

1、初始级:处于1级成熟度的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测;
2、可重复级:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎现实的计划;
3、已定义级:管理活动和工程活动都是稳定的,软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性,这种能力是基于在软件中对已定义的过程模型的活动、人员和职责都有共同的理解;
4、已管理级:软件过程是可度量的,软件过程在可度量的范围内运行。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋,在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的;
5、优化级:软件过程是可优化的。软件机构能够持续不断地改进其过程能力,既对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。

题目10、下面叙述对一个计算机辅助设计(CAD)软件的需求:
该CAD软件接受由工程师提供的二维或三维几何图形数据。工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。几何图形数据及其他支持信息都保存在一个CAD数据库中。开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不向的图形设备上。应该适当地设计软件,以便与外部设备交互并控制它们。所用的外部设备包括鼠标、数字化扫描仪和激光打印机。
要求:
(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能;
(2)用代码行技术估算每个子功能的规模;
(3)用功能点技术估算每个子功能的规模;
(4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本;
(5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本。

(1)习题中仅对需求做了粗略描述,每项需求都应该进一步扩展,以提供细节需求和定量约束。例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。

经过对需求的进一步精化,分解出软件的下述7个主要的子功能:

•用户界面及控制机制;
•二维几何图形分析;
•三维几何图形分析;
•数据库管理;
•计算机图形显示机制;
•外部设备控制;
•设计分析模块。

(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:乐观值(即最小规模),悲观值(即最大规模)和可能值(即最可能规模)。然后用式(10.1)所示的加权平均法计算每个子功能的规模,结果示于表l0.4。

 

(3)使用功能点技术估算软件规模时,对软件的分解是基于信息域特性而不是基于软件功能。表l0.5给出了对5个信息域特性的估计值。为了计算未调整的功能点数,假设每个信息域特性的复杂度都是平均级别的。

 

接下来估计14个技术复杂性因素的值,并且计算Dl的值,表l0.6列出了得到的结果。

 

然后用下式计算技术复杂性因子:

TCF = 0.654 – 0.01×DI = 1.14

最后计算功能点数:

FP = UFP×TCF = 318×1.14 = 363

(4)用代码行技术估算,开发本系统的工作量为:

E==33200/620≈54(人月)

开发本系统的成本为:

8000×54 = 432000(元)

(5)用功能点技术估算,开发本系统的工作量为:

E = 363/6.5≈56(人月)

开发本系统的成本为:

8000×56 = 448000(元)

题目11、假设你被指定为项目负责人,你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,只不过规模更大且更复杂一些。客户已经写出了完整的需求文档。你将选用哪种项目组结构?为什么?你打算采用哪种软件过程模型?为什么?

由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。

针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发本系统。

题目12、CMM的基本思想是什么?为什么要把能力成熟度划分成5个等级?

CMM的基本思想是,由于软件危机是因我们对软件过程管理不善而引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量,提高软件生产率和软件质量的关键,是改进对软件过程的管理。能力成熟度模型有助于软件开发机构建立一个有规律的、成熟的软件过程。

对软件过程的改进不可能一蹴而就,只能是在完成一个又一个小的改进步骤基础上不断进行的渐进过程。因此,CMM把软件过程从无序到有序的进化过程分成5个阶段,并把这些阶段排序,形成5个逐层提高的等级。这5个成熟度等级定义了一个有序的尺度,用以测量软件机构的软件过程成熟度和评价其软件过程能力,这些等级还能帮助软件机构识别出其现有的软件过程的缺陷,指出应该做哪些改进,并且帮助他们把应做的改进工作排出优先次序。成熟度等级是妥善定义的向成熟软件机构前进途中的平台,每个成熟度等级都为软件过程的继续改进提供了一个台阶。

题目13、假设有一项工程任务被分解成了a,b,…,i等9个子任务,表l0.3给出了完成每个子任务所需要的时间以及子任务彼此之间的依赖关系。请用工程网络描述表l0.3中给出的信息,并且计算每个事件的最早时刻和最迟时刻。

根据表l0.3中给出的信息,可以画出如上图所示的工程网络。由于子任务a和b都不依赖于其他子任务,所以都可以从时刻零开始。根据最早时刻和最迟时刻的算法,可以算出每个事件的最早时刻和最迟时刻,算出的值已经标在工程网络中。为了便于对照,在图中标注的完成任务时间后面的括弧中写出了该任务的标识。

除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/software-project-management-quality-assurance-cmm-schedule.html
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
文章评论
    没有评论
给我留言

有人回复时邮件通知我
软件开发与管理的相关文章
随机文章 本月热门 热评
1 IE6下常见的几个CSS兼容问题 2011/4/10
2 The Main Function of Activity and its Basic Usage 2011/7/12
3 8251A的编程约定 2011/4/24
4 可行性研究-数据流图 数据字典 2011/7/1
5 JSF笔记 – MVC和JSF的介绍和下载使用 2011/12/1
6 Matters Neeeding Attention When Test The App Push Service 2014/10/10
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.