同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。根据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