软件过程与质量

Download Report

Transcript 软件过程与质量

第8章
面向对象分析
主讲教师:孙秀杰
内容提要
8.1面向对象方法概述
8.2 标准建模语言UML
8.3用例模型
8.4分析模型
8.1

面向对象
“面向对象”是一种认识客观世界的世界观,这种
世界观将客观世界看成是有许多不同种类的对象
构成的,每个对象有自己的内部状态和运动规律,
不同对象之间的相互联系、相互作用就构成了完
整的客观世界。


“面向对象”是从结构组织的角度去模拟客
观世界的一种方法,这种方法的基本着眼
点是构成客观世界的那些成分----对象。
用“面向对象”的观点去认识客观世界,
用“面向对象”的方法去模拟客观世界,
这就构成了“面向对象”的完整含义。

对象
对象是现实世界中个体或事物的抽象表示,是其
属性和相关操作的封装。属性表示对象的性质,
属性值规定了对象所有可能的状态。对象的操作
是指该对象可以展现的外部服务。

类和实例
类是某些对象的共同特性的表示,它描述了
这些对象内部是如何构造的。相同类的对象在它
们的操作和它们的信息结构两个方面都有相同的
定义。
在面向对象系统中,每个对象都属于一个类。
属于某个特定类的对象称为该类的实例。因此,
常常把对象和实例当作同义词。实例是从某类创
建的一个对象。

继承
如果类B继承类A,那么类A中描述的操作和信息结构将成为类B
的一部分。
借助继承,可以表示类之间的类似性,并且在其他类能继承的一
个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被
提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维
护。
通过抽取和共享公共特性就能够通用化一些类,并且把它们放在
继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个
类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新
类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类
专用化。
面向对象建模
面向对象思想比较自然地模拟了人类认识客
观世界的方式,面向对象的分析和设计应该从建
模开始。构造模型通常出于以下几个目地:




在着手解决一个复杂问题之前,对解决方案进行检测;
用于同客户或其他相关人员进行交流;
加强视觉效果;
对复杂问题进行简化。
面向对象建模
 模型是对事物的一种抽象,人们常常在正
式建造实物之前,首先建立一个简化的模
型,以便更透彻地了解它的本质,抓住问
题的要害;
 在模型中,人们总是剔除那些与问题无关
的、非本质的东西,从而使模型与真实的
实体相比更加简单、易于把握;
面向对象建模
 在建造一个复杂系统时,开发者必须从多
种不同的角度来抽象系统,使用准确的符
号来构造模型,然后检查这些模型是否符
合系统的需求,并逐步添加细节,从而将
这些模型转化成实现方案。
 建模语言是面向对象建模中的一个非常关
键的因素。
8.2 标准建模语言UML
UML的设计目标:
 运用面向对象概念来构造系统模型
 建立起从概念模型直至可执行体之间明显
的对应关系
 着眼于那些有重大影响的问题
 创建一种对人和机器都适用的建模语言
标准建模语言UML
UML概要



UML由OMG与1997年11月批准为标准建模语言
(Booch,Jacobson,Runbaugh)。
UML建立在当今国际上最有代表性的三种面向对
象方法(Booch(Grady Booch : The Booch
method targets object-oriented analysis and
design with emphasis on detailed design)方法,
OMT(Object Modeling Technique)方法,OOSE
方法)的基础之上。
UML是一种建模语言而不是一种方法,UML本身
是独立于过程的。
标准建模语言UML
UML为人们提供了从不同的角度去观
察和展示系统的各种特征的一种标准表达
方式。在UML中,从任何一个角度对系统
所作的抽象都可能需要用几种模型图来描
述,而这些来自不同角度的模型图最终组
成了系统的完整模型。
标准建模语言UML
一般而言,我们可以从以下几种常用的视角
来描述一个系统:





系统的使用实例:从系统外部的操作者的角度描述系统的
功能。
系统的逻辑结构:描述系统内部的静态结构和动态行为,
即从内部描述如何设计实现系统功能。
系统的构成:描述系统由哪些程序构件所组成。
系统的并发性:描述系统的并发性,强调并发系统中存在
的各种通信和同步问题。
系统的配置:描述系统的软件和各种硬件设备之间的配置
关系。
标准建模语言UML
UML模型图(5类,10种):
 用例图
 静态图(类图,对象图,包图)
 行为图(状态图,活动图)
 交互图(顺序图,合作图)
 实现图(构件图,配置图)
标准建模语言UML
UML语义




元-元模型:
元模型的基础体系结构,定义一种说明元模型的语言
元模型:
元-元模型的一个实例,定义一种说明模型的语言
模型:
元模型的一个实例,定义一种语言来描述信息领域
用户对象:
模型的一个实例,定义一个特定的领域
标准建模语言UML
UML主要文件:




UML概要(UML Summary)
UML语义(UML Semantics)
UML表示法指南(UML Notation Guide)
对象约束语言规约(Object Contraint language
Specification):该文件定义并介绍了一种对象约束语言
(OCL),其用途是用来说明在图形化的系统模型中不能
充分表达的建模信息。它是一种形式化语言。
http://www.rational.com/uml/index.jtmpl
8.3 用例图
从本质上将,一个用例是用户与计算
机之间为达到某个目的的一次典型交互作
用:



用例描述了用户提出的一些可见的需求;
用例可大可小;
用例对应一个具体的用户目标
用例图
用例图描述系统外部的执行者与系统
的用例之间的某种联系。



所谓用例是指对系统提供的功能(或称系统的用
途)的一种描述;
执行者是那些可能使用这些用例的人或外部系统;
用例和执行者之间的联系描述了“谁使用哪个用
例”。
用例图


用例图着重于从系统外部执行者的角度来
描述系统需要提供哪些功能,并且指明了
这些功能的执行者是谁;
用例图在UML方法中占有十分重要的地位,
人们甚至称UML是一种用例图驱动的开发
方法。
用例图
用例图中的图符:




用例
执行者
系统:用于界定系统功能范围,描述该系
统功能的用例都置于其中,而描述外部实体的执
行者都置于其外。
关联:连接执行者和用例,表示执行者所
代表的系统外部实体与该用例所描述的系统需求
有关。
用例图
用例图中的图符:




使用:由用例A连向用例B,表示用例A
中使用了用例B中的行为或功能。
扩展:由用例A连向用例B,表示用例B
«扩展»
描述了一项基本需求,而用例A则描述了该基本
需求的特殊情况。
注释体:对UML实体进行文字描述
«使用»
注释连接:将注释体与要描述的实体连
接,说明该注释体是针对该实体所进行的描述。
用例图
设置边界
更新帐目
记帐系统
贸易经理
风险分析
交易估计
营销人员
«使用»
«使用»
评价
进行交易
«扩展»
超越边界
销售人员
用例图
用例图
用例模型的获取:

获取执行者

获取用例
用例图
获取执行者:
 谁使用系统的主要功能(主要使用者)?
 谁需要系统支持他们的日常工作?
 谁来维护、管理系统使其能正常工作(辅助使用
者)?
 系统需要控制哪些硬件?
 系统需要与其他哪些系统交互?
 对系统产生的结果感兴趣的是哪些人?
用例图
获取用例:
 执行者要求系统提供哪些功能?
 执行者需要读、产生、删除、修改或存储
系统中的信息有哪些类型?
 必须提醒执行者的系统事件有哪些?
 执行者必须提醒系统事件有哪些?怎样把
这些事件表示成用例中的功能?
8.4活动图
活动图



活动图描述系统中各种活动的执行顺序,通常用于描述一
个操作中所要进行的各项活动的执行流程。同时,它也常
被用来描述一个用例的处理流程,或者某种交互流程。
活动图由一些活动组成,图中同时包括了对这些活动的说
明。当一个活动执行完毕之后,控制将沿着控制转移箭头
转向下一个活动。活动图中还可以方便地描述控制转移的
条件以及并行执行等要求。
在很多方面,活动图是结构化开发中流程图和数据流程图
(DFD) 的面向对象等同体 。
活动图
活动图的图符

实心圆表示活动图的起点,实际上是一个占位符,
带边框的实心圆表示终点。

圆角矩形表示执行的过程或活动。

菱形表示判定点。

箭头表示活动之间的转换,各种活动之间的流动
次序。
 [条件] 箭头上的文字表示继续转换所必须满足的条件,总
是使用格式“[条件]”来描述。

粗线条表示可能会并行进行的过程的开始和结束。
活动图
活动图
[没有咖啡]
找饮料
人
[没有可口可乐]
[找到可口可乐]
[找到咖啡]
将咖啡放到
过滤器中
加水到容器中
取出咖啡杯
取一听
可口可乐
把过滤器放
到咖啡炉上
点燃咖啡炉
冲调咖啡
熄灭咖啡炉
倒咖啡
喝饮料
活动图

活动图最适合支持描述并行行为,这使之
成为支持工作流建模的最好工具。

活动图最大的缺点是很难清楚地描述动作
与对象之间的关系。
活动图

对于以下情况可以使用活动图:
(1)分析用例;
(2)理解牵涉多个用例的工作流;
(3)处理多线程应用。

在下列情况下,一般不要使用活动图:
(1)显示对象间合作;
(2)显示对象在其生命周期内的运转情况。