软件项目管理实用教程整理的答案.docx
《软件项目管理实用教程整理的答案.docx》由会员分享,可在线阅读,更多相关《软件项目管理实用教程整理的答案.docx(26页珍藏版)》请在冰豆网上搜索。
![软件项目管理实用教程整理的答案.docx](https://file1.bdocx.com/fileroot1/2023-5/17/3a2173c3-5ae9-4eab-8d63-9b406cda2d4e/3a2173c3-5ae9-4eab-8d63-9b406cda2d4e1.gif)
软件项目管理实用教程整理的答案
软件项目管理实用教程(非官答案,存在错误)
第一章
1.名词解释
(1)项目
项目是未完成某项独特的产品、服务或成果等特定目标所作的一次性任务。
(2)项目群
项目群是为了实现某一战略目标而以协同式管理的一组项目。
子项目
子项目是项目的一个阶段或一个部分,可被相对独立地进行管理,也可以外包给外部单位或者组织的其他职能单位。
(3)软件项目管理
软件项目管理是项目管理中的一个特殊领域,它是以软件项目为对象的系统管理式,它运用相关的知识、技术和工具,对软件项目期中的各阶段工作进行计划、组织、指导和控制,以实现项目目标。
2.问答题
(1)下列哪些活动不是项目
探索火星生命迹象
向部门经理进行月工作汇报
开发新版的操作系统
每天的卫生保洁
组织一次校园歌唱比赛
一次集体婚礼
(2)软件产品具有哪些特点?
软件项目有哪些特点?
软件的特点:
复杂性,不一致性,可变性,不可见性。
软件项目的特点:
知识密集型,技术含量高;涉及多个专业领域,多种技术综合应用;项目围和目标的灵活性;风险大,收益大;客户化程度高;过程管理的重要性。
(3)为什么说学习软件项目管理是非常重要的?
1.软件项目管理对于软件项目的成功是至关重要的。
因为软件项目涉及大量的人员活动,有进度和资金限制,并会遇到各种变化、风险和矛盾,必须有良好的管理才能成功。
2.对高软件开发人员的专业素质是必不可少的。
适应团队开发,理解项目计划并胜任管理工作。
理解软件项目在进度、成本、质量、人员等面的计划和相应的措施,从而更有效地工作并为企业创造价值。
(4)你认为在一个软件项目中,为保证软件项目的成功,主要应注意哪些面的管理?
软件项目合同管理,软件项目进度管理,软件项目成本管理,软件项目风险管理,软件项目人员管理,软件质量管理,软件配置管理
(5)软件项目的生命期通常可分为哪几个阶段?
各阶段需完成哪些任务?
1.项目启动阶段发现项目机会,识别客户需求,在此基础上定义项目目标和初始围;落实项目的初步财务和人力资源,选定项目经理并授权开始项目。
2.项目规划阶段为实现目标而定制行动案,针对项目的围、进度、成本、质量、风险、人力资源等面进行规划,形成项目管理计划文件。
3.项目执行阶段管理人员要指导项目组成员完成项目管理计划中所确定的工作,从而满足客户的需求。
在该阶段的末尾通常需要对项目产品或服务进行验收。
在这一阶段还要不断监控项目的执行过程,测量项目的实际进程和质量指标是否与计划一致。
如果测量结果表明出现偏差,要立即采取纠正措施,以使项目恢复到正常轨道,或者更正计划的不合理之处。
4.项目收尾阶段进行项目移交和总结工作,确认所有的项目可交付物都已移交给客户,所有的费用都已清算。
对项目承担者来说,要对项目进行总结,得到对本组织的改进有所收益的经验教训。
项目组需要调查客户的满意度,收集客户和项目团队的建议,从而能够改进以后的项目性能。
(6)软件项目管理为什么要坚持具体问题具体分析的原则?
软件项目管理的知识体系与数学、物理等学科不同,它不存在“公理系统”,其理论体系不是由公式和定律组成,而是有经验性的原则和法组成,其解决问题的主要式也不是套用定律进行推理,而是针对具体项目情况对原则和法灵活运用。
不存在任情况都适用的法,要坚持具体问题具体分析。
(7)软件项目管理的系统法具有哪些特征?
对各组成部分之间的关系进行评价
将各组成部分集成和匹配到一个统一的整体中
将所有活动整合到一个有意义的系统化的动态过程中
寻找解决问题的最佳案和策略
保证解决问题时的客观性
第二章
问答题
1.一般从哪几个面评价一个软件项目的可行性?
(1)明确项目规模和目标。
(2)研究正在运行的系统。
(3)建立新系统的逻辑模型。
(4)导出和评价各种解决的案。
(5)推荐可行案
(6)编写可行性研究报告
2.在软件项目中使用开源软件有哪些好处?
应注意哪些面的风险?
好处:
(1)节省成本,提高开发效率。
(2)开放和自由(3)公开透明(4)提供良好的学习平台
风险:
(1)开源软件存在质量风险
(2)开源软件不提供技术支持和服务承诺,可能会给开源软件的使用和维护造成困难(3)使用开源软件存在法律风险
3.合同项目的投标书一般包含哪些面的容?
商务标部分:
(1)投标函和法定代表人授权委托书
(2)投标报价详细预算(3)投标资质证明材料
技术标部分:
(1)系统需求分析
(2)系统解决案(3)项目进度安排(4)培训、售后服务和技术支持(5)项目实施风险分析(6)项目验收工作计划
4.项目合同通常包含哪些面的容?
(1)权利与义务
(2)供应的商品与服务(3)技术成果的归属(4)项目的质量要求(5)项目的各种期限(6)保密约定(7)验收标准和法(8)价格和付款法(9)违约处理法(10)解决争议的法(11)客户承诺
5.通用产品项目在产品构思阶段应主要考虑哪些问题?
待开发产品的主要功能;待开发产品的技术案;Make-or-Buy分析;开发计划;市场营销计划。
6.通用产品项目的立项审批过程一般包含哪些步骤?
(1)评审准备
(2)举行评审会议(3)评估(4)评审会议和决议(5)机构领导终审
7.《项目计划》通常要对项目的哪些面进行规划?
(1)项目目标与围
(2)项目的过程模型与技术法(3)人力资源计划(4)软硬件资源计划(5)财务计划(6)进度计划
8.线性、迭代型、敏捷型过程模型分别具有什么特征?
分别适用于什么类型的项目?
线性模型(瀑布模型):
要求在项目初期就明确需求和解决案,制定明确的计划,然后格按照计划执行。
不适合需求频繁交换的项目。
迭代模型:
每个项目阶段(称为迭代)执行一系列重复性的开发活动(分析、设计、编码、测试等),每次迭代结束时,将完成一个或一组可交付成果,用户和其他项目干系人应对这些交付成果进行评估和反馈。
适合:
项目需求不断变化;项目的规模大、复杂性高,需要通过增量交付来得到反馈意见和经验教训,以减小项目的风险。
敏捷型(适应型或变更驱动型):
包含迭代概念,迭代很快,通常2~4迭代一次,而且每次迭代所需的时间和资源大致固定。
强调用户持续参与。
适用:
项目需求快速变化,能够以有利于用户的式把项目可交付成果分解为一系列增量改进。
单选题;
1.以下有关开源软件的述,哪个是错误的?
A.开源软件的代码是公开的,有利于保证安全性。
B.开源软件是免费的,使用开源软件有利于降低成本。
C.开源软件是良好的学习平台。
D.开源软件通常不受著作权保护。
2.投标者只向一些经过筛选合格的供应商发出投标邀请,这种投标式是
A.公开投标
B.非公开投标
C.受限制的招标
D.已商定的投标过程
3.在一个软件项目签署合同或通过立项评审后,负责筹备和启动项目的角色是
A.软件架构师
B.项目经理
C.企业领导
D.用户代表
4.以下哪个不是敏捷型过程模型的特征?
A.迭代很快,通常2~4完成一个迭代。
B.强调用户的持续参与。
C.要求在项目初期就获得完整而明确的用户需求。
D.每次迭代所需的时间和资源是大致固定的。
名词解释
1.净利润
整个生命期中总成本和总收益之差。
2.投资回报率
比较净收益与投资额,从而能够用来衡量投资效益的大小。
投资回报率=(平均年利润/总投资)*100%
3.软件外包
企业为了专注核心竞争力业务和降低软件项目成本,将软件项目的全部或部分工作承包给提供外包服务的企业完成。
4.Make-or-Buy分析
指确定产品中的哪些部分应当自行研发,哪些部分需要采购或外包开发。
第三章
问答题
(1)围管理在项目中的作用是什么?
保证项目只做必须做的事,避免围蔓延和做无用功,同时也避免不清晰的需求所导致的重的系统缺陷。
(2)软件项目的需求一般包括哪些类别?
1.界面需求2.功能需求3.性能需求4.质量需求5.资源使用需求6.软件成本消耗与开发进度需求7.异常处理要求
(3)获取需求的常用法有哪些?
1.访谈2.讨论会3.观察用户工作流程4.问卷调查5.快速原型法
(4)软件需求规格说明书一般包括哪些容?
1.功能特征描述2.系统接口描述3.质量特征描述
(5)项目围说明书一般包括哪些容?
1.产品围描述2.验收标准3.可交付成果4.项目的除外责任5.制约因素6.假设条件
(6)创建WBS时所用的类比法具有什么特点?
适用于什么情况?
类比法就是参考类似的已完成的项目的WBS和项目经验,根据当前项目特点做必要的调整,从而得到当前项目的WBS。
适用情况:
有较完整的历史数据支持,软件组织经常性在某一行业或产品中重复多个项目,则项目过程的重合度高,容易参考历史数据,适合用类比法。
(7)创建WBS时所用的自底向上归纳法具有什么特点?
适用于什么情况?
自底向上归纳是一个通过对细粒度工作的逐层归纳以得到整个项目WBS的法。
适用情况:
不熟悉的项目,没有历史数据或经验丰富的专家的项目。
判断题
(1)快速原型法使得用户可以体验最终产品,而不是仅限于讨论抽象的需求描述。
√
(2)在软件项目中,产品围就是项目围。
×
(3)在创建WBS时,如果没有项目历史数据,且找不到经验丰富的专家时,适合用类比法。
×
(4)在创建WBS时,项目工作分解得越细越好。
×
(5)围控制要通过变更控制系统和配置管理系统来完成。
√
名词解释
(1)WBS
工作结构分解(WorkBreakdownStructure,WBS)是对项目团队为实现项目目标、创建可交付成果而需实施的全部工作围的层级分解。
(2)围蔓延
未经控制的产品或项目围的扩大(未对时间、成本和资源做相对应调整)被称为围蔓延。
第四章
问答题
(1)软件项目活动之间有哪几种依赖关系,请结合具体的例子说明。
1.强制性依赖关系。
例如只有在编码完成后,才能进行构建和测试。
2.选择性依赖关系。
选择性依赖关系的确定带有主观性。
(2)什么是项目活动的最早和最迟开始时间、最早和最迟结束时间?
什么是项目活动的总浮动时间和自由浮动时间?
最早开始时间(EarlyStart,ES):
指一个活动最早可以开始的时间。
最早结束时间(EarlyFinish,EF):
指一个活动最早可以完成的时间。
最迟开始时间(LateStart,LS):
在不影响项目完工时间的情况下,一项活动最晚必须开始执行的时间。
最迟结束时间(LateFinish,LF):
在不影响项目工期的情况下,该活动最晚必须完成的时间。
总浮动时间(TotalFloat,TF):
一个活动在不影响项目最早完成时间的情况下可以延迟的时间量。
TF=LS-ES或TF=LF-EF
自由浮动时间(FreeFloat,FF):
一个活动在不影响其所有后置活动的最早开始时间的情况下,可以延迟的时间量。
FF=min(TI)。
TI=后置活动的ES-本活动的EF-Lag(滞后)
(3)关键链法在哪些面对关键路径进行了改进?
1.关键路径法是在不考虑任资源限制的情况下,在给定活动持续时间和逻辑关系的条件下,分析项目的关键路径,而关键链法考虑了资源限制对项目活动逻辑关系及关键路径的影响。
2.关键链法引入了缓冲和缓冲管理来应对项目的不确定性。
3.关键链法考虑了人的心理行为因素和工作习惯,因为人是项目实施的主题,是项目最关键的资源。
(4)在制定项目进度计划的过程中,资源优化的目的是什么?
资源优化就是根据资源供需情况,来调整进度计划。
选择题
(1)对某个项目活动的持续时间进行三点估算,的到其最乐观时间为8天,最悲观时间为24天,最可能时间为10天,则该活动的持续时间期望值是(B)。
A.10天B.12天C.14天D.16天
(2)快速跟进是指(A)。
A.采用并行执行任务,加速项目进度
B.用一个任务取代另一个任务
C.如果有可能,减少任务数量
D.减轻项目风险
(3)赶工一个项目时,你应该关注(C)。
A.尽量可能多的活动
B.非关键活动
C.加速执行关键路径上的活动
D.通过成本最低化加速执行活动
分析题
(1)根据下表的活动历时和活动关系画出前导图和箭线图,指出关键活动及关键路径。
活动
活动历时
前序活动
A
7
B
3
C
6
A
D
3
A
E
3
DF
F
2
B
G
3
C
H
2
GE
前导图:
箭线图:
(2)作为项目经理,你需要给一个软件项目做进度计划,经过任务分解后得到任务A、B、C、D、E、F、G,下图是这个项目的PDM网络图。
通过历时估计已经算出每个任务的工期,现已标识在PDM网络图上。
假设项目的最早开工日期是第0天,请计算每个任务的最早开始时间、最迟开始时间、最早结束时间、最迟结束时间,同时确定关键路径,并计算项目工期和活动F的总浮动时间。
第五章
问答题
(1)什么是软件项目的规模、工作量和成本?
它们一般用什么度量单位来度量?
软件项目规模一般是指所开发软件的规模大小,通常可以简单地用软件的代码行数来表示,也可以通过软件功能的多少来衡量。
软件项目工作量是指为了提供软件的功能而必须完成的软件工程任务量,其度量单位为人月、人天、人年等。
软件项目成本时指完成软件项目所付出的代价,即待开发软件项目所需要的资金,通常用货币单位(如美元,人名币等)衡量。
(2)软件项目的成本一般由哪些部分构成?
1.设备、软硬件购置成本2.人工成本(软件开发、系统集成费用)
3.维护成本4.培训费5.业务费、差旅费6.管理及服务费7.其他费用
(3)使用代码行和功能点度量软件规模各有什么优缺点?
代码行:
优点:
用代码行数来表示软件项目的规模简单易行、自然、直观。
缺点:
项目初期很难较为精准地估算出最终系统的代码行数;代码行数通常依赖于程序程序设计语言功能和表达能力,采用不同的开发语言,代码行数不同。
功能点:
优点:
软件系统的功能与实现该软件系统的语言和技术无关,一般项目初期就可获得功能点数目,可以较好的克服代码行的软件项目规模表示法的不足。
缺点:
没有直接涉及算法的复杂度,不适合算法比较复杂的软件项目系统;计算功能点的数据不好采集。
(4)项目成本估算的依据是什么?
工作分解结构、资源需求、资源单价、计划进度和历史信息。
(5)简述项目成本的类比估算法及其缺点。
类比估算就是通过把当前项目与以往一个或多个项目比较来进行成本估算。
缺点:
需要有类似的项目和类似的开发经验。
(6)简述项目成本的自底向上估算法及其特点。
自底向上估算法首先通过对单个工作包或活动的成本进行最具体、细致的估算,然后把这些细节性的成本向上汇总到更高的层次。
(7)什么是成本预算?
它与成本估算有什么关系?
成本预算是一项制定项目成本控制标准的项目管理工作。
成本估算的目的是估计项目的总成本和误差围,而成本预算是将项目的总成本分配到各项工作上。
成本估算的输出结果是成本预算的基础与依据,而成本预算则是将项目批准的成本估算进行分摊。
单选题
(1)以下哪一项不是项目成本类比估算法的特点?
(B)
A.通过把当前项目与以往一个或多个项目比较来进行成本估算。
B.利用历史数据之间的统计关系,通过建立数学模型来进行成本估算。
C.该法成本较低,耗时较少。
D.该法适合在项目详细信息不足时(例如项目初期)使用。
(2)在基本COCOMO模型中,用一个以(A)为自变量的函数来计算软件开发工作量。
A千代码行数B功能点数C对象数D页面数
(3)在(C)模型中,采用了“阶段敏感工作权数”对成本比估算进行调整。
A基本COCOMOB中间COCOMOC详细COCOMOD嵌入式COCOMO
计算题
项目原来预计2012年10月10日完成10万元的工作,但是到该日期时只完成了其中8.5万元的工作,而为了完成这些工作实际花费了9万元。
请用挣值分析法计算在2012年10月10日项目的成本偏差、进度偏差、成本效能指数和进度效能指数各是多少?
BCWS:
预算成本ACWP:
实际成本BCWP:
挣值(已完成工作预算成本)
成本偏差:
CV=BCWP-ACWP=8.5-9=-0.5
进度偏差:
SV=BCWP-BCWS=8.5-10=-1.5
成本效能指数:
CPI=BCWP/ACWP=8.5/9=0.944
进度效能指数:
SPI=BCWP/BCWS=8.5/10=0.85
第六章
问答题
(1)什么是软件质量、质量属性、质量要素?
软件质量就是软件与用户需求相一致的程度,它是软件的一个综合特征,用一系列质量属性来表示。
对于一个具体的软件项目,哪些用户最关心的,对软件整体质量影响最大的质量属性称为质量要素。
(2)全面软件质量管理包括哪些部分?
各部分作用是什么?
全面软件质量管理采取一系列的措施来保证软件质量:
通过制定质量管理计划来规划软件项目中的各种质量管理活动,通过技术评审和软件测试发现软件缺陷,通过过程检查保证软件过程和产品符合既定的规,通过缺陷跟踪保证发现的缺陷和问题被正确记录、跟踪和处理,通过软件过程改进来提高软件组织整体的技术水平和规化水平。
(3)什么是缺陷跟踪?
简述一个典型的缺陷跟踪流程。
缺陷跟踪是值从缺陷被发现开始到被改正为止的整个跟踪流程。
(4)请解释软件过程和软件过程改进的含义。
软件过程是指开发和维护软件产品的活动、技术、实践的集合。
软件过程改进是指根据实践中对软件过程的适用情况,对软件过程中的偏差和不足之处进行不断优化。
(5)CMMI的过程成熟度分为哪几个等级?
每个等级有哪些特征?
初始级(CMMI1):
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。
已管理级(CMMI2):
建立了基本的项目管理过程和跟踪费用、进度和软件的功能特性。
已定义级(CMMI3):
已将软件管理和工程两面的过程文档化、标准化,并综合成该组织的标准软件过程。
量化管理级(CMMI4):
分析软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。
优化管理级(CMMI5):
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
(6)PSP将个人能力分为哪几个等级?
每个等级有哪些特征?
个人过程基线:
PSP0是过程基线,目的是为了在个人的工作中引入表格和脚本,以便工程师按照测量和报告格式记录软件过程。
个人计划过程:
PSP1是个人计划过程,在PSP0的基础上增加了计划步骤。
个人质量管理:
PSP2强调提高质量,引入了缺陷管理,包含了代码审查和设计审查。
循环质量过程:
PSP3将个人软件过程的应用拓展到大规模程序开发当中。
(7)软件组织实施TSP需要哪些条件?
需要有高层主管和各级经理的支持,已取得必要的资源。
整个软件开发小组至少在CMMI的第二级。
全体软件开发人员必须经过PSP的培训,并有按TSP工作的愿望和热情。
开发小组成员应在2~20个人之间。
(8)请解释缺陷密度、平均失效时间、平均修复时间的含义。
缺陷密度指单位规模的软件所包含的缺陷的数量。
平均失效时间指软件在失效前正常工作的平均统计时间,它常用来度量软件的可靠性。
平均修复时间指软件失效后,使其恢复正常工作所需要的平均统计时间。
用来度量可维护性。
(9)软件缺陷的原因分析过程包含哪些步骤?
简述每个步骤所执行的任务。
软件缺陷原因分析过程一般包括选择缺陷数据、分析缺陷数据、识别公共原因并提出改进措施。
选择题
1.软件在异常情况下能够正常运行的能力称为软件的(B)。
A正确性B健壮性C性能D可靠性
2.与其他软件系统相互交换信息的能力称为软件的(C)。
A易用性B可扩展性C兼容性D缺陷跟踪
3.(A)是通过执行软件来发现缺陷。
A软件测试B技术评审C过程检查D缺陷跟踪
4.配置管理是CMMI的(A)上的关键过程域。
A已管理级B已定义级C量化管理级D优化管理级
判断题
(1)软件项目质量管理的目的就是使所有的质量属性都达到最好(×)
(2)技术评审可以在软件项目的任阶段执行,一次可以尽早发现和消除缺陷(√)
(3)工作过程和工作结果通过了过程检查,就能保证软件质量。
(×)
(4)CMMI既说明了软件过程改进应“做什么”,也说明了“怎么做”。
(×)
(5)软件组织要达到CMMI的某个成熟度级别,必须满足该级别及其以下级别上所有关键过程域的要求。
(√)
第七章
单项选择题
(1)软件配置管理最核心的容是(A)
A版本控制B配置审核C集成管理D配置状态统计
(2)关于软件产品的版本编号法,以下描述错误的是(C)
A.数字顺序型版本编号由若干数字组成,数字之间用“.”分隔。
B.属性版本编号可以包含更多的有关软件产品的信息。
C.在数字顺序型版本编号中,当某一级版本号改变时,其下一级版本号保持不变。
D.属性版本编号适合在软件组织部使用。
(3)关于基线配置项,正确的描述是(B)
A.是不可以变化的配置项
B.基线是经过正式审批的配置项,是后续工作的基础
C.对大部分基线的变更,不需要执行格的变更控制流程
D.基线发生变更时,必须修改需求
(4)下列关于配置控制委员会(CCB)职责的描述,错误的是(C)
A对变更进行评估B拒接或批准变更C执行缺陷跟踪D审批软件项目配置管理计划
问答题
(1)阐述配置库的检入检出机制及其作用。
配置库的检入检出机制是版本控制的基线。
作用是防止文件修改相互冲突和覆盖的问题。
(2)版本控制系统是怎样防止不同的人对同一文件所作的修改相互覆盖的?
配置库的检入检出机制。
(3)什么是分支?
为什么要使用分支?
分支可以形象地看作是配置项演化图中的一条独立路径。
作用1.开发者需要创建软件的不同用途版本。
2.在软件开发过程中,有时需要创建一个相对独立的开发环境。
(4)什么是系统集成?
系统集成的一般步骤有哪些?
系统集成就是把软件产品的各个组成部分组合在一起,使产品作为一个整体是可以运行的。
1.确保开发人员都提交了本次将要集成的代码。
2.冻结或标识将要集成的源代码。
3.取出要集成的源代码。
4.编译、和打开安装包。
5.安装并粗略测试。
6.标志和存储集成结果。
7.通知相关人员本次集成完成。
(5)什么是持续集成?
持续集成能带来什么好处?
持续集成是指以很高的频率进行系统集成工作。
好处是能尽快地发现和纠正配置库里源代码的问题。
(6)在开发人员更新自己的工作空间时,有直接工作流和间接工作流两种式,请解释它们的含义。
间接工作流:
不更新到配置库中的最新容,而是更新到最近一次集成产生的基线。
直接工作流:
更新到配置库中的最新容。
(7)在哪些情况下使用多层集成?
大型项目开发人员众多,源代码也庞大复杂。
(8)简述格的变更管理流程。
(9)什么是配置审计?
它有什么作用?
配置审计的目的是验证配置项符合特定的标准或要求。
通常在软件开发每个阶段结束后,或产品发行之前,都要进行配置审计,它是正时技术