软件工程面向对象技术
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类
实例对象
华北科技学院计算机系 软件工程课程
9/237
3. 继承(inheritance) 继承是类间的基本关系,它是基于层次关
系的不同类共享数据和操作的一种机制。
父类中定义了公共属性和操作,在子类中 除了定义自己特有的属性和操作外,可以继承 其父类,还可以对父类中的操作重新定义。
华北科技学院计算机系 软件工程课程
华北科技学院计算机系 软件工程课程
15/237
5. 多态性(polymorphism) 多态性是指同一个操作作用于不同的对象
上可以有不同的解释,并产生不同的执行结 果。
相同操作的消息发送给不同的对象时,每 个对象将根据自己所属类中定义的这个操作 去执行,从而产生不同的结果。
华北科技学院计算机系 软件工程课程
华北科技学院计算机系 软件工程课程
2/237
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
华北科技学院计算机系 软件工程课程
3/237
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
在抽象类中可以定义抽象操作,抽象操作指: 只定义这个类的操作接口,不定义它的实现, 其实现部分由其子类定义。
华北科技学院计算机系 软件工程课程
12/237
交通工具
飞行器
汽车
船
轿车
货车
一般-特殊关系
华北科技学院计算机系 软件工程课程
13/237
如果一个子类只有唯一一个父类,这个继 承称为单一继承。如果一个子类有一个以上的 父类,这种继承称为多重继承。
10/237
多边形 顶点数 顶点坐标 计算面积 旋转
矩形 长 宽 对角线 计算面积 计算对角线
华北科技学院计算机系 软件工程课程
11/237
有时定义一个类,把一些类组织起来,提供 一些公共的行为,但并不需要使用这个类的实 例,而仅使用其子类的实例。我们把这种没有 实例的类称为抽象类(abstract class)。
1996年6月、10月、1997年1月、11月分 别推出了UML0.9、 UML0.91、 UML1.0、 UML1.1
华北科技学院计算机系 软件工程课程
25/237
UML概述
1997年11月,OMG批准把UML1.1作为 基于面向对象技术的标准建模语言
UML进行了持续的修订和改进,先后产生 了UML1.2、1.3、1.4、1.5版本
华北科技学院计算机系 软件工程课程
38/237
• 执行者的简要描述 如客户:向公司订购商品的人 客户代表:公司处理客户请求的雇员 库存系统:记录公司库存的软件
• 用况的简要描述 如订购货物:客户创建一个新的请求商品的 订单,并为那些商品付费 取消订单:客户取消一个已经存在的订单
华北科技学院计算机系 软件工程课程
27/237
视图与图
主题域 结构化
动态的
物理的 模型管理
视图 静态视图 设计视图
用况视图 状态机视图 活动视图 交互视图
部署视图 模型管理视图
华北科技学院计算机系
图
类图 内部结构 协作图 构件图 用况图 状态机图 活动图 顺序图 通信图 部署图 包图
软件工程课程
28/237
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
华北科技学院计算机系 软件工程课程
20/237
面向对象设计 (Object_Oriented Design)
面向对象设计的一般步骤如下: 1. 系统设计 2. 对象设计 3. 消息设计 4. 复审
华北科技学院计算机系 软件工程课程
21/237
1、采用哪四个概念开发的软件系统是面向 对象的:
面向对象 = 对象+ 分类+ 继承+ 通过 消息的通信
• 用况向执行者提供的值必须可识别
• 用况是完整的,一个用况必须是一个 完整的描述
用况是一个类,而不是实例,用况的实 例称为场景
华北科技学院计算机系 软件工程课程
36/237
2. 寻找用况
• 执行者需要系统提供哪些功能?执行者 需要做什么?
• 执行者是否需要读、创建、删除、修改 或储存系统中的某类信息?
30/237
任何一个涉及到系统功能活动的人都会用到 用况模型。
• 客户:用况建模时客户的积极参与是十分 重要的。
• 开发者:用况模型帮助他们理解系统要做 什么,同时为以后的其它模型建模、结构设 计、实现等提供依据。
• 集成测试和系统测试人员:根据用况来测 试系统,以验证系统是否完成了用况指定的 功能。
2、面向对象设计的一般步骤如下:
• 系统设计 • 对象设计 • 消息设计 • 复审
华北科技学院计算机系 软件工程课程
22/237
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
华北科技学院计算机系 软件工程课程
华北科技学院计算机系 软件工程课程
29/237
用况建模
用况建模是用于描述一个系统应该做什 么的建模技术。用用况图来描述。
用况图展示了各类外部执行者与系统所 提供的用况之间的连接。一个用况是系统所 提供的一个功能的描述,执行者与用况的连 接表示该执行者使用了那个用况。
华北科技学院计算机系 软件工程课程
前置条件:一个合法的客户已经登录到这个系统
事件流:
1.当客户选择订购货物时,用况开始
2.客户输入他的姓名和地址
3.如果客户只输入邮编,系统将给出州和城市名
4.当客户输入产品代码
a. 系统给出产品描述和价格
b. 系统往客户订单中添加该物品的价格
循环结束
5. 客户输入信用卡支付信息 华北科技学院计算机系 软件工程课程
16/237
6. 动态绑定(dynamic binding)
动态绑定是指在程序运行时才将消息所 请求的操作与实现该操作的方法连接起来。
传统的程序设计语言为静态绑定,而动 态绑定则是把连接推迟到运行时才进行。
动态绑定是一种在运行时确定被执行代 码的技术。
华北科技学院计算机系 软件工程课程
17/237
华北科技学院计算机系 软件工程课程
6/237
封装(encapsulation)是一种信息隐 蔽技术,目的是使对象的使用者和生产 者分离,使对象的定义和实现分开。
一个对象通常可由对象名、属性和操 作三部分组成。
华北科技学院计算机系 软件工程课程
7/237
2. 类(class) 类是一组具有相同属性和相同操作的对象
的集合。一个类中的每个对象都是这个类的一 个实例(instance)。
类是创建对象的模板,从同一个类实例化 的每个对象都具有相同的结构和行为。
华北科技学院计算机系 软件工程课程
8/237
轿车 型号:字符串 颜色:字符串 牌照号:字符串 ....
张经理的轿车 型号=桑塔纳 颜色=红色 牌照号=沪AN2037 ....
可以说,采用这四个概念开发的软件系统是面 向对象的
华北科技学院计算机系 软件工程课程
5/237
面向对象的基本概念
1. 对象(object) 对象是指一组属性以及这组属性上的专用操
作的封装体。 属性(attribute)表示该对象的状态。对
象中的属性只能通过该对象所提供的操作来存 取或修改。
操作(operation)(也称方法或服务)规 定了对象的行为,表示对象所能提供的服务。
华北科技学院计算机系 软件工程课程
31/237
用况建模步骤
创建用况模型的步骤包括: 1.定义系统 2.确定执行者 3.确定用况 4.描述用况 5.定义用况间的关系 6.确认模型
华北科技学院计算机系 软件工程课程
32/237
用况模型由用况图组成,用况图展示了执 行者、用况以及它们之间的关系。用况通常用 正文形式来描述。
一个用况模型可由若干幅用况图组成。一 幅用况图包含的模型元素有系统、执行者、用 况,以及表示它们间的不同关系。
华北科技学院计算机系 软件工程课程
33/237
一. 确定执行者 • 执行者是指与系统交互的人或其它系统 • 代表一种角色,而不是具体的某个人
• 执行者可分成主执行者和副执行者: ➢ 主执行者使用系统的主要功能 ➢ 副执行者处理系统的辅助功能
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
华北科技学院计算机系 软件工程课程
18/237
面向对象分析 Object-Oriented Analysis
• 目标:完成对所解问题的分析,确定待建 系统要做什么,并建立系统模型。任务:
– 在客户和软件工程师之间沟通基本的用户需求 – 标识类 – 刻画类的层次结构 – 表示类(对象)之间的关系 – 为对象行为建模 – 递进地重复1—5,直至完成建模
华北科技学院计算机系 软件工程课程
19/237
面向对象分析
面向对象分析的一般步骤如下:
1.获取客户对系统的需求 2.用基本的需求为指南,来选择类和对象 3.定义类的结构和层次。 4.建造对象—关系模型。 5.建造对象—行为模型。 6.利用用况/场景来复审分析模型。
2004年推出了UML2.0,UML2.0对 UML1.x作了重大的修改。
华北科技学院计算机系 软件工程课程
26/237
• 模型元素 指模型中的实体以及实体间相互连接的关系
类 属性 操作
主动类 属性 操作
对象:类 属性 操作
用况
结点
状态
包
注解
构件
关联 依赖
泛化 实现
供应接口 请求接口
华北科技学院计算部机分系模型元软素件工程课程
水上交通工具
陆上交通工具
水陆两栖交通工具 多重继承
华北科技学院计算机系 软件工程课程
14/237
4. 消息(message) 消息传递是对象间通信的手段,通过发送
消息来请求其服务。通常包括接收对象名、 调用的操作名和适当的参数。
消息只告诉接收对象需要完成什么操作, 但并不指示接收者怎样完成操作。接收者独 立决定采用什么方法完成所需的操作。
华北科技学院计算机系 软件工程课程
4/237
面向对象的基本概念
Peter Coad和Edward Yourdon提出用下列等 式识认面向对象方法:
面向对象 = 对象(object)
+ 分类(classification)
+ 继承(inheritance)
+ 通过消息的通信(communication with messages)
39/237
• 用况的详细描述 ➢前置条件和后置条件 表示用况开始和结束的条件
➢事件流(flow of events) 事件流是一系列陈述句,它是从执行者的角 度看,列出用况的各个步骤 用况描述中可以包含条件、分支和循环。
华北科技学院计算机系 软件工程课程
40/237
用况名称:订购货物
参与的执行者:客户、客户代表
软件工程
第9章 面向对象技术
面向对象方法的出现很快受到计算机软件 界的青睐,并成为20世纪90年代的主流开 发方法。其原因:
1. 从认知学的角度来看,面向对象方法符合人 们对客观世界的认识规律。
2. 面向对象方法开发的软件系统易于维护,其 体系结构易于理解、扩充和修改。
3. 面向对象方法中的继承机制有力支持软件的 复用。
23/237
统一建模语言UML
Unified Modeling Language
华北科技学院计算机系 软件工程课程
24/237
UML概述
• 为何研究UML—结束方法大战
• 发展历史
1994年开始了UML的工作,其目标是创建 一个“统一的方法”,
1995年Jacobson加盟,工作重点转移到 创建一种统一的建模语言UML
华北科技学院计算机系 软件工程课程
34/237
• 执行者还可分为主动和被动执行者: ➢主动执行者开始一个用况
➢被动执行者从不开始用况,只是参 与一个或多个用况
华北科技学院计算机系 软件工程课程
35/237
二.确定用况
1. 用况的特征
• 用况总是被执行者启动的,执行者必 须直接或间接地指示系统去执行用况
• 执行者是否要被系统中的事件提醒?
• 执行者的日常工作是否因为系统的新功 能而被简化或提高了效率?
华北科技学院计算机系 软件工程课程
37/237
3. 用况的描述 通常用正文来描述或活动图来描述 。 用况的正文描述应包括以下内容:
• 用况的目的 • 用况是如何启动的 • 执行者和用况之间的消息流 • 用况中可供选择的流 • 如何通过给执行者一个值来结束用况