UML面向对象概述

合集下载

3.0. UML与面向对象程序设计

3.0. UML与面向对象程序设计

参数化和实例化类
• Parameterized/Instantiated Class • C++ Template
T Tem plateClas s Instantiated Class
Utility Class
T P aram eterized ClassUtility
ClassUtility
• 用例(Use Case ) – 用例定义了系统执行的一组操作,对特定的用户产生可以观察的结 果。在UML图中,用例通常用一个实线椭圆来表示。
UseCas e
• 活动类( Active Class ) – 活动类是指类对象有一个或多个线程或进程的类。活动类和类相 似,只是它的对象代表的元素的行为和其他的元素同时存在。在 UML图中,活动类的表示方法和普通类的表示方法相似,也是使用 一个矩形,只是最外面的边框使用粗线。
UML用来描述模型的内容有3种,分别是事物( Things )、关系 Relationships )和图( Diagrams )。
UML中的事物
• UML中的事物包括结构事物、行为事物、组织事物和辅助事物(也称 注释事物)。 • 结构事物( Structure Things ) – 结构事物主要包括7种,分别是类、接口、协作、用例、活动类、 组件和节点:
什么是面向对象
• Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。 • 如果一个软件系统是使用这样 4 个概念设计和实现的,则我们认为 这个软件系统是面向对象的。 • 一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建 立和对象之间的通信来执行的。
对象
• • • • 对象是面向对象开发模式的基本成份。 每个对象可用它本身的一组属性和它可以执行的一组操作来定义。 属性一般只能通过执行对象的操作来改变。 操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递, 还可以为其它对象使用。

面向对象系统分析与设计-UML基础-用例图

面向对象系统分析与设计-UML基础-用例图
( 1)识别用例的一个重要来源是首先需要找出各种 可能的参与者,开列出他们的名单,然后通过对这些 参与者的调查,为他们描绘出各自要求的用例。 ( 2)识别用例的另一个重要来源是外部事件。考察 所有来自外部世界且需要作出反应的事件。一个给定 事件可能会引起一个与参与者无关的系统反应,或者 一个主要来自参与者的反应。
30
订货系统用例图
<<extend>> 信用卡支付 <<include>> 下订单 <<extend>> <<include>> 计算订单价钱 <<extend>> 退货处理 选择仓库 <<extend>> 退货服务 发货 顾客 缺货 发货者 收款员 付款 <<extend>> 信用卡系统
管理者
货物管理
UseCase
Actor
预定
取车
还车 客户
34
泛化关系
泛化关系(Generalization Association)是表示一般 与特殊的关系。用于共享用例的共同功能行为。用例 可以继承父用例的含义和行为,也可以对父用例的行 为进行增加和修改。子用例可以出现在父用例出现的 任何位置。 泛化关系用泛化箭线(带空心三角箭头的实线)表 示,从子用例发出,指向父用例。如果需要可以在箭 线上标出联系的名称。
32
关系
用例除了与参与者有联系以外,用例之 间还存在着一定的关系。参与者之间还存有 关系。关系类型包括: 关联关系 包含关系 扩展关系 泛化关系
33
关联关系
关联关系用于描 述参与者与用例之间 的关系。在 UML 中用 实线表示。例如,客 户启动系统的取钱功 能,表示客户启动与 用例的关联。关系方 向显示是谁启动了通 信。建立通信之后, 信息是可以双向流动 的。

UML教程

UML教程

适大所应数涉5人量、及的的规硬工工模件作作较的方等大式 )生的、命提软周供件期更系。好统(的的硬方件生便环、命境提周不供期断更一变多般化种,都类软和超件更过也
应适应)
制作 龙鹏飞
面向对象技术-UML
【控制软件复杂性的基本方法】
1、分解

大2、问抽题象分解为子问题,功能分解;大实体分解为子部分,
级 软 件 工
制作 龙鹏飞
面向对象技术-UML
【面向对象的基本概念】
3、封装
高 封装(encapsulation)就是把对象的属性和方法结合成

一个独立的系统单位,并尽可能地隐蔽对象的内部细节。 封装使一个对象形成两个部分:接口部分和实现部分。
软 对于用户来说,接口部分是可见的,而实现部分是不可
件 见的。

封装提供了两种保护。首先封装可以保护对象,防止用 户直接存取对象的内部细节,其次封装也保护了客户端,
级 Jacobson(雅 森),在各自方法的基础上,汲取

其他面向对象方法的优点,广泛征求意见,几经修 改完成的一种建模语言。

工 UML是一种定义良好、易于表达、功能强大且 程 适用于各种应用领域的建模语言,已被OMG采纳为
标准,目前UML已成为面向对象技术领域内占主导 地位的标准建模语。掌握UML语言,不仅有助于理
解面向对象的分析与设计方法,也有助于对软件开
发全过程的理解。
制作 龙鹏飞
面向对象技术-UML
【软件危机】
上世纪60年代中期开始爆发的软件危机,产生于大中型
高 软件。

大中型软件与小型软件有本质的区别:大型软件系统的 开发周期长、开发费用昂贵、开发出来的软件质量难以保

第四章 用例图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社

第四章 用例图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
定是否要中断基用例的执行从而执行扩展用例中的片段。
依赖关系
特性 作用 执行过程 对基用例的要求
include
extend
增强基用例的行为
增强基用例的行为
包含用例一定会执行
扩展用例可能被执行
在没有包含用例的情况下,在没有扩展用例的情况下, 基用例可以是也可以不是 基用例一定是良构的 良构的
表示法
箭头指向包含用例
是用例的重要服务对象,而次参与者处于一
种协作地位。
系统管理员
用例与参与者
在确定用例时可以通过参与者入手来寻找用例:
参与者的主要任务是什么? 参与者需要系统的什么信息? 参与者可以为系统提供什么信息? 系统需要通知参与者发生的变化和事件吗? 参与者需要通知系统发生的变化和事件吗?
用例的特征
用例的特征保证用例能够正确地捕捉功能性需求,同时也是判断用 例是否准确的依据。
不改变基用例的同时,根据需要自由地向用
例中添加行为。
检查实名信息
依赖关系——扩展
扩展用例的使用包括四个部分:
基用例:需要被扩展的用例,如图5-10中的“注册”用例。 扩展用例:提供所添加的行为序列的用例,如图5-10中的“检查实名信
息”用例。 扩展关系:使用虚线箭头表示,箭头指向基用例。 扩展点:基用例中的一个或多个位置,表示在该位置会根据某条件来决
一个父参与者的直接实例,这就要求属于抽象父
直接客户
电话客户
参与者的外部对象一定能够属于其子参与者之一。
网上客户
用例的概念 用例与参与者 用例的特征 用例的粒度
用例
用例的概念
用例是类元提供的一个内聚的的功能单元,表明系统与 一个或多个参与者之间信息交换的顺序,也表明了系统 执行的动作。

UML基础及Rose建模实用教程课后习题及答案

UML基础及Rose建模实用教程课后习题及答案

UML根底与Rose建模实用教程课后习题及答案第1章面向对象概述1. 填空题〔1〕软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。

〔2〕类是具有一样属性和操作的一组对象的组合,即抽象模型中的“类〞描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。

〔3〕面向对象程序的根本特征是抽象、封装、继承和多态。

2. 选择题〔1〕可以认为对象是ABC。

〔A〕某种可被人感知的事物〔B〕思维、感觉或动作所能作用的物质〔C〕思维、感觉或动作所能作用的精神体〔D〕不能被思维、感觉或动作作用的精神体〔2〕类的定义要包含以下的要素ABD。

〔A〕类的属性〔B〕类所要执行的操作〔C〕类的编号〔D〕属性的类型〔3〕面向对象程序的根本特征不包括B。

〔A〕封装〔B〕多样性〔C〕抽象〔D〕继承〔4〕以下关于类与对象的关系的说法不正确的选项是A。

〔A〕有些对象是不能被抽象成类的〔B〕类给出了属于该类的全部对象的抽象定义〔C〕类是对象集合的再抽象〔D〕类用来在存中开辟一个数据区,并存储新对象的属性3. 简答题〔1〕什么是对象?试着列举三个现实中的例子。

对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。

〔2〕什么是抽象?抽象是对现实世界信息的简化。

能够通过抽象将需要的事物进展简化、将事物特征进展概括、将抽象模型组织为层次构造、使软件重用得以保证。

〔3〕什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的部细节。

封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。

对象的私有属性只能够由对象的行为来修改和读取。

二是尽可能隐蔽对象的部细节,与外界的联系只能够通过外部接口来实现。

通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:防止对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序的影响。

UML概述

UML概述

45
UML的基本视图
UML的五类基本视图;
UML的用例视图; UML的逻辑视图; UML的构件视图; UML的并发视图; UML的配置视图。
2020/1/4
成都信息工程学院软件工程系
2020/1/4
成都信息工程学院软件工程系
33
场景(Scenarios)
场景用于刻画构件之间的相互关系,将四个视 图有机地联系起来。可以描述一个特定的视图 内的构件关系,也可以描述不同视图间的构件 关系。
2020/1/4
成都信息工程学院软件工程系
34
UML中的图和各视图的对应关系
场景视图:用例图 逻辑视图:类图和对象图 开发视图:类图和组件图 进程视图:顺序图、协作图、状态图、活
2020/1/4
成都信息工程学院软件工程系
3
Rational三剑客
Jim Rumbaugh Ivar Jacobson
Grady Booch
2020/1/4
成都信息工程学院软件工程系
4
方法学大 战阶段
UML的历史
统一阶段

标准化阶 段
众 反

工业化阶 段
2020/1/4
成都信息工程学院软件工程系
依赖( dependency)
依赖关系描述一个元素对另一个元素的依附。
聚合(aggregation)
描述元素之间整体和部分的关系
2020/1/4
成都信息工程学院软件工程系
15
图(diagram)
UML模型图(5类,9种): 用例图 静态图(类图,对象图) 行为图(状态图,活动图) 交互图(顺序图,协作图) 实现图(构件图,配置图)

2统一建模语言UML

2统一建模语言UML

出现的方式

多态性
(section 2.3.2)
capturing use of single action word to represent different things,
depending on context根据上下文,捕获单一行为词表示的不同内 容
Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

2.1面向对象开发方法
面向对象的目标: 为实现现实世界和设计中的结构单元间提供直接映射。 基本概念: 类,对象,聚集,消息,客户 面向对象方法的优势: 面向对象的特点:继承,多态,接口,封装 简化开发过程 支持软件复用 改善软件结构
面和向对象以前
Real world concepts
第二章 统一建模语言UML
主要内容
面向对象的设计开发方法 面向对象的目标 面向对象的概念 面向对象的特点 面向对象方法的优势
UML概述
UML的产生发展 UML的基本组成
UML建机制
UML静态建模 类图,对象图,包图,构件图,组合结构图,部署图 UML动态建模 活动图,顺序图,通信图,交互图,时序图,状态图,用例
继承
相对于结构化编程中 的模块重用,面向对 象中的继承体系显得 更灵活,对代码的控 制手段更多,从而推 动了代码复用的程度, 但却加大了学习掌握 的难度。
电子邮件创建示例的需求 Page 1 of 4
1. 概要: Produces e-mail text for various types of customers.给不同类型的用户撰写 电子邮件

什么是UML

什么是UML

什么是UMLUML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

UML支持面向对象的技术,能够准确的方便地表达面向对像的概念,体现面向对象的分析和设计风格。

UML不仅可用于软件设计,也可以用于软件需求分析。

UML的模型主要有三部分构成事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象。

关系(Relationships):关系把事物紧密联系在一起。

图(Diagrams ):图是事物和关系的可视化表示。

UML图分为结构型和行为型两种结构型的图描述的是某种结构,这种结构在某段时间内应该是稳定的,静态的;而结构型的图描述的是某种行为,是动态的。

结构型的图(Structure Diagram)类图(Class Diagram)对象图(Object Diagram)构件图(Component Diagram)部署图(Deployment Diagram)包图(Package Diagram)行为型的图(Behavior Diagram)活动图(Activity Diagram)状态机图(State Machine Diagram)顺序图(Sequence Diagram)通信图(Communication Diagram)用例图(Use Case Diagram)时序图(Timing Diagram)类图描述一组对象、接口、协作等事物之间的关系。

类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作。

类图描述的是一种静态关系,在系统的整个生命周期都是有效的。

类图是业务概念模型分析的有利武器,也是面向对象分析能力的强有力训练工具。

对象图是类图的实例,几乎使用与类图完全相同的标识。

一个对象图是类图的一个实例。

由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

对象(Object)是面向对象的基本构造单元。是系 统中用来描述客观事物的一个实体,一个对象由一组属 性和对属性进行操作的一组方法组成。
对象不仅能表示具体的实体,也能表示抽象的规则 、计划或事件。主要有如下的对象类型:
(1)有形的实体:如汽车、书、计算机。 (2)作用:如医生、教师、员工、学生。 (3)事件:如飞行、事故、中断、开会等。 (4)性能说明:如车厂对车辆的性能说明,往往要 列出型号及各种性能指标等。
对外访问时提供了4种访问控制级别: (1)public:公有访问。 (2)protected:受保护的。 (3)private:私有访问。 (4)default:默认的。
继承(Inheritance)是一种一般类与特殊类的层次 模型。继承性是指特殊类的对象具有其一般类的属性和 方法,在其之上又增加了自己的特殊属性和方法。
l 对象(Object)是面向对象的基本构造单元。是系统中 用来描述客观事物的一个实体,一个对象由一组属性 和对属性进行操作的一组方法组成。一个类定义了一 组大体上相似的对象。一个类所包含的方法和数据描 述一组对象的共同行为和属性。
l 1.什么是对象,具有什么特征? l 2.简述面向对象的开发过程。 l 3.UML在面向对象开发过程中起到的作用是什么? l 4.什么是建模,有什么优点? l 5.什么是面向对象技术?
一个类定义了一组大体上相似的对象。一个类所包 含的方法和数据描述一组对象的共同行为和属性。例如 ,窗口,车轮,玻璃等都是类的例子。如图2.1所示的是 类的例子,其中类的名字是图书Book。
封装(Encapsulation)就是把一个对象的方法和属 性组合成一个独立的单位,并尽可能隐蔽对象的属性、 方法和实现细节的过程。
系统开发好后,在交付用户使用前,必须对程序进 行严格的测试,这个阶段称为面向对象测试OOT。
1、软件建模的概念 模型是对现实存在的实体进行抽象和简化,模型提
供了系统的蓝图。模型过虑了非本质的细节信息,使问 题更容易理解。
为建立复杂的软件系统,我们必须抽象出系统的不 同视图,使用精确的符号建立模型,验证这些模型是否 满足系统的需求,并逐渐添加细节信息把这些模型转变 为实现。这就是软件建模。这样的一个过程就是软件模 型形成的过程,软件建模是捕捉系统本质的过程,把问 题领域转移到解决领域的过程。
l 在学习面向对象程序设计之前,一般都会学习面向过 程的程序设计,例如,使用C面向过程的程序设计语言, 面向过程的语言是按流程化的思想来组织的。在这些 语言的设计思想中,通常将存放基本数据类型的变量 作为程序处理对象、以变量的赋值作为程序的基本操 作、以变量值的改变作为程序运行的状态。这种程序 设计风格存在着数据抽象简单、信息完全暴露、算法 复杂、无法很好地描述客观世界等缺点。在程序设计 过程中,为了实现有限度的代码重用,公共代码被组 织成为过程或函数。当需要代码重用时,调用已经组 织好的过程或函数。在这种应用方式中,如果软件项 目庞大,程序的调试和维护将变得异常困难。
消息是实现对象之间进行通信的一种机制,对于一 个对象可以接收不同形式的多个消息,并产生不同的结 果;相同形式的消息可以发送给不同的对象,并产生不 同的结果;在发送消息的时候可以不考虑具体的接收者 ,对象可以对消息做出响应,也可以拒绝消息,也就是 说不是必须要对消息做出响应。
通常,一个消息由以下几部分组成: (1)提供服务的对象名。 (2)服务的标识,即方法名。 (3)输入信息,即实际参数。 (4)响应结果,即返回值或操作结果。
发现问题。 Ø 模型为代码生成提供依据,帮助我们按照实际情况对系
统进行可视化。 Ø 模型允许我们详细说明系统的结构或行为。给出了一个
指导我们构造系统的模板。并对我们做出的决策进行文
档化。
l 面向对象程序设计是一种新兴的程序设计方法,或者 是一种新的程序设计规范,它使用对象、类、继承、 封装、消息等基本概念来进行程序的设计。在面向对 象方法中需要明确什么是对象,类,以及类的相关特 征。
2、软件建模的用途 Ø 软件模型就是对复杂问题进行分层,从而更好地解决问
题。 Ø 有效的软件模型有利于分工与专业化生产,从而节省生
产成本。 Ø 对于软件人员来说,模型就好像是工程人员的图纸一样
重要。
3、软件建模的优点 Ø 使用模型便于从整体上、宏观上把握问题,以便更好的
解决问题。 Ø 软件建模可以加强软件工作人员之间的沟通。便于提早
多态性(Polymorphism)是指类中同一函数名对应 多个功能相似的不同函数,可以使用相同的调用方式来 调用这些具有不同功能的同名函数,这些同名的函数可 以是参数的个数或是类型不同,但是函数名相同,当进 行调用的时候,根据所传的数据选定相应的函数,从而 去执行不同的功能。如图2.4所示的就是多态性的表现
向对象方法的思想进行软件系统的开发过程共4个阶段: (1)系统调查和需求分析,分析问题并求解
对用户的开发需求进行调查和研究,这一个阶段通 常称之为面向对象分析,即OOA。 (2)整理问题
对第一阶段的结果进一步抽象、归类,进行具体的 设计,提出程序设计的思路和方法,这个阶段即为面向 对象设计OOD。 (3)程序实现:面向对象编程OOP。 (4)系统测试
在继承中,需要明确这样两个概念,子类和父类。 子类:指的是通过继承创建的新类称为“子类” 或 者“派生类”。 父类:指的是被继承的类称为“பைடு நூலகம்类”、“ 父类” 或“ 超类”。
如图2.2表示了父类A和它的子类B之间的继承关系, 箭头从子类B指向父类A。子类B由继承部分(C)和增加 部分(D)组成。
继承性分为单重继承和多重继承两类。 单重继承:指的是一个子类只有一个父类; 多重继承:指的是一个子类可以有多个父类。 单重继承和多重继承时父类和子类之间的关系如图2.3 所示,其中(a)表示的是单重继承,(b)表示的是多 重继承。
相关文档
最新文档