1 / 31
文档名称:

软件开发基本原则.doc

格式:doc   页数:31页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

软件开发基本原则.doc

上传人:xxj16588 2016/6/6 文件大小:0 KB

下载得到文件列表

软件开发基本原则.doc

文档介绍

文档介绍:软件开发基本原则(一) ——策略和因素 1概述时间-- 成本-- 质量( 或特性) 是评价软件项目成败的三个关键指标, 这三个指标之间相互影响和制约,形成了所谓的“项目管理三角形”。要提高质量或增加特性意味着成本和时间的增加,或两者都增加; 要在时间不变的前提下缩减开发成本或成本不变的前提下缩减时间则意味着质量的下降或特性的削减。图 1-1 项目管理三角形上述分析其实只是理论上的“理想平衡”状态。现实工作中往往出现的情形是: 要么时间超过计划,要么成本超过预算,要么质量达不到要求,要么三个指标都达不到预期。典型例子: 由于客户的压力需要尽量缩减开发时间, 由于企业间的竞争和盈利压力需要尽量节约成本, 因此需要一个人做两个人的工作, 一个月做两个月的工作, 同时压缩需求分析、设计、测试、评审和项目会议等活动。可想而知, 即使软件的构建阶段能够按时完成, 但做出的软件质量是难以保证的。更糟糕的还在后面:由于质量的低劣,构建阶段结束后对系统进行集成测试时,很多问题就会暴露出来: 对某些需求的理解有误差, 导致这部分功能要重新分析、设计、编码和测试; 架构设计缺乏整体思维导致系统不同模块各自为政, 产生大量重复的难以维护的代码; 编码太仓促导致一大堆的 Bug ; 沟通不畅顺导致模块接口不兼容……从而项目被带入了修改无限循环地带, 即使勉强上线发布, 修改还是一直持续,直至最后,没有人再敢接近这套代码,对这个项目谈虎色变。软件开发项目有其自身规律和原则, 只有遵守其原则并付诸相应的实践才可能使项目健康稳定地前进。本文讲述的是软件开发的基本原则, 它是通用的, 几乎适用于所有的软件开发项目。不同项目可以根据自身特点在原则的指导下定义相应的项目开发实践。 2 策略和因素 总体策略要避免混乱低效的开发, 就要求每个人能够放弃他们自己的一些坏****惯, 通过采取以下四种策略实现快速开发: 1、避免典型错误 2、打好开发基础 3、管理风险,避免灾难发生 4、采用面向进度的实践图 -1 快速开发的四跟支柱典型错误: 是指一些经常被许多人使用的无效的开发实践,如: 不现实的预期, 缺乏计划, 功能蔓延和银弹综合症等。将在第 3 章详细讲解。开发基础: 是指项目开发过程中管理、技术、质量保证等方面行为和活动,如: 计划编制, 需求管理和技术回顾等。将在第 4 章详细讲解风险管理: 是指对有可能影响项目的风险进行评估和控制。将在第 5 章讨论进度计划相关的风险。面向进度的实践有以下三类?面向速度的实践:可以提升开发速度,帮助你更快的交付软件?面向进度风险的实践:可以降低计划风险,帮助你的项目平稳推进?面向可视化的实践:可以提高进程的可视化程度,帮助你掌握项目动态图 -2 面向进度的实践图 -1 所示的前三根柱子为可能的最佳进度提供了最重要的支撑,虽然可能不是最理想的,但却是最需要的。也就是说, 即使不借助于面向进度的实践方法, 也可能实现较优化的项目进度; 但是, 如果仅仅依赖面向进度的实践却不可以支撑可能的最佳进度计划。图 -3 仅仅依赖面向进度的实践不足以支撑最佳进度计划 软件开发的四维每个软件项目都有四个重要的维: ?人员:完成任务要么快,要么慢?过程:优化人员的工作效率,或者浪费人员的时间?产品:以自我完善的形式定义,或者阻碍人员达到最好效果的形式定义?技术:促进或者阻碍开发的实现图 -1 开发速度的四维 人员研究数据: 人件极大地影响着生产效率,任何关注提高生产效率的组织首先必须有一套良好的人员激励、团队合作、员工选择及培训机制发挥人员最大潜能,缩短项目周期的方法: 1、项目成员的选择五个原则: ?用更少更好的人?使任务与人员的技能和动机相匹配?帮助人员自我实现,而不是强制地把他推到他最有经验或最需要他的岗位上?人员选择应强调人员之间的互补与协调性?尽快排除或替换不称职的人员 2、团队组织结构人员的组织方式对人员的工作效率有很大影响, 调整项目团队以使之与项目规模、产品特点以及进度目标相匹配。特定的软件项目也可以从适宜的专门组织中受益。 3、人员激励人员激励能激发人的动力, 从而付出额外的努力工作; 它适用于不同组织、不同项目和不同人员。人员激励是达成快速开发的最具潜力方法 过程研究数据: Hughes Aircraft 、 Lockheed 、 Motorola 、 NASA 、 Raytheon 和 Xerox 等组织通过对开发过程的改进将产品上市时间缩短了一半,降低成本、减少错误为原来的 1/3~1/10 。过程是指软件开发生命周期中定义的一系列工作流程和活动的集合。可以概括为以下三类: ?基本过程:包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程?支持过程