第七章 过程建模和分析
一、过程模型的概念
三、用 UML动态建模方法进行过程建模
二、建立过程模型的步骤
四、建模后期工作
一、过程模型的概念
1、系统的逻辑模型和物理模型
逻辑模型独立于技术实现,阐述系统本质,描述系统“是什么”、“做什么”
又称:基本模型、概念模型、业务模型。
(1)逻辑模型
逻辑模型描述业务需求,物理模型描述技术设计
?逻辑模型消除系统在具体实现时产生偏差;
?逻辑模型减少因过份注重细节而遗漏业务需求的风险;
?逻辑模型便于使用非技术语言与用户交流
(2)逻辑模型
又称:实现模型、技术模型;
说明系统在物理上和技术上是如何实现的,受限于具体技术选择。
(3)过程模型 (Process)
一种用来组织和记录系统过程中的数据结构和数据流、以及系统过
程中使用的处理逻辑、方法和程序的方法。
2、过程建模的系统工程理论
( 1)系统与过程
? 系统的基本特征是:输入、处理(过程)、输出;
? 系统分析的本质是使用模型观察或呈现系统。
? 过程(又称:转换),是对输入数据流或环境进行操作或做出反馈
( 2)过程分解
? 分解是将一个复杂系统分成若干个子系统;
?结构化方法是面向功能分解;
?面向对象方法是通过泛化、聚类等关系操作进行分解。
? 过程分解是把一个系统要完成的功能视为一个从总过程划分到各个
层次的子过程的行为。
?过程分解最后构成一份层次清晰的树状结构。
1.0系统
1.1.2任务
1.2功能 B
1.1.1任务
1.1功能 A
( 3)逻辑过程和约定
? 逻辑过程注重说明哪些操作或行为必须执行,但并不关心系统是如何
实现。
?逻辑过程的命名依赖于在流程图中所处位置以及过程的类型。
?有三种逻辑过程:功能过程、事件过程、基本过程。
功能过程
?功能过程是进行业务处理时的一组相互关联和连续的活动。没有开始
湖结束。例如:生产计划。
?每个功能过程包含若干个完成特定活动和任务的独立子过程。
事件过程
?事件过程是完成整体工作的一个逻辑单位。
?事件过程由离散输入触发,过程给出相应输出时结束。有开始与终止。
?功能过程由一组事件过程组成。例:原材料管理功能有若干事件。
功能 1
业务事件 n 业务事件 2 业务事件 1
基本过程 n 基本过程 2 基本过程 1
基本过程
?基本过程是完成事件响应所需的离散、详细的行为或任务。
?基本过程位于过程模型的最底层。
?基本过程的命名采用动宾结构,如,检验客户身份。
逻辑过程包含哪些过程?
?执行计算;
?做出决定;
?挑选,过滤或整理数据;
?把数据组织成有用的信息;
?触发其他的过程;
?使用存储数据
3、过程逻辑的描述
?确定系统过程采用分解图和数据流图,并对数据流图内部处理
逻辑进行说明。
?描述工具应既易于理解;又具有逻辑严密性。
( 1)结构化英语
?基本结构有:顺序结构、决策结构(分支结构)、迭代结构(循环结构)
?在过程逻辑方面的约束;
?优点:清晰地描述条件和行动。
( 2)决策树
表示条件和相应行动的树状结构 折扣条件
购货 ﹤ 5万元 购货 ≥5万元
有欠款 无欠款
交易时间 ≥10年 交易时间 ﹤ 10年
折扣 15% 折扣 10% 折扣 5% 折扣 0% 行动
条件
( 3)决策表
显示条件和行动的一个行列矩阵
输入条件
国内航班 Y Y Y Y N N N N
售出过半 Y Y N N Y Y N N
票价 ≥ 350美元 Y N Y N Y N Y N
输出结论
免费鸡尾酒 X X X
收费鸡尾酒 X
( 4)几种工具的比较
?决策树适用于复杂程度一般的决策。
?决策表适用于含有 5~6个条件的复杂组合;
?结构化英语适用于具有判断和循环动作执行的问题;
?决策树与决策表也可用于其他阶段或其他学科
二、建立过程模型的步骤
1、生命周期各个阶段的过程建模
( 1)系统规划阶段的过程建模
?规划阶段的过程模型就是 企业流程模型;
?企业流程模型用于识别业务域和系统功能;
?业务域和功能要进行优先级排序。
( 2)业务流程再造阶段的过程模型
?业务流程再造就是对企业业务流程进行根本性的再思考和彻底的重新设计
?业务流程再造通常结合数据流图,每种 BPR方法有其自己的过程符号。
( 3)系统分析阶段的过程建模
?系统分析阶段进行过程建模是结构化分析方法的重点。
?常用“事件分割”的策略进行逻辑建模。
?事件分割基于业务事件以及事件响应将一个系统分解为多个子系统。
建立系统关联图
做出功能分解图
建立事件关联图
组合成系统数据
流图
建立各个事件的
数据流图
建立事件列表
将所有事件图利
用数据流作为接
口合并起来
说明系统与
周围环境的
主要接口
列出系统必须
响应的所有业
务事件
对功能分解图中
的每个事件都添
加一个处理
将系统分解为
逻辑子系统或
各种功能
将每个处理进一步
细化,列出基本处
理、数据存储、数
据流
例:配送中心管理信息系统的过程模型
1、建立系统关联图
客户
管理人员
供应商 配送中心
信息系统
PSZX
预算报表 资产平衡表
支付供应商
发货单
供应商发票
付款
订单
发票
送货单
拒绝订单通知
2、功能分解图
配送中心信息系统
订单处理
子系统
帐目管理
子系统
采购管理
子系统
库存管理
子系统
配送管理
子系统
3、建立事件列表
事件描述 触发器 来源 动作 响应 目的地
客户发出订单 新订单 客户 生成新订单
实时连接 信用部
订单确认 客户
订单明细 配送部
客户修改或取
消订单
订单修改请
求 客户 修改订单
修改确认 客户
修改细节 配送部
潜在客户索取
商品目录
索取商品目
录的请求 潜在客户
提供商品目
录信息 商品目录 潜在客户
配送部门处理
缺货订单 缺货订单 配送部门
通知客户缺
货情况 缺货通知 客户
……… ……… ……… ……… ………, ………
4、建立事件关联图
配送中心信息系统
订单处理
子系统
帐目管理
子系统
采购管理
子系统
库存管理
子系统
配送管理
子系统
事件 1 事件 6 事件 3 事件 2 事件 m 事件 n
5、组合成系统数据流图
客户 订单处理
PSZX1
客户文件
管理人员
供应商
库存管理
PSZX4
采购管理
PSZX 3
配送管理
PSZX5
帐目管理
PSZX2
出库单文件
库存文件
采购订单文件
销售订单文件
车辆数据文件
司机文件
新客户 订单
拒绝通知
资产平衡表
预算表
客户 发票
客户信息
采购订单
更改信息
发货单
送
货
单
送货确认
仓库人员
财务人员
库存报表
已完成订单
5、绘制分层数据流图 ___订单处理子系统
销售订单校验
PSZX1.1
缺货订单处理
PSZX1.3
客户数据管理
PSZX1.2
客户文件
库存文件
缺货订单文件
销售订单文件
客户
新客户数据
新客户
销售订单 订单拒绝通知
合格订单
缺货数据
缺货订单
课堂练习,
请在上例的基础上,仿照订单处理子系统数据流图的绘制,
完成采购管理、库存管理、配送管理三个子系统的分层数据
流图。
采购管理子系统
供应商
制定采购计划
PSZX3.1
制作订单
PSZX3.2
跟踪订单执行
情况
PSZX3.3 供应商信息管
理
PSZX3.4
库存文件
供应商数据文件
采购订单文件
入库商品文件
采购计划
在库商品信息
供应商信息
供应商信息更改
采购订单
供应商数据
财务人员
已完成订单
库存管理子系统
入库管理
PSZX4.1 出库管理
PSZX4.3
在库商品信息
管理
PSZX4.2
供应商
仓库人员
采购订单文件
库存文件
销售订单文件
出库单文件
发货单
入库商品数据
库存报表
出库信息
出库单
配送管理子系统
制定配送计划
PSZX5.1
路单执行情况
PSZX5.3
制作送货单
PSZX5.2
客户
客户文件
车辆数据文件
司机文件
销售订单文件
出库单文件
配送计划
送货单
收货确认
路单
2、数据流图
( 1)数据流图的基本元素
外部实体
数据存储
处理逻辑
数据流
( 2)数据流图和抽象层次
数据流图可用于描述系统的不同层次。高层次数据流图的过程可分解为低
层次,更详细的数据流图;下一层的数据流图可进一步分解。
( 3)数据流图的绘制
自顶向下地绘制分层数据流图
按由外到内和数据流动方向详细描述 4个要素
给图中各元素加以命名
对图以及图中各个元素加以编号
( 4)数据流图片段
?为事件列表中每个事件建立的数据流图为数据流图片段
?数据流图片段显示系统如何响应某个事件
市场部 制定销售计划 产品目录
产品数据
顾客 订购货物
产品目录
顾客名单
待售货物
销售部 产生顾客列表
产品目录
顾客名单
待售货物
登记货物
到货通知
顾客列表
顾客购物系统的数据流图片段
( 5)物理和逻辑的数据流图
?数据流图既可以是物理模型,也可以是逻辑模型;
?是物理或逻辑模型,取决于模型的使用者以及其考虑问题的出发点;
?若作为物理模型,需增加具体实现方面的细节。(如:特定的技术
过程、特定参与者的名称、特定过程的顺序、冗余的过程 /数据流 /文
件等)
( 6)数据流图和业务流程图的区别
?数据流图中的过程可以并行操作;业务流程图的过程每次只能执行一个
?数据流图显示系统中的数据流,循环和分支不在图中表示;流程图显示算法
或程序操作顺序。
?数据流图显示具有不同执行时间的各个过程。
( 7)数据流图的用途及其优缺点
用途
?分析人员可用它自顶向下分析系统信息流程;
?可在图上画出需要计算机处理的部分;
?可根据数据存储,进行数据分析,向数据库设计过渡;
?根据数据流向,决定存取方向;
?对每个处理过程,可用相应工具表达处理方法。
优点
?总体概念强;
?反映出数据的流向和处理过程;
?自顶向下分析,易于发现系统各个部分的逻辑
?易于与计算机处理相对应
缺点
?不直观;
?需计算机帮助绘制
3、数据流图的质量
高质量数据流图:可读、内部一致、准确表达系统需求
( 1)尽量减少复杂性
( 2)尽量减少接口
( 3)数据流一致性
单个数据流图中的过程在 5__9个之间,
接口是问题描述中一部分与其他部分的连接,在数据流图中,数据
流是过程的接口。对数据流图的每一部分,接口应在 5___9之间。
高层的数据流入 /出与低层的数据流入 /出应一致。流入的数据必有用;
流出的数据必有依据。
绘制学生选课系统的数据流程图。
课程执行计划
学生
教务处
教师
检验选课
单
XK2
登记成绩
XK6
调整课表
XK5
安排课程
XK4
建立班级
XK3
制定课程
执行计划
XK1
学生文件
班级文件
教师文件
教室文件
执行课表
课表
确认的课表
执行课表
计划
信息
课程信息 课程
执行
计划
选课单
不合格的选课单
合格的选课单
班级数据
成绩单文件
执行
课表
教室数据
教师数据
班级信息 1
学生成绩单
成绩录入
课堂练习
构造下列业务的数据流图,
一个网上书店实施个性化信息服务,即根据客户购书和基本情况,
向其提供及时的图书信息。系统包括客户基本信息,客户购书历史记
录和书店图书目录。 系统业务流程如下,
首先,当客户登录书店网站,对于老客户,只要输入客户号和密
码;对于新客户,需填写基本情况信息,然后注册。其次,对于成功
登录的老客户,系统根据其购书的历史记录,从新到图书目录中查找
客户可能感兴趣的书目,并主动推荐给客户;允许老客户查询其他图
书。第三,对于新客户,除了主动推荐新书外,也可查询整个图书目
录。
三、用 UML动态建模方法进行过程建模
1,UML过程建模的步骤
? 过程 是系统相关对象在消息的启动下,自身的行为活动,以及这些
活动引起的自身状态和其他相关对象状态的改变。
?消息 是发送对象要求目标对象执行某一操作的请求。
?用例图 确定谁向谁发送消息。
?顺序图、协作图 涉及消息传送过程。
?状态图、活动图 涉及消息传送造成的后果。
数据建模
结构化方法
过程建模
UML方法
动态建模
静态建模
状态图
UML过程建模步骤
建立系统用例图
具化 /泛化用例图
事件 -消息关联表
建立系统类图
和对象图
层层细化场景的
顺序图和协作图
活动图
建立事件列表
静态模型 —数据建模
动态模型 —过程建模
2、建立类图(对象图)和系统用例图
? 用例图 提供系统概貌,确定系统初始范围。
?将系统想象为容器,以便区分系统外部和内部;
?确定系统必须做出响应的“业务消息”
?确定系统必须产生的“响应”
?注意,参与者与用例之间的联线表示消息的方向;
?系统之外的其他系统或文件,也是参与者
类图、对象图略
VIP服务
VIP成员
潜在 VIP成员
原有 VIP成员
VIP帐户
市场部
库存
服务项目库
3、系统用例图的具化
具化和泛化是面向对象中对过程的分解方法。
VIP服务
VIP订购服务 VIP操作服务 VIP签名服务 VIP促销服务
生成签名报表
处理签名
生成促销报表
处理销售事物
处理成员身份 生成订购单
处理订购事物
处理促销事物
生成促销报表
? 用例图不显示数据流;
?子用例分解依据类图和事件列表。
?分解细化的层次由事件 —响应列表确定
4、建立事件响应列表
目的是:确定系统必须对哪些事件做出响应;怎样响应是正确的。
事件 触发器 来源 动作 响应 目的地
客户想确定可用
商品的信息 商品查询 客户 查询可用商品 可用商品细节 客户
5、绘制事件交互图
? 交互图是顺序图和协作图。
?协作图强调对象交织在一起支持一个用例;
?顺序图强调消息本身的细节。
( 1)顺序图绘制步骤
? 确定所有与场景有关的对象和活动者;
?基于事件流,确定每一个需要用于完成场景的消息;同时识别对象
的源对象、目的对象;
?决定是否总是发送还是有条件发送每一个消息;
?正确地为这些消息排序,并加入到生命线上;
?给消息加上形式化的语法,以描述条件、消息名称和要传递的参数
例 1:交互模型的例子
1、客户提出购买请求
2、公司记下客户信息
3、公司告知客户货物的规
格、价钱
4、客户确认定货
5、公司产生一个新定单
6、客户付款
7、公司送货给客户
用例“订货”的场
景
场景有关的对象 ?交互界面 ?客户
?仓库
?定单
?计算定单
场景的消息 消息 1,
?名称:请求
?参数:货物、金额
?发送方:客户
?接受方:交互界面
消息 8,
?名称:送货请求
?参数,
?发送方:定单
?接受方:仓库
1、请求
2、创建客户
3、仓库存货验证请求
4、计算货单金额请求
5、显示计算结果
6、购买确认
7、记录客户定单
8、送货请求
消息列表
绘制顺序图
客户 交互界面 定单 计算定单 仓库
1、请求
2、创建
7、增加定单
3、验证
5、显示金额
6、确认定单
4、计算请求
8、送货请求
客户
绘制协作图
客户
交互界面
定单
计算定单
仓库
1、请求
2、创建
7、增加定单
3、验证
5、显示金额
6、确认定单
4、计算请求
8、送货请求
协作图中,结点表示对象,连线表示消息
教学管理员
教师
学生
财务系统
选修课注册
选修课管理
选修课信息汇总
选修课查询
教师简历查询
选修课管理子系统的用例图
练习,学生选课系统的交互图
选修课管理子系统的对象类图
教学管理人员
课程表
选修课程
学生
教师
班级
0..*
1
1
1
.*
.*
.*
*
*
1
* *
课堂练习,
1、请绘制“选修课注册”的顺序图和协作图。根据自己的
使用经验,想象“选修课注册”要完成的工作,分析涉及
到的对象,以及对象之间的交互关系。
交互界面 学生 课程表 选修课程
选修课注册的顺序图
1、注册请求
2、验证学生
3、验证课程
4、选课
5、增加选课记录
班级
6、加入班级
选修课注册的协作图
学生 交互界面
选修课程 课程表
1、注册请求
2、学生验证
3、课程验证 4、选课 5、增加选课记录
班级
6、加入班级
例 2:销售合同管理系统动态交互模型的建立
1、用例图
增加合同
修改合同
履约合同检查
处理付款单
打印催款单
客户
财务系统
合同管理员
2、对象图
合同管理
窗口
付款单
存货项目
销售合同
销售货物
清单
库存预警
清单
客户
出库单 催款单
履约合同
1..*
1
1
1
1
*
*
*
1..* 1..*
1..*
1
*
1
3、交互图 ___顺序图
以下是“处理付款单”用例要完成的工作,依据此工作,绘
制其顺序图。
,处理付款单”用例开始,对财务处传来的多个付款单依
次与相应的销售合同进行核对。核对无误后,将每个合同销
售的货物清单与仓库的存货进行核对,如果货物的数量、金
额、品种满足合同要求,在仓库的对应存货项目中核销相应
的数量;在核销的同时,仓库对这些存货项目进行自我检查,
是否存货数量少于预警线,如果少于预警线,打印预警货物
清单。根据销售合同核销货物的数量、金额、品种打印出库
单,客户可以持出库单到仓库提取货物。
对象的处理 消息发送者 消息接受者 传递消息 返回消息
对财务处发来的 "付款单
"进行处理 合同管理员 合同管理窗口 口令密码
口令密码正
确与否
对付款单进行处理 合同管理窗口 付款单 付款处理 付款单处理完毕或出错
付款单与销售合同进行
核对 付款单 销售合同 核对合同
合同核对完
毕或出错
核对合同的销售货物清
单 销售合同 销售货物清单
合同中销售
货物的核对
核对完毕或
出错信息
核对库存中是否有销售
合同中的货物清单 销售货物清单 存货项目
需核对的存
货项目
核对完毕或
出错
检查库房中某些货物的
存储量是否小于预警线 存货项目 存货项目 预警线域值
库房某些货物存量小于
预警线,打印预警清单 存货项目 库存预警清单 小于预警量
打印完毕或
出错
核对库房是否有销售合
同中的货物清单,有则打
印出库单
销售货物清单 出库单 有存货则打印 打印完毕或出错
(1)确定交互涉及的对象
合同管理
窗口
(2)绘制顺序图
付款单 销售合同 销售货物 清单 存货项目 库存预警 清单 出库单
1、启动
2、处理
3、核对
销售合同 4、核对货物清单 5、核查、核销 6、预
警检查
7、创建
8、创建
4、交互图 ___协作图
以下是“履约合同检查”用例要完成的工作,依据此工作,
绘制其协作图。
,履约合同”用例开始,对全部销售合同循环依次检查是
否履约,对已履约的合同标识履约标志。对销售合同中往年的
履约合同进行复制,再把复制的履约合同作为持久对象存储
到“历年履约合同”数据库。
对象的处理 消息发送者 消息接受者 传递消息 返回消息
对履约合同进行检查 合同管理员 合同管理窗口 口令密码 口令密码正确与否
对所有合同依次进行
循环处理 合同管理窗口 销售合同
销售合同
处理
销售合同处
理完毕或出
错
对已履约合同标识履
约标志 销售合同 销售合同
标识履约
标志
标识完毕或
出错
复制往年的履约合同 销售合同 往年已履约合同
复制往年
已履约合
同
复制完毕或
出错信息
把复制的履约合同存
入数据库
往年已履约合
同
履约合同数据
库接口
存储持久
履约合同
存储完毕或
出错
(1)确定交互涉及的对象
(2) 绘制协作图
合同管理窗口
往年已履约
合同
履约合同
数据库接口
销售合同
1、启动系统
2、合同处理
3、检查并标识履约合同
4、复制已履约合同
5、已履约合同存入数据库
合同管理员
课堂练习,
1、请根据上例“处理付款单”用例的顺序图绘
制相应的协作图。
2、请根据上例“履约合同检查”用例的协作图,
绘制相应的顺序图
销售合同管理系统中”付款处理”的协作图
付款单
销售合同
管理窗口
销售货物
清单
销售合同
出库单 库存预警
清单
存货项目
1、启动系统
合同管理员
2、处理
3、核对销售合同
4、核对货物清单
5、核查 \核销
6、预警检查
8、创建 7、创建
销售合同管理系统中”履约合同检查”的顺序图
销售合同
管理窗口 销售合同
往年已履约
合同
履约合同
数据库接口
1、启动
2、合同处理 3、已履约合同检查并标
识
4、复制到已履
约合同中
5、存入数据库
6、状态图
? 状态图和活动图描述对象接收到消息之后,对象内部的逻辑转化。
?状态图表示一个对象状态变化的历程;
?活动图以一个事件为主线索,表示几个相关对象状态的联系。
订单调出
订单分发 订单存档
订单入座 订单填写
“订单”类的状态图
1、对象的状态图符
状态名
状态变量
活动
在该状态时要执
行的事件和动作
状态所描述
的类的属性
迁移
并发分劈 并发接合
条件判断
条件 A
条件 B
条件 C
起始
状态
结束
状态
并发状态:描述对象的同步工作状态图。分劈
表示一个源状态分劈为多个目标状态,多个目
标状态是并行迁移的;接合表示将多个源状态
接合为一个目标状态,多个源状态是并行迁移
的。
2、对象的状态
对象一些关键属性影响着对象的行为,并决定对象所处的状态。对确
定对象状态有重要意义的属性称为状态属性。
建立状态模型时,正确寻找一个对象的全部状态属性,并据此划分对
象状态。
设备
使用时间
设备状态
使用中
报废 闲置
维修中
修好
损坏
多余 重新
使用
超过年限
不能
修好
3、嵌套状态
在一个状态图符的活动区还画有一个或多个状态图,称为嵌套状态,
被嵌套的状态称为子状态。
报废
闲置
维修中 使用中
待机
提速
运行
减速
启动
开机
到达运行速度
停机
修好
损坏
重新使用
超过年限
不能修好
多余 设备操作
状态
4、并发状态与同步
签定销
售合同
催款
发货
付款检
查
产品检
查 合同生效
有库存
已付款
未付款
有库存且
已付款
7、活动图
1、活动图与状态图 的异同
? 活动图用来表示一个操作所需要的活动,是描述对象之
间互动关系的另一种方法。
?活动图表示对象的各个动作及其之间的关系
活动图与状态图的区别,
活动图中的状态称为动作状态。动作状态迁移不需要事件
触发,当动作状态中的活动完成时,迁移被触发,进入下一
个动作状态。
核对付
款单
检查合同
定单项
制作并发
放缺货单
排除未付
款合同 核对合 同
更新库
存
制作并发
放出库单 制作并发放生产单
未付款
缺货 有货
已付款
“处理付款单”用例的活动
图
2、相关概念
?动作状态:表达不可中断的动作或操作的执行 ;
?动作流:一个实例的不同动作状态之间的联系,说明动作
状态之间的控制流。
?泳道:代表对象对活动的责任
签订销售合同
核对合同
制造并发放出库单
核对货物清单
发货
合同履约
核对付款单
未付款 缺
货
有货
销售合同从签订到
履约的活动图
仓库管理 合同管理 财务管理
3、并发与同步活动
?一个动作状态迁移可以分劈成两个或多个并行的动作状态;
?若干个并行动作的迁移也可以合并成一个迁移。合并之前,
并行迁移上的动作必须全部完成;
?动作的分劈和同步接合要成对出现。
4、例 ——金融机构综合管理系统中“信贷管理”
子系统的动态模型分析
( 1)用例图
违约处理
客户
财务系统
信贷管理员
增加合同
分期还贷登记
发放贷款
打印催款单
履约合同检
查
客户调查
( 2)对象图
该子系统涉及如下对象,
?信贷管理窗口;
?客户信用调查及风险分析表;
?客户;
?贷款合同;
?发放贷款登记表;
?分期还款登记表;
?抵押清单;
?催款单;
?违约记录,等。
( 3)交互图
针对每一个用例,可绘制顺序图或协作图。
( 4)状态图和活动图
?状态图:描述一个对象所经过的状态序列,引起状态
迁移的事件。
?活动图:描述从一个活动到另一个活动的控制流。
?交互模型描述系统中若干对象共同协作完成某一项工作。
?状态图为某个对象在其生命周期的各种状态建立模型。
5、建立状态模型的步骤
① 确定状态图描述的主体,例:整个系统、一个用例、
一个对象;
② 确定状态图描述的范围:起始状态和结束状态;
③ 确定描述主体在其生存期的各种稳定状态;
④ 确定触发状态迁移的事件;
⑤ 审核状态图,保证图中所有事件都按设计要求触发
并引起状态迁移。
例 1:绘制“信贷管理子系统的全局用例”的状态图
“信贷管理”子系统要完成的工作,
首先对要求贷款的客户进行信用调查,如果该客户信
用等级低,不能对其贷款;如果该客户信用等级高,
可以与之签订信贷合同,财务部门向其发放贷款。
客户按合同约定,定期返还一定额度的本息。信贷
管理员随时检查客户是否按时交还款,如果每次均
按时还款,直到合同履约完毕,该贷款合同终止。
当信贷管理员发现客户偶尔没有按时交还款时,则
应及时打印催款单,如果发现客户无还款能力,则
对其进行违约处理。
客户信
用调查
签订信
贷合同
发放贷
款
分期还
贷登记
合同履
约检查
合同履
约 打印催 款单
违约处
理 信用高
信用低
合同生效
正常执行合同
有欠款
多次拖欠
正常
练习:绘制“分期还款登记表”对象的状态图
该对象可能的状态序列、动作和引发状态迁移的事件如下,
状态 动作 事件
起始状态 迁移进入 "初始化 "状态
初始化状态 对还款额、时间间隔、履约标志等进行初始化 当客户交款时间发生时
分期还款状态
记录还款额以及累计额,设置相应
的, 违约预警, 和, 违约警告, 标
志
事件 1:当还款额 =应还额,触发迁移进入
,合同履约, 状态
事件 2:超时未还,且, 违约预警, 标志为
0,进入, 违约预警, 状态
事件 3:超时未还,且, 违约预警, 标志为
1,进入, 违约警告, 状态
违约预警状态 设置, 违约预警, 标志为 1,无事件,自动迁移进入提示 1
违约警告状态,违约警告, 标志置 1 无事件,自动迁移进入提示 2
合同履约状态 履约标志置 1,并对客户的信用进行登记 无事件,自动迁移进入提示 3
提示信息 1 显示, 客户已有一次拖欠,注意, 无事件,自动迁移进入结束状态
提示信息 2 显示, 客户已有多次拖欠,警惕, 无事件,自动迁移进入结束状态
提示信息 3 显示, 客户已履约,合同终止, 无事件,自动迁移进入结束状态
结束状态 无动作 无事件
初始化
提示信
息 2
提示信
息 1
违约警
告 违约预 警
分期还
款
提示信
息 3 合同履 约
客户交款
客户全部贷
款归还完毕
有欠款
欠款 1次 欠款多次
6、建立活动模型的步骤
活动图描述活动的序列,反映从一个活动到另一个活
动的控制流。
活动图的建模步骤如下,
? 确定对象,找出负责完成整个活动的对象;
? 确定范围,明确活动的起始和结束;
? 确定整个活动的动作序列,说明随工作流变化发生的
动作;
? 确定迁移,找出连接动作状态的迁移。
活动图的建模元素可以是:类、接口、用例、构件、节
点等。最常见的是为类中的一个操作附加一个活动图,此
时,活动图是该操作的流程图。
例 2:绘制“信贷管理“子系统带泳道的活动图
签定合同 发放贷款 分期还款
欠款
欠款 恶意欠款
履约
贷款合同 发放贷款
登记表
分期还款
登记表
催款单 违约记录 合同 履约
“选修课管理”子系统要完成的工作,
首先由教学管理人员发布新学期的选修课程,学生据
此选择新学期的选修课程。在选课截止时间之后,
教学管理人员根据学生选课情况,形成初始课程表,
并发给教师进行确认。教师提出修改意见,教学管
理人员据此对课表进行调整,形成最终课表。
练习:绘制“选课管理“子系统带泳道的活动图
本例中,根据“课程表”对象在整个选课用例执行过程
中的状态变化,绘制其状态图。
发布选课表
形成初始课表
修改并确认
选课
形成最终课表
教学管理人员 学生 教师
课表初始化
最终课表 初始课表
选课状态 公布选修课时间
选课截止时间到
或选修课人满
确认或修改意见
8,UML图表的组织 ——包
一个复杂系统有很多类图,类图之间又有很多关联,
形成复杂的网络。为了清晰、简洁地描述一个复杂系统,
通常将它分解成若干个较小的子系统,形成一个描述系
统的结构层次。
包是 UML的模型元素,包可以包含其他包和类,包
之间可以有依赖、继承等关系,包是一种分组机制,将
模型元素组织成相关的组,包中拥有的所有元素称为包
的内容。
包的例子
进销存,:销售
销售单
财务统计表
售后服务单
1、包的嵌套
包图中又包含包,称为包的嵌套。
原材料购进管理
产成品存储管理 原材料存储管理
销售管理
企业综合系统,:进销存
接收 调用
2、包之间的关系
包之间有依赖和继承关系。
?依赖:两个包中的对象类之间有依赖关系,则两个
包有依赖。
?继承:包之间的继承关系描述了系统的接口。
销售管理 产成品存储管理
数据库接口
Oracle接口 Sybase接口
企业综合系统,:进销存
调用
调用 调用
3、系统包图举例
“企业综合管理系统”的有关包图。
( 1)与企业综合管理系统相关的包
用户接口
企业综合
管理系统 出错处理 数据库
( 2)企业综合管理系统包含的子系统
财务管理系统
生产调度管理系统 人力资源管理系统
进销存管理系统
企业综合管理系统
使用
使用
使用
出入库
资金往来
( 3)进销存管理系统包所包含的类
合同管理系统
购进合同
销售合同
合同
合同统计
仓库管理系统
入库单
出库单
库存管理器
库存单
进销存管理,:企业综合管理
四、建模后期工作
1、核对数据流
( 1)数据元素的检查
( 2)逻辑数据流及其约定
( 3)数据流的分合
? 分数据流:可“分裂”为多个数据流,并分别去往不同的目的地。
?合数据流:多个数据流混合成一个单一的数据流。
?利用数据流的分合,便于绘制分层数据流图,简化上层数据流图
对数据流的描述。
客户 处理订单
例:合成数据流和基本数据流
高层数据流图
订单 接受了的订单
客户
处理委托单
处理标准单
处理加急单
接受了的订单 订单
委托订单
加急订单
标准订单 标准单
加急单
委托单
输出分数据流 输出合数据流
( 4)数据流守恒
?数据流守恒:数据流只接收过程所真正需要的数据。
?要实现数据流守恒,须准确定义每个数据流的数据组成。
?数据流包含的数据项称为属性,将属性组织起来,成为数据结构。
数据结构中使用的描述符号,
?“=”:表示“构成”、“组成”
?,+”:表示“和”,以及标示顺序
?,[…]”,表示只出现其中一个属性
?,{…}”,表示其中属性在一个数据流实例中出现多次。
?“( … )”:表示其中属性为可选
( 5)域
?属性包括两方面含义:数据类型和域
?数据类型:定义属性中数据的类型;
?域:定义属性可取的合法值。
( 6)数据存储
?数据存储即为数据文件或数据库;
?每个数据对象或数据实体有一个数据存储;
?应先建立数据模型,再建立过程模型。
2、书面说明文档
( 1)说明文档内容的组织
( 2)使用合适的商业风格
( 3)口头陈述的准备
3、系统模型的同步
( 2)过程分配
( 1)数据和过程模型的同步
一、过程模型的概念
三、用 UML动态建模方法进行过程建模
二、建立过程模型的步骤
四、建模后期工作
一、过程模型的概念
1、系统的逻辑模型和物理模型
逻辑模型独立于技术实现,阐述系统本质,描述系统“是什么”、“做什么”
又称:基本模型、概念模型、业务模型。
(1)逻辑模型
逻辑模型描述业务需求,物理模型描述技术设计
?逻辑模型消除系统在具体实现时产生偏差;
?逻辑模型减少因过份注重细节而遗漏业务需求的风险;
?逻辑模型便于使用非技术语言与用户交流
(2)逻辑模型
又称:实现模型、技术模型;
说明系统在物理上和技术上是如何实现的,受限于具体技术选择。
(3)过程模型 (Process)
一种用来组织和记录系统过程中的数据结构和数据流、以及系统过
程中使用的处理逻辑、方法和程序的方法。
2、过程建模的系统工程理论
( 1)系统与过程
? 系统的基本特征是:输入、处理(过程)、输出;
? 系统分析的本质是使用模型观察或呈现系统。
? 过程(又称:转换),是对输入数据流或环境进行操作或做出反馈
( 2)过程分解
? 分解是将一个复杂系统分成若干个子系统;
?结构化方法是面向功能分解;
?面向对象方法是通过泛化、聚类等关系操作进行分解。
? 过程分解是把一个系统要完成的功能视为一个从总过程划分到各个
层次的子过程的行为。
?过程分解最后构成一份层次清晰的树状结构。
1.0系统
1.1.2任务
1.2功能 B
1.1.1任务
1.1功能 A
( 3)逻辑过程和约定
? 逻辑过程注重说明哪些操作或行为必须执行,但并不关心系统是如何
实现。
?逻辑过程的命名依赖于在流程图中所处位置以及过程的类型。
?有三种逻辑过程:功能过程、事件过程、基本过程。
功能过程
?功能过程是进行业务处理时的一组相互关联和连续的活动。没有开始
湖结束。例如:生产计划。
?每个功能过程包含若干个完成特定活动和任务的独立子过程。
事件过程
?事件过程是完成整体工作的一个逻辑单位。
?事件过程由离散输入触发,过程给出相应输出时结束。有开始与终止。
?功能过程由一组事件过程组成。例:原材料管理功能有若干事件。
功能 1
业务事件 n 业务事件 2 业务事件 1
基本过程 n 基本过程 2 基本过程 1
基本过程
?基本过程是完成事件响应所需的离散、详细的行为或任务。
?基本过程位于过程模型的最底层。
?基本过程的命名采用动宾结构,如,检验客户身份。
逻辑过程包含哪些过程?
?执行计算;
?做出决定;
?挑选,过滤或整理数据;
?把数据组织成有用的信息;
?触发其他的过程;
?使用存储数据
3、过程逻辑的描述
?确定系统过程采用分解图和数据流图,并对数据流图内部处理
逻辑进行说明。
?描述工具应既易于理解;又具有逻辑严密性。
( 1)结构化英语
?基本结构有:顺序结构、决策结构(分支结构)、迭代结构(循环结构)
?在过程逻辑方面的约束;
?优点:清晰地描述条件和行动。
( 2)决策树
表示条件和相应行动的树状结构 折扣条件
购货 ﹤ 5万元 购货 ≥5万元
有欠款 无欠款
交易时间 ≥10年 交易时间 ﹤ 10年
折扣 15% 折扣 10% 折扣 5% 折扣 0% 行动
条件
( 3)决策表
显示条件和行动的一个行列矩阵
输入条件
国内航班 Y Y Y Y N N N N
售出过半 Y Y N N Y Y N N
票价 ≥ 350美元 Y N Y N Y N Y N
输出结论
免费鸡尾酒 X X X
收费鸡尾酒 X
( 4)几种工具的比较
?决策树适用于复杂程度一般的决策。
?决策表适用于含有 5~6个条件的复杂组合;
?结构化英语适用于具有判断和循环动作执行的问题;
?决策树与决策表也可用于其他阶段或其他学科
二、建立过程模型的步骤
1、生命周期各个阶段的过程建模
( 1)系统规划阶段的过程建模
?规划阶段的过程模型就是 企业流程模型;
?企业流程模型用于识别业务域和系统功能;
?业务域和功能要进行优先级排序。
( 2)业务流程再造阶段的过程模型
?业务流程再造就是对企业业务流程进行根本性的再思考和彻底的重新设计
?业务流程再造通常结合数据流图,每种 BPR方法有其自己的过程符号。
( 3)系统分析阶段的过程建模
?系统分析阶段进行过程建模是结构化分析方法的重点。
?常用“事件分割”的策略进行逻辑建模。
?事件分割基于业务事件以及事件响应将一个系统分解为多个子系统。
建立系统关联图
做出功能分解图
建立事件关联图
组合成系统数据
流图
建立各个事件的
数据流图
建立事件列表
将所有事件图利
用数据流作为接
口合并起来
说明系统与
周围环境的
主要接口
列出系统必须
响应的所有业
务事件
对功能分解图中
的每个事件都添
加一个处理
将系统分解为
逻辑子系统或
各种功能
将每个处理进一步
细化,列出基本处
理、数据存储、数
据流
例:配送中心管理信息系统的过程模型
1、建立系统关联图
客户
管理人员
供应商 配送中心
信息系统
PSZX
预算报表 资产平衡表
支付供应商
发货单
供应商发票
付款
订单
发票
送货单
拒绝订单通知
2、功能分解图
配送中心信息系统
订单处理
子系统
帐目管理
子系统
采购管理
子系统
库存管理
子系统
配送管理
子系统
3、建立事件列表
事件描述 触发器 来源 动作 响应 目的地
客户发出订单 新订单 客户 生成新订单
实时连接 信用部
订单确认 客户
订单明细 配送部
客户修改或取
消订单
订单修改请
求 客户 修改订单
修改确认 客户
修改细节 配送部
潜在客户索取
商品目录
索取商品目
录的请求 潜在客户
提供商品目
录信息 商品目录 潜在客户
配送部门处理
缺货订单 缺货订单 配送部门
通知客户缺
货情况 缺货通知 客户
……… ……… ……… ……… ………, ………
4、建立事件关联图
配送中心信息系统
订单处理
子系统
帐目管理
子系统
采购管理
子系统
库存管理
子系统
配送管理
子系统
事件 1 事件 6 事件 3 事件 2 事件 m 事件 n
5、组合成系统数据流图
客户 订单处理
PSZX1
客户文件
管理人员
供应商
库存管理
PSZX4
采购管理
PSZX 3
配送管理
PSZX5
帐目管理
PSZX2
出库单文件
库存文件
采购订单文件
销售订单文件
车辆数据文件
司机文件
新客户 订单
拒绝通知
资产平衡表
预算表
客户 发票
客户信息
采购订单
更改信息
发货单
送
货
单
送货确认
仓库人员
财务人员
库存报表
已完成订单
5、绘制分层数据流图 ___订单处理子系统
销售订单校验
PSZX1.1
缺货订单处理
PSZX1.3
客户数据管理
PSZX1.2
客户文件
库存文件
缺货订单文件
销售订单文件
客户
新客户数据
新客户
销售订单 订单拒绝通知
合格订单
缺货数据
缺货订单
课堂练习,
请在上例的基础上,仿照订单处理子系统数据流图的绘制,
完成采购管理、库存管理、配送管理三个子系统的分层数据
流图。
采购管理子系统
供应商
制定采购计划
PSZX3.1
制作订单
PSZX3.2
跟踪订单执行
情况
PSZX3.3 供应商信息管
理
PSZX3.4
库存文件
供应商数据文件
采购订单文件
入库商品文件
采购计划
在库商品信息
供应商信息
供应商信息更改
采购订单
供应商数据
财务人员
已完成订单
库存管理子系统
入库管理
PSZX4.1 出库管理
PSZX4.3
在库商品信息
管理
PSZX4.2
供应商
仓库人员
采购订单文件
库存文件
销售订单文件
出库单文件
发货单
入库商品数据
库存报表
出库信息
出库单
配送管理子系统
制定配送计划
PSZX5.1
路单执行情况
PSZX5.3
制作送货单
PSZX5.2
客户
客户文件
车辆数据文件
司机文件
销售订单文件
出库单文件
配送计划
送货单
收货确认
路单
2、数据流图
( 1)数据流图的基本元素
外部实体
数据存储
处理逻辑
数据流
( 2)数据流图和抽象层次
数据流图可用于描述系统的不同层次。高层次数据流图的过程可分解为低
层次,更详细的数据流图;下一层的数据流图可进一步分解。
( 3)数据流图的绘制
自顶向下地绘制分层数据流图
按由外到内和数据流动方向详细描述 4个要素
给图中各元素加以命名
对图以及图中各个元素加以编号
( 4)数据流图片段
?为事件列表中每个事件建立的数据流图为数据流图片段
?数据流图片段显示系统如何响应某个事件
市场部 制定销售计划 产品目录
产品数据
顾客 订购货物
产品目录
顾客名单
待售货物
销售部 产生顾客列表
产品目录
顾客名单
待售货物
登记货物
到货通知
顾客列表
顾客购物系统的数据流图片段
( 5)物理和逻辑的数据流图
?数据流图既可以是物理模型,也可以是逻辑模型;
?是物理或逻辑模型,取决于模型的使用者以及其考虑问题的出发点;
?若作为物理模型,需增加具体实现方面的细节。(如:特定的技术
过程、特定参与者的名称、特定过程的顺序、冗余的过程 /数据流 /文
件等)
( 6)数据流图和业务流程图的区别
?数据流图中的过程可以并行操作;业务流程图的过程每次只能执行一个
?数据流图显示系统中的数据流,循环和分支不在图中表示;流程图显示算法
或程序操作顺序。
?数据流图显示具有不同执行时间的各个过程。
( 7)数据流图的用途及其优缺点
用途
?分析人员可用它自顶向下分析系统信息流程;
?可在图上画出需要计算机处理的部分;
?可根据数据存储,进行数据分析,向数据库设计过渡;
?根据数据流向,决定存取方向;
?对每个处理过程,可用相应工具表达处理方法。
优点
?总体概念强;
?反映出数据的流向和处理过程;
?自顶向下分析,易于发现系统各个部分的逻辑
?易于与计算机处理相对应
缺点
?不直观;
?需计算机帮助绘制
3、数据流图的质量
高质量数据流图:可读、内部一致、准确表达系统需求
( 1)尽量减少复杂性
( 2)尽量减少接口
( 3)数据流一致性
单个数据流图中的过程在 5__9个之间,
接口是问题描述中一部分与其他部分的连接,在数据流图中,数据
流是过程的接口。对数据流图的每一部分,接口应在 5___9之间。
高层的数据流入 /出与低层的数据流入 /出应一致。流入的数据必有用;
流出的数据必有依据。
绘制学生选课系统的数据流程图。
课程执行计划
学生
教务处
教师
检验选课
单
XK2
登记成绩
XK6
调整课表
XK5
安排课程
XK4
建立班级
XK3
制定课程
执行计划
XK1
学生文件
班级文件
教师文件
教室文件
执行课表
课表
确认的课表
执行课表
计划
信息
课程信息 课程
执行
计划
选课单
不合格的选课单
合格的选课单
班级数据
成绩单文件
执行
课表
教室数据
教师数据
班级信息 1
学生成绩单
成绩录入
课堂练习
构造下列业务的数据流图,
一个网上书店实施个性化信息服务,即根据客户购书和基本情况,
向其提供及时的图书信息。系统包括客户基本信息,客户购书历史记
录和书店图书目录。 系统业务流程如下,
首先,当客户登录书店网站,对于老客户,只要输入客户号和密
码;对于新客户,需填写基本情况信息,然后注册。其次,对于成功
登录的老客户,系统根据其购书的历史记录,从新到图书目录中查找
客户可能感兴趣的书目,并主动推荐给客户;允许老客户查询其他图
书。第三,对于新客户,除了主动推荐新书外,也可查询整个图书目
录。
三、用 UML动态建模方法进行过程建模
1,UML过程建模的步骤
? 过程 是系统相关对象在消息的启动下,自身的行为活动,以及这些
活动引起的自身状态和其他相关对象状态的改变。
?消息 是发送对象要求目标对象执行某一操作的请求。
?用例图 确定谁向谁发送消息。
?顺序图、协作图 涉及消息传送过程。
?状态图、活动图 涉及消息传送造成的后果。
数据建模
结构化方法
过程建模
UML方法
动态建模
静态建模
状态图
UML过程建模步骤
建立系统用例图
具化 /泛化用例图
事件 -消息关联表
建立系统类图
和对象图
层层细化场景的
顺序图和协作图
活动图
建立事件列表
静态模型 —数据建模
动态模型 —过程建模
2、建立类图(对象图)和系统用例图
? 用例图 提供系统概貌,确定系统初始范围。
?将系统想象为容器,以便区分系统外部和内部;
?确定系统必须做出响应的“业务消息”
?确定系统必须产生的“响应”
?注意,参与者与用例之间的联线表示消息的方向;
?系统之外的其他系统或文件,也是参与者
类图、对象图略
VIP服务
VIP成员
潜在 VIP成员
原有 VIP成员
VIP帐户
市场部
库存
服务项目库
3、系统用例图的具化
具化和泛化是面向对象中对过程的分解方法。
VIP服务
VIP订购服务 VIP操作服务 VIP签名服务 VIP促销服务
生成签名报表
处理签名
生成促销报表
处理销售事物
处理成员身份 生成订购单
处理订购事物
处理促销事物
生成促销报表
? 用例图不显示数据流;
?子用例分解依据类图和事件列表。
?分解细化的层次由事件 —响应列表确定
4、建立事件响应列表
目的是:确定系统必须对哪些事件做出响应;怎样响应是正确的。
事件 触发器 来源 动作 响应 目的地
客户想确定可用
商品的信息 商品查询 客户 查询可用商品 可用商品细节 客户
5、绘制事件交互图
? 交互图是顺序图和协作图。
?协作图强调对象交织在一起支持一个用例;
?顺序图强调消息本身的细节。
( 1)顺序图绘制步骤
? 确定所有与场景有关的对象和活动者;
?基于事件流,确定每一个需要用于完成场景的消息;同时识别对象
的源对象、目的对象;
?决定是否总是发送还是有条件发送每一个消息;
?正确地为这些消息排序,并加入到生命线上;
?给消息加上形式化的语法,以描述条件、消息名称和要传递的参数
例 1:交互模型的例子
1、客户提出购买请求
2、公司记下客户信息
3、公司告知客户货物的规
格、价钱
4、客户确认定货
5、公司产生一个新定单
6、客户付款
7、公司送货给客户
用例“订货”的场
景
场景有关的对象 ?交互界面 ?客户
?仓库
?定单
?计算定单
场景的消息 消息 1,
?名称:请求
?参数:货物、金额
?发送方:客户
?接受方:交互界面
消息 8,
?名称:送货请求
?参数,
?发送方:定单
?接受方:仓库
1、请求
2、创建客户
3、仓库存货验证请求
4、计算货单金额请求
5、显示计算结果
6、购买确认
7、记录客户定单
8、送货请求
消息列表
绘制顺序图
客户 交互界面 定单 计算定单 仓库
1、请求
2、创建
7、增加定单
3、验证
5、显示金额
6、确认定单
4、计算请求
8、送货请求
客户
绘制协作图
客户
交互界面
定单
计算定单
仓库
1、请求
2、创建
7、增加定单
3、验证
5、显示金额
6、确认定单
4、计算请求
8、送货请求
协作图中,结点表示对象,连线表示消息
教学管理员
教师
学生
财务系统
选修课注册
选修课管理
选修课信息汇总
选修课查询
教师简历查询
选修课管理子系统的用例图
练习,学生选课系统的交互图
选修课管理子系统的对象类图
教学管理人员
课程表
选修课程
学生
教师
班级
0..*
1
1
1
.*
.*
.*
*
*
1
* *
课堂练习,
1、请绘制“选修课注册”的顺序图和协作图。根据自己的
使用经验,想象“选修课注册”要完成的工作,分析涉及
到的对象,以及对象之间的交互关系。
交互界面 学生 课程表 选修课程
选修课注册的顺序图
1、注册请求
2、验证学生
3、验证课程
4、选课
5、增加选课记录
班级
6、加入班级
选修课注册的协作图
学生 交互界面
选修课程 课程表
1、注册请求
2、学生验证
3、课程验证 4、选课 5、增加选课记录
班级
6、加入班级
例 2:销售合同管理系统动态交互模型的建立
1、用例图
增加合同
修改合同
履约合同检查
处理付款单
打印催款单
客户
财务系统
合同管理员
2、对象图
合同管理
窗口
付款单
存货项目
销售合同
销售货物
清单
库存预警
清单
客户
出库单 催款单
履约合同
1..*
1
1
1
1
*
*
*
1..* 1..*
1..*
1
*
1
3、交互图 ___顺序图
以下是“处理付款单”用例要完成的工作,依据此工作,绘
制其顺序图。
,处理付款单”用例开始,对财务处传来的多个付款单依
次与相应的销售合同进行核对。核对无误后,将每个合同销
售的货物清单与仓库的存货进行核对,如果货物的数量、金
额、品种满足合同要求,在仓库的对应存货项目中核销相应
的数量;在核销的同时,仓库对这些存货项目进行自我检查,
是否存货数量少于预警线,如果少于预警线,打印预警货物
清单。根据销售合同核销货物的数量、金额、品种打印出库
单,客户可以持出库单到仓库提取货物。
对象的处理 消息发送者 消息接受者 传递消息 返回消息
对财务处发来的 "付款单
"进行处理 合同管理员 合同管理窗口 口令密码
口令密码正
确与否
对付款单进行处理 合同管理窗口 付款单 付款处理 付款单处理完毕或出错
付款单与销售合同进行
核对 付款单 销售合同 核对合同
合同核对完
毕或出错
核对合同的销售货物清
单 销售合同 销售货物清单
合同中销售
货物的核对
核对完毕或
出错信息
核对库存中是否有销售
合同中的货物清单 销售货物清单 存货项目
需核对的存
货项目
核对完毕或
出错
检查库房中某些货物的
存储量是否小于预警线 存货项目 存货项目 预警线域值
库房某些货物存量小于
预警线,打印预警清单 存货项目 库存预警清单 小于预警量
打印完毕或
出错
核对库房是否有销售合
同中的货物清单,有则打
印出库单
销售货物清单 出库单 有存货则打印 打印完毕或出错
(1)确定交互涉及的对象
合同管理
窗口
(2)绘制顺序图
付款单 销售合同 销售货物 清单 存货项目 库存预警 清单 出库单
1、启动
2、处理
3、核对
销售合同 4、核对货物清单 5、核查、核销 6、预
警检查
7、创建
8、创建
4、交互图 ___协作图
以下是“履约合同检查”用例要完成的工作,依据此工作,
绘制其协作图。
,履约合同”用例开始,对全部销售合同循环依次检查是
否履约,对已履约的合同标识履约标志。对销售合同中往年的
履约合同进行复制,再把复制的履约合同作为持久对象存储
到“历年履约合同”数据库。
对象的处理 消息发送者 消息接受者 传递消息 返回消息
对履约合同进行检查 合同管理员 合同管理窗口 口令密码 口令密码正确与否
对所有合同依次进行
循环处理 合同管理窗口 销售合同
销售合同
处理
销售合同处
理完毕或出
错
对已履约合同标识履
约标志 销售合同 销售合同
标识履约
标志
标识完毕或
出错
复制往年的履约合同 销售合同 往年已履约合同
复制往年
已履约合
同
复制完毕或
出错信息
把复制的履约合同存
入数据库
往年已履约合
同
履约合同数据
库接口
存储持久
履约合同
存储完毕或
出错
(1)确定交互涉及的对象
(2) 绘制协作图
合同管理窗口
往年已履约
合同
履约合同
数据库接口
销售合同
1、启动系统
2、合同处理
3、检查并标识履约合同
4、复制已履约合同
5、已履约合同存入数据库
合同管理员
课堂练习,
1、请根据上例“处理付款单”用例的顺序图绘
制相应的协作图。
2、请根据上例“履约合同检查”用例的协作图,
绘制相应的顺序图
销售合同管理系统中”付款处理”的协作图
付款单
销售合同
管理窗口
销售货物
清单
销售合同
出库单 库存预警
清单
存货项目
1、启动系统
合同管理员
2、处理
3、核对销售合同
4、核对货物清单
5、核查 \核销
6、预警检查
8、创建 7、创建
销售合同管理系统中”履约合同检查”的顺序图
销售合同
管理窗口 销售合同
往年已履约
合同
履约合同
数据库接口
1、启动
2、合同处理 3、已履约合同检查并标
识
4、复制到已履
约合同中
5、存入数据库
6、状态图
? 状态图和活动图描述对象接收到消息之后,对象内部的逻辑转化。
?状态图表示一个对象状态变化的历程;
?活动图以一个事件为主线索,表示几个相关对象状态的联系。
订单调出
订单分发 订单存档
订单入座 订单填写
“订单”类的状态图
1、对象的状态图符
状态名
状态变量
活动
在该状态时要执
行的事件和动作
状态所描述
的类的属性
迁移
并发分劈 并发接合
条件判断
条件 A
条件 B
条件 C
起始
状态
结束
状态
并发状态:描述对象的同步工作状态图。分劈
表示一个源状态分劈为多个目标状态,多个目
标状态是并行迁移的;接合表示将多个源状态
接合为一个目标状态,多个源状态是并行迁移
的。
2、对象的状态
对象一些关键属性影响着对象的行为,并决定对象所处的状态。对确
定对象状态有重要意义的属性称为状态属性。
建立状态模型时,正确寻找一个对象的全部状态属性,并据此划分对
象状态。
设备
使用时间
设备状态
使用中
报废 闲置
维修中
修好
损坏
多余 重新
使用
超过年限
不能
修好
3、嵌套状态
在一个状态图符的活动区还画有一个或多个状态图,称为嵌套状态,
被嵌套的状态称为子状态。
报废
闲置
维修中 使用中
待机
提速
运行
减速
启动
开机
到达运行速度
停机
修好
损坏
重新使用
超过年限
不能修好
多余 设备操作
状态
4、并发状态与同步
签定销
售合同
催款
发货
付款检
查
产品检
查 合同生效
有库存
已付款
未付款
有库存且
已付款
7、活动图
1、活动图与状态图 的异同
? 活动图用来表示一个操作所需要的活动,是描述对象之
间互动关系的另一种方法。
?活动图表示对象的各个动作及其之间的关系
活动图与状态图的区别,
活动图中的状态称为动作状态。动作状态迁移不需要事件
触发,当动作状态中的活动完成时,迁移被触发,进入下一
个动作状态。
核对付
款单
检查合同
定单项
制作并发
放缺货单
排除未付
款合同 核对合 同
更新库
存
制作并发
放出库单 制作并发放生产单
未付款
缺货 有货
已付款
“处理付款单”用例的活动
图
2、相关概念
?动作状态:表达不可中断的动作或操作的执行 ;
?动作流:一个实例的不同动作状态之间的联系,说明动作
状态之间的控制流。
?泳道:代表对象对活动的责任
签订销售合同
核对合同
制造并发放出库单
核对货物清单
发货
合同履约
核对付款单
未付款 缺
货
有货
销售合同从签订到
履约的活动图
仓库管理 合同管理 财务管理
3、并发与同步活动
?一个动作状态迁移可以分劈成两个或多个并行的动作状态;
?若干个并行动作的迁移也可以合并成一个迁移。合并之前,
并行迁移上的动作必须全部完成;
?动作的分劈和同步接合要成对出现。
4、例 ——金融机构综合管理系统中“信贷管理”
子系统的动态模型分析
( 1)用例图
违约处理
客户
财务系统
信贷管理员
增加合同
分期还贷登记
发放贷款
打印催款单
履约合同检
查
客户调查
( 2)对象图
该子系统涉及如下对象,
?信贷管理窗口;
?客户信用调查及风险分析表;
?客户;
?贷款合同;
?发放贷款登记表;
?分期还款登记表;
?抵押清单;
?催款单;
?违约记录,等。
( 3)交互图
针对每一个用例,可绘制顺序图或协作图。
( 4)状态图和活动图
?状态图:描述一个对象所经过的状态序列,引起状态
迁移的事件。
?活动图:描述从一个活动到另一个活动的控制流。
?交互模型描述系统中若干对象共同协作完成某一项工作。
?状态图为某个对象在其生命周期的各种状态建立模型。
5、建立状态模型的步骤
① 确定状态图描述的主体,例:整个系统、一个用例、
一个对象;
② 确定状态图描述的范围:起始状态和结束状态;
③ 确定描述主体在其生存期的各种稳定状态;
④ 确定触发状态迁移的事件;
⑤ 审核状态图,保证图中所有事件都按设计要求触发
并引起状态迁移。
例 1:绘制“信贷管理子系统的全局用例”的状态图
“信贷管理”子系统要完成的工作,
首先对要求贷款的客户进行信用调查,如果该客户信
用等级低,不能对其贷款;如果该客户信用等级高,
可以与之签订信贷合同,财务部门向其发放贷款。
客户按合同约定,定期返还一定额度的本息。信贷
管理员随时检查客户是否按时交还款,如果每次均
按时还款,直到合同履约完毕,该贷款合同终止。
当信贷管理员发现客户偶尔没有按时交还款时,则
应及时打印催款单,如果发现客户无还款能力,则
对其进行违约处理。
客户信
用调查
签订信
贷合同
发放贷
款
分期还
贷登记
合同履
约检查
合同履
约 打印催 款单
违约处
理 信用高
信用低
合同生效
正常执行合同
有欠款
多次拖欠
正常
练习:绘制“分期还款登记表”对象的状态图
该对象可能的状态序列、动作和引发状态迁移的事件如下,
状态 动作 事件
起始状态 迁移进入 "初始化 "状态
初始化状态 对还款额、时间间隔、履约标志等进行初始化 当客户交款时间发生时
分期还款状态
记录还款额以及累计额,设置相应
的, 违约预警, 和, 违约警告, 标
志
事件 1:当还款额 =应还额,触发迁移进入
,合同履约, 状态
事件 2:超时未还,且, 违约预警, 标志为
0,进入, 违约预警, 状态
事件 3:超时未还,且, 违约预警, 标志为
1,进入, 违约警告, 状态
违约预警状态 设置, 违约预警, 标志为 1,无事件,自动迁移进入提示 1
违约警告状态,违约警告, 标志置 1 无事件,自动迁移进入提示 2
合同履约状态 履约标志置 1,并对客户的信用进行登记 无事件,自动迁移进入提示 3
提示信息 1 显示, 客户已有一次拖欠,注意, 无事件,自动迁移进入结束状态
提示信息 2 显示, 客户已有多次拖欠,警惕, 无事件,自动迁移进入结束状态
提示信息 3 显示, 客户已履约,合同终止, 无事件,自动迁移进入结束状态
结束状态 无动作 无事件
初始化
提示信
息 2
提示信
息 1
违约警
告 违约预 警
分期还
款
提示信
息 3 合同履 约
客户交款
客户全部贷
款归还完毕
有欠款
欠款 1次 欠款多次
6、建立活动模型的步骤
活动图描述活动的序列,反映从一个活动到另一个活
动的控制流。
活动图的建模步骤如下,
? 确定对象,找出负责完成整个活动的对象;
? 确定范围,明确活动的起始和结束;
? 确定整个活动的动作序列,说明随工作流变化发生的
动作;
? 确定迁移,找出连接动作状态的迁移。
活动图的建模元素可以是:类、接口、用例、构件、节
点等。最常见的是为类中的一个操作附加一个活动图,此
时,活动图是该操作的流程图。
例 2:绘制“信贷管理“子系统带泳道的活动图
签定合同 发放贷款 分期还款
欠款
欠款 恶意欠款
履约
贷款合同 发放贷款
登记表
分期还款
登记表
催款单 违约记录 合同 履约
“选修课管理”子系统要完成的工作,
首先由教学管理人员发布新学期的选修课程,学生据
此选择新学期的选修课程。在选课截止时间之后,
教学管理人员根据学生选课情况,形成初始课程表,
并发给教师进行确认。教师提出修改意见,教学管
理人员据此对课表进行调整,形成最终课表。
练习:绘制“选课管理“子系统带泳道的活动图
本例中,根据“课程表”对象在整个选课用例执行过程
中的状态变化,绘制其状态图。
发布选课表
形成初始课表
修改并确认
选课
形成最终课表
教学管理人员 学生 教师
课表初始化
最终课表 初始课表
选课状态 公布选修课时间
选课截止时间到
或选修课人满
确认或修改意见
8,UML图表的组织 ——包
一个复杂系统有很多类图,类图之间又有很多关联,
形成复杂的网络。为了清晰、简洁地描述一个复杂系统,
通常将它分解成若干个较小的子系统,形成一个描述系
统的结构层次。
包是 UML的模型元素,包可以包含其他包和类,包
之间可以有依赖、继承等关系,包是一种分组机制,将
模型元素组织成相关的组,包中拥有的所有元素称为包
的内容。
包的例子
进销存,:销售
销售单
财务统计表
售后服务单
1、包的嵌套
包图中又包含包,称为包的嵌套。
原材料购进管理
产成品存储管理 原材料存储管理
销售管理
企业综合系统,:进销存
接收 调用
2、包之间的关系
包之间有依赖和继承关系。
?依赖:两个包中的对象类之间有依赖关系,则两个
包有依赖。
?继承:包之间的继承关系描述了系统的接口。
销售管理 产成品存储管理
数据库接口
Oracle接口 Sybase接口
企业综合系统,:进销存
调用
调用 调用
3、系统包图举例
“企业综合管理系统”的有关包图。
( 1)与企业综合管理系统相关的包
用户接口
企业综合
管理系统 出错处理 数据库
( 2)企业综合管理系统包含的子系统
财务管理系统
生产调度管理系统 人力资源管理系统
进销存管理系统
企业综合管理系统
使用
使用
使用
出入库
资金往来
( 3)进销存管理系统包所包含的类
合同管理系统
购进合同
销售合同
合同
合同统计
仓库管理系统
入库单
出库单
库存管理器
库存单
进销存管理,:企业综合管理
四、建模后期工作
1、核对数据流
( 1)数据元素的检查
( 2)逻辑数据流及其约定
( 3)数据流的分合
? 分数据流:可“分裂”为多个数据流,并分别去往不同的目的地。
?合数据流:多个数据流混合成一个单一的数据流。
?利用数据流的分合,便于绘制分层数据流图,简化上层数据流图
对数据流的描述。
客户 处理订单
例:合成数据流和基本数据流
高层数据流图
订单 接受了的订单
客户
处理委托单
处理标准单
处理加急单
接受了的订单 订单
委托订单
加急订单
标准订单 标准单
加急单
委托单
输出分数据流 输出合数据流
( 4)数据流守恒
?数据流守恒:数据流只接收过程所真正需要的数据。
?要实现数据流守恒,须准确定义每个数据流的数据组成。
?数据流包含的数据项称为属性,将属性组织起来,成为数据结构。
数据结构中使用的描述符号,
?“=”:表示“构成”、“组成”
?,+”:表示“和”,以及标示顺序
?,[…]”,表示只出现其中一个属性
?,{…}”,表示其中属性在一个数据流实例中出现多次。
?“( … )”:表示其中属性为可选
( 5)域
?属性包括两方面含义:数据类型和域
?数据类型:定义属性中数据的类型;
?域:定义属性可取的合法值。
( 6)数据存储
?数据存储即为数据文件或数据库;
?每个数据对象或数据实体有一个数据存储;
?应先建立数据模型,再建立过程模型。
2、书面说明文档
( 1)说明文档内容的组织
( 2)使用合适的商业风格
( 3)口头陈述的准备
3、系统模型的同步
( 2)过程分配
( 1)数据和过程模型的同步