3. 软件设计与 uml 简介
DESCRIPTION
3. 软件设计与 UML 简介. 目录. 3.1 面向对象的分析 3.2 UML 简介 3.3 UML 常用的图 用例图 类图 交互图、状态图、包图. 3.1 面向对象的分析. 分析面临的主要问题. • OOA 与 OOD 的界限 • 对问题域和系统责任的理解 • 人与人之间的交流 • 需求的不断变化 • 软件复用的要求. OOA 与 OOD 的界限. - PowerPoint PPT PresentationTRANSCRIPT
3. 软件设计与 UML 简介3. 软件设计与 UML 简介
2
目录
3.1 面向对象的分析
3.2 UML 简介
3.3 UML 常用的图 用例图
类图
交互图、状态图、包图
3
3.1 面向对象的分析
• OOA 与 OOD 的界限
• 对问题域和系统责任的理解
• 人与人之间的交流
• 需求的不断变化
• 软件复用的要求
分析面临的主要问题
4
OOA 与 OOD 的界限
• OOA :运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域和系统责任所需的对象,定义对象的属性和操作以及对象之间的关系,建立一个符合问题域,满足用户需求的 OOA 模型。
• OOA 不考虑与系统具体实现有关的因素,而将其留给 OOD 去处理,因此 OOD 包括两方面的工作:
1 )根据实现条件对 OOA 模型作某些必要的修改和调整。 2 )针对具体实现条件,建立人机界面、数据存储和控制
驱动等模型。
5
问题域和系统责任
• 软件分析人员必须尽快了解和明确: 1 )问题域 --- 被开发系统的应用领域,现实世界中, 要求
系统处理的业务范围。
2 )系统责任 --- 所开发的系统应该具备的功能。
• 问题域不等于系统责任,但它们有很多重合部分
金融业务
个人储蓄 代发工资
收费业务 贷款业务办公管理 数据备份
系统责任
问题域
6
人与人之间的交流
• 交流包括三部分人员之间: 1 )开发人员与用户(需求方)
2 )开发人员之间
3 )开发人员与管理人员
• 交流工具包括谈话和文档 用户文档,技术文档,管理文档
7
需求的不断变化
• 树立“需求变化是绝对的”的观念,从分析到设计,始终注意“易维护修改”这一原则。
• 需求变化时,最容易变化的是系统功能。在面向对象方法中,最容易变化的成分是对象中的操作,其次是对象间的交互与协作,第三是对象的属性。对象本身是相对稳定的。
• 隐蔽内部操作,抽取高层类,可以使系统稳定且易于应对需求变化。
8
3.2 UML 简介
UML 中文:统一建模语言UML 全称: Unified Modeling Language
UML 是一种定义良好、易于表达、功能强大的建模语言
UML 使用图形和文字来传递信息
9
UML 是什么
中国公民姓名性别民族
出生日期住址
身份证编号
签发日期有效期限签发单位
11 银行卡卡号
开户行地址
1 0..*
10
UML 能为我们做什么
UML 可以做软件需求分析UML 可以做软件开发设计UML 可以做系统部署设计UML 也适用非软件领域的系统建模如企业
机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。
11
UML 的发展和工具
UML 1.0 是在 1997 年完成UML 2.0 是在 2003 年完成UML 还在不断的完善和发展中能绘制 UML 图形的工具主要有 Rational Rose
PowerDesignerMS VisioArgoUMLStarUML
12
概述
用例图静态图(类图,对象图,包图)行为图(状态图,活动图)交互图(顺序图,协作图)实现图(组件图,部署图)
13
用例图
用例图描述系统提供的功能单元。参与者用例关联关系依赖关系继承关系
14
用例图
老师在线答疑系统需求描述 一个用于老师和学生之间进行即时沟通的系统。 系统由老师使用的老师端,学生使用的学生端和一个有公
网地址的登陆服务端组成。 老师登陆系统后会在老师列表中出现,并显示出他的专业、姓名、专长和状态是否忙等信息。也可以看到其他所有登录的老师的信息。
学生登陆后可以看到所有已经登录的老师列表。 学生可以选择一个不忙的老师进行问题咨询,和选择的老
师建立连接后就可以通过语音加白板和老师进行交流。此时其他学生将看到该老师处于忙的状态。
15
用例图
16
用例图
17
类图
类图表示不同的实体(人、事物和数据)之间的关系;换句话说,它显示了系统的静态结构。
类聚合继承
18
类图
通信协议中的数据包定义
19
老师和学生类的抽象
类图
20
类图
学生登陆类图
21
类图
老师登陆类图
22
包图
包图能将复杂系统拆分成多个简单的系统。
包
依赖
23
包图
系统的顶层包结构
24
包图
老师在线答疑系统包结构图
25
状态图
状态图表示某个类所具有的不同状态和状态转移时的触发条件。
状态 转移
26
状态图老师在线状态图
27
活动图
活动图用来描述工作的流程,对并行的工作流程能很好的支持。
活动转移同步
28
活动图
老师登陆系统
29
顺序图
顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
对象消息
30
顺序图
学生登陆系统顺序图
31
协作图
协作图用于描述相互合作的对象间的交互关系和链接关系。虽然顺序图和协作图都用来描述对象间的交互关系,但侧重点不一样。顺序图着重体现交互的时间顺序,协作则着重体现交互对象间的静态链接关系。
对象链接
32
协作图
学生登陆协作图
33
组件图
组件图显示软件组件之间的依赖关系。一般来说,软件组件就是一个实际文件,可以是源代码文件、二进制代码文件和可执行文件等。可以用来显示编译、链接或执行时构件之间的依赖关系
组件依赖
34
组件图
老师在线答疑系统组件图
35
部署图
配置图显示系统运行时刻的结构,显示系统不同的组件在何处物理地运行,以及它们将如何彼此通信
结点连接
36
部署图
老师在线答疑系统部署图
37
面向对象的分析模型目标:用规范的面向对象图表和文字来描述所要建造的软件系统,以便在用户与系统分析人员之间达成共识,同时使后续工作得以继续。
内容: 需求描述
Use Case 用况图
辅助模型
Sequence 交互图 Collaboration 协作图 State Transition 状态转换图 Component 包图
基本模型 Class类图
详细说明
对象层
关系层
特征层
38
面向对象的分析过程
分析过程中各个步骤不要求按固定顺序进行。所以,面向对象的分析步骤经常被叫做“活动”。
建立 Use Case
发现对象
定义属性与服务
建立结构与连接
定义:顺序图、
协作图、状态图
建立 Class详细说
明原型开
发
39
3.3 UML常用图
用例图( Use Case )作用:用于对系统的功能,以及与系统进行交互的外
部事物建模。
目的:通过寻找与系统交互的外部事物,说明他们与系统如何交互,可以使用户和开发者,对系统的理解达成共识。
建立 Use Case,从系统边界入手: 系统边界,是指系统成分与系统以外事物的分界。而系
统暂时是由一条边包围起来的未知空间,因此,建立 Use Case是从与未来系统进行交互的人员、设备或其他系统开始的,称之为“参与者”。
40
参与者定义:一个参与者定义了一组在功能上密 切相关的使用角色。当一个事物与系统交互时,该事物可以扮演这样的角色。
商场收款员
检查商品角色验证顾客信用卡角色收银角色
例 1 :
参与者可以请求系统提供服务,也可以接受系统的要求,并做出响应。参与者不是系统的一部分,它们位于系统之外。
操作员
信息录入角色信息利用修改角色
打印报告角色
例 2 :
41
参与者继承关系定义:如果一组参与者有共同的性质,把这些性质抽取在一个参与者中,这组参与者再从中继承。
网站访问者
例:
客户 网站职员
表示:
客户和网站职员对系统的请求是部分相同的。
42
如何识别参与者?
从人员、设备和外部系统三个方面考虑。 设备不包括系统内容设备,如显示器、键盘、鼠标等标准接口设备,而是指系统之外的系统使用设备,例如:传感器、受控马达等。
一些指导性策略:
• 谁是系统的启动者? • 怎样使用系统? • 系统的责任是什么? • 哪些参与者具有共同的行为?
43
用例( CASE )要点:
• 用来描述系统外在的、可见的功能需求; • 只描述做什么,不描述怎么做; • 多数是由参与者发起的动作,但也有由系统
发起的动作。例如:异常情况处理。
用例定义:一个用例描述系统的一项功能,把这样的功能描述为一组动作序列,为参与者产生可观察的结果,其中的每个序列表示参与者与系统本身的一次交互。
44
成绩统计
数据检索
计算
排序
做什么 怎么做
提取现金
插入卡
输入密码
输入金额
做什么 怎么做
…… ……
用例只描述做什么,而不应描述怎么做。
45
用例之间存在三种关系: • 包含关系《 include》:描述用例间具有的重复行为 • 扩展关系《 extend》 : 描述用例间可选的公用行为 • 继承关系 :用例间的继承关系描述
成绩统计
成绩登记密码验证
《 include》
《 include》 检索定单
制定定单请求目录
《 extend》
《 extend》
发货处理
农副产品发货处理
46
收款输入本次收款的命令;for顾客选则商品 输入商品号;if 选择商品多于一件 商品数量 +1end if检索商品名称及单价减商品存量if 商品存量低于下限 告警商品存量不足end if……
收款
用例说明: 对有必要说明事件的用例,可以给出详细的说明。
47
捕获用例的原则
1 )一个用例只描述一个功能,但用例功能不能 太笼统。
生产管理
供销管理
人事管理
太笼统的系统功能划分
企业信息系统
48
2 )一个用例是在一个相对完整的时间段中发生 的,应尽量避免一个用例涉及多个时间段。
订货与退货管理
不在一个时间段的用例
3 )一个参与者可以对应多个用例,一个用例也可以对应多个参与者。
参与者与用例
日结算
销售业务
客户信息查询
销售人员
销售部经理
49
订单处理系统用例
4)用例不是界面,界面也不是用例。一个用例可以对应多个界面,一个界面也可能对应多个用例。
订货
查看订货目录
查询订单状态
客户
客户代理
取消订单
汇总销售报表
签定合同职员
计算运费
定单 界面
签定合同 界面
50
用例表示举例:研究生教务系统
对登录、选课,以及查学分功能用例描述的四种表 示,描述了四种不同的工作方式。
说明研究生在登录后,有两个功能是被反复使用的。两个功能作为登录主程序的从属功能,并且都是必须要执行的功能。从处理逻辑上看有问题。
研究生
《 include 》
《 include 》登录
选课
查学分
用例图 1 :
51
说明研究生可选择两个功能,当进入每个功能时,都必须登录。
研究生
《 include》
《 include》登录
选课
查学分
用例图 2 :
研究生
登录
选课
查学分
条件:通过登录且选择“选课”
条件:通过登录且选择“查学分”
用例图 3 :
研究生有三个独立的功能,它们之间没有直接的关系,修改或添加功能,对其它的功能没有直接影响。
52
说明研究生在登录后,选择执行“选课”或“查学分”。若增加功能,必须修改登录的条件和判断逻辑。
研究生
《 extend》
《 extend 》登录
选课
查学分
条件:if 选择“选课” then 选课If 选择“查学分” then 查学分
用例图 4 :
53
问题陈述:
系统由房主在安装时配置,通过系统控制窗口和键盘功能与房主交互进行。系统可以监控所有连接的传感器。 在安装过程中,每个传感器可以设置编号和类型,系统的启动和关闭必须有主人密码控制;传感器事件发生时,软件激活系统上的警报器,在设定的时间延时后,软件自动拨打设定的电话号码,并提供位置信息和事件性质,电话号码将每隔 20 秒重拨一次,直至电话接通。 系统运行时,系统控制窗口显示提示信息和系统状态。通过键盘可以控制系统运行。
用例分析举例 1 :家庭安全系统( SafeHome )
54
对问题陈述进行分析,从系统的参与者入手,分析参与者与系统交互的功能。
系统外部的参与者,包括人员、设备和其他系统在此问题中包括: 房主 启动和使用系统的主动参与者 传感器 系统监控的主要参与者 警报器 系统操纵的参与者 电话 同上 控制窗口 虽然是标准设备,但有特殊定义
55
房主
《 include》
系统配置
启动系统
关闭系统
查看传感器状况
密码验证
传感器配置
电话号码设置
《 include》
《 extend》《 extend》
密码设置
《 extend》
传感器事件恢复
传感器监测 显示窗
《 include》
《 include》
电话
报警器
传感器
Safehome 系统用例图
56
问题陈述:
市民可以登录网站报告坑洼的位置和严重程度。每个被报告的坑洼,将登记到“市政部门的修复系统”中,并被赋予一个标识号,按街道地址、大小( 1-10)、位置(路中或路边等)、城区(地址所在城区)和修复理由的优先级(坑洼严重程度)存储起来。 市政人员确认坑洼情况属实后,填写派工单并派工修复坑洼。工单内容包括:位置和大小、修理队的人数、使用的修理装备、修复所用的时间、坑洼状况(正在工作、已被修理、临时修理、未修理)、使用填料的数量和修理的开销(由使用的时间、人数、使用的材料的装备计算得到)。 坑洼经修复后,可输出坑洼的损害报告,包括市民的姓名、地址、电话号码、损害类型和修复总费用。
用例分析举例 2 :道路坑洼修复系统
57
对问题陈述进行分析,从系统的参与者入手,分析参与者与系统交互的功能。
在此问题中,系统外部的参与者包括: 市民 --------------- 登记报告坑洼 市政工作人员 ------填写工单,派工,并汇总
和输出修复情况及费用。
58
道路坑洼修复系统用例图:
查阅道路坑洼情况
工单制订
派工
派工执行登记 计算损害的费用
《 include》
市民
市政人员
道路坑洼报告
输出损害报告
59
问题陈述:
是电话公司开发管理电话客户信息的交互式网络系统,功能如下:1.浏览电话客户信息:任何使用 Internet的网络用户,都可以浏览电话客户信息(姓名、住址、电话号码等)。2. 登录:电话公司授予每个电话客户一个帐号。授权了的电话客户,可以使用系统提供的页面来设置个人密码,并使用帐号和密码向系统注册。3. 修改个人信息:电话客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。4.删除电话客户信息:只有公司管理人员才能删除不再接受公司服务的电话客户信息。
用例分析举例 3 :电话客户信息系统
60
对问题陈述进行分析,从系统的参与者入手,分析参与者与系统交互的功能。
在此问题中,系统外部的参与者包括: 所有使用 Internet的网络用户 ------ 查询电话客户信息 电话客户 ------ 用指定帐户密码向系统注册,并可修改个 人信息。 公司管理人员 ------删除电话客户信息
61
电话客户信息系统用例图:
公司客户
管理人员
网络用户
浏览电话客户
登录或注册
密码设置
删除客户信息个人信息修改