软件开发流程的演变流程演变过程流程,你知道吗?
发表时间:2023-10-12 10:01:08
文章来源:炫佑科技
浏览次数:153
菏泽炫佑科技
软件开发流程的演变流程演变过程流程,你知道吗?
从事软件测试行业,每天测试的对象都是软件。 想要更好的完成测试工作,首先需要对被测试的对象,即软件有一个基本的了解。
软件
计算机程序、与计算机系统操作相关的可能文件、文档和数据。
程序简单易懂,是一个可以操作的产品。 比如wps、微信、QQ、网页等都是程序。 例如,需求文档、设计文档、用户手册都是文档。 页面显示的、用户输入的都是数据。
因此,程序、文档、数据的结合就是一个完整的软件。
软件开发过程的演变
流程的演变实际上就是软件开发模式的演变。
软件开发模式是在软件开发中逐渐总结出来的大量经验。 这些经验经过提炼总结,成为发展模式。 比如**个是瀑布模型,后来发展了敏捷开发模型,现在已经发展成为*流行的模型。
下面分别介绍这几种开发模式。
传统瀑布模型
大家都熟悉瀑布,水从上流到下。 瀑布模型也是如此,像水流一样从上到下一步步进行。
×413 8.44 KB
需求分析
无论你做什么软件开发流程的演变流程演变过程流程,你知道吗?,分析绝对是必不可少的。 瀑布模型也是如此。 首先要做的是需求分析。
需求文档是产品人员从用户那里理解和收集的内容。 了解用户想要什么后,将其细化为文档。 文档中会清晰的列出系统的通用功能模块、大功能模块的小功能模块,同时也会列出相关的接口和接口函数。 通过这个文档,就确定了产品的UI界面和功能。
设计
需求分析后,开始设计。 设计需要包括两个方面:
一切设计完成后,开发人员就可以进入编码阶段。
编码
在软件编码阶段,开发将根据设计好的方案通过代码来实现这些方案。
完成
实现相当于开发的代码实现了需求中的功能。
测试
实施完成后,测试人员就可以介入。这就是瀑布模型的过程。 获得代码后,进行测试。
发布维护
测试工作完成后,产品将上线上线,并持续维护产品。
特征
在瀑布模型中,软件开发的各种活动严格地以线性方式进行。 当前活动接受前一个活动的工作结果,并且当前活动的工作结果需要验证。
瀑布模型是一种线性模型。 它在所有发展模式中占有重要地位,是所有其他模式的基础。 其他模型都是在这个线性模型的基础上演化而来的。
瀑布模型的优点是显而易见的。 每个发展阶段都比较清晰。 强调早期规划和需求调查,更适合需求稳定的产品开发。
但由于开发模型是线性的,增加了开发的风险,因此早期的错误可能要到开发后期才被发现。
为了解决瀑布模型中的这些问题,后来慢慢发展出了其他的开发模型。
敏捷开发模式
敏捷开发模式是20世纪90年代以来逐渐引起广泛关注的一种新的软件开发方法。 这种开发模式更适合需求变化频繁、需要快速开发的场景。
常见的敏捷开发模型包括XP和Scrum。 下面分别介绍这两种开发模式。
XP极限编程
XP( )是一种近似螺旋式的发展方法。 它将复杂的开发过程分解为相对简单的小周期。 在每个周期中,项目人员和客户都可以非常清楚开发进度、变化、需要解决的问题、潜在的困难等,并可以根据实际情况及时调整开发流程。
×575 93 KB
从上图可以看出,极限编程从三个维度来组织开发流程。
编程方法
首先是编程方法的维度。 在这个纬度上,规定了开发者的开发方式。
小组练习
小组实践从团队合作的角度规定了工作方法。
交付与管理
*后一个是发布管理的维度。 交付是将产品送到客户手中。 发布是将产品放到网上并让用户可以使用。 一般来说,交付和发布就是让用户拿到产品并使用它。
从XP的开发模式可以看出,开发者和客户占主导地位。 测试工作基本上是通过自动化来进行的。 例如,编码过程中的测试驱动开发和持续集成也包括自动化测试。 总体来说,这种开发模式对开发和测试的要求非常高。 团队中的人必须有非常高的标准才能使这种模式成功运作。 这是开发小型项目的理想情况,并且相对难以实现。
SCRUM
在Scrum模型中,*基本的概念是。 其实就是一个冲刺,或者通俗地说,就是一个迭代周期。
在整个项目开始之前,会有一个产品。 使用产品来管理产品需求。 它是整个项目的概述文件。 它是按业务价值排序的需求列表。 列表项通常采用用户故事的形式。
Scrum团队从产品中心挑选*高优先级的需求进行开发。 选择要求在计划会议上讨论。
经过上面的讨论、分析和估算,得到相应的任务列表,可以调用。
在Scrum中,整个开发过程由几个短迭代周期组成。 短迭代周期称为短迭代周期。 每次的建议长度为两到四个星期。
在每次迭代期间,Scrum 团队都会举行日常会议。 根据每日演示中的目标检查进度,并做出调整以优化第二天的工作。
在每次迭代结束时,Scrum 团队都会交付一个可能可交付的产品增量。
在每次迭代结束时自动化软件开发,团队都会召开一次审查会议,向产品所有者和利益相关者展示已完成的功能。
审查会议之后和下次会议计划会议之前需要召开哪些回顾会议。 回顾会议的目的是找出过程中哪些地方做得好,哪些地方做得不好,以及团队可以做出哪些改进。
这就是整个SCRUM模型的工作流程。 在每一个,也就是一个迭代周期中,其实都是一个小瀑布。 在每个迭代周期中,都会完成从需求分析-设计-编码-测试-上线的完整流程。 不同的迭代周期可能部分重叠。 例如,如果**个迭代周期已经到达测试阶段,则第二个迭代周期的需求分析可能已经开始。 这样,循环和迭代就继续进行。
发展模式
(and 的组合),涉及软件开发生命周期的所有阶段。
它是一种非常注重开发(Dev)、运维(Ops)、测试人员之间沟通与合作的开发模式。
在这里,它是通过自动化的软件交付流程来使软件的构建、测试和发布变得更快、更频繁、更可靠。
它的出现其实是因为现在的软件需要更快的上线。 如果你想每天在线实现新功能。 但敏捷开发模式无论多快,也只需要一周的时间,无法满足这个要求。 于是大家意识到,要想更快上线,开发、测试、运维必须紧密配合。 因此,更适合用于需求变化频繁、开发、测试和运维需要敏捷的场景。
生命周期
让我们看一下模型中包含哪些阶段。
持续发展
这是软件生命周期中不断开发的阶段。 与瀑布模型不同,软件交付物被分解为多个开发周期短的任务节点,在很短的时间内开发和交付。
此阶段包括规划、编码和构建阶段
持续测试
在此阶段,不断测试开发的软件。
对于持续测试,可以使用一些自动化测试工具,例如。 它是一个用于 Web 自动化的工具和一个用于应用程序自动化的工具。 自动化工具还需要与测试框架结合使用,比如Java中的JUnit,Java中的JUnit。 有了这些自动化测试工具,就可以对开发出来的软件进行持续的测试。
现阶段,使用容器来实时模拟“测试环境”也非常方便。
持续集成(CI)
新提交的代码一旦通过测试,将会与现有代码持续集成。 这就是持续集成的过程。
这个时候就可以使用了。 这是现在*流行的持续集成工具。 使用它,您可以从 Git 存储库中提取*新代码并生成*终可以部署到测试或生产服务器的构建。
您还可以将其设置为在 Git 存储库中发现新提交的代码时自动触发新构建,也可以在单击按钮时手动触发新构建。 有了这个强大的工具,就可以非常方便地完成持续集成工作。
持续部署
持续集成完成后,代码可以直接部署到各种环境中。 这个阶段需要保证只有通过持续测试的正确代码才能部署到服务器上。
因为如果推出新功能,就会有更多用户使用该产品。 这种情况下,运维人员可能还需要对服务器进行扩容,以容纳更多的用户。 如果能够实现持续部署,就可以通过配置管理工具快速、频繁地执行部署任务。 让产品更快的遇见用户。 这开辟了从开发、测试到上线的快速通道。
在这个阶段,容器化工具也发挥着重要作用。 它可以帮助保持各种环境的一致性。 比如测试环境、生产环境等,因为不同的环境也可能会导致一些bug的出现。
持续监控
部署上线后,就进入持续监控阶段。 这是生命周期中非常关键的阶段。 在线监控可以帮助提高软件质量并监控软件性能。
这也会涉及到运营团队的参与,运营团队也会监控用户在使用产品时的一些错误行为,为未来需求的进一步优化提供数据支持。
这个阶段就可以使用ELK Stack了。 这是一个收集在线数据、分析和展示数据的平台。 通过这个工具,可以自动收集用户行为以及产品的一些线上不良案例。 通过分析这些数据,可以为产品未来的发展方向提供指导。
以上内容就是整个生命周期。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等