热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

软件开发生命周期中的设计阶段_什么是软件生命周期模型?软件测试和软件开发的关系分析!...

软件生命周期这个词,对于大部分人应该比较陌生,但却不容忽视!正因为它的重要性,才有许多不同的软件开发生命周期模型࿰

343f1732ffb7f0ffacbb620a340a1a02.png

软件生命周期这个词,对于大部分人应该比较陌生,但却不容忽视!正因为它的重要性,才有许多不同的软件开发生命周期模型,但是它们都有一个共同的特点,那就是在生命周期中的某一时刻,软件都会被测试。今天我就和大家聊聊一些常用的软件生命周期模型,并重点强调了在各个模型中的测试工作,来帮助大家更好的了解软件生命周期。

070eb77578d80aa23d2aea1fccd3e7bc.png

软件测试生命周期分哪几个阶段?

大致分为:计划分析阶段、设计构建阶段、测试周期阶段、最后测试、实施阶段、测试后阶段,下面我们就来详细介绍这些阶段。

1、计划分析阶段

根据平常软件使用的特点,以及出现错误的频率及严重程度来做一个衡量的标准。大致分析出问题出现时间的范围,根据软件测试用例进行采用手工干涉或自动化检测干涉的措施。

2、设计构建阶段

依据已分析出的问题来进行设计方法,并建立出文档。比如说产品的规格,产品的内部文档,产品的业务需求文档,产品的说明书等,构建出具体步骤。

3、测试周期阶段

依据用例的估计时间和优先权来确定每个周期所需要的测试用例,从而来估计单元测试所需要的资源。

4、测试和实施阶段

就是依据测试报告和测试周期阶段所确定的用例和资源,来进行干预和实施来解决问题,保证质量的标准。

5、测试后阶段

实施后开展评估会议并回顾整个过程,依据这些经验所得出的一系列数据并准备最终的相关确定的缺陷报告以及相关的度量单位,并由此来制定出相应的解决策略用来防止这些问题的重复发生。

软件测试生命周期我们归类的这五个阶段,都是相互联系,相互依辅,紧密关联的,每一步骤都缺一不可,我们大家认识了生命周期也就方便了我们的工作。

软件生命周期模型

1、顺序生命周期模型
通常用V型生命周期模型和瀑布生命周期模型来表示这种顺序的开发过程。而事实上,这两种生命周期模型有许多不同的形态,将不同的阶段引入生命周期模型,并在不同阶段之间设立边界。以下介绍的生命周期模型的各个阶段是经过许多最有经验的开发者经过反复实践而得来的。

7bdd3f9a2198be83ceb9eb37a8b21867.png

 图1、V型生命周期模型

0a76f31a1314b7b0a1ce82a07d851f50.png

图2、瀑布生命周期模型

* 需求分析阶段
这个阶段主要是收集并分析用户的需求,并且根据软件需求建立完整而明确的需求说明书。
* 概要设计阶段
在这个阶段,针对用户需求的软件结构将会被设计,并确定软件内部各个部件的相关联系。
* 详细设计阶段
软件各个部件的执行功能将被详细说明。
* 遍码与单元测试阶段
在本阶段,将对软件的各个部件进行编码,并且进行单元测试以确定各个部分确实执行了详细设计阶段所制定的目标。
* 软件集成阶段
这个阶段被测试过的各个部件被逐渐集成起来测试直到构成了一个完整的软件。
* 系统集成阶段
这个阶段将软件程序集成起来,构成产品并进行测试。
* 验收测试阶段
这个阶段将进行测试以验证软件确实完整的执行了用户的需求。

2、 渐进开发生命周期模型
软件开发所具有的一个问题就是用户急需软件产品,但是开发者却要花费很长的时间去完整地进行开发。那么取一个折中的解决方法就是节省一些时间,但在功能上打一点折扣——开发出一个功能有所缩减的试用版给用户,作为完整版发布前的一个跳板。也可以将这个跳板作为软件减少软件开发风险的一种方式。
通常将这种方法称为渐进开发或是执行阶段。与之相对应的生命周期模型被称为渐进开发生命周期模型。在渐进开发的生命周期之中,每一个独立的阶段都将遵从V型和瀑布型生命周期模型。

8ec036e6cd8d61cb63d4b5d756177de4.png

 图3、渐进开发生命周期

每一个软件的发布都会经过验收测试以证明软件的各个部分所构成的整体确实实现了需求。但是每个阶段的测试和集成将会耗费大量的时间和精力。由于过多的开发周期会增加成本,耗费时间,所以应该经过认真估算,尽早地规划好到底应该使用多少个周期来进行软件的开发。3、 迭代生命周期模型
迭代生命周期模型并不是一开始就完全适应需求,而是先根据说明先开发软件的部分些可执行部件。而是先开发一些具有部分功能的部件,这些部件要求能够通过审查以确定更进一步的需求。不断重复这个过程,为此模型的每一个周期遍写出更新版本的软件。
一个迭代周期模型由下图的四个连续部分组成不断重复组成。

1ff6130faf83f467c099f8a761a3f8e1.png

 图4、迭代生命周期模型

* 需求分析阶段
在这个阶段,主要是收集并分析用户的需求,并且制定这个迭代模型最终并且完整的需求说明书。
* 定义阶段
在这个阶段,设计出适应需求的软件解决方案。这有可能是一个全新的设计,也有可能是原来设计的一个延伸。
* 执行、测试阶段
在这个阶段,将对软件进行编码,集中并进行测试。
* 审查阶段
在这个阶段,将对软件进行评估,对目前的需求进行审查,并对其进行修改和更新。

在迭代模型的每一个周期,都要作出一个决定:要将编写出的软件抛弃,还是作为下一个周期的起点。如果软件完全符合了需求,那么就可以进行发布,否则就是一个失败的开始。
迭代模型的前三个阶段就好比是简化版本的V型模型或是瀑布模型。迭代模型中的每一个周期所编写出来的软件都要为软件的集中,系统集中和验收进行单元测试。在迭代模型中软件的开发经历了多少个这样的周期,那么就要进行多少次这样的测试。

总结:

无论何种生命周期模型被用于软件的开发,都会对软件进行测试。质量、功能都很完美的软件产品需要在其软件开发生命周期的早期进行测试,并且无论发生什么变故,都要进行完善的回归测试。
在渐进、迭代生命周期中,这种行为显得尤为重要。重复测试对于软件质量的控制,在渐进、迭代模型中相比于传统的顺序生命周期模型也显得尤为重要。
回归测试是对软件进行维护的重要手段。在软件开发之中,由于不能完全预料到最终的结果,会进行诸多的修改。但如果不对软件使用完善回归测试,就会导致产品质量的下降。
软件开发管理中常犯的一个错误就是在V型模型或是瀑布模型开发的起始阶段,采用了不完善的管理制度,那最终就会引起问题的累积而使局势无法得到控制。这就是使软件开发走向失败的另一种情形。

还有很多软件开发生命周期模型在这里没有提到,有兴趣的朋友可以查阅相关资料,进一步深入了解!

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。



推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 苹果新专利或将引领无边框手机时代
    苹果公司最近公布了一项新的专利技术,该技术能够在设备屏幕中嵌入光线传感器,这标志着苹果在实现无边框手机设计上迈出了重要一步。这一创新将极大提升手机的屏占比,并可能为未来的iPhone带来革命性的变化。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • RT,个人博客图片管理(方便管理,大家 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细介绍了《问道》手游在2020年12月31日进行的服务器维护情况,以及此次更新中新增的跨年狂欢活动和寒假活动等内容。同时,文章还涵盖了其他重要的系统优化与修复信息。 ... [详细]
author-avatar
最佳永恒的六二
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有