首页 > 其他分享 >软件工程的生命周期和模型种类

软件工程的生命周期和模型种类

时间:2023-09-29 16:44:06浏览次数:33  
标签:集成 生命周期 模型 软件工程 阶段 测试 设计 软件

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。根据GB8566-88(《软件工程国家标准——计算机软件开发规范》),可以将软件生命周期概括为 6个阶段:可行性研究、需求分析、设计、实现、测试和维护。

1、可行性研究阶段

此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

2、需求分析阶段

在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,也是在整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。
分析来源(原型图/软件需求说明书)、参与人员(主持–产品经理,其他参与、研发、设计、测试)、关注一个问题–测试参与这个需求分析的目的是什么?(知己知彼、方便提出疑问)

3、设计阶段

软件设计可以分为两个阶段概要设计和详细设计,实际上软件设计的主要任务就是把软件分解成模块是指实现某个功能的数据和程序的说明。

概要设计:概要设计确定整个软件的技术蓝图,负责将需求分析的结果转化为技术层面的设计方案。在概要设计中,需要确定系统架构、各子系统间的关系、接口规约、数据库模型、编码规范等内容。概要设计的结果将作为程序员的工作指南,供程序员了解系统的内部原理,并在其基础上进行详细设计和编码工作。
详细设计:详细设计完成编码前最后的设计,详细设计在概要设计的基础上,进行细化,如类设计。详细设计不是开发过程中必需的阶段,在一些规模较小、结构简单的系统中,详细设计往往被省略。同样,在某一次软件开发中,可能只会对部分关键模块进行详细设计。

4、实现阶段

软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一段程序设计语言表示的“源程序清单”。充分了解软件开发语言,工具的特性和编程风格,有助于开发工具的选择 保证开发产品的开发质量。

5、测试阶段

在设计测试用例的基础上,测试软件的各个组成模块,然后,在把各个模块集成起来,测试整个产品的功能和性能是否能够满足已有的规格说明。测试阶段有集成测试和确认测试。

集成测试:集成测试又称为组装测试。通过单元测试的程序并不意味着没有缺陷,当程序单元被集成到一起进行交互的时候,往往会出现单元测试中不能发现的问题。同单元测试不同,集成测试必须经过精心的组织,指定集成测试计划,确定如何将这些程序单元集成到一起,按照什么样的顺序进行测试,使用哪些测试数据等问题。
确认测试:当完成集成测试后,软件之间的接口方面的错误已经排除,这时需要验证软件是否同需求一致,是否达到了预期目标。同集成测试一样,确认测试也需要进行计划和组织,逐步地验证软件系统同需要的一致性。经过确认测试的软件将投入正常使用,并进入维护期。

6、维护阶段

维护是指已经完成对软件的研制工作并交付使用后,对软件产品所进行的错误改正,适应环境变化和增强功能等软件工程修订,做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以扩展软件功能,提高性能,为用户带来明显的经济效益。

把整个软件生存周期划分为若干阶段,可以使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。

拓展阅读:
软件生命周期模型
  典型的几种生命周期模型包括:

瀑布模型(Waterfall Model):在该模型中,首先确定需求,并接受客户和软件质量保证(SQA)小组的验证。然后拟定规格说明,同样通过验证后,进入计划阶段。可以看出,瀑布模型中至关重要的一点是只有当一个阶段的文档已经编制好并获得软件质量保证小组的认可才可以进入下一个阶段。这样,瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到,因为整个的模型几乎都是以文档驱动的,这对于非专业的用户来说是难以阅读和理解的。

迭代模型(Rational Unified Process, RUP):在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。

快速原型模型(Rapid Prototype):在功能上等价于产品的一个子集。注意,这里说的是功能上。瀑布模型的缺点就在于不够直观,快速原型法就解决了这个问题。一般来说,根据客户的需要在很短的时间内解决用户最迫切需要,完成一个可以演示的产品。这个产品只是实现部分的功能(最重要的)。它最重要的目的是为了确定用户的真正需求。

转载:https://worktile.com/kb/ask/16285.html
https://www.bilibili.com/video/BV1Dg411K77t/?spm_id_from=333.337.search-card.all.click&vd_source=46d50b5d646b50dcb2a208d3946b1598

标签:集成,生命周期,模型,软件工程,阶段,测试,设计,软件
From: https://www.cnblogs.com/chenyi502/p/17737096.html

相关文章

  • Windows网络编程之事件选择模型(三)
    一、WSACreateEvent函数WSACreateEvent函数是Windows套接字API中的一部分,它用于创建套接字事件对象,以便在套接字操作上等待事件发生。这个函数通常与异步套接字操作一起使用,以允许应用程序异步地等待套接字事件的发生,而不需要阻塞线程。函数原型:WSAEVENTWSAAPIWSACreateEven......
  • FastAPI学习-25.response_model 定义响应模型
    你可以在任意的_路径操作_中使用 response_model 参数来声明用于响应的模型:@app.get()@app.post()@app.put()@app.delete()fromtypingimportAny,List,UnionfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel)......
  • 玩一玩“baichuan2”,很强的中文开源模型,2060s即可流畅运行!
    OpenAIChatGPT出来后,热闹了好一阵子!先是一波大厂闭源PK。然后Meta不按套路出牌,直接放出来开源的Llama1-2 后来就百花齐放了。但是外国的模型默认情况下中文支持都不好。另外很多开源模型,最简单的对话都一塌糊涂。今天来玩一个不错的中文开源模型。先来简......
  • 软件工程--结对项目
    这个作业属于哪个课程软件工程这个作业的要求在哪里结对项目参与人马楚泽(3121005225),谢剑滔(3121005232)github链接PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划3030Estimate·估计这个任务需要多少......
  • 《软件工程:一种实践方法》读书笔记二
    读完本书后,我深刻认识到了软件工程的重要性。软件工程不仅仅是一套流程和工具,更是一种系统的思维方式和态度。通过本书所提供的实践方法,我们可以更好地进行软件开发和维护,提高软件质量,降低维护成本。同时,本书也让我明白了软件工程师的责任感和使命感。作为软件工程师,我们需要时刻......
  • 聊聊基于Alink库的决策树模型算法实现
    示例代码及相关内容来源于《Alink权威指南(Java版)》概述决策树模型再现了人们做决策的过程,该过程由一系列的判断构成,后面的判断基于前面的判断结果,不断缩小范围,最终推出结果。如下,基于决策树模型预测天气,是最常见的示例。天气的整个预测过程,就是不断地判断推测的过程。特征......
  • 盒子模型-CSS
    /*内边距/padding:20px;/边框/border:20pxsolidblack;/外边距*/margin:50px;/*实线//border:10pxsolid#000;//虚线//border:10pxdashed#000;//点线*/border:10pxdotted#000;/*上下左右*/border-top:10px......
  • Vue源码学习(八):生命周期调用
    好家伙, Vue源码学习(七):合并生命周期(混入Vue.Mixin)书接上回,在上一篇中,我们已经实现了合并生命周期现在,我们要在我们的初始化过程中,注册生命周期 1.项目目录 红框为本篇涉及到的.js文件 2.先来看/utils/index.jsexportconstHOOKS=["beforeCreated......
  • 华为再放大招!联合伙伴发布AI新人类,助力场景化大模型商用落地
    原创|文BFT机器人随着人工智能技术的不断发展,我们正迎来一个全新的智能时代。在这个时代里,人工智能将在各个领域发挥重要作用,为人类带来更智能、便捷和高效的生活体验。为了加速人工智能的商用落地,华为联合伙伴发布了系列AI新新人类,致力于推动场景化大模型的应用和发展。这一系......
  • 隐马尔可夫模型之Baum-Welch算法详解
    隐马尔可夫模型之Baum-Welch算法详解前言在上篇博文中,我们学习了隐马尔可夫模型的概率计算问题和预测问题,但正当要准备理解学习问题时,发现学习问题中需要EM算法的相关知识,因此,上一周转而学习了EM算法和极大似然估计,对隐藏变量的求解有了一些自己的理解,现在我们继续回过头来学习隐马......