当前位置: 首页 > news >正文

软件生存期和软件过程

软件生存周期

软件生存周期(Software Life Cycle):一个软件项目从问题提出开始,直到软件产品最终退役(废弃不用)为止。

软件生存周期分为三个时期:计划、开发和维护

整个软件生存周期划分为多个相对独立的较小阶段,给每个阶段赋予确定而有限的任务,从而降低了整个软件工程的难度,提高了软件开发生产率

• 目的和实质:

控制开发工作的复杂性,通过有限的确定步骤,把用户需求从抽象的逻辑概念转化为具体的物理实现。

• 软件生存期模型:瀑布模型,演化模型,螺旋模型,喷泉模型。

软件过程

围绕软件开发所进行的一系列活动,早期,人们称软件过程为“软件开发模型”

早期观点:软件生存周期中的阶段和软件过程中的活动是基本一致的。

传统软件过程

一、瀑布模型:

瀑布模型(WaterfallModel)又称流水式过程模型,它将软件开发过程模仿旅游景点的阶梯瀑布,由上向下一个阶梯一个阶梯地倾泻下来,最后进入一个风平浪尽的大湖,这个大湖就是软件企业的产品库。

瀑布模型

基于软件生存周期的线性开发模型

软件生存周期中的阶段和软件过程中的活动是基本一致的。 

瀑布模型:系统的生命周期方法学用瀑布模型来进行模拟。

各阶段间具有顺序性和依赖性

前阶段结束—>后阶段开始。

前阶段输出文档—>后阶段输入文档。

推迟实现的观点:设置系统分析与设计、推迟物理实现。

质量保证的观点:

每个阶段必须完成规定的文档

每个阶段结束前要对文档评审,以便尽早发现问题,改正错误。

传统瀑布模型存在问题

传统的瀑布模型过于理想化

实际项目很少按照该模型给出的顺序进行;

在设计阶段可能发生规格说明文档中的错误。

而设计上的缺陷或错误可能在实现过程中显现出来。

在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。 

不适合需求模糊的系统

开发初始阶段很难彻底弄清软件需求 

用户常常难以清楚地给出所有需求;用户必须有耐心,等到系统开发完成; 

二、原型模型:

以某个软件原型为参照模型的开发方法,叫做原型法。在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环几次,直到客户确认为止。

快速原型模型特点

“逼真”的原型可以使用户迅速作出反馈

循环回溯和迭代:非线性模型

使用快速开发工具

种类

渐进型:对原型补充和修改获得最终系统

抛弃型:原型废弃不用

应防止的偏向

舍不得抛弃,从而影响软件质量

增量模型

先完成一个系统子集的开发,再按同样的开发步骤增加功能 (系统子集),如此递增下去直至满足全部系统需求。系统的总体设计在初始子集设计阶段就应作出设想。

增量

小而可用的软件

第一个增量通常是软件的核心

特点

在前面增量的基础上开发后面的增量

每个增量的开发可用瀑布或快速原型模型

每个增量开发的顺序性和总体的迭代性相结合

增量模型的优点

在较短时间内向用户提交可完成部分工作的产品,并分批、逐步地向用户提交产品。从第一个构件交付之日起,用户就能做一些有用的工作。

整个软件产品被分解成许多个增量构件,开发人员可以一个构件一个构件地逐步开发。

逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计,但在设计阶段多付出的劳动将在维护阶段获得回报。

使用增量模型的困难

在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。此外,必须把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必须简单、方便,也就是说,软件体系结构必须是开放的。

开发人员既要把软件系统看作整体。又要看成可独立的构件,整体和独立的相互矛盾。

多个构件并行开发,具有拼装集成的风险。

螺旋模型

一个螺旋式周期

计划:确定目标,选择方案,选定完成目标的策略

风险分析:从风险角度分析该策略

建立原型:建立原型来实现本轮螺旋的目标。

评审:评价前一步的结果,计划下一轮的工作


 

优点

对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;

减少过多测试或测试不足;

维护和开发之间无本质区别。

特点

风险驱动

主要适用于内部开发的大规模软件项目

要有具有丰富风险评估专门知识的开发人员,否则风险更大。 

软件演化模型

形式化方法模型

•   形式化方法模型:基于程序变换和验证技术的软件开发

•   转换模型(transformationalmodel)

•   净室模型(cleanroommodel)

转换模型

•   开发过程

•   确定形式化需求规格说明书

•   进行自动的程序变换

•   针对形式化开发记录进行测试

•   特点

•   形式化软件开发方法

•   形式化需求规格说明

•   变换技术

•   程序自动生成技术

•   确保正确

净室模型

•   净室思想

•   在分析和设计阶段消除错误

•   在“洁净”状态下实现软件制作

•   形式化

•   盒结构表示分析和设计

•   正确性验证         


http://www.mrgr.cn/news/53782.html

相关文章:

  • 【编程语言】Kotlin快速入门 - 集合与Lambda
  • 学习笔记——动态路由——OSPF(距离矢量协议)OSPF路由类型
  • repo 命令大全详解(第二十二篇 repo upload)
  • 决策树(1)
  • [C#][winform]基于yolov5的驾驶员抽烟打电话安全带检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面
  • Pytorch常用函数汇总【持续更新】
  • 如何在Matlab界面中添加日期选择器?
  • Asp.net Core SignalR 跨域设置(Furion)
  • 软件工程的学习之详细绪论
  • Excel中如何进行傅里叶变换(FT),几步完成
  • 【JAVA毕业设计】基于Vue和SpringBoot的时装购物系统
  • 高效监控系统:Nightingale本地化部署与远程访问指南
  • 【经管】比特币与以太坊历史价格数据集(2014.1-2024.5)
  • 【C#】WPF 依赖属性,PasswordBox中的Password属性绑定
  • Unity Apple Vision Pro 保姆级开发教程-准备阶段
  • 使用pyqt编写一个可控制的移动矩形
  • 【C语言】strtok、strerror函数
  • 智融SW6236 AACC 四口多协议移动电源 SOC
  • 大话设计模式解读07-模板方法
  • 2024 复健记
  • C++左值和右值
  • csdn(最新交流群)
  • 本机运行Nacos容器每次都要重新创建容器,该怎么办?
  • Mockito单元测试的坑
  • 【Canvas与艺术】八瓣点心包裹之一
  • 【工具变量】A股上市企业大数据应用(2001-2023年)-参考柏淑嫄实践