软件生命周期模型基本概念-PDCA循环(戴明环)
发表时间:2023-11-20 18:02:28
文章来源:炫佑科技
浏览次数:141
菏泽炫佑科技
软件生命周期模型基本概念-PDCA循环(戴明环)
基本概念——PDCA循环(戴明环)
PDCA循环,是针对工程项目质量目标提出的一种模型,称为戴明循环(Plan、Do、Check)
–软件工作流程
软件工程过程是软件工程师在软件工具的支持下完成的一系列软件工程活动,以获得软件产品。
具体活动包括:
软件规范、软件开发、软件验证、软件演化、
–软件生命周期
指从软件产品的概念被考虑到该软件产品不再被使用的整个时期。
一般包括概念阶段、分析设计阶段、施工阶段、移交运营阶段等不同阶段。
软件生命周期的六个基本步骤:规划(P)、需求分析(D)、设计(D)、程序编码(D)、测试(C)、运行和维护(A)。
软件生命周期与戴明圆的对应关系:
–软件过程模型
软件过程的一般描述和抽象,包括各种活动()、软件工件()、参与角色(/Roles)等。
传统软件生命周期模型——瀑布模型
工作过程
需求分析——软件需求——分析——程序设计——编码——测试——运行
每个阶段都需要审查和文档输出(文档驱动)
模特角色
为软件开发和维护提供有效的管理模型。 在软件开发的早期阶段,它对于消除非结构化软件、降低软件复杂度、促进工程软件开发具有显着的作用。
每个开发活动的特点:
·此活动依赖于前一个活动的输出作为工作对象。 这些输出通常是代表活动结束的里程碑文件。
·按照本阶段活动流程执行相应任务。
·本阶段活动的*终输出——软件工件,将作为下一活动的输入。
·回顾本阶段活动的实施情况。
优势:
降低复杂度,提高透明度和可管理性,强调需求分析和设计、阶段评审和文档输出,确保阶段之间的正确衔接,及时发现问题。
缺点:
缺乏灵活性,不适合需求未知的开发情况,风控能力低,文档驱动增加了系统的工作量,仅依靠文档评估进度,可能会导致错误的结论,且周期较长。成功循环。
适用场景:
明确的需求、更大的系统、更小的开发周期
–进化模型
工作过程:
在瀑布模型的基础上,一次性开发很难成功。 因此,进化模型主张“两个开发”,即实验开发和产品开发。 每个开发阶段都按照瀑布模型进行具体的开发活动。
优势:
明确用户需求,提高系统质量软件生命周期模型基本概念-PDCA循环(戴明环),降低开发风险
缺点:
管理难度增加,开发结构不良,可能放弃文档驱动,可能导致产品结构不良
适用场景:
需求不明确、开发周期短的中小型系统。
– 增量模型
型号概述:
结合瀑布模型和进化模型的优点,当需求不明确时,采用瀑布模型来实现核心或*明确的需求。 然后后续的需求就会被反复开发(可能按照需求的优先级一个一个地开发),从而逐步构建出一个完整的软件系统。
优势:
保证核心功能的实现,降低开发风险,保证*高优先级功能的可靠实现,提高系统的稳定性和可维护性。
缺点:
增量粒度很难合理选择,也很难确定所有需要的服务。
–喷泉模型
型号概述:
也称为迭代模型,每个阶段重叠并重复多次。 每个开发阶段没有顺序要求,可以同时进行,其他阶段遗漏的需求可以在某个阶段随时补充。
优势:
提高效率并缩短周期时间
缺点:
管理架构不善
–V型
型号概述:
它是瀑布模型的变体。 它将测试模块分解为细节,并将测试视为与开发同等重要的过程。 每个测试阶段的先决条件和要求都是与开发阶段相对应的文件。
测试模块:
·单元测试:根据详细设计规范,测试各个单元模块是否满足预期要求。 主要检查编码过程中可能出现的错误。
·集成测试:根据概要设计规范,检查各模块是否正确组装。 主要检查模块和接口之间可能存在的错误。
·系统测试:根据需求分析,测试整个系统在预定的环境下是否能够正常有效地工作。
·验收测试:是否满足客户的需求。
优势:
提高开发效率和效果
缺点:
如果前期犯了错误,后期就很难挽回和弥补,或者成本会很大。
–W型号
型号概述:
它由两个V模型组成,分别代表测试和开发过程。 每个开发过程对应一个测试软件开发,体现了开发与测试的并行关系。 测试不仅限于程序。 阶段文档也需要进行测试。
优势:
添加了应在软件的每个开发阶段同时进行的验证和确认活动。
缺点:
开发和测试活动保持上下文相关的关系,无法支持迭代软件开发模型。
– 螺旋模型
型号概述:
将开发过程分为四种类型:风险分析、规划、实施工程和客户评估。 每次评估后,确定是否继续进行螺旋的下一个循环。
合适的:
大型软件项目风险较高、开发周期较长
优点和缺点:
风险降低,但开发周期长。
– 组件装配模型
型号概述:
将整个系统模块化,在一定的组件模型的支持下,复用组件库中的软件组件,通过组件的组装来构建软件系统。 开发过程是组件组装的过程,是一个迭代的过程,维护过程是组件升级、替换、扩展的过程。
优势:
充分的软件复用提高了效率,允许多个项目同时开发,降低了开发成本,提高了可维护性,并实现了软件产品的分步提交。
缺点:
零部件装配结构尚无通用标准,装配过程存在风险。 组件复用性和系统效率难以协调; 零部件质量直接影响产品质量。
– 快速开发应用模型(RAD)
型号概述:
增量开发模式通过大量使用可复用组件和基于组件的构建方法获得了快速发展。
该流程从业务建模开始,然后是数据建模、流程建模、应用程序生成、测试和迭代。 RAD的目的是快速发布系统解决方案,技术的优雅程度与发布的速度相比是次要的。
优势:
开发周期短
缺点:
需求分析阶段短,具有普遍适用性。
适用范围
适合管理信息系统开发,不适合技术风险高、与外围系统互操作性高的系统开发
–原型方法
在传统的软件生命开发周期中,原型方法是经常使用的开发方法。
概念
瀑布模型以及基于瀑布模型的软件生命周期模型需要准确的需求才能很好地进行后续的开发活动,但准确的需求分析却很难获得。
原型法是指在获得基本需求后,快速分析并实现一个小型软件系统原型,以满足用户的基本需求。 用户可以提出修改意见和纠正要求。
原型法主要用于明确需求,但也可以用于软件开发的其他阶段。
类型
1. 放弃策略
2. 附加策略
的优点和缺点
优势:
有助于快速了解用户需求,轻松确定系统性能和设计可行性,有利于*终系统的构建。
缺点:
文档很容易被忽视,原型设计会增加工作量,并且项目难以有效规划和管理。
新的软件生命周期模型 RUP 模型
型号概述:
它是一种面向对象的程序开发方法。 它既是一个生命周期模型,也是一个支持面向对象软件开发的工具。
软件生命周期在时间上被分解为四个连续的阶段:初始化阶段、细化阶段、构建阶段和交付阶段。 每个阶段结束时进行评估,以确定是否达到阶段目标以及是否可以进入下一阶段。 以用例驱动、以软件架构为核心、迭代增量的新软件生命周期模型。
各阶段作业指导书
初始阶段:了解业务并确定项目边界。包括验收规范、风险评估、资源估算、阶段计划制定等。
细化阶段:分析问题领域,建立软件系统结构基础,编制项目计划,完成技术要求高、风险高的关键需求开发。
构建阶段:开发所有剩余的技术组件和业务需求功能并将其集成到产品中,并对所有功能进行详细测试。
移交阶段:重点是确保软件可以被*终用户使用。 交付阶段可以跨越多次迭代,包括测试产品以准备发布,并根据用户反馈进行细微调整。
每次迭代的主要活动:
核心流程工作流程(6):业务建模、需求、分析设计、实施、测试、部署
核心支持工作流程(3):配置和变更管理、项目管理、环境
型号特点:
·适应性发展:小步走,快速反馈调整;
· 使用用例驱动软件建模:用例是获取需求、制定计划、设计、测试和编写*终用户文档的驱动力。
·可视化软件建模:使用UML进行软件建模。
敏捷建模和极限编程
型号概述:
基于实践的软件工程过程和理念。 使用快速反馈测试(测试驱动)、广泛而快速的沟通以及有保证的测试来*好地满足用户需求。 主要强调用户满意度,开发人员能够快速响应需求的变化。
参与项目开发的每个人都会承担一个角色(项目经理、项目主管等)并履行相应的权利和义务。
特征:
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等