0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种迭代软件开发模型的主要重点

汽车电子工程知识体系 来源:汽车电子硬件设计 作者:汽车电子硬件设计 2021-01-11 17:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

软件是一种灵活的、可延展性的媒介,它在很大程度上促进了迭代分析、设计、构造、验证和确认,这比通常可能用于系统的纯粹物理组件的程度要高。迭代开发模型的每次重复都会向不断增长的软件基础中添加材料(代码);对扩展的代码库进行测试,根据需要重新编写,并进行演示,以满足基线的需求。

软件开发的过程模型支持在不同长度的周期上进行迭代开发。表1列出了三个迭代的软件开发模型,它们在下面更详细地展示,以及这些模型所强调的软件开发的各个方面。

表1。三种迭代软件开发模型的主要重点。

迭代式模型 强调
增量构建 对替代方法的基于风险的迭代分析和结果的敏捷评估
迭代实现-验证-验证-演示循环往复 需求和代码的迭代演进

请注意,下面的信息特别关注软件系统的不同生命周期模型的使用情况。为了更好地理解软件工程(SwE)和系统工程(SE)之间的交互,请参阅第6部分中的系统工程和软件工程。

迭代开发过程模型概述

开发和修改软件涉及到创造性的过程,这些过程受到许多外部和可变力量的影响。长期的经验已经表明,第一次“把它做好”是不可能的,并且迭代开发过程比线性的、顺序的开发过程模型(如著名的瀑布模型)更可取。在迭代开发中,迭代的每个周期都包含前一个迭代的软件,并向演进的产品添加新功能,以创建软件的扩展版本。迭代开发过程提供了以下优点:

v持续集成、验证和演进产品的验证;

v经常展示进步;

v尽早发现缺陷;

v过程问题的预警;

v系统地整合集成软件开发中不可避免的返工;及

v尽早交付子集功能(如果需要的话)。

迭代开发在SwE中有多种形式,包括:

v增量构建,用于产生周期性的(通常是每周的)增加产品能力的构建;

v敏捷开发,用于将原型客户紧密地卷入可能每天重复的迭代过程中;及

v螺旋模型,用于对抗和减轻在开发产品的后续版本中遇到的风险因素。

增量构建模型

增量构建模型是一个迭代周期的构建-测试-演示模型,在该模型中,经常强调进展的演示、验证和对当前工作的验证。该模型基于稳定的需求和软件架构规范。每个构建都向增量增长的产品添加新的功能。当最终版本被客户验证、验证、演示和接受时,过程结束。

表2列出了一些将增量开发划分为(通常)每个日历周的增量构建单元的划分标准。增量和可用于项目的开发人员数量决定了每个增量构建中可以包含的特性数量。这进而决定了整个时间表。

表2。一些增量构建的分区标准。

系统 划分的标准
应用包 优先级的功能
安全-关键系统 安全第一(优先)特性;其他优先级遵循
用户密集系统 用户接口优先;其他优先级遵循
系统软件 内核优先;实用程序遵循

图5演示了增量构建过程中的构建-验证-验证-演示周期的细节。每个构建都包括由开发人员完成的详细设计、编码、集成、评审和测试。在不需要修改就可以复用代码的情况下,增量构建的部分或全部可能包括对使用复用代码扩展的基本代码的评审、集成和测试。重要的是要注意到,开发一个增量可能会导致为集成而重新开发的以前的组件,以修复缺陷。

增量验证、验证和演示,如图5所示,通过以下方法克服了瀑布方法的两个主要问题:

尽早暴露问题,以便在问题发生时予以纠正;及

将次要的范围内变更合并到需求中,这些需求是后续构建中增量演示的结果。

图5还说明了重叠产品的连续构建是可能的。例如,在验证当前版本时,可以开始对下一个版本进行详细设计。

三个因素决定可实现的重叠程度:

8e33bfb8-45c5-11eb-8b86-12bb97331649.png

图5。增量的构建-验证-验证-演示周期。

Ø人员的可用性;

Ø较前一版本取得足够进展;及

Ø由于对前一个正在进行中的构建的变更,对下一个重叠构建的重大重做的风险。增量构建过程通常在小型团队中工作得很好,但是可以在较大的项目中进行扩展。

增量构建过程的一个显著优势是,首先构建的特性会得到最频繁的验证、验证和演示,因为随后的构建会合并早期迭代的特性。例如,在构建控制核反应堆的软件时,可以首先构建紧急关闭软件,因为它将随后结合每一个后续构建的特点进行验证和确认。

总之,增量构建模型,像所有的迭代模型一样,提供了持续集成和演进产品的验证、频繁的进展演示、问题的早期预警、子集功能的早期交付,以及软件开发中不可避免的返工的系统集成。

原型设计在软件开发中的角色

在SwE中,原型是系统某些部分所需功能的模型。这与物理系统相反,在物理系统中,原型通常是系统的第一个全功能版本。

在过去,将原型软件集成到生产系统中会产生许多问题。原型设计是一种有用的技术,应酌情使用;然而,原型设计不是软件开发的过程模型。在构建软件原型时,通过开发原型获得的知识对程序是有益的;然而,原型代码可能不会在系统的可交付版本中使用。在许多情况下,使用通过原型设计获得的知识从头构建产品代码比重新设计现有代码更有效。

软件的生命周期维护

与所有系统一样,软件需要持续付出来增强功能、适应新环境和纠正缺陷。软件的主要区别在于,维护工作会改变软件;与物理实体不同,软件组件不需要因为物理损耗而被替换。变更软件需要重新验证和重新确认,这可能涉及到广泛的回归测试,以确定变更具有预期的效果,并且没有改变功能或行为的其他方面。

报废的软件

有用的软件很少被淘汰;然而,有用的软件在其生命周期中经常经历多次升级。以后的版本可能与最初的版本没有多少相似之处。在某些情况下,在以前的操作环境中运行的软件在硬件模拟器上执行,这些模拟器在较新的硬件上提供虚拟机。在其他情况下,主要的增强可能会替换并重命名软件的旧版本,但是增强的版本以一种兼容的方式提供了以前软件的所有功能。然而,有时软件的新版本可能无法提供与旧版本的兼容性,这就需要对系统进行其他变更。

主要是演进和并发流程:增量承诺螺旋模型

增量承诺螺旋模型概述

增量承诺螺旋模型(ICSM)的视图如图6所示。

8ea030a8-45c5-11eb-8b86-12bb97331649.png

Figure 6.增量承诺螺旋模型(ICSM)

在ICSM中,每个螺旋都同时而不是顺序地处理需求和解决方案,以及产品和过程、硬件、软件、人的因素方面,以及替代产品配置或产品线投资的业务案例分析。利益攸关方考虑风险和风险缓解计划,并决定行动方针。如果风险是可接受的,并且被风险缓解计划所覆盖,那么项目将继续进入下一个螺旋。

在第一次开发承诺评审之后,开发遵循三团队增量开发方法,以实现图2中所示的敏捷性和保证,即系统生命周期过程驱动程序和选择的“演化-并发快速变更处理和高保证”。

原文标题:迭代软件开发过程模型

文章出处:【微信公众号:汽车电子硬件设计】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    5298

    浏览量

    90881
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51713

原文标题:迭代软件开发过程模型

文章出处:【微信号:QCDZYJ,微信公众号:汽车电子工程知识体系】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件

    *附件:ai study.zip*附件:融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件.pdf 基于开源鸿蒙编写的ai辅助学习软件
    发表于 11-12 15:38

    芯科科技推出Simplicity Ecosystem软件开发套件

    Silicon Labs(芯科科技)今日在深圳盛大举办享誉业界的Works With开发者大会,同时宣布推出Simplicity Ecosystem软件开发套件,它不仅是下一代模块化的软件开发
    的头像 发表于 10-27 16:45 724次阅读

    十大北京软件开发公司推荐:有哪些优点和缺点

    十大北京软件开发公司推荐:有哪些优点和缺点
    的头像 发表于 10-04 09:44 1137次阅读
    十大北京<b class='flag-5'>软件开发</b>公司推荐:有哪些优点和缺点

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司
    的头像 发表于 09-30 09:16 2449次阅读
    2025北京<b class='flag-5'>软件开发</b>公司推荐汇总:盘点10家优秀<b class='flag-5'>软件</b>定制<b class='flag-5'>开发</b>公司

    知识分享 | 敏捷方法在基于模型软件开发项目中的应用

    传统的瀑布式软件开发流程存在诸多局限,这使得应用敏捷原则变得尤为重要,尤其是面对复杂且不断变化的开发环境时。作为最高效的软件开发方法之一,基于模型
    的头像 发表于 07-16 16:52 1053次阅读
    知识分享 | 敏捷方法在基于<b class='flag-5'>模型</b>的<b class='flag-5'>软件开发</b>项目中的应用

    嵌入式软件开发常用的软件有哪些?

    、‌TCP通信接口 9. Arduino IDE Arduino是一款开源的硬件平台,‌广泛应用于各种互动项目和原型设计中。‌它的主要功能体现在其强大的硬件板和各种功能引脚,‌以及与之配套的软件开发
    发表于 07-03 17:06

    基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 1601次阅读
    基于瑞萨64位MPU RZ/G2L进行32位应用<b class='flag-5'>软件开发</b>

    找电机控制软件开发兼职

    软件开发兼职人员,我现在有一个永磁无刷电机控制,220V,需要有相关经验的人来开发,兼职费用可以议谈,产品是增压泵相关产品,有兴趣给我留言,谢谢
    发表于 05-07 17:43

    CICTCD在汽车软件开发中的革命性作用#持续集成与测试 #CICD持续集成与交付

    软件开发
    北汇信息POLELINK
    发布于 :2025年04月17日 15:36:09

    redis三种集群方案详解

    在Redis中提供的集群方案总共有三种(一般一个redis节点不超过10G内存)。
    的头像 发表于 03-31 10:46 1273次阅读
    redis<b class='flag-5'>三种</b>集群方案详解

    CMOS,Bipolar,FET这三种工艺的优缺点是什么?

    在我用photodiode工具选型I/V放大电路的时候,系统给我推荐了AD8655用于I/V,此芯片为CMOS工艺 但是查阅资料很多都是用FET工艺的芯片,所以请教下用于光电信号放大转换(主要考虑信噪比和带宽)一般我们用哪种工艺的芯片, CMOS,Bipolar,FET这三种
    发表于 03-25 06:23

    示波器的三种触发模式

    示波器的触发方式不仅影响波形捕捉的时机,还决定了显示的波形是否稳定。 常见的触发模式有三种: 单次触发 (Single)、 正常触发 (Normal)和 自动触发 (Auto)。下面将对这三种触发
    的头像 发表于 01-07 11:04 1.3w次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    我国软件开发者数量突破940万

    2024开放原子开发者大会20到21日在武汉举办。工业和信息化部负责人透露,我国软件开发者数量突破940万。 开源就是开放软件的源代码,在遵守许可协议的前提下,任何人都可以使用、修改甚至再发布源代码
    的头像 发表于 12-24 13:52 714次阅读

    最新Simplicity SDK软件开发工具包发布

    最新的SimplicitySDK软件开发工具包已经发布!此次更新针对SiliconLabs(芯科科技)第二代无线开发平台带来了包括蓝牙6.0的信道探测(Channel Sounding
    的头像 发表于 12-24 09:47 1465次阅读

    我国软件开发者数量超过940万

    在近日举办的开放原子开发者大会上,工业和信息化部负责人传来了一则令人振奋的消息:我国软件开发者数量已经突破940万大关。这一数据不仅彰显了我国在软件开发领域的雄厚实力,也预示着我国在全球软件开
    的头像 发表于 12-23 11:08 912次阅读