基于UML的功能设计

时间:2019-05-12 08:30:14下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于UML的功能设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于UML的功能设计》。

第一篇:基于UML的功能设计

内蒙古工业大学信息工程学院

实 验 报 告

课程名称: UML2面向对象分析与设计 实验名称: 基于UML的功能设计 实验类型: 验证性□ 综合性□ 设计性□ 实验室名称: 班级: 学号: 姓名:

组别: 同组人:

成绩:

实验日期: 2014.5.21

内蒙古工业大学信息工程学院

报告类型: 实验报告√ 预习报告□

报告成绩: 指导教师审核(签名): 年 月 日

[实验名称]

基于UML的功能设计 [实验目的]

1、熟练使用Rational rose2003。

2、掌握组件图的绘制方法。

3、掌握布局图的绘制方法。

4、双向工程的实施过程。[实验环境] Rational rose2003,Windows 7。

[实验内容] 题目1:选课系统的组件图设计

描述:在选课系统中,包括MainProgram类(主程序)、People类、FormObject类、ControlObject类、Student类、Registrar类(管理员)、Course类和DataBase类。People类是Student类和Registrar类的基类,所以Student类和Registrar类依赖People类。FormObject类和ControlObject类都和Course类相关,FormObject类和ControlObject类依赖Course类,ControlObject类和DataBase类相关,ControlObject类依赖DataBase类。

完成:

1)绘制选课系统的组件图。题目2:选课系统的布局图的设计

描述:服务器使用了两台主机,一台作为数据库服务器,使用了Oracle服务器,另一台是同一局域网上的机器,作为HTTP服务器,上面运行了HTTP服务器进程以及业务逻辑,同时连接了打印机。而客户端则是在因特网上任意具有Web浏览功能的机器,客户端和HTTP服务器通过因特网连接,从HTTP服务器获取信息。完成: 1)绘制选课系统的布局图。题目3:选课系统的正向工程 描述:见题目1。

完成:

第1页

内蒙古工业大学信息工程学院

1)使用Rose的正向工程,为类People、Student和Registrar生成代码;

2)使用同样的方法,为其它类也生成代码。题目4:选课系统的逆向工程

描述:根据题目3正向工程执行的结果,在类Student的代码中增加一个TestOperation的空操作。完成:

1)使用Rose的逆向工程,为Student的代码建立同步模型。

[实验提示] 1)组件图的绘制

(1)打开组件图窗口

在浏览器窗口打开“Component View”文件夹-〉双击“Main”图标。(2)建立新组件

浏览器中右键单击“Component View”-〉“New”-〉“Component”建立了新组件;(3)修改组件属性

右键单击所建立的组件-〉“Open Specification”-〉在“General”选项卡中设置组件名称、组件版型和实现的语言。

在“Files”选项卡中-〉列表框中单击右键-〉“Insert File”,建立Main.java文件。(4)组件图中增加组件 将所建立的组件拖入组件图即可。

使用上面的方法建立组件,然后打开组件的属性框,选择“Realizes”选项卡,右键单击类名,选择“Assign”,可以建立类和组件之间的关系。

2)布局图的绘制

(1)打开布局图窗口

在浏览器中选择“Deployment View”并双击,打开了布局图窗口。

(2)增加处理器

在布局图窗口工具栏上选择“Processor”图标-〉放置到“布局图”窗口中。

第2页

(2)设置组件和类的关系

内蒙古工业大学信息工程学院

(3)设置处理器属性

右键单击新建的处理器-〉“Open Specification”-〉选择“Detail”选项卡-〉在“Processes”列表框中单击右键-〉“Insert”-〉设置处理器上运行的进程。

3)正向工程的实现

(1)一般性检查

“Tools”-〉“Check Model”,如果模型有问题,将在日志窗口中给出。

(2)发现访问问题

“Report”-〉“Show Access Violations”,在访问问题窗口中显示访问问题。

(3)语言独立检查

假设使用Java语言,“Tools”-〉“Java”-〉“Syntax Check”。

(4)生成代码

“Tools”-〉“Java”-〉“Genenate Codes”。

4)逆向工程的实现

“Tools”->“Java”-〉“Reverse Engineer Java…”。

[实验结果] 题目1:选课系统的组件图设计

选课系统组件图

题目2:选课系统的布局图的设计

第3页

内蒙古工业大学信息工程学院

选课系统布局图题目3:选课系统的正向工程 1)正向工程生成代码Registrar.java //Source file: D:xy Registrar.java

public class Registrar extends People {

/**

* @roseuid 51BFDB9802E9

*/

public Registrar()

{

} } 2)正向工程生成代码People.Java //Source file: D:xy People.java

public class People {

public MainProgram theMainProgram;

/**

* @roseuid 51BFD71203A3

*/

public People()

{

第4页

内蒙古工业大学信息工程学院

} } 3)正向工程生成代码Student.java //Source file: D:xy Studnet.java

public class Studnet extends People {

/**

* @roseuid 51BFD7570025

*/

public Studnet()

{

} } 4)正向工程生成代码ControlObject.java //Source file: D:xy ControlObject.java

public class ControlObject {

/**

* @roseuid 51BFDBA103D5

*/

public ControlObject()

{

} } 5)正向工程生成代码FormObject.java //Source file: D:xy FormObject.java

public class FormObject {

/**

* @roseuid 51BFDBA90119

*/

public FormObject()

{

} }

第5页

内蒙古工业大学信息工程学院

6)正向工程生成代码MainProgram.java //Source file: D:xy MainProgram.java

public class MainProgram {

public People thePeople;

public Course theCourse;

/**

* @roseuid 51BFD862029F

*/

public MainProgram()

{

} } 题目4:选课系统的逆向工程

Student类图

[实验心得] 通过本次实验,熟悉了如何使用rose绘制UML组件图与布局图,了解了组件图与布局图的作用,巩固了相关的课堂知识,加深了对其的认识。除此之外,还掌握了如何使用rose的正向工程和逆向工程,学会了通过rose快速生成代码的方法,极大的方便了以后的编程。同时也为以后的学习与工作打下了一定的基础。

第6页

第二篇:视频教学功能设计

功能设计 项目名称:视频会议 班级:软件101 组长:赵美婷

组内成员:王立芹、夏叶、王亚如、靳会 时间:2012年10月9日引言

1.1编写目的:

目前,作为新型技术的视频会议,已经成为开发和研究的热点。作为计算机专业的学生,也应该将视频会议的学习和研究列为课程设计内容。1.2背景说明:

视频会议也叫电视会议,经历了模拟电视会议和数字电视会议两个阶段。模拟会议电视是早期的会议电视,在70年代就有了这种通信业务。当时传送的是黑白图像,并且只限于在两个地点之间举行会议。尽管如此,电视会议还是要占用很宽的频带,费用很高,因此这种电视会议没有得到发展。视频会议进入中国初期,政府是视频会议市场的最大也是最主要的用户。近些年来,更多的行业用户开始意识到视频会议的重要性,视频设备用户数量不断增加,用户行业分布领域也越来越广泛,由最初的政府和电信部门,发展到公安、检察院、法院、银行、证券、保险、教育、税务等各个行业。和欧美国家相比,虽然中国的远程教育和远程医疗刚刚起步,视频会议系统在这两个领域的应用范围还不够广泛,但从发展的角度可以看到,最近两年,上述两个领域的应用正呈现出蓬勃发展的势头,未来将是快速发展的行业。目前,国内市场视频会议主要应用于下列行业:政府;金融、证券、银行;能源;交通、公安军队;外资企业及大型企业;医疗与教育行业。随着政府信息化的不断深入,以及各地电子政务的开展,各地党政专网的二期、三期扩建工程,今后几年中,对于视频会议需求最大的还将来自政府部门。由于资金和观念等因素的影响,视频会议在教育、医疗方面的应用并没有取得预期的效果,各厂商在这两个领域中的占有率都很有限。但由于视频会议在技术上有着明显的特点和优势,其应用价值必将会得到教育界、医学界的进一步承认。中小型企业应是今后着重关注的领域,这部分用户数量巨大,一般对于设备终端的要求较低,而且连接点数较少。这就要求厂商能够提供价格相对低廉的产品、全套的解决方案,以及高质量的售后服务,同时,由于这部分潜在用户数量巨大,因此厂商和代理商的市场推广力度应该进一步加强。技术实力差距不大的情况下,价格将成为竞争取胜的一个关键因素。目前国内厂商在设备的价格上具有很大的优势,厂商在推广时,应注意减轻产品价位偏高所带来的影响。总体设计

2.1需求规定

(1)能够实现音视频交互。

(2)有良好的带宽处理机制、有强大网速的适应能力。(3)支持多种网络环境,并且跨越各种不同的网络环境。(4)支持文档共享、电子白板、网页同步等多种文本交互手段。(5)支持屏幕广播、程序共享等多种协同办公的功能。(6)针对不同的用户群体、用户数量,有相对应的会议机制。(7)能同时支持多个会议通道,保障各会议通道的相对独立和信息安全性。

(8)能进行远程的web方式管理,组织会议和会议授权简单、方便。

(9)有较强的控制功能,能够把不遵守纪律的会议成员请出会议室。

(10)有丰富的辅助功能,保证在突发情况下视频会议能无干扰地正常进行。

(11)能实现无延迟的音视频传输、保证音视频的同步性。(12)能进行会议录制,把会议信息完全记录下来。

(13)有良好的扩展功能,支持服务器集群、分发式服务器和二级服务器。2.2运行环境

网络视频会议的进行,必须要有良好的硬件支持。NetMeeting对硬件要求如下: 1.声卡。最好采用全双工的声卡。

2.麦克风。连接在声卡上或内置在计算机中。在语音会议时,应对着麦克风说话。3.音箱或耳机。连接在声卡上或内置在计算机,可从其中听到对方的声音。4.网卡或调制解调器(Modem)。保证能够接入互联网。5.摄像头。让对方看到自己的图像。2.3基本设计概念和处理流程

一个网络视频系统主要由三大部分组成:一个会议控制中心;接入因特网的多个办公局域网;若干个通过有线或无线方式接入因特网或办公局域网的用户终端。

右图是一款商业化的网络视频系统——智星网络视频会议系统的实际组成图

2.4结构

一、音频的录制与播放问题

这一部分的开发相对简单。其一,这种功能的API从Windows 3.1开始就已经提供(winmm.lib+mmsystem.h);其二,如今借助于方便的因特网,我们完全可以搜到现成的包装类。在本文中,我们直接借用了提供了两个现成的RecordSound与PlaySound类。这两个类都派生于CWinThread类,用户可以“死搬硬套”地使用它们。下面代码展示了这两个类的使用,具体包装类定义请参考下载源码文件。

//创建并启动录音线程

record=new RecordSound(this);record->CreateThread();//创建并启动播放线程 play=new PlaySound1(this);play->CreateThread();//开始录制

record->PostThreadMessage(WM_RECORDSOUND_STARTRECORDING,0,0);//开始播放

play->PostThreadMessage(WM_PLAYSOUND_STARTPLAYING,0,0);//在音频录制期间,我们可以在RecordSound类的OnSoundData //回调函数中使用这些数据。在此,你可以放置你要发送到远程宿主的数据…… //播放接收自远程宿主的音频数据

play->PostThreadMessage(WM_PLAYSOUND_PLAYBLOCK,size,(LPARAM)data);//停止录制

record->PostThreadMessage(WM_RECORDSOUND_STOPRECORDING,0,0);//停止播放

play->PostThreadMessage(WM_PLAYSOUND_STOPPLAYING,0,0);//最后,停止录音线程

record->PostThreadMessage(WM_RECORDSOUND_ENDTHREAD,0,0);//停止播放线程

play->PostThreadMessage(WM_PLAYSOUND_ENDTHREAD,0,0);上面已经加了注释,使用方法一目了然。

二、视频捕获的问题

当前,在Windows平台下开发视频应用一般采用两种方案。一种是基于视频采集卡所附带的二次软件开发包SDK进行。此方式的优点:帮助资料齐全,直接套用现成的API,易于上手;但缺点也是明显的:硬件依赖性强,缺乏应有的灵活性,因此,不能充分满足开发通用的视频应用的需要。

另一种方案是基于微软公司的VFW(Video for Windows)进行。这个SDK为开发Windows平台下的视频应用程序提供也现成的软件工具包(一组API),开发人员可以通过它们很方便地实现视频捕获、视频编辑及视频播放功能,特别是可利用其中内置的回调函数开发出更为复杂的视频应用程序。因此,这种方案的优点是播放视频时不需要专用的硬件设备(大多数的视频采集卡驱动程序都支持VFW接口),应用灵活,可以满足视频应用程序开发的需要。值得庆幸的是,如今的Windows版本都内置安装了VFW相关组件,而VC++自4.0以来就支持VFW,从而大大简化了视频应用程序的开发。目前,基于PC的多媒体应用程序的视频部分,大都是利用VFW API开发的。

VFW以消息驱动方式实现对视频设备进行访问,便于开发者控制设备数据流的工作过程。简言之,这个框架主要包括VICAP.DLL、MSVIDEO.DLL、MCIAVI.DRV、AVIFILE.DLL、ICM、ACM等多个动态连接库,这些组件协同合作,共同完成视频的捕获、视频压缩及播放功能。有关这些模块的具体介绍见MSDN,在此略过。

(一)视频捕获

视频数据的实时采集,主要通过AVICAP模块中的消息、宏函数、结构以及回调函数来完成。视频捕获的大致过程如下:(1)建立捕获窗口

利用函数capCreateCaptureWindow()建立视频捕获窗口,它是所有捕获工作及设置的基础。其主要功能包括:①动态地同视频和音频输入器连接或断开;②设置视频捕获速率;③提供视频源、视频格式以及是否采用视频压缩的对话框;④设置视频采集的显示模式为Overlay或为Preview;⑤实时获取每一帧视频数据;⑥将一视频流和音频流捕获并保存到一个AVI文件中;⑦捕获某一帧数字视频数据,并将单帧图像以DIB格式保存;⑧指定捕获数据的文件名,并能将捕获的内容拷贝到另一文件。(2)登记回调函数

登记回调函数用来实现用户的一些特殊需要。在以一些实时监控系统或视频会议系统中,需要将数据流在写入磁盘以前就必须加以处理,达到实时功效。应用程序可用捕获窗来登记回调函数,以便及时处理以下情况:捕获窗状态改变、出错、使用视频或音频缓存、放弃控制权等,相应的回调函数分别为capStatusCallback(),capErrorCallback(),capVideoStreamCallback(),capWaveStreamCallback(),capYieldCallback()。(3)获取捕获窗口的缺省设置

通过宏capCaptureGetSetup(hWndCap,&m_Parms,sizeof(m_Parms))来完成。(4)设置捕获窗口的相关参数

通过宏capCaptureSetSetup(hWndCap,&m_Parms,sizeof(m_Parms))来完成。(5)连接捕获窗口与视频捕获卡

通过宏capDriveConnect(hWndCap,0)来完成。(6)获取采集设备的功能和状态

通过宏capDriverGetCaps(hWndCap,&m_CapDrvCap,sizeof(CAPDRIVERCAPS))来获取视频设备的能力,通过宏capGetStatus(hWndCap,&m_CapStatus,sizeof(m_CapStatus))来获取视频设备的状态。(7)设置捕获窗口显示模式

视频显示有Overlay(叠加)和Preview(预览)两种模式。在叠加模式下,捕获视频数据布展系统资源,显示速度快,视频采集格式为YUV格式,可通过capOverlay(hWndCap,TRUE)来设置;预览模式下要占用系统资源,视频由系统调用GDI函数在捕获窗显示,显示速度慢,它支持RGB视频格式。

(8)捕获图像到缓存或文件并作相应处理

若要对采集数据进行实时处理,则应利用回调机制,由capSetCallbackOnFrame(hWndCap,FrameCallbackProc)

成单

集;

由capSetCallbackOnVideoStream(hWndCap,VideoCallbackProc)完成视频流采集。如果要保存采集数据,则可调用capCaptureSequence(hWnd);要指定文件名,可调用capFileSetCapture(hwnd,Filename)。(9)终止视频捕获断开与视频采集设备的连接

调用capCatureStop(hWndCap)停止采集,调用capDriverDisconnect(hWndCap),断开视频窗口与捕获驱动程序的连接。由于上面这些API密切相关,所以为了使用方便,我们干脆把它们打包到一个视频捕获类VideoCapture中。

下面的代码片断展示了这个类的使用思路: //创建视频捕获类的实例 vidcap=new VideoCapture();//当帧捕获完成时,下面这一句将用于调用主对话框类的显示函数 vidcap->SetDialog(this);//下一行完成初始化工作:连接到驱动程序;设置使用的视频格式等。//如果成功地连接到视频捕获设备返回TRUE。vidcap-> Initialize();//如果连接成功,那么,我们就可以得到与视频格式相关的BITMAPINFO //结构。后面将用之显示捕获的帧 this->m_bmpinfo=&vidcap->m_bmpinfo;//现在,你可以正式开始视频捕获了…… vidcap->StartCapture();//一旦捕获开始,捕获的帧将到达回调函数—VideoCapture类的OnCaptureVideo函数。//在此回调函数中,你可以调用显示函数实现帧显示(见下一节)//停止捕获

vidcap->StopCapture();//成功捕获后,释放视频捕获类 vidcap->Destroy();【注意】为了顺利编译和链接,你需要在类实现文件(VideoCapture.cpp)的前面加上如下语句:

#pragma comment(lib,“vfw32”)#pragma comment(lib,“winmm”)

(二)显示捕获的视频帧

对于显示捕获的视频帧方面(也就是显示图像的问题),显然存在多种方案。例如,我们可以使用SetDIBitsToDevice()方法实现直接显示捕获的视频帧。但是,这种方案速度非常慢,因为它是基于图形设备接口(GDI)的函数。相比之下,更好一些的方法是使用DrawDib API来绘制帧,因为这个函数可以直接写向视频内存,因此能够提供更好的性能。下面的代码片断展示了如何使用DrawDib函数显示捕获的视频帧: //初始化DIB以便绘制

HDRAWDIB hdib=::DrawDibOpen();//然后,使用适当的参数调用这个函数…… ::DrawDibBegin(hdib,...);//现在,已经作好准备—可以调用这个函数进行帧显示了 ::DrawDibDraw(hdib,...);//最后,结束帧绘制 ::DrawDibEnd(hdib);::DrawDibClose(hdib);其实,上面代码非常类似普通位图绘制过程。

三、选择适当的编码/解码库

在本文中,我们选用Roalt Aalmoes的开源的快速H.263编码器库。

(一)使用编码器代码示例 //初始化压缩器 CParam cparams;cparams.format = CPARAM_QCIF;InitH263Encoder(&cparams);//如果你需要从RGB24转换到YUV420格式,那么应该调用下面的函数 InitLookupTable();//创建回调函数

//OwnWriteFunction是编码期间返回编码数据时调用的全局函数 WriteByteFunction = OwnWriteFunction;//压缩数据必须使用YUV420格式 //在压缩之前调用下面这个方法

ConvertRGB2YUV(IMAGE_WIDTH,IMAGE_HEIGHT,data,yuv);//压缩帧……

cparams.format=CPARAM_QCIF;cparams.inter = CPARAM_INTRA;cparams.Q_intra = 8;cparams.data=yuv;//数据是YUV格式 CompressFrame(&cparams, &bits);//你可以从开始时你已经注册的回调函数中取得压缩的数据 //最后,终止编码器 // ExitH263Encoder();

(二)解码器编程

注意,原始的H.263编码器库以C方式进行编码,而且提供了其它更多的细节实现。在本文中,我们以C++重新进行了改写。下面是解码器的使用示例代码框架: //初始化解码器 InitH263Decoder();//解压帧……

//rgbdata必须足够大以便存储输出数据; //解码器以YUV420格式生成图像数据; //解码之后,把它再转换成RGB24格式…… DecompressFrame(data,size,rgbdata,buffersize);//最后一步,终止解码器 ExitH263Decoder();

四、运行应用程序

为了试验本文示例应用程序,应该把可执行文件复制到一个LAN中的两台不同的机器上;然后,分别运行之。从一台机器上选择“连接”菜单项,并在弹出对话框内输入另一台机器的名字或IP地址,最后点击“连接”按钮。此时,在另一台机器上应该弹出一个“接受/拒绝”的对话框窗口,点击“接受”按钮。之后,在第一台机器上将显示通知对话框。按“OK”即可开始你的视频会议(聊天……)了。

第三篇:图书馆网站网站功能设计

图书馆网站网站功能设计
用户分类
1.管理员 1).超级管理员平台设置: 数据库管理(备份、恢复)公告管理 底部栏目管理(关于我们、购物指南、配送方式、支付方式)添加管理员 学校管理: 添加学校、学院、班级 商品管理: 商品分类(2 级分类)商品添加 商品查询(可以按分类查询和修改商品的库存、价格等信息)缺货登记管理(商品添加应有图书名称、出版社、作者、ISBN,出版时间、版次等信息)(商品价格体系共有三个:进价、定价、小管家价。网站网页上显示的是小管家价 和定价,其中小管家价就是本网站的售价,因为网站名叫校园小管家,定价就是图 书的定价,进价就是图书的进货价,在网站后台添加,不显示在网页上,小管家价 与进价之间差价的 30%就是小管家的收益)

订单管理: 按日期,班级,姓名等查询订单信息和处理订单。会员管理: 普通会员管理(会员的删除、查看、锁定)(会员删除指的是会员毕业信息将被删除。会员锁定指的是租书规定时 期内未还的会员的账号将被锁定,将无法进行提交订单)小管家管理(设置小管家、解除小管家、提现申请处理)统计报表: 销售明细 租赁明细 可以按照日期、学校、学院、班级小管家、会员查询 2)管理员 学校管理: 添加学校、学院、班级 商品管理: 商品分类(2 级分类)商品添加 商品查询(可以按分类查询和修改商品的库存、价格等信息)缺货登记管理(商品添加应有图书名称、出版社、作者、ISBN,出版时间、版次等信息)(商品价格体系共有三个:进价、定价、小管家价。网站网页上显示的是小管家价 和定价,其中小管家价就是本网站的售价,因为网站名叫校园小管家,定价就是图 书的定价,进价就是图书的进货价,在网站后台添加,不显示在网页上,小管家价 与进价之间差价的 30%就是小管家的收益)

订单管理: 按日期,班级,姓名等查询订单信息和处理订单。会员管理: 普通会员管理(会员的删除、查看、锁定)(会员删除指的是会员毕业信息将被删除。会员锁定指的是租书规定时 期内未还的会员的账号将被锁定,将无法进行提交订单)小管家管理:(设置小管家、解除小管家、提现申请处理)统计报表: 销售明细 租赁明细 可以按照日期、学校、学院、班级小管家、会员查询 2.班级小管家 班级订单管理:可以对班级内成员下单情况进行查看。我的订单: 我的收益: 余额: 申请提现 缺货登记: 历史查询:会员可以在登陆之后查询自己的租书和买书的历史记录。普通用户: 我的订单: 申请成为班级小管家。缺货登记:

历史查询:会员可以在登陆之后查询自己的租书和买书的历史记录。所有用户和非用户均可查看全站图书全部信息。只有注册用户可下订单。非注册用户下单时会提示需要注册。

会员注册功能 注册邮箱(必填)创建密码(必填)真实姓名(必填)性别(必填)学校、学院、班级(必填)学历(必填)入学时间(必填)邮箱激活

男、女 管理员后台添加,会员选择 专科、本科、管理员后台添加,会员选择

历史查询功能 描述:会员可以在登陆之后查询自己的租书和买书的历史记录。购物车功能 描述:用户登陆后,可以在浏览图书时将图书进行加入购物车,购物车内图书永久存在,不会因为关闭浏览器而消失,用户可手动删除和修改数量。

图书查询

描述:搜索图书,搜索类别包括书名、作者、ISBN。

图书详情 描述:显示有关该图书所有已录入信息,包括租赁价格和新书价格。帮助功能 在网站底栏显示,类似当当网

分:关于我们、购物指南、配送方式、支付方式 帮助信息 具体内容后台添加即可 支付 描述:分为货到付款 和 供)。

支付宝(需自行于支付宝签约,并提供接口密码)(待提

货到付款情况描述: 用户提交订单(选择支付方式:货到付款)------用户订单情况同时提交到班级小管家 和管理员后台(订单状态显示为等待买家付款)-------网站发货到班级小管家(小管家可先 行垫付或早些收款支付给网站送货人员,小管家在班级订单上找到该用户订单,并点击已 收货和付款----送货人员返回把货款交与网站管理人员,并点击已付款,完成。完成单笔交 易。


第四篇:UML实验报告

一:需求分析

在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见。我们在日常生活中也经常和ATM打交道。本章我们将以简化的ATM系统为例将前面几章中学到的用例图、类图、顺序图、状态图、活动图及协作图知识运用到此例中。二:银行ATM机系统UML建模设计 1.用例图

参与者“银行储户”和ATM机。简化后的ATM机仅有取款、存款及其余功能。其余功能不做详细说明。

银行储户在ATM机上完成取款、存款及其他业务。2.类图

整个银行系统包括了帐户库、银行储户库及ATM系统。

许多单个的帐户组成了帐户库。帐户具有帐户类型、帐户号、余额三个属性,均为private,其类型分别为char,int,double。六个操作分别为setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance为protected其余均为public。

setType设置帐户类型,返回类型为void,参数类型为char,输入帐户类型。getType获取帐户类型,返回类型为char,无参数。

setAccountNumbe设置帐户号,返回类型为void,参数类型为int,输入帐户号。getAccountNumbe获取帐户号,返回类型为int,无参数。

caculateBalance计算余额,返回类型为void,参数为double,第一个参数为输入存取款数额,第二个参数为存款余额,既为输入也为输出。getBalance获取帐户余额,返回类型为double,无参数。

许多银行储户组成了储户库。ATM系统包含了许多ATM机。银行储户及ATM机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。更多的属性及操作都可以一一加上,使这个类图更详细更完整,从而使参与项目的每个成员都能无歧义的明了整个设计的类的结构。同样对于一个真正的银行系统,这个类图过于简单。比如帐户类型我们可以先定义一个abstract class,它包含一个帐户最基本的属性及操作。而有些操作先定义为abstract,如余额的计算。然后再继承这个abstract class,我们可以有saving account 和checking account等等。不同的帐户有不同的余额计算方法,我们可以加上具体的算法。对于不同的帐户可能还有一些它特有的操作,我们也可以加上,比如saving account在存款达到多少时可以享受机票打折的优惠。通过类图不仅可以使设计者明确的表达自己的设计意图,也能帮组自己整理思路,充实及优化自己的设计。

3.顺序图

描述顾客在ATM机上取款时信息的流动情况。以时间为顺序。因为是示例图,所以整个过程是没有出现任何故障时的流程,并且只画到了取款结束。通过这个图,我们可以看出消息是如何在系统中不同对象之间进行交互。

通过流程图我们可以很清楚地看到系统是如何工作的,系统各部分之间的信息及控制是如何发送的,整个流程是否合理。流程图对我们的设计起到了很好的帮助作用。注意在本图没有一个生命线终端有一个“X”,这是因为这个流程中还未遇到有对象生命结束。当有对象生命结束时需在对应的生命线终端画“X”,表明这个对象在这时被销毁。

首先银行储户将ATM卡插入读卡机,读卡机将信息传给客户管理,客户管理提出查询密码,显示部分将输入密码请求显示出来….银行储户读卡机显示输入设备客户管理点钞机事务管理1: 插入ATM卡2: 接受ATM卡3: 查询密码4: 显示输入密码请求5: 输入密码6: 密码传递7: 请求确认密码的合法性8: 确认密码的合法性9: 询问服务类别10: 显示输入服务类别请求11: 输入取款请求12: 取消请求13: 询问取款数额14: 显示输入数额请求15: 输入取款数额16: 传递取款数额17: 询问取款数额确认18: 显示确认数额请求19: 输入确认20: 传递确认信息21: 数额合法性确认请求22: 确认数额的合法性23: 计算储户余额24: 出钞请求25: 出钞26: 取钞27: 传递余额并询问是否需要其它服务28: 显示储户余额并显示其它服务

第五篇:UML实验报告[推荐]

UML实验报告

班 级:软件0841

姓 名:张文成 学 号:081842173

实验内容:

用例建模、分析建模、设计建模(1)、设计建模(2)

实验一:用例建模

[实验目的] 〃掌握客户需求分析的方法和步骤

〃了解以用例驱动的软件开发方法 〃识别并编写用例

〃掌握用Rose 进行用例建模的具体方法和步骤

[实验内容] 要求学生根据周围的实际情况,自选一个小型应用项目,分析业务需求,识别并编写用例、绘制用例图以理解系统需求。亦可采用教师指定的“企业综合信息管理系统”中的“进销存管理子系统”

[实验原理和步骤] 建模原理:

(1)需求获取。以任务和客户为中心,通过会议、面谈等手段对客户需求进行调研,获得系统目标、范围和功能要求的初步说明。(2)用例分析。确定用例,同时采用分层思想,对用例的层次级别进行划分(高层用例、子系统级、用户目标级)

(3)用例描述。分层绘制用例图,撰写用例的文字描述(采用单栏格式)。

步骤:

(1)需求获取。自选题目,与相关客户、领域专家等反复商讨,获得系统目标、范围和功能要求的初步说明。(也可采用教师指定的题目:“企业综合信息管理系统”中的“进销存管理子系统”,但要仔细研读“企业现状”、“系统目标、范围和功能要求”等文字说明)。(2)用例分析。确定系统范围和边界、确定参与者、确定用例。(3)用例描述。分层绘制用例图、描述用例。

画图原理:

采用Rose 软件进行用例建模必须建立在完好的系统用例分析基础之上.只有做好系统用例分析,系统用例建模才能这到预期的效果。步骤:

(1)分层绘制用例图,每层采用“包”进行管理。

(2)以“企业综合信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”为主线,完成附录2 中的操作过程(亦可选择“企业综合信息管理系统”-> “进销存管理”子系统-> “库存管理”-> “原材料出库”->“领料单处理”主线)

[ 实验结果]

实验2 分析建模

[ 实验目的](1)理解面向对象系统分析和对象类建模(概念建模)的概念(2)了解和掌握面向对象系统分析的方法和步骤(3)了解和掌握寻找待开发系统中类(概念)的方法和技巧(4)掌握使用ROSE 绘制概念模型的方法

[ 实验内容] 在用例分析的基础上,选择第一个迭代周期打算开发的用例,建立相关的概念模型。

[ 实验原理和步骤] 建模原理:

(1)使用概念目录列表(见下图)和非正式分析法(识别出问题域的文本描述中的名词短语,然后将其作为概念或属性的候选对象。)相结合的方法识别概念。因此,待开发用例的文字描述中,名词可能成为概念或属性的候选对象;表示行为的动词词组有可能成为事务型或过程型对象;形容词词组有可能对应抽象的名词型概念。

采用的技术基本上就是:ER 图+纯行为+OO 的聚合、泛化。(2)最终关联的数量介于“需要知道”型关联与【“需要知道”型关联+“需要理解”型(从通用关联列表中派生出 的,见下图)】之间。

步骤:

(1)识别关键用例作为第一个迭代周期的开发目标(一般是在用例图中被依赖得比较多的用例)。可以选“企业综合信息管理系统”-> “进销存管理”子系统-> “库存管理”-> “原材料出库”->“领料单处理”主线中的“领料单处理”用例;也可以选“企业综合信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中的“增加销售合同”或“收款单处理”用例。(其实,选“库存管理”主线更合适;当然,如果要实现产销一体化,以销售订单指导生产和采购,并实现零库存目标,那么一切工作就以销售管理为中心。即便如此,首选“增加合同”用例也更为合适。)

(2)识别概念和重要属性。

(3)建立概念间的关联。

画图原理:

(1)可以采用“逻辑视图”下的类图描述概念模型,只不过每个类中只有类名和属性,没有方法。在概念建模 阶段也没有必要确定属性的类型和访问属性。

(2)概念间的关联可以采用一般关联(无方向实线),当然,对于聚合和泛化,应采用相应的连线(组合:实心菱形+实线;聚合:空心菱形+实线;泛化:空三角形+实线)

步骤:

(0)前提条件:第一个迭代周期可以选“企业综合信息管理系统”

-> “进销存管理”子系统-> “库存管理”->“原材料出库”->“领料单处理”主线中的“领料单处理”用例;也可以选“企业综合信息管理系统”->“进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中的“增加销售合同”或“收款单处理”用例。做好与此用例相关的概念模型

(1)建立相关的概念模型的基础上,在“逻辑视图”下的类图中描述概念模型,可以直接在类图main 中绘制,也可采用类似用例图中用过的分包机制

(2)绘制概念和重要属性。(3)绘制概念间的关联。

[ 实验结果]

[ 实验总结] ① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:筛选概念的要点;区分概念与属性的要点;关联取舍的要点;画图时如何防止关联重名。

实验3 设计建模(1)

[ 实验日期]2011年5月20日 [ 实验目的](1)理解顺序图的基本概念

(2)了解和掌握软件工程中用例逻辑时序的分析方法(3)掌握使用ROSE 创建顺序图的方法

[ 实验内容] 在用例模型和概念模型的基础上,对首选的用例进行事件分解,识别出系统事件(系统操作),(并写出契约的后置条件);为每个系统事件画顺序图,为对象分配职责。

[ 实验原理和步骤] 原理:

(1)在系统顺序图中,所有的系统都被当成黑盒子看待,顺序图的重点是参与者发起的跨越系统边界的事件。

(2)系统事件是由某参与者发起的指向系统的输入事件。一个事件的发生能够触发一个响应操作的执行。

(3)请仔细研究下图,考察它是如何从左边的“购买商品”用例的文字描述中分解出3 个系统事件的。

(4)参照用例模型和概念模型,为每个系统操作估计后置条件。(实例创建、形成关联、属性修改)(5)按照设计模式为对象分配职责。

步骤:

(1)分析首选用例的文字描述,按事件进行分解,识别出系统事件。(下面以“企业综合信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中的“收款单处理”用例为例)。

我们暂不考虑批处理。第一个核对,因为要将“货款金额填写到合同中”。后置条件显然有“销售合同”的属性修改。此合同显然已经存在,不需要创建,但需要根据合同编号find,然后形成关联。第二个核对需要根据合同明细到仓库的“存货明细”(概念模型中还没有)中去查。此核对发生前虽然敲了一下键盘,但随后并没有新的消息穿越系统边界,因此这仍然是同一个系统事件。先考虑成功场景,应该向库存系统发提货单(概念模型中还没有)就结束了。后续的削减库存(核销)、预警显然不是销售管理员的职权,并且真正的核销必须由仓库的发货人执行,才能保证货帐一致。并且“生产厂家”与“邮购公司”的运作方式不同,后者是自己的员工取货并邮寄,而前者还有可能是来人来车取货,这时仓库收到取货单后并不能立即自动处理(开发货单),必须等取货人到达才能处理。

根据题意,本项目应该是“生产厂家”模式。这又存在一个问题,如

果在开出提货单后不修改库存,可能影响并发用户和后续付款单的处理。所以有必要设计一个“临时存货明细”(概念模型中还没有)(不是真实的“存货明细”)供修改,何时按存货明细”进行刷新应该是库存管理系统的事(比如每天夜里刷新,但因为雨雪天气,取货 人迟迟不提货,是提货单作废(相当于退回销售系统,付款单变为未处理)还是就强行刷新(此时有冲突危险)?)失败场景。向“生产调度部门”发送“产品生产申请单”。如果是专门为此单进行生产,那么还应该有库存系统发来的“产品入库通知处理”用例来调用本用例进行发货。本题显然一概根据付款单运作,因此如果失败,就不处 理付款单,但按日期把它排在待处理付款单的前面。从前面的分析来看,就一个系统事件,我们就命名为“付款单处理(pb:付款单)”(2)为每个系统事件估计后置条件。(以上已做了部分分析)(3)按设计模式进行设计。

首先考虑控制者,领域控制者选参与者角色,即“销售人员”。为了避免使用FORM,窗口等表示层对象,我们人造一 个类”应用协调者”向控制者发送消息。

[ 实验结果]

① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:事件分解的要点;控制者选择的要点;绘制顺序图的要点。

[ 实验总结] ① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:事件分解的要点;控制者选择的要点;绘制顺序图的要点。

实验4 设计建模(2)

[ 实验日期] 2011年5月27日 [ 实验目的](1)理解面向对象类之间关联关系的概念(2)了解和掌握分析类之间的关联关系的方法

(3)了解和掌握待开发系统中类之间关联关系的分析方法(4)完善设计类图,掌握使用ROSE 对关联进行建模的过程

[ 实验内容] 根据设计建模(1)中的交互分析,进一步设计关联和对象可见性(补

上遗漏的关联),完善设计类图。

[ 实验原理和步骤] 建模原理:

(1)关联关系描绘了给定类的对象个体之间的语义连接,是类与类之间的连接。关联可以分为一般关联、聚合关 联、组合关联和依赖关联等。

(2)一般关联包括一对类的二元关联及多个类之间的多元关联。

(3)聚合(Aggregation)表示整体和部分之间较强的关联关系,聚合关系的多重性大于1,则称为共享聚合。

(4)组合(Composition)关系表示整体和部分之间有比聚合关系更强的关系,它们之间是一对一的关系,即同生死共存亡,组合关系不能共享。

(5)依赖关系是一种使用关系,表现为一个对象仅仅调用了另一个对象的服务。可以使用下列的指导方针列出暂时性的关系:

(1)存在两个或两个以上的类相互之间就可能有关联。(2)类的操怍(成员函数)的参数列表里出现其他类的对象。(3)一个类包含另一个类的对象(对象成员)。(4)根据一般常识可能会出现的关联。步骤:

(1)分析已建立的设计类图和交互图,进一步设计关联和

对象可见性(补上遗漏的关联)。(下面以“企业综合 信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中 的“收款单处理”用例为例)。

在销售管理子系统中,定义的各个类之间一般都有关系发生。销售人员和客户(大客户)共同签署销售合同,销售合同中涉及到多种可以销售的产品,合同经公司经理审查并签字后该合同才能生效,付款单需要客户付款,销售人员签发催款单向客户催缴欠款,销售人员制定销售计划,销售人员要检查督促执行期合同按合同执行、履 约,履约后的合同转到履约合同数据库存档备查等等。例如:

(a)销售人员与客户:一般关联,多对多

(b)销售合同与合同明细,销售计划与计划明细:组合。(c)付款单与客户:依赖关系。《如果付款单类中有“统计付款金额(客户类客户对象)”操作的话,付款 单类就依赖客户类》(2)完善设计类图 画图原理:

(1)关联关系描绘了给定类的对象个体之间的语义连接,是类与类之间的连接。关联可以分为一般关联、聚合关 联、组合关联和依赖关联等。

(2)一般关联包括一对类的二元关联及多个类之间的多元关联。

(3)聚合(Aggregation)表示整体和部分之间较强的关联关系,聚合关系的多重性大于1,则称为共享聚合。

(4)组合(Composition)关系表示整体和部分之间有比聚合关系更强的关系,它们之间是一对一的关系,即同生死共存亡,组合关系不能共享。

(5)依赖关系是一种使用关系,表现为一个对象仅仅调用了另一个对象的服务。步骤:

(1)在关联和对象可见性分析的基础上,补充一般关联、组合,泛化、依赖

(a)一般关联关系要注意关联的命名以及哪个是role A 哪个是role B。

(b)一般关联选中role B detail 中的aggregate,就变成聚合;再选中by value 就变成组合。(c)依赖画虚线箭头。(2)完善设计类图

[实验结果] ① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:分析依赖关系的要点,绘制关联的要点。通过实验了解UML的建模的步骤和方法,了解用例图和类图等的画法,了解系统的分析和建模方法。增加动手和思维能力,使自己更加的了解软件系统前期开发的软件定义和分析方法。

下载基于UML的功能设计word格式文档
下载基于UML的功能设计.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    会员管理系统功能设计

    1. 受众俱乐部系统功能设计 1.1.1. 会员管理模块 会员管理模块在线填写管理员审批会员注册短信注册管理员审批是否被推荐是给推荐人增加积分后台导入否正式会员配置频率积分......

    企业档案管理系统功能设计

    企业档案管理系统功能设计一、企业档案管理功能 (1)记录了职工的基本信息,了解职工的基本情况,对企业的日常管理有很大的帮助,同时也可以通过这些对职工采取针对性的措施; (2)浏......

    养老院功能设计的国家标准

    养老院功能设计的国家标准(劲爆干货,终于整理完成) 来源:中国养老策划师 第一章 总 则 第一条 为加强与规范全国老年养护院的建设,提高工程项目决策和建设管理水平,充分发挥投资效......

    办公屏风功能设计合理要求

    武汉办公屏风功能设计合理要求办公家具的设计分为功能和外观两部份,而功能设计直接影响到客户的使用,也是厂家实力的体现,因为增加新的功能,就意味着有研发,会增加成本。作为厂家......

    UML实验二

    实验2 用例图 一、实验目的 1.学会分析系统中的参与者和用例 2.掌握用例图的绘制方法 3.掌握需求分析阶段的用例建模 二、实验器材 1. 计算机一台; 2. StarUML工具软件。......

    UML学习心得体会

    ——uml学习体会养成良好的绘制uml序列图的习惯 在学习uml的过程中,你可能会遇到绘制uml序列图的问题,这里就讨论一下怎样才能养成良好的绘制uml序列图的习惯。有一些方法可......

    UML实验报告(最终五篇)

    计 《面向对象分析与设计 U ML 》 实验报告 学 学 号:180 10 8213 姓 姓名: 庞志伟 班 班 级:08 级软件 2 班指导老师:姚 姚 宇峰 峰 实验及作业一 一、实验目得了解软件工程等基......

    UML实验报告(5篇)

    UML 实 验 报 告 实验一用例图 一、实验结果 1、整理实验结果 2、小结实验心得体会 用例模型用于需求分析阶段,它描述了待开发系统的功能需求,并驱动了需求分析之后各阶段的......