第一篇:个人博客UML建模
图书管理系统的分析及设计---应用UML建模
2010 —— 2011 学 年 第 一 学 期
信息技术学院
《软件系统建模与UML》综合设计实验
***系统的UML建模
班
级 学
号 姓
名 任课教师
日
期
2010年12月30日
0 图书管理系统的分析及设计---应用UML建模
目 录
第1章 系统需求..............................................2 第2章 需求分析..............................................4
2.1 识别参与者...........................................4 2.2 识别用例.............................................5 2.3 用例的事件流描述....................................11 第3章 静态结构模型.........................................16 3.1 定义系统对象........................................16 3.2 定义用户界面类......................................16 3.3 建立类图............................................16 第4章 动态行为模型.........................................19 4.1 创建系统顺序图(协作图)............................19 4.2 创建系统的状态图....................................19 4.3 创建系统的活动图....................................29 第5章 数据库模型...........................................31 第6章 物理模型.............................................32 6.1 创建系统组件图......................................32 6.2 创建系统部署图......................................33 图书管理系统的分析及设计---应用UML建模
第1章 系统需求
系统概述
Blog是一种让编写者可以表达自己意见、发表自己的看法以及见闻的方式。系统目标是使好友之间有一个交流沟通的平台,通过博客可以互相了解彼此的生活状况,系统拥有发布日志,心情,照片,留言评论等功能。
系统功能分析
本Blog系统将完成以下功能:
网站首页功能
用户的注册、登录和登出 个人消息中心管理功能 照片管理功能 相册分类管理功能 文章管理功能 文章分组管理功能 心情管理功能
日志,照片,心情评论管理功能 留言板留言,回复功能 装扮空间功能图书管理系统的分析及设计---应用UML建模
根据以上分析,画出系统功能图(PPT原版): 图书管理系统的分析及设计---应用UML建模
第2章 需求分析
2.1 识别参与者
参与者关系图如图2-1所示:
游客其他会员博主
图2-1 参与者关系图
游客:未注册的用户,只拥有普通浏览功能
注册会员:已注册成为会员,与游客是泛化关系,拥有查看,评论,留言,回复留言评论的功能
博主:博客的拥有者,与会员是泛化关系,拥有查看,评论,回复评论,对自己博客的所有的文章,心情,照片,评论留言具有管理的权限。图书管理系统的分析及设计---应用UML建模
2.2 识别用例
主用例图如图2-2所示:
看文章看相册看心情看留言板日志评论看主人资料图片评论游客看评论回复心情评论留言板留言会员评论文章,照片,心情文章博主修改博客内容照片相册回复、删除留言评论心情管理好友更改装扮
图2-2 主用例图图书管理系统的分析及设计---应用UML建模
管理留言板用例图如图2-3所示:
查看留言游客添加新留言会员回复留言博主删除留言
图2-3 管理留言板用例图图书管理系统的分析及设计---应用UML建模
管理文章用例图如图2-4所示:
查看文章评论查看文章游客添加新评论会员回复评论添加文章博主删除文章修改文章删除评论
图2-4 管理文章用例图图书管理系统的分析及设计---应用UML建模
管理相册用例图如图2-5所示:
查看评论游客查看照片添加新评论会员回复评论上传照片删除照片/修改博主创建相册删除/修改相册删除评论回复评论
图2-5管理相册用例图图书管理系统的分析及设计---应用UML建模
管理心情用例图如图2-6所示:
查看评论游客查看照片添加新评论会员回复评论上传照片删除照片/修改博主创建相册删除/修改相册删除评论回复评论
图2-6 管理心情用例图图书管理系统的分析及设计---应用UML建模
注册登录用例图如图2-7所示:
浏览博客游客注册进入自己博客会员登录访问别人博客
图2-7 注册登录用例图
管理好友用例图如图2-8所示:
添加好友博主删除好友
图2-7 管理好友用例图
更改装扮用例图如图2-9所示:
博主更改装扮
图2-9 更改装扮用例图 图书管理系统的分析及设计---应用UML建模
2.3 用例的事件流描述
2.3.1浏览博客用例描述
用例名称:浏览博客用例
用例描述:用户进入自己或者其他会员的博客 参与者:博主,其他会员,游客 前置条件:进入博客 后置条件:退出博客
假设条件:用户已进入网上博客 基本操作流程:
1、进入网上博客
2、查看信息中心,文章,好友心情,相册,留言板等
3、退出网上博客 备选流程:
点击“进入自己博客”可以进入自己博客
2.3.2管理留言板用例描述
用例名称:管理留言板用例
用例描述:博主可以通过此用例添加、删除留言,回复留言
会员可以留言,游客只能浏览 参与者:博主,其他会员,游客 前置条件:成功进入到留言板模块 后置条件:退出留言板模块 假设条件:用户已经进入网上博客 基本操作流程:
1、进入留言板模块
2、博主:添加,删除,修改留言,回复留言
3、会员:添加留言,游客只能查看
3、退出留言板模块 图书管理系统的分析及设计---应用UML建模
备选流程:
点击导航超链接可以直接进入其他模块
2.3.3管理文章用例描述
用例名称:管理文章用例
用例描述:博主可以通过此用例添加、删除、修改文章及评论、回复评论
会员可以浏览文章以及进行评论,游客只能浏览 参与者:博主,其他会员,游客 前置条件:成功进入到文章模块 后置条件:退出文章模块 假设条件:用户已经进入网上博客 基本操作流程:
1、进入文章模块
2、博主:添加,删除,修改文章,评论及回复评论
3、会员:浏览文章,添加评论和回复评论,游客只能查看
3、退出文章模块 备选流程:
点击导航超链接可以直接进入其他模块
2.3.4管理相册用例描述
用例名称:管理相册
用例描述:博主可以通过此模块添加、删除、修改相册;添加、删除照片
会员可以浏览相册,照片,以及对照片进行评论;游客只能浏览 参与者:博主,其他会员,游客 前置条件:进入相册模块 后置条件:退出相册模块 假设条件:用户已进入网上博客 基本操作流程: 进入相册模块
游客:查看相册照片,评论,回复 图书管理系统的分析及设计---应用UML建模
3、会员:查看相册照片,评论照片,回复评论
4、博主:查看、添加、删除、修改相册、照片、回复评论
5、退出相册模块 备选流程:
点击导航超链接可以直接进入其他模块
2.3.5管理心情用例描述
用例名称:管理心情
用例描述:博主可以通过此用例添加、删除、修改心情,及添加、删除评论、回复评论;
会员可以浏览心情,以及进行评论,回复评论,游客只进行查看 参与者:博主,其他会员,游客 前置条件:成功进入到心情界面 后置条件:退出心情界面 假设条件:用户已进入网上博客 基本操作流程:
1、进入心情界面
2、博主添加,删除,修改心情,添加、删除评论及回复评论
3、会员为心情评论或者回复评论,游客只能查看
4、退出心情界面 备选流程:
点击导航超链接可以直接进入其他模块
2.3.6管理好友用例描述
用例名称:管理好友
用例描述:博主可以通过此模块添加好友 参与者:博主
前置条件:博主已登陆自己博客 后置条件:退出添加好友模块 假设条件:用户已登录自己博客 图书管理系统的分析及设计---应用UML建模
基本操作流程:
1、进入管理好友模块
2、选择要添加或者删除的好友的会员名称
3、点击添加或者删除
4、添加或者删除成功
4、退出管理好友模块 备选流程:
点击导航超链接可以直接进入其他模块
2.3.7查看信息中心用例描述
用例名称:查看信息中心
用例描述:博主可以通过此模块更改个人信息
所有用户都可以通过此模块浏览博主信息 参与者:博主,其他会员,游客 前置条件:成功登录到个人信息模块 后置条件:退出个人信息模块 假设条件:用户已进入网上博客 基本操作流程:
1、进入个人信息模块
2、所有会员:查看博主信息
3、博主:更改个人信息
4、退出个人信息模块 备选流程:
点击导航超链接可以直接进入其他模块图书管理系统的分析及设计---应用UML建模
2.3.8装扮博客用例描述
用例名称:装扮博客
用例描述:博主可以通过此模块更改皮肤装扮 参与者:博主
前置条件:博主已登陆自己博客 后置条件:退出装扮模块 假设条件:用户已登录自己博客 基本操作流程:
1、进入装扮模块
2、选择喜欢的皮肤
3、点击装扮,装扮成功
4、退出装扮模块 备选流程:
点击导航超链接可以直接进入其他模块 图书管理系统的分析及设计---应用UML建模
第3章 静态结构模型
进一步分析系统需求,发现类以及类之间的关系,确定它们的静态结构和动态行为,是面向对象[7]分析的基本任务。系统的静态结构模型主要用类图和对象图描述。
3.1 定义系统对象
博主:博客的拥有者,拥有博客的所有权限,也可理解为后台管理员或者系统管理员;
前台用户:分为会员和游客
会员:可以查看和评论博主的文章,心情,相册,以及在留言板留言;
游客:只具有查看博主的博客的权限;
3.2 定义用户界面类
通过对系统的不断分析和细化,可识别出下述界面类、类的操作和属性。图书管理系统的分析及设计---应用UML建模
边界类如图3-1所示:
图3-1 边界类图 图书管理系统的分析及设计---应用UML建模
3.3 建立类图
实体类图如图3-2所示:
图3-1 实体类图 图书管理系统的分析及设计---应用UML建模
第4章 动态行为模型
4.1 创建系统顺序图
文章、心情、照片的添加顺序图如图4-1所示:
: 博主 : 日志管理界面1: 添加日志2: 添加文章信息3: 添加修改成功 : 文章 : 照片管理界面 : 照片 : 心情管理界面 : 心情4: 返回添加成功5: 添加照片信息6: 添加照片7: 添加修改成功8: 返回添加成功9: 添加心情10: 添加心情信息11: 添加修改成功12: 返回添加成功
图4-1 文章、心情、照片的添加顺序图图书管理系统的分析及设计---应用UML建模
文章、心情、照片的删除顺序图如图4-2所示:
: 博主 : 日志管理界面1: 删除日志2: 删除文章信息3: 返回删除成功 : 文章 : 照片管理界面 : 照片 : 心情管理界面 : 心情4: 显示删除成功5: 删除照片信息6: 删除照片7: 返回删除成功8: 显示删除成功9: 删除心情10: 删除心情信息11: 返回删除成功12: 显示删除成功图4-2 文章、心情、照片的删除顺序图图书管理系统的分析及设计---应用UML建模
文章、心情的修改顺序图如图4-3所示:
: 博主1: 修改日志 : 日志管理界面 : 文章 : 心情管理界面 : 心情2: 修改文章信息3: 返回修改成功4: 显示修改成功5: 修改心情6: 修改心情信息7: 返回修改成功8: 显示修改成功
图4-3 文章、心情的修改顺序图 图书管理系统的分析及设计---应用UML建模
文章、心情、照片的查看顺序图如图4-4所示:
: 游客1: 查看文章(): 未登录浏览页面 : 文章 : 心情 : 照片 : 留言板2: 选择符合添加文章3: 返回要查看的文章4: 返回文章信息5: 查看心情()6: 选择符合添加心情7: 返回要查看的心情8: 返回心情信息9: 查看照片()10: 选择符合添加照片11: 返回要查看的照片12: 返回照片信息13: 查看留言板()14: 选择留言15: 返回留言板16: 返回留言板信息图4-4 文章、心情、照片的查看顺序图 图书管理系统的分析及设计---应用UML建模
留言添加、回复顺序图如图4-5所示:
: 会员1: 添加留言 : 留言管理界面 : 留言板 : 留言板回复2: 添加留言3: 返回添加成功4: 显示添加成功5: 继续添加6: 回复留言7: 添加回复8: 添加回复信息9: 返回添加回复信息成功10: 返回添加回复成功11: 显示添加成功12: 继续回复
图4-5留言添加、回复顺序图图书管理系统的分析及设计---应用UML建模
留言删除顺序图如图4-6所示:
: 博主 : 留言管理界面1: 删除留言2: 删除留言信息(): 留言板3: 返回删除成功()4: 显示删除成功5: 继续删除留言()
图4-6留言删除顺序图如图书管理系统的分析及设计---应用UML建模
登录注册顺序图如图4-7所示:
: 游客1: 登录(): 登录界面 : 会员 : 注册界面2: 验证()3: 返回登陆成功4: 验证()5: 注册()6: 返回注册成功7: 再次登录()8: 验证()9: 返回登录通过
图4-7登录注册顺序图图书管理系统的分析及设计---应用UML建模
管理好友顺序图如图4-8所示:
: 博主 : 好友管理界面 : 好友1: 添加好友()2: 添加好友信息3: 返回添加成功4: 显示添加成功5: 删除好友()6: 删除好友信息7: 返回删除成功8: 显示删除成功
图4-8 管理好友顺序图图书管理系统的分析及设计---应用UML建模
4.2 创建系统的状态图
好友状态图如图4-8所示:
未成好友状态添加好友删除好友成功添加未成功添加好友状态未成功关闭状态
图4-8好友状态图图书管理系统的分析及设计---应用UML建模
会员状态图如图4-9所示:
其他会员游客注册博客会员查看别人博客退出状态查看别人博客登陆自己博客登陆自己博客博主
图4-9会员状态图
文章状态图如图4-10所示:
查看状态关闭不是会员评论回复评论不是博主是会员删除文章评论是博主可编辑状态可修改文章回复文章评论删除文章修改文章添加新文章
图4-9文章状态图 图书管理系统的分析及设计---应用UML建模
4.3 创建系统的活动图
管理文章活动图如图4-10所示:
登录自己博客验证密码,用户名是否匹配验证通过删除文章验证未通过失败返回失败结果成功返回成功登录失败退出图4-10管理文章活动图 图书管理系统的分析及设计---应用UML建模
登录注册活动图如图4-11所示:
登录验证用户名密码密码错误退出用户名不存在注册不注册注册注册成功用户名不存在输入用户名密码用户名已存在继续注册放弃注册注册失败
图4-11登录注册活动图 图书管理系统的分析及设计---应用UML建模
第5章 数据库模型
数据库模型如图5-1所示:
图5-1 数据库模型图
图书管理系统的分析及设计---应用UML建模
第6章 物理模型
6.1 创建系统组件图
网上博客组件图如图6-1所示:
会员登陆、注册文章分组文章评论回复心情主程序照片相册留言板好友留言板回复个人消息中心
图6-1 网上博客组件图
图书管理系统的分析及设计---应用UML建模
6.2 创建系统部署图
网上博客部署图如图6-2所示:
客户端浏览器WEB浏览器
HTTP浏览器TomCat服务器图6.2 网上博客部署图
数据库服务器SQL Server 2008
第二篇:UML建模优缺点
1.UML的优点:
UML语言使系统建模过程标准化,统一化,规范化。
UML在整个软件开发过程中采用相同的概念和表示方法,在不同的开发阶段,不必转换概念和表示方法,避免了传统软件开发方法的两个鸿沟。
UML采用图形化的表现形式。产生的模型易于理解,易于开发人员与用户之间的沟通,从而能够及时得到用户的反馈信息。
用UML进行系统建模所得到的建模制品不仅仅包括各种模型框图,还有大量丰富的文档,这些文档给系统后期的维护工作带来了便捷。UML不是一门程序设计语言,但可以使用代码生成工具将UML模型转换为多种程序设计语言代码,或使用反向生成工具将程序源代码转换为UML模型。2.UML的缺点:
任何事物都有正反两个方面,UML这种新兴的建模工具也存在它本身的一些不足,总结如下:
无法从语法上建立状态图与顺序图的关系。
无法从语法上建立活动图与顺序图在流程描述中的关系。协作图和顺序图中与消息相伴的参数不能与类图建立关系。
第三篇:UML(ATM系统)动态建模
实验3 动态建模
一、实验目的与要求 掌握分析ATM系统用例中用例的流程,分析对象之间的交互关系 掌握用UML设计参与对象之间的交互,用状态图、时序图、协作图和活动图来描述系统的行为。
二、实验设备、环境
PC(一台),Windows 2000或以上版本,安装Microsoft Visio 2003
三、实验内容及步骤 交互图:实现ATM系统的序列关系图和通信(协作)关系图; 2 分析设计软件系统的状态图。((1)和(2)选做一个状态图);
(1)ATM系统
(2)具体题目如下:某销售POS机,它的工作流程是:当客户到收银台后,收银员逐一输入用户购买的商品,输入完之后,计算出总金额,然后等待用户付款,确定支付成功之后,完成收银,等待下一个客户。请为其绘制出相应的状态机图。
3分析设计ATM系统的活动图(选做1个活动图)。
建立动态模型:
建立序列关系图、状态图、活动图
步骤:
编写脚本
确定各个对象之间的事件
构造事件追踪图(交互图)
构造状态图
添加活动和动作
一、时序关系图
1)ATM系统的正常情况脚本
ATM请储户插卡;储户插入一张现金兑换卡。 ATM接受该卡并读它上面的卡号。
ATM要求储户输入密码;储户输入自己的密码“1234”等数字。
ATM请求系统验证卡号和密码;核对储户密码,然后通知显示器显示说这张卡有效。
ATM要求储户选择事务类型(取款、转账、查询等);储户选择“取款”。 ATM要求储户输入取款额;储户输入“880”。
ATM确认取款额在预先规定的限额内,然后要求处理这个事务;成功处理完这项事务并返回该账户的新余额。
ATM吐出现金并请储户拿走这些现金;储户拿走现金。 ATM问储户是否继续这项事务;储户回答“不”。
ATM打印账单,退出现金兑换卡,请储户拿走它们;储户取走账单和卡。 ATM请储户插卡。
2)ATM系统的异常情况脚本
ATM请储户插卡;储户插入一张现金兑换卡。 ATM接受该卡并顺序读它上面的数字。
ATM要求密码;储户误输入“8888”等数字。
ATM请求总行验证卡号和密码;经验证发现密码错误,拒绝这张卡。 ATM显示“密码错”,并请储户输入密码;储户输入“1234”等数字;ATM请求总行验证后知道输入密码正确。
ATM要求储户选择事务类型;储户选择“取款”。
ATM询问取款额;储户改变主意不想取款了,按“取消”。 ATM退出现金兑换卡,请储户拿走它们;储户取走卡。 ATM请储户插卡。
ATM 脚本的事件时序图如下图所示:(正常情况)
用户读卡器显示器ATM卡用户账户事务提款机插卡读卡初始化提示输入密码输入密码验证密码获取密码获取账户初始化提示选择业务选择业务执行事务初始化提示输入金额输入金额获取余额验证取款金额计算余额计算利息更新账户配给现金打印收据退卡
二、状态图
主屏]do:显示主屏幕插卡[可读]Do:要求密码输入密码Do:验证账户继续密码错拿走卡退卡do:退卡请拿走卡插卡[不可读]不可读的卡do:显示信息取消取消do:显示取消信息无效账户账户有效Do:要求类型取消输入类型Do:要求金额取消结束do:打印账单Do:显示无效账户信息输入金额等待5秒Do:处理事务中止取消Do:请求继续拿走现金do:吐出现金请拿走现金事务成功取消事务失败Do:失败信息网络响应等待网络响应中断do:显示取消信息ATM类的状态图
处理事务验证账户请求处理事务请求验卡事务成功事务失败无效账户账户有效密码错
事务处理状态图
账户验证状态图
三、活动图
插卡<没有接收动作>输入密码<没有接收动作>输入账户类型输入金额取卡取钱<没有发送动作>
四、实验体会
顺序图的重点是完成某个行为的对象类之间所传递的消息的时间顺序。一个顺序图事务对象角色,生命线,激活期和消息构成。协作图用于描述系统的行为是如何有系统的成分合作实现的。协作时一种静态结构,是一个系统对实现某些服务所涉及的对象及其交互的投影。一个协同定义了一组对某些服务有意义的参加者和它们的联系,这些参加者定义了交互中的对象所扮演的角色。
第四篇:UML建模的要点总结
UML建模的要点总结
预备知识:
一、UML的特性与发展现状
UML是一种Language(语言)
UML是一种Modeling(建模)Language UML是Unified(统一)Modeling Language
1、已进入全面应用阶段的事实标准
2、应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域
3、成为“产生式编程”的重要支持技术:MDA、可执行UML等
二、建模的目的与原则
1、帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。
2、仅当需要模型时,才构建它。
3、选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理。
三、谁应该建模
1、业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与
2、需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与
3、设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。
4、实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。
5、数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。
正式开始
UML组成,三部分(构造块、规则、公共机制),关系如下图所示:
一、构造块
1、构造块是对模型中最具有代表性的成分的抽象
建模元素:UML中的名词,它是模型基本物理元素。
行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。
分组元素:UML中的容器,用来组织模型,使模型更加的结构化。
注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。
1.1、建模元素
类(class)和对象(object)
接口(interface)
主动类(active class)
用例(use case)
协作(collaboration)
构件(component)
节点(node)
类(class)和对象(object)
类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象
UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法
对象则是类的一个实例(object is a Instance of Class)
接口(interface)
接口是描述某个类或构件的一个服务操作集
主动类(active class)
主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到 启动控制活动的作用
主动类是指其对象至少拥有一个进 程或线程,能够启动控制活动的类
用例(use case)
用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具
用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个 用例定义一组用例实例。
协作(collaboration)
协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构 成的一个群体。
对于某个用例的实现就可 以表示为一个协作
构件(component)
在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)
构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换
节点(node)
为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件
节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力
1.2、行为元素
交互(interaction): 是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合
交互的表示法很简单,就是一条有向直线,并在上面标有操作名
状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列
在UML模型中将状态画为一个圆 角矩形,并在矩形内写出状态名称及其子状态
1.3、分组元素
对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标
1.4、注释元素
结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分
2、关系
UML模型的关系比较多,下图
2.1 关联关系
关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。
在UML中,使用一条实线来表示关联关系
在关联关系中,有两种比较特殊的关系:聚合和组合
聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系
如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述
组合是聚合的变种,加入了一些重要的语义。也就是说,在一个组合关系中一个对象一次就只是一个组合的一部分,“整体”负责“部分”的创建和破坏,当“整体”被破坏时,“部分”也随之消失
聚合就像汽车和车胎,汽车坏了胎还可以用。组合就像公司和下属部门,公司倒闭了部门也就不存在了!
2.2 泛化、实现与依赖
泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。
实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。
有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。
二、规则
命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符
范围:与类的作用域相似.可见性:Public,Protected,Private,Package
三、UML公共机制
1、规格描述
在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :
2、UML修饰与通用划分
在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类
UML通用划分:
1)类与对象的划分:类是一种抽象,对象是一个具体的实例
2)接口与实现的分离:接口是一种声明、是一个契约,也是服务的入口;实现则是负责实施接口提供的契约
3、UML扩展机制
这部分不容易描述,待改
构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块
标记值则是用来为事物添加新特性的。标记值的表示方法是用形如“{标记信息}”的字符串
约束是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
4、UML视图和图
图名
功能
备注
类图
描述类、类的特性以及类之间的关系
对象图
描述一个时间点上系统中各个对象的一个快照
复合结构图
描述类的运行时刻的分解
构件图
描述构件的结构与连接
部署图
描述在各个节点上的部署
包图
描述编译时的层次结构
用例图
描述用户与系统如何交互
活动图
描述过程行为与并行行为
状态机图
描述事件如何改变对象生命周期
顺序图
描述对象之间的交互,重点在强调顺序
通信图
描述对象之间的交互,重点在于连接
定时图
描述对象之间的交互,重点在于定时
交互概观图
是一种顺序图与活动图的混合附:开发过程与图的对应关系
本文来自CSDN
博
客,转
载
请
标http://blog.csdn.net/Mac_cm/archive/2009/07/27/4384704.aspx
UML 1原有 UML 1非正式图
UML 2.0新增
UML 1原有
UML 1原有
UML中非正式图 UML 1原有 UML 1原有 UML 1原有 UML 1原有 UML 1中的协作图 UML 2.0 新增 UML 2.0新增 明
出
处
:
第五篇:UML建模实验指导书总结
UML及其工具实验指导书
实验一 熟悉UML开发工具Microsoft Visio 2007 【实验目的】
熟悉UML开发工具Microsoft Visio 2007。【实验要求】
1. 熟悉Visio的UML建模绘图界面。2. 通过绘制类图学习Visio的使用方法。3. 通过绘制对象图学习Visio的使用方法。4. 通过绘制顺序图学习Visio的使用方法。【实验步骤】
一.熟悉Visio的UML建模绘图界面 1.进入Visio的UML建模绘图界面 通过“开始”|“程序”,运行Microsoft Office Visio 2007,出现Microsoft Visio界面。在左侧的“类别”区域中单击“软件”,然后在右侧的“模板”中单击“UML模型图”,则进入Visio的UML建模绘图界面。
2.熟悉UML建模绘图界面
在Visio的UML建模绘图界面中,最大的白色区域就是绘图区。左上方的“形状”窗口就是Visio的UML元素调板,它由很多的标签页组成。每个标签页提供了一个特定的UML图标。左下方的“模型资源管理器”就是Visio的字典,字典就是所创建的所有元素及其属性的记录的集合。当Visio打开并准备开始UML绘图的时候,“UML静态结构”标签页就会激活,我们就可以创建类图和对象图了。
二.绘制类图
下面我们使用Visio来绘制一个如图1所示的行星系统的类模型。
图1 一个行星系统的类图
1.从“UML静态结构”标签页中选择“类”图标并把它拖放到绘图区中。双击绘图区
中的类图标,出现“UML类属性”窗口。在“名称”字段中输入“PlanetarySystem”来重新命名这个类。单击“确定”按钮回到绘图界面。我们可以通过控制工具栏中“缩放”按钮的显示比例,使界面中的类图标显示合适的大小。采用同样的方法添加Planet类。在“模型资源管理器”中反映出了增加的新类。
2.下面我们为Planet类添加两个属性和一个操作,并把它设置为一个抽象类。
在Planet类上双击打开“UML 类属性”对话框。选中“IsAbstract”复选框,然后,从左边的“类别”区域选择“特性”,在右边的对话框中打开“特性”表。单击“新建”按钮,则在 “特性”表中添加了一行,在“特性”表项中输入diameter。采用同样的方式加入 distanceFromStar属性。
然后从“类别”区域选择“操作”,打开“操作”表,单击“新建”按钮,则在 “操作”表中添加了一行,在“操作”表项中输入“receiveLight”。单击“确定”按钮,赋予抽象类Planet相应的属性和操作。
3.注意每个属性左边的减号和每个操作左边的加号,它们表示可见性。为了使图显得比较简单,我们可以在图中去掉它们。只需要在Planet类上右击,打开弹出式菜单,选择“形状显示选项”,打开“UML 形状显示选项”对话框。去掉“可见性”复选框,单击“确定”按钮,则Planet类的属性和操作前面不再显示可见性。
4.我们把其他的类拖拽到大图中,然后添加组成关系。
首先是组成关系。从“UML静态结构”标签页中把“聚合”图标拖拽到绘图区,实心菱形一端连接到PlanetarySystem,另一端(尾端)连接到Star。
在图中,我们可以看到组成关系的每一段都有多重关系、可见性和缺省名。为了在图中去掉缺省名和可见性,在组成关系上右击,在弹出菜单中选择“形状显示选项”。这次,在“UML 形状显示选项”对话框中,去掉“第一个端名”、“第二个端名”和“端的可见性”选项,单击“确定”按钮。
现在我们来关注一下Star类的多重关系。双击组成关系图标,打开“UML关联属性”对话框。在“关联端”表格中,选择“结束2”一行“多重性”列的单元格。单击这个单元格中的下拉列表框,显示出“结束2”的可能多重性关系的一个列表。选择“1”并单击“确定”按钮,我们将在图中得到所选多重性的表示。
采用同样的方式拖拽“聚合”图标,先把菱形箭头的一端连在“PlanetarySystem”,然后再把尾端连接到Planet类,并进行多重性等相关设置。
5.向图中添加继承关系。
从“UML静态结构”标签页中将“泛化”符号拖拽到绘图区,把三角形的一端连接到Planet,尾端连接到HabitablePlanet。重复拖拽一个“泛化”符号,把三角形的一端连接到Planet,尾段连接到NonHabitablePlanet。完成这些操作后,绘图区中就是完整的类图。
三.绘制对象图
下面我们使用Visio绘制一个如图2所示的Earth和Sun的对象模型。
图2 Earth和Sun的对象图
1.在“模型资源管理器”中“顶层包”的文件夹上右击,从弹出菜单中选择“新建”|“静态结构图”,则创建并打开了一个新的静态结构图。从“形状”的“UML 静态结构”标签页中选择“对象”图标,拖拽到绘图区。
2.在对象图标上双击打开“UML对象属性”对话框。在“名称”字段中输入“theSun”替代缺省名字。我们还需要表明theSum是Star类的一个实例,为此,选择“类”字段并单击下拉列表。从类列表中选择“顶层包::Star”,然后单击“确定”按钮。
3.用相同的一系列步骤创建HabitablePlanet类的一个earth对象。双击打开“UML对象属性”对话框。从“类别”区域选择“特性值”打开“Attribute Values”表。在这张表中,我们可以填入diameter和distanceFromTheStar属性的值,这两个属性是HabitablePlanet继承自Planet的。在“值”列赋值,单击“确定”按钮。
4.在对象之间添加连接。
从“UML 静态结构”标签页中拖动“链接”符号到绘图区,将其两端分别和对象连接起来。完成这个步骤后,“结束1”和“结束2”的名字就出现了,在连接上右击,并通过“形状显示选项”可以从图中移除它们。
四.绘制顺序图
下面我们使用Visio绘制一个如图3所示的示意theSun和Earth之间的一个交互的顺序图(简化的图形,只有一条消息)。
图3 示意theSun和earth之间的一个交互的顺序图
1.在“模型资源管理器”的“顶层包”图标上右击,从弹出菜单上选择“新建”|“序列图”,则打开一个新的绘图区。
2.从“UML序列”标签中,拖拽一个“对象生命线”图标并把它放入到绘图区。双击图标打开“UML 分类器角色属性”对话框,在“名称”区域命名对象以后,在“分类器”区域从你创建的类列表中选定对象所属的类,单击“确定”按钮。
3.右击新添加的对象生命线,单击“UML形状显示选项”,通过选择“分类器名称”复选框可以显示类名。
4.通过一系列类似的步骤,创建另一个表示Earth的对象生命线图标。5.创建从sun对象到earth对象的消息。
从“UML 序列图”中选择 “消息”图标,并把它拖拽到绘图区,把它的尾部连接到sun对象的生命线,把它的头部连接到earth对象的生命线。
要改变消息的缺省标记,双击消息图标打开“UML 消息属性”对话框。由于只有一个可能的操作,名字和来自earth对象的消息所请求的操作都已经被选好了。单击“确定”按钮,则把操作放到消息之上。
6.从“UML序列”标签中,拖拽一个“激活条”图标完成顺序图。【思考问题】
1.对于本实验中创建的类图和对象图能在两个不同的绘图文件中分别创建吗?类图和顺序图呢?为什么?
2.本实验中创建的顺序图是在“顶层包”下新建的序列图中创建的,请问顺序图能在静态结构图中创建吗?为什么?
实验二 用例图设计
【实验目的】
掌握在Visio下用例图的设计。【实验要求】
1. 针对网上选课系统掌握识别参与者和用例的方法。2. 学习通过Visio绘制用例图的方法。3. 掌握如何对每个用例进行用例描述。【实验步骤】
一.网上选课系统需求分析
某学校的网上选课系统主要包括如下功能:
1. 管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。
2. 学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。二.在Visio中设置全局属性 1. 添加四个模型
单击Visio界面上菜单栏中的“UML”菜单,选择其下拉菜单中的“模型”,则打开了“UML模型”窗口。单击“新建”按钮,在“模型”表项中输入模型的名字。依次添加4个模型:用例模型、分析模型、设计模型和实现模型。
下面简要介绍一下四个模型的功能。
(1)用例模型:用例贯穿于建模的整个过程,因为软件和顶层包的价值就在于实现用例,从而为用户提供期望的功能。用例细化可使用活动图、顺序图等。
(2)分析模型:识别分析类,利用分析类实现用例,是用例模型中用例细化活动的延伸。主要使用顺序图和协作图实现用例。
(3)设计模型:将分析模型转化为解决方案。分析类转化为一个或多个设计类、接口、类(和接口)的操作、类的特性都被完整的定义。根据解决问题的需要,可能会引入一些包,这些包提供了诸如数据库访问、异常处理、分布式通信等基础服务。
通常有两种途径获得设计类:
1)将分析类转化一个或多个设计类;
2)通过引入基础服务获得设计类。
用设计类实现用例:使用顺序图和协作图。
设计系统原型:通过它验证解决方案的正确性,并为实现者提供指南。
(4)实现模型:将设计模型转化可执行代码的过程。关键的活动有:代码编写、测试、部署。使用构件图来描述系统的静态实现视图,使用部署图来描述系统的动态实现视图。
2. 将UML系统改名为SelectCourseSystem 在“模型资源管理器”窗口下,右击顶层节点,选择“属性”命令。在“UML子系统属性”对话框的“名称”文本框中输入新的名称“SelectCourseSystem”。在“文档”文本框中可以输入一些说明消息。
3. 设置模型的数据类型 在默认情况下,UML中可以使用的数据类型有4个包。本例中将目标语言绑定为C++,所以仅保留C++数据类型包。
单击Visio界面上菜单栏中的“UML”菜单,选择其下拉菜单中的“选项”,则打开了“UML选项”窗口。在 “UML文档”选项卡中选择C++数据类型。
三.实现用例模型 1. 识别参与者
本系统涉及的用户包括管理员Registrar和学生Student,他们是用例图的参与者,他们的主要特征相似,都具有姓名和学号等信息,所以可以抽象出“基”参与者人People,而Registrar和Student则从People统一派生。数据库管理系统Database是另外一个参与者。
2. 识别用例
识别、详述用例是用例建模过程中最重要的活动。顺着参与者出发,通过考虑参与者和系统的交互,可以识别出主要用例。
(1)与Students参与者相关的用例有哪些?(2)与Registrar参与者相关的用例有哪些?(3)哪些用例与Database参与者相关?
3. 绘制参与者以及参与者之间的关系
(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“主角”命令,出现“UML主角属性”对话框。将主角命名为“Registrar”,然后在“文档”栏中输入一些描述管理员主角职责的文字。其中的完整路径显示了主角在UML模型中所处的位置。单击“确定”按钮,则在“用例模型”的“顶层包”下新增了一个名为“Registrar”的主角。
重复上面操作,在用例模型的顶层包中添加上所有主角。
(2)下面绘图角色之间的关系。
双击“用例模型”“顶层包”下的“静态结构图”,这时会在绘图画板中打开。分别将Registrar角色、Student角色、People角色拖放到绘图画板,然后将“UML静态结构”标签页中的“泛化”图标拖放到绘图画板,并用它来连接两个角色。4. 绘制用例以及用例之间的泛化关系
(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“用例”命令,出现“UML用例属性”对话框。在“名称”框中输入一个你所找到用例名,单击“确定”按钮。
重复上面操作,在用例模型的顶层包中添加上所有用例。
(2)用例之间如果存在泛化关系,则拖拽“UML静态结构”标签页中的“泛化”图标到静态结构图中,来连接两个用例。5. 绘制用例图
(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“用例图”,这时会新建一个名为“用例-1”的空白用例图,右击新建的空白用例图节点,选择“重命名”,可对用例图重新命名。
(2)在“形状”中的“UML用例”标签页中,将“系统边界”形状拖放到用例图中,双击系统边界形状,可进行重新命名。
(3)在“模型资源管理器”中“用例模型”下,选中“Registrar”、“Student”和“Database”主角,拖放到用例图的系统边界之外。将“用例模型”下创建的用例拖放到用例图的“系统边界”内。
(4)绘制参与者与用例之间的关联。
如果主角和系统的交互包含某个用例,那么主角和该用例之间存在通信关系。将“UML用例”标签页中的“通信”图标拖放到用例图中,用它来连接参与者和用例。
端点名表示通信连接两端在通信中扮演的角色。端点的多重性表示通信另一端连接的一个对象对应着本端点连接的对象的数量。右击通信连线,选择“属性”,出现“UML关联属性”对话框,可以设置连接线的两个端点的多重性,还可以设置连接线的导航方向。为了降低图表的复杂性,通常只有在例外的情况下才显示导向性。
如果不关心端点名等信息,为了在视觉效果上隐藏这些信息,右击通信连线,选择“形状显示选项”命令,进行设置即可。(5)绘制用例之间的包含和扩展关系。
用例之间如果存在包含关系,则通过拖拽“UML用例”标签页中的“用”图标来连接两个用例;用例之间如果存在扩展关系,则通过拖拽“UML用例”标签页中的“扩展”图标来连接两个用例。
用例图作为一种UML模型元素,也必须用包来组织。本例中将两个用例图都放到了用例模型顶层包中,还可以用注释元素对用例图作简单说明。
6.对每个用例进行用例描述。为了便于以后对用例进行细化,每个用例都要提供用例描述。一个用例是多个场景组成的,对每个用例的场景进行场景描述,写入Word文档中。
【思考问题】
1.绘制用例图的步骤是什么?
2.结合网上选课系统的用例图设计实例,总结一下用例图在系统分析过程中所起的作用。
实验三 类图设计
【实验目的】
掌握在Visio下类图的设计。【实验要求】
1. 通过网上选课系统学习识别类的方法。
2. 通过网上选课系统学习识别类之间关系的方法。3. 学习使用Visio绘制类图。【实验步骤】 一.识别类 1.通过实验二中用例图的设计,我们找到了四个参与者:管理员Registrar,学生Student,学生和管理员的父类People,数据库Database。这些参与者都可以作为类图中的类。
2.识别选课系统中其他的类。
在选课系统中,还能找出哪些类?这些类有哪些属性和操作? 二.绘制类图 1.绘制类
在“模型资源管理器”中,双击“分析模型”中“顶层包”下的静态结构图,此时在绘图区中显示的则是此静态结构图。按照实验一中给出的方法绘制这四个类,包括这些类的属性和操作。
2.绘制类之间的关系
确定类之间是否有关系以及有什么关系。
如果存在“关联”关系,则将“形状”窗口中“UML静态结构”标签页中的“二元关
联”图标拖到绘图区,来连接两个类;如果存在“泛化”关系,则将“UML静态结构”标签页中的“泛化”图标拖到绘图区,来连接类;如果存在“聚集”或“组成”关系,则将“UML静态结构”标签页中的“复合”图标拖到绘图区,来连接类;如果存在“依赖”关系,则将“UML静态结构”标签页中的“依赖关系”图标拖到绘图区,来连接类。
在绘图区中双击这些关系图标,可以打开它们的属性对话框来修改属性。具体操作可参考实验一。
【思考问题】
1.绘制类图的步骤是什么? 2.结合网上选课系统的用例图设计实例,总结一下类图在系统分析过程中所起的作用。
实验四 状态图设计
【实验目的】
掌握在Visio下状态图的设计。【实验要求】
1. 通过网上选课系统学习识别对象状态的方法。2. 通过网上选课系统理解对象状态的转换。3. 学习使用Visio绘制状态图。【实验步骤】
一.识别课程类(对象)的状态 我们考察一个课程类(对象)(Course)的状态变化过程。
课程对象被创建、添加到数据库中。管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课程。学期结束,课程的状态终止。
通过上述需求描述,我们能够识别出课程类(对象)的哪些状态? 二.绘制状态图
1.在“模型资源管理器”的“分析模型”中,右击“课程”类,选择“新建”|“状态图”,这时会新建一个名为“状态图-1”的空白状态图,右击新建的空白状态图节点,选择“重命名”,可对状态图重新命名。
2.在“形状”窗口的“UML状态图”标签页中,选中“初始状态”图标并拖拽到绘图区,选中“最终状态”图标并拖拽到绘图区。
3.在“UML状态图”标签页中,选中“状态”图标并拖拽到绘图区,来添加一个状态。双击此状态,打开“UML状态属性”对话框,进行相应的设置。
4.在“UML状态图”标签页中,选中“复合状态”图标并拖拽到绘图区,来添加一个复合状态。双击此状态,打开“UML复合状态属性”对话框,进行相应的设置。
在“模型资源管理器”中,单击此复合状态前的“+”号,可以看到此复合状态下有一个新的状态图,可以通过双击此状态图,在绘图区中进行此状态图的绘制。
5.在“UML状态图”标签页中,选中“转换”图标并拖拽到绘图区,来添加状态到状态间的转换。双击转换图标,进入“UML转换属性”对话框,进行相应设置。
【思考问题】
1.总结绘制状态图的步骤。
2.结合网上选课系统的状态图设计实例,总结一下状态图在系统分析设计过程中所起的作用。
实验五 顺序图设计
【实验目的】
掌握在Visio下顺序图的设计。【实验要求】
1. 学习根据用例描述绘制顺序图的方法。2.学习使用Visio绘制顺序图。【实验步骤】
下面我们以Select Course(选课)用例为例来设计和制作顺序图。
一.识别对象
首先,查找Select Course用例的用例描述,从事件流中发现涉及以下对象: 1.界面 2.课程
3.对于业务层的操作,也应该有对象进行处理。4.事件流中涉及的参与者有:学生、数据库。二.识别对象之间的交互
分析对象、参与者之间交互的消息。本用例主要有以下交互: 1.学生通过界面发送选课命令。2.界面向控制对象请求课程信息。
3.控制对象向数据库发送查询数据信息。4.控制对象暂存数据库的查询结果。
5.界面对象从控制对象中取得所有的课程信息。6.在界面上显示所有的课程信息。
7.界面对象发送命令要求控制对象删除课程信息。8.学生选择课程。
9.界面对象要求学生输入学号。
10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。11.控制对象从数据库中查询关联信息。12.控制对象判断是否可以选课。
13.如果可以选课,则向数据库中添加关联信息。14.向界面对象返回信息。三.绘制Select Course顺序图
1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“序列图”,这时会新建一个名为“序列-1”的空白序列图,右击新建的空白序列图节点,选择“重命名”,可对序列图重新命名。
2.在“形状”窗口的“UML序列”标签页中,拖拽“对象生命线”到绘图区,在绘图区中双击此对象生命线,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。单击“确定”按钮。
要想显示出分类器名字,可以右击此对象生命线,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。
3.绘制对象间的通信。
在 “UML序列”标签页中,拖拽“消息”图标到绘图区,连接对象的生命线。双击“消
息”,打开“UML消息属性”对话框,进行消息的属性设置。通过拖拽“激活”图标到绘图区的生命线上,来表示该对象正在执行某个操作。
四.绘制其他用例的顺序图
按照上述例子的方法,画出网上选课系统中其他用例的顺序图。【思考问题】
1.总结绘制顺序图的步骤。
2.结合网上选课系统的顺序图设计实例,总结一下顺序图在系统分析设计过程中所起的作用。
实验六 协作图设计
【实验目的】
掌握在Visio下协作图的设计。【实验要求】
1. 学习根据用例描述绘制协作图的方法。2.学习使用Visio绘制协作图。【实验步骤】
下面我们以Select Course(选课)用例为例来设计和制作协作图。
一.识别对象
首先,查找Select Course用例的用例描述,从事件流中发现涉及以下对象: 1.界面 2.课程
3.对于业务层的操作,也应该有对象进行处理。4.事件流中涉及的参与者有:学生、数据库。二.识别对象之间的交互
分析对象、参与者之间交互的消息。本用例主要有以下交互: 1.学生通过界面发送选课命令。2.界面向控制对象请求课程信息。
3.控制对象向数据库发送查询数据信息。4.控制对象暂存数据库的查询结果。
5.界面对象从控制对象中取得所有的课程信息。6.在界面上显示所有的课程信息。
7.界面对象发送命令要求控制对象删除课程信息。8.学生选择课程。
9.界面对象要求学生输入学号。
10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。11.控制对象从数据库中查询关联信息。12.控制对象判断是否可以选课。
13.如果可以选课,则向数据库中添加关联信息。14.向界面对象返回信息。三.绘制Select Course协作图
1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“协作图”,这时会新建一个名为“协作-1”的空白序列图,右击新建的空白序列图节点,选择“重
命名”,可对协作图重新命名。
2.在“形状”窗口的“UML协作”标签页中,拖拽“分类器角色”到绘图区,在绘图区中双击此分类器角色,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。单击“确定”按钮。
要想显示出分类器名字,可以右击此分类器角色,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。
3.绘制对象间的通信。
在 “UML序列”标签页中,拖拽“关联角色”图标到绘图区,连接对象。双击此关联角色,打开“UML关联角色属性”对话框,进行属性设置。
四.绘制其他用例的协作图
按照上述例子的方法,画出网上选课系统中其他用例的协作图。【思考问题】
1.总结绘制协作图的步骤。
2.结合网上选课系统的协作图设计实例,总结一下协作图在系统分析设计过程中所起的作用。
实验七 活动图设计
【实验目的】
掌握在Visio下活动图的设计。【实验要求】
1. 学习根据用例描述绘制活动图的方法。2.学习使用Visio绘制活动图。【实验步骤】
下面我们以Add Course(添加课程)用例为例来设计和制作活动图。
一.识别活动
针对Add Course用例的用例描述,因为管理员密码验证过程可以抽取出来,作为通用的流程,所以将管理员输入课程信息作为起始的活动。内容如下:(1)管理员输入信息。
(2)系统验证是否和已有课程冲突。A:有冲突。
(3)系统添加新课程,提示课程添加成功。(4)系统重新进入管理主界面,显示所有课程。(5)用例结束。其他事件流: A:有冲突
(1)系统提示冲突,显示冲突课程信息。(2)用户重新输入。
(3)继续验证直到无冲突。
(4)进入添加课程事件流第(3)步。
根据以上描述并进一步细化,能识别出哪些活动? 二.识别负责活动的角色
在绘制活动图的时候,要对角色可视化,需要画出泳道。所以我们要识别出负责每个活动的角色。
三.绘制活动图
1.在“模型资源管理器”的“用例模型”中,右击“顶层包”,选择“新建”|“活动图”进行创建。这时会新建一个名为“活动-1”的空白活动图,右击新建的空白活动图节点,选择“重命名”,可对活动图重新命名。
2.在“形状”窗口的“UML活动”标签页中,分别拖动“初始状态”图标和“最终状态”图标到绘图区。
3.添加泳道。
在“UML活动”标签中,将“泳道”图标拖到绘图区来添加泳道。双击泳道,可以打开“UML分区属性”对话框,进行分区属性的设置。
4.添加状态。
在“UML活动”标签中,将“动态状态”或“状态”图标拖到绘图区来添加活动。双击图标可以打开属性对话框,进行属性的设置。
动作状态表示对象正在执行一个不可中断的原子操作。状态可以被分解成其他动作状态或状态,因此如有必要,可用一个单独的活动图描述状态。
5.添加转换。
在“UML活动”标签中,“判定”图标来表示在某一点做出判定。“转换(分叉)”和“转换(连接)”图标来描述并发的活动,此时包含多个控制流。“控制流”描述单个控制的简单转换。双击图标可以在相应的属性对话框中进行属性设置。
四.绘制其他用例的活动图
按照上述例子的方法,画出网上选课系统中其他用例的活动图。【思考问题】
1.总结绘制活动图的步骤。
2.结合网上选课系统的活动图设计实例,总结一下活动图在系统分析设计过程中所起的作用。