第0章
1. 项目的特征有哪些?
答:有明确的目标
?项目之间的活动具有相关性?
限定的周期?有独特性?资源成本的约束性?项目的不确定性
2. 项目与日常运作有什么不同?
答:项目是一次性的,日常运作是重复进行的
?项目是以目标为导向的,日常运作是通过效率和有效性体现的
?项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理?项目存在大量的变更管理,而日常运作则基本保持连贯性的。
3. 软件项目有什么特殊性?
答:为逻辑实体而非物理实体,具有抽象性?没有明显的制造过程,也不存在重复生产?软件项目的开发受到计算机硬件的制约?不可能完全摆脱手工开发模式
?软件本身是相当复杂的,涉及因素众多,需求多变?软件项目投入大、成本高
4. 软件项目管理有什么特征?
答:软件是纯知识产品,其开发进度和质量很难估计和度量,生产率也难以预测和保证。?项目周期长,复杂度高,变数多。
?软件项目提供的是一种服务,需要满足一群人的期望,即需要满足一群想法和利益各不相同的人的需求。
5. PMBOK包括哪9个知识领域?
答:集成管理?范围管理?时间管理?成本管理?人力资源管理? 沟通管理?风险管理?质量管理?采购管理 第1章
6. 常用的生存期模型有哪些?各适用于什么项目?
答:瀑布模型:分析、设计、编码、测试和维护严格按步骤进行,适合于项目开始前有明确需求和明确的解决方案的项目,如公司的财务系统、库存管理系统、短期项目等。
V模型:是瀑布模型的变种,强调测试的重要性,将开发活动与测试活动紧密联系在一起。适合于对系统的性能、安全有严格要求的项目。
?原型模型:适合于在项目开始前对项目需求不明确,为了减少项目需求的不确定性而先开发项目的基本原型系统以验证可行性,然后逐步补充完善。
?增量模型:由瀑布模型演变而来,假设需求可分阶段,分成一系列增量产品分别开发。适合于项目开始明确了需求的大部分,但对市场和用户把握不是很准。对于有庞大和复杂功能的系统也可考虑增量开发。?螺旋式模型:该模型在四个象限上分别表达了计划制定、风险分析、项目实施、客户评估四个方面的活动,通过一系列瀑布模型的不断循环来逐步规避风险。适合于不确定因素较多、风险较大的项目。
?
渐近式阶段模型:综合了增量模型和螺旋式模型的一个实用模型,渐进式前进,阶段式提交。适合各种规模的项目,尤其是大中型项目,以及希望随时看到未来的项目。
7. 如何为项目选择合适的生成期模型?
答:熟悉各种生存期模型 ? 评审、分析项目的特性 ? 选择适合项目的生存期模型
标识生存期模型与项目不一致地方,并进行裁减 第2章
8. 何谓需求获取?它包括哪些主要活动?
答:需求获取指通过与用户的交流、对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。? 需求获取的主要活动包括:
-了解客户方的所有用户类型及潜在的类型
-对用户进行访谈和调研,包括会议讨论、邮件提问、自行搜集等各种形式-对收集到的用户需求作进一步分析整理
-将调研得到的用户需求以适当的形式呈交给用户和开发方相关人员
9. 需求分析的主要内容有哪些?如何处理不明确需求?
答:需求分析的主要内容有:
-以图形表示的方式描述系统的整体结构,包括边界和接口等
-通过原型、页面流或其它方式向用户提供可视化界面,以便用户对需求作出自己的评价-以模型描述系统的功能项、数据实体、外部实体以及实体间的关系、状态转换等 ?
不明确需求的处理方法有:
-让用户参与开发,以便及时对不明需求作出修正-开发用户界面原型,以便用户更好地确认需求-召开需求讨论会议,汇总和确认需求
-强化需求分析和评审,让用户参与需求评审并签字认可
10. 如何做好需求变更管理?
答:建立需求基线?确定需求变更控制过程?成立变更控制委员会(SCCB)?进行需求变更影响分析 ?跟踪所有受需求变更影响的工作产品;
建立需求基准版本和需求控制版本文档?维护需求变更的历史记录?跟踪每项需求的状态?衡量需求的稳定性。
11. 何谓任务分解?为什么要进行任务分解?
答:任务分解就是将一个项目分解为更多的工作细目或者子项目,使项目变得更小、更易管理、更易操作。它是一个化繁为简,分而治之的过程。? 任务分解的作用:
-提供了项目范围基线,是范围变更的重要输入-为评估和分配任务提供具体的工作包-进行估算和编制项目进度的基础
-对整个项目成功的集成和控制起到非常重要的作用
12. 假设你是某图书馆借阅系统的项目经理,请参照教材“校务通系统”项目计划案例进行需求分
析和任务分解,提交需求规格说明书和任务分解WBS图表或清单。 答: 第3章
13. 简述软件项目进度(时间)管理的主要任务。
答:活动定义?活动排序?活动历时估计?任务资源估计?制定进度计划?进度控制(项目跟踪)
14. 项目进度(历时)估算需考虑的因素有哪些?
答:实际工作时间:一周几天、一天几小时?项目的人员规模?生产率:LOC/天
?有效工作时间:除去聊天、打电话、上卫生间等的时间?连续工作时间:不被打断的持续工作时间?人员级别:不同人员的生产率不同,成本不同?历史项目:参考以往类似项目
15. 项目进度估算的基本方法有哪些?
答:定额估算法:根据项目规模、投入资源及单位生产率计算项目历时,公式为T=Q/(R×S)?经验导出模型:使用根据大量历史项目统计得出的模型公式计算,如COCOMO模型等?工程评价技术(PERT):利用PDM任务网络图和加权历时估算公式计算项目总历时?基于承诺的进度估计法:从需求出发,由开发人员承诺项目进度
?Jones的一阶估算准则:根据项目功能点数及开发商评级,使用公式粗略估计项目历时? 其它:专家估计法、类推估计法、模拟估计法等
16. 何谓正推法?简述其计算任务历时的基本步骤及计算公式。
答:正推法是按照时间顺序计算任务网络图上各活动的最早开始时间和最早完成时间的有效方法。?
其计算步骤如下:
-首先建立项目的开始时间,项目的开始时间是网络图中第一个活动的最早开始时间-从左到右,从上到下进行计算,遍历所有路径
-当一个任务有多个前置任务时,其最早开始时间应取前置任务其中最大的最早完成时间 ? 计算公式:
-EF=ES+Duration(Duration为任务历时)
-ES(2)=EF(1)+Lag(1为前置任务,2为后置任务,Lag为滞后时间)
17. 何谓逆推法?简述其计算任务历时的基本步骤及计算公式。
答:逆推法是按照逆时间顺序计算任务网络图上各活动的最晚开始时间和最晚结束时间的有效方法。?
其计算步骤如下:
-首先建立项目的结束时间,项目的结束时间是网络图中最后一个活动的最晚结束时间-从右到左,从上到下进行计算,遍历所有路径
-当一个任务有多个后置任务时,其最晚完成时间应取后置任务中最小的最晚开始时间。 ? 计算公式:
-LS=LF-Duration(Duration为任务历时)
-LF(1)=LS(2)–Lag(1为前置任务,2为后置任务,Lag为滞后时间) 第4章
18. 何谓类比估算法?它适用什么情况?具有什么特点?
答:逆推法是按照逆时间顺序计算任务网络图上各活动的最晚开始时间和最晚结束时间的有效方法。?
其计算步骤如下:
-首先建立项目的结束时间,项目的结束时间是网络图中最后一个活动的最晚结束时间-从右到左,从上到下进行计算,遍历所有路径
-当一个任务有多个后置任务时,其最晚完成时间应取后置任务中最小的最晚开始时间。 ? 计算公式:
-LS=LF-Duration(Duration为任务历时)
-LF(1)=LS(2)–Lag(1为前置任务,2为后置任务,Lag为滞后时间)
19. 何谓自下而上估算法?它适用什么情况?具有什么特点?
答:自下而上估算法是利用任务分解结构图,对各个具体工作包进行详细的成本估算,然后将结果累加起来得出项目总成本。
?该方法主要适用于项目开始以后和WBS的开发阶段,或需要进行准确估算的时候。
它的特点是估算结果比较准确,准确度决定于每个任务的估算情况。但非常费时,估算本身的费用较大,且可能发生虚报夸大成本现象。
20. 简述提高估算准确性的主要措施。
答:作好充分的估算准备?留出估算的时间,并做好计划?充分参考以前的项目数据?以开发人员提供的数据为基础估算?分类法估算(多种方法分别估算并对比)?详细的较低层次上的估算?使用软件估算工具
使用几种不同估算技术,并比较它们的结果;
21. 简述资源冲突的表现及解决措施。
答:资源冲突的表现为:
-分配给一个资源的工时总量大于它的最大可用工时量。-同一种资源被分配给时间上重叠的几个任务或项目中。 ?
解决资源冲突的方法: -资源调配
-推迟资源开始工作时间-替换资源-设置资源加班时间-调整资源日历 -只使用资源的一部分工作时间。
22. 简述降低预算成本的常用方法。
答:降低资源的费率:降低资源的费率往往会打击工作人员的积极性,但可以通过降低其他资源的费率来实现,比如降低能源消耗、设备费用。
?减少任务的工时:适当的减少工时,可以降低任务的费用。但减少工时同时也影响项目的工期。?减少加班:加班需要支付加班费率,这通常要高于资源费率,所以减少加班可以有效的减少任务成本。?替换资源:用廉价的资源替换比较高价的资源,但有一个前提,那就是替换的资源同样能胜任这项任务。?减少任务的固定成本:固定成本就是任务本身所需要的成本。 ?删除任务:确认删除该任务对项目没有影响或影响在可控制范围内才可采用。
23. 优化进度,缩短工期的主要方法有哪些?
答:分解关键任务,使它们同步进行以缩短工期?给任务增加资源(如人员)以加快进度?缩减关键任务的工期?重叠关键任务?设置日历增加工作时间通过分配加班工时来缩短关键任务 第5章
24. 简述McCall软件质量模型的三个方面的11项特性。
答:?
McCall软件质量模型包括如下三方面11项特性: ? 运行:
-正确性(我能按我的需要正确地工作吗)-健壮性(我对各种可能的意外能很好地适应吗)-效率(完成预定功能它需要的资源多吗)-完整性(它能有效地保证数据的完整性吗)-可用性(我能容易地学会使用它吗) ? 修正:
-可维护性(遇到问题它能容易修复吗)-灵活性(我能方便地对它作一些调整吗)? 通过分配加班工时来缩短关键任务 -可测试性(我能对它作必要的测试吗)