软件开发流程初探

概念

瀑布模型、增量模型、螺旋模型的优缺点


  1. 一、瀑布模型
    优点

    • 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性
    • 推迟软件实现,强调在软件实现前必须进行分析和设计工作
    • 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求

    缺点

    • 强调过程活动的线性顺序
    • 缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题
    • 风险控制能力较弱
    • 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量
    • 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论

    二、增量模型
    优点

    • 增强客户对系统的信心
    • 降低系统失败风险
    • 提高系统可靠性
    • 提高系统的稳定性和可维护性

    缺点

    • 增量粒度难以选择
    • 确定所有的基本业务服务比较困难

    三、螺旋模型
    优点

    • 有助于增进软件人员和用户对系统服务需求的理解,减少两者之间的误解
    • 易于确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果
    • 软件原型版本有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,有利于最终系统的建成
    • 明确引入风险管理,适用于大型软件项目的开发
    • 螺旋模型是由风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中

    缺点

    • 大型系统难以进行直接的原型模拟,只能经过系统分析得到系统的整体结构
    • 原型方法难以构造处理大量运算、逻辑性较强的程序模块的原型
    • 原有应用的业务流程、信息流程混乱的情况下,原型构造与使用有一定的困难
    • 批处理系统的大部分活动是内部处理的,应用原型方法会有一定的困难
    • 此外原型方法还存在容易忽略文档工作、建立原型带来的资源浪费、项目规划和管理困难等问题

UP 的三大特点

Unified Process(UP)代表了一种软件开发的主流方法,其三大特点是:


1.受控的迭代式增量开发:允许在开发之初的不完整和不完美,但随着迭代的推进,产品工件逐步趋向稳定


2.软件开发是由用例驱动的:用例就是用户使用产品时做出的一系列动作的一种表示,体现了需求,开发过程以用例为指导


3.软件开发是以构架设计为中心的:架构包括软件功能模块以及系统和接口的设计,是软件系统的蓝图和框架用例的构建和迭代工作就体现了用户驱动,因为用例和后续的反馈评估能准确反映需求。而每次开发前和交付前的风险评估则体现了风险驱动的思想,估计风险发生的可能性,并制定风险管理措施规避这些风险。

UP四阶段

UP依照软件生命周期在时间上将开发过程分解为四阶段:Inception(初始)、Elaboration(精化)、Construction(构建)、Transition(移交)。

初始阶段

为系统建立业务案例(Business Case)并确定项目的边界。包括项目的验收规范、风险评估、所需资源估计、阶段计划等。确定项目边界需要识别所有与系统交互的外部实体,并在较高层次上定义外部实体与系统交互的特性,主要包括识别外部角色、识别所有用例并详细描述一些重要的用例。


里程碑:生命周期目标(Lifecycle Objective) 里程碑,包括一些重要的文档,如:项目构想(Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。需要对这些文档进行评审,以确定正确理解用例需求、项目风险评估合理、阶段计划可行等。

精化阶段

分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发。


里程碑:生命周期体系结构(Lifecycle Architecture) 里程碑。包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。

构建阶段

完成所有剩余的技术构件和稳定业务需求功能的开发,并集成为产品,详细测试所有功能。构建阶段只是一个制造过程,其重点放在管理资源及控制开发过程以优化成本、进度和质量。


里程碑:初始运行能力(Initial Operational Capability) 里程碑。包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。

移交阶段

确保软件对最终用户是可用的。产品化阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。


里程碑:产品发布(Product Release) 里程碑。确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的相重合。


UP为企业按固定节奏生产和发布软件产品提供了依据

1.根据UP,需求的分析、设计、实现、迭代等流程都是由固定长度的,有较为明确的时间限制


2.通过迭代增量建模思想提高了风险控制能力,迭代计划安排是风险驱动的,能保证阶段性工作的顺利实施。

范围/内容是易于控制的

IT项目管理中主要有“工期、质量、范围/内容” 三个元素。在合同固定条件下,工期是和用户商定好的。而质量,包括产品质量和过程质量,都有相应的衡量的标准,前者根据用户的需求可以明确,后者由项目团队的开发经验和自身可调配的资源决定。因此,在合同固定条件下,工期和质量都是不太有调整的弹性的。但范围和内容,一段时期后交付什么样的成果,则是项目团队评估和自己把握的。

项目管理使用

尝试使用tower作为项目管理的工具。我们是一个七人小团队,其中我是PM的角色,我们准备做一个扫码点餐支付系统,现在正处在Inception阶段。


项目按照UP规范划分成四个阶段,后续阶段暂时只给出核心的工作流,而第一阶段细化成了七个小目标,按照之前大致的分工(产品调研或是技术研究)各自去认领任务


这里写图片描述

我们约定了下次开会的时间,并写进tower的日历中


这里写图片描述

本周末是第一阶段的ddl,明确了需要产出的制品,这三份制品在开会后由团队成员共同完成


这里写图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值