[软件工程]—嵌入式软件开发流程

news2024/10/23 6:58:02

嵌入式软件开发流程

1.工程文件夹目录

├─00_Project_Management
├─00_Reference
├─01_Function_Map
├─02_Hardware
├─03_Firmware
├─04_Software
├─05_Mechanical
├─06_FCT
└─07_Tools
  • 00_Project_Management

子文件夹如下所示:

├─00_需求导入_QFD
├─01_需求约束_Pugh
├─02_需求转化_Basic_Static
├─03_功能图谱_Function_Map
├─04_功能风险管控_DFMEA
├─04_法规认证_国内_国外
├─04_知识产权_国内_国外
├─05_敏捷开发_Scrum
├─06_持续集成与测试_DevOps
├─07_产品生产与管理_Six_Sigma
└─08_缺陷管理追踪_Jira
  • 00_Reference

参考文件,如datasheet。

  • 01_Function_Map

功能图谱,包括哪些功能以及如何实现。

  • 02_Hardware

硬件,比如PCB文件。

  • 03_Firmware

固件,如单片机库文件、bootloader、中间件、RTOS。

  • 04_Software

软件工程代码;调试用的自己开发的上位机等。

  • 05_Mechanical

产品结构相关文件。

  • 06_FCT

生产相关,测试上位机等。

  • 07_Tools

使用的开发工具、测试脚本、固件加密等。

2.开发流程

2.1 需求分析导入(QFD)

QFD是一种生成计划矩阵的工具:

  • 获取客户需求并将其明确。
  • 确保服务与客户要求一致。
  • 理解客户需求与服务需求的关系。
  • 按需求的优先顺序指导服务需求。
  • 确定我们在技术、测量和竞争性方面的差距。
  • 将服务需求进一步分解。
  • 追踪在弥补差距方面所取得的进步。

在这里插入图片描述

2.2 需求约束(Pugh)

Pugh矩阵式一种需求分析与约束的工具;

  • 进一步探求客户本质需求。
  • 将需求之间的交叉点提取出来。
  • 对需求的初步实现方案进行初步简单甄别。
  • 研究清除每个功能对于各个功能之间的影响。

在这里插入图片描述

2.3 功能图谱(Function Map)

功能图谱是一种可视化工具,它帮助我们在开发过程中系统的组织和管理系统中应用的所有功能:

  • 获取并明确功能需求。
  • 确保系统功能与用户要求相一致。
  • 理解功能需求与系统需求的关系。
  • 按需求优先顺序指导功能开发。
  • 确定在技术、测量和竞争性方面的差距。
  • 将功能需求进行进一步分解。

在这里插入图片描述

2.4 法规认证

拥有法规认证就能得到一部分机构的背书,产品才能进入某个国家、地区以及对应的行业。

2.5 知识产权审查与规划

通过知识产权的布局,能够让我们的产品形成知识产权的壁垒,包括不限于专利、品牌、技术交叉授权等。

2.6 功能风险管控(DEMEA)

通过DFMEA,企业可以在设计阶段提前识别和处理潜在风险,减少产品上市后的故障和召回,提高产品可靠性和客户满意度,同时降低成本和提高市场竞争力。

在这里插入图片描述

2.7 敏捷开发(Scrum)

Scrum框架有助于团队更加灵活开展软件开发工作,提高项目交付的质量、效率和客户满意度。

2.8 持续集成与测试(DevOps)

加速了软件交付,提高了软件质量,降低了风险,并促进团队的协作和持续改进。

2.9 产品生产管理(Six Sigma)

Six Sigma在产品生产管理中的主要作用是通过改进生产过程、降低成本、提高质量和客户满意度,推动企业实现持续的质量和业务增长。

  1. 过程改进
  2. 减少变异性
  3. 降低成本
  4. 提高客户满意度
  5. 数据驱动决策
  6. 培养团队素质
  7. 持续改进

2.10 缺陷管理追踪(Jira)

Jira作为一种强大的项目管理和协作平台,在缺陷管理追踪方面提供了丰富的功能和灵活的定制选项,从而提高产品质量和团队生产效率。

3. 敏捷开发

3.1 敏捷开发与瀑布式开发区别

瀑布式开发流程如下,整个流程一次进行、有可能导致最终产品不符合客户需求或落后于市场需求,导致推翻重做,进而影响效率。

在这里插入图片描述

敏是开发先做出一个最小系统,然后在已有的功能上不断迭代进行完善,迭代过若干轮后完成最终产品。

在这里插入图片描述

3.2 角色、文档、会议

  • 角色:

    • 产品经理:负责确定产品特性、产品亮点。
    • 团队负责人:负责团队工作,进行不同人员的沟通与协作。
    • 团队成员:开发、测试等。
  • 文档

    • 产品需求列表:将用户需求进行整理,在每个迭代周期中进行规划。
    • 用户故事:明确用户需求,排优先级。
    • 燃尽图:表示项目进度。
  • 会议

    • 迭代周期计划会议(SprintPlanning):用于评估用户需求与工作量。
    • 每日例会:沟通团队人员进度。
    • 迭代周期回顾会议(SprintReview):展示最终成功,并沟通继续改进。

3.3 工作流程

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2221397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OriginOS 5深度体验:这款新系统,真的有点东西

嘿,朋友!最近你有没有关注到vivo推出的OriginOS 5啊?我可是被这款新系统深深吸引了,感觉它真的有点东西,忍不住想和你分享一下我的深度体验。 一、全新的唤醒方式,贴心小助手随时待命 首先,我得…

Sigrity 共模电感的S-parameter仿真数据导入

下载S4P参数 https://ds.murata.co.jp/simsurfing/cmcc.html?partnumbers%5B%22DLW32MH101XT2%22%5D&oripartnumbers%5B%22DLW32MH101XT2L%22%5D&rgearjomoqke&rgearinfocom&md51729525489334# 下载S4P参数; DLW32MH101XT2.s4p Sigrity 使用-dif…

集成平台,互联互通平台,企业大数据平台建设方案,技术方案(Word原件 )

企业集成平台建设方案及重点难点攻坚 基础支撑平台主要承担系统总体架构与各个应用子系统的交互,第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上,实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台,提出了以下要求&…

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

本篇文章将介绍一个新的改进机制——WTConv(小波卷积),并阐述如何将其应用于YOLOv11中,显著提升模型性能。YOLOv11模型相比较于前几个模型在检测精度和速度上有显著提升,但其仍然受卷积核感受野大小的限制。因此&#…

柔性数组的使用

//柔性数组的使用 #include<stdio.h> #include<stdlib.h> #include<errno.h> struct s {int i;int a[]; }; int main() {struct s* ps (struct s*)malloc(sizeof(struct s) 20 * sizeof(int));if (ps NULL){perror("malloc");return 1;}//使用这…

2 ,datax :案例

1 &#xff0c;作业开发流程 &#xff1a;4 步 1 &#xff0c;确认源 &#xff1a; 1 &#xff0c;输入源    2 &#xff0c;输出源 2 &#xff0c;查文档 &#xff1a;输入&#xff0c;输出 https://github.com/alibaba/DataX/blob/master/introduction.md 3 &#xff0c;编…

【ArcGIS Pro实操第八期】绘制WRF三层嵌套区域

【ArcGIS Pro实操第八期】绘制WRF三层嵌套区域 数据准备ArcGIS Pro绘制WRF三层嵌套区域Map-绘制三层嵌套区域更改ArcMap地图的默认显示方向指定数据框范围 Map绘制研究区Layout-布局出图 参考 本博客基于ArcGIS Pro绘制WRF三层嵌套区域&#xff0c;具体实现图形参考下图&#x…

【前端】如何制作一个自己的网页(15)

有关后代选择器的具体解释&#xff1a; 后代选择器 后代选择器使用时&#xff0c;需要以空格将多个选择器间隔开。 比如&#xff0c;这里p span&#xff0c;表示只设置p元素内&#xff0c;span元素的样式。 <style> /* 使用后代选择器设置样式 */ p span { …

MySQL程序特别酷

这一篇和上一篇有重合的内容&#xff0c;&#xff0c;我决定从头开始再学一下MySQL&#xff0c;和上一篇的区别是写的更细了&#xff0c;以及写这篇的时候Linux已经学完了 下面就是关于MySQL很多程序的介绍&#xff1a; MySQL安装完成通常会包含如下程序&#xff1a; Linux系…

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券&#xff0c;共有6种优惠券样式&#xff08;参考了常见的优惠券&#xff09;&#xff0c;文本内容仅为示例&#xff0c;您可在此基础上调整为你想要的文本 预览效果 通过模拟数据&#xff0c;实现点击使用优惠券让其变为灰色的效果&#xff08;模…

鸿蒙网络编程系列32-基于拦截器的性能监控示例

1. 拦截器简介 在Web开发中拦截器是一种非常有用的模式&#xff0c;它允许开发者在请求发送到服务器之前或响应返回给客户端之前执行一些预处理或后处理操作。这种机制特别适用于需要对所有网络请求或响应进行统一处理的情况&#xff0c;比如添加全局错误处理、请求头的修改、…

Linux中输入和输出基本过程

目录 Linux中输入和输出基本过程 文件内核级缓冲区 何为重定向 子进程与缓冲区 手撕一个简单的shell&#xff08;版本2&#xff09; 判断重定向命令与截取 执行重定向 简单实现stdio.h中的文件相关操作 FILE结构体 fopen函数 fwrite函数 fflush函数 fclose函数 Li…

Vue+TypeScript+SpringBoot的WebSocket基础教学

成品图&#xff1a; 对WebSocket的理解&#xff08;在使用之前建议先了解Tcp&#xff0c;三次握手&#xff0c;四次挥手 &#xff09;&#xff1a; 首先页面与WebSocket建立连接、向WebSocket发送信息、后端WebSocket向所有连接上WebSoket的客户端发送当前信息。 推荐浏览网站…

燕山大学23级经济管理学院 10.18 C语言作业

燕山大学23级经济管理学院 10.18 C语言作业 文章目录 燕山大学23级经济管理学院 10.18 C语言作业1C语言的基本数据类型主要包括以下几种&#xff1a;为什么设计数据类型&#xff1f;数据类型与知识体系的对应使用数据类型时需要考虑的因素 21. 逻辑运算符2. 真值表3. 硬件实现4…

设计模式(UML图、类之间关系、设计原则)

目录 一.类的UML图 1.类的UML图 2.类之间的关系 2.1 继承关系&#xff1a; 2.2关联关系 2.2.1单项关联 2.2.2双向关联 2.2.3自关联 2.3聚合关系 2.4组合模式 2.5依赖关系 二、设计三原则 2.1单一职责原则 2.2开放封闭原则 2.3依赖倒转原则 一.类的UML图 1.类的…

考研篇——数据结构王道3.2.2_队列的顺序实现

目录 1.实现方式说明2.代码实现2.12.1.1 代码12.1.2 代码22.1.3 代码3 2.22.2.1 代码42.2.5 代码52.2.6 代码6 总结 1.实现方式说明 多在选择题中考察 队尾指针&#xff08;rear&#xff09;有两种指向方式&#xff1a; 队尾指针指向队尾元素的位置&#xff0c;队尾指针指向…

9个3D直播场景推荐

在科技日新月异的今天&#xff0c;3D直播技术正逐步渗透至文旅领域&#xff0c;为游客带来前所未有的沉浸式体验。以下是vLive虚拟直播九个精心推荐的文旅3D直播场景&#xff0c;它们不仅展现了各地独特的文化魅力&#xff0c;还通过高科技手段让游客仿佛穿越时空&#xff0c;身…

ArcGIS应用指南:多尺度渔网创建

在GIS中&#xff0c;创建渔网矢量文件是GIS中的一项常见任务&#xff0c;通过将研究区域划分为规则的网格&#xff0c;可以更精细地分析和管理城市空间数据。本文以厦门市行政区为例&#xff0c;详细介绍了如何创建不同尺度的渔网矢量网格&#xff0c;以适应不同区域的发展特点…

代码随想录算法训练营第46期Day35

leetcode.452.用最少数量的箭射爆气球 class Solution { public:static bool cmp(const vector<int>& a,const vector<int>& b){//对Xend进行排序return a[1]<b[1]; } //这个题比较好贪&#xff0c;我们每次射只需要射Xend就可以了&#xff0c;然后用此…

OpenCL内存模型

OpenCL将内存划分成主机内存和设备内存。主机内存可在主机上使用&#xff0c;其并不在OpenCL的定义范围内。使用对应的OpenCL API可以进行主机和设备的数据传输&#xff0c;或者通过共享虚拟内存接口进行内存共享。而设备内存&#xff0c;指定是能在执行内核中使用的内存空间。…