软件的生命周期(软件工程各阶段的工作)

news2024/12/22 23:00:45

其实软件工程是一个非常大的概念,我们的软件测试也好,软件开发也好,软件运维也好,其实都是属于软件工程的范畴。

今天就讲一讲软件工程和我们软件测试相关的一些内容。

我们今天三个主要的节点:

 

1.软件的生命周期

至少我们得知道软件它从开始到结束会经过一些什么样的环节,哪一些环节由哪一些人来做,这个其实就是软件的生命周期。

2.软件开发模型

软件的诞生其实是和开发息息相关的。

3.软件测试模型

开发人员把软件做出来之后,就可以让测试来进行一个相关的测试,测试执行完成,就可以进行上线(交付)

因为在开发和测试的过程中间,通过这么多年的发展,整理出了一系列的开发模型和测试模型。这些模型都是有利又有弊,有一些是符合当前需求的,有一些是不太符合当前需求的。我们就来做一个扩展。

软件生命周期

软件生命周期(SDLC,Systems Deve lopment Life Cycle)是指软件开始研制到最终被废弃不用这整一个过程。(这个概念我们要记一下)

软件生命周期包括 问题定义及规划、需求分析、系统设计、软件编程、软件测试、软件维护等阶段。(参考下方类比图理解再记忆)

软件生命周期各阶段工作

1.问题定义及规划阶段(计划阶段)任务:此阶段是软件开发与需求方共同讨论,主要确定软件的开发目标及可行性。输出文档:可行性研究报告和项目开发计划比如说微信、QQ、滴滴打车,之前没有这些软件的时候,是如何产生的呢?产品经理有这样子的一个想法,腾讯高级执行副总裁,微信事业群总裁 微信之父 张小龙 想要做一个微信这样的软件,有了这个想法之后,就召集团队相关人员讨论并制定计划,确定这个软件的开发目标及其可行性。有没有开发的价值,能不能给公司带来效益。

这个就是问题定义及规划阶段(计划阶段)对于提出这个想法的人我们一般也把他叫做产品经理或者客户,有了想法找方案公司来实现落地。计划提出来之后,一般还会去做一些调研,产品有没有社会价值或者说市场价值。(市场调研)然后进入第二个阶段。---专业人做专业事:客户/产品经理

2.需求分析阶段任务:在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。输出文档:软件需求规范说明书(或者原型图)数据要求说明书我们既然去做微信或者滴滴,我们就要去确定软件中间是要有哪一些功能的,有一些是马上能够想到的,有一些是暂时想不到的。因此我要把想得到的这些功能详细的写出来,能够把原型图画出来是最好的。因为你有了这些文字性的说明、原型图,那就便于开发后期研发以及一系列操作。

---专业人做专业事:需求人员/产品经理

3.软件设计阶段接下来就要正式对软件进行实现了,就是根据在第二个阶段你对每个功能要怎么样去进行实现,要达到什么样的效果,一次进行系统设计、框架设计、数据库设计,都是在这个阶段去完成的。什么是系统框架设计、数据库设计?零基础小白可能会觉得有些抽象,举个例子。

建房子,前面第一个阶段第二个阶段就相当于土地已经批了,也确定了是盖商业还是盖住宅,盖几栋,几个单元,一层是几户,几个楼梯。基本都确定了,确定之后。设计阶段:接下来就是设计,设计师出图纸,施工单位确定实施细节。任务:根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。概要设计:主要架构的实现,指搭建结构、表述各模块功能、模块接口连接和数据传递的实现等项事务。详细设计:对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等。输出文档:总体设计说明书详细设计说明书、数据库设计说明书

---专业人做专业事:设计/开发

4.软件编码开发任务:编码,将软件设计的结果转化为计算机可运行的程序代码。输出文档:用户手册、操作手册、模块开发卷宗以建房子为例子,这个阶段就是施工阶段。---专业人做专业事:开发/研发

5.测试阶段测试:对软件进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。输出文档:测试计划、测试分析报告,项目与开发总结报告以建房子为例子,这个阶段就是第三方的质检机构进行检测、验收阶段。---专业人做专业事:测试人员 6.部署和维护阶段部署任务:讲软件上线,或者给客户进行部署安装维护任务:软件开发完成并投入使用后,由于多个方面的原因,软件不能继续适应用户需求,要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。---专业人做专业事:运维人员(以及多方人员)7.升级和淘汰阶段升级:修复错误、添加需求等,编码后再测试,测试通过则进行推送升级。

OK,这个就是软件生命周期的几个阶段,以及每个阶段要做的事情,每个阶段主要负责人以及参与的人员。每个阶段都由不同的人员来负责,软件诞生到结束要经历一系列的过程,不是一天两天能完成的。

 总结:
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托

1 写在前面的话 我们在之前写的《QT(7)-初识委托》文章末尾提到,“使用一个类继承QStyledItemDelegate实现常用的控件委托,在使用时可以直接调用接口,灵活实现各种委托”。我们接下来几篇文章将先详细讲解各个控件的委托,最后整理…

怎么理解输入输出流 - 输入输出流之我解

背景 昨天领导开会,讨论两个接口之间参数问题,这个参数涉及文件传递的需求;其中一句话引起了我的思考:“参数怎么定义?能不能定义成字符流?” 当时我沉思了一下,懵的 没明白她的意思 我理解的比…

swagger2接口文档

文章目录简介Open APISwagger简介Spring-fox入门案例第一步:导入依赖第二步:编写controller类第三步:编写启动类第四步:运行启动类并访问ui页面Swagger UI 介绍基础信息配置自定义注解(防止有些类不生成接口文档&#…

数据结构:数组及特殊矩阵

数组及特殊矩阵一、认识数组1️⃣ 定义2️⃣ 存储结构1. 一维数组2. 二维数组二、特殊矩阵的压缩存储1️⃣ 对称矩阵💤思考1:有多少个二维元素A[0...n-1][0...n-1]存于一维元素中❓💤思考2:按行排列,二维数组A[0...n-1…

198分成功上岸浙江工业大学MBA的备考经验分享

我是2022年刚被浙江工业大学MBA项目录取的一名新生,新的一年管理类联考备考已经开始,最近身边有很多小伙伴也都在咨询这方面的信息,趁着今天有空给大家分享下我的经验。 在备考开始之前首先要确定目标,因为工作在杭州&#…

【正点原子Linux连载】第四章 SDK包的使用 摘自【正点原子】ATK-DLRV1126系统开发手册

1)实验平台:正点原子RV1126 Linux开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692176265749 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第四章 S…

学习周报-20230203

文章目录一 在rhel7系统使用Mariadb一 联系和区别二 需求三 部署安装3.1 环境准备3.2 安装软件包3.3 启动服务3.4 设置防火墙策略四 创建用户和库表4.1 登录数据库4.2 创建用户4.3 创建数据库和表五 备份和恢复5.1 备份 com 数据库5.2 模拟误删除操作5.3 恢复表二 使用grep忽略…

如何建立异形板框的内缩和外扩

如何建立异形板框的内缩和外扩 首先把需要内缩和外扩的外形图设置在信号层(比如TOP),把线宽改为0mil(方便计算)。然后选择外形图,执行命令TJ,就可以得到内缩和外扩图形。然后把生成的图形修改到…

Linux-查找文件、软链接、打包压缩和软件安装

查找文件find软链接ln打包和压缩tar软件安装apt-get1.查找文件find命令功能强大,通常用来在特定的目录下搜索符合条件的文件序号命令作用01find[路径] -name"*.py"查找指定路径下扩展名是.py的文件,包括子目录如果省略路径,表示在当…

最新整理Spring面试题2023

Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 有些同学可能会抢答,不熟悉!!! 好了,不开玩笑,面对这个问题我们应该怎么来回答呢?我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍…

【C++入门】引用详解(引用的特性、引用的使用、引用与指针的区别)

文章目录1 引用概念2 引用特性3 使用场景4 常引用5 传值与传引用的效率比较5.1 值和引用作为函数参数的性能比较5.2 值和引用作为返回值类型的性能比较6 引用和指针的区别1 引用概念 引用不是新定义一个变量,而是给已存在的变量取了一个别名,编译器不会为…

浅谈网络流

网络 网络是一张单向图 , 每条边都有一个权值 c(u,v)c(u,v)c(u,v) 表示边 (u,v)(u,v)(u,v) 的容量. 特别的 , 图上有源点 (s)(s)(s) 和汇点 (t)(t)(t). 网络流 在一张网络上 , 从源点流出 , 最终流入汇点的流. f(u,v)f(u,v)f(u,v) 表示 (u,v)(u,v)(u,v) 的流量. 满足 : 容…

【测试总结系列-1】质量保障之测试左移和右移

在开发一个系统或者说软件,需求分析、软件设计、程序编码、软件测试、运行维护,这些阶段必不可少。整个周期中,作为测试人员,不是只在测试阶段才能发挥作用,也不是仅有测试对软件质量负责,一个项目团队&…

关于图片上传和在页面显示问题

最近在工作中遇到一个关于图片上传的问题。根据之前项目的经验,我知道目前这个公司上传图片有两种方式, 一种是把图片上传到公司服务器上,然后把图片放在服务器上的地址存在数据库中,要获得图片的时候直接从库中拿地址就行了另一…

分析网络抓包用 python 更高效

Abstract分析网络抓包用 python 更高效AuthorsWalter FanCategorylearning noteStatusv1.0Updated2023-01-10LicenseCC-BY-NC-ND 4.0 网络抓包分析用的最多的两大工具是 tcpdump 和 wireshark. 一般我们通过 tcpdump 或者 wireshark 来捕获网络包为 *.pcap 或者 *.pcapng 文件 …

Elasticsearch:在 Elasticsearch 中按距离有效地对地理点进行排序

计算搜索中两点之间的距离有很多用例。 如果你正在处理地理数据,那么无论你从事何种业务,这都必然会出现。 然后,在对这些点进行排序时,你可能需要考虑距离,因为……好吧,为什么不呢? 所以这里…

算法训练营DAY48|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

这一期到了买卖股票专题,买卖股票的有一些题型,可以使用贪心算法来求解,甚至有时候比动态规划更简单一些,但是本期是讲动态规划的运用,所以不做对于贪心的分析。今天只讲两道例题,其中第二题是第一题的变种…

[NeurIPS 2017] Poincaré Embeddings for Learning Hierarchical Representations

ContentsIntroductionPoincar EmbeddingsThe Limitations of Euclidean Space for Hierarchical DataEmbedding Hierarchies in Hyperbolic SpaceEvaluationReferencesIntroduction 如今,表征学习变得越来越重要 (e.g. word embedding, embeddings of graphs, embe…

如何在电脑上安装 Windows 版桌面编辑器 v7.3

线上编辑器的桌面端版本不需要持续的互联网连接,还可在计算机上处理脱机文件。因此,如果您需要此类功能,可从我们的网站中下载并安装桌面编辑器。 ONLYOFFICE桌面编辑器最新版 最近 ONLYOFFICE 发布了 v7.3,最新版本的桌面编辑器…

SpringBoot+Vue点餐系统

简介:本项目采用了基本的springbootvue设计的点餐。系统。详情请看截图。经测试,本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVue点餐系统源码作者LHL项目类型Java EE项目 (前后分离&a…