,信息系统分析与设计,
?第一节 面向对象的基本概念
?第二节 经典的面向对象方法
?第三节 面向对象的分布式技术
?第四节 统一建模语言 UML概述
?第五节 UML建模技术
?第六节 UML在系统开发中的应用
?第七节 面向对象系统分析与设计实例
第五章 面向对象方法
,信息系统分析与设计,
第一节 面向对象的基本概念
? 一,概述
? 二,对象 (object)
? 三,消息 (message)与操作方法 (method)
? 四,对象接口 (Interface)
? 五,类 (class)
? 六,继承性 (inheritance)
? 七,封装性 (encapsulation)
? 八,多态性 (polymorphism)
,信息系统分析与设计,
一、概述
? 面向对象思想的起源
1967年,第一个面向对象的语言 —Simula。 80年
代,Smalltalk,C++,Objective C等通用面向对象
语言出现。
? 面向对象思想的成熟
Smalltalk—80和 C++语言被越来越多的人所理解和
接受,形成面向对象编程 (Object-Oriented
Programing,即 OOP)
? 信息系统的开发与面向对象思想
? OOP解决问题的思路
,信息系统分析与设计,
二、对象 (object)
? 对象的基本概念:问题空间中与系统问题处理相关的事物
的抽象体, 它是把事物的属性和对属性数据的操作方法结
合而成的整体 。
? 对象的三个特性:
1,预定义行为:对象初始时所定义的动作序列 。
2,对象的状态:一个对象可以有任意个属性或域, 对
象的状态和存储在它的域中的值相对应 。
3,对象的标识:标识是对象的唯一编号, 用来与其他
对象相区别 。
,信息系统分析与设计,
三、消息与操作方法 (method)
? 消息 (message),对象之间进行通信的数据 。
? 一个消息由下列三个元素组成:
? 消息名;
? 零个或多个参数列表,为接收对象提供数据信息;
? 对接收对象的引用。
? 操作方法 (method):与一个对象有关的过程,即实现
某一操作的一段代码。
? 方法绑定:对象收到一个消息后,决定调用哪个方法
来响应该消息的过程。
,信息系统分析与设计,
三、消息与操作方法 (method) (续)
? 执行与消息对应的预定义行为可能会产生三种结果:
? 返回一个值给消息发送者。
? 改变接收者的状态。
? 改变作为参数传给接收者的对象的状态。
消息到达 服务 ( 操作方法 )服务 ( 操作方法 )
属性 ( 数
据 ) 据 )
消息发出
图 5-1 对象的分解图
对 象
接口
,信息系统分析与设计,
四、对象接口 (Interface)
? 对象的接口是以一组操作方法的形式出现的,每一个操作
都对应于在响应某个消息时对象所完成的预定义行为,客
户通过对象的接口来理解对象支持的各种行为,并根据接
口来发送消息。
? 调用对象的操作方法要遵守一定的规则,这些规则描述了
如何使用对象的每一个操作。
? 对象接口可以分为公有接口和限制型接口
,信息系统分析与设计,
五、类 (class)
? 类的概念:类是在对象之上的抽象, 一个类定义了一组大
体上相同的对象 。 一个类所包含的操作方法和属性数据描
述了一组对象的共同行为和属性 。
1,对象是类的具体化, 是类的实例 。
2、每一个对象都属于某个类。类不仅决定了对象的类
型,还决定它的域和方法。
? 类的层次结构
? 类的主要功能
,信息系统分析与设计,
六、继承性 (inheritance)
? 继承性是类层次结构中的一个
重要特点, 是超类和子类之间
共享数据和操作方法的机制 。
图 5-2所示为超类 A和它的子类
B之间的继承关系 。 类 A得到继
承, 叫做, 单重继承, 。 如果
一个子类有两个以上的父类,
则称为, 多重继承, 。
图 5-2 类的继承关系
继承部分
从 A继承
A
B
增加部分
,信息系统分析与设计,
六、继承性 (inheritance) (续)
? 继承是软件重用的一个基本机制。当通过继承定义一
个新类时,新类获得了已存在类的域和行为。图 5-3中
的类图所描绘了继承层次结构。
RectangleEllipse
RegionPoint
Figure
LineSegment
图 5-3 类的层次结构
Circle
,信息系统分析与设计,
六、继承性 (inheritance) (续)
? 继承有下面三种使用方式:
1,子类定义新的属性和方法作为对它所继承的属性和方法的
补充。
2,子类重新实现所继承的一个或多个方法。
3,子类实现一个或多个其父类声明但没有实现的方法。
? 使用继承可以创建一个类家族。
? 当利用继承定义新类时,这个新子类就可以被客户使用,软件
系统也因增加新的类型而扩展了。
,信息系统分析与设计,
七、封装性 (encapsulation)
? 封装的概念:
把一组相关软件元素组织到一起的方法。
? ① 对所有对象的内部软件范围的边界进行限定;
? ② 对各对象之间相互作用的接口进行描述;
? ③ 对每个对象的内部实现(操作程序和数据)进
行保护。
? 封装的基本单位是对象
? 利用封装来隐藏那些不属于对象公有接口的软件元素
称为 信息隐藏 。
,信息系统分析与设计,
八、多态性 (polymorphism)
? 多态的概念:
不同的对象收到同一消息可产生多种不同的结果,
即会有多种不同形式 。
? 多态的实现受到继承性的支持
? 利用类层次的继承关系,把具有通用功能的消息存放
在高层次,而实现这一功能的不同的行为放在较低层

,信息系统分析与设计,
第二节 经典的面向对象方法
? 一,OOA/OOD
? 二,对象模型技术 OMT( Object Model Technology)
? 三,面向对象软件工程 (OOSE)
? 四,Booch方法
,信息系统分析与设计,
一,OOA/OOD
? OOA( OO Analysis) /OOD(OO Design)
1,面向对象分析 (OOA):
面向对象的分析方法主要包括:分析发现对象;定义
它们的类, 然后建立类之间的关系;找出重用类, 最后
用重用类的实例 -对象构造系统框架 。
OOA可以按照以下五个步骤来进行:
①标识对象:
②标识结构:
③标识主题:
④定义属性:
⑤定义方法:
,信息系统分析与设计,
一,OOA/OOD
2,面向对象设计 (OOD)
? 从 OOA到 OOD是一个渐进的模型扩充过程, OOD包括了问
题域部分, 人机交互部分, 任务管理部分和数据管理
部分等四个部分的设计 。
,信息系统分析与设计,
二、对象模型技术 OMT( Object Model Technology)
? OMT的思想:
? 建立描述系统数据结构的对象模型;
? 建立描述系统控制结构的动态模型;
? 建立描述系统功能的功能模型。
? OMT方法覆盖了应用开发的全过程,包括分析、设计和
实现。
,信息系统分析与设计,
二、对象模型技术 OMT( Object Model Technology)
? 分析阶段的对象模型表示系统静态的、结构化的特征。
? 在 OMT方法中使用场景描述对象间的相互作用。
? 事件图描述参与某个脚本的对象和事件。
? 状态图描述系统中对象的各种状态以及触发它们之间相互
转换的事件。
? OMT方法的设计阶段由系统设计和对象设计两部分构成。
? OMT方法突出的特点是在分析阶段,它可以较全面地描述
系统的静态结构,适合于数据密集型信息系统的开发。
,信息系统分析与设计,
三、面向对象软件工程 (OOSE)
? 面向对象软件工程 (OOSE)
? OOSE方法将面向对象的思想贯穿到软件工程中, 目的
是为了得到一个能适应变化, 健壮性好和维护性强的
系统 。 OOSE方法是一个用例 (use case)驱动的方法,
它建立的所有模型都是以用例模型为基础的 。
? OOSE采用五个模型来完成其实现目标系统的过程, 这
五个模型又都是以用例模型为基础的 。
? OOSE,构造和测试 。
,信息系统分析与设计,
三、面向对象软件工程 (OOSE)
? (1).需求模型 (RM):用来捕获用户的需求, 主要的建
模手段有用例图, 问题域对象模型和人与系统的接口
界面 。
? (2).分析模型 (AM):该模型定义了一个健壮的, 可扩
展的系统的基本结构 。
? (3).设计模型 (DM),DM将 AM的对象定义为块, 这实际
是考虑具体实现的表现 。
? (4).实现模型 (IM):就是用某种语言 ( 最好是支持面
向对象 ) 来实现 DM。
? (5).测试模型 (TM):类或对象的底层测试可以由程序
人员自行完成, 但集成测试将由独立于开发组的测试
人员完成, 他们依次从类的底层测试开始, 进行组装
测试, 集成测试 。
,信息系统分析与设计,
四,Booch方法
? Booch方法将系统的开发工作分为两个过程:
? 微观过程主要用于建立一个反复的, 递增的开发框架
? 宏观过程控制开发过程中的许多活动, 宏观过程关心
的是开发过程中的管理方面 。
? Booch方法将工作集中在开发过程中的设计阶段,该方
法对于开发的各阶段没有明确的划分。
,信息系统分析与设计,
第三节 面向对象的分布式技术
? 一,公共对象请求代理体系结构 CORBA
? 1,CORBA体系结构
? 2,CORBA的主要概念
? 二,微软公司的 COM/ DCOM组件技术
? 1、组件对象模型 COM
? 2、分布式组件对象模型 DCOM
? 三,JavaBean和企业 JavaBean( EJB)技术
? 1,JavaBean
? 2、企业 JavaBean( EJB)
,信息系统分析与设计,
一、公共对象请求代理体系结构 CORBA
? CORBA
? 1,CORBA体系结构,图 5-4显示了 CORBA的体系结构 。
客户端 对象实现
动态
调用
接口
IDL桩
ORB
接口
静态
IDL
骨架
动态
骨架
接口
对象
适配器
ORB 核心
图 5-4 CORBA体系结构
,信息系统分析与设计,
一、公共对象请求代理体系结构 CORBA
? CORBA上的服务用 IDL描述 。
? 与传统的 Client/Server模式不同, CORBA是一种多层
C/S结构 。
? 2,CORBA的主要概念,
– (1) 对象请求代理 ORB ( Object Request
Broker),CORBA体系结构的核心就是 ORB,ORB是使
得客户应用程序能调用远端对象方法的一种机制 。
,信息系统分析与设计,
一、公共对象请求代理体系结构 CORBA
– (2) 接 口 定 义 语 言 IDL(Interface Definition
Language):
? IDL则使 CORBA做到语言无关;
? IDL仅仅定义接口, 而不定义实现;
? IDL是描述性语言;
? IDL的语法与 C++,Java非常相像 。
,信息系统分析与设计,
一、公共对象请求代理体系结构 CORBA
?通用 ORB互联协议 GIOP和 IIOP
– GIOP定义了以下几个方面:
?① 公共数据表示
?② GIOP消息格式
?③ GIOP消息传递
,信息系统分析与设计,
一、公共对象请求代理体系结构 CORBA
(3)动态调用接口 (DII) 和 动态骨架接口 (DSI)
– 动态调用接口 和 动态骨架接口 是用来支持客户在不
知道服务器对象的接口的情况下也能调用服务器对
象。
– 其中 DII为客户提供了动态 调用 方式,DSI为客户提
供了动态 实现 方式
,信息系统分析与设计,
二、微软公司的 COM/ DCOM组件技术
? 1,组件对象模型 COM
– COM(Component Object Model)是一种不依赖于任
何语言的组件对象模型 。 COM中的对象被称为 组件
对象或 COM对象 。
– 强调 单独地设计对象接口并约定只能通过对象接口
使用 COM对象, 这是 COM对象区别于其它源代码对象
的重要特征, 也是确保 COM对象具有与语言无关的
可重用性的基础 。
– 组件对象模型 COM的特点
,信息系统分析与设计,
二、微软公司的 COM/ DCOM组件技术
? 2,分布式组件对象模型 DCOM
– DCOM(Distributed COM)是 COM组件的扩展 。
– DCOM在 COM的应用程序、组件、工具等基础之上,
处理网络协议的低层次的细节问题,而不必关心太
多的网络协议细节,从而使用户能够集中精力解决
用户所要求的问题。
– DCOM位于应用程序的组件之间,将组件以不可见的
方式胶合在一起组成具有完整功能的应用程序。
,信息系统分析与设计,
二、微软公司的 COM/ DCOM组件技术
? 图 5-5显示了 DCOM的整体结构:
图 5-5 DCOM结构
客户端 运行时的COM组件 运行时的COM组件
安全
提供
远程过
程调用
协议栈
安全
提供
远程过
程调用
协议栈
组件
DCOM通信
协议
,信息系统分析与设计,
二、微软公司的 COM/ DCOM组件技术
? 2,分布式组件对象模型 DCOM
DCOM的技术特点包括:
– ( 1) 语言无关性;
– ( 2) 连接管理 ;
– ( 3) 位臵独立性 ;
– ( 4) 可扩展性强;
– ( 5) 灵活的配臵 ;
– ( 6) 协议无关性 ;
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
? 1,JavaBean,JavaBean是目前与微软公司的控件技术
最有竞争力的一种代码组件技术 。
– JavaBean是基于 Java语言的代码技术, 它将 Java语
言本身所具有的, 一次编写, 到处运行, 特性扩展
到代码组件 Bean,使 Bean也具有平台无关性 。
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
– Bean是一种 Java类, 但是由于它必须要具有一般 Java类
所没有的特性:
? ( 1) 方法;
? ( 2)属性;
? ( 3)事件;
? ( 4)自查;
? ( 5)对应用程序构造器的支持;
? ( 6)客户定制;
? ( 7) 永久性存储;
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
? 重用 Bean有三种不同的方式:
? 第一种是在应用程序构造工具中, 主要通过可视化的
操作方式重用 Bean;
? 第二种是通过 JSP,PHP脚本编程语言来重用 Bean;
? 第三种仍然是在某种特定的编程语言中用编程的方式
重用 Bean,只不过是把 Bean当作一般的 Java类来使用 。
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
? 2,企业 JavaBean( EJB)
– SUN公司提出的另一个组件模型是企业 JavaBean
( Enterprise JavaBeans,EJB), 它是针对企业应用
程序的新的 Java组件模型 。
– 它将服务器端的组件和分布式对象技术, 如 CORBA和
Java RMI结合起来, 从而大大简化了应用程序开发的
任务 。
– 分布式计算使得访问商务系统更加容易 。
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
? SUN对 EJB的定义是,EJB结构是开发和配臵基于组件的分布式商
务应用程序的一种组件结构。 EJB的组件构架模型如图 5-6。
图 5-6 EJB结构
客户层 中间层 数据层
Web服务器
Servlet
JSP
HTML
XML
应用服务

EJB EJB
EJB
内部客户
内部客户
外部客户
外部客户
各种 Java服务
JNDI,JDBC,JTA,JMS,RMI-IIOP等
RDBMS
ERP系统
旧有其他系统
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
? 在 EJB开发体系结构中定义了具体的开发流程和具体的开
发角色:
? u 组件提供者;
? u 应用集成者;
? u 部署人员;
? u EJB服务器提供者;
? u EJB容器提供者;
? u 持久性管理提供者;
,信息系统分析与设计,
三,JavaBean和企业 JavaBean( EJB)技术
? 服务器端 EJB组件有两种基本类型:
? entity bean(实体 Bean)
? session bean(会话 Bean)
? 一个实用的区分方法是实体 bean模型的商务概念能用
名词表达。实体 bean是为现实世界的对象建造模型,
这些对象通常是数据库中的一些持久记录。
,信息系统分析与设计,
第四节 统一建模语言 UML概述
? 一,面向对象建模
? 二,UML的历史沿革
,信息系统分析与设计,
一、面向对象建模
? 面向对象方法不但是一种软件工程的开发技术,而且
是一种对客观事物进行分析与处理的思想方法,一种
抽象的思维方式。
? UML 的目标主要:
? ( 1) 用对象的概念来构造系统模型 ( 不仅是针对软件
系统 ) 。
? ( 2) 建立直观的从模型直至可执行体之间的对应关系 。
? ( 3) 为复杂的系统建立衡量标准 。
? ( 4) 创建一种对人和机器都适合的语言, 即可以用人
工来描述, 又可以用机器实现计算机辅助建模 。
,信息系统分析与设计,
一、面向对象建模(续)
? 面向对象建模的原理:一种建模方法应包含建模过程
和建模语言两个部分。
? 建模过程定义建模的步骤和处理问题的基本原则。
? 建模与建模过程的密切联系。
1、同一建模过程可由不同建模语言来描述;
2、不同建模过程也可能由功能强大的同一建模语
言来描述。
,信息系统分析与设计,
二,UML的历史沿革
? 从二十世纪八十年代初期开始,包括 Booch,OMT、
Shlaer/Mellor,Odell/Martin,Objectory和其他的
一些方法。
? 到了二十世纪九十年代中期,出现了第二代面向对象
方法,著名的有 Booch?94,OMT的沿续以及 Fusion等。
? UML是第三代用来为面向对象开发系统的产品进行可视
化说明和编制文档的方法,UML 的形成过程见 图 5-7
所示。
,信息系统分析与设计,图 5-7 UML的历史
,信息系统分析与设计,
第五节 UML建模技术
? 一,统一建模语言 UML
? 1、一种建模语言
? 2、促进信息沟通
? 3、支持系统构建
? 二,UML的主要内容
? 1,UML的构造块
? 2,UML规则
? 3,UML中的公共机制
? 三,UML的图形
? 1、用例图 (use case
diagram)
? 2、静态图 (Static diagram)
? 3、行为图 (Behavior
diagram)
? 4、交互图 (Interactive
diagram)
? 5、实现图 (Implementation
diagram)
,信息系统分析与设计,
一、统一建模语言 UML
? UML的优势和特点:
1,UML融合了 Booch,OMT和 OOSE方法中的基本概念;
2,UML扩展了现有方法的应用范围;
3,UML是标准的建模语言, 而不是标准的开发过程 。
? UML仅仅是一种建模语言, 是软件开发方法中的一部分,
它是独立于过程的, 但它与以用例为驱动, 以体系结
构为中心, 迭代及增量的开发过程相结合将会发挥最
大的优势 。
,信息系统分析与设计,
一、统一建模语言 UML(续)
?如何理解 UML
1,一种建模语言
2,促进信息沟通
3、支持系统构建
,信息系统分析与设计,
二,UML的主要内容
? UML具有一个完整的概念模型,提供了一套完整、全面
的表达方法,其主要元素包括,UML的基本构造块、支
配这些构造块如何放在一起的规则和一些运用于整个
UML的公共机制。
? 1,UML的构造块
– 在 UML中可以将词汇划分为 3种构造块,即 3类词汇
或基本元素:事物、关系和图。
( 1) UML中的事物
事物是对模型中最具有代表性的成分的抽
象,可分为结构事物、行为事物、分组事物和注释
事物;
,信息系统分析与设计,
二,UML的主要内容(续)
? 结构事物:通常是模型的静态部分, 描述概念或物
理元素, UML中共有 7种结构事物:
– a.类 (class):与面向对象方法中类的概念一致 。
图 5-8a中, 给出了类 Transaction,它包含一个属
性和两个操作 。
– b.接口 (interface):描述了一个类或构件的一个
服务的操作集,图 5-8b给出了一个接口 IPrint的图
示。
,信息系统分析与设计,
二,UML的主要内容(续)
– d.用例 (use case):代表了一个系统功能, 是对一
组动作序列的描述, 系统执行这些动作将产生一个
对特定的参与者 ( 即系统用户 ) 有价值而且可观察
的结果 。 图 5-8d给出了一个用例的图示法 。
– c.协作 (collaboration):定义了一个对象之间的
交互, 由一组共同工作以提供某种协作行为的角色
和其它元素共同构成的一个群体, 这些协作行为大
于所有元素的各自行为的总和 。 图 5-8c给出了一个
协作, 人员维护, 。
,信息系统分析与设计,
二,UML的主要内容(续)
– e.主动类 (active class):是一种特殊的类,其对
象至少拥有一个线程或进程。
– f.构件 (component):描述的是系统中的软件物理
事物,图 5-8e给出了构件的图示法。
– g.节点 (node):是在运行时存在的物理元素,表示
了一种可计算的资源,图 5-8f给出了一个节点的图
示。
,信息系统分析与设计,
二,UML的主要内容(续)
IPrint
人员维护 登录
sHello.java
应用服务器
Transaction
time
execute()
rollback()
图 5-8a 类
图 5-8b 接口 图 5-8c 协作 图 5-8d 用例
图 5-8e 构件图 5-8f 节点
load
空闲
图 5-8g 交互图 5-8h 状态
java.lang
图 5-8i 包 图 5-8j 注解
图 5-8 UML中各种事物的图示法
,信息系统分析与设计,
二,UML的主要内容(续)
? 行为事物,行为事物是 UML模型的动态部分,是模型中
的动词,描述了跨越时间和空间范围的系统行为,代
表了系统动作的执行。主要有两类,
– a.交互
– b.状态机 (state machine)
,信息系统分析与设计,
二,UML的主要内容(续)
? 分组事物
– 分组事物是 UML模型的组织部分。最重要的分组事
物是包。包是把元素组织成组的一种机制。图 5-8i
给出了包的图示法。
? 注释事物
– 注释事物是 UML模型的解释部分。图 5-8j给出了注
解的图示法。
,信息系统分析与设计,
二,UML的主要内容(续)
? ( 2) UML中的关系
? 关系能把建模语言中的事物组合联系在一起, 在 UML中
有四种关系:
? 依赖 (dependency) ;
? 关联 (association) ;
? 泛化 (generalization) ;
? 实现 (realization) ;
,信息系统分析与设计,
二,UML的主要内容(续)
? ( 3) UML中的图
UML中主要包括了以下几种图形:
? 用例图 (use case diagram) ;
? 类图 (class diagram);
? 对象图 (object diagram);
? 包图 (package diagram) ;
? 交互图 (interaction diagram),交互图包括顺序图
和协作图两种;
? 状态图 (statechart diagram) ;
,信息系统分析与设计,
二,UML的主要内容(续)
? 活动图 (activity diagram);
? 构件图 (component diagram) ;
? 配臵图 (deployment diagram) 。
,信息系统分析与设计,
二,UML的主要内容(续)
? 图 5-9a中,对类的操作的可见性进行了修饰,符号 +表
示为公共操作,#表示为保护操作,-表示为私有操作,
Transaction
+ commit()
+ rollback()
# priority()
- timestamp()
计算机 张三的计算机,
计算机
图 5-9a 操作的修饰 图 5-9b 类 图 5-9c类的实例
图 5-9 修饰的标识方法
,信息系统分析与设计,
二,UML的主要内容(续)
2,UML规则
UML有用于描述如下事物的语义规则:
? ①命名;
? ②范围;
? ③可见性;
? ④完整性;
? ⑤执行。
,信息系统分析与设计,
二,UML的主要内容(续)
3,UML中的公共机制
在 UML中有 4种贯穿整个语言且一致应用的公共机制
? ( 1)规格说明
? ( 2)修饰
? ( 3)通用划分(如图 5-10)
? ( 4)扩展机制(如图 5-11)
UML中的扩展机制包括几个方面:构造型
(stereotype),标记值 (tagged value)、约束
(constraint)。
,信息系统分析与设计,
二,UML的主要内容(续)
客户
姓名
地址
电话
张龙,客户
丁三,客户
王玉
IUnknown
ISpelling
spelling.java
( a) 类 /对象划分 ( b) 接口 /实现划分
图 5-10 通用划分的图示法
,信息系统分析与设计,
二,UML的主要内容
MessageQueue
{version=2.0}
insert()
remove()
refresh()
,exception》
Overflow{ordered}
图 5-11 扩展机制
,信息系统分析与设计,
二,UML的主要内容
UML 概

模型
构造块
事物:结构事物, 行为事物, 分组事物, 注释事物
规则
关系:依赖, 关联, 泛化, 实现
图:用例图, 类图, 对象图, 包图, 交互图等
公共机制
规格说明
修饰
通用划分
扩展机制
图 5-12 UML主要内容
,信息系统分析与设计,
三,UML的图形
? UML中包含五类图
– 用例图
– 类图
– 对象图
– 包图
– 状态图
– 顺序图
– 协作图
– 活动图
– 构件图
– 配臵图
,信息系统分析与设计,
三,UML的图形
? 1,用例图 (use case diagram)
? 用例图从用户角度描述系统功能, 并指出各功能的操
作者 。
? 用例图显示若干角色或执行者 (actor)以及这些角色与
系统提供的用例之间的连接关系,如图 5-13所示。用
例图定义的是系统的功能需求。
,信息系统分析与设计,
三,UML的图形
录入客户
补充信息
用户校验
录入订单
跟踪订单
,extend》
,include》
,include》
业务员
图 5-13 用例图
,信息系统分析与设计,
三,UML的图形
? 2,静态图 (Static diagram)
– 静态图包括类图, 对象图和包图三种 。
( 1) 类图描述系统中类的静态结构, 是一种静态关
系, 在系统的整个生命周期都是有效的 。
,信息系统分析与设计,
三,UML的图形
? ( 2)对象图是类图的实例,几乎使用与类图完全相同
的标识。但是两者之间有差别。
Bob作家
姓名 =Bob
年龄 =43
办公室 PC
名称 =P4 1.3G
内存 =256
家庭 PC
名称 =P3 933
内存 =128
图 5-15 对象图
,信息系统分析与设计,
三,UML的图形
? ( 3)包是 UML中的一种分组事物,由包或类组成,表
示包与包之间的关系。包图用于描述系统的分层结构
或事物的组织结构。
? 3,行为图 (Behavior diagram)
? 行为图描述系统的动态模型和组成对象间的交互关系 。
包括状态图和活动图两种,
? ( 1) 状态图描述类的对象所有可能的状态以及事件发
生时状态的转移条件 。 通常, 状态图 (state diagram)
是对类图的补充 。 如图 5-16所示 。
,信息系统分析与设计,
三,UML的图形
图 5-16 状态图
,信息系统分析与设计,
三,UML的图形
? ( 2)活动图 (activity diagram)描述满足用例功能需
求所要进行的活动以及活动间的约束关系。如图 5-17
所示。
,信息系统分析与设计,
三,UML的图形
图 5-17 活动图
终点
打 印
磁盘未满
磁盘满
在屏幕上显示, 磁盘
满,
在屏幕上显示, 打印

建立补充说

清除屏幕
起点
终点
,信息系统分析与设计,
三,UML的图形
? 4,交互图 (Interactive diagram)
? 交互图描述对象间的交互关系。包括顺序图和协作图
两种。
? ( 1)顺序图显示对象之间的动态合作关系,如图 5-18
所示。
? ( 2)协作图 (callobaration diagram)和顺序图的作
用一样,反映的也是动态协作。如图 5-19 所示。
,信息系统分析与设计,
三,UML的图形
:Thread,Toolkit,ComponentPeer target:HelloWorl
d
callbackLooprun run
handleExpose paint
图 5-18 顺序图
,信息系统分析与设计,
三,UML的图形
图 5-19 协作图
,信息系统分析与设计,
三,UML的图形
? 5,实现图 (Implementation diagram)
? 实现图包括构件图和配臵图两种 。
? ( 1) 构件图 (component diagram)描述代码部件的物
理结构及各部件之间的依赖关系 。 构件图有助于分析
和理解部件之间的相互影响程度 。
? 图 5-20显示一个简单的, HelloWorld”程序中的构件的
物理结构情况, helloworld页面依赖于一个图片
(hello.jpg)和类 (HelloWorld.class)。
,信息系统分析与设计,
三,UML的图形
HelloWorld.class
helloworld.html
HelloWorld.java
hello.jpg
图 5-20 构件图
,信息系统分析与设计,
三,UML的图形
? ( 2)配臵图 (deployment diagram)定义系统中软硬件的
物理体系结构。
TCP/I
P
TCP/IP
TCP/I
P
客户机 A
Compaq Pro
PC
客户机 B
IBM ThinkPad
应用服务器
HP
Netserver
Web服务器
HP
Netserver
图 5-21 配置图
TCP/I
P 数据库服务 器
HP L1000
,信息系统分析与设计,
第六节 UML在系统开发中的应用
? 一,一般应用过程
? 1、需求获取
? 2、分析
? 3、设计
? 4、编程
? 5、测试
? 二,统一开发过程 (Rational
Unified Process,RUP)
? 1、概述
? 2,RUP的基本概念
? 3,RUP过程分析
三,计算机辅助软件工程
(CASE)工具 Rational Rose
? 1、支持 UML的模型
? 2、支持多种开发语言
? 3、代码自动生成
? 4、模型的集成管理
? 5、团队开发
? 6、数据库表的生成
,信息系统分析与设计,
一、一般应用过程
? UML在软件系统开发中的应用可以分成五个阶段:
? 1,需求获取
? 2,分析
? 3,设计
? 4,编程
? 5,测试
,信息系统分析与设计,
二、统一开发过程 (Rational Unified
Process,RUP)
1、概述
? 软件过程由一系列的项目的阶段、方法、技术和实践
组成,人们利用它们来开发、维护软件和相关的产物。
? 在软件开发中存在的两难境地是既要求快速发布产品,
又要求开发出低成本、高质量的产品。
? 统一开发过程 (Rational Unified Process)正是逐步
发展起来的支持企业系统不断更新并保证高质量短周
期软件产品的软件开发过程。
,信息系统分析与设计,
2,RUP的基本概念
?,统一过程, 最为突出的特点包括三点:用例驱动、以
基本架构为中心、迭代式和增量性的开发。
? ( 1), 统一过程, 是用例驱动的
? ( 2), 统一过程, 是以基本架构为中心的
? ( 3), 统一开发过程, 是迭代式的和增量的
,信息系统分析与设计,
3,RUP过程分析
? 统一开发过程可以用二维结构或沿着两个坐标轴来表
达:
? 横轴 ——代表制订开发过程时的时间,包括以下阶段:
n 开始 ——项目版本描述;
n 细化 ——计划必须的活动和资源;详细描述功能
和设计结构;
n 构造 ——在一个循环周期内创建产品;
? 交付 ——发放产品到用户群体中(制造、分发和培
训)。
,信息系统分析与设计,
3,RUP过程分析
? 纵轴 ——代表过程的静态结构, 对具有良好定义的特
定人工活动细节进行描述 。 其中核心工作流主要包括:
n 需求 ——系统要做什么的描述;
n 系统分析和设计 ——描述循环增长状态中系统如
何实现;
n 实现 ——编码, 最终获得可执行版本的产品;
测试 ——对整个系统的确认。
,信息系统分析与设计,
3,RUP过程分析
图 5-22 开发过程
,信息系统分析与设计,
3,RUP过程分析
? ( 1) 阶段和迭代 ——时间轴:
? 初始阶段 (Inception)
? 细化阶段 (Elaboration)
? 构造阶段 (Construction)
? 交付阶段 (Transition)
,信息系统分析与设计,
3,RUP过程分析
? ( 2) 开发过程中的静态结构
? 在 RUP中有四种主要的建模元素用来表达统一过程:
? 角色:, 谁, ——定义了个人或若干人所组成小组的
行为和责任。
? 活动:, 如何, ——某个角色的活动是要求该角色中
的个体执行的工作单元。
? 产物:, 某事, ——产物是被产生、修改或为过程所
使用的一段信息。
? 工作流:, 何时, ——是产生具有可观察结果的活动
序列。
,信息系统分析与设计,
3,RUP过程分析
? ( 3) 核心工作流
? 商业建模
RUP为软件开发人员和顾客提供了相同的语言和过
程,并通过这种语言显示了如何在企业业务和软件模
型中创建和保持直观、一致的可跟踪性。
? 需求
需求工作流是对系统要做什么的描述,而开发人员
和用户将就该描述达成共识,以指导下一阶段的系统
开发工作。
,信息系统分析与设计,
3,RUP过程分析
? 分析和设计
描述循环增长状态中系统如何实现,其目标在于显
示系统, 如何, 在实现阶段被, 实现, 。
? 实现
实现是进行系统编码,最终获得可执行版本的产品
? 测试
? 发布
,信息系统分析与设计,
三、计算机辅助软件工程 (CASE)工具 Rational Rose
? Rational Rose是美国 Rational公司开发的一个 UML工
具, 它全面支持 UML模型中的元素, 提供给开发者一个
强大的, 高效的构建基于 C/S结构, 分布式企业应用和
适时系统的可视化建模工具 。
? 采用 Rose进行面向对象系统开发的好处在于:
1,通用的 UML标准建模语言可以改善开发团队内部和
团队与顾客之间的沟通;
2,正向和逆向工程支持软件快速开发和对企业旧软件
系统的集成 。
3,以用例为关注点的模型设计和系统开发模式可以提
高软件的质量;
下面对 Rose工具的主要特征进行简单介绍
,信息系统分析与设计,
三、计算机辅助软件工程 (CASE)工具 Rational Rose
图 5-23 Rational Rose的主界面
,信息系统分析与设计,
三、计算机辅助软件工程 (CASE)工具 Rational Rose
? 协作图 (Collaboration diagram) 见图 5-19
? 类图 (Class diagram) 见图 5-14
? 状态图 ( State diagram) 见图 5-16
? 活动图 (Activity diagram) 见图 5-17
? 此外,Rose对 UML中的构件图、配臵图等都有很好的支
持,完全实现了 UML中提到的各种图形的一些属性特征。
,信息系统分析与设计,
三、计算机辅助软件工程 (CASE)工具 Rational Rose
? 1,支持 UML的模型
? 2,支持多种开发语言
? 3,代码自动生成
? 4,模型的集成管理
? 5,团队开发
? 6,数据库表的生成
,信息系统分析与设计,
第七节 面向对象系统分析与设计实例
? 一,学生选课系统
? 1、需求获取
? 2、系统分析
? 3、系统设计
? 二,政府采购管理系统
? 1、需求获取
? 2、系统分析
? 3、系统设计
,信息系统分析与设计,
一、学生选课系统
? 本节以一个学生选课的例子来介绍使用 UML来进行系统开发的大
致过程 。 采用 UML进行信息系统开发可以分为以下四个步骤:
? 需求分析:捕获用户需求, 以用例图的方式来表达用户的功能需
求, 还可以辅以文本方式来进行其他一些非功能性需求的表示;
? 系统分析与设计:进行系统的类分析和功能分析, 以类图, 顺序
图, 状态图等多种方式来描述系统的结构和功能模型, 形成系统
源代码的抽象;
? 系统实施:将设计模型转换为系统的源代码, 是信息系统最终产
品的最重要部分之一, 这部分工作重点在系统编程工作;
? 系统测试:在系统构建后, 对系统的功能和结构进行确认, 使用
多种测试方法和手段来保证系统的正确性 。
? 作为面向对象系统分析和设计的实例,本节主要对前两部分的内
容进行简单介绍。
,信息系统分析与设计,
一、学生选课系统
? 1,需求获取
? 需求分析是对系统功能性和非功能性的捕获。是
下一步工作的基础和开始,学生选课涉及到, 教授,,
,学生,,, 系统管理员,,, 会计系统, 等几个执
行者,每个执行者都有一定的功能需求,针对这些用
户(执行者)进行分析,可以得到系统的功能需求情
况,并以用例图的方式进行表达,其中教授需要, 获
得课程清单,,, 选择授课课程, 两项服务,而学生
仅需要, 注册课程, 一项服务。这些功能需求都以用
例的方式表示在用例图中。
,信息系统分析与设计,
一、学生选课系统
图 5-24 用例图
,信息系统分析与设计,
一、学生选课系统
? 2,系统分析
? 系统分析阶段的主要工具有类图, 包图, 顺序图等 。
其中类图提炼了系统中涉及到的主要对象, 并可以建
立类之间的简单关系;包图对类图中的类进行分类处
理, 将相近或相似的类放在同一个包里, 控制这些类
和其它元素的可见性;顺序图可以表示系统用例的执
行过程, 对功能进行概略性的描述, 并可在设计阶段
提升对系统的操作之间的调用关系的描述 。
? 图 5-25给出了系统主要涉及到的类的情况,抽象出类。
图 5-26给出了系统的分析包的配臵,将系统划分成了
,People”,,University Artifacts”,,Interface”
三个包,各个包下包含了不同的类。
,信息系统分析与设计,
一、学生选课系统
图 5-25 分析类图
图 5-26 分析包图
,信息系统分析与设计,
一、学生选课系统
? 图 5-27给出了系统管理员进行课程维护的时间顺序图 。
整个过程的执行首先由管理员调用
ManageCurriulumForm 的 open操作来启 动, 最后 以
Course对象调用 CourseOffering的 save操作为结束 。
? 同时图 5-28 给出了用例, 生成目录, 中创建一个目录
的协作图,表示了在这个功能中各个对象之间的交互
关系。
,信息系统分析与设计,
一、学生选课系统
图 5-27 分析阶段的顺序图
,信息系统分析与设计,
一、学生选课系统
图 5-28 分析阶段的协作图
,信息系统分析与设计,
一、学生选课系统
? 3,系统设计
? 系统设计是在系统分析的成果之上来完成的, 系
统设计要将分析模型中概念性的模型转化为与具体语
言实现相挂钩的设计模型 。 设计模型包括类图, 顺序
图, 协作图, 状态图, 协作图等, 相比分析模型 。
? 图 5-29给出了 people包下的类图 。
? 图 5-31给出了设计阶段的协作图, 该图来源于图 5-28,
只不过在设计阶段 。
,信息系统分析与设计,
一、学生选课系统
图 5-29 设计类图
,信息系统分析与设计,
一、学生选课系统
图 5-30 状态图
,信息系统分析与设计,
一、学生选课系统
图 5-31 设计阶段的协作图
,信息系统分析与设计,
二、政府采购管理系统
? 1,需求获取
? 本子系统主要考虑政府采购准备阶段的部分工作流,
涉及到的功能包括供货商管理、资格审查、计划安排、
评标专家管理、统计查询、用户信息维护等等。图 5-
32给出了整个子系统中的部分用例。
,信息系统分析与设计,
二、政府采购管理系统
评标专家管

供货商管

计划安排
统计查询
用户信息维

计 划 安 排

处领导
局领导
专家
供货商
图 5-32 用例图
计划审查
,extend

,信息系统分析与设计,
二、政府采购管理系统
? 2,系统分析
? 根据确定的用例,对系统进行进一步的分析,从系统
静态结构的角度可以获得系统的分析类图,图 5-33给
出了本子系统中包含的部分类。
? 图 5-34和图 5-35分别给出了计划审查的顺序图和活动
图,活动图描述了计划审查功能的执行流程,其侧重
点在于活动的过程。顺序图描述了在执行计划审查的
顺序过程中对象的交互关系,其侧重点在于对象交互
的顺序关系。两者结合对计划审查功能进行了概念上
的描述。
,信息系统分析与设计,
二、政府采购管理系统
权限 工作人员 计划
报表供应商 评标专家
图 5-33分析类图
,信息系统分析与设计,
二、政府采购管理系统
Check3()= true 填写意见
若 Check3()= false
Check3()
Check2()= true 填写意见
若 Check2()= falseCheck2 ()
Check1() =
true
填写意见
若 Check1 ( ) =
false
Check1 (

招标计划

表单
项 1
承办

表单项
2
处领

表单
项 3
局领

图 5-34 计划审查的顺序图
,信息系统分析与设计,
二、政府采购管理系统
Check1()=false
Check1()=true
制定招
标计划
检查表单项 1
计划人 填
写意见
检查表单项 2
Check2()=false
Check2()=true
处领导填
写意见
检查表单项 3
Check3()=false 局 领 导 填
写意见
保存表单
图 5-35 计划审查的活动图
Check3()=true
,信息系统分析与设计,
二、政府采购管理系统
? 3,系统设计
? 系统设计阶段的重要成果之一是设计类图,图 5-36给
出了由分析类图细化所得到的设计类图。
? 图 5-37给出了系统的构件图,从构件的层次描述了系
统的体系结构层次。从应用开发的角度来看,图中的
每一个构件都可以在进一步细分为更为细小的多个构
件。
,信息系统分析与设计,
二、政府采购管理系统
grant()
revoke()
用户 ID
表单 ID
权限级别
*
*
1
表单项
项目编号 …
check()…
招标计划
编号
日期 …
dispatch()…

1
权限

1
工作人员
用户 ID
真实姓名 …
fill() …
计划安排
人 …

图 5-36 设计类图
处领导 …

局领导 …

,信息系统分析与设计,
二、政府采购管理系统
政府采购
业务系统
计划安排 计划审查 供货商管理
用户信息维护 统计
查询
专家管理
图 5-37采购业务系统构件图
,信息系统分析与设计,
二、政府采购管理系统
? 上述两个例子简单阐述了基于 UML的信息系统开发的过
程,在实际系统开发过程中,开发人员所使用的图形
可能会比这两个例子用到的多得多,而且对象之间的
关系也会复杂很多,开发人员可以基于面向对象的思
想并灵活运用设计模式来达到系统开发的目标。