




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程Software Engineering,面向21世纪课程,国防科技大学计算机学院,软件项目管理,目的 为了使软件项目能够在预定成本、进度、质量的前提下顺利完成,必须对软件工程项目进行计划、组织、监控和管理,第二章 软件项目管理,国防科技大学计算机学院,软件项目管理,任务 制定软件项目的实施计划和方案; 对人员进行组织和分工; 按照计划进度,以及成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的各项要求和任务,第二章 软件项目管理,国防科技大学计算机学院,软件项目管理,内容 软件度量 软件项目估算 软件质量度量 软件复杂性度量 软件可靠性度量 *软件开发过程的管理 软件项目
2、管理中的CASE工具,第二章 软件项目管理,国防科技大学计算机学院,2.6软件开发过程管理,风险分析 *进度安排 *软件开发标准 软件质量保证 *软件开发人员的组织与分工 软件项目的开发过程管理,第二章 软件项目管理,国防科技大学计算机学院,教学目标,掌握软件开发过程管理的主要内容,掌握软件开发过程管理的进度安排、开发标准、人员的组织与分工,了解软件开发过程的风险、质量保证、过程管理,国防科技大学计算机学院,重点、难点,开发过程管理的进度安排、 开发标准 人员的组织与分工,国防科技大学计算机学院,2.6.1 风险分析,风险的概念 风险与将要发生的事情有关,研究风险就是研究明天将要发生的事情 风
3、险涉及思想、观念、行为、地点、时间等多种因素 风险随条件的变化而改变,人们通过改变、选择、控制与风险密切相关的条件减少、回避风险,2.6软件开发过程的管理,国防科技大学计算机学院,对待风险的态度,被动 从不担心发生任何问题,问题发生后再做出反应。 主动 项目开始时就预测、标识项目存在的各种风险,评估风险发生的概率和影响的大小並按重要性进行排序; 项目组建立风险管理计划和意外事件处理计划,以便预防风险,及时处理突发事件,2.6软件开发过程的管理,国防科技大学计算机学院,软件工程的风险,软件风险和其它风险一样存在不确定性,有些是很难预测的。 除关注软件项目的一般性风险外,还要关注软件项目的特殊风险
4、,如项目的背景、特殊要求、关键内容、薄弱环节、技术难点、人员状况、工作环境等,2.6软件开发过程的管理,国防科技大学计算机学院,软件工程的风险,软件工程存在各种风险,人们关心的问题是: 什么风险会导致软件项目的彻底失败? 顾客需求、开发环境、时间、成本的改变对软件项目的风险会产生什么影响? 人们必须抓住什么机会、采取什么措施才能有效地减少风险、顺利完成任务,2.6软件开发过程的管理,国防科技大学计算机学院,1 风险标识,对侍风险不能采取回避态度 项目开始时应对一般性风险和特定产品风险进行系统标识,並随着项目的展开不断更新。 一般可预测风险 产品规模、商业影响、客户、过程、技术、环境、人员及经验
5、等。 识别风险的有效方法:风险检测表 风险检测表可以帮助项目管理人员全面了解软件开发过程存在的风险,表中条目指出常見並可预测的风险。有些风险可以预料,有些很难预料,2.6软件开发过程的管理,国防科技大学计算机学院,例:人员配备风险检测表,1) 开发人员的水平如何。 (2) 开发人员在技术上是否配套。 (3) 开发人员的数量如何。 (4) 开发人员是否能够自始至终地参加软件开发工作。 (5) 开发人员是否能够集中全部精力投入到软件开发工作。 (6) 开发人员对自己的工作是否有正确的期望。 (7) 开发人员是否接受过必要的培训。 (8) 开发人员的流动是否能够保证工作的连续性。 上述问题可以选用0
6、,1,2,3,4,5来回答。完全肯定取值为0,反之为5,中间情况分别取值1,2,3,4值越大表示风险越大。 人员配备风险检测表反映了人的因素给软件项目带来的风险,2.6软件开发过程的管理,国防科技大学计算机学院,2 风险估算,软件项目管理人员可以从影响风险的因素和风险发生后的损失两方面来度量风险,2.6软件开发过程的管理,国防科技大学计算机学院,3 风险评价和管理,三元组 ri,li,xi i =1,2,3l 风险序号 其中:ri表示风险,li表示风险发生的概率 xi表示风险产生的影响。 由于项目超支、进度拖延和软件性能下降都会导致软件项目的终止,对大多数软件项目,分析应都需要给出成本、进度和
7、性能的风险参考值,当某一风险或风险组合值超过参考值时项目被迫停止,2.6软件开发过程的管理,国防科技大学计算机学院,2.6软件开发过程的管理,国防科技大学计算机学院,风险评价和管理,三元组ri,li,xi是风险管理的基础 设高级职员流动给项目带来风险ri, 根据历史的经验或直观感觉,高级职员离开课题组的概率li = 70%, 这一风险导致事件xi发生 项目开发时间延长 15%,成本增加 20,2.6软件开发过程的管理,国防科技大学计算机学院,项目负责人采取的风险管理措施,1)项目开始前控制产生风险的原因。项目开工后应设法减轻风险的影响。 (2)了解项目开发人员变动的原因,在项目开发期间应控制上
8、述原因,尽量减少人员的流动。 (3)在工作方法和技术上采取适当措施,防止因人员流动给工作带来损失。 (4)项目在开发过程中应及时公布并交流项目开发的信息。 (5)建立组织机构,确定文档标准、并及时生成文档。 (6)对工作进行集体复审,使多数人都能了解工作的细节,跟上工作进度。 (7)为关键技术准备后备人员,2.6软件开发过程的管理,国防科技大学计算机学院,风险缓解、监控和管理计划,风险缓解、监控和管理计划 Risk Mitigation,Monitoring,and Management Plan 将风险分析工作文档化,成为项目的一部分。 执行RMMM计划需要成本 当软件项目比较大时,可能标出
9、30至40种风险,如果为每种风险定义3至7种风险管理步骤,则风险管理本身就是一个项目,2.6软件开发过程的管理,国防科技大学计算机学院,2.6.2 进度安排,制定软件项目进度表有两种途径。 (1)软件开发小组根据提供软件产品的最后期限从后往前安排时间。 (2)软件项目开发组织根据项目和资源情况制定软件项目开发的初步计划和交付软件产品的日期,2.6软件开发过程的管理,国防科技大学计算机学院,任务、人力资源和时间分配与工程进度协调,完成软件项目的成本与时间的关系不是线性的,使用较少的人员,在可能的情况下,相对延长一些时间可以取得较大的经济效益。 任务、人力、时间存在最佳组合,2.6软件开发过程的管
10、理,国防科技大学计算机学院,任务分解与并行化,软件人员的组织与分工与软件项目任务分解是分不开的,任务分解应挖掘并行成分,在软件施工时采用并行处理方式,2.6软件开发过程的管理,国防科技大学计算机学院,2.6软件开发过程的管理,国防科技大学计算机学院,工作量分配,4-2-4分布原则,2.6软件开发过程的管理,国防科技大学计算机学院,进度安排,关键日期表、甘特图 使用程序评估与审查技术(PERT)或关键路径方法(CPM),生成描述项目进展状态的任务网络图。 Project软件,2.6软件开发过程的管理,国防科技大学计算机学院,进度安排,PERT和CPM方法提供了定量描述工具,包括 关键路径。完成关
11、键路径上所有任务时间的总和,就是项目开发所需要的最短时间。 用统计模型估算开发每个子任务需要的工作量和时间。 计算各子任务的最早启动时间和最迟启动时间,2.6软件开发过程的管理,国防科技大学计算机学院,2.6.3 软件开发标准,传统工业没有标准化就没有现代化的工业。大型软件工程项目也离不开标准化。 软件文档、程序和数据的标准化有助于提高软件的一致性、完整性和可理解性,有助于提高软件开发质量和效率。 标准化的软件便于存档、交流和重用。 软件开发标准绝大多数是由政府部门或国防部门制定的。一些标准化组织负责生产、保存和推广标准化的文件及其说明,2.6软件开发过程的管理,国防科技大学计算机学院,表2.
12、15 部分软件工程标准,1.IEEE 软件工程术语标准词汇IEEE Std 729-1983 2.IEEE 软件质量保证计划标准IEEE Std 730-1984 3.IEEE 软件配置管理计划标准IEEE Std 828-1983 4.IEEE 软件测试文档标准IEEE Std 829-1983 5.IEEE 软件需求规格说明指南IEEE Std 830-1983 6.美国国防部标准:军用软件开发标准DOD Std 1679A(Navy) 7.美国联邦信息处理标准:计算机程序和自动数据系统文件编制指南,2.6软件开发过程的管理,国防科技大学计算机学院,表2.16 软件需求规格说明大纲,目录
13、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 功能需求 3.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 功能需求 3.1.n 功能需求n 3.2 性能需求 3.3 设计约束 3.4 属性 3.4.1 保密性
14、 3.4.2 可维护性 3.5 其他需求 3.5.1 数据库 3.5.2 操作 3.5.3 环境的适应 附录 索引,2.6软件开发过程的管理,国防科技大学计算机学院,表2.17 我国颁发的部分软件标准,1.计算机软件开发规范 GB8566-88 2.计算机软件产品开发文件编制指南 GB8567-88 3.计算机软件需求说明编制指南 GB9385-88 4.计算机软件测试文件编制规范 GB9386-88 5.计算机软件质量保证计划规范 GB/T12504-90 6.计算机软件配置管理计划规范 GB/T12505-90,2.6软件开发过程的管理,国防科技大学计算机学院,2.6.4 软件质量保证,软
15、件工程的目标是生产高质量的软件,高质量的软件应该具备三个条件。 满足软件需求定义的功能和性能 文档符合事先确定的软件开发标准 软件的特点和属性遵循软件工程的目标和原则。 开发高质量的软件必须进行有系统、有计划的软件质量保证(SQA)活动,2.6软件开发过程的管理,国防科技大学计算机学院,软件质量保证(SQA)活动,在需求分析阶段对软件质量提出需求,并自顶向下逐步分解为可以度量、可以控制的质量要素; 研究并选用软件开发方法和工具; 对软件工程各个阶段进行正式技术评审(FTR); 制定并执行软件测试策略和测试计划; 生成软件文档并对文档的改变进行控制; 保证软件开发过程与选用的软件开发标准一致;
16、建立软件质量要素的测量机制; 记录SQA活动并生成各种SQA报告,2.6软件开发过程的管理,国防科技大学计算机学院,软件工程各阶段的正式技术评审(FTR,软件工程的FTR用于软件开发的各个阶段,FTR能够及时发现并消除软件中的缺陷,提高软件质量,减少软件开发及维护费用。 FTR采用正式会议方式。会议由熟悉软件项目的技术人员、管理人员参加,会议规模一般是3至5人,其中一人兼做记录员。会前应发放FTR的软件产品清单,参加FTR会议的人员事先应做好准备,对被评审的软件产品和应该达到的阶段性成果指标十分清楚,2.6软件开发过程的管理,国防科技大学计算机学院,软件工程各阶段的正式技术评审(FTR,评审会
17、议由组长主持,评审人员参加,记录员记录。会议时间不超过两小时。 会议开始时可以请软件生产者简要介绍软件产品的有关情况,评审人员根据事先准备的问题提问,生产者回答。 评审只针对产品而不涉及有关人员,FTR只揭示产品中存在的问题。 评审会议应该避免无休止地争论,2.6软件开发过程的管理,国防科技大学计算机学院,软件工程各阶段的正式技术评审(FTR,会议评审小组在评审会议结束时必须对参加评审的软件产品明确表态:通过评审,或不通过评审,或对某些问题修改后可以通过评审。 没有通过技术评审的产品必须返工,待条件成熟时重新召开评审会。 对虽存在问题,但修改后可以通过评审的产品原则上可以授权项目技术负责人把关
18、,一般不再召开复审会议,但在下一阶段产品质量FTR会议上可以对前面做过的评审及遗留问题进行复审,2.6软件开发过程的管理,国防科技大学计算机学院,软件工程各阶段的正式技术评审(FTR,FTR会议结束时通过评审报告。 报告内容 会议主持人、参加会议的人员、评审产品、评审内容、发现的问题、评审意见等,国防科技大学计算机学院,2.6.5 软件开发人员的组织与分工,大型软件项目需要很多人通力合作,花费一年或数年的时间才能完成。 软件项目开发人员的组织、分工与管理十分重要、复杂,它影响到软件项目的成败。 软件开发人员的个人素质与能力差异很大。 1970年Sackman对12个程序员用两个不同的程序进行试
19、验,2.6软件开发过程的管理,国防科技大学计算机学院,试验结论,程序排错、调试时间差别为18:1; 程序编制时间差别为15:1; 程序长度差别为6:1; 程序运行时间差别为13:1。 随着软件开发方法的提高、工具的改善,上述差异会减小,但软件人员的合理选择及分工、充分发挥每个人的特长和经验仍然十分重要,2.6软件开发过程的管理,国防科技大学计算机学院,软件开发人员的组织与分工,原则 软件开发人员的组织结构与软件项目开发模式和软件产品的结构相对应,做到软件开发方法、工具与人的统一。 降低管理系统的复杂性,有利于软件开发过程的管理与质量控制。 按树形结构组织软件开发人员。 人员的选择、分配、组织涉
20、及到软件开发效率、软件开发进度、软件开发过程管理和软件产品质量,必须引起项目负责人的高度重视,2.6软件开发过程的管理,国防科技大学计算机学院,软件开发人员的组织与分工,树的结点是程序员小组,为了减少系统的复杂性、便于项目管理,树的结点每层不要超过7个,在此基础上尽量降低树的层数。 程序员小组的人数应视任务的大小和完成任务的时间而定,一般是25人。 为降低系统开发过程的复杂性,程序员小组之间,小组内程序员之间的任务界面必须清楚并尽量简化,2.6软件开发过程的管理,国防科技大学计算机学院,软件开发人员的组织与分工,大型软件项目需专门配置一个或几个配置管理人员,专门负责软件项目的程序、文档和数据的
21、各种版本控制,保证软件系统的一致性与完整性。 软件开发小组内部和小组之间应经常交流情况和信息,以便减少误解,删除软件中的个人特征,提高软件的质量。 软件开发各阶段需要的技术人员类型、层次和数量是不同的,2.6软件开发过程的管理,国防科技大学计算机学院,主程序员开发小组,按主程序员组织软件开发小组是一条比较成功的经验。 主程序员是超级程序员。小组其他成员,包括程序员、后备工程师等,是主程序员的助手。 主程序员负责规划、协调、审查小组全部技术活动。程序员负责软件的分析和开发。后备工程师是主程序员的助手,必要时能代替主程序员领导小组的工作,2.6软件开发过程的管理,国防科技大学计算机学院,主程序员开
22、发小组,软件开发小组还可以根据任务需要配备有关专业人员,如,数据库设计人员、远程通信专家等。 组内成员都对主程序员负责,省略了组员之间的通信和协调,提高了工作效率。 软件项目或软件开发小组可以配置若干个秘书、软件工具员、测试员、编辑和律师等,2.6软件开发过程的管理,国防科技大学计算机学院,无我程序设计开发小组,无我程序设计”原则建立软件民主开发小组。 这种组织形式强调组内成员人人平等,组内问题均由集体讨论决定。 这种组织形式有利于集思广益、取长补短,但工作效率比较低,2.6软件开发过程的管理,国防科技大学计算机学院,软件开发人员的组织与分工,根据Putnam得出的软件项目开发工作量与开发时间的4次方成反比的结论,得出软件开发的人员时间折衷定律:在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。 F.Brooks从大量的软件开发实践中发现:“向一个已经延期的软件项目,追加开发人员可能使项目完成得更晚”。 软件开发宁可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防渗漏管理策划
- 调度运行员培训
- 《大学生心理健康》课件 主题8 学习使用时间 拿回人生主动权
- 集合与函数的概念说课
- 重要的医院感染的预防控制措施
- DB34-T 02-2024 大别山牛标准规范
- 常见的工作场所安全隐患
- 电子商务行业前景
- 保险行业半年总结
- 平安交通安全生产
- 法语冠词总结
- 堆垛机速度计算表
- ZYJ7道岔故障处理方法
- 煤矿用80开关(QBZ80、120、200)
- 《并购专题》PPT课件.ppt
- 建筑工程材料见证取样、送检单
- 大一高数试题及答案(共16页)
- IPC-A-610E培训教材(完整版)
- (完整word版)自然拼读单词表最新(精华版)
- 吉林大学地球科学学院09版培养方案.doc(2010.11.30)
- 顶管施工安全控制要点
评论
0/150
提交评论