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

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

3天内不再提示

嵌入式软件开发常用的开发模型介绍

Q4MP_gh_c472c21 来源:嵌入式基地 作者:嵌入式基地 2021-10-21 14:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

瀑布模型

该模型是由上至下一次性完成整个项目的开发方式。该模型一共分为6个阶段,如图所示:

6d31d264-31ce-11ec-82a8-dac502259ad0.png

在瀑布模型的开发过程中需要严格的按照这条线执行,只有完成当前阶段之后才能够进行下一阶段的开发任务。

优点

该模型划分出了每个阶段的检查点,当一个阶段开发完成之后,开发人员的精力可以全部的投入下个阶段,有利于提高开发效率,便于项目的管理。

比较适用于前期的软件开发与小型软件系统的开发中。缺点

无法评估项目进度。因为不知道哪个阶段会造成项目的延期

无法适应用户的需求变更,只能等到项目完成后,用户才能够看到项目结果快速原型模型

快速原型模型与瀑布模型相反,项目初期根据用户的需求快速构建一个可以运行的系统原型,之后向用户展示,由用户进行审核,提出意见,然后逐步丰富项目需求。当需求真正确定后,才正式进行项目开发。模型如图所示:

6d744dc4-31ce-11ec-82a8-dac502259ad0.png

优点

解决需求不明确带来的风险,适用于不能提前确定项目需求的项目缺点

不利于开发人员对产品进行扩展迭代模型

迭代模型又被称作为增量模型或演化模型,它将一个完整的软件拆分成不同的组件,之后对每个组件进行逐步的开发测试,每当完成一个组件就会向客户进行展示,让客户确认该组件功能与性能是否达到要求,最终确定无误,将组件集成到软件体系结构中。整个开发工作被分为为一系列短期、简单的小项目,称为一系列迭代,每一个迭代都需要经过需求分析、软件设计、编码、测试这几项过程,其开发过程如图所示:

6db71410-31ce-11ec-82a8-dac502259ad0.png

优点

第一个可交付版本的软件所需的成本与时间较小

能够适应客户的需求变更,当需求变化时,只需要修改某一个组件即可。缺点

如果对用户需求的变更没有整体的规划,可能会变化为“边做边开发”的模式。

最终集成各个组件时,可能会出现集成失败的风险。喷泉模型

该模型主要采用面向对象技术。当客户需求基本类似时,在开发过程中可以采用面向对象的开发方式,将相同的模块全部封装起来,以便于下次功能开发时使用。模型如图所示:

6e150084-31ce-11ec-82a8-dac502259ad0.png

优点

支持软件重用,并且开发过程无间隙性,分析、设计编码无明显边界,可交叉迭代进行。使软件在无法排除重大风险时有机会停止,以减小损失。缺点

由于喷泉模型在各个阶段是重叠的,即每个对象都有分析、设计和编码阶段,所以需要大量开发人员。

大量开发人员不利于项目的管理。

该模型需要严格管理文档,会增加审核的难度增大。螺旋模型

螺旋模型融合了瀑布模型,快速原型模型,该模型最大的特点就是引入了其他模型所没有的风险分析。

螺旋模型将开发过程都分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,在每个周期开始之前都会进行风险分析。在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。模型如图所示:

6e83d3d8-31ce-11ec-82a8-dac502259ad0.png

该模型共有四个象限,每个象限的含义如下:

制订计划:确定软件目标,制订实施方案,并且列出项目开发的限制条件。

风险分析:评价所制订的实施方案,识别风险并消除风险。

实施工程:开发产品并进行验证。

客户评估:客户对产品进行审核评估,提出修正建议,制订下一步计划。优点

螺旋模型强调风险分析,对每个演化层出现的风险都所了解,继而做出应有反应。因此特别适合用于庞大、复杂并且具有高风险的系统。螺旋模型支持用户需求的动态变化有助于提高产品的适应能力。缺点

过多的迭代次数会增加开发成本,延迟提交时间。敏捷模型

在现代社会的开发中,由于业务会经常快速的变化,因此会导致在软件开发之前经常是无法得到详细完整的开发需求,没有完整的开发需求,传统的软件开发模型也就无法适用。

敏捷开发模型的提出就是为了解决该问题。该模型以客户的需求为核心,采用迭代,循序渐进的方法进行开发。

软件项目在构建初期会被拆分为多个相互联系而又独立运行的子项目,然后迭代完成各个子项目。开发过程中,各个子项目都要经过开发测试。当客户有需求变更时,敏捷模型能够迅速地对某个子项目做出修改以满足客户的需求。在这个过程中,软件一直处于可使用状态。

该模型更重视人在软件开发中的作用。软件开发过程中,各个部门需要紧密的合作沟通,为适应软件需求的频繁改变,客户可以全程参与到开发过程中。

敏捷开发模型的价值与原则

个体和交互重于过程和工具

可用软件重于完备文档

客户协作重于合同谈判

响应变化重于遵循计划优点

用户很快可以看到一个基线架构版的产品

敏捷注重市场快速反应能力,客户前期满意度高。缺点

注重人员的沟通

忽略文档的重要性

如果项目人员流动大太,会增加项目维护难度

软件之前版本的可重现性、可回溯性较低

对于较大的项目,人员越多,面对面的有效沟通越困难。因此,该模型适用于小型项目的开发。

责任编辑:haq

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

    关注

    5212

    文章

    20767

    浏览量

    338819
  • 软件
    +关注

    关注

    69

    文章

    5388

    浏览量

    92074
  • 模型
    +关注

    关注

    1

    文章

    3874

    浏览量

    52341

原文标题:超全!嵌入式软件开发常用的开发模型(附详细流程图)

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【飞凌嵌入式T153开发板试用】初识飞凌嵌入式T153开发

    软件开发(如驱动开发、应用程序测试)。 开发支持 飞凌嵌入式为 T153 开发板提供全面的开发
    发表于 05-20 20:08

    EsDA 科普 | 一文读懂嵌入式开发的“全家桶”方案

    在工业4.0与AI浪潮交汇的今天,嵌入式软件开发正面临前所未有的复杂度挑战。如何降低门槛、提升效率、实现一站交付?EsDA给出了系统化的答案。本文将带您快速了解这一嵌入式与工业自动化
    的头像 发表于 03-18 11:37 397次阅读
    EsDA 科普 | 一文读懂<b class='flag-5'>嵌入式开发</b>的“全家桶”方案

    嵌入式软件开发工具市场新动向:订阅制趋势下的中国开发者选择

    面对软件业从永久授权模式广泛转向订阅制的行业趋势,作为行业两大主流嵌入式软件开发工具,即Keil MDK与IAR Embedded Workbench也推出了不同的市场策略,正在为中国开发
    的头像 发表于 01-30 17:20 1017次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>工具市场新动向:订阅制趋势下的中国<b class='flag-5'>开发</b>者选择

    嵌入式驱动开发,需要掌握哪些技能?

    。 4、 熟悉驱动开发常用工具做驱动开发,会牵涉到很多软硬件工具。比如:VS Code、Keil、 J-Link、Git等。 5、 调试和故障排除嵌入式
    发表于 01-20 16:46

    嵌入式开发常用函数速查表

    嵌入式开发中,掌握常用函数的用法可以大大提高开发效率。无论是单片机初学者还是有一定经验的工程师,熟悉函数库和调用方式都是必备技能。今天,我们为大家整理一份嵌入式开发
    的头像 发表于 01-19 09:06 539次阅读
    <b class='flag-5'>嵌入式开发</b><b class='flag-5'>常用</b>函数速查表

    什么是嵌入式应用开发

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发嵌入式应用
    发表于 01-12 16:13

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

    嵌入式系统设计不仅需要了解硬件,还需了解软件是如何影响硬件并与硬件进行交互的。设计硬件所需的范式可能与设计软件完全相反。当从硬件设计转向包含软件的设计时,硬件工程师应牢记以下十个技巧。
    发表于 12-25 06:04

    C语言单元测试在嵌入式软件开发中的作用及专业工具的应用

    功能包括: 测试通过/失败统计 代码覆盖率可视化 执行时间分析 缺陷跟踪和报告生成 winAMS的图形化界面可以直观展示测试结果和覆盖率数据。 七、总结与展望 C语言单元测试在嵌入式软件开发中具有不可
    发表于 12-18 11:46

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下
    发表于 11-28 07:48

    嵌入式开发的关键点介绍

    设备和移动设备。因此,嵌入式开发需要考虑系统的功耗,并编写节能的代码以延长系统的使用寿命。 4. 软件集成: 嵌入式系统通常需要与其他设备和系统进行集成,例如传感器、网络和云服务。因此,嵌入式
    发表于 11-13 08:12

    嵌入式开发工具的现状和发展简史

    集成开发环境(IDE)正在经历深刻变革。传统意义上披着“图形界面”外衣的编译器,已不再能满足当今的需求。随着嵌入式系统变得越来越强大,而且AI开始融入几乎所有设计中,开发者需要的是能够理解开发
    的头像 发表于 11-11 09:49 1587次阅读

    新一代嵌入式开发平台 AMD嵌入式软件和工具2025.1版现已推出

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。 2025.1 版嵌入式
    的头像 发表于 08-20 09:15 4348次阅读

    2025“芯原杯”全国嵌入式软件开发大赛圆满落幕

    此前,2025年7月20日至26日,第四届“芯原杯”全国嵌入式软件开发大赛决赛在海口成功举办。
    的头像 发表于 08-06 09:51 1686次阅读

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

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

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

    对于初学嵌入式的朋友们,会想要了解嵌入式软件开发常用软件有些,有什么用。那么看以下常用
    发表于 07-03 17:06