嵌入式软件架构设计..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式软件架构设计.

嵌入式系统软件架构设计 目录 1. 前言 4 2. 决定架构的因素和架构的影响 4 2.1. 常见的误解 5 2.1.1. 小型的系统不需要架构 5 2.1.2. 敏捷开发不需要架构 7 3. 嵌入式环境下软件设计的特点 7 3.1. 和硬件密切相关 7 3.2. 稳定性要求高 8 3.3. 内存不足 8 3.3.1. 虚拟内存技术 8 3.3.2. 两段式构造 9 3.3.3. 内存分配器 10 3.3.4. 内存泄漏 11 3.4. 处理器能力有限,性能要求高 11 3.4.1. 抵御新技术的诱惑 11 3.4.2. 不要有太多的层次 11 3.5. 存储设备易损坏,速度较慢 12 3.5.1. 损耗均衡 12 3.5.2. 错误恢复 12 3.6. 故障成本高昂 13 4. 软件框架 14 4.1. 嵌入式软件架构面临的问题 14 4.2. 什么是框架 14 4.2.1. 软件复用的层次 14 4.2.2. 针对高度特定领域的抽象 15 4.2.3. 解除耦合和应对变化 16 4.2.4. 框架可以实现和规定非功能性需求 16 4.3. 一个框架设计的实例 17 4.3.1. 基本架构 17 4.3.2. 功能特点 17 4.3.3. 分析 18 4.3.4. 实际效果 23 4.4. 框架设计中的常用模式 23 4.4.1. 模板方法模式 23 4.4.2. 创建型模式 23 4.4.3. 消息订阅模式 24 4.4.4. 装饰器模式 24 4.5. 框架的缺点 25 5. 自动代码生成 26 5.1. 机器能做的事就不要让人来做 26 5.2. 举例 26 5.2.1. 消息的编码和解码 26 5.2.2. GUI代码 27 5.2.3. 小结 28 5.2.4. Google Protocol Buffer 28 6. 面向语言编程(LOP) 30 6.1. 从自动化代码生成更进一步 30 6.2. 优势和劣势 32 6.3. 在嵌入式系统中的应用 32 7. 测试 33 7.1. 可测试性是软件质量的一个度量指标 33 7.2. 测试驱动的软件架构 34 7.3. 系统测试 34 7.3.1. 界面自动化测试 34 7.3.2. 基于消息的自动化测试 36 7.3.3. 自动化测试框架 36 7.3.4. 回归测试 38 7.4. 集成测试 38 7.5. 单元测试 38 7.5.1. 圈复杂度测量 41 7.5.2. 扇入扇出测量 42 7.5.3. 框架对单元测试的意义 42 8. 维护架构的一致性 42 9. 一个实际嵌入式系统架构的演化 43 9.1. 数据处理 44 9.2. 窗口管理 44 9.3. MVC模式 45 9.4. 大量类似模块,低效的复用 46 9.5. 远程控制 46 9.6. 自动化的TL1解释器 47 9.7. 测试的难题 47 9.8. 小结 47 10. 总结 48 前言 嵌入式是软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。本课程试图从嵌入式软件架构设计出发,启发大家对软件架构设计的理解。本课程的很多内容是对谢老师课程在嵌入式领域的具体阐述。 提起嵌入式软件设计,传统的印象是单片机,汇编,高度依赖硬件。传统的嵌入式软件开发者往往只关注实现功能本身,而忽视诸如代码复用,数据和界面分离,可测试性等因素。从而导致嵌入式软件的质量高度依赖开发者的水平,成败系之一身。随着嵌入式软硬件的飞速发展,今天的嵌入式系统在功能,规模和复杂度各方面都有了极大的提升。比如,Marvell公司的PXA3xx系列的最高主频已经达到800Mhz,内建USB,WIFI,2D图形加速,32位DDR内存。在硬件上,今天的嵌入式系统已经达到甚至超过了数年前的PC平台。在软件方面,完善的操作系统已经成熟,比如Symbian, Linux, WinCE。基于完善的操作系统,诸如字处理,图像,视频,音频,游戏,网页浏览等各种应用程序层出不穷,其功能性和复杂度比诸PC软件不遑多让。原来多选用专用硬件和专用系统的一些商业设备公司也开始转换思路,以出色而廉价的硬件和完善的操作系统为基础,用软件的方式代替以前使用专有硬件实现的功能,从而实现更低的成本和更高的可变更,可维护性。 决定架构的因素和架构的影响 架构不是一个孤立的技术的产物,它受多方面因素的影响。同时,一个架构又对软件开发的诸多方面造成影响。 下面举一个具体的例子。 摩托车的发动机在出厂前必须通过一系列的测试。在流水线上,发动机被送到每个工位上,由工人进行诸如转速,噪音,振动等方面的测试。要求实现一个嵌入式设备,具备以下基本功能: 安装在工位上,工人上班前开启并登录。 通过传感

文档评论(0)

sdgr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档