软件项目管理实用教程(非官方答案,存在错误)第一章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)根据下表的活动历时和活动关系画出前导图和箭线图,指出关键活动及关键路径。活动活动历时前序活动A7B3C6AD3AE3DFF2BG3CH2GE前导图:箭线图:(2)作为项目经理,你需要给一个软件项目做进度计划,经过任务分解后得到任务A、B、C、D、E、F、G,下图是这个项目的PDM网络图。通过历时估计已经算出每个任务的工期,现已标识在PDM网络图上。假设