没有合适的资源?快使用搜索试试~ 我知道了~
首页嵌入式系统软件架构设计.doc
嵌入式系统软件架构设计.doc
需积分: 47 79 下载量 129 浏览量
更新于2023-03-16
评论 5
收藏 1.75MB DOC 举报
这是一份讲嵌入式程序的架构的好文档,大部分讲软件架构的书都是基于PC的软件开发的,很少有讲嵌入式软件的架构
资源详情
资源评论
资源推荐
嵌入式系统软件架构设计
目录
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. 内存泄漏........................................................................................................10
3.4. 处理器能力有限,性能要求高..............................................................................10
3.4.1. 抵御新技术的诱惑........................................................................................10
3.4.2. 不要有太多的层次........................................................................................11
3.5. 存储设备易损坏,速度较慢...................................................................................11
3.5.1. 损耗均衡........................................................................................................12
3.5.2. 错误恢复........................................................................................................12
3.6. 故障成本高昂...........................................................................................................13
4. 软件框架 13
4.1. 嵌入式软件架构面临的问题...................................................................................13
4.2. 什么是框架...............................................................................................................14
4.2.1. 软件复用的层次............................................................................................14
4.2.2. 针对高度特定领域的抽象...........................................................................15
4.2.3. 解除耦合和应对变化....................................................................................15
4.2.4. 框架可以实现和规定非功能性需求...........................................................16
4.3. 一个框架设计的实例...............................................................................................17
4.3.1. 基本架构........................................................................................................17
4.3.2. 功能特点........................................................................................................17
4.3.3. 分析................................................................................................................17
4.3.4. 实际效果........................................................................................................22
4.4. 框架设计中的常用模式...........................................................................................22
4.4.1. 模板方法模式................................................................................................22
4.4.2. 创建型模式....................................................................................................23
4.4.3. 消息订阅模式................................................................................................23
4.4.4. 装饰器模式....................................................................................................24
4.5. 框架的缺点...............................................................................................................25
5. 自动代码生成 26
5.1. 机器能做的事就不要让人来做..............................................................................26
5.2. 举例...........................................................................................................................26
5.2.1. 消息的编码和解码........................................................................................26
5.2.2. GUI 代码........................................................................................................28
5.2.3. 小结................................................................................................................28
5.2.4. Google Protocol Buffer..................................................................................28
6. 面向语言编程(LOP) 29
6.1. 从自动化代码生成更进一步...................................................................................29
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. 回归测试........................................................................................................37
7.4. 集成测试...................................................................................................................38
7.5. 单元测试...................................................................................................................38
7.5.1. 圈复杂度测量................................................................................................41
7.5.2. 扇入扇出测量................................................................................................41
7.5.3. 框架对单元测试的意义...............................................................................41
8. 维护架构的一致性 41
9. 一个实际嵌入式系统架构的演化 43
9.1. 数据处理...................................................................................................................43
9.2. 窗口管理...................................................................................................................44
9.3. MVC 模式.................................................................................................................44
9.4. 大量类似模块,低效的复用...................................................................................45
9.5. 远程控制...................................................................................................................46
9.6. 自动化的 TL1 解释器..............................................................................................46
9.7. 测试的难题...............................................................................................................47
9.8. 小结...........................................................................................................................47
10. 总结 48
1. 前言
嵌入式是软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同
时它的一些问题又具有相当的通用性,可以推广到其他的领域。本课程试图从嵌入式软件
架构设计出发,启发大家对软件架构设计的理解。本课程的很多内容是对谢老师课程在嵌
入式领域的具体阐述。
提起嵌入式软件设计,传统的印象是单片机,汇编,高度依赖硬件。传统的嵌入式软
件开发者往往只关注实现功能本身,而忽视诸如代码复用,数据和界面分离,可测试性等
因素。从而导致嵌入式软件的质量高度依赖开发者的水平,成败系之一身。随着嵌入式软
硬件的飞速发展,今天的嵌入式系统在功能,规模和复杂度各方面都有了极大的提升。比
如,Marvell 公司的 PXA3xx 系列的最高主频已经达到 800Mhz,内建 USB,WIFI,2D 图形加
速,32 位 DDR 内存。在硬件上,今天的嵌入式系统已经达到甚至超过了数年前的 PC 平台。
在软件方面,完善的操作系统已经成熟,比如 Symbian, Linux, WinCE。基于完善的操作系
统,诸如字处理,图像,视频,音频,游戏,网页浏览等各种应用程序层出不穷,其功能
性和复杂度比诸 PC 软件不遑多让。原来多选用专用硬件和专用系统的一些商业设备公司
也开始转换思路,以出色而廉价的硬件和完善的操作系统为基础,用软件的方式代替以前
使用专有硬件实现的功能,从而实现更低的成本和更高的可变更,可维护性。
2. 决定架构的因素和架构的影响
架构不是一个孤立的技术的产物,它受多方面因素的影响。同时,一个架构又对软件
开发的诸多方面造成影响。
下面举一个具体的例子。
摩托车的发动机在出厂前必须通过一系列的测试。在流水线上,发动机被送到每个工
位上,由工人进行诸如转速,噪音,振动等方面的测试。要求实现一个嵌入式设备,具备
以下基本功能:
1. 安装在工位上,工人上班前开启并登录。
2. 通过传感器自动采集测试数据,并显示在屏幕上。
3. 记录所有的测试结果,并提供统计功能。比如次品率。
如果你是这个设备的架构师,哪些问题是在设计架构的时候应该关注的呢?
2.1. 常见的误解
2.1.1. 小型的系统不需要架构
有相当多的嵌入式系统规模都较小,一般是为了某些特定的目的而设计的。受工程师
认识,客户规模和项目进度的影响,经常不做任何架构设计,直接以实现功能为目标进行
编码。这种行为表面上看满足了进度,成本,功能各方面的需求,但是从长远来看,在扩
展和维护上付出的成本,要远远高于最初节约的成本。如果系统的最初开发者继续留在组
织内并负责这个项目,那么可能一切都会正常,一旦他离开,后续者因为对系统细节的理
解不足,就可能引入更多的错误。要注意,嵌入式系统的变更成本要远远高于一般的软件
系统。好的软件架构,可以从宏观和微观的不同层次上描述系统,并将各个部分隔离,从
而使新特性的添加和后续维护变得相对简单。
举一个城铁刷卡机的例子,这个例子在前面的课程中出现过。
简单的城铁刷卡机只需要实现如下功能:
软件架构
软件规模
生命周期
非功能性需求
非功能性需求
团队组成
开发模式
剩余47页未读,继续阅读
zsdshuai
- 粉丝: 3
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0