第2章 面向对象技术与UML-郭

合集下载

面向对象的概念与UML介绍

面向对象的概念与UML介绍

实现图
组件图
配置图
2.2.2UML建模过程
分析阶段
设计阶段
制作人:赵飞
2.2.3模型视图
1.用例视图
用例视图用于建立系统的概念模型,定义 系统的外部行为。包括业务用例模型包和 用例模型包,它依赖于业务用例模型包, 包括的UML图有用例图.顺序图.协作图和活动图
2.逻辑视图
逻辑视图描述了支持用例图功能的 逻辑结构,包括UML图有类图和状态图。逻辑视图用于建立系统的逻辑关系,包括分 析模型和设计模型,模型包图组织,在模型包图下可建立包中的对象类⁄对象图.交互图. 状态图.活动图。
3.组件视图
在UML中,组件视图描述的是系统的实现。它对模型中的组件进行建模,描述应用程序搭 建的软件单元以及组件之间的依赖,从而可以估计更改的影响组件视图由组件图组成
4.配置视图
配置视图显示了系统的软件硬件的物理配置,配置视图由配置图组成
制作人:赵飞
2.3用例图
• 2.3.1用例图的元素 • 2.3.2用例间的关系
制作人:赵飞
学学
系系
组合
5.依赖关系。
它是类与类之间的连接, 表示一个类依赖于另一 各类的定义
借借对借借
依赖
借借借
制作人:赵飞
2.4.2对象图
显示了一组对象和它们之间的关系。一个对象可看成一个类图的特殊用例使用的 标识与类图基本一致,不同的对象是对显示类的多个对象实例,而不是实际 的类。由于对象存在生命周期,因此对象图只能存在于系统的某一段时期。 表示方法: 对于对象图,不需要提供单独的形式。类图中就包含对象,所以只有对象而 无类的类图就是一个对象图
对象从产生到结束可以有很多不同的状态。影响 对象的行为,如果这些状态的数目可以计算,则 能够用状态图(State Diagram)来对象的行为进 行建模。状态图显示了单个类的生命周期。状态 图可以描述以特定对象的全部能存在的状态,还可 以描述一起状态转移的事件。一般面向对象技术 使用状态图表示单个对象在其生命周期中的行为。 一个状态图包含一系列的状态以及它们之间的转 移

面向对象技术与UML

面向对象技术与UML
示例
假设有一个“动物”类,我们可以创建一个“狗”类来继承“动物”类,并添加特定的狗的行为。这样 ,如果需要添加其他动物类型,我们可以轻松地创建新的子类,而不需要修改“动物”类的代码。
里氏替换原则
定义
如果S是基类,T是派生类,则程序中使用S类型的对象的地 方都可以用T类型的对象来替换,而不会改变程序的行为。
案例二:复杂类的UML表示
定义一个复杂的类"Employee",包含属性"name"、"age"、 "department"和"position",以及方法"work"、"getSalary"和 "setSalary"。
使用UML类图表示该类,并使用聚合关系表示Employee类与 Department类之间的关系。
示例
一个“用户管理”类可能负责管 理用户信息、用户权限等。如果 它还负责处理订单或管理库存, 那么它就违反了单一职责原则。
开闭原则
定义
软件实体应该通过扩展来增加功能,而不是修改已有的代码。
解释
开闭原则鼓励使用继承和多态来实现软件的可扩展性。这意味着当需要添加新功能时,可以通过创建新的子类或实现 新的接口来扩展现有代码,而不是修改已有的代码。
确定方法
为每个类确定其方 法,包括私有、保 护和公共方法。
确定关联关系
使用实线和虚线表 示类之间的关联关 系。
类图的阅读与分析
阅读
01
首先从上到下、从左到右阅读类图,了解各个类的属性和方法。
分析
02
分析类之间的继承和关联关系,理解系统的层次结构和交互关
系。
工具

面向对象方法学与UML课件

面向对象方法学与UML课件

依赖关系
面向对象方法学与UML
关联关系
• 关联(association)是一种结构关系,它描述了两 个或多个类的实例之间的连接关系,是一种特殊 的依赖。
• 关联分为普通关联、限定关联、关联类,以及聚 合与复合。
面向对象方法学与UML
关联关系——普通关联
• 普通关联是最常见的关联关系,只要类与类之间 存在连接关系就可以用普通关联表示。普通关联 又分为二元关联和多元关联。
面向对象方法学与UML
4.2 面向对象的开发方法
面向对象软件开发方法的特征 ➢方法的唯一性 即方法是对软件开发过程所有阶段进行综合 考虑而得到的。 ➢从生存期的一个阶段到下一个阶段的高度连 续性 即生存期后一阶段的成果只是在前一阶段成 果的补充和修改。 把面向对象分析(OOA)、面向对象设计 (OOD)和面向对象程序设计(OOP)集成到生 存期的相应阶段。
面向对象方法学与UML
消息通信(Message Communication)
• 消息是一个对象与另一个对象的通信单元,是要求 某个对象执行类中定义的某个操作的规格说明。
• 发送给一个对象的消息定义了一个方法名和一个参 数表(可能是空的),并指定某一个对象。
• 一个对象接收到消息,则调用消息中指定的方法, 并将形式参数与参数表中相应的值结合起来。
• 但在某些情况下,需要对关联关系的语义做详细的定义、 存储和访问,为此可以建立关联类(association class),用来描述关联的属性。
• 关联中的每个链与关联类的一个实例相联系。关联类通过 一条虚线与关联连接。
面向对象方法学与UML
关联关系——聚合
• 聚合(Aggregation)也称为聚集,是一种特殊 的关联。它描述了整体和部分之间的结构关系。

2020 智慧树知到 烟台大学郭艳燕《面向对象与UML》山东联盟

2020 智慧树知到 烟台大学郭艳燕《面向对象与UML》山东联盟

D. UML 是一种可视化的建模语言。 正确 本题总得分 20 分
2
【单选题】 (20 分) 以下关于 UML 的叙述中,不正确的是( )
A. UML 也是一种编程语言
B. UML 是一种可视化的建模语言
C. UML 适用于面向对象开发方法
D. UML 适用于软件生命周期的各个阶段 正确 本题总得分 20 分
2
【单选题】 (20 分)
模型的实质是什么?( )
A. 对现实的简化
B. 可视化
C. 对现实的复杂化
D. 便于交流 正确 本题总得分 20 分
3
【单选题】 (20 分)
对软件模型而言,下面说法错误的是(
)
A. 是软件的中间形态
B. 是人员交流的媒介
C. 是软件的标准文档
D. 是软件升级和维护的依据 正确 本题总得分 20 分
D. 面向对象的设计原则 错误 本题总得分 0 分
5
【多选题】 (3 分)
平时分析问题,总要获取哪些方面的信息?(

A.
事物之间如何协作完成任务?
B.
事物之间的关系是什么?
C.
事物的特征和行为是什么?
D.
问题中涉及哪些事物?
正确 本题总得分 3 分
第一章-软件建模概述
1
【多选题】 (20 分)
以下对软件建模描述正确的是(
B. 可分解性、可组合性、可分类性
C. 抽象性、继承性、封装性、多态性
D. 继承性、封装性、抽象性
正确 本题总得分 10 分
7
【单选题】 (10 分) 封装是一种( )技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分 开。

UML第2章 面向对象方法论

UML第2章 面向对象方法论

整体-部分结构 整体整体-部分结构又称作组装结构, 整体-部分结构又称作组装结构,它描述对象 之间的组成关系,即:一个(或一些)对象是 之间的组成关系, 一个(或一些) 另一个对象的组成部分。 另一个对象的组成部分。
实例连接 实例连接反映对象与对象之间的静态联系。 实例连接反映对象与对象之间的静态联系。 消息连接 消息连接描述对象之间的动态联系 。
2.1.4 属性 属性是一个类中对象所具有的数据值 ,不同的 对象实例可以有相同或不同的属性。 对象实例可以有相同或不同的属性。每个属性 名在一个表中是惟一的, 名在一个表中是惟一的,而在两个不同的类中 可以有相同的属性名 。 不要把内部标识和真实应用属性混淆起来。内 不要把内部标识和真实应用属性混淆起来。 部标识符纯粹是为了实现方便, 部标识符纯粹是为了实现方便,在问题域中是 没有含义的。 没有含义的。
图2-1
无公共祖先的多重继承
图2-2
多重继承的工作环境 如子类有好几个同样重要的超类, (1)如子类有好几个同样重要的超类,那么最 好用“授权方法”并保持该模型的对称性。 好用“授权方法”并保持该模型的对称性。 (2)如某一超类明显地处于支配地位,而其他 如某一超类明显地处于支配地位, 的类处于相对次要地位时, 的类处于相对次要地位时,用单一继承和授权 方法来实现多重继承是最佳选择。 方法来实现多重继承是最佳选择。
属性和服务, 是构成对象的两个主要因素, 属性和服务 , 是构成对象的两个主要因素 , 其定义是: 其定义是: (1) 属性是用来描述对象静态特征的一个数据项 (2) 服务是用来描述对象动态特征 ( 行为 ) 的一 服务是用来描述对象动态特征( 行为) 个操作序列。 个操作序列。
对象只描述客观事物本质的、与系统目标有关 对象只描述客观事物本质的、 的特征,而不考虑那些非本质的、 的特征,而不考虑那些非本质的、与系统目标 无关的特征。 无关的特征。 对象是属性和服务的结合体,二者是不可分的; 对象是属性和服务的结合体,二者是不可分的; 而且对象的属性值只能由这个对象的服务来读 取或修改 .

面向对象技术与UML

面向对象技术与UML

继承性举例
继承传递:大学生可以继承“人”和“学生”的特
征 父类 多重继承: 在职研究生既可以继承“学生”的特 征,又可以继承“教师”的特征 人
工人 学生 教师 农民
中学生 大学生 研究生 派生类
助教
讲师
具有继承关系的对象的特性
对象类间具有共享特征(包括数据和程序代
码的共享) 对象类间具有细微的差别或新增部分(包括 非共享的程序代码和数据) 对象类间具有层次结构。 继承所具有的作用有两个方面:
第二节 面向对象分析
本节要求了解面向对象分析的基本过程和基本原则 OOA: Object-oriented Analysis . 指利用面向对象的概念和方法构建软 件模型。 面向对象分析的基本过程 理解 表达
验证
对理解和表达进 行校验,以达到 理想效果。
需求
建立模型
在面向对象分析中,主要建立对象模型,动态模型和功能模型。 对象模型是最基本最重要的模型。
3) 可重用性好 有两种方法可以重复使用一个对象类:一种方法是创 建该类的实例,从而直接使用它;另一种方法是从它 派生出一个满足当前需要的新类。 4)较易开发大型软件产品 5)可维护性好
2.1.2 喷泉模型
“喷泉”这个词体现了面向对象软 件开发过程迭代和无缝的特性。 图中代表不同阶段的圆圈相互重 叠,这明确表示两个活动之间存 在交迭;而面向对象方法在概念 和表示方法上的一致性,保证了 在各项开发活动之间的无缝过渡, 事实上,用面向对象方法开发软 件时,在分析、设计和编码等项 开发活动之间并不存在明显的边 界。图中在一个阶段内的向下箭 头代表该阶段内的迭代(或求 精)。图中较小的圆圈代表维护, 圆圈较小象征着采用了面向对象 范型之后维护时间缩短了。

面向对象与UML2

面向对象与UML2

单击OK。
8.3 控制焦点的嵌套

嵌套的控制焦点依附在另外 一个控制焦点之上,它可以 确切地区分一个消息开始和 终止的具体位置。 要显示嵌套的控制焦点,必 须同时选中Options对话框 中Diagram标签中的 Hierarchical Messages和 Focus of Control两个选 项。
分析:党务信息平台的类图
学院有许多党组织,通过党组织编码唯一的 确定一个党组织,每个党组织有一名或多名党务 管理员,每个党务管理员能够管理本级及其下属 党组织;每个党组织有多名党员,每名党员只能 属于一个党组织。党组织记录每一年度增加的党 员信息以及每一年度减少的党员信息。
注意: 关联规范中的“Role A Detail” 和“Role B Detail”标签
包容(Containment) 设置关联属性是按值还是按引用包容
选项 通过值 含义 按数值。属性放在类中
通过涉及 非指定
按引用。属性放在类外,类指向这个属性 未指定。还没有指定控制类型
按“成分”聚合(A Part of)
按“成员”聚合(A Number of) 在Rose规范中统称为聚合关系,通过包容(Containment) 选项的设置加以区别。在有些标准中称为“聚合”与“复 合”。
7.3 链的规范 2)Messages标签 显示了当前链接上的消息信 息 右图说明: 一个是正向的链消息(由客 户发给供应者),一个是逆 向的链消息(由供应者返回 给客户);消息的编号分别 为2和4;消息名分别为通知 和更新,接收对象分别为操 作系统类的实例和图形界面 类的实例。
8
顺序图所特有的元素——控制焦点
在系统分析阶段,类图主要用于显示角色和提供 系统行为的实体的职责;

《UML2面向对象分析与设计 第2版 》读书笔记思维导图

《UML2面向对象分析与设计 第2版 》读书笔记思维导图
4 9.4 数据库
设计
5
9.5 练习题
第10章 从模型到代码
10.1 正向工程 10.2 逆向工程
10.3 模型驱动架 构
10.4 练习题
参考文献
图书资源支持
关于本书
谢谢观看
04
7.4 职责 分配模式
06
7.6 练习 题
05
7.5 其他 问题
第8章 架构设计
8.1 过渡到设计
8.2 架构设计基 础
8.3 确定设计元 素
8.4 引入设计机 制
8.6 描述系统部 署
8.5 定义运行时 架构
8.7 练习题
第9章 构件设计
9.1 用例设 1

9.2 子系统 2
设计
3
9.3 类设计
3.7 练习题
第4章 用例建模
4.1 理解需求
4.2 从业务模型 获取需求
4.3 建立用例模 型
4.4 编写用例文 档
4.6 其他问题
4.5 重构用例模 型
4.7 练习题
第5章 用例分析
01
5.1 理解 分析
025.2 从用 例开始分析035.3 架构 分析
04
5.4 构造 用例实现
06
5.6 练习 题
05
5.5 定义 分析类
第6章 面向对象的设计原则
6.1 设计需要原 则
6.2 Liskov替换 原则
6.3 开放—封闭 原则
6.4 单一职责原 则
6.6 依赖倒置原 则
6.5 接口隔离原 则
6.7 练习题
第7章 面向对象的设计模式
01
7.1 模式 与设计模式
02
7.2 GoF模 式

UML_2面向对象和OOAD

UML_2面向对象和OOAD

23
类和对象的区别
如何区分类和对象——以 如何区分类和对象 以“人”和“张三”为例 张三” “人”描述了所有人(包括“张三” )都具有的属性和行为, 描述了所有人(包括“张三” 都具有的属性和行为, 如有姓名、身高、体重,有鼻子、眼睛、四肢,能交流、 如有姓名、身高、体重,有鼻子、眼睛、四肢,能交流、有思 维等等 类(“人”)描述的概念是抽象的
面向过程与面向对象
如果你的分析习惯是在调研需求时最先弄清楚有多少 业务流程,先画出业务流程图,然后顺藤摸瓜, 业务流程,先画出业务流程图,然后顺藤摸瓜,找出 业务流程中每一步骤的参与部门或岗位, 业务流程中每一步骤的参与部门或岗位,弄清楚在这 一步参与者所做的事情和填写表单的结果, 一步参与者所做的事情和填写表单的结果,并关心用 户是如何把这份表单传给到下一个环节的。 户是如何把这份表单传给到下一个环节的。那么很不 你还在做面向过程的事情。 幸,你还在做面向过程的事情。 如果你的分析习惯是在调研需求时最先弄清楚有多少 部门,多少岗位,然后找到每一个岗位的业务代表, 部门,多少岗位,然后找到每一个岗位的业务代表, 问他们类似的问题:你平时都做什么? 问他们类似的问题:你平时都做什么?这件事是谁交 办的?做完了你需要通知或传达给谁吗? 办的?做完了你需要通知或传达给谁吗?做这件事情 你都需要填写些什么表格吗?....那么恭喜你 那么恭喜你, 你都需要填写些什么表格吗?....那么恭喜你,你已经 OO啦 OO啦!
C语言 语言 完全面向过程
C++( C with ( class ) 出现面向对象思想
JAVA 完全面向对象
程序设计方法
传统的结构化程序设计 SP(Structured Programming) 面向对象的程序设计 OOP(Object Oriented Programming)

《UML面向对象技术》期末复习吐血整理

《UML面向对象技术》期末复习吐血整理

《UML面向对象技术》期末复习吐血整理《UML面向对象技术》清华大学出版社王少锋编著第一章面向对象技术概述1.对象:是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。

对象之间2.通过消息通信。

3.类:是具有相同属性和方法的一组对相机和,它为属于该类的全部对象提供了统一的描述。

4.封装:把对象的属性和方法结合成一个独立的系统单位,并尽可能的隐蔽对象的内部细节。

5.继承:利用继承,子类可以继承父类的属性或方法。

6.多态:指是一个实体在不同上下文条件下具有不用意义或方法的能力。

7.消息:向对象发出服务请求。

第二章UML概述1.UML:Unified Modeling Language 统一建模语言2.UML定义1:是对软件密集型系统中的制品进行可视化,详述,构造和文档化的语言。

3.UML定义2:(1)语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。

(2)表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

4.UML特点:①统一的标准。

②面向对象。

③可视化、表示能力强大。

④独立与过程。

⑤概念明确,建模表示法简洁,图形结构清晰,容易掌握和使用。

注:UML不是一个独立的软件开发方法,而是面向对象软件开发方法中的一个部分。

5.四种关系:①依赖②关联③泛华④实现6.九种图:①用例图②顺序图③协作图④类图⑤对象图⑥状态图⑦活动图⑧构件图⑨部署图第三章用例和用例图1.用例图:是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图。

2.用例:是系统中的一个功能单元。

3.参与者:是指系统以外的,需要使用系统或与系统交互的东西,包括人、设备、外部系统等。

4.用例间的关系:①泛化:代表一般与特殊的关系。

在泛化关系中,子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或覆盖父用例中的行为和含义。

面向对象的概念与UML介绍

面向对象的概念与UML介绍
上一页 下一页 返回
2.2UML简介
支持UML的CASE工具有Rational Rose、Visio、 Together等,我们将在后面章节中介绍Rational Rose 的使用方法。
1.用例视图 用例视图用于建立系统的概念模型,定义了系统的外部行为,
帮助用户理解和使用系统。Use Case视图包括业务用例模 型包和用例模型包,用例模型包依赖于业务用例模型包。用 例视图包括的UML图有用例图、顺序图、协作图和活动图。 2.逻辑视图 逻辑视图描述了支持用例图功能的逻辑结构,包括的UML图 有类图和状态图。逻辑视图用于建立系统的逻辑模型,包括
标准建模语言UML的重要内容可以由下列五类图(共9种图 形)来定义:表2-1对UML中的9种图作了基本的描述:
从应用的角度看,采用面向对象技术进行系统设计时,第一步 是描述需求;第二步是按照已确定的需求建立系统的静态模型, 以构造系统的结构;第三步是描述系统的行为。其中第一步和 第二步所建立的模型都是静态的模型,包括用例图、类图(包 含包)、对象图、组件图和配置图等五个图形,
2.3.2用例间的关系
在UML里, 一个用例图包括用例的集合,该集合定义整个系 统的功能。用例图是表达用例和系统参与者及其之间关系的 载体。这些关系可以是:继承关系、扩展关系和包含关系。
1.继承关系 继承表示几个元素的某些共性。例如在图2-5中,“验证密
码”和“扫描ID卡”都是“验证用户”的特例,具有一些共 同的特性,将这些共同的特性抽象出来,定义一个“验证用 户”的
下一页 返回
2.2UML简介
修改而成,UML扩展了现有方法的应用范围;第三,UML 是标准的建模语言,而不是标准的开发过程。尽管UML的应 用必然以系统的开发过程为背景,但由于不同的组织和不同 的应用领域,需要采取不同的开发过程。

UML面向对象技术教程

UML面向对象技术教程

第一章面向对象技术概述学习目标:☆了解软件危机产生的原因☆掌握控制软件复杂性基本方法☆掌握软件开发方法学习内容:☆软件复杂性☆相关概念:类、封装、继承、多态、消息、对象和实例1.1软件危机及软件工程1.计算机的发展第一台计算机的诞生第二次世界大战期间,美国军方为了解决计算大量军用数据的难题,成立了由宾夕法尼亚大学莫奇利和埃克特领导的研究小组,开始研制世界上第一台电子计算机。

经过三年紧张的工作,第一台电子计算机终于在1946年2 月14日问世了。

它由17468个电子管、6万个电阻器、1万个电容器和6千个开关组成,重达30吨,占地160平方米,耗电174千瓦,耗资45万美元。

这台计算机每秒只能运行5千次加法运算,仅相当于一个电子数字积分计算机(ENIAC即"埃尼阿克")。

1994年12月,美国Intel公司宣布研制成功世界上最快的超级计算机,它每秒可进行3280亿次加法运算(是第一台电子计算机的6600万倍)。

如果让人完成它一秒钟进行的运算量的话,需要一个人昼夜不停地计算一万多年。

1956年,夏培肃完成了第一台电子计算机运算器和控制器的设计工作,同时编写了中国第一本电子计算机原理讲义。

1957年,哈尔滨工业大学研制成功中国第一台模拟式电子计算机。

1958年,中国第一台计算机--103型通用数字电子计算机研制成功,运行速度每秒1500次。

1959年,中国研制成功104型电子计算机,运算速度每秒1万次。

1960年,中国第一台大型通用电子计算机--107型通用电子数字计算机研制成功。

1963年,中国第一台大型晶体管电子计算机--109机研制成功。

1964年,441B全晶体管计算机研制成功。

1965年,中国第一台百万次集成电路计算机"DJS-Ⅱ"型操作系统编制完成。

1967年,新型晶体管大型通用数字计算机诞生。

1969年,北京大学承接研制百万次集成电路数字电子计算机 --150机。

第2章-面向对象与UML(2学时)

第2章-面向对象与UML(2学时)
2014-11-20 12
中国地质大学(武汉)信息工程学院
类和对象



类是对一组具有相同属性、相同操作、相同关系和相同语义的对象 的抽象
UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、 中间是类的属性、最下面是类的方法
对象则是类的一个实例
中国地质大学(武汉)信息工程学院
类的可视化表示——属性
角色 employee Person *
角色 employer 方向 Company worksfor 1 多重性
多重性
关联关系描述
Tip:关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了
通信的路径,它是所有关系中最通用、语义最弱的。使用一条实线来表示关联关系。
28
中国地质大学(武汉)信息工程学院
家用商品 家用电器
家用电器
家具
2014-11-20
6
中国地质大学(武汉)信息工程学院
封装(Encapsulation)
当一个对象执行自己的操作时,它对外隐蔽了操作的细节。 爆米花是怎么炸出来的?关心这个干吗?
2014-11-20 7
中国地质大学(武汉)信息工程学院
多态(Polymorphism ['pɔli'mɔ:fizəm] )
关联
依赖 泛化(继承)
聚合
组合

关联:连接(connect)模型元素及链接(link)实例。 依赖:表示一个事物以某种方式依赖于另一种事物。 泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。 聚合、组合:表示整体与部分的关系。
2014-11-20 25
中国地质大学(武汉)信息工程学院

面向对象技术-02UML概述

面向对象技术-02UML概述

2.4 UML的内容 的内容
UML的定义包括UML语义和UML表示法两个部分。 UML的定义包括UML语义和UML表示法两个部分。 的定义包括UML语义和UML表示法两个部分 (meta(1) UML 语 义 描 述 基 于 UML 的 精 确 元 模 型 (metamodel)定义 元模型为UML 定义。 UML的所有元素在语法和语义 model) 定义 。 元模型为 UML 的所有元素在语法和语义 上提供了简单、 一致、通用的定义性说明, 上提供了简单 、 一致 、 通用的定义性说明 , 使开发者 能在语义上取得一致, 能在语义上取得一致 , 消除了因人而异的表达方法所 造成的影响。此外UML还支持对元模型的扩展定义。 UML还支持对元模型的扩展定义 造成的影响。此外UML还支持对元模型的扩展定义。 UML支持各种类型的语义 如布尔、 表达式、 列表、 支持各种类型的语义。 UML 支持各种类型的语义 。 如布尔 、 表达式 、 列表 、 名字、坐标、这字符串和时间等, 阶、名字、坐标、这字符串和时间等,还允许用户自 定义类型。 定义类型。 UML表示法 定义UML 符号的表示法, UML符号的表示法 (2) UML 表示法 定义 UML 符号的表示法 , 为开发者或 开发工具使用这些图形符号和文本语法为系统建模提 供了标准. 供了标准 . 。 这些图形符号和文字所表达的是应用级 的模型,在语义上它是UML元模型的实例。 UML元模型的实例 的模型,在语义上它是UML元模型的实例。
’98~’99 UML1.1 OMG Vote, Oct ‘97 UML1.0 UML0.9 Submission to OMG, Sept ‘97 UML0.91 Submission to OMG, Jan ′97
Booch91 OMT-1

UML讲义2-面向对象技术

UML讲义2-面向对象技术
} }
4、程序控制语句
(1)if语句
形式1: If (表达式)
{语句};
形式2:
if (表达式) {语句1}
else {语句2}
class Add {
public static void Main() {
int a,b; string c; Console.Write("请输入一个数值:"); c= Console.ReadLine(); a=int.Parse(c); b=20; if(a>10) Console.WriteLine(“大于”); } }
二派纠辨甚凶。茨无奈,复就询于开复,乃许之曰:“卿若解此难,吾可 以副总裁之位许卿。”复心狂喜,乃表曰:“明公勿急。前有从C径升C++, 今何不从C++径升C++++,而逾C+++乎?吾中华上国,有一井字,乃四+所并 而成,何不名下一版本为c#乎?”茨然其言,乃如约升之为微软之副总裁。
2、C#编程和编译环境
class Program { static void Main(string[ ] args)
{ string x; string y; int z; Console.Write("请输入第一个数:"); x = Console.ReadLine(); Console.Write("请输入第二个数:"); y = Console.ReadLine(); z = int.Parse(x) + int.Parse(y); Console.WriteLine("两个数的和为:{0}", z);
Delphi号称Visual Basic 杀手
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在结构化方法中,现实世界被映射为功能(函数)的集合。
结构化方法的特点: 结构化程序设计:程序 = 算法 + 数据结构 从算法的角度进行建模,大量精力都集中在控制流程和 算法的分解上(功能分解)。 缺点:需求变动、维护困难
2.1 面向对象技术概述

面向对象方 法的引入: 软件复杂性 的增长, 使软件开发 越来越困难。 面向对象的 方法按照人 类的自然思 维的方式, 面对客观世 界建立软件 模型。
对象的标识(名字)

每一个对象都有一个唯一的标识, 即使其状态有可 能与其它对象一样。
no1 no2 no3
对象的状态(数据属性)

一个对象的状态是它反映于现实世界的一系列 属性:

基本描述 载客人数 它与其它对象的关系 任一时刻的历史状态
飞机类型 飞机驾驶员 所属的航空公司
可能的状态: 停泊 班机 747 飞行 着陆
继承的描述
子类可以继承父类的全部属性与操作,并 可以添加或重新定义所继承的方法。 如果是重新定义,称为覆盖。
注意:覆盖和重载是不同的。

覆盖的例子

重载的例子
public class A{ String name; public String getValues(){ return “Name is”+name; } } public class B extends A{ String address; public String getValues(){ return “address is”+address; } }
6. 多态性


定义:同一操作作用于不同的对象,可以有 不同的解释,产生不同的执行结果。 例子: 动物叫

多态性是指在父类中定义的属性和操作被子类继 承后,可以表现出不同的行为。 在父类与子类的类层次结构中,利用多态性可以 使不同层次的类之间共享一个方法名,而个自有 不同的操作。当一个对象接收到一个请求消息时, 所采取的操作将根据该对象所属的类决定。
1. 2. 3.
继承性表示类之间的层次关系。 类间具有共享特征 类间具有差别或新增部分 类间具有层次关系
继承关系是“is a ”或“kind of”的关系。
继承的好处
1.
通过继承可实现代码复用,可降低软件开发 和维护的费用,继承是OO技术和非OO技术 的一个很明显的区别。
2.
继承的另一个好处是可以保证类之间的一致 性,父类可以为所有的子类定制规则,子类 必须去遵守这些规则。如C++中的虚函数, Java中的接口。

封装是面向对象方法的一个重要原则。 封装有两个含义: 结合性(数据抽象):把对象的属性和方法结合起 来,形成一个不可分割的单位。

信息隐蔽性:尽可能隐藏对象的内部细节,对象的 私有数据不能被外界存取,对外使用接口与外部发 生联系。
例如:电视机
为什么要封装
结构化程序设计:程序 = 算法 + 数据结构



一个类可以实现多个接口。使用接口比使用抽 象类要安全得多,因为它可以避免许多与多重 继承相关的问题。
这也是为什么像Java和C#等新型编程语言允 许类实现多个接口,但只能继承一个通用或抽 象类。
多态性的实现方式:
1. 通过接口实现多态性 接口描述类需要实现实现的操作以及每个操 作需要接收和返回的参数类型,但将操作的特 定实现留给实现接口的类去完成。 多个类可以实现相同的接口。 单个类可以实现一个或多个接口。 实现某接口的类都有此接口定义操作的不同实 现方式。

一个类通过一系列操作来定义行为

类和对象的关系

每一个对象都是某一个类的实例。 每一个类在某一时刻都有零个或更多的实体。


类是静态的;它们的存在、语义和关系在执行 前就已经定义好了。 对象是动态的; 它们在程序执行时可以被创 建和删除。

3.抽象


抽象是从众多的事物中抽取出共同的、本质性的 特征 。 抽取对问题域有帮助的对象属性和行为。 问题域不同,抽象结果也不同。
2. 类

类是一组具有相同数据结构和相同操作的对象 的集合,类是对象的抽象,它为属于该类的对 象提供了统一的抽象描述。
在下面这副图中您看到了什么类?
属性

属性是类的特征或特性

属性的值是某一特定对象的属性值 在类中属性名必须是唯一的 同类的对象具有相同的属性,但属性值会有所不同。
银行帐户类属性 Mary的银行帐户属性值
帐号 银行名称 拥有者 金额
12345678 First National Bank Mary Smith $1024.48
UML对象的绘制 注意:对象名下有下 划线
属性取决于视点
一辆汽车具有的属性:

从销售人员的角度 型号 价格 颜色 里程数

从维修人员的角度


马达类型
传动类型 维修记录
public class A{ String name; public String getValues(){ return “Name is”+name; } } public class B extends A{ String address; public String getValues(String name){ return “address is”+address; } }
算法
全局数据
算 法
一个大问题:如何保证数据的 一致性和安全性?
面向对象程序设计:程序 = 对象s + 消息
对象1={算法 + 数据结构} ... 对象n= {算法 + 数据结构}
封装
•信息隐藏的过程 •有选择的数据隐藏 •防止意外的数据破坏,保证数据的一致性和安全性 •更易于隔离和修复错误
封装的目的
2.1.1 面向对象的基本概念
① ② ③

⑤ ⑥ ⑦ ⑧
面向对象的核心元素: 对象 类 抽象 封装 继承 多态性 消息 结构与连接
1. 对象



客观世界里的任何实体都可以被称为对象。 对象可以是具体的、有形的物,也可以是无形的事物或概念。 对象是问题域或实现域中某些事物的一个抽象。不同的角度 和不同的问题域对一个对象的描述有所不同。 对象是一个封装数据属性和操作行为的实体。 系统中的对象在软件生命周期的各个阶段可能有不同的表示 形式。例如:分析设计阶段和编码阶段不同。
对象的行为(操作行为)

定义当其它对象发出请求时,该对象如何反应 由对象定义的一系列操作决定
动作: 起飞 着落
核对出发时间
(返回 9:27)
机票代理
班机 747
UML中的对象表示
注意:对象名下有下划线
1. 命名对象
对象名
J Clark : Professor
对象名:类名
ቤተ መጻሕፍቲ ባይዱ
2. 匿名对象
:类名
: Professor
什么叫问题域?

开发一个软件是为了解决某些问题,这些问题 所涉及的业务范围称为该软件的问题域。 不同问题域中同一事务描述的角度就不相同。 问题域的范围也对软件开发的复杂程度有一定 的影响。


2.1.1 面向对象的基本概念

Coad和Yourdon: 面向对象=对象+类+继承+通信
• 面向对象技术基于对象概念,以对象为中心, 以类和继承为构造机制,充分利用接口和多态 提供灵活性,来认识、理解、刻划客观世界和 设计、构建相应的软件系统。

将对象的使用者和对象的设计者分开,使用者不必知道行 为实现的细节,只需用设计者提供的消息来访问该对象。 把定义和实现分开,可以大大提高软件的可维护性、可修 改性。


在类的外部不能访问
私有
在类的外部可以访问
公有
可见性问题

UML 类图
ROSE画 出的类图
Visibility-可见性 层次


继承性又分为单重继承和多重继承两类。
单重继承:子类只有一个父类
多重继承:有多个父类的继承
FlyingThing Multiple Inheritance Animal
Airplane
Helicopter
Bird
Wolf
Horse
思考一下?

C++是否支持多继承?

JAVA是否支持多继承?

继承是否具有传递性?

多态性分为两种: 1.编译时的多态性。通过重载和对象调用实现。 (静态绑定) 2.运行时的多态性。通过指向基类的指针实现, 并且需要虚函数。 (动态绑定)

接口(Interface)的概念

接口是一组没有相应方法实现的操作,非常类似 于仅包含抽象方法的抽象类。 接口是对对象行为的描述,但是并不给出对象的 实现和状态。(通俗的说,接口只是说明函数应 该做什么(what),但没有定义函数如何做 (how)。) 接口只包含操作而不包含属性,并且接口也没有 对外界可见的关联。
第2章 面向对象技术与UML
面向对象技术概述 2.2 面向对象的分析 2.3 面向对象的设计 2.4 基于UML的面向对象分析、设计过 程
2.1
软件开发的难点

结构化软件开发方法的主要思想: 对问题进行功能分解,如果分解后得到的功能过大,那么 再对这些功能进行分解,直到最后分解得到的功能能比较方 便地处理和理解为止。(功能分解法 )
操作

对象的行为是由为此对象定义的一系列操作决 定的。 操作访问或修改对象的属性值。 一个类可能同时存在多个实例,也可能在某一 时刻没有实例。 一个类的所有实例都可以使用在这个类中定义 的操作。
相关文档
最新文档