软件实例分析实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:软件设计实例分析班级:软件0707实验成绩:
实验名称:数字录音机原型系统设计学号:20063484 批阅教师签字:
实验编号:108 姓名:蔡思明实验日期:2010年12月18日
指导教师:张会昌组号:实验时间:14:00时00 分-18 时00 分
一、实验目的
1.对系统需求理解能力、分析能力
2.应用设计方法的设计能力
3.系统实现的编程能力
4.能使用常用的系统分析工具对系统进行UML建模
5.可以对系统进行初步的原型实现
二、实验内容与实验步骤
实验内容:
数字录音机原型系统设计
数字录音机是一个用来录音和播放speech的消费电子设备。该设备是用一个内置的microphone来录音,录音的结果(称为Message)保存在一个存储器中。用户可以快速的播放任何一个message,声音由设备前端的speaker发出。设备应该小、轻、易用、使用电池。
下图是录音机的外观。
除了录音和播放外,设备还有一个闹钟,用户可以设定一个每天的alarm,当闹钟响的时候,用户按下一个键,或过了60秒,就会停止。
需要注意:
1)设备只能存储10条message。
2)屏幕菜单要易用性强。
3)可以直接访问任何一个message。
4)屏幕上要一直显示当前的日期和时间。
5)屏幕上还有一个电池电量显示标记,当电池电量低时,系统会发出声音提醒用户。
6)为了省电,当系统空闲时,系统会进入stand-by模式,当用户按下任意键,系统会恢复到normal模式。
7)用户用“播放”和“停止”按钮来控制声音的播放。
8)用户用“录音”和“停止”按钮控制录音。
实验步骤:
1.对系统进行用例分析,先识别Actor, 再描述系统用例,完成系统的用例图;
2.识别出系统的状态,完成系统的状态图;
3.通过用例分析,识别出边缘类、控制类、实体类,定义类的属性和方法,完成类图。
4.通过时序图来描述用户录音过程、播放过程中类的协作关系。
5.依据设计,编码实现原型系统。
三、实验环境
操作系统:windows XP professional
开发平台:StarUML
四、实验过程与分析
1实验一:数字录音机原型系统设计
1.系统的用例图:
user battery
microphone
speaker
recode a message
play a message
set alarm
set dateAndTime
stand_by
batteryState display
batteryLowAlarm
<
message management
alarm
timer clock display
storage device
2.系统类图:
Battery -batteryState +showBatteryState()+lowStateAlarm ()
AlarmClock -tim e
-alarm Tim e +setTim e()
+setAlarm Tim e()+alarm ()
UserInterface +display()+standBy()+record()+play()+next()+stop()+up()
Display +show()
Keyboard +record()+play()+stop()+up()+down()
AudioController +record()+play()+stop()+up()+next()
MessageMemory -m essageList +chooseMessage()+next()+up()
Message -m essageUrl -m essageNam e
Microphone -m essageNum +record()+stop()
Speaker -m essageUrl +play()+stop()
AudioInput
AudioOutput
3. 系统状态图
播放
停止
录音
Stand-by
normal
闹铃响
闹铃停止
闹铃开
声音提醒
按下录音键按下停止键
按下停止键
按下播放键
设置闹铃
到预定时间
电量低
用户按键或过60秒系统空闲用户按下任意键
按下播放键
按下录音键
开启闹铃
4. 录音过程时序图:
: Keyboard : UserInterface : AudioController : MessageMemory : AudioInput : Microphone
: User
1 : 按下Record()
2 : record()
3 : begin record()
4 : get message count()
5 : get message()
6 : record a message()
7 : begin record()
8 : get a sample()
9 : save to a message()
10 : notify progress()
11 : notify progress()
12 : display progress()
13 : 按下stop()
14 : stop()
15 : stop recording()
16 : stop recording()
17 : stop()
19 : save message()
18 : notify display()
5.播放过程时序图: