4006-998-758
3000+课程任你选择
嵌软架构师的设计能力必修课 v2
研发学院 开课时间:2021-07-02
温昱

温老师具有金融、军工电子、通讯、移动互联网等行业开发和代码重构经验;另外,有长期嵌入式软件研发和重构咨询经验,尤其擅长嵌入式软件的架构优化和代码重构,客户包括大厂华为、以及烽火和康尼等上市公司。

十五年系统规划、架构设计和代码重构经验,在金融、航空、多媒体、电信、中间件平台等领域负责和参与多个大型系统的规划、设计、开发与重构。

产品涉及银行核心系统、航空专用操作系统、网管系统、中间件平台等。为众多知名企业提供了卓有成效的培训与咨询服务,并在中国软件技术大会、中国软件工程大会、C++技术大会、IBM开发者大会、CSDN技术英雄会、软件开发2.0大会上交流架构设计与重构经验,反响强烈。在《程序员》杂志、IBM DeveloperWorks等媒体发表《图论思想与UML应用》、《拥抱变化:敏捷设计从理论到实践》、《运用RUP 4+1视图方法进行软件架构设计》、《随需而变的RUP》、《见山只是山 见水只是水──提升对继承的认识》、《浅谈模式的正交分类》等文章数十篇


查看老师详情
课程内容


课程简介


六个模块对应六个实际工作场景提高嵌软架构师的岗位胜任力
1)程 序 结 构 设 计——做到模块间松耦合
2)运行时 结 构 设 计——结构清晰地控制精确联动
3)底层模块的漂亮设计——做到可重用、可扩展
4)四种需求变更的应对——让需求变更不再痛苦
5)模块接口的漂亮设计——搞定Call、Callback、Msg接口
6)远程协议的漂亮设计——搞定最复杂的交互


课程目标


精准提高嵌软工程师的岗位胜任力
1)程 序 结 构 设 计——做到模块间松耦合
2)运行时 结 构 设 计——做到硬件间精确联动
3)底层模块的漂亮设计——做到可重用、可扩展
4)功能模块的漂亮设计——做到可配置、可扩展
5)模块接口的漂亮设计——搞定Call、Callback、Msg接口
6)远程协议的漂亮设计——搞定最复杂的交互


课程对象


培训对象:嵌软工程师、嵌软高级工程师

设备厂商:仪器仪表、通讯设备、白电黑电、消费电子、医疗电子、汽车电子
方案厂商:工业控制、测控监控、传统安防、智慧城市、智能家居、智能制造
军工院所:航空航天、卫星导航、海工船舶、核工业
学员基础:在岗嵌软工程师,均可参加。

 

课程大纲




 

 

 

 

 

 

 

 

 

 

程序结构设计——做到模块间松耦合(第一天)

嵌软的挑战
a)功能实现与具体硬件无关
b)硬件无关与硬件相关代码分离
c)应付硬件变化:硬件接口模块的可替换性、可修改性
d)应付协议变化:协议代码模块的可替换性、可修改性

【讲案例】大中小嵌软架构实例观摩
a)固件分层……案例
b)产品化分层……案例
c)平台化分层……案例A
d)平台化分层……案例B
e)平台化分层……案例C

【讲技术】大中小嵌软的代码分层
a)洋葱皮
b)UI-SI-DI-PD
c)固件五横一纵
d)产品六横一纵
e)平台分层

 

 

 

 

 

运行时结构设计——做到硬件间精确联动(第一天)

嵌软的挑战
a)运行逻辑复杂,难设计?
b)靠全局变量通信,紧耦合?


【讲案例】从固件到整机嵌软实例观摩
a)设计案例1……无OS。While(1)中顺序执行任务函数
b)设计案例2……无OS。While(1)中执行时间片任务
c)设计案例3……有OS。ISR与Task信号量通信,Task间队列通信

【讲技术】技术对比
a)前后台结构(死循环+中断) ……骨架代码对比
b)时间片轮询(Time-slice Polling) ……骨架代码对比
c)多任务结构(OS-based Multi-task)……骨架代码对比

 

 

 

 

 

 

 

 

底层模块的漂亮设计——做到可重用、可扩展(第一天)

 

嵌软架构师的岗位能力
合格:封装硬件细节、暴露访问接口
优秀:能做到支持新硬件只需局部扩展
牛人:在HAL层提供显示服务/通信服务/存储服务

【讲案例】嵌软HAL模块就该这么设计
a)从led驱动,到闪烁可配置/可循环的HAL API……源代码案例
b)从2.4G无线,到发包调用/收包回调的HAL API……源代码案例
c)从I2C读写,到EEPROM的延迟写HAL API

【讲技术】嵌软HAL设计技巧
a)利用callback……让模块:局部处理可扩展
b)利用配置数组……让模块:整体逻辑可配置
c)利用Union结构……让模块:支持多种数据类型
d)利用函数指针结构体……让模块:接口一致的多个模块可替换

 

 

 

四种需求变更的应对——让需求变更不再痛苦(第二天)

 

嵌软架构师的岗位能力
合格:Call接口设计
优秀:搞定Call/Callback/Msg接口
牛人:接口支持任务或处理的运行时注册/注销

【讲案例】漂亮接口设计实例观摩
a)经典Callback接口设计
b)基于注册的Callback接口设计

 

 

 

远程协议的漂亮设计——搞定最复杂的交互(第二天)

嵌软架构师的岗位挑战
a)协议设计,对许多架构师是挑战
a)影响大:影响到多个程序/多个团队
b)设计难:不容易设计满意

【讲技术】协议设计思路
How to:接口过程设计
How to:接口技术选择
How to:接口格式定义

【讲案例】牛案例示范协议设计难点
案例一:“交互复杂型”协议设计范例——精髓精讲
案例二:“通用规范型”协议设计范例——精髓精讲

 

返回上一级