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

嵌入式软件开发流程

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 工作流程

相关推荐
IDRSolutions_CN1 天前
什么是线性化PDF?
经验分享·pdf·软件工程·团队开发
我是大佬的大佬3 天前
有关Android Studio的安装与配置并实现helloworld(有jdk的安装与配置)(保姆级教程)
android·android studio·软件工程
计软考研大C哥3 天前
【25考研】中科院软件考研复试难度分析!
考研·软件工程
shinelord明6 天前
【大数据】数据治理浅析
大数据·人工智能·软件工程
reddishz7 天前
软件需求工程中的风险管理
软件工程·产品经理·需求分析·软件需求
Canliture7 天前
ICSE‘25 LLM Assistance for Memory Safety
重构·大模型·静态分析·软件工程·缺陷检测·内存安全·读论文
Sakura祈8 天前
需求分析的
软件工程
shinelord明8 天前
【再谈设计模式】职责链模式 - 串联请求处理者的链条
开发语言·数据结构·设计模式·软件工程
鸭鸭鸭进京赶烤9 天前
计算机工程:解锁未来科技之门!
人工智能·科技·opencv·ai·机器人·硬件工程·软件工程
艾思科蓝 AiScholar10 天前
【连续多届EI稳定收录&出版级别高&高录用快检索】第五届机械设计与仿真国际学术会议(MDS 2025)
人工智能·数学建模·自然语言处理·系统架构·机器人·软件工程·拓扑学