深度实战嵌入式软件架构 V9

深度实战嵌入式软件架构 V9
    马上咨询

    温昱  十年系统规划、架构设计和研发管理(lǐ)经验   

    在金融、军工、電(diàn)信、平台四个领域有(yǒu)深厚的积淀,并有(yǒu)多(duō)媒體(tǐ)、移动互联网实际从业经验;也是《一線(xiàn)架构师实践指南》、及《软件架构设计——程序员向架构师转型必备》畅销书作者。十年系统规划、架构设计和研发管理(lǐ)经验,领域遍布金融、航空、多(duō)媒體(tǐ)、電(diàn)信、中间件等方面。产品涉及银行核心系统、航空专用(yòng)操作系统、网管系统、中间件平台等;為(wèi)众多(duō)知名企业提供了卓有(yǒu)成效的培训与咨询服務(wù),并在中國(guó)软件技术大会、中國(guó)软件工程大会、C++技术大会、IBM开发者大会、CSDN技术英雄会、软件开发2.0大会上交流架构设计经验,反响强烈。

    温老师著有(yǒu):《软件架构设计》译著有(yǒu)《应用(yòng)框架的设计与实现--.NET平台》等。在《程序员》杂志(zhì)、IBM DeveloperWorks等媒體(tǐ)发表《图论思想与UML应用(yòng)》、《拥抱变化:敏捷设计从理(lǐ)论到实践》、《运用(yòng)RUP 4+1视图方法进行软件架构设计》、《随需而变的RUP》、《见山(shān)只是山(shān) 见水只是水──提升对继承的认识》、《浅谈模式的正交分(fēn)类》等文(wén)章数十篇。

    學(xué)时安排

    2 天,5模块,12小(xiǎo)时

    课程内容

    课程大纲

      【模块一】 人人掌握——嵌入式需求
    理(lǐ)大局——嵌入式软件需求分(fēn)析的过程        【步骤明确,经验干货】
    一个展示 需求节奏 的案例
    1—系统边界分(fēn)析 (顶层数据流图/硬件结构图)
    2—功能(néng)范围定义 (功能(néng)树/功能(néng)框图/用(yòng)例图)
    3—界面需求定义   (菜单树/界面流/界面原型)
    4—接口需求定义 (软硬件接口规约)
    5—功能(néng)步骤定义   (输出-处理(lǐ)-输出/用(yòng)例规约)
    6—质量需求定义   (步骤实时性规则/步骤可(kě)靠性规则)
    一组案例……

    划重点——关键点的讲与练
    • 输入-处理(lǐ)-输出定义功能(néng)需求……顽疾是需求项又(yòu)多(duō)又(yòu)散?分(fēn)析、解决。
    • 与外部软、硬件的接口需求 ……顶层数据流图、上下文(wén)图、硬件结构图
    • 高性能(néng)和可(kě)靠性等质量需求 ……质量需求如何定义?以某控制器為(wèi)案例
    • 深度分(fēn)析梳理(lǐ)复杂功能(néng)     ……主控流程+可(kě)能(néng)事件与分(fēn)支流程 + 步骤规则
    拷资料——文(wén)档模板 + 案例资料      【外企模板,独家分(fēn)享】
    • 《需求规格》模板
    • 《需求规格》实例
    • 一组案例……例如,质量90%可(kě)以用(yòng)“功能(néng)的步骤级规则”来定义

    【模块二】 始于需求——自顶向下设计运行控制结构
    理(lǐ)大局——运行控制结构的设计过程       【步骤明确,经验干货】
    一个展示 架构设计节奏 的案例
    Step 1:识别功能(néng)模块——依托 MRM卡
    Step 2:选择运行控制——多(duō)任務(wù)/时间片/前后台
    Step 3:设计功能(néng)执行——依托 运行视图画布
    划重点——三种嵌入式“运行控制结构”模式     
    结构一:多(duō)任務(wù)结构(OS-based Multi-task)
    结构二:前后台结构(死循环+中断)
    结构三:时间片轮询(Time-slice Polling)

    划重点——前后台与时间片架构的几个细节
    • 【大局】采集-分(fēn)析-控制模式
    • 【局部 1】转delay為(wèi)中断
    • 【局部 2】函数的可(kě)重入设计
    • 【局部 3】核心代码性能(néng)
    • 高事件率架构案例:多(duō)任務(wù) vs. 时间片轮转
    划重点——统一回答(dá)几个“大的疑问”   
    • 问:我们公司系统比较复杂,性能(néng)要求也比较多(duō),总感觉理(lǐ)不清?
    • 问:我们公司好像没人会画多(duō)線(xiàn)程协作图。请问,怎么画?
    • 问:我们公司嵌入式分(fēn)层架构太泛,没把代码块、線(xiàn)程、中断等说清楚!


    【模块三】 深入详尽——嵌入式分(fēn)层实战技巧
    理(lǐ)大局——嵌入式代码架构,就这么设计         【步骤明确,经验干货】
    一个展示 架构设计节奏 的案例
    步骤一:代码分(fēn)层,,,初步规划各层代码模块
    步骤二:自底向上,,,封装硬件接口代码模块
    步骤三:接口抽象,,,為(wèi)多(duō)种硬件提供统一接口
    步骤四:服務(wù)模块,,,封装显示/通信/存储服務(wù)
    步骤五:功能(néng)模块,,,封装对硬件模块和服務(wù)模块的调用(yòng)
    步骤六:初始模块,,,负责所有(yǒu)模块的创建、设置

    划重点——关键点的讲与练     【有(yǒu)代码,有(yǒu)真货】
    案例分(fēn)析……上面六步都有(yǒu)实际案例。重点步骤,有(yǒu)代码案例。
    Module对Task/Thread的封装
    l   Module设计的最低要求:没有(yǒu)隐藏就没有(yǒu)简化
    l   模块封装task——Message和Task的架构级应用(yòng)
    Module的可(kě)扩展&可(kě)配置&可(kě)插拔
    l   模块的可(kě)配置式设计——Config   Array的架构级应用(yòng)
    Interface对多(duō)个差异模块的统一抽象
    l   函数指针结构體(tǐ)的架构级应用(yòng)
    上层对下层的“封装”与“组装”
    l   模块封装模块——Layer思想的代码实现
    l   main()如何优雅地“启动”各模块
    悟思想——架构之道
    • 自顶向下,分(fēn)解思维——架构早期,立足业務(wù),根据需求分(fēn)解出粗粒度架构。
    • 自底向上,封装思维——架构后期,立足实现,提炼模块/隐藏细节/统一接口。
    • 统一接口——下层有(yǒu)多(duō)种“怎么做”时,不要直接调用(yòng),要通过统一接口调用(yòng)
    • 通用(yòng)服務(wù)——提炼可(kě)复用(yòng)的显示/通信/存储服務(wù),“功能(néng)代码”就简洁易修改了


    【模块四】 隔离变化——让接口包容变化、支持变化



    【模块五】 职业生涯——从单板架构师,到方案架构师
    谈行业趋势,聊职业发展
    l   IT行业的人才模型
    l   電(diàn)子企业的常见发展路径
    l   我们个人的发展方略
      

    方案架构师设计自控方案时,工作内容有(yǒu)哪些?

    1.   逻辑设计 = 分(fēn)层设计 + 功能(néng)子系统划分(fēn)
    2.   物(wù)理(lǐ)设计 = 硬件拓扑 + 软组件分(fēn)布设计
    3.   技术选型 = 开发技术 + 运行环境选型
    4.   接口设计 = 接口技术选择 + 接口协议定义
      
    自控方案中的上位机软件设计
    1.   五横一纵——上位机软件的模块分(fēn)层模式
    2.   模块划分(fēn)——覆盖接口需求
    3.   模块划分(fēn)——覆盖功能(néng)需求
    拷资料——对应的资料分(fēn)享
    l   《GB设计书》文(wén)档模板解读、实际范例分(fēn)析