Student ID:16340186
Name: 邱奕浩
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点。(从项目特点、风险特征、人力资源利用角度思考。)
瀑布模型
简述:
瀑布模型将软件生命周期各个阶段的活动规定为按顺序相连接的多阶段工作,涵盖需求,设计,编码,测试,到软件发布和维护等阶段,每个阶段都会产生循环反馈,产出的相关成果制品将作为下一阶段活动的输入,若某阶段存在某些问题,需要回退到之前的某个阶段进行修改,然后重新进行流动。
优点:
- 降低软件开发的复杂度,提高软件开发过程透明性;
- 提高了软件开发过程的可管理性,适用于规模较小,较为稳定的项目开发;
- 各个阶段正确衔接,能够及时发现并纠正开发过程存在的缺陷。
缺点:
- 过分强调过程活动的线性顺序,缺乏灵活性,对前面步骤依赖程度高,流程可逆性差;
- 风险控制能力较弱,当某一个阶段产生错误时,需要回归到前几个阶段重新开始;
- 鉴于其文档驱动的性质,当阶段之间规定文档较多时,将极大的增加人员和系统的工作量。
增量模型
简述:
增量模型从一组给定的需求开始,将软件项目系统模块化,通过构造一系列可执行的组件模块,分批次地进行分析,设计,构造和测试等增量组件。第一个中间版本满足部分需求,下一个版本又纳入新的更多的需求,每个版本会有相应的子产品交付,依此类推,直到系统完成。
优点:
- 由于其增量组件化的性质,人员分工较为灵活,可以同时进行多个组件的开发,人员利用率较高;
- 每个增量组件的交付后会收到用户反馈,增加用户参与度,降低用户使用风险;
- 模块化分解项目,提高系统稳定性,适用于规模较大,较为复杂,易变性低的软件开发。
- 开发初期不要求投入较大人力资源,可优先推出核心功能,根据市场反映实现下一个增量。
缺点:
- 各个增量组件加入已有的软件体系结构,必须不破坏已有的结构,这要求具备开放式的体系结构;
- 需求变化频繁时,增量模型灵活性容易丧失,使得软件过程控制较为复杂;
- 必须妥善处理增量组件之间的关系,若增量组件之间关系存在相交等情况,需要全盘系统分析。
螺旋模型(含原型方法)
螺旋模型是一种演化软件开发过程模型,兼顾了快速原型的迭代特征和瀑布模型的系统化和严格监控。同时引入了风险分析,使软件在无法排除重大风险时有机会停止。主要步骤有1. 决定目标、方案限制,进行需求计划;2. 评估方案,识别解决风险,进行风险分析,应用原型方法;3. 开发,验证下一级产品,;4. 计划下一阶段。一般适用于大型昂贵的系统级软件系统。
优点:
- 通过原型建立,使得软件开发在每个迭代有最初明确的方向;
- 引入风险分析,最大程度地降低软件失败造成损失的可能;
- 过程灵活性高,在开发过程易于应对变化;
- 多个迭代阶段累计开发成本,易于掌握支出状况。
缺点:
- 过度依赖风险分析经验与技术,一旦风险分析过程出现偏差将导致重大损失;
- 只适用于大型软件,过多的风险管理支出将会影响客户的最终收益。
简述统一过程三大特点,与面向对象的方法有什么关系?
三大特点:
- 以体系为中心。软件体系结构提供开发的核心架构,要求体系结构有良好弹性,适应变化,易于理解,可重用;
- 用例
Use Case
驱动和风险Risk
驱动相结合在迭代早起要识别和降低风险,并快速构造满足客户核心需求的产品。 - 迭代及增量。统一过程具有周期性,可量化性,在每一轮迭代开发中进行软件分析,设计,构造,测试和反馈。
统一过程UP
是面向对象设计与开发的重要方法,是迭代,敏捷开发实践的重要代表。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
统一过程四个阶段按时间维度分解是:初始阶段,精化阶段,构建阶段和产品阶段。
其划分准则是:每个阶段结束的时候产生一个里程碑,并在结尾执行一次评估确定该阶段的目标是否满足,如果评估结果令人满意,那么项目进入下一阶段。
每个阶段的关键里程碑分别是:
- 初始阶段:生命周期目标里程碑。包括重要的文档,如项目构想,原始用力,原始业务风险评估,原始业务案例等。通过对文档的评审确定用例需求理解是否正确,项目风险评估是否合理,阶段计划是否可行,
- 精化阶段:生命周期结构里程碑。包括风险分析文档, 软件体系结构基线,项目计划,可执行的原型,初始版本的用户手册。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
- 构建阶段:初始功能里程碑。包括可运行的软件产品,用户手册等,决定了产品是否可在测试环境中进行部署。
- 产品阶段:产品发布里程碑。 确定最终目标是否实现,是否应该开始产品下一个版本或下一轮迭代。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
软件企业采用迭代式的方法来生产,每轮迭代具有固定的周期和明确的里程碑目标,同时软件项目管理人员能够利用软件产品范围的弹性,合理规划软件的范围(20%业务决定80%的满意度),由此软件产品的生产、发布可以按固定节奏和周期进行。
固定节奏生产,固定周期发布产品有助于企业量化生产过程,个人贡献度,人力资源利用率等数据,以便更好地监督,控制,调整,评估整个生产过程和结果。同时又能及时地收集产品反馈,了解项目的不足,进一步做出项目的优化措施,降低项目风险,提高软件质量。