3. 软件设计与 uml 简介

61
3. 软软软软软 UML 软软

Upload: alayna

Post on 06-Jan-2016

192 views

Category:

Documents


0 download

DESCRIPTION

3. 软件设计与 UML 简介. 目录. 3.1 面向对象的分析 3.2 UML 简介 3.3 UML 常用的图 用例图 类图 交互图、状态图、包图. 3.1 面向对象的分析. 分析面临的主要问题. • OOA 与 OOD 的界限 • 对问题域和系统责任的理解 • 人与人之间的交流 • 需求的不断变化 • 软件复用的要求. OOA 与 OOD 的界限. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 3. 软件设计与 UML 简介

3. 软件设计与 UML 简介3. 软件设计与 UML 简介

Page 2: 3. 软件设计与 UML 简介

2

目录

3.1 面向对象的分析

3.2 UML 简介

3.3 UML 常用的图 用例图

类图

交互图、状态图、包图

Page 3: 3. 软件设计与 UML 简介

3

3.1 面向对象的分析

• OOA 与 OOD 的界限

• 对问题域和系统责任的理解

• 人与人之间的交流

• 需求的不断变化

• 软件复用的要求

分析面临的主要问题

Page 4: 3. 软件设计与 UML 简介

4

OOA 与 OOD 的界限

• OOA :运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域和系统责任所需的对象,定义对象的属性和操作以及对象之间的关系,建立一个符合问题域,满足用户需求的 OOA 模型。

• OOA 不考虑与系统具体实现有关的因素,而将其留给 OOD 去处理,因此 OOD 包括两方面的工作:

1 )根据实现条件对 OOA 模型作某些必要的修改和调整。 2 )针对具体实现条件,建立人机界面、数据存储和控制

驱动等模型。

Page 5: 3. 软件设计与 UML 简介

5

问题域和系统责任

• 软件分析人员必须尽快了解和明确: 1 )问题域 --- 被开发系统的应用领域,现实世界中, 要求

系统处理的业务范围。

2 )系统责任 --- 所开发的系统应该具备的功能。

• 问题域不等于系统责任,但它们有很多重合部分

金融业务

个人储蓄 代发工资

收费业务 贷款业务办公管理 数据备份

系统责任

问题域

Page 6: 3. 软件设计与 UML 简介

6

人与人之间的交流

• 交流包括三部分人员之间: 1 )开发人员与用户(需求方)

2 )开发人员之间

3 )开发人员与管理人员

• 交流工具包括谈话和文档 用户文档,技术文档,管理文档

Page 7: 3. 软件设计与 UML 简介

7

需求的不断变化

• 树立“需求变化是绝对的”的观念,从分析到设计,始终注意“易维护修改”这一原则。

• 需求变化时,最容易变化的是系统功能。在面向对象方法中,最容易变化的成分是对象中的操作,其次是对象间的交互与协作,第三是对象的属性。对象本身是相对稳定的。

• 隐蔽内部操作,抽取高层类,可以使系统稳定且易于应对需求变化。

Page 8: 3. 软件设计与 UML 简介

8

3.2 UML 简介

UML 中文:统一建模语言UML 全称: Unified Modeling Language

UML 是一种定义良好、易于表达、功能强大的建模语言

UML 使用图形和文字来传递信息

Page 9: 3. 软件设计与 UML 简介

9

UML 是什么

中国公民姓名性别民族

出生日期住址

身份证编号

签发日期有效期限签发单位

11 银行卡卡号

开户行地址

1 0..*

Page 10: 3. 软件设计与 UML 简介

10

UML 能为我们做什么

UML 可以做软件需求分析UML 可以做软件开发设计UML 可以做系统部署设计UML 也适用非软件领域的系统建模如企业

机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。

Page 11: 3. 软件设计与 UML 简介

11

UML 的发展和工具

UML 1.0 是在 1997 年完成UML 2.0 是在 2003 年完成UML 还在不断的完善和发展中能绘制 UML 图形的工具主要有 Rational Rose

PowerDesignerMS VisioArgoUMLStarUML

Page 12: 3. 软件设计与 UML 简介

12

概述

用例图静态图(类图,对象图,包图)行为图(状态图,活动图)交互图(顺序图,协作图)实现图(组件图,部署图)

Page 13: 3. 软件设计与 UML 简介

13

用例图

用例图描述系统提供的功能单元。参与者用例关联关系依赖关系继承关系

Page 14: 3. 软件设计与 UML 简介

14

用例图

老师在线答疑系统需求描述 一个用于老师和学生之间进行即时沟通的系统。 系统由老师使用的老师端,学生使用的学生端和一个有公

网地址的登陆服务端组成。 老师登陆系统后会在老师列表中出现,并显示出他的专业、姓名、专长和状态是否忙等信息。也可以看到其他所有登录的老师的信息。

学生登陆后可以看到所有已经登录的老师列表。 学生可以选择一个不忙的老师进行问题咨询,和选择的老

师建立连接后就可以通过语音加白板和老师进行交流。此时其他学生将看到该老师处于忙的状态。

Page 15: 3. 软件设计与 UML 简介

15

用例图

Page 16: 3. 软件设计与 UML 简介

16

用例图

Page 17: 3. 软件设计与 UML 简介

17

类图

类图表示不同的实体(人、事物和数据)之间的关系;换句话说,它显示了系统的静态结构。

类聚合继承

Page 18: 3. 软件设计与 UML 简介

18

类图

通信协议中的数据包定义

Page 19: 3. 软件设计与 UML 简介

19

老师和学生类的抽象

类图

Page 20: 3. 软件设计与 UML 简介

20

类图

学生登陆类图

Page 21: 3. 软件设计与 UML 简介

21

类图

老师登陆类图

Page 22: 3. 软件设计与 UML 简介

22

包图

包图能将复杂系统拆分成多个简单的系统。

依赖

Page 23: 3. 软件设计与 UML 简介

23

包图

系统的顶层包结构

Page 24: 3. 软件设计与 UML 简介

24

包图

老师在线答疑系统包结构图

Page 25: 3. 软件设计与 UML 简介

25

状态图

状态图表示某个类所具有的不同状态和状态转移时的触发条件。

状态 转移

Page 26: 3. 软件设计与 UML 简介

26

状态图老师在线状态图

Page 27: 3. 软件设计与 UML 简介

27

活动图

活动图用来描述工作的流程,对并行的工作流程能很好的支持。

活动转移同步

Page 28: 3. 软件设计与 UML 简介

28

活动图

老师登陆系统

Page 29: 3. 软件设计与 UML 简介

29

顺序图

顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。

对象消息

Page 30: 3. 软件设计与 UML 简介

30

顺序图

学生登陆系统顺序图

Page 31: 3. 软件设计与 UML 简介

31

协作图

协作图用于描述相互合作的对象间的交互关系和链接关系。虽然顺序图和协作图都用来描述对象间的交互关系,但侧重点不一样。顺序图着重体现交互的时间顺序,协作则着重体现交互对象间的静态链接关系。

对象链接

Page 32: 3. 软件设计与 UML 简介

32

协作图

学生登陆协作图

Page 33: 3. 软件设计与 UML 简介

33

组件图

组件图显示软件组件之间的依赖关系。一般来说,软件组件就是一个实际文件,可以是源代码文件、二进制代码文件和可执行文件等。可以用来显示编译、链接或执行时构件之间的依赖关系

组件依赖

Page 34: 3. 软件设计与 UML 简介

34

组件图

老师在线答疑系统组件图

Page 35: 3. 软件设计与 UML 简介

35

部署图

配置图显示系统运行时刻的结构,显示系统不同的组件在何处物理地运行,以及它们将如何彼此通信

结点连接

Page 36: 3. 软件设计与 UML 简介

36

部署图

老师在线答疑系统部署图

Page 37: 3. 软件设计与 UML 简介

37

面向对象的分析模型目标:用规范的面向对象图表和文字来描述所要建造的软件系统,以便在用户与系统分析人员之间达成共识,同时使后续工作得以继续。

内容: 需求描述

Use Case 用况图

辅助模型

Sequence 交互图 Collaboration 协作图 State Transition 状态转换图 Component 包图

基本模型 Class类图

详细说明

对象层

关系层

特征层

Page 38: 3. 软件设计与 UML 简介

38

面向对象的分析过程

分析过程中各个步骤不要求按固定顺序进行。所以,面向对象的分析步骤经常被叫做“活动”。

建立 Use Case

发现对象

定义属性与服务

建立结构与连接

定义:顺序图、

协作图、状态图

建立 Class详细说

明原型开

Page 39: 3. 软件设计与 UML 简介

39

3.3 UML常用图

用例图( Use Case )作用:用于对系统的功能,以及与系统进行交互的外

部事物建模。

目的:通过寻找与系统交互的外部事物,说明他们与系统如何交互,可以使用户和开发者,对系统的理解达成共识。

建立 Use Case,从系统边界入手: 系统边界,是指系统成分与系统以外事物的分界。而系

统暂时是由一条边包围起来的未知空间,因此,建立 Use Case是从与未来系统进行交互的人员、设备或其他系统开始的,称之为“参与者”。

Page 40: 3. 软件设计与 UML 简介

40

参与者定义:一个参与者定义了一组在功能上密 切相关的使用角色。当一个事物与系统交互时,该事物可以扮演这样的角色。

商场收款员

检查商品角色验证顾客信用卡角色收银角色

例 1 :

参与者可以请求系统提供服务,也可以接受系统的要求,并做出响应。参与者不是系统的一部分,它们位于系统之外。

操作员

信息录入角色信息利用修改角色

打印报告角色

例 2 :

Page 41: 3. 软件设计与 UML 简介

41

参与者继承关系定义:如果一组参与者有共同的性质,把这些性质抽取在一个参与者中,这组参与者再从中继承。

网站访问者

例:

客户 网站职员

表示:

客户和网站职员对系统的请求是部分相同的。

Page 42: 3. 软件设计与 UML 简介

42

如何识别参与者?

从人员、设备和外部系统三个方面考虑。 设备不包括系统内容设备,如显示器、键盘、鼠标等标准接口设备,而是指系统之外的系统使用设备,例如:传感器、受控马达等。

一些指导性策略:

• 谁是系统的启动者? • 怎样使用系统? • 系统的责任是什么? • 哪些参与者具有共同的行为?

Page 43: 3. 软件设计与 UML 简介

43

用例( CASE )要点:

• 用来描述系统外在的、可见的功能需求; • 只描述做什么,不描述怎么做; • 多数是由参与者发起的动作,但也有由系统

发起的动作。例如:异常情况处理。

用例定义:一个用例描述系统的一项功能,把这样的功能描述为一组动作序列,为参与者产生可观察的结果,其中的每个序列表示参与者与系统本身的一次交互。

Page 44: 3. 软件设计与 UML 简介

44

成绩统计

数据检索

计算

排序

做什么 怎么做

提取现金

插入卡

输入密码

输入金额

做什么 怎么做

…… ……

用例只描述做什么,而不应描述怎么做。

Page 45: 3. 软件设计与 UML 简介

45

用例之间存在三种关系: • 包含关系《 include》:描述用例间具有的重复行为 • 扩展关系《 extend》 : 描述用例间可选的公用行为 • 继承关系 :用例间的继承关系描述

成绩统计

成绩登记密码验证

《 include》

《 include》 检索定单

制定定单请求目录

《 extend》

《 extend》

发货处理

农副产品发货处理

Page 46: 3. 软件设计与 UML 简介

46

收款输入本次收款的命令;for顾客选则商品 输入商品号;if 选择商品多于一件 商品数量 +1end if检索商品名称及单价减商品存量if 商品存量低于下限 告警商品存量不足end if……

收款

用例说明: 对有必要说明事件的用例,可以给出详细的说明。

Page 47: 3. 软件设计与 UML 简介

47

捕获用例的原则

1 )一个用例只描述一个功能,但用例功能不能 太笼统。

生产管理

供销管理

人事管理

太笼统的系统功能划分

企业信息系统

Page 48: 3. 软件设计与 UML 简介

48

2 )一个用例是在一个相对完整的时间段中发生 的,应尽量避免一个用例涉及多个时间段。

订货与退货管理

不在一个时间段的用例

3 )一个参与者可以对应多个用例,一个用例也可以对应多个参与者。

参与者与用例

日结算

销售业务

客户信息查询

销售人员

销售部经理

Page 49: 3. 软件设计与 UML 简介

49

订单处理系统用例

4)用例不是界面,界面也不是用例。一个用例可以对应多个界面,一个界面也可能对应多个用例。

订货

查看订货目录

查询订单状态

客户

客户代理

取消订单

汇总销售报表

签定合同职员

计算运费

定单 界面

签定合同 界面

Page 50: 3. 软件设计与 UML 简介

50

用例表示举例:研究生教务系统

对登录、选课,以及查学分功能用例描述的四种表 示,描述了四种不同的工作方式。

说明研究生在登录后,有两个功能是被反复使用的。两个功能作为登录主程序的从属功能,并且都是必须要执行的功能。从处理逻辑上看有问题。

研究生

《 include 》

《 include 》登录

选课

查学分

用例图 1 :

Page 51: 3. 软件设计与 UML 简介

51

说明研究生可选择两个功能,当进入每个功能时,都必须登录。

研究生

《 include》

《 include》登录

选课

查学分

用例图 2 :

研究生

登录

选课

查学分

条件:通过登录且选择“选课”

条件:通过登录且选择“查学分”

用例图 3 :

研究生有三个独立的功能,它们之间没有直接的关系,修改或添加功能,对其它的功能没有直接影响。

Page 52: 3. 软件设计与 UML 简介

52

说明研究生在登录后,选择执行“选课”或“查学分”。若增加功能,必须修改登录的条件和判断逻辑。

研究生

《 extend》

《 extend 》登录

选课

查学分

条件:if 选择“选课” then 选课If 选择“查学分” then 查学分

用例图 4 :

Page 53: 3. 软件设计与 UML 简介

53

问题陈述:

系统由房主在安装时配置,通过系统控制窗口和键盘功能与房主交互进行。系统可以监控所有连接的传感器。 在安装过程中,每个传感器可以设置编号和类型,系统的启动和关闭必须有主人密码控制;传感器事件发生时,软件激活系统上的警报器,在设定的时间延时后,软件自动拨打设定的电话号码,并提供位置信息和事件性质,电话号码将每隔 20 秒重拨一次,直至电话接通。 系统运行时,系统控制窗口显示提示信息和系统状态。通过键盘可以控制系统运行。

用例分析举例 1 :家庭安全系统( SafeHome )

Page 54: 3. 软件设计与 UML 简介

54

对问题陈述进行分析,从系统的参与者入手,分析参与者与系统交互的功能。

系统外部的参与者,包括人员、设备和其他系统在此问题中包括: 房主 启动和使用系统的主动参与者 传感器 系统监控的主要参与者 警报器 系统操纵的参与者 电话 同上 控制窗口 虽然是标准设备,但有特殊定义

Page 55: 3. 软件设计与 UML 简介

55

房主

《 include》

系统配置

启动系统

关闭系统

查看传感器状况

密码验证

传感器配置

电话号码设置

《 include》

《 extend》《 extend》

密码设置

《 extend》

传感器事件恢复

传感器监测 显示窗

《 include》

《 include》

电话

报警器

传感器

Safehome 系统用例图

Page 56: 3. 软件设计与 UML 简介

56

问题陈述:

市民可以登录网站报告坑洼的位置和严重程度。每个被报告的坑洼,将登记到“市政部门的修复系统”中,并被赋予一个标识号,按街道地址、大小( 1-10)、位置(路中或路边等)、城区(地址所在城区)和修复理由的优先级(坑洼严重程度)存储起来。 市政人员确认坑洼情况属实后,填写派工单并派工修复坑洼。工单内容包括:位置和大小、修理队的人数、使用的修理装备、修复所用的时间、坑洼状况(正在工作、已被修理、临时修理、未修理)、使用填料的数量和修理的开销(由使用的时间、人数、使用的材料的装备计算得到)。 坑洼经修复后,可输出坑洼的损害报告,包括市民的姓名、地址、电话号码、损害类型和修复总费用。

用例分析举例 2 :道路坑洼修复系统

Page 57: 3. 软件设计与 UML 简介

57

对问题陈述进行分析,从系统的参与者入手,分析参与者与系统交互的功能。

在此问题中,系统外部的参与者包括: 市民 --------------- 登记报告坑洼 市政工作人员 ------填写工单,派工,并汇总

和输出修复情况及费用。

Page 58: 3. 软件设计与 UML 简介

58

道路坑洼修复系统用例图:

查阅道路坑洼情况

工单制订

派工

派工执行登记 计算损害的费用

《 include》

市民

市政人员

道路坑洼报告

输出损害报告

Page 59: 3. 软件设计与 UML 简介

59

问题陈述:

是电话公司开发管理电话客户信息的交互式网络系统,功能如下:1.浏览电话客户信息:任何使用 Internet的网络用户,都可以浏览电话客户信息(姓名、住址、电话号码等)。2. 登录:电话公司授予每个电话客户一个帐号。授权了的电话客户,可以使用系统提供的页面来设置个人密码,并使用帐号和密码向系统注册。3. 修改个人信息:电话客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。4.删除电话客户信息:只有公司管理人员才能删除不再接受公司服务的电话客户信息。

用例分析举例 3 :电话客户信息系统

Page 60: 3. 软件设计与 UML 简介

60

对问题陈述进行分析,从系统的参与者入手,分析参与者与系统交互的功能。

在此问题中,系统外部的参与者包括: 所有使用 Internet的网络用户 ------ 查询电话客户信息 电话客户 ------ 用指定帐户密码向系统注册,并可修改个 人信息。 公司管理人员 ------删除电话客户信息

Page 61: 3. 软件设计与 UML 简介

61

电话客户信息系统用例图:

公司客户

管理人员

网络用户

浏览电话客户

登录或注册

密码设置

删除客户信息个人信息修改