软件生存周期
软件生存周期是软件工程的一个概念,也称为软件生命周期,是指软件产品从概念形成到开发、使用、维护和退役的整个过程。软件生命周期包括六个活动:问题定义和可行性研究、需求分析、软件设计、程序编码、软件测试、运行和维护,这些活动以适当的方式分配到不同的阶段。软件生命周期包括软件开发生命周期中的所有阶段以及额外的维护和支持阶段。软件生命周期的每个阶段都有明确的目标和任务,每个阶段工作完成的标志是“里程碑”,它由一系列指定的“软件工作产品”组成。
www.qwbaike.cn
软件生命周期的概念最早提出于20世纪70年代。1995年,国际标准化组织ISO发布了软件生命周期过程开发标准,该标准将整个生命周期划分为更小的阶段,使软件开发过程易于管理和控制。2022年10月,由浙江省电子信息产品检验院牵头制定的中国国家标准《系统和软件工程软件生命周期过程》正式发布。 www.qwbaike.cn
在软件产品从开始到结束经历了整个开发周期之后,新一代产品通过开发周期的重复而开发。将整个软件生命周期分为几个阶段,使每个阶段都有明确的任务,这使得规模大、结构复杂、管理复杂的软件开发易于控制和管理,提高了软件的可维护性,从而提高了软件开发的成功率和生产率。开发中使用的规模、类型、开发模式、开发环境和方法论是影响软件生命周期的因素。 www.qwbaike.cn
www.qwbaike.cn
发展历史 编辑本段
在计算机发展的早期,程序并没有从硬件中分离出来,软件开发成本在整个系统中占比很小,是硬件的附属品。在早期的编程时代,编程是为某个计算机系统服务的。程序员既是程序的设计者也是用户。程序主要用于科学计算,这很简单,不需要编程文档。程序维护相对简单。
随着软件规模和复杂性的增加。1968年,北大西洋公约组织软件人员提出了“软件工程”的概念。20世纪70年代,为了应对应用软件日益复杂、开发周期长以及用户对软件产品经常不满意的情况,首次提出了软件生命周期的概念。1976年以后,人们开始更多地关注编程前的几个发展阶段,并形成了“软件生命周期”的概念,从而给出了软件生命周期的定义。
www.qwbaike.cn
1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型”。20世纪90年代初,提出了软件工程过程的概念,规定了获取、供应、开发、运行和维护软件时要实施的过程、活动和任务。在此基础上,电气和电子工程师协会标准化委员会于1991年9月制定了软件生命周期过程标准。1995年,国际标准化组织ISO发布了软件生命周期过程开发标准。根据瀑布开发模型,中国制定并发布了《计算机软件文档规范》(CB/T 8567-2006),极大地促进了中国的软件开发。 www.qwbaike.cn
www.qwbaike.cn
2022年10月,中国国家标准化管理委员会发布中华人民共和国国家标准公告,由浙江省电子信息产品检验研究院牵头制定的国家标准《系统和软件工程软件生命周期过程》正式发布。
www.qwbaike.cn
周期过程 编辑本段
软件生命周期分为规划、开发和运行三个阶段,每个阶段又细分为若干阶段。规划期包括问题定义和可行性研究;开发周期包括四个阶段:需求分析、软件设计、编码和测试。运营期主要是系统维护阶段。整个周期过程包括六个活动:定义和可行性研究、需求分析、软件设计(总体设计和详细设计)、程序编码、软件测试、运行和维护,并以适当的方式分配到不同的阶段。
www.qwbaike.cn
规划期
规划期间的主要任务是调查和分析,主要是调查用户的需求,分析新系统的主要目标,分析开发系统的可行性,并制定项目开发计划。
www.qwbaike.cn
问题定义:问题定义是规划阶段的第一步。用户提出软件开发需求后,系统分析师首先要搞清楚软件项目的本质是什么,是数据处理问题还是实时控制问题,是科学计算问题还是人工智能问题。还需要明确项目的目标是什么,项目的规模是什么。
www.qwbaike.cn
可行性研究:现阶段必须回答的问题是是否可行。在这一阶段,软件开发人员与客户进行沟通,确定开发软件系统的总体目标,并明确功能、性能、可靠性等方面的要求;研究此软件任务的可行性,并探索问题的可能解决方案;制定开发任务的实施方案,与可行性研究报告一起提交管理部审查。 www.qwbaike.cn
开发期
在开发期间,主要完成两大任务:设计和实现。设计任务分需求分析和软件设计两个阶段完成,实现任务分编码和测试两个阶段完成。将设计和实现分为两步的目的是让程序员在开发的早期阶段专注于软件的逻辑结构,避免过早地将自己的注意力从实现的细节上转移。
需求分析:在这个阶段,软件开发人员在软件开发可行的情况下,对软件需要实现的各种功能进行详细分析。这个阶段的任务不是具体解决问题,而是确定用户对“软件系统必须做什么”的要求以及软件系统必须具备的功能和性能,包括软件的功能需求、性能需求、环境约束和外部图;分析用户提出的需求并给出详细定义;编写软件需求规范和初步用户手册,并提交给管理机构审查。
软件设计:在此阶段,将识别的需求转换为相应的软件架构,然后详细描述每个模块要完成的工作。它可以分为两个部分:总体设计和详细设计。总体设计应设计软件架构,以及总体数据结构和数据库结构。详细设计详细描述每个模块完成的功能,需要将功能描述变成准确、结构化的流程描述。软件设计完成后,编写设计规范并提交审查。
程序编码:在这个阶段,软件设计被转换成计算机可接受的程序代码。为了保证程序的可读性和可维护性,提高程序的运行效率,在程序编码中制定了统一、标准的编写规范。单元测试通常与编码同时进行,因此这一阶段也称为“编码(测试)”。 www.qwbaike.cn
软件测试:程序编写完成后,代码要经过严格的测试,找出软件整个设计开发过程中存在的问题并加以改正。根据不同的目的,测试可以细分为多个层次。整个测试过程分为四个阶段:单元测试、集成测试、确认测试和系统测试。在设计测试用例的基础上,对软件的所有组件进行测试。测试由独立的测试工程师进行,需要撰写一份“测试报告”文档,包括测试计划、测试用例、测试结果等。通过验证测试(针对功能需求)和系统测试(针对性能等非功能需求)后,软件就可以交付了,因此验证测试有时也称为“交付测试”。
运行周期
运行期是软件生命周期的最后一个阶段,这个阶段的主要工作是软件维护。
www.qwbaike.cn
操作和维护软件:维护是软件生命周期中最长的阶段。软件投入使用后,当它不再能满足用户的要求时,需要进行改进或修改。并定期维护软件。运维阶段的任务是做好软件维护,使软件在全生命周期内满足用户的需求,延长其使用寿命。每次维修都应遵循规定的程序并填写或更改相关文件。
周期模型 编辑本段
为了研究软件开发项目中各种活动的一般规律,定量度量和优化软件开发过程,扩展了软件开发过程模型,包括瀑布模型、快速原型模型、迭代模型、增量模型、螺旋模型和喷泉模型。
www.qwbaike.cn
质量保证
为了提高软件生命周期和保证软件质量,软件开发活动和过程被分解成几个可实现和可管理的部分。在生命周期的每个阶段,应用相应和有效的技术和方法来开展软件开发活动并验证其阶段性产品的质量以确保其高质量,主要分为七个阶段:需求分析、概要设计、详细设计、代码开发、集成测试、确认测试和系统联合测试。 www.qwbaike.cn
主要阶段
需求分析阶段:在需求分析阶段,需要分析系统、子系统和设备对软件的需求,确定软件实施的运行环境,并形成软件任务书。分析系统的规格要求和组成部分,分析硬件和软件之间的关系,定义每个软件的开发项目,提出初步验收方法,编写软件任务书等步骤,并制作软件任务书和软件的初步接口描述等阶段性产品。 www.qwbaike.cn
概要设计阶段:在概要设计阶段,需要根据软件需求的规格说明建立软件的总体结构和功能模块(组件)之间的关系,定义各功能模块的接口,设计全局数据库和数据结构,并初步编制软件集成测试计划。进行总体结构设计,设计高层模块的数据流和控制关系,初步编制软件集成测试计划等。,并产生阶段性产品,如概要设计说明、数据库设计说明、概要界面设计说明和软件集成测试计划。
细部设计阶段:在详细设计阶段,需要描述和设计概要设计中产生的功能模块(组件)的过程,设计功能模块的内部细节,并提供编写源代码的必要说明。软件的详细设计主要基于软件需求规格说明、概要设计描述和界面设计描述,包括审查概要设计、建立模块开发文件、编写详细设计描述文档等。,并产生阶段性产品,如详细设计说明、详细模块流程图、修改后的概要设计说明和修改报告表。 www.qwbaike.cn
代码开发阶段:在代码开发阶段,应根据详细的软件设计规范对每个程序单元进行编码、调试、静态分析和单元测试,以验证程序单元与设计规范之间的一致性并完成软件系统集成。用指定的编程语言对每个程序单元进行编码和测试,对编码的源程序进行静态分析,改进单元测试用例并生成测试输入数据,开发单元测试程序等。以及分阶段产品的生成,如程序单元编码、模块开发文件和软件指令初稿。
集成测试阶段:在软件集成测试阶段,需要根据概要设计的结构和集成测试计划对软件进行测试,在这个过程中,将底层程序单元逐步集成到子项目中,直至整个开发项目。每个程序单元都应该完成代码的静态分析和逐步审查、错误的编译或汇编以及单元测试。补充和改进软件集成测试计划,修改集成顺序,建立软件集成测试环境等。,产生修改后的软件集成测试计划、修改后的软件设计文档和相应的修改报告、软件集成测试分析报告、通过集成测试的程序代码、集成测试用例集和集成测试辅助程序等阶段性产品。 www.qwbaike.cn
确认测试阶段:在确认测试阶段,主要针对软件的所有功能和性能需求进行黑盒测试。组织确定软件验证测试团队成员,修订验证测试计划,建立并验证软件测试环境测试、功能捷克性能测试等步骤,产生验证测试计划、验证测试分析报告、验证测试用例集及相关测试辅助程序。 www.qwbaike.cn
系统联合测试阶段:当开发的软件是大系统的一部分时,当开发的软件与大系统结合时,必须进行系统联合测试,以验证软件是否满足系统规定的要求以及软件是否适用于大系统。预期结果、测试结果和产生的测试数据应存档。系统联合测试阶段的配置管理包括系统联合测试的软件必须从受控库中取出,并且必须严格控制对软件的更改。
工具技术 编辑本段
项目管理软件:软件项目管理常用的软件工具包括Microsoft Project、项目管理套件、OpenProj和禅宗。
www.qwbaike.cn
需求分析和设计工具:软件需求分析工具分为两大类:结构化图形工具箱、面向对象建模工具和分析工具。结构化图形工具需要通过数据流图(DFD)进行分析。面向对象的建模工具和分析工具需要通过对象建立来构建系统的抽象模型,包括图形工具、对象浏览器和类库管理系统。设计工具是用于辅助软件设计活动的软件,称为设计工具,分为通用设计工具和详细设计工具。 www.qwbaike.cn
开发环境:现代软件开发使用集成开发环境(IDE),其中包括代码编辑器、编译器、调试器和图形用户界面工具。它集成了代码编写、分析、编译和调试功能,是一种集成的软件开发工具。
测试工具:软件测试工具分为商业测试工具和开源测试工具,其中开源测试工具涵盖单元测试、性能测试、自动化测试、移动测试、测试管理等。,主要关注单元测试工具、功能测试工具、性能测试工具和缺陷管理工具。 www.qwbaike.cn
附件列表
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。