数字录音机设计方案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字录音机设计方案:一个使用统一建模语言(UML)设计嵌入式系统的实例

,着,译

摘要

本文内容是采用统一建模语言(UML)对一个嵌入式系统进行面向对象分析和设计的实例。被分析的系统是一个数字录音机或称口授留声机。设计实现采用一个嵌入式微处理器和C++编码。

关键字:面向对象的设计,UML,嵌入式系统

1 简介

统一建模语言(Unified Modeling Language-UML)[BJR1,BJR2]提供了一套标准的符号来表示面向对象的软件分析和设计方法[CY90,MO92,SS95]。使用UML 图表能够对很复杂的系统建模,包括实时嵌入式系统。

然而,UML并不是软件开发过程,也没有严格区分软件工程中各开发阶段。

UML定义了一套由不同图表组成的标记符号,但是并没有描述怎样创建和应用这些图表。[Dou98] 介绍了使用UML和面向对象的分析设计技术建造实时嵌入式系统。本文由Douglass撰写,描述了使用UML对一个数字录音机(或口授留声机)系统进行面向对象设计和实现的过程。

目前市场上已经有一些数字录音机商业化产品。本文我们描述的模型参照了一家著名厂商的类似产品的设计。相关需求说明参见本文第二节。第三节讨论系统的对象模型给出主类图。第四节继续进行面向对象的分析,但是主要讨论每个对象内部的行为。第五节进行系统结构设计。包括数字录音机的硬件结构,以及并行处理模型,在该模型内,为每个对象将分配一个可执行的线程。第六节将定义不同对象之间的合作关系。并通过设计模式[GHJV95] 将分析阶段定义的类整合。详细设计在第七节进行讨论。最后,第八节讨论系统实现。我们使用C++进行软件的开发,硬件平台采用一个32位RISC(精简指令集计算机)嵌入处理器。

2 需求分析

数字录音机是一个电子消费产品,用来录制和回放语音。通过内置的麦克录制语音信息,然后将信息保存在数字内存中。使用者可以很方便的在任何时候回放任意录制好的信息,声音将通过设备前端的扬声器播放。该产品将具有体积小、重量轻、使用方便等特点。图 2.1 是我们设计的数字录音机的外观示意图。它是一个手持系统,具有一块平面显示屏以及一些按钮。

图 2.1 外观示意图

在设计中将要考虑到的系统特性如下:

●最多存储10条信息,每条信息的长度将受系统剩余内存的限制。

●简单易用的屏幕菜单。

●直接存取任意语音信息。

●具有时钟功能(不存在2000年问题),用户可以每天设置闹钟,闹钟铃声60

秒钟后自动停止,用户也可以按任意键停止铃声。

●全功能液晶显示屏. 屏幕上总是显示当前日期和时间。同时显示提示信息如

操作指南,当前操作信息等。

●电池电量显示,如果电量不足,系统会发出哔哔声警告。

●为了节省电池. 在不使用的情况下,系统将关闭外部设备的电源,用户可以

通过按任意键使系统回复正常。

●提供好的声音回放质量。使用6Khz的8位采样频率。

2.1 外部事件

嵌入式系统经常要跟外部环境交互。在目前的分析阶段,我们把系统视为一个可以响应外部环境的请求和消息的黑盒子。外部环境由一些参与者(Actor)组成。每个参与者与我们的系统进行不同目的的交互并交换一组不同的信息。

系统范围图/Context-Level Diagram

图 2.2 显示了所有与我们的系统进行交互的参与者。图中我们定义了3个参与者:用户(User),电池(Battery)和时钟(time)。图中还显示了接口和用于实现系统和参与者交换信息的传感装置和执行装置。这里指的信息可以是参与者向系统提出的请求,也可以是系统作出的响应或提供给参与者的服务内容。传感装置(Sensors)包括麦克和按钮。执行装置(Actuators)包括扬声器、电池电量显示表。

每当一个时间计时结束时,参与者‘时钟‘向系统发送一个内容类似于‘下一秒’或

者‘下一个小时’的消息。在实际实现中,我们将用一个硬件定时器来控制具体时间。

图 2.2 系统范围图

事件/Events

事件是环境与系统之间传递的的重要消息。一个实时响应系统必须在某个限定的时间内对外部事件作出响应。下表中内容显示了针对我们的系统所有可能发生的外部事件。

事件的方向:’In’表示该事件由环境传递给系统,‘Out’表相反。

事件发生模式(A):

周期事件(Periodic):表示该事件的发生是遵循某个固定的时间周期的。在表格中用P表示。

随机事件:(Episodic):表示该事件随机发生。在表格中用E表示。

响应时间:表示系统对该事件作出响应所需时间的上限,如果在给出的时间内系统没有完成响应,将会引起系统错误。

2.2 用例/Use Cases

用例是从使用者的角度描述系统的功能。使用者可能是一个人或者某个设备。每个用例表示一种使用系统的方法,每个用例完成后产生不同的结果。在我们的系统中共有6个用例。如图2.3所示。用例描述如下

记录一条信息(Record a message)

使用者选中信息存储目录中的某个信息存储位置,并按下‘录音’(Recording)键。如果在该位置已经存储了一条信息,该记录将被删除。. 系统开始通过麦克录音,直到用户按‘停止’(Stop)键或者内存耗尽。

图 2.3 用例图

回放一条信息(Playback a message)

用户选择某个信息存储位置,然后按‘播放’(Play)按钮。如果该位置保存有信息,则系统通过扬声器回放该声音信息,直到回放完毕或用户按了‘停止’. 按钮。

删除一条信息(Delete a message)

用户选中一个存储位置按‘删除’(Delete)按钮,该位置存储的信息将被永久删除,所占用的内存将被释放。

闹钟定时(Set the alarm time)

相关文档
最新文档