软件工程重点记录-第一章1.3/1.4

1.3 软件生命周期

软件生命周期由软件定义软件开发运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。

时期阶段
软件定义时期问题定义,可行性分析,需求分析
软件开发时期总体设计,详细设计(系统设计),编码和单元测试,综合测试(系统实现)
软件维护时期不进一步分阶段,本质是压缩和简化的定义和开发过程

1.3.1 软件定义(系统分析)

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析

软件定义(系统分析)时期的任务是:

  1. 确定软件开发工程必须完成的总目标
  2. 确定工程的可行性
  3. 导出实现工程目标应该采用的策略及系统必须完成的功能
  4. 估计完成该项工程需要的资源和成本
  5. 并且制定工程进度表

1.3.2 软件开发

开发时期具体设计和实现上一个时期定义的软件。分为四个阶段:

  • 总体设计,详细设计(系统设计)
  • 编码和单元测试,综合测试(系统实现)

1.3.3 软件维护

维护时期的主要任务是是软件持久的满足用户需求。

  • 发现错误及时改错
  • 环境改变修改软件以适应环境
  • 用户新需求改进满足

1.4 软件过程(3WH)

  • 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
  • 软件过程描述为了开发出客户需要的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎样(how)做这些事以实现某一个特定的具体目标。
  • 通常使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命周期划分成哪些阶段以及各个阶段地执行顺序

1.4.1 瀑布模型

瀑布模型一直是唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。如下图所示为传统的瀑布模型
在这里插入图片描述
特点:

  1. 阶段间具有顺序性和依赖性
    两重含义: ①必须等前一阶段的工作完成之后,才能开始后一阶段的工作; ②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。
  2. 推迟实现的观点:磨刀不误砍柴工
  3. 质量保证的观点
    每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
    每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

传统的瀑布模型过于理想化,实际中采用的是带反馈的模型,允许修正前面的文档。
在这里插入图片描述

  • 实线箭头表示开发过程
  • 虚线箭头表示维护过程

瀑布模型有许多优点:

  • 可强迫开发人员采用规范的方法(例如,结构化技术);
  • 严格地规定了每个阶段必须提交的文档;
  • 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:

  • 因为瀑布模型是由文档驱动的,可能导致开发的软件不能真正满足用户的需求,用户的想法在使用到软件是会或多或少的改变

1.4.2 快速原型模型

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

在这里插入图片描述
主要优点:

  • 快速原型模型是不带反馈环的,
  • 软件产品的开发基本上是线性顺序进行的。

1.4.3 增量模型

增量模型也称为渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。

在这里插入图片描述
优点:

  • 能在较短时间内向用户提交可完成部分工作的产品
  • 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

困难:

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

1.4.4 螺旋模型

螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型
在这里插入图片描述

1.4.5 喷泉模型

“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。迭代是软件开发过程中普遍存在的一种内在属性。用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。
在这里插入图片描述

  • 代表不同阶段的圆圈相互重叠,这明确表示两个活动之间存在交迭
  • 在一个阶段内的向下箭头代表该阶段内的迭代(或求精)。
  • 较小的圆圈代表维护,圆圈较小象征着采用了面向对象范型之后维护时间缩短了。

1.4.6 Rational统一过程

(课上没怎么讲)

1.4.7 敏捷过程与极限编程

敏捷过程开发宣言由4个简单的价值观声明组成
在这里插入图片描述
极限编程(eXtreme Programming,XP)是敏捷过程中最富盛名的一个,其名称中“极限”二字的含义是指把好的开发实践运用到极致。

广泛应用于需求模糊且经常改变的场合。

1.4.8 微软过程

(略微带过)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值