RTOS第三次作业

如果从事实时软件系统开发,我认为应具备的能力有:

基本的编程能力:

熟悉掌握C、C++编程语言,从事软件开发,编程语言还是要懂。
代码不仅会码,还得码得规范。
学会使用工具调试优化程序。《构建之法》中有句话“如果一个程序员从来没有用过效能分析工具,那他就不是一个程序员,只是一个编程爱好者罢了。”

学习能力:

活到老,学到老。时代在不停地变化,只要保持学习,才不会被时代所淘汰。
要主动去学习,不能被动地接收知识。
对待问题,能迅速找到突破口,知道如何解决问题。

团队沟通能力:

软件开发往往离不开团队。团队协作中,沟通能力相当重要。如何简单明了地表达自己观点又不过分否定他人,是一门沟通艺术。如《构建之法》中提及的“送别人一个汉堡包”。

还应该:

  • 具有扎实的数字电路、模拟电路、微机原理等专业理论基础知识;
  • 具有一定的硬件基础知识,能够看懂原理图,掌握基本的硬件调试工具的使用方法;
  • 熟悉ARM、DSP等体系架构;
  • 熟悉Linux或者某RTOS,了解其操作系统原理。

为此我准备:

  • 阅读相关文档和观看视频(官方说明文档、相关知识书籍、基础教学视频等)
  • 多动手,只有实践,学习知识才更迅速,掌握的知识才能更牢固。一味地阅读,没有实际操作,终究还是缺点什么。按知识体系,树立一个个小目标,通过完成这些目标,来达到学习知识、熟悉知识、运用知识的目的
  • 早点做出自己以后的规划,明确方向,提前了解自己想去的公司职位要求,这样在学习知识的同时,有一定侧重点。

《Managing Model-Based Design》阅读

《Managing Model-Based Design》电子书chapter1 讲了Model-Based Design的核心内容及其核心内容的优点(优点这里不一一说明了):

  • Executable specification
  • System-level simulation
  • What-if analysis
  • Model elaboration
  • Virtual prototyping
  • Continuous test and verification
  • Automation
  • Knowledge capture and management

在chapter4中介绍了Waterfall、V-Model、IID、Spiral、Scrum和XP等设计流程,同时讲述了Model-Based Design 在这些流程设计中应用的优点。

就Waterfall来说:
主要缺点是它逐步解决问题的方式太过僵硬导致难以处理需求的改变,同时这种设计流程缺乏创新。

The waterfall handles large system development well as long as requirements and procedures remain constant, but its stepwise approach is too rigid to handle changes in requirements. In addition, the waterfall does not encourage innovation. To be effective, it requires team members to have solved similar problems before.

基于模型的设计流程有以下优势:

  • Automation makes it easier to deal with change. It’s easier to redo a step when tasks such as report generation are automated.
  • System-level simulation makes it easier to manage complexity by showing the interactions between components.
  • What-if analysis fosters innovation by enabling team members to try out new ideas quickly and without risk.

我个人认为,在实时控制软件开发方面,基于模型的设计流程,优点:

  • 模型能提供更多、更全面、更准确的信息,有助于团队和开发者、顾客之间的沟通;
  • 该流程能较好的处理复杂系统的开发;
  • 在模型仿真阶段,结合What-if analysis,试验评估多种设计思路,及早发现问题。
  • Virtual Prototyping:缩短开发时间和节约开发成本,可以去尝试更多的创新;
  • Continuous test and verification:通过不断测试,验证减少错误率,提高软件安全性。
  • Automation:自动生成代码,减少工作量,降低代码错误率。团队可以侧重设计而不是忙于代码。
  • Knowledge Capture and Management:保护知识产权(IP),模型有助于开发人员与供应商、顾客的交流。

至于缺点:

  • 团队可能需要好的平台来管理这些模型数据库,这需要一定成本;
  • 建模前期考虑因素多、验证耗时偏长,这样需要更强的耐心去做这。

读后感

之前我以为编程只需要完成功能即可,读后我发现要想成为真正的程序员,学习使用工具调试优化程序是必须的。熟悉你编程环境,明白操作系统原理,对自身编程有一定帮助。设计流程的选择也会让项目开发和团队合作变得简单。自己要学的还有很多很多。

posted @ 2017-10-10 14:37  HUSTJ  阅读(167)  评论(1编辑  收藏  举报