渤海大学信息科学与工程学院软件工程SoftwareEngineering面向21世纪课程渤海大学信息科学与工程学院软件项目管理目的为了使软件项目能够在预定成本、进度、质量的前提下顺利完成,必须对软件工程项目进行计划、组织、监控和管理。第二章软件项目管理渤海大学信息科学与工程学院软件项目管理任务制定软件项目的实施计划和方案;对人员进行组织和分工;按照计划进度,以及成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的各项要求和任务。第二章软件项目管理渤海大学信息科学与工程学院软件项目管理内容软件度量软件项目估算软件质量度量软件复杂性度量软件可靠性度量*软件开发过程的管理软件项目管理中的CASE工具第二章软件项目管理渤海大学信息科学与工程学院2.6软件开发过程管理风险分析*进度安排*软件开发标准软件质量保证*软件开发人员的组织与分工软件项目的开发过程管理第二章软件项目管理渤海大学信息科学与工程学院教学目标掌握软件开发过程管理的主要内容,掌握软件开发过程管理的进度安排、开发标准、人员的组织与分工,了解软件开发过程的风险、质量保证、过程管理。渤海大学信息科学与工程学院重点、难点•开发过程管理的进度安排、•开发标准•人员的组织与分工渤海大学信息科学与工程学院2.6.1风险分析风险的概念风险与将要发生的事情有关,研究风险就是研究明天将要发生的事情风险涉及思想、观念、行为、地点、时间等多种因素风险随条件的变化而改变,人们通过改变、选择、控制与风险密切相关的条件减少、回避风险。2.6软件开发过程的管理渤海大学信息科学与工程学院对待风险的态度被动从不担心发生任何问题,问题发生后再做出反应。主动项目开始时就预测、标识项目存在的各种风险,评估风险发生的概率和影响的大小並按重要性进行排序;项目组建立风险管理计划和意外事件处理计划,以便预防风险,及时处理突发事件。2.6软件开发过程的管理渤海大学信息科学与工程学院软件工程的风险软件风险和其它风险一样存在不确定性,有些是很难预测的。除关注软件项目的一般性风险外,还要关注软件项目的特殊风险,如项目的背景、特殊要求、关键内容、薄弱环节、技术难点、人员状况、工作环境等。2.6软件开发过程的管理渤海大学信息科学与工程学院软件工程的风险软件工程存在各种风险,人们关心的问题是:什么风险会导致软件项目的彻底失败?顾客需求、开发环境、时间、成本的改变对软件项目的风险会产生什么影响?人们必须抓住什么机会、采取什么措施才能有效地减少风险、顺利完成任务?2.6软件开发过程的管理渤海大学信息科学与工程学院1风险标识对侍风险不能采取回避态度项目开始时应对一般性风险和特定产品风险进行系统标识,並随着项目的展开不断更新。一般可预测风险产品规模、商业影响、客户、过程、技术、环境、人员及经验等。识别风险的有效方法:风险检测表风险检测表可以帮助项目管理人员全面了解软件开发过程存在的风险,表中条目指出常見並可预测的风险。有些风险可以预料,有些很难预料。2.6软件开发过程的管理渤海大学信息科学与工程学院例:人员配备风险检测表(1)开发人员的水平如何。(2)开发人员在技术上是否配套。(3)开发人员的数量如何。(4)开发人员是否能够自始至终地参加软件开发工作。(5)开发人员是否能够集中全部精力投入到软件开发工作。(6)开发人员对自己的工作是否有正确的期望。(7)开发人员是否接受过必要的培训。(8)开发人员的流动是否能够保证工作的连续性。上述问题可以选用0,1,2,3,4,5来回答。完全肯定取值为0,反之为5,中间情况分别取值1,2,3,4值越大表示风险越大。人员配备风险检测表反映了人的因素给软件项目带来的风险。2.6软件开发过程的管理渤海大学信息科学与工程学院2风险估算软件项目管理人员可以从影响风险的因素和风险发生后的损失两方面来度量风险。2.6软件开发过程的管理渤海大学信息科学与工程学院3风险评价和管理三元组[ri,li,xi]i=1,2,3…l风险序号其中:ri表示风险,li表示风险发生的概率xi表示风险产生的影响。由于项目超支、进度拖延和软件性能下降都会导致软件项目的终止,对大多数软件项目,分析应都需要给出成本、进度和性能的风险参考值,当某一风险或风险组合值超过参考值时项目被迫停止。2.6软件开发过程的管理渤海大学信息科学与工程学院2.6软件开发过程的管理渤海大学信息科学与工程学院风险评价和管理三元组[ri,li,xi]是风险管理的基础设高级职员流动给项目带来风险ri,根据历史的经验或直观感觉,高级职员离开课题组的概率li=70%,这一风险导致事件xi发生项目开发时间延长15%,成本增加20%.2.6软件开发过程的管理渤海大学信息科学与工程学院项目负责人采取的风险管理措施(1)项目开始前控制产生风险的原因。项目开工后应设法减轻风险的影响。(2)了解项目开发人员变动的原因,在项目开发期间应控制上述原因,尽量减少人员的流动。(3)在工作方法和技术上采取适当措施,防止因人员流动给工作带来损失。(4)项目在开发过程中应及时公布并交流项目开发的信息。(5)建立组织机构,确定文档标准、并及时生成文档。(6)对工作进行集体复审,使多数人都能了解工作的细节,跟上工作进度。(7)为关键技术准备后备人员。2.6软件开发过程的管理渤海大学信息科学与工程学院风险缓解、监控和管理计划风险缓解、监控和管理计划RiskMitigation,Monitoring,andManagementPlan将风险分析工作文档化,成为项目的一部分。执行RMMM计划需要成本当软件项目比较大时,可能标出30至40种风险,如果为每种风险定义3至7种风险管理步骤,则风险管理本身就是一个项目。2.6软件开发过程的管理渤海大学信息科学与工程学院2.6.2进度安排制定软件项目进度表有两种途径。(1)软件开发小组根据提供软件产品的最后期限从后往前安排时间。(2)软件项目开发组织根据项目和资源情况制定软件项目开发的初步计划和交付软件产品的日期。2.6软件开发过程的管理渤海大学信息科学与工程学院任务、人力资源和时间分配与工程进度协调完成软件项目的成本与时间的关系不是线性的,使用较少的人员,在可能的情况下,相对延长一些时间可以取得较大的经济效益。任务、人力、时间存在最佳组合。2.6软件开发过程的管理渤海大学信息科学与工程学院任务分解与并行化软件人员的组织与分工与软件项目任务分解是分不开的,任务分解应挖掘并行成分,在软件施工时采用并行处理方式。2.6软件开发过程的管理渤海大学信息科学与工程学院2.6软件开发过程的管理渤海大学信息科学与工程学院工作量分配4-2-4分布原则2.6软件开发过程的管理渤海大学信息科学与工程学院进度安排关键日期表、甘特图使用程序评估与审查技术(PERT)或关键路径方法(CPM),生成描述项目进展状态的任务网络图。Project软件。2.6软件开发过程的管理渤海大学信息科学与工程学院进度安排PERT和CPM方法提供了定量描述工具,包括①关键路径。完成关键路径上所有任务时间的总和,就是项目开发所需要的最短时间。②用统计模型估算开发每个子任务需要的工作量和时间。③计算各子任务的最早启动时间和最迟启动时间。2.6软件开发过程的管理渤海大学信息科学与工程学院2.6.3软件开发标准传统工业没有标准化就没有现代化的工业。大型软件工程项目也离不开标准化。软件文档、程序和数据的标准化有助于提高软件的一致性、完整性和可理解性,有助于提高软件开发质量和效率。标准化的软件便于存档、交流和重用。软件开发标准绝大多数是由政府部门或国防部门制定的。一些标准化组织负责生产、保存和推广标准化的文件及其说明。2.6软件开发过程的管理渤海大学信息科学与工程学院表2.15部分软件工程标准1.IEEE软件工程术语标准词汇IEEEStd729-19832.IEEE软件质量保证计划标准IEEEStd730-19843.IEEE软件配置管理计划标准IEEEStd828-19834.IEEE软件测试文档标准IEEEStd829-19835.IEEE软件需求规格说明指南IEEEStd830-19836.美国国防部标准:军用软件开发标准DODStd1679A(Navy)7.美国联邦信息处理标准:计算机程序和自动数据系统文件编制指南2.6软件开发过程的管理渤海大学信息科学与工程学院表2.16目录1.引言1.1目的1.2范围1.3定义、缩写词和略语1.4参考文档1.5综述2.一般描述2.1产品描述2.2产品功能2.3用户特点2.4一般约束2.5假设和依据3.特殊需求3.1功能需求3.1.1功能需求13.1.1.1.1引言3.1.1.1.2输入3.1.1.1.3加工3.1.1.1.4输出3.1.1.2外部接口3.1.1.2.1用户接口3.1.1.2.2硬件接口3.1.1.2.3软件接口3.1.2功能需求2…………3.1.n功能需求n3.2性能需求3.3设计约束3.4属性3.4.1保密性3.4.2可维护性3.5其他需求3.5.1数据库3.5.2操作3.5.3环境的适应附录索引2.6软件开发过程的管理渤海大学信息科学与工程学院表2.17我国颁发的部分软件标准1.计算机软件开发规范GB8566-882.计算机软件产品开发文件编制指南GB8567-883.计算机软件需求说明编制指南GB9385-884.计算机软件测试文件编制规范GB9386-885.计算机软件质量保证计划规范GB/T12504-906.计算机软件配置管理计划规范GB/T12505-902.6软件开发过程的管理渤海大学信息科学与工程学院2.6.4软件质量保证软件工程的目标是生产高质量的软件,高质量的软件应该具备三个条件。①满足软件需求定义的功能和性能②文档符合事先确定的软件开发标准③软件的特点和属性遵循软件工程的目标和原则。开发高质量的软件必须进行有系统、有计划的软件质量保证(SQA)活动。2.6软件开发过程的管理渤海大学信息科学与工程学院软件质量保证(SQA)活动①在需求分析阶段对软件质量提出需求,并自顶向下逐步分解为可以度量、可以控制的质量要素;②研究并选用软件开发方法和工具;③对软件工程各个阶段进行正式技术评审(FTR);④制定并执行软件测试策略和测试计划;⑤生成软件文档并对文档的改变进行控制;⑥保证软件开发过程与选用的软件开发标准一致;⑦建立软件质量要素的测量机制;⑧记录SQA活动并生成各种SQA报告。2.6软件开发过程的管理渤海大学信息科学与工程学院软件工程各阶段的正式技术评审(FTR)软件工程的FTR用于软件开发的各个阶段,FTR能够及时发现并消除软件中的缺陷,提高软件质量,减少软件开发及维护费用。FTR采用正式会议方式。会议由熟悉软件项目的技术人员、管理人员参加,会议规模一般是3至5人,其中一人兼做记录员。会前应发放FTR的软件产品清单,参加FTR会议的人员事先应做好准备,对被评审的软件产品和应该达到的阶段性成果指标十分清楚。2.6软件开发过程的管理渤海大学信息科学与工程学院软件工程各阶段的正式技术评审(FTR)评审会议由组长主持,评审人员参加,记录员记录。会议时间不超过两小时。会议开始时可以请软件生产者简要介绍软件产品的有关情况,评审人员根据事先准备的问题提问,生产者回答。评审只针对产品而不涉及有关人员,FTR只揭示产品中存在的问题。评审会议应该避免无休止地争论。2.6软件开发过程的管理渤海大学信息科学与工程学院软件工程各阶段的正式技术评审(FTR)会议评审小组在评审会议结束时必须对参加评审的软件产品明确表态:通过评审,或不通过评审,或对某些问题修改后可以通过评审。没有通过技术评审的产品必须返工,待条件成熟时重新召开评审会。对虽存在问题,但修改后可以通过评审的产品原则上可以授权项目技术负责人把关,一般不再召开复审会议,但在下一阶段产品质量FTR会议上可以对前面做过的评审及遗留问题进行复审。2.6软件开发过程的管理渤海大学信息