当前位置: 首页 > article >正文

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

嵌入式软件开发流程

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.kler.cn/news/367168.html

相关文章:

  • 如何预防数据打架?数据仓库如何保持指标数据一致性开发指南(持续更新)
  • [mysql]子查询的概述和分类及单行子查询
  • echarts:导入excel生成桑葚图
  • 2024数学分析【南昌大学】
  • 文本预处理操作简述
  • Redisson(二)SpringBoot集成Redisson
  • 探索Python安全字符串处理的奥秘:MarkupSafe库揭秘
  • 华为配置 之 端口隔离
  • 腾讯云控制台URL刷新URL预热 使用接口刷新
  • PgSQL常用SQL语句
  • windows DLL技术-AppInit DLL技术和DLL的最佳做法
  • Linux 斐波那契数列 递归汇编实现
  • python爬虫:HTTP、Cookie和会话管理详解
  • WPF+MVVM案例实战(六)- 自定义分页控件实现
  • 华为网络管理配置实例
  • [Ansible实践笔记]自动化运维工具Ansible(一):初探ansibleansible的点对点模式
  • TensorFlow面试整理-TensorFlow 基础概念
  • JavaScript part2
  • jenkins 作业添加用户权限
  • 练习LabVIEW第十八题
  • 在xml 中 不等式 做转义处理的问题
  • Nginx16-Lua扩展案例
  • Django从请求到响应
  • 阿里云镜像源无法访问?使用 DaoCloud 镜像源加速 Docker 下载(Linux 和 Windows 配置指南)
  • ESP32-S3学习笔记:常用的ESP-IDF命令总结
  • Junit + Mockito保姆级集成测试实践