{业务管理}业务建模实例分析
UML系统需求分析建模实例包括业务建模

UML系统需求分析建模实例包括业务建模一、背景某公司为了提高内部管理效率,决定开发一个在线人事管理系统。
该系统主要目标是帮助公司员工和管理人员更好地进行人事管理工作,包括员工信息管理、薪资管理、请假管理等功能。
二、业务建模1. 参与者- 员工:具有查看和修改个人信息的权限。
- 人事部门:负责对员工信息进行管理、薪资管理和请假管理。
- 管理员:拥有所有功能权限。
2. 用例图用例图展示了系统的功能视图,包括主要的参与者和他们的交互。
(图1:用例图)3. 用例描述- 查看个人信息:员工可以查看自己的个人信息,包括个人资料、联系方式和工作历史。
- 修改个人信息:员工可以修改自己的个人信息,如联系方式和地址等。
- 管理员登陆:管理员可以使用管理员账号登陆系统。
- 管理员工信息:管理员可以查看和修改员工信息,包括添加员工、删除员工和修改员工信息等。
- 薪资管理:人事部门可以查看和修改员工薪资信息。
- 请假管理:人事部门可以管理员工的请假信息,包括请假申请和批准等。
4. 状态图状态图描述了系统中的一个对象或参与者的状态变化。
(图2:状态图)5. 类图类图展示了系统中的类以及它们之间的关联。
(图3:类图)三、系统分析1. 需求分析对于查看个人信息的用例,系统应该提供一个界面给员工输入自己的员工号,然后显示员工的个人信息。
对于修改个人信息的用例,系统应该提供一个界面给员工输入员工号和想修改的信息,然后保存修改后的信息。
对于管理员登陆的用例,系统应该提供一个界面给管理员输入管理员账号和密码进行登陆。
对于管理员工信息的用例,系统应该提供一个界面给管理员查看和修改员工信息,包括添加、删除和修改员工信息。
对于薪资管理的用例,系统应该提供一个界面给人事部门查看和修改员工薪资信息。
对于请假管理的用例,系统应该提供一个界面给人事部门管理员工的请假信息,包括请假申请和批准。
2. 非功能性需求- 界面友好:系统应该提供直观、易用的界面来满足用户的需求。
UML系统需求分析建模实例包括业务建模(ppt28张)

系统用例着重于要设计的软件系 统。参与者如何与软件系统进行 交互?我们在系统用例说明中书 写的事件流应该足够详细,从而 用作编写系统测试脚本的出发点。 系统用例几乎总是以黑盒形式编 写的。它们描述了软件系统之外 的参与者如何与将被设计的系统 进行交互。系统用例详细阐明了 系统需求。系统用例模型的目的 是从涉众的角度说明需求,而不 是设计如何满足需求。
后记I-系统分析
ห้องสมุดไป่ตู้
员工报销申请 用例实现的分 析类时序图
后记II-系统分析
VOPC类图
后记II-系统设计
系统架构 选择什么框架 基于框架和架构的时序图
• • • • • • • • • • • • • • • • • • • •
1、想要体面生活,又觉得打拼辛苦;想要健康身体,又无法坚持运动。人最失败的,莫过于对自己不负责任,连答应自己的事都办不到,又何必抱怨这个世界都和你作对?人生的道理很简单,你想要什么,就去付出足够的努力。 2、时间是最公平的,活一天就拥有24小时,差别只是珍惜。你若不相信努力和时光,时光一定第一个辜负你。有梦想就立刻行动,因为现在过的每一天,都是余生中最年轻的一天。 3、无论正在经历什么,都请不要轻言放弃,因为从来没有一种坚持会被辜负。谁的人生不是荆棘前行,生活从来不会一蹴而就,也不会永远安稳,只要努力,就能做独一无二平凡可贵的自己。 4、努力本就是年轻人应有的状态,是件充实且美好的事,可一旦有了表演的成分,就会显得廉价,努力,不该是为了朋友圈多获得几个赞,不该是每次长篇赘述后的自我感动,它是一件平凡而自然而然的事,最佳的努力不过是:但行好事,莫问前程。愿努力,成就更好的你! 5、付出努力却没能实现的梦想,爱了很久却没能在一起的人,活得用力却平淡寂寞的青春,遗憾是每一次小的挫折,它磨去最初柔软的心智、让我们懂得累积时间的力量;那些孤独沉寂的时光,让我们学会守候内心的平和与坚定。那些脆弱的不完美,都会在努力和坚持下,改变模样。 6、人生中总会有一段艰难的路,需要自己独自走完,没人帮助,没人陪伴,不必畏惧,昂头走过去就是了,经历所有的挫折与磨难,你会发现,自己远比想象中要强大得多。多走弯路,才会找到捷径,经历也是人生,修炼一颗强大的内心,做更好的自己! 7、“一定要成功”这种内在的推动力是我们生命中最神奇最有趣的东西。一个人要做成大事,绝不能缺少这种力量,因为这种力量能够驱动人不停地提高自己的能力。一个人只有先在心里肯定自己,相信自己,才能成就自己! 8、人生的旅途中,最清晰的脚印,往往印在最泥泞的路上,所以,别畏惧暂时的困顿,即使无人鼓掌,也要全情投入,优雅坚持。真正改变命运的,并不是等来的机遇,而是我们的态度。 9、这世上没有所谓的天才,也没有不劳而获的回报,你所看到的每个光鲜人物,其背后都付出了令人震惊的努力。请相信,你的潜力还远远没有爆发出来,不要给自己的人生设限,你自以为的极限,只是别人的起点。写给渴望突破瓶颈、实现快速跨越的你。 10、生活中,有人给予帮助,那是幸运,没人给予帮助,那是命运。我们要学会在幸运青睐自己的时候学会感恩,在命运磨练自己的时候学会坚韧。这既是对自己的尊重,也是对自己的负责。 11、失败不可怕,可怕的是从来没有努力过,还怡然自得地安慰自己,连一点点的懊悔都被麻木所掩盖下去。不能怕,没什么比自己背叛自己更可怕。 12、跌倒了,一定要爬起来。不爬起来,别人会看不起你,你自己也会失去机会。在人前微笑,在人后落泪,可这是每个人都要学会的成长。 13、要相信,这个世界上永远能够依靠的只有你自己。所以,管别人怎么看,坚持自己的坚持,直到坚持不下去为止。 14、也许你想要的未来在别人眼里不值一提,也许你已经很努力了可还是有人不满意,也许你的理想离你的距离从来没有拉近过......但请你继续向前走,因为别人看不到你的努力,你却始终看得见自己。 15、所有的辉煌和伟大,一定伴随着挫折和跌倒;所有的风光背后,一定都是一串串揉和着泪水和汗水的脚印。 16、成功的反义词不是失败,而是从未行动。有一天你总会明白,遗憾比失败更让你难以面对。 17、没有一件事情可以一下子把你打垮,也不会有一件事情可以让你一步登天,慢慢走,慢慢看,生命是一个慢慢累积的过程。 18、努力也许不等于成功,可是那段追逐梦想的努力,会让你找到一个更好的自己,一个沉默努力充实安静的自己。 19、你相信梦想,梦想才会相信你。有一种落差是,你配不上自己的野心,也辜负了所受的苦难。 20、生活不会按你想要的方式进行,它会给你一段时间,让你孤独、迷茫又沉默忧郁。但如果靠这段时间跟自己独处,多看一本书,去做可以做的事,放下过去的人,等你度过低潮,那些独处的时光必定能照亮你的路,也是这些不堪陪你成熟。所以,现在没那么糟,看似生活对你的亏欠,其 实都是祝愿。
UML业务建模实例分析[4]
![UML业务建模实例分析[4]](https://img.taocdn.com/s3/m/996b1737cdbff121dd36a32d7375a417866fc1b0.png)
下⼀步就是编制每⼀个⽤例的详细说明,对⽤例说明的主要信息包括有:⽤例名称、编号、⽤例的简短描述、⽤例的参与者、与其他⽤例的管理、⽤例启动的前提条件、⽤例结束后的事后条件、⽤例的输⼊、输出、⽤例的执⾏事件流等。
在实际项⽬中,我们并不⼀定要⾯⾯俱到,⽽是根据实际情况对⽤例描述进⾏裁减。
其中有⼏点重要信息是不能裁减的:⽤例名称、描述、输⼊、输出、执⾏事件流、参与者。
另外,如果实际情况需要,还可以使⽤MS Visio等⼯具画出界⾯的⽰意图来。
如上例所述,我们对每⼀个⽤例都进⾏详细的描述,建⽴当前系统的功能⽤例模型。
需求沟通与分析是⼀个迭代的过程,通过与⽤户的不断沟通,最终达成对⽬标系统的⼀致理解。
如果⽤户确认了需求分析的成果,⼀般是需求规格说明书之后,项⽬开始进⼊系统分析设计阶段,也就是开始构造⽬标系统的逻辑模型。
为了让系统设计能够以结构、组织⽅式和代码重⽤的形式表现出来,要对系统进⾏设计规划,设计阶段应该与分析阶段交迭。
需求是不断地发展,⽽设计本⾝也会推动需求的发展(反之亦然) 。
在图书馆管理系统的建模设计中,以下3个⽅⾯的问题是要关注的:业务对象的表⽰、业务服务的实现、⽤户界⾯的组织。
业务对象的表⽰在图书馆管理系统系统中,业务对象主要是数据库和数据实体类的表⽰⽅式。
建模时,可以构造出系统的静态模型,也就是系统类图来表⽰。
如下图则描述了借书这⼀⽤例的静态结构图。
为了体现类之间的关系,在下图中没有显⽰出每⼀个类的属性和基本操作。
业务服务的实现业务服务的实现需要完成的功能是各种业务规则和逻辑的实现,如借书处理的业务逻辑。
每个模块的信息录⼊、修改、删除、查询等。
业务规则和逻辑的实现基本相似,没有太多的规律可循。
采⽤UML来进⾏业务服务的建模,可以使⽤UML 的序列图、状态图、活动图。
这个部分的⼯作,通常通过⼀系列的类之间的交互来完成。
为了在更动态的层⾯上描述系统,UML 提供了许多其他类型的图。
对于B/S系统设计⽽⾔,情节图(Scenario Diagram) 特别有⽤。
业务流程分析与建模教材(PPT 86页)

6.2 数据流分析与建模
6.2.1 数据流分析 6.2.2 数据流图 6.2.3 画数据流图的注意事项 6.2.4 数据字典 6.2.5 新系统逻辑模型的提出
1.什么是数据流程图 数据流程图是用于描述数据流动、存储、处理的
逻辑关系的图。 2.数据流程图的基本成份(图例) ⑴外部实体 指系统以外又与系统有联系的人或事物。一般用
主管
D1 学籍表(校)
期末成绩单
获奖名单 留退名单
P2.4
P3 P1
分析补
考成绩
P2.5
系教务员
登记补
考成绩
教管科
学生
“成绩管理”框图的展 开
教师
P2.1.1 期末成绩 登记
一览表
D2 成绩一览表
P2.1.3 评奖学金 获奖名单
P3
P2.1.2
登记学 籍表
成绩
P2.1.4
P 2.1.5
填写成
确定异 异动情况 绩单
业务流程图是业务流程分析和建模的图标 工具。
1.业务流程图 ⑴跨职能流程图
活动
判定
同步或并行 开始
结束
文档(数据) 流
⑵业务流程图
期末考试流程
教 务
安排考试
处
考试安排表
教 出卷 师
A、B试卷 打印审批表
打印试卷 试卷
有 有不及格? 安排补考
补考安排表
阅卷出成绩
成绩单
期末流 程结束
答卷 装订存档
⑹完成流程所用的资源(物力、人力、知识)及其成本 如何?资源在不同活动中的占用情况如何?哪些 活动对实现流程目标具有最大贡献或增值作用? 流程中是否存在大量辅助性或无效的活动?
UML业务建模实例分析四例

UML业务建模实例分析在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见。
我们在日常生活中也经常和ATM打交道。
本章我们将以简化的ATM系统为例将前面几章中学到的用例图、类图、顺序图、状态图、活动图及协作图知识运用到此例中。
参与者"银行储户"和ATM机。
简化后的ATM机仅有取款、存款及其余功能。
其余功能不做详细说明。
图5.1 自动取款机(ATM)系统用例图银行储户在ATM机上完成取款、存款及其他业务。
图5.2所示的银行系统类图和图3.5是类似的,只是将工作人员换成了ATM。
整个银行系统包括了帐户库、银行储户库及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机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。
业务模型示例

业务模型示例
以下是一个典型的业务模型示例:
1. 公司信息
- 公司名称:ABC有限公司
- 公司类型:服务提供商
- 成立日期:2020年
- 总部地址:某地某街道第123号
2. 产品/服务
- 产品名称:XYZ软件
- 产品类型:企业管理软件
- 主要功能:财务管理、人力资源管理、销售管理、客户关系管理等
- 定价策略:年度许可证费用,按用户数量计费
3. 目标市场
- 目标客户:中小型企业
- 目标行业:制造业、零售业、服务业等
- 目标地区:全球范围
4. 销售渠道
- 直销:公司通过内部销售团队直接向客户销售产品
- 渠道合作伙伴:与IT咨询公司、软件开发公司等合作推广产品 - 电子商务:在公司网站上提供在线购买和下载服务
5. 交付方式
- 软件许可证:客户购买许可证后,可以下载和安装软件在自己的服务器上运行
- 云服务:公司将软件部署在云平台上,客户通过互联网访问和使用软件
6. 支持和售后服务
- 培训:提供产品培训课程,帮助客户学习如何使用软件
- 售后支持:提供在线和电话支持,解答客户在使用过程中遇到的问题
- 更新和升级:定期发布软件更新和升级版本,为客户提供更好的功能和性能
7. 收入来源
- 许可证费用:客户购买许可证时支付的费用
- 云服务费用:客户使用云服务时支付的费用
- 售后服务费用:提供培训和支持服务时收取的费用
以上是一个简单的业务模型示例,具体业务模型可能会根据不同公司和行业的需求而有所差异。
业务建模及用例建模

业务建模实践:实例分析
• 研究对象:某旅店
• 业务现状:
– 某旅店可对外开放50个双人间和20个单人间,房间 费用视情况按季节调整,但周一到周五提供半价 (周末全价)折扣
– 旅订客;可入以住直和接 预入 订住 都房 需间 要登(如记果个有人空信房息),也可提前预
–
旅客提前预订房间时,需提交一定的订金;入住时 间24小时之外的旅客可以取消预订,并退回所有订
• 理解将要实施的系统的组织结构和动态特性 – 理解当前在目标组织中的问题,并明确改进的潜力 – 确保客户、最终用户和开发人员对目标组织有统一 的理解 – 获取用于支持目标组织的系统需求
• 业务建模关注
– 机构的核心价值 – 机构的边界 – 机构的参与者 – 机构中的工作流及如何优化
-7-
业务建模方法
• 控制流
– 向外转移的条件之和必须是完备集
– 向外转移的条件之间不能重叠 [ 无空位 ]
• 决策点
[ 有空位 ]
– 注意和流程图的区别
– 误把活动当决策
• 图中判断“技术可 行性”需要单独的 活动来完成
-26-
细说活动图(3)
• 并发(concurrent) • 同步条(synchronization bar)的分叉(fork)与合
– 对于每个将被系统实现的业务用例,在用例视 图中确定一个系统用例或用例包(或单独的子 系统)来实现该业务
– 为需要支持自动化业务确定相应的用例 – 对于业务对象模型中的业务实体,可以在系统
模型中定义对应的实体类
• 为系统构架提供一些重要的构架机制
– 在软件构架中定义专用层来实现复杂的业务逻 辑
-41-
• 研究对象
– 软件要改进的业务单元
业务流程分析与建模教材.pptx

把分散在功能部门的作业,整合成单一流程,以 提高效率
在可能的情况下,以平行作业取代顺序作业 促进组织扁平化,以提高企业内的沟通效率。 ②目标远大 ③打破常规 ④创造性地应用信息技术
2.业务流程管理BPM ⑴定义 指通过人工或技术手段,对企业各类业务流
程进行梳理、分析、改善和监控,并通过业务流 程的不断优化,有效降低业务处理成本,提高业 务处理效率,快速反映市场与客户需求,持续提 升企业决策反应能力。
于描述数据的来源或去处。图例如下:
客户
⑵数据处理
指对数据的逻辑处理(数据变换)。一般用圆
角方框表示三方面的信息:处理过程编号、处
理过程文字描述、处理过程的进一步描述(如
功能承担者或执行者)。
P1
计算
⑶数据流
财务科
指数据的流向(输入或输出),一般用一个箭 头表示。
⑷数据存储
表示数据保存的地方(对数据记录文件的读写 处理)。
⑹完成流程所用的资源(物力、人力、知识)及其成本 如何?资源在不同活动中的占用情况如何?哪些 活动对实现流程目标具有最大贡献或增值作用? 流程中是否存在大量辅助性或无效的活动?
⑺流程中是否存在阻碍流程顺畅运行的瓶颈?哪些 活动有阻塞排除现象?
6.1 业务流程分析与建模
6.1.1 业务流程分析 6.1.2 业务流程图的画法 6.1.3 业务流程优化
业务流程图是业务流程分析和建模的图标 工具。
1.业务流程图 ⑴跨职能流程图
活动
判定
同步或并行 开始
结束
文档(数据) 流
⑵业务流程图
期末考试流程
教 务
安排考试
处
考试安排表
教 出卷 师
A、B试卷 打印审批表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{业务管理}业务建模实例分析UML业务建模实例分析在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见。
我们在日常生活中也经常和ATM打交道。
本章我们将以简化的ATM系统为例将前面几章中学到的用例图、类图、顺序图、状态图、活动图及协作图知识运用到此例中。
5.1用例图参与者"银行储户"和ATM机。
简化后的ATM机仅有取款、存款及其余功能。
其余功能不做详细说明。
图5.1自动取款机(ATM)系统用例图银行储户在ATM机上完成取款、存款及其他业务。
5.2类图图5.2所示的银行系统类图和图3.5是类似的,只是将工作人员换成了ATM。
整个银行系统包括了帐户库、银行储户库及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机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。
更多的属性及操作都可以一一加上,使这个类图更详细更完整,从而使参与项目的每个成员都能无歧义的明了整个设计的类的结构。
同样对于一个真正的银行系统,这个类图过于简单。
比如帐户类型我们可以先定义一个abstractclass,它包含一个帐户最基本的属性及操作。
而有些操作先定义为abstract,如余额的计算。
然后再继承这个abstractclass,我们可以有savingaccount和checkingaccount等等。
不同的帐户有不同的余额计算方法,我们可以加上具体的算法。
对于不同的帐户可能还有一些它特有的操作,我们也可以加上,比如savingaccount在存款达到多少时可以享受机票打折的优惠。
通过类图不仅可以使设计者明确的表达自己的设计意图,也能帮组自己整理思路,充实及优化自己的设计。
图5.2银行系统类图5.3顺序图图5.3描述了顾客在ATM机上取款时信息的流动情况。
以时间为顺序。
因为仅是示例,所以整个过程是没有出现任何故障时的流程,并且只画到了取款结束。
通过这个图,我们可以看出消息是如何在系统中不同对象之间进行交互。
通过流程图我们可以很清楚地看到系统是如何工作的,系统各部分之间的信息及控制是如何发送的,整个流程是否合理。
流程图对我们的设计起到了很好的帮助作用。
注意在本图没有一个生命线终端有一个"X",这是因为这个流程中还未遇到有对象生命结束。
当有对象生命结束时需在对应的生命线终端画"X",表明这个对象在这时被销毁。
首先银行储户将ATM卡插入读卡机,读卡机将信息传给客户管理,客户管理提出查询密码,显示部分将输入密码请求显示出来…..因为这个顺序图较长,且很清晰,即便是初学者也很容易读懂,在此就不对本图做过多的解释。
图5.3ATM取款顺序图图5.4描述了顾客在ATM机上进行操作会经历的几种状态,及各种状态之间转换的条件。
因为是简化了的例子,所以除了等待顾客插入磁卡的起始状态和结束服务的终止状态,顾客会处于输入密码、选择服务类型、存款及取款四种状态。
插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不正确,服务结束。
进入选择服务类型后根据选择的不同,顾客可进入存款和取款状态。
存、取款结束后,顾客既可以选择结束服务到最终状态,也可以选择继续服务回到选择服务类型状态。
通过状态图我们可以无歧义的了解各个活动角色是如何在不同状况下转换的,转换的条件是什么,是否会出现死锁现象,是否有条件没考虑周全,是否有状态无法达到。
状态图可以帮助我们发现问题,并及时改正。
5.5活动图图5.5参考了RandyMiller的《AHands-OnIntroductionforDevelopers》一文,5.3图中的客户管理和事物管理对应于5.5图中的Bank,图5.3中的读卡机、显示、输入设备及点钞机对应于5.5图中的ATMMachina,银行储户就是Customer。
初看活动图和顺序图表达的意义很接近。
但我们可以注意到顺序图着重时间的顺序,而活动图侧重于各部分之间的相互制约,对于一些并行的活动能够有效的表示出来。
例如5.5图中fork和join处,我们可以很清楚的看到一些并行活动的存在。
这个活动图以顾客插入卡为开始,以顾客取卡结束。
我们可以看到活动图的重点虽然不在时间顺序,但我们同样可以得到时间的信息。
图5.5ATM银行系统活动图5.6协作图在第四章中我们知道协作图和顺序图是可以无信息损失的相互转换,只是它们的侧重点是不一样的。
顺序图着重于对象间消息传递的时间顺序,协作图着重于表达对象之间的静态连接关系。
图5.6将5.3图转换为协作图。
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进行面向对象的分析与设计。
本文将假设读者对UML、面向对象等领域的基本内容已了然于胸,所以将不会过多阐述,而将重点放在应用过程上。
本文的目的是通过一个完整的实例,展现基于UML的OOA&D过程的一个简化模式,帮助朋友们更好的认识UML在OOA&D 中起的作用。
前言经常听到有朋友抱怨,说学了UML不知该怎么用,或者画了UML却觉得没什么作用。
其实,就UML本身来说,它只是一种交流工具,它作为一种标准化交流符号,在OOA&D过程中开发人员间甚至开发人员与客户之间传递信息。
另外,UML也可以看做是OO思想的一种表现形式,可以说“OO是神,而UML 是型”。
所以,想用好UML,扎实的OO思想基础是必不可少的。
然而,在UML应用到开发过程中时,还是有一定的模式可以遵循的。
(注意,是模式而不是教条,我下面给出的流程只是一个启发式过程,而不是说一定要遵循这个流程。
)下面,我们通过一个CMS系统的分析设计实例,看看如何将UML应用到实际的开发中。
1.从需求到业务用例图OOA&D的第一步,就是了解用户需求,并将其转换为业务用例图。
我们的CMS系统需求非常简单,大致课做如下描述:这个系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布新闻。
任何人可以浏览新闻,浏览者可以注册成为系统会员,注册后可对新闻进行评论。
管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除等。
通过以上需求描述,我们画出如下的业务用例图:这里要注意三点:1.业务用例是仅从系统业务角度关注的用例,而不是具体系统的用例。
它描述的是“该实现什么业务”,而不是“系统该提供什么操作”。
例如,在实际系统中,“登录”肯定要作为一个用例,但是这是软件系统中的操作,而用户所关注的业务是不包含“登录”的。
2.业务用例仅包含客户“感兴趣”的内容。
3.业务用例所有的用例名应该让客户能看懂,如果某个用例的名字客户看不懂什么意思,它也许就不适合作为业务用例。
2.从业务用例图到活动图完成了业务用例图后,我们要为每一个业务用例绘制一幅活动图。
活动图描述了这个业务用例中,用户可能会进行的操作序列。
活动图有个很重要的使命:从业务用例分析出系统用例。
例如,下面是“新闻管理”的活动图:可以看到,一个“新闻管理”这个业务用例,分解出N多系统操作。
这里要特别注意这些操作,其中很多“活动”都很可能是一个系统用例(当然,不是每个都是)。
例如,由这个活动图可以看出,系统中至少要包含以下备选系统用例:登录、注销登录、查看新闻列表、修改新闻、删除新闻。
这样,将每个业务用例都绘制出相应的活动图,再将其中的“活动”整合,就得出所有备选系统用例。
3.从活动图到系统用例图找出所有的备选系统用例后,我们要对他们进行合并和筛选。
合并就是将相同的用例合并成一个,筛选就是将不符合系统用例条件的备选用例去掉。
一个系统用例应该是实际使用系统的用户所进行的一个操作,例如,“查看新闻列表”就不能算一个系统用例,因为他只是某系统用例的一个序列项。
最终我们得出的系统用例图如下:4.从系统用例图到用例规约得出系统用例图后,我们应该对每一个系统用例给出用例规约。
关于用例规约,没有一个通用的格式,大家可以按照习惯的格式进行编写。
对用例规约唯一的要求就是“清晰易懂”。
下面给出“登录”这个系统用例的一个规约:5.绘制业务领域类图完成了上面几步,下面应该是绘制业务领域类图了。
所谓业务领域类图要描述一下三点:1.系统中有哪些实体。
2.这些实体能做什么操作。
3.实体间的关系。
这里要特别强调:这里的实体不是Actor,而是Actor使用系统时使用的所调用的实体,是处在系统边界之内的实体。
例如,管理员就没有作为一个实体出现在这里,因为管理员处在系统边界之外,它所有的工作都可以通过调用这三个类的方法完成。
并且,这里的“注册会员”实体也不是刚才用例图中注册会员这个Actor,而是作为一个系统内的业务实体,供Actor们使用的。
例如,其中的注册功能是给注册会员这个Actor使用,而移除则是给管理员这个Actor使用的。