3. 软件设计与 uml 简介

Post on 06-Jan-2016

200 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

公司客户

管理人员

网络用户

浏览电话客户

登录或注册

密码设置

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

top related