学习笔记01_软件研发模型

软件研发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。合理使用研发模型可以提供软件研发效率,降低研发成本,提升软件质量。

目前比较流行的研发模型主要有:瀑布模型、快速原型模型、螺旋模型、RUP流程和敏捷模型。

一、 瀑布模型

「计划 → 需求分析 → 设计 → 编码 → 测试 → 运行维护」

存在缺陷

1) 各个阶段的划分完全固定,阶段直接产生大量的文档,极大的增加了工作量。
2) 由于开发模型是线性的,用户到项目末期才能见到开发成果,增加开发风险。
3) 测试活动置后,导致早期错误可能要开发后期的测试阶段,才能被发现,进而带来更严重的后果;
    同时导致测试人员闲置,测试力度不够,不利于项目开发。
4)最大的问题:不能适应用户需求的变化。

二、 快速原型模型

又称为原型模型,是在瀑布模型基础上演进的一种研发模式,更注重用户需求的正确性,也符合人们开发软件的习惯,很多公司称之为DEMO,便于需求调研以及软件初期的设计,在第二步「需求分析」增加了通过客户评价确认原型设计的过程。

三、螺旋模型(Spiral Model)

如图,螺旋模型采用一种周期性的发放进行系统开发。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。每个周期都包括定制计划、风险分析、实事工程和客户评估4个阶段,并进行迭代。每迭代一次,软件又上升了一个层次。引入了非常严格的风险识别、风险分析和风险控制,把一个项目分解成一个个小项目,每个小项目都标识一个或多个主要风险,知道所有的主要风险因素都被确定。在这里插入图片描述
图中四个象限代表以下活动:
1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件。
2) 风险分析:分析评估所选方案,由风险专家识别并消除风险。
3)实施工程:实施软件开发和验证。
4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

螺旋模型由风险驱动,强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此特别适用于庞大、复杂且具有高风险的系统。

缺陷
成本较高,目前商业模式下几乎不采用该模型,但是该模型相关安全系数极高。

四、 RUP流程(Rational Unified Process)

以用例驱动和体系结构为核心的增量迭代的软件过程模式。

RUP中的软件生命周期在时间上被分解为四个顺序的阶段。

分别是:初始化、细化、构造和发布

每个阶段结束于一个主要的里程碑,每个阶段本质上,是两个里程碑之间的时间跨度。

1)初始化阶段

在这个阶段,所关注的是整个项目进行中的业务和需求方面的主要风险。

2)细化阶段:

分析问题领域,建立比较完善的体系结构基础,编制项目计划,规避项目中风险较大的元素。
同时为项目建立支持环境,包括模板、准则等,并准备工具。

3)构造阶段:

由开发人员对所有的构件和应用程序进行集成,并对所有功能进行详细测试。构件阶段是一个制造过程。

4)发布阶段:

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

RUP的9个核心工作流

1)业务建模(Business Modeling)

2)需求(Requirement)

3)分析和设计(Analysis&Design)

4)实现(Implementation)

5)测试(Test)

通过三维模型(可靠性、功能性和系统性能)进行测试。
主要检测所有的需求是否已被正确,所有的组件是否被正确集成。
RUP提出了**迭代**的方法,意味着在整个项目中进行测试,应尽可能早地发现缺陷,
从根本上降低了修改缺陷的成本。

6)部署(Deployment):

包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。
在有些情况下,还可能包括计划和进行Beta测试版、移植现有的软件和数据以及正式验收。

7)配置和变更管理(Configuration&Change Management):

工作流描述了如何管理并行开发、分布式开发以及自动化创建工程。
同时也阐述了对产品修改原因、时间和人员审计记录。

8)项目管理(Project Management):

平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。
其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,
为管理风险提供框架等。

9)环境管理(Environment Management):

该工作流向软件开发组织提供软件开发环境,包括过程和工具
并集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动
提供了逐步介绍的指导手册并介绍了如何在组织中实现过程管理。

五、敏捷模型

简单来说,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷开发宣言就是尽早的、持续的交付有价值的软件来使客户满意。
在这里插入图片描述

敏捷模型(Agile Model)的原则有以下几点:

1.快速迭代

传统项目一般大约半年发布一次版本。而在敏捷中采用小版本,其需求、开发和测试更加简单快速。

2.让测试人员和开发者参与需求讨论需求讨论以研讨组的形式展开最有效率。

研讨组,需要包括测试人员和开发者,这样可以更加轻松定义可测试的需求,将需求分组并确定优先级。

3.编写可测试的需求文档开始就要用“用户故事”(User Story)的方法来编写需求文档。

4.多沟通,尽量减少文档

好的沟通,是敏捷开发的先决条件。

5.做好产品原型建议使用草图和模型来阐明用户界面。

并不是所有人都可以理解一份复杂的文档,但人人都会看图。
发布了22 篇原创文章 · 获赞 0 · 访问量 561

猜你喜欢

转载自blog.csdn.net/pulapulahs/article/details/104540564
今日推荐