1、chapter_1,0,软件项目管理,北京邮电大学软件学院 韩万江,chapter_1,1,RoadMap,第一篇,软件项目初始,chapter_1,3,软件项目管理,第 1 章软件项目初始过程,chapter_1,4,软件项目启动,顾客,顾客,需求,满意,产品,输入,输出,产品实现,甲方,乙方,chapter_1,5,本章要点,一、项目立项 二、授权项目 三、初始项目分析 四、生存期模型 五、案例分析,chapter_1,6,项目立项,明确项目的目标、时间表、项目使用的资源和经费,而且得到执行该项目的项目经理和项目发起人的认可 .,chapter_1,7,Make or Buy 决策,cha
2、pter_1,8,项目立项,合同项目 内部项目,chapter_1,9,合同项目,chapter_1,10,甲方合同环境,招标书定义(采购需求定义) 供方选择 合同签署,chapter_1,11,1、招标书定义,附件:SOW:Statement Of Work,chapter_1,12,2、供方选择,招标,收集供方的建议书,评定 供方,最终供方确定,招标文件,最终供方名单,建议书,chapter_1,13,3、合同签署,Project charter,chapter_1,14,乙方合同环境,项目分析 提交建议书 合同签署,chapter_1,15,1、 项目分析,chapter_1,16,2、
3、 提交建议书,chapter_1,17,3、合同签署,任务书实例,Project charter,chapter_1,18,内部项目,企业内部项目实施的核心是确定任务范围和相关各方进行有效地配合。这将通过相关各方之间的协议来调整。因此,在内部项目实施中,仅仅在合同签署过程中定义了一个协议签署过程。此处协议可视作为“合同”,但无特别的商业约束。其它方面可参考甲乙方的过程。,chapter_1,19,本章要点,一、项目立项 二、授权项目 三、初始项目范围分析 四、生存期模型 五、案例分析,chapter_1,20,项目章程(Project Charter),确认项目存在的文件,包括对项目的确认、对
4、项目经理的授权和项目目标的概述等。,chapter_1,21,Sample Project Charter,chapter_1,22,Sample Project Charter (continued),Roles and Responsibilities:,chapter_1,23,项目经理的角色,项目组织的领导者 项目组织的管理者 项目组织的决策者 项目组织的分析者 项目组织的计划者 项目组织的控制者 项目组织的组织者 项目组织的评价者 项目组织的协调者,chapter_1,24,项目经理的责任,开发计划 组织实施 项目控制,chapter_1,25,本章要点,一、项目立项 二、授权项目
5、三、初始项目范围分析 四、生存期模型 五、案例分析,项目范围的主要内容 1. 项目的合理性说明 2. 项目目标 3. 项目可交付成果 项目范围的依据 合同 规范 SOW:客户份额(工作说明书),chapter_1,26,明确项目范围的重要性,后期维护是否属于软件开发项目范围必须在项目责任书里明确 。不属于项目范围以内的事,尽量不要做,搞不好是费力不讨好 。,chapter_1,27,chapter_1,28,本章要点,一、项目立项 二、授权项目 三、初始项目范围分析 四、生存期模型 五、案例分析,chapter_1,29,常用生存期模型,瀑布Waterfall V模型V-shaped 原型Pr
6、ototyping 增量Incremental 螺旋式Spiral 快速应用开发RAD 渐近式阶段,chapter_1,30,WaterFall model,chapter_1,31,WaterFall model适合的项目,在项目开始前,项目的需求很明确 在项目开始前,解决方案也很明确 类似的项目如: 公司的财务系统 库存管理系统 短期项目,chapter_1,32,V模型,接收测试,集成测试,系统测试,项目规化,需求分析,总体设计,详细设计,编码和调试,集成测试,单元测试,chapter_1,33,V模型适合的项目,在项目开始前,项目的需求很明确 在项目开始前,解决方案也很明确 对系统的性
7、能安全很严格的项目 类似的项目如: 航天飞机等 公司的财务系统,chapter_1,34,Prototype原型模型,chapter_1,35,Prototype 模型适合的项目,在项目开始前,项目的需求不明确 需要减少项目需求的不确定性 类似的项目如: 确定显示界面 第一次开发的产品,验证可行性,chapter_1,36,Incremental Model增量式模型,chapter_1,37,增量模型适合的项目,项目开始,明确了需求的大部分,但是需求可能会发生变化 对于市场和用户把握不是很准,需要逐步了解 对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。,chapter_1,3
8、8,Spiral Model螺旋式模型,chapter_1,39,Spiral Model,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即: 制定计划确定软件目标,需求和选定实施方案,弄清项目开发的限制条件 风险分析评估所选方案,考虑如何识别和消除风险 实施工程实施软件开发,编码,测试等 客户评估评价开发工作,提出修正建议,规划下期任务,chapter_1,40,Spiral Model适合的项目,风险是主要的制约因素 不确定因素和风险限制了项目进度 用户对自己的需求也不是很明确 需要对一些基本的概念进行验证 可能发生一些重大的变更 项目规模很大 项目中采用了新技术,chapt
9、er_1,41,最常用的渐进式阶段模型,综合了增量模型和螺旋式模型的一个实用模型 渐进式前进 阶段式提交,chapter_1,42,渐进式迭代模型 42,chapter_1,43,阶段性完成规划,chapter_1,44,渐进式阶段模型的特点,阶段式提交一个可运行的产品 关键的功能更早出现 早期预警问题,避免软件缺陷不知不觉的增长 减少报告负担 阶段性完成可以降低估计失误 阶段性完成均衡了弹性与效率,chapter_1,45,渐进式阶段模型适合的项目,可以适合任何规模的项目,主要是中型或大型项目 希望随时看到未来的项目,chapter_1,46,银行业务系统的生存期实例,产品阶段1设计,业务需
10、求分析,原形系统分析,项目规划,集成测试,产品阶段1开发,产品阶段n设计,产品阶段n开发,确认测试,产品提交,银行业务需求 原形系统源代码,项目规划,项目规划,chapter_1,47,产品阶段1设计,阶段目标: 设计公共控制系统功能模块输入: 系统设计文件数据库结构定义过程: 详细设计输出: 详细设计文件时间计划: 2011/1/15-2011/2/15(暂定),chapter_1,48,选择生存期的步骤,熟悉各种生存期模型 评审、分析项目的特性 选择适合项目的生存期模型 标识生存期模型与项目不一致地方,并进行裁减,chapter_1,49,本章要点,一、项目立项 二、授权项目 三、初始项目
11、范围分析 四、生存期模型 五、案例分析,chapter_1,50,案例分析,甲方:某教育机构 乙方:北京科力拓技术发展有限公司(软件企业),chapter_1,51,需(甲)方合同环境,需求SOW 合同,chapter_1,52,供(乙)方合同环境,项目分析: 建议书 合同签署:合同 项目授权;项目章程 模型选择:生存期模型,chapter_1,53,小结,项目初始过程 一、项目来源 二、授权项目 三、初始项目分析 四、生存期模型,生存期模型总结,1.在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型. 2.在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型. 3.在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋模型 4.在需求不稳定情况下尽量采用增量迭代模型 5.在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进行发布 6.对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑布模型 7.对于全新系统的开发必须在总体设计完成后再开始增量或并行. 8.对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型. 9.增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付准则,chapter_1,54,