《项目一成立项目小组》由会员分享,可在线阅读,更多相关《项目一成立项目小组(30页珍藏版)》请在金锄头文库上搜索。
1、项目一 成立项目小组项目问题某软件公司刚成立,从学校招聘了一些新的开发人员。最近,该公司通过关系从市场接到一个网上书店的软件项目。由于公司刚成立,新招的开发人员都只有编程的经验,没有完整的项目开发经验。该公司该如何开展网上书店的项目开发呢?2软件危机代价高进度难控制工作量和成本估算难质量差维护难用户不满意软件生产率提高的速度跟不上计算机应用迅速 普及深入的趋势1979年,美国年,美国US Government Accounting Office的调查的调查1999年,美国年,美国Standish Group的调查的调查3软件的特点逻辑实体体,具有,具有抽象性抽象性软件生件生产属于属于智力活智力
2、活动,软件件质量控制量控制必必须着重于开着重于开发维护复复杂,与硬件,与硬件维修有本修有本质差差别4软件的特点(续)对计算机系算机系统的依的依赖性而性而产生生“软件件移植移植”的的问题软件开件开发尚未完全走出尚未完全走出“手工手工艺”阶段段对软件人件人员的要求很高的要求很高成本成本昂昂贵5问题归结软件生命期阶段计划需求设计实现测试维护主观盲目地制定计划;成本、资源、工作量估算不准;进度计划无法遵循需求提出不明确或者表达不准;需求错误;需求说明书质量不高没有统一的、公认的方法论和规范指导;设计资料不完整;忽视接口;编码不规范、难读;程序文档不完整;修改随意,与设计有偏差,无修改记录变更随意不规范
3、;维护文档不完整;维护错误测试不充分;测试文档不完整;测试过程缺乏控制不注意回归测试6消除软件危机的途径消除“软件就是程序”的错误观念按照工程化的原按照工程化的原则和方法和方法组织软件开件开发工作工作,是摆脱软件危机的一个主要出路7软件神话管理人员:我们已经有了关于开发软件的标准和规范的书籍,难道它们不能给人们提供所有其需要知道的信息吗?如果我们已经落后于计划,可以增加更多的程序员来赶上进度。8软件神话用户:有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充。用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动。9软件神话软件开发人员:所谓软件开发就是编写程序并设
4、法使它运行。在程序真正运行之前,没有办法评估其质量。10什么是软件工程定义(1983,IEEE):软件工程是开发、运行、维护和修复软件的系统方法三要素:软件工程方法软件工程工具软件工程过程11软件工程方法为软件开发提供了“如何做”的技术在时间上将软件开发工作划分为若干阶段,为每一阶段规定了若干任务,并提供为完成这些任务所需的各种技术是一种使用早已定义好的技术集和符号表示习惯来组织软件生产的过程12软件工程工具为支援软件人员的开发和维护活动而使用的软件项目估算工具、需求分析工具、设计工具、编程和调试工具、测试工具和维护工具、13软件工程过程将软件工程的方法和工具综合起来,达到合理、及时地进行计算
5、机软件开发的目的定义方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑等14软件过程15边做边改边做边改模型模型“作坊式”开发,主要问题在于:缺少规划和设计环节,导致软件无法继续修改忽略需求环节没有考虑测试和程序的可维护性16瀑布模型瀑布模型自上而下,相互自上而下,相互衔接接17原型实现模型原型实现模型 先开先开发一个一个“原型原型”软件,完成部分主要功能,展示件,完成部分主要功能,展示给用用户并征求意并征求意见,然后逐步完善,最,然后逐步完善,最终获得得满意的意的软件件产品品 18用户测试用户测试运行原型运行原型建造建造/ /修改修改 原型原
6、型 听取用听取用 户意见户意见增量模型增量模型19项目日历时间项目日历时间软软件件功功能能性性和和特特征征1 12 23 34 45 5第第2 2次增量发布次增量发布增量增量2 21 12 23 34 45 5第第n n次增量发布次增量发布增量增量n n1 12 23 34 45 5第第1 1次增量发布次增量发布增量增量1 15 5部署(发布,反馈)部署(发布,反馈)4 4构造(编码,测试)构造(编码,测试)3 3建模(分析,设计)建模(分析,设计)2 2计划计划1 1交流交流螺旋螺旋模型模型20极限极限编程编程敏捷(Agile)联盟让软件开发团队具有快速工作、响应变化能力的价值观和原则极限编
7、程:一种敏捷方法。由一系列简单却互相依赖的实践组成21敏捷软件开发宣言敏捷软件开发宣言个体和交互个体和交互 胜过胜过 过程和工具过程和工具 可以工作的软件可以工作的软件 胜过胜过 面面俱到的文档面面俱到的文档 客户合作客户合作 胜过胜过 合同谈判合同谈判 响应变化响应变化 胜过胜过 遵循计划遵循计划 虽然上述右项也有价值,但我们认为左虽然上述右项也有价值,但我们认为左项具有更大的价值。项具有更大的价值。22RUP统一建模过程23讨论假设你被指定为项目负责人,你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,但是规模更大且更复杂一些。客户已经写出了完整的需求文档。你将选用哪种项目组结构?为什么?你打算采用哪种软件过程模型?为什么?24公司组织结构项目组模型职能模型矩阵形模型25组织结构对比26程序设计小组主程序员制小组民主制小组层次式小组27人员配备28软件分类系统软件应用软件工程/科学软件嵌入式软件产品线软件Web应用软件人工智能软件29实训任务成立5-6人的项目小组选举项目经理选择实训项目确定项目章程30