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

    文章

    5388

    浏览量

    92073
  • 模型
    +关注

    关注

    1

    文章

    3874

    浏览量

    52341

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一篇讲清楚 Claude 的三种使用模式:Chat、Cowork、Code 到底有啥区别?

    、先建立认知:三种模式是"同一个 Claude,三种工作台" 很多人以为 Chat、Cowork、Code 是个不同的模型,其实 底层都是
    的头像 发表于 05-18 11:59 136次阅读

    ATE系统中这三种测量卡的架构和功能

    测试仪行业面临的一个挑战是,如何在不显著增加测试仪时间、尺寸或成本的情况下,满足对大量测试通道的需求。尽管半导体测试仪(也称为自动测试器件(ATE))种类繁多,但在大多数测试仪都包含三种主要卡:电压
    的头像 发表于 04-09 15:12 283次阅读
    ATE系统中这<b class='flag-5'>三种</b>测量卡的架构和功能

    知识分享 | ISO 25119标准在农业机械软件开发中的应用

    知识分享在知识分享栏目中,我们会定期与读者分享来自MES模赛思的基于模型软件开发相关Know-How干货,关注公众号,随时掌握基于模型软件设计的技术知识。ISO25119标准在农业
    的头像 发表于 04-08 10:03 203次阅读
    知识分享 | ISO 25119标准在农业机械<b class='flag-5'>软件开发</b>中的应用

    零代码软件开发平台ATECLOUD如何实现仪器程控软件开发

    在电子测试领域,仪器控制软件开发是硬件工程师开展测试工作的核心环节之一。面对这一需求,多数硬件工程师的第一反应是借助成熟的编程工具与语言,诸如图形化编程环境LabVIEW,或是Python、C#
    的头像 发表于 03-02 15:59 1764次阅读
    零代码<b class='flag-5'>软件开发</b>平台ATECLOUD如何实现仪器程控<b class='flag-5'>软件开发</b>?

    芯科科技发布Simplicity Studio 6软件开发套件最新版本SiSDK 2025.12.0

    Silicon Labs(芯科科技)近期发布了Simplicity Studio 6软件开发套件的最新版本-SiSDK 2025.12.0,这代表着嵌入式与无线软件开发的一次重大进步。该版本重点关注
    的头像 发表于 01-29 10:29 1539次阅读

    请问CW32芯片的三种工作模式是什么?

    CW32芯片的三种工作模式是什么?
    发表于 12-26 06:48

    嵌入式软件开发的 10 个技巧分享

    :流程图第一,实现第二 当工程师首次迈入软件开发领域时,会有一强烈的诱惑力促使他们立刻投入工作并开始写代码。这种做法就好比在电路逻辑图还未完成前就试图设计印刷电路板(PCB)。在着手开发软件时,抑制
    发表于 12-25 06:04

    ADC模数转换实战:硬件设计与软件开发要点指南!

    ADC硬件设计与软件开发的关键要点,为开发者提供ADC转换的实战指导。 本文将分享硬件参考设计及LuatOS开发相关API,带你快速了解ADC的软硬件实现要点。 01. 模组相关管脚 Air780EPM系列模组与ADC相关的管脚
    的头像 发表于 12-16 13:25 646次阅读
    ADC模数转换实战:硬件设计与<b class='flag-5'>软件开发</b>要点指南!

    融合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 1715次阅读

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

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

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

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

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

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