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

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

3天内不再提示

嵌入式项目需要哪些设计文档?

strongerHuang 来源:strongerHuang 作者:strongerHuang 2021-05-11 13:46 次阅读

俗话说,不会写文档的工程师不是好的工程师!

如果你只会写代码,而从不写文档,迟早有一天会“出事”。这不是危言耸听,现实生活中有很多活生生的例子。

1不写文档有什么后果?

如果不写文档,开发过程中就会出现类似下面这些情况。

领导:这个功能不好、再添加一个功能、把这个功能去掉等。

软件:这个功能不能实现、代码只能重构、一个bug引发N个bug等。

硬件:添加功能只能重新画板、没有考虑要预留通信接口等。

通常,在小公司不写设计文档很正常,但是隐患很大。反复增删功能、调整方案这都需要付出大量时间和精力。

只是一两次小改动都还好,如果多次、大改动的话,就会出现互相甩锅、同事不和的后果。

不要问为什么,经历过的人都懂

2嵌入式项目,需要哪些设计文档?

我之前参与开发的项目,从需求、设计、实现、测试、总结等这几个阶段下来,设计文档多的时候有上100个文档。

当然,这里面是包含不同岗位(软件、硬件、机械、测试等)、不同模块等细分的各种文档。

对于不同的项目,可能设计文档种类和数量不同,比如你一个简单的电子手表,可只需要一个需求文档、一个方案设计文档就可以了。

其实,项目越复杂,设计文档越多。比如京东的仓储物流这一套系统,你能想想一下有多少个设计文档吗?光是需求阶段的文档肯定都有上百个:需求、评估、审核等各种文档。

当然,对于我们普通的项目,需要的设计文档可能几个 ~ 十几个就可以了,

比如:需求文档、评估文档、总方案文档、模块方案文档、通信协议文档、测试用例文档等。

每一种文档没有固定的格式,只需要结合你自己实际项目,把重点描述清楚,能指导开发人员,方便开发和设计即可。

3举例:xxx项目电源管理方案

下面分享一个简单方案设计文档。

1.封面总体

就像一个本书的封面,把主要信息罗列出来。比如:

项目名称、文档版本、日期、作者、密级等。

比如:

603831ac-b20d-11eb-bf61-12bb97331649.png

2.文档目录

作为一个技术开发人员,如果你连word的目录都不知道怎么生成,你应该好好反思一下了。

目录很简单,比如:

60425d12-b20d-11eb-bf61-12bb97331649.png

这里想说下,目录是自动生成,而不是手动编辑的目录。

我就发现有人的目录居然是手动编辑的,不知道大家是不也这么“水”?

3.引言

这里引言也可以是“概述”,把整个方案的主要内容进行描述,比如这里简单列几点:

60737726-b20d-11eb-bf61-12bb97331649.png

4.框架框架就是首先给人第一眼就能了解你这个项目有些什么东西。

比如系统框架、软、硬件框架等。这里需要用到一些设计框架的工具,比如:Visio.

比如:

60ae538c-b20d-11eb-bf61-12bb97331649.png

5.硬件设计罗列硬件相关的设计信息,比如硬件供电、状态等。

60c5fece-b20d-11eb-bf61-12bb97331649.png

6.软件流程牵涉到软件,在方案中必不可少的一点,就是软件流程。

如果你软件流程都不清楚,在开发过程中,肯定会反反复复修改代码,甚至修改了数十版不能用。

软件流程网上有很多例子可参看,比如按键检测流程:

610b6afe-b20d-11eb-bf61-12bb97331649.png

比如电压、电流检测流程:

611f1374-b20d-11eb-bf61-12bb97331649.png

7.系统状态每一个系统基本都由多个状态(或者模式),比如工作状态、空闲状态、故障状态等。

你要把系统可能遇到的状态都列出来,并描述清楚。比如:

61b4129e-b20d-11eb-bf61-12bb97331649.png

8.通信协议、接口设计等其他比如你的项目中会用到通信,需要把通信协议整理出来。

或者简单描述通信相关的内容,比如硬件使用了UARTCAN,通信协议使用CANopen、Modbus等。然后具体协议指令单独一个文档。(见:协议文档)。

最后,以上内容仅供参考,不同项目的情况不同。根据项目情况把设计中需要考虑的重要信息整理出来,并容易理解就可以了。

原文标题:嵌入式方案设计文档该怎么写?

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    4981

    文章

    18274

    浏览量

    288350
  • 通信
    +关注

    关注

    18

    文章

    5703

    浏览量

    134373

原文标题:嵌入式方案设计文档该怎么写?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何成为一名嵌入式C语言高手?

    高手需要掌握C语言基础、了解嵌入式系统的硬件架构和工作原理,通过实践项目提升技能,并积极参与开源项目和技术社区。持续学习和自我提升是成为嵌入式
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    高手需要掌握C语言基础、了解嵌入式系统的硬件架构和工作原理,通过实践项目提升技能,并积极参与开源项目和技术社区。持续学习和自我提升是成为嵌入式
    发表于 03-25 14:12

    嵌入式工程师需要掌握哪些技术?

    嵌入式工程师需要掌握哪些技术? 嵌入式系统是当今科技领域中的重要组成部分,它们存在于我们生活的方方面面,从智能手机到汽车控制系统,从家电到医疗设备。因此,对于那些想要进入嵌入式行业的
    发表于 03-04 16:38

    嵌入式人工智能的就业方向有哪些?

    操作系统使用及C高级编程 数据结构与算法 二:嵌入式Linux应用工程师,Linux网络开发工程师 文件IO 并发程序设计 项目实战:基于Linux的Flappybird游戏开发 网络编程开发及实战上
    发表于 02-26 10:17

    嵌入式系统发展前景?

    嵌入式系统发展前景? 嵌入式系统,从定义上来说,是一种专用的计算机系统,它被设计用来控制、监视或者帮助操作一些设备、装置或机器。在过去的几年里,嵌入式系统已经取得了显著的进步,而未来,嵌入式
    发表于 02-22 14:09

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及您需要执行的任务。 (2).选择编程语言:嵌入式系统通常使用C
    发表于 02-02 15:24

    嵌入式自学好书推荐

    令、编辑器VI、编译器GCC、调试器GDB以及Make项目管理工具、Shell和Makefile脚本编写等知识,并搭建嵌入式开发环境。推荐书籍:《Linux从入门到精通》。 无论从就业市场还是技术发展的角度来看,嵌入式都是一个
    发表于 01-11 15:13

    嵌入式硬件和软件哪个好?

    ,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能! 那对于嵌入式软件工程师来说: 嵌入式软件工程师领域较新,他的发展也是很快的,像
    发表于 12-05 15:17

    为什么嵌入式没有35岁危机?

    岁危机呢? 首先,嵌入式技术的应用领域非常广泛。它不仅仅局限于软件开发,还需要与硬件密切结合。相比之下,其他IT岗位如软件工程师、系统管理员等更容易受到年龄因素的限制。嵌入式技术的工作内容常常
    发表于 11-17 10:33

    如何成为一名优秀的嵌入式工程师?

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第一步,首先是C语言。 1.理解内存管理:C语言不同于高级语言,它不会自动管理内存。因此,你需要理解并掌握如何使用malloc()、free()等函数
    发表于 11-07 15:36

    什么是嵌入式Linux?

    的“香饽饽”。 近年来国家社会愈发重视嵌入式发展,落实到各种省级,国家级竞赛,可参与的选择以及含金量大多高于其他。(包括大学生电子设计竞赛等等)。在未来发展当中,由于嵌入式芯片不断迭代,芯片朝着时代发展需要
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    职业发展相对顺利。从事企业应用软件的人,工作范围广,项目变化大,日常的积累很难产生质变,容易遭遇职业瓶颈;而从事嵌入式软件的人,所涉及的专业技术范围就是那些,时间长了会越来越有经验。 嵌入式技术在我们
    发表于 10-08 15:05

    嵌入式Linux应用开发的完全手册

    是怎样和硬件发生作用的。 同样,对于想从硬件岗位转到软件岗位的人,对于想从传统单片机(比如51单片机)编程进一·步学习“有操作系统的”嵌入式编程的人,需要找到一个学习的切入点:先掌握各个硬件部件的简单编程
    发表于 09-25 07:12

    嵌入式软件好还是硬件好?

    电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能! 那对于嵌入式软件工程师来说: 嵌入式软件工程师领域较新,他的发展也是很快的,像这类技术都是看经验的,经验
    发表于 09-18 15:31

    嵌入式学习路线你知道吗?

    的核心技术。 6完成综合实训项目 嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会?会不会用?能不能应用所学知识来解决实际开发中的问题?这些问题都需要通过完成综合的
    发表于 06-14 16:00