第六章 面向对象分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立分析模型5个基本原则:
(1)建模信息域; 建模信息域;
(2)建模功能域,描述模块功能; 建模功能域,描述模块功能; 表示模型行为; (3)表示模型行为; 分解模型以显示更多细节; (4)分解模型以显示更多细节; 早期模型表示问题的本质, (5)早期模型表示问题的本质,而后期 模型提供实现细节。 模型提供实现细节。
引入面向对象的技术背景
面向对象的需求分析的方法的核心是利用面向对象的概念 和方法为软件的需求分析建造模型。 和方法为软件的需求分析建造模型。它包含面向对象风格的图 形语言机制和用于指导需求分析的面向对象方法学。 形语言机制和用于指导需求分析的面向对象方法学。面向对象 程序设计和方法已经发展成为一种成熟的、 程序设计和方法已经发展成为一种成熟的、有效的软件开发方 相比之下, 法。相比之下,面向对象的分析方法的出现和发展都比较落 但是,在目前, 后。但是,在目前,面向对象的需求分析已被软件工程界公认 为是具有发展潜力的重要的需求分析方法, 为是具有发展潜力的重要的需求分析方法,其优越性正在越来 越多的软件开发实践中得到证实。 越多的软件开发实践中得到证实。 UML统一了 面向对象建模的基本概念、术语和表示方 统一了 面向对象建模的基本概念、 不仅为面向对象的软件开发过程提供了丰富的表达手段, 法,不仅为面向对象的软件开发过程提供了丰富的表达手段, 而且也为软件开发人员提供了相互交流、 而且也为软件开发人员提供了相互交流、分享经验的共同语 言。 本章首先介绍面向对象的主要概念和思想,以 本章首先介绍面向对象的主要概念和思想 以“家庭保安系 为实例,介绍与需求分析相关部分UML 语言机制以及基 统”为实例,介绍与需求分析相关部分 的面向对象的需求方法和过程。 于UML的面向对象的需求方法和过程。 的面向对象的需求方法和过程
传统方法和面向对象方法的比较
传统方法
系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出
面向对象方法
系统是交互对象的集合 对象与人或其它对象交互 对象发送与响应消息
输入 输出
过程1 过程1 过程2 过程2 过程3 过程3 传统方法数据与过程是分离 消息 消息 数据实体
对象
属于该对象 的数据
传统方法和面向对象方法的比较传统方法传统方法系统是过程的集合系统是过程的集合过程与数据实体交互过程与数据实体交互过程接受输入并产生输出过程接受输入并产生输出面向对象方法面向对象方法系统是交互对象的集合系统是交互对象的集合对象与人或其它对象交互对象与人或其它对象交互对象发送与响应消息对象发送与响应消息传统方法数据与过程是分离传统方法数据与过程是分离过程1过程1输入输入输入输入输出输出输出输出过程2过程2过程3过程3数据实体属于该对象的数据处理数据的方法消息消息消息消息消息消息消息消息对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元结构化方法和面向对象方法的区别结构化方法的本质是功能分解自顶而下逐步分解
处理数据的方法

对象把数据和处理数据的方法封状成一个单元
结构化方法和面向对象方法的区别
结构化方法的本质是功能分解,自顶而下, 逐步分解。 面向对象方法的本质是功能聚合,自低而 上,逐步组装。
流行的几种面向对象方法
创建UML的最初想法之一是要结束面向对象领域中的“方法 创建 的最初想法之一是要结束面向对象领域中的“ 的最初想法之一是要结束面向对象领域中的 之战” 面向对象技术最初是由编程语言Simula产生的,但 产生的, 之战”。面向对象技术最初是由编程语言 产生的 是直到20世纪 年代末C++和Smalltalk这些编程语言出现之 世纪80年代末 是直到 世纪 年代末 和 这些编程语言出现之 面向对象技术才开始流行。 后,面向对象技术才开始流行。当面向对象编程技术取得成功 对支持软件开发的方法的需要就接踵而来。 世纪 世纪90年 后,对支持软件开发的方法的需要就接踵而来。20世纪 年 代初期流行的面向对象方法有以下几种。 代初期流行的面向对象方法有以下几种。
面向对象=对象 类 继承 聚集+消息 继承+聚集 面向对象 对象+类+继承 聚集 消息 对象
2
思想
面向对象分析方法使得软件工程师能够通过 对象、属性和操作(作为主要的建模成分) 对象、属性和操作(作为主要的建模成分) 的表示来对问题建模。 的表示来对问题建模。尤其是对象的合作来 完成功能域的建模。 完成功能域的建模。
方法(简称OOSE) 1.Booch方法 2.Jacobson 方法(简称 方法 ) 3.OMT(Object Modeling Technology)方法 ( 方法 4.Coad-Yourdon方法 方法 6.由Rumbaugh 、 Booch 、 Jacobson 提出的 由 Unify Modeing Language简称 简称UML 简称
例如,存储器单元只能进行存和取操作, 例如,存储器单元只能进行存和取操作,对于文 只能进行读、写和定位操作等。显然, 件,只能进行读、写和定位操作等。显然,从上 述的分析和描述,两个空间存在着明显的“ 述的分析和描述,两个空间存在着明显的“语义 断层” 断层”。 面向对象的需求分析方法通过对象、 面向对象的需求分析方法通过对象、对象间消息 传递等语言机制, 传递等语言机制,让分析人员在解空间中直接模 拟问题空间中的对象以及其行为, 拟问题空间中的对象以及其行为,从而削弱了语 义断层,为需求建模活动提供了直观、 义断层,为需求建模活动提供了直观、自然的语 言支持和方法学指导。 言支持和方法学指导。 具体地讲, 具体地讲,为了解空间中逼真的模拟现实问题空 间并与人类思维习惯相一致, 间并与人类思维习惯相一致,面向对象方法学包 含了以下核心概念: 含了以下核心概念:
6.1
面向对象Байду номын сангаас概念与思想
面向对象方法学的出发点和基本原则, 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯 的思维方式, 的思维方式,使软件开发的方法与过程尽可能接近人类认识世 界解决问题的方法与过程。 界解决问题的方法与过程。 客观世界的问题都是由客观世界中的实体以及实体间的关系构 成的。我们把客观世界中的实体抽象为问题域中的对象。 成的。我们把客观世界中的实体抽象为问题域中的对象。 本质上讲,为应用问题寻求软件解, 本质上讲,为应用问题寻求软件解,是借助于计算机语言对其 提供的实体实施某些动作,以动作的结果给出问题的解。例如, 提供的实体实施某些动作,以动作的结果给出问题的解。例如, 汇编语言和过程式程序设计语言。 汇编语言和过程式程序设计语言。汇编语言提供的实体是寄存 存储单元; 器、存储单元; 过程式程序设计语言提供的实体是变元、数组、纪录和文件等。 过程式程序设计语言提供的实体是变元、数组、纪录和文件等。 这些实体构成解空间中的对象。通常, 这些实体构成解空间中的对象。通常,问题中的实体对象的行 为是丰富多彩的,而软件解空间中对象的行为却是单调的。 为是丰富多彩的,而软件解空间中对象的行为却是单调的。
第六章 面向对象的的需求分析
6.1 面向对象的概念与思想 6.2 UML概述 概述 6.3 基于 基于UML的需求分析 的需求分析 6.4 基于 基于UML的软件开发过程 的软件开发过程
引入面向对象的技术背景 --结构化方法的缺点
面向结构化的分析方法的本质是功能分解,这种方法的缺点 是:稳定性差、可修改性以及可重用性都较差。这是由于: 1)该方法是围绕着实现处理功能来构造系统的,而用户需求 的变化大部分是针对功能的,所以一旦用户的需求发生变化, 那么系统的功能势必就要发生变化,即系统的稳定性差; 2)先有系统的边界,即划定了系统实现的范围,再依据它划 分系统的功能以及分解得到系统的各个子功能,完成系统后, 就难以再扩充系统的边界了; 3)把处理分解成子处理的过程没有固定的模式和指导,每个 人对问题的理解也不相同,那么划分系统就是随意的,从而 从来都难以重用已有的软件模块。而面向对象的思想恰恰可 以针对以上问题,使得问题得以解决。
(1)在不同系统中的应用 )
信息系统:信息系统为用户提供存储、检索、 信息系统:信息系统为用户提供存储、检索、变换和表现 信息等功能。该系统处理那些具有复杂关系的大量数据, 信息等功能。该系统处理那些具有复杂关系的大量数据, 这些数据存储在关系数据库或对象数据库中。 这些数据存储在关系数据库或对象数据库中。 技术系统:技术系统处理和控制技术装备,比如电信、 技术系统:技术系统处理和控制技术装备,比如电信、 军事系统或工业处理系统。它们必须处理装备的特定接口, 军事系统或工业处理系统。它们必须处理装备的特定接口, 并且拥有的标准软件也比信息系统少。 并且拥有的标准软件也比信息系统少。技术系统通常是实 时系统。 时系统。 嵌入式实时系统:这种类型的系统在嵌入到其他装备(如 嵌入式实时系统:这种类型的系统在嵌入到其他装备( 移动电话、汽车、家用电器等)中的简单硬件上运行。 移动电话、汽车、家用电器等)中的简单硬件上运行。这 是通过低级编程(需要实时性支持)实现的。 是通过低级编程(需要实时性支持)实现的。这些系统通 常缺少像显示器、硬盘等之类的设备。 常缺少像显示器、硬盘等之类的设备。
(2)类 ) 类是某些对象的共同特征(属性和操作)的表示,相同属 类是某些对象的共同特征(属性和操作)的表示 相同属 性和行为的对象的抽象。 性和行为的对象的抽象。 实例是特定类所描述的一个具体对象.对象是类的实例。 实例是特定类所描述的一个具体对象 对象是类的实例。 对象是类的实例 例如,飞行器类可以包括位置、速度、加速和颜色等属性, 例如,飞行器类可以包括位置、速度、加速和颜色等属性, 以及起飞和降落等操作。 以及起飞和降落等操作。 (3)继承 )
1.概念 概念
(1)对象 ) 对象是现实世界中个体或事物的抽象表示, 对象是现实世界中个体或事物的抽象表示,是其 属性和相关操作的封装。属性表示对象的性质, 属性和相关操作的封装。属性表示对象的性质,属性 值规定了对象所有可能的状态。 值规定了对象所有可能的状态。对象的操作是指该对 象可以展现的外部服务。例如,飞机可以视为对象, 象可以展现的外部服务。例如,飞机可以视为对象, 它有飞行的速度、有颜色、载重量等, 它有飞行的速度、有颜色、载重量等,该对象可以施 行起飞、降落等操作。 行起飞、降落等操作。 简言之,客观世界中的实体 简言之 客观世界中的实体 状态( 状态(静态属性 Attributes) ) 操作( 操作(动态行为 Mehtods) )
(4)聚集 )
除继承关系外,现实世界中还普遍存在着部分 整体 除继承关系外,现实世界中还普遍存在着部分-整体 关系。 关系。这种关系在面向对象方法学中表示为类之间的聚集 关系。在聚集关系下, 关系。在聚集关系下,部分类的对象是整体类对象的一个 组成部分。 组成部分。
(5)消息 )
对象间的交互手段,消息传递是对象与其外部世界相互 对象间的交互手段 消息传递是对象与其外部世界相互 关联的唯一途径。 关联的唯一途径。对象可以向其它对象发送消息以请求服 也可以响应其它对象发送来的消息, 务,也可以响应其它对象发送来的消息,完成自身固有的 某些操作,从而服务于其它对象。 某些操作,从而服务于其它对象。由于对象的操作主要用 来响应外部消息并为其它对象提供服务, 来响应外部消息并为其它对象提供服务,所以它们也被称 为“外部服务”。 外部服务”
6.2
UML概述 概述
UML主要以 Booch方法、 OMT方法、 OOSE方法为 主要以 方法、 方法、 方法 方法 方法为 基础,同时也吸收了其他面向对象建模方法的优点, 基础,同时也吸收了其他面向对象建模方法的优点,形成了 一种概念清晰、表达能力丰富、 一种概念清晰、表达能力丰富、使用范围广泛的面向对象的 标准建模语言,是一种基于面向对象的可视化建模语言 是一种基于面向对象的可视化建模语言。 标准建模语言 是一种基于面向对象的可视化建模语言。它 提供了丰富的用图形符号表示的模型语言, 提供了丰富的用图形符号表示的模型语言,这些标准的图形 符号隐含了UML的语法,而由这些图形符号组成的各种模 的语法, 符号隐含了 的语法 则给出了UML的语义。它的简单、一致、通用的定义, 的语义。 型,则给出了 的语义 它的简单、一致、通用的定义, 使得开发者能在语义上取得一致,消除了因人而异的表达方 使得开发者能在语义上取得一致, 法所造成的影响。 法所造成的影响。 其广泛性表现为: 其广泛性表现为: (1)在不同系统中的应用 )在不同系统中的应用; (2)在软件开发不同阶段的应用 )在软件开发不同阶段的应用.
类之间的继承关系是现实世界中遗传关系的直接模 拟,它表示类之间的内在关系以及对其属性和操作 的共享,即子类可以沿用父类(被继承类) 的共享,即子类可以沿用父类(被继承类)的某些 特征。子类直接继承父类的数据和操作,当然 当然, 特征。子类直接继承父类的数据和操作 当然,子类 也可以具有自己独特的属性和操作。 也可以具有自己独特的属性和操作。 继承的传递性,单继承、 继承的传递性,单继承、多重继承
相关文档
最新文档