技术标签: 软件工程
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级等阶段。
这一阶段是软件开发方和需求方共同讨论,目的是确定软件开发的目的和可行性,制定项目总体开发计划。其实就是完成一个初步需求。
在确定软件开发可行的前提下,对软件需要实现的各个功能进行详细分析,完成PRD文档(产品需求文档),并提交产品部,开发部,测试部评审。这里,我们需要注意到一点就是,同样的需求在软件开发过程中会不断变化和深入,此时我们便需要制定需求变更计划来应对这种变化,以保证整个项目的正常进行。需求文档通过评审之后,技术部制定技术文档,并进行技术评审,评审通过进行软件开发。
这个阶段主要是根据需求分析的结果,对整个软件系统进行设计,包括系统结构的设计,数据库的设计等等。软件设计又被分为详细设计和概要设计,这两个概念又如何理解呢?
这一阶段是将软件设计开发的结构转化为计算机可以运行的代码。在编码中要制定统一,符合标准的编写规范,以保证代码的可读性,易维护性,提高代码的效率。完成模块的编码后提交测试。
软件设计完成之后,软件需要经过严密的测试,以发现整个软件设计过程中存在的问题并加以改正。测试的方法主要有白盒测试和黑盒测试。这里我们要注意,测试之前需要制定详细的测试计划文档,并且严格按照测试计划文档进行测试,以减少测试的随意性。测试的过程主要有单元测试,集成测试和系统测试以及验收测试。那么每一个测试阶段又该如何理解呢?下面我们一一介绍。
软件维护时软件生命周期中持续时间最长的阶段,在软件开发完成并投入使用之后,由于多方面的原因,软件不能继续使用用户的需求,这是如果要延续软件的寿命,就必须对软件进行维护,软件的维护包括纠错行维护和改进型维护。
过程模型(Process Models) 意图解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动(activities)有效地组织了起来。
他们之间的线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)关系会产生不同的模型。常见的过程模型包括:瀑布模型、原型模型、增量模型、螺旋模型等。
瀑布模型将软件生命周期划分为 制定计划、需求分析、软件设计、程序编写、软件测试和运行维护 等六个基本活动,并且规定了它们 自上而下、相互衔接的固定次序 ,如同瀑布流水,逐级下落。其 严格强调文档,前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到开发的后期,才可以看到软件的“模样”。
优点:
缺点:
虽然现在瀑布模型已经不是最主流的开发模式。但是不管什么软件项目,不管采用什么开发模式,有四种活动是必不可少的,那就是需求、设计、编码和测试。而这四项活动,都是起源自瀑布模型,也是瀑布模型中核心的部分。 管理人员喜欢瀑布模型的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑。
快速原型模型(Rapid Prototype Model)又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
由于种种原因,在需求分析阶段得到完全、一致、准确、合理的需求说明是很困难的。快速原型是利用原型辅助软件开发的一种新思想。 经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。
优点
原型系统已经通过与用户交互而得到验证,克服瀑布模型的缺点,据此产生的规格说明可以正确地描述用户的需求。因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。
开发人员通过建立原型系统已经学到了许多东西(至少知道了“系统不应该做什么,以及怎么不去做不该做的事情”),因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
缺点
快速建立起来的系统结构加上连续的修改可能会导致产品质量低下,因此不适合大型系统的开发(适合开发小型的、灵活性高的系统)。
使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新
所选用的原型(开发技术和工具)不一定符合主流的发展
快速原型模型是不带反馈环的,软件产品的开发基本上是按线性顺序进行的。
螺旋模型采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审 4 个阶段,由这 4 个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。采用螺旋模型的软件过程如下图所示:
优点
增量模型(Incremental Model)融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。产品被分解为多个组件,每个组件都是单独设计和构建的。各个构件完成后逐渐并入已有的软件体系结构中。
当使用增量模型时,第 1 个增量往往是核心的产品,即第 1 个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
增量模型的特征:
缺点
文章浏览阅读1.1k次。一、synchronized关键字https://blog.csdn.net/jiangshangchunjiezi/article/details/88118063此关键字修饰方法,当方法体规模很大时,会影响程序的执行效率,为了提高效率,出现了synchronized块二、wait()方法与notify()方法wait、notify使用:https://blog.csdn.net..._init是线程同步的方法吗
文章浏览阅读118次。本节书摘来自异步社区《精通ArcGIS Server 应用与开发》一书中的第2章,第2.4节,作者: 何正国 , 杜娟 , 毛海亚 更多章节内容可以访问云栖社区“异步社区”公众号查看。2.4 ArcGIS Server的安装与配置精通ArcGIS Server 应用与开发2.4.1 安装环境1.ArcGIS Server 10支持的平台Windows..._精通arcgis server 应用与开发
文章浏览阅读793次。1. 离散傅立叶变换的 Matlab实现Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。这些函数的调用格式如下:A=fft(X,N,DIM)其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X 进行零填充,否则将进行截取,使之长度为 ..._matlab中dctmtx用法
文章浏览阅读37次。rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ cd – /* 回上一级目录 */ cd ~ /* 回根目录 */ mv tools tool /* 把tools目录改名为tool */ ln -s tool bac/* 给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了...
文章浏览阅读1.2k次。以上是30个常用的思科设备巡检命令,用于获取设备的各种配置和状态信息。在网络设备的日常运维和故障排查中,这些命令可以帮助管理员快速了解设备的状态、配置和性能情况,以便及时发现和解决潜在的问题。今天给大家带来的是30个思科设备巡检的命令,每个命令都有解释,希望对每位网络工程师有所帮助!你好,这里是网络技术联盟站。_思科ac巡检命令
文章浏览阅读2w次。mac电脑触控板快速选择前提:在截图或者选择的时候,点击触控板在拖动会很麻烦,mac提供一个三指拖移的功能,能够用三指快速拖移,这样就变成四指切换。步骤左上角,点击苹果logo,选择系统偏好设置点击辅助功能,选择“鼠标与触控板”点击“触控板选项”,勾选启动拖移,选择“三指拖移”,选择“好”就设置完毕啦。这样,就可以一指滑动,轻触点击;二指滑动三指拖移四指切换面板棒呆..._mac trackpad 两指移动
文章浏览阅读4.2k次,点赞15次,收藏49次。Lidar_AI_Solution环境配置_lidar scn
文章浏览阅读966次,点赞28次,收藏16次。Linux系统信息收集操作大全,收藏随时查看!!!!_)使用两种方式在用户信息文件中查看此用户信息(只看此用户),把结果分别存放于
文章浏览阅读318次。什么是GitGit是一个版本控制系统(Version Control System,VCS)。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。多年前,我在法国做第一个实习时(2011年),那时候自己编程还在入门阶段,根本没听过版本控制系统。那时候真是蠢(现在也没好到哪里去),每次修改多一点的代码,就要复制、黏贴整个项目目录。因此,公司的电脑里有着几十个项目的副本(简直了)。前不久,我看到公司的一个实习生也在做和我多年前同样的事。而且我们问他,他说没听说过版本控制系统._公司项目为何不直接在gitlab上建立
文章浏览阅读342次。右键以管理员身份运行。_nvm use 18.19.1
文章浏览阅读1.2k次。wps设置填充方式:按年/月/日填充1.首先在新建的WPS表格中输入某一天的日期,将开始一栏中的“常规”改为长日期2.点击表格的右下角黑色加号,下拉,下拉完成后会出现一个自动填充选项在如图位置 没截上3.点击填充选项,选择填充方式即可如图,以年填充4.右击选中的表格,选择设置单元格格式,类型选择为星期,即可查看某日是星期几如图..._wps excel根据年份月份星期填日期
文章浏览阅读444次。create or replace procedure pro_testisbeginselect * from t_test;end pro_test;这个正确吗?昨天因为这个,耽误了好久(在一个存储过程中用了select语句,但既没有用游标也没有用into).在存储过程(oracle)中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的..._addrecords out sys_refcursor