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

  • 15
  • 0
  • 约3.76万字
  • 约 49页
  • 2019-11-17 发布于山东
  • 举报
精品文档 精品文档 精品文档 精品文档 精品文档 精品文档 嵌入式系统软件架构设计 目录 TOC \o 1-3 \h \z \u 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)

1亿VIP精品文档

相关文档