第四章 系统分析
4.1 对系统总体功能的规定
鼠标控制:用手机上的按键来控制计算机鼠标的各种动作,如鼠标上移、下移、左移和右移,鼠标的单击和双击,鼠标的按下和释放,鼠标的左击和右击等一系列动作。
拍照传输:用手机进行拍照,然后将图片传输到计算机上进行显示或者进行保存,达到图片传输的功能。
下图为软件系统的总体用例结构图。
图7 系统总体用例结构图
4.2 对手机端软件需求的分析
上面对系统的总体功能需求进行了概述,这里对其进行更加详细的描述,但主要对手机端软件系统进行描述。
4.2.1 系统需求陈述
首先为手机界面示意图,手机界面示意图如下。
图8 手机界面示意图
当手机端软件打开后,出现一个启动画面,画面为一个蓝牙标志,同时软件在后台执行蓝牙设备查询。启动画面持续时间为2.5秒,然后出现手机端软件的主画面,主画面上有“开始”、“帮助”、“关于”和“退出”这样四个菜单选项,按手机上下键可以对这四个选项进行移动选择。按中键可以选中相应的菜单选项。1)如果选择“开始”,则启动开始选择画面,如果此时后台正在执行蓝牙设备查询,则显示“正在搜索”。如果蓝牙设备查询完毕并且搜索到蓝牙设备,则在选择画面显示搜索到的蓝牙设备,如果没有搜索到蓝牙设备,则显示“没有搜索到蓝牙设备,按0键返回”。2)如果选择“帮助”,则启动帮助画面,显示软件使用帮助,按任意键返回。3)如果选择“关于”,则启动关于画面,不显示一些关于手机端软件的信息。按任意键返回。4)如果选择“退出”,按中键后则退出本程序。
在开始画面中,选择一个搜索到的蓝牙设备,启动蓝牙功能选择画面,并在软件后台执行蓝牙设备服务查询,如果没有搜索到蓝牙串口通信服务,则画面显示“服务不可用,按0键返回”,如果搜索到蓝牙串口通信服务,则连接到远程蓝牙设备,并在画面中显示“鼠标(指示鼠标控制)图标”和“摄像机(指示拍照传输)图标”以及“按0键返回”。
在蓝牙功能选择画面中,如果选择“鼠标(指示鼠标控制)图标”,则手机按键实现的功能为:1键对应实际计算机鼠标的左键,3键对应实际计算机鼠标的右键,按2键计算机鼠标指针上移,按8键计算机鼠标指针下移,按4键计算机鼠标指针左移,按6键计算机鼠标指针右移,按5键控制计算机鼠标指针移动速度。如果选择“摄像机(指示拍照传输)图标”,则按手机中键进行拍照。
4.2.2 类建模
从系统陈述中,经过分析,选择“启动画面”、“软件的主画面”、“蓝牙设备查询”、“开始选择画面”、“帮助画面”、“关于画面”、“蓝牙设备服务查询”、“蓝牙功能选择画面”和“拍照”这些名词作为类。下表为名词与以名词命名的类。
名词 | 类名 |
启动画面 | QD_MIDPCanvas |
软件的主画面 | ZHUHUAMIAN_MIDPCanvas |
蓝牙设备查询 | LANYA_FAXIAN |
开始选择画面 | KAISHI_MIDPCanvas |
帮助画面 | BANGZHU_MIDPCanvas |
关于画面 | GUANYU_MIDPCanvas |
蓝牙设备服务查询 | REMOTE_DEVICE_Services |
蓝牙功能选择画面 | LANYA_XUANZE_MIDPCanvas |
拍照 | LANYA_MEDIUM |
表2 名词与类名表
当然还有一个程序运行类MIDlet,在程序中我们将它命名为LANYA_Midlet它是javax.microedition.midlet.MIDlet的派生类。
其中一些类是J2ME类包中类的派生子类。如下表。
子类 | 父类 |
QD_MIDPCanvas | javax.microedition.lcdui.Canvas |
ZHUHUAMIAN_MIDPCanvas | javax.microedition.lcdui.Canvas |
KAISHI_MIDPCanvas | javax.microedition.lcdui.Canvas |
BANGZHU_MIDPCanvas | javax.microedition.lcdui.Canvas |
GUANYU_MIDPCanvas | javax.microedition.lcdui.Canvas |
LANYA_XUANZE_MIDPCanvas | javax.microedition.lcdui.Canvas |
LANYA_Midlet | javax.microedition.midlet.MIDlet |
表3 程序中的类与父类
其中一些类实现了J2ME类包的接口。如下表。
类名 | 实现接口 |
QD_MIDPCanvas | javax.microedition.lcdui.CommandListener |
ZHUHUAMIAN_MIDPCanvas | javax.microedition.lcdui.CommandListener |
KAISHI_MIDPCanvas | javax.microedition.lcdui.CommandListener |
BANGZHU_MIDPCanvas | javax.microedition.lcdui.CommandListener |
GUANYU_MIDPCanvas | javax.microedition.lcdui.CommandListener |
LANYA_XUANZE_MIDPCanvas | javax.microedition.lcdui.CommandListener |
表4 类与实现接口
根据上面的需求陈述与关键名词的类抽象,得到下图。此图展示了这些类型之间的关系。其中一些类包含了自身的一个实例。
图9 手机端程序中类关系图
4.2.3 动态建模
在程序设计中,可以选择多种动态模型进行动态建模,例如顺序图(又称为序列图)、协作图和活动图。在手机端程序设计中选择活动图建模。在很多设计方面,活动图是结构化开发中的流程图和数据流图(DFD)的在面向对象开发中的等同体。活动图最适合描述并行行为的特点使之成为支持工作流建模的最佳工具。
根据上面的手机端软件需求陈述,构建了手机端软件系统活动图,如下图所示。
系统活动图中的主要结构如下图所示。
并发结构 判断结构 循环结构
图10 主要结构图
图11手机端软件系统活动图1
图12 手机端软件系统活动图2
4.3 对手机端软件需求的分析
4.1节对系统的总体功能需求进行了概述,这里将对其进行更加详细的描述,但主要对计算机端软件系统进行描述。
4.3.1 系统需求陈述
在计算机端软件系统中用蓝牙来实现通信功能。首先打开计算机端软件,开始有一个启动画面,画面上显示“手机与电脑通信系统”。启动画面持续时间不定。在启动画面显示期间进行一系列的初始化动作,当初始化完成以后计算机发出“系统初始化完成”的声音,以后显示软件主界面,并且软件开始播放背景音乐,同时软件处于等待连接状态。软件主界面有四个属性页,第一个属性页为“鼠标控制”,主要内容为鼠标控制的使用说明。第二个属性页为“媒体控制”,主要用来显示软件接收手机端发送过来的图片。第三个属性页为“使用帮助”,主要内容为软件的使用帮助。第四个属性页为“关于软件”,主要内容为软件的一些信息,如作者、版本信息和开发日期等。如果手机端软件发起连接,并且连接成功,软件让计算机发出“连接成功”的声音。此时如果手机端软件选择鼠标控制功能,则软件可以使计算机鼠标处于被手机端软件控制的状态,模拟实际计算机鼠标的功能。如果手机端软件选择拍照传输的功能,那么在主界面的属性页“媒体控制”将会显示手机发送过来的照片。主界面上还有四个按钮,第一个按钮用来控制背景音乐的播放和暂停。第二个按钮用来保存接收到的照片。第三个按钮用来把软件最小化到系统托盘。第四个按钮用来退出程序,点击后将关闭程序运行。
4.3.2 系统类建模
在计算机端软件系统开发中,主要利用VC++.NET创建传统的Windows应用程序,即MFC应用程序。因此MFC框架已经生成一些相应的类,主要作了一些名称上的改变,在这里不再熬说。主要设计一个LANYA_PC类用来实现蓝牙功能。它们的类关系图如下
图13 计算机端软件类关系图
4.3.3系统动态建模
根据上面的系统需求陈述,对计算机端软件进行了动态建模,下图就展示了计算机端软件的系统活动图。计算机端软件系统活动图如下。
系统活动图中的主要结构如下图所示。
并发结构 判断结构 循环结构
图10 主要结构图
图14 电脑端软件系统活动图1
图15 电脑端软件系统活动图2