第二章 什么是面向对象分析
什么是面向对象「什么是面向对象分析方法」
什么是面向对象「什么是面向对象分析方法」面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象其实是现实世界模型的自然延伸现实世界中任何实体都可以看作是对象对象之间通过消息相互作用另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例如果说传统的面向过程式编程语言是以过程。
在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例面向对象的编程是以对象为中心,以消息为驱动,所以程序=对。
面向对象是指一种程序设计范型,同时也是一种程序开发的方法对象指的是类的集合它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性灵活性和扩展性起初,“面向对象”是专指在程序设计中采用封装。
面向对象相比于面向过程,是两种不同的处理问题的角度面向过程更注重事情的每一个步骤和以及顺序,面向对象更注重事件有哪些参与者,以及各自需要什么比如洗衣机洗衣服,面向过程将会把任务解析成一系列步骤,打开洗衣机放。
面向对象Object Oriented,OO是当前计算机界关心的重点,它是90年代软件开发方法的主流面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围如数据库系统交互式界面应用结构应用平台分布式系统网络管理结构CAD。
你好面向对象就是指把一个应用程序看成是由许多“对象object”组成的,然后去对这些对象编程,让它们具有一定的功能类是具有相同或相似性质的对象的抽象就是类因此,对象的抽象是类,类的具体化就是对象,也可以说。
面向对象如果我没记错的话应该是一门Java语言吧,我记得上大学学计算机的时候学过一点,当然不是计算机专业的,学的水过地皮湿,都是点皮毛而已,具体的你可以找一下计算机相关方面的书来看一下。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在。
面向对象分析方法
面向对象分析方法面向对象分析方法是以系统的用户和目的为出发点的一种分析技术,它主要用于分析系统中的物体(对象)之间的关系,以及这些物体所具有的通用性质,以便将它们组织为一个可使用的整体系统。
在软件开发中,面向对象分析方法用于发现和描述系统中的对象,以及它们之间的关系,并将这些对象组织为可重用的模块,以便用于系统的设计和实现。
面向对象分析方法包括四个主要步骤: 1、识别对象:根据系统的用户和目的,识别系统中的对象,并确定它们之间的关系。
2、分析对象:对系统中的对象进行进一步分析,以便更好地理解它们之间的关系。
3、确定对象的功能:确定系统中的对象应该具有的功能,以及它们之间的关系应该如何实现。
4、设计对象结构:考虑到对象之间的关系,设计系统的对象结构,以便将它们组织为可重用的模块。
面向对象分析方法有助于定义和分析系统中的对象以及它们之间的关系,从而准备进行软件设计和实现。
它能够帮助开发人员更好地理解系统的用户和目的,以及系统的功能和结构,从而有效地实现软件开发过程。
首先,面向对象分析可以帮助开发人员确定和识别系统中的对象,以及它们之间的关系。
通过分析用户和目的,开发人员可以确定用户可能会使用的对象,以及这些对象之间的关系。
在确定系统中的对象之后,开发人员可以分析这些对象,以便更好地理解它们之间的关系。
其次,面向对象分析可以帮助开发人员确定系统中的对象应该具有的功能,以及它们之间的关系应该如何实现。
通过分析用户和目的,开发人员可以确定每个对象应具有的功能,以及它们之间的关系应该如何实现。
最后,面向对象分析可以帮助开发人员设计系统的对象结构,以便将它们组织为可重用的模块。
在设计对象结构时,开发人员需要考虑到对象之间的关系,以及它们应该如何被组织和重用。
总之,面向对象分析方法是一种帮助开发人员确定和分析系统中的对象以及它们之间的关系的技术,从而为软件设计和实现提供依据。
它可以帮助开发人员确定系统中的对象,以及它们应该具有的功能和结构,从而有助于软件开发过程的有效实施。
面向对象 分析方法
面向对象分析方法面向对象分析方法(Object-Oriented Analysis, OOA)是一种软件开发中的分析方法,它主要是从对象的角度对系统进行分析,以便确定系统的需求,并定义系统中的对象和关系。
首先,面向对象分析方法强调对象的概念。
对象有状态,行为和标识,面向对象的分析方法的主要目的是理解系统对象。
分析中的对象通常是从现实世界中抽象的概念。
它们可以是具有属性以及可以执行的操作的任何事物,从人、动物、物品到商业概念和过程。
其次,面向对象分析方法强调抽象的重要性。
抽象是利用模型对信息进行缩减和简化的过程,以使得更容易理解精华、关键概念、规则和限制等. 面向对象分析方法通常以业务范畴对象的类的描述的概念模型开展。
应用程序的最终设计不同于一个概念模型,但它通常从这个带着剖析方法的模型开始。
接下来,面向对象分析方法规范化的技术是UML,即Unified Modeling Language。
UML是指一个由许多图表构成的项目和一些相关规范。
它是一个图形化的建模语言,可用于实现面向对象的分析、设计和构造。
UML 图表类型包括类图、用例图、对象图、时序图、通信图等, 主要用于完成对象指导的概念和设计。
最后,面向对象分析方法是软件开发过程中各阶段之间的桥梁。
它的主要目的是促进清晰的沟通,促进团队合作,并确保开发人员在开发那些与系统需求相符的代码时有一致的理解。
此外,它帮助开发人员对需求进行分析,确保大家共享对系统的理解。
这使得开发团队更加有效和掌握问题的机会。
综上所述,面向对象分析方法是一种强调对象概念和抽象的分析方法,它的最终目标是为确保开发人员有一致的理解并开发切合需求的代码。
这个方法在软件开发生命周期的各个阶段起到一个支撑作用,并且通过UML 规范化技术来完成。
对于当前的软件开发,需要理解和应用面向对象分析方法来提高开发的工作效率和程序的质量。
面向对象分析方法名词解释
面向对象分析方法名词解释
面向对象分析(Object-Oriented Analysis, 简称OOA),是一种基于软件工程中面向对象思
想的软件分析方法,旨在搭建软件需求分析基础模型,以识别、分析和实现客户软件需求,制定出对软件研发工作与设计有效的管理模型。
OOA 是拔高软件开发进程中最重要的步骤,它旨在满足客户对于软件的要求,使客户能够在满意的时间,满意的经费以及满意的套大成果得到期望的软件。
OOA 的拥有者一般是由软件项目经理控制的全职专职软件分析师,他们会使用OOA 快速获取软件要求信息,这
些信息是从客户的说明开始的形式,因此将比研发者在识别需求时所需要的时间更少。
OOA 的主要任务就是使软件发展过程更加高效。
Face-to-face(面对面)会谈,讲解,文
档研究以及运用建模工具等方法将客户提出的需求进行阐明,并把客户的大部分需求变成
客观的功能和属性的可操作的模型,因此OOA 的设计方法也称为可重用组件的设计(Reusable Components Design)。
OOA 的模型通常有以下几种:系统架构,逻辑和物理;在实现系统架构中,把客户提出的需求变成给定的抽象模型即为系统拓扑。
在逻辑模型中,将系统拓扑拆分为不同的构件,
以表达客户关心的系统服务和非功能性要求,而在物理模型中,关于客观和完整的描述系统结构,有细粒度的描述和定义每个构件的不同的属性。
面向对象分析也可以用于检验软件开发过程中的系统是否符合预期的情况,也可以用于发现并实施软件系统的改进与更新。
只要对OOA 方法有正确的运用,软件开发项目就容易
得到客户的满意和顺利实施。
面向对象分析
面向对象分析:是确定需求或者业务的角度,按照面向对象的思想来分析业务。
例如:OOA只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。
OOA与结构化分析有较大的区别。
OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
基本步骤:
在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:
第一步,确定对象和类。
这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。
类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
第二步,确定结构(structure)。
结构是指问题域的复杂性和连接关系。
类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
第三步,确定主题(subject)。
主题是指事物的总体概貌和总体分析模型。
第四步,确定属性(attribute)。
属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。
第五步,确定方法(method)。
方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。
对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。
面向对象分析
面向对象分析
面向对象分析是计算机科学领域中使用最广泛的一种分析技术,它是一种结构化的分析方法,是系统分析的更新与系统设计的预备工作。
面向对象分析可以帮助我们更好地理解和分析现有系统,并为系统重构提供指导。
面向对象分析是一种以对象为中心,以建模和分析实体、对象和对象之间的关系为主要任务的分析方法。
它的主要目的是将概念抽象为实体,然后利用视图及关系描述它们之间的关系。
面向对象分析包括分析、设计、建模过程,分析过程也称为面向对象分析(OOA)。
面向对象分析强调对对象的分析,对象可以看作对实际世界中的实际事物的抽象。
对象可以由属性和行为组成,属性描述了对象的内部状态,行为描述了它如何处理消息。
在面向对象分析中,这种抽象事物被描绘为类,每个类有一组共享的属性和行为。
面向对象分析和设计的主要工作是抽象建模,确定对象之间的关系,并利用抽象和关系建模系统。
建模可以帮助我们清楚地了解系统结构,以及每个系统元素之间的联系。
一旦建模完成,可以使用模型来设计、分析和实现高级的系统。
面向对象分析是一种结构化的分析方法,用于理解和描述系统的行为,从而有效地构建高质量的系统。
它的关键是建立系统的实体、关系和视图,从而提出系统的结构,并提出系统实现的可行方案。
总体而言,面向对象分析是一种重要而普遍应用的管理技术,它是系统分析和设计过程中的重要组成部分。
对对象的分析有助于进行
更好的系统设计,增强了系统容量,提高了系统灵活性和性能,为组建现代软件系统提供了可行的工具。
面向对象的分析
面向对象的思维方式: 面向对象是围绕对象和类来分析、设计软件
系统的。 面向对象分析:
面向对象分析的主要任务是根据用户的需求, 建立一个准确的、完整的、一致的系统模型。 在面向对象的分析过程里,项目组通过分析软 件的功能性需求,得到一个理想化的系统模型, 该模型更多的侧重于描述我们需求解决的问题 是什么---我们称这种模型为分析模型。
面向对象分析的过程包括:
1、从用例中提取实体对象和实体类。 提取实体对象的方法,依据用例描述中出现的名词和
名词短语来提取实体对象,必须对原始的名词和名词短 语进行筛选。
得到实体对象后,对实体对象进行归纳、抽象出实 体类。 2、提取属性 3、提取关系 4、添加边界类 5、添加控制类 6、绘制类图 7、绘制顺序图 8、编制术语表
聚合实际上是关联关系的一种特例,一般不建议在分 析的初始阶段花费很多时间区分聚合和关联,遇到一 个关联时应该按照分析者的理解,比较自然地描述出 来,无论用聚合或关联都可,只要易于理解。
静态分析:识别属性
属性用以描述对象的特性,描述一个行为主体所具有的特征, 比如名字、年龄、重量、颜色、速度等。属性通常对应于问题 描述中具有所有格短语修饰的名词,例如“计算机的内存规模 ”、“汽车的价格”、“飞机的位置”等都可能被作为相应对 象的属性,而与之相对的是一些只有枚举性质的形容词、名词 成数词等通常被作为属性可能的取值,例如“计算机的内存规 模”以及“汽车的价格”的取值为一些整数,而“颜色”的取 值可能是红色、蓝色等。
提取公共成员形成一般—特殊结构
静态分析:分离部分成员
由于对问题空间对象认识的深度所限,有时所定义 类中的一些属性或操作只适用于一部分对象,而对 其他对象没有意义,出现这种情况的直接原因是类 的范围选取过大,适当缩小类的范围,将那些真正 具有相同性质和行为的对象作为一类加以描述。例 如图3中在校人员类原本包含工资和班主任两个属 性,可是在校人员不全具有这两个属性的有效值, 比如对教师而言,不存在班主任;对学生而言,不 存在工资,因此将两个属性封装在一起范围就过大 ,应将它们分离出来形成两个新类——教师”和“ 学生”,将两个类的共同居性和操作放到一般类中 ,形成一般一特殊结构。
面向对象分析与设计
面向对象分析与设计面向对象分析与设计(Object-oriented analysis and design)是软件工程领域中的一种方法论,用于解决软件系统开发过程中的问题和需求。
本文将对面向对象分析与设计的基本概念、流程和常用方法进行介绍,并附带答案和解析。
第一部分:面向对象分析(Object-oriented analysis)面向对象分析是软件开发过程中的第一步,旨在理解问题域并建立领域模型。
面向对象分析有以下几个重要概念:1. 对象(Object):对象是系统中的一个实体,包含数据和方法。
对象可以是具体的实物、虚拟的概念或一组相关的数据和行为。
2. 类(Class):类是一种抽象的定义,描述了一组具有相同特征和行为的对象。
3. 属性(Attribute):属性是对象的特征,用于描述对象的状态。
4. 方法(Method):方法是对象的行为,用于描述对象可以执行的操作。
面向对象分析的主要流程包括以下步骤:1. 需求收集:收集系统的需求,与利益相关者沟通,了解系统的功能和性能要求。
2. 领域建模:对现实世界的问题域进行抽象和建模,识别出系统中的对象和它们之间的关系。
3. 需求分析与规约:通过使用用例、活动图和状态图等工具对需求进行分析和规约,明确功能和交互细节。
4. 领域模型验证:与利益相关者验证领域模型的准确性和实用性,确保模型能够满足系统需求。
第二部分:面向对象设计(Object-oriented design)面向对象设计是在面向对象分析的基础上,进一步细化领域模型,为系统的实现提供指导。
面向对象设计有以下几个常用方法:1. 类图(Class diagram):类图用于展示类、属性和方法之间的关系。
类图包括类的名称、属性和方法,并通过关联、继承和聚合等关系展示类之间的联系。
2. 对象图(Object diagram):对象图用于展示类的实例和对象之间的关系。
对象图是类图的实例化表示,展示了系统在某一时刻的对象及其特定的属性值。
《面向对象分析 》课件
面向对象分析是逐步抽象、逐步分类的过程, 程序代码更加具有可读性,并可避免重复代 码创建
面向对象分析的流程
1
需求定义
收集并分析业务需求,根据需求建立初步模型。
2
形成模型
在初步模型的基础上,进行建模、分析、设计和验证,形成正式模型。
3
评价和完善
评估模型的质量并进行优化,最后形成完整、准确的模型。
领域建模
1
领域建模的流程
2
通过客户需求、市场环境、组织机构
等多方面考虑,建立基础识别原则,
全面地把控领域的各种可能性。
3
领域模型的符号与构建方法
4
领域模型是可以描述系统所分析的需 求的,采用实体、边界、控制等几个 方面的关系模型,以透视实体、边界、
记录等三个信息进行分析。
领域建模的定义
领域建模是对业务领域进行分析和建 模,从而达成对业务领域的深刻理解 的过程。
对象与类
对象的三个主要特征
对象是系统中一个具体实体,具备身份、状态 和行为三个主要特征,是面向对象分析的基本 概念。
类的定义与实现
类是具有相同属性和行为的对象集合,是对对 象的相似性的一种抽象,具体了相同概念的特 征和关系。
类的关系
类的关系包括继承、聚合、组合、依赖、关联 和实现,是所有系统元素之间的关系件将帮助你深入了解面向对象分析的流程和方法,掌握开发中的应用 技巧。
什么是面向对象分析?
深入理解业务需求
面向对象分析是一种针对业务需求的软件开发 方法,通过抽象出各个业务实体及其属性及行 为关系,建立起软件模型,实现对业务的深度 理解。
以对象为核心
面向对象分析是基于对象的思想进行软件需求 分析和设计,将对象作为核心概念,以对象之 间的关系为架构进行软件分析与设计。
面向对象分析与设计方法
面向对象分析与设计方法面向对象分析与设计方法(Object-oriented Analysis and Design,简称OOAD)是一种用于系统开发的方法论,它倡导通过抽象和模块化的方式来分析和设计系统。
在软件开发领域,面向对象的方法已经成为主流,它具有良好的可维护性、可扩展性和可重用性。
一、面向对象分析(Object-oriented Analysis)面向对象分析是软件开发过程的第一步,它主要涉及到研究问题域并确定需求。
在面向对象分析阶段,开发团队与用户和领域专家进行密切合作,以确保对问题域的深入理解。
这一阶段的重要任务包括:1. 需求收集与分析:通过与客户和用户的交流,明确系统的功能需求和业务流程。
分析师可以使用各种技术(如访谈、问卷调查、观察等)来获取准确的需求。
2. 领域建模:通过对问题域的建模,深入理解业务领域的概念、业务规则和相关过程。
建模工具如UML(统一建模语言)可以被用来表示领域模型。
3. 构建用例模型:用例模型是对系统功能需求的描述,它描述了系统与外部参与者之间的交互。
用例模型可以帮助开发团队明确系统的边界和关键功能。
二、面向对象设计(Object-oriented Design)在面向对象设计阶段,分析师通过对需求的深入理解和领域模型的基础上,开始设计系统的结构和组织。
设计的目标是构建一个高效、灵活和可扩展的系统。
以下是面向对象设计的主要任务:1. 构建类模型:类是面向对象系统中最基本的构建块。
在设计阶段,分析师需要根据领域模型和需求,识别出系统中的类,并定义它们的属性和行为。
2. 定义类之间的关系:在面向对象系统中,类之间的关系非常重要。
通过定义关联、继承、聚合和依赖等关系,可以更好地组织系统的结构,使系统具有更好的灵活性和可扩展性。
3. 定义接口和协议:接口和协议定义了类之间的合作方式,它们定义了类的公共方法和行为。
通过良好的接口设计,可以实现系统模块的解耦合,提高系统的可维护性和可重用性。
面向对象分析与设计基础知识讲解
面向对象分析与设计基础知识讲解面向对象分析与设计(Object-oriented analysis and design,简称OOAD)是软件工程领域中重要的一部分。
它是指通过对现实世界的事物进行抽象和建模,以实现软件系统的开发和设计。
本文将介绍面向对象分析与设计的基础知识,包括面向对象的概念、面向对象分析和面向对象设计的过程。
一、面向对象的概念面向对象是一种软件开发方法,将现实世界抽象成为对象和对象之间的关系。
在面向对象的设计中,对象是系统中具体的实体,它包含了数据和操作数据的方法。
对象之间通过消息传递来完成协作和交互,从而实现系统的功能。
面向对象的四个基本概念:1. 类(Class): 类是对象的抽象,它定义了对象的属性和行为。
每个对象都是根据类的定义创建的。
2. 对象(Object): 对象是类的实例,它具有类定义的属性和行为。
每个对象都有唯一的身份,可以通过引用来访问。
3. 继承(Inheritance): 继承是指通过已有的类创建新的类,新类继承了原有类的属性和行为。
继承使得代码的复用更加方便,也提高了代码的可维护性。
4. 多态(Polymorphism): 多态是指同一个方法可以根据不同的对象产生不同的行为。
多态通过继承和接口实现。
二、面向对象分析(OOA)面向对象分析是软件开发中的第一步,它的目标是理解系统的需求,确定系统中的对象以及它们之间的关系。
面向对象分析主要包括以下步骤:1. 确定系统的边界和范围:明确系统要解决的问题和目标。
2. 确定系统的对象:从需求文档中提取对象,并识别它们之间的关系。
3. 定义对象的属性和行为:确定每个对象的属性和操作。
4. 划分对象的责任:将对象的操作分配到合适的对象上,确保每个对象的职责明确。
三、面向对象设计(OOD)面向对象设计是根据面向对象分析的结果,通过定义类和交互关系来实现系统的设计。
面向对象设计要考虑到系统的可扩展性、可维护性和可重用性。
第2章 什么是面向对象分析
面向对象分析与设计
面向对象分析与设计一、引言面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程中的一种方法论,用于解决复杂系统的设计与开发问题。
本文将介绍面向对象分析与设计的概念、原则和过程,并结合实际案例说明其重要性和应用。
二、概念解析1. 面向对象分析(Object-Oriented Analysis,简称OOA):通过识别和描述系统所涉及的对象及其相互关系,以及对象的属性和行为,从而确定系统需求和问题领域的分析方法。
2. 面向对象设计(Object-Oriented Design,简称OOD):基于面向对象分析的结果,通过定义类、抽象数据类型、方法、接口等概念,设计出系统的结构和组织,以及类之间的关系和交互方式。
三、面向对象分析与设计的原则1. 单一职责原则(Single Responsibility Principle,简称SRP):一个类只负责一项职责,保证类的内聚性和高内聚性。
2. 开放封闭原则(Open-Closed Principle,简称OCP):系统中的类、模块等应该对拓展开放,对修改封闭,通过继承、接口等方式实现。
3. 里氏替换原则(Liskov Substitution Principle,简称LSP):所有引用基类的地方必须能透明地使用其子类的对象,即子类必须能够替换基类。
4. 依赖倒置原则(Dependency Inversion Principle,简称DIP):高层模块不应该依赖于底层模块,二者都应该依赖于抽象;抽象不应该依赖于具体,具体应该依赖于抽象。
5. 接口隔离原则(Interface Segregation Principle,简称ISP):客户端不应该依赖于它不需要的接口,接口应该进行细化拆分以适应不同的场景和客户端需求。
6. 迪米特法则(Law of Demeter,简称LoD):一个对象应该对其他对象有尽可能少的了解,减少耦合性,降低系统的复杂度。
OOP_2
4. 本质上具有并行性. 5. 模块独立性好. 三,常用的OOP术语 1. 类(Class) 是程序语言的一种数据类型,包含了对数据和操作的捆绑 式描述.类可以表示出某类对象的本质,即对具有相同属性 和行为的一组相似对象的抽象. 2. 实例(Instance) 就是某个特定的类所描述的一个具体的对象,程序中一般 体现为由类所定义的具体变量.
录下一个文件名唯一确定了一个 文件,因此,目录+文件名使得 关联由原来的1:M型变成1:1型.
Ch2-15
1:M关系
Ch2-16
消息连接:用箭头线表示.可在线上注明消息性质或内容.
文件
1+
访问权限
文件操作 ቤተ መጻሕፍቲ ባይዱ令消息
三,对象模型建立实例(一个简单的图书馆借阅系统)
书刊 书名,作者,出版 社,出版时间,分 类号,条码号,入 馆时间 修改记录
Ch2-7
(3)受保护的内部实现,即私有数据和代码不能在定义 该对象类的范围以外进行访问. 7. 继承(Inheritance) OOP技术中,继承就是子类能够自动地共享基类中定义的 数据和方法,而不必重复定义它们的机制.继承具有传递性, 若类A派生类B,类B派生类C,则类B继承类A的非私有数 据和方法,类C继承类B和类A所有的非私有数据和方法. 例:实现继承机制的原理 设有A,B两个类且类B是从类A派生出来的子类,a1,b1 分别是类A和类B的两个实例(即两个变量),则变量a1的 存贮空间包括:类A中的所有数据所需的空间;访问类A中 所有方法(函数)的句柄(注意并不拷贝实际的方法代码).
例:用C++定义了一个"学生"类StuCls,则可用类名字 StuCls定义变量,如下 StuCls a,b,s[10]; 则变量a,b与数组s都是"学生"对象的实例,可以理解为学生a, 学生b, 学生s[0],s[1],…,s[9],共12个实例. 3. 消息(Message) 通知某个对象执行某种操作的规格化数据.一个消息一般 包括以下三部分: (1)接收消息的对象(消息的目的地) (2)消息名(消息选择符或消息ID) (3)零个或多个变元(消息运载的通信数据)
第二部分面向对象分析
m
(e) 关联
n
类
同步
接收者
普通对象
主动对象
普通类
异步
(f) 消息连接
(a) 类
一般类
(b) 属性与服务
整体对象类
m
n
特殊类 (c) 泛化 特殊类 部分对象问题 域和系统责任有 关的对象,用对 象类表示
问题域
人事管理 ……
系统责 任
金融业务 个人储蓄 国债发行 贷款业务 ….
信息备份 ……
困难所在: 软件开发人员与领域专家的技术背景不同*
现今的系统所面临的问题域比以往更为广阔和复杂,系统比以往更为庞大。
2、交流问题
如果分析所产生的文档使分析员以外的其他人员都很难读懂,那就很不 利于交流。这会使彼此的思想不易沟通,并容易隐藏许多错误。(分析 人员与客户**及领域专家,分析人员之间*,分析人员与设计人员)
3、需求的不断变化
引起需求变化的因素: 用户(主客观因素)、竞争因素、经费、技术因素* 操作〉接口〉属性 对象最稳定 软件开发者必须以合作的态度满足用户需求
4、软件复用的要求
初始为程序复用。 复用级别提高——分析结果复用 要求分析模型中的可复用部分用于多个系统 要求一个分析模型在多种条件下设计和实现
目标是建立一个符合问题域、满足用户需求的OOA模型。
2.2
分析面临的主要问题
问题域(problem domain):被开发系统的应用领域,即在现实世界 中由这个系统进行处理的业务范围。 系统责任(system responsibilities):所开发的系统应该具备的 职能。
1、问题域和系统责任复杂性日益增长
面向对象的系统分析概述
一、面向对象的系统分析概述1、什么是面向对象的分析(Object-Oriented Analysis)运用面向对象方法,对问题域和系统应该满足的功能进行分析和理解,找出描述问题域和系统功能所需的各个对象,并定义这些对象的属性和操作,以及建立这些对象之间的关系;最后建立一个符合问题域、满足用户需求的OOA模型。
在OOA阶段,不考虑与系统具体实现有关的因素。
2、面向对象分析的首要任务●建立域软件模型(简称:域模型)●进行静态分析●进行动态分析3、应用面向对象分析的优点●能够加强对问题域和系统功能的充分理解●促进与分析有关的各类人员之间的交流●对需求的变化具有较强的适应性●支持软件复用技术●贯穿软件生命周期全过程的一致性二、主要的面向对象的分析方法1、Peter Coard和Edward Yourdon 的OOA和OOD方法。
2、Booth的面向对象设计方法:认为软件开发是一个螺旋上升过程。
3、OMT方法(Object Modeling Technology):即对象建模技术,是目前最成熟和实用的方法之一。
它强调从三个方面对系统建模:功能模型、对象模型、动态模型。
三、面向对象分析的主要原则1、抽象2、封装3、继承关系4、聚合和组合5、依赖和关联6、消息通信四、域模型1、什么是域模型域模型是软件系统所要解决的现实世界中的问题域。
如:银行问题;电子商务问题、内容管理问题;等等。
域建模就是对这些问题进行归纳、分析的过程。
域,就是问题域。
2、建立域模型的优点能够从现实的问题域中找到最具有代表性的概念对象(即,抽象的“业务类”),并找出类和类之间的关系。
建模是开发优秀软件系统活动的核心部分。
建模的主要目的是实现设计结构和系统行为之间的沟通。
3、建立域模型的要点域模型不是软件组件的模型,域模型中的业务类不是Java 或者C#等语言中的“类”,因此下列元素或名称不适合在域模型中表述:●软件组件●对象中的成员方法●对象的职责识别业务类的策略是找名词或名词短语;也可能是形容词+名词。
什么是面向对象分析_软件工程_[共3页]
161第8章面向对象分析8.1 什么是面向对象分析面向对象分析(Object-Oriented Analysis ,OOA )是软件生命周期的一个阶段,具有一般分析方法所共同具有的内容、目标及策略。
然而,OOA 强调运用面向对象方法来对问题域和系统责任进行分析与理解,定义描述问题域和系统责任所需要的对象,定义对象的属性、操作以及对象之间的关系,目标是建立一个符合问题域、满足用户功能需求的OOA 模型。
1.问题域与系统责任在深入讲述面向对象分析之前,首先解释一下本书中要经常使用的两个术语:问题域(problem domain )和系统责任(system responsibility )。
问题域:被开发系统的应用领域,即在现实世界中这个系统所涉及的业务范围。
系统责任:被开发系统应该具备的职能。
这两个术语的含义在很大部分上是重合的,但经常是不一定完全相同。
例如,要为银行开发一个业务处理系统,银行就是这个系统的问题域。
银行的日常业务(如金融业务、个人储蓄、国债发行和投资管理等)、内部管理及与此有关的事物都属于问题域。
尽管银行内部的人事管理属于问题域,但是在当前的这个系统中可能并不属于系统责任。
像对储户的数据要进行定期备份这样的功能属于系统责任,但不属于问题域。
图8-1所示为对本例的一个图示。
图8-1 问题域与系统责任示例在图8-1中,左边的椭圆所示的范围为问题域部分,右边的椭圆所示的范围为系统责任部分,二者之间有很大的交集。
2.OOA 模型OOA 模型就是通过面向对象的分析所建立的系统分析模型,用于表达在OOA 阶段认识到的系统成分及彼此之间的关系。
在可视化方面,要用建模概念所对应的表示法绘制相应种。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是对问题域中事物的完整映射,包括事物的数据特征和 如实地反映了问题域中事物之间的各种关系,包括分类 采用封装、继承、消息通讯等原则,使问题域的复杂性
7
行为特征。
结构、组装结构、静态联系和动态联系。
得到控制。
不同的分析方法 ——对现实世界(问题域)的不同映射
功能/子功能
功能接口 数据流 加工
功能分解法
分析,用面向对象的概念和表示法表达分析结果。
基本任务是:运用面向对象方法,对问题域和系统责任
进行分析和理解,找出描述问题域及系统责任所需的对象 ,定义对象的属性、操作以及它们之间的关系。
目标是建立一个符合问题域、满足用户需求的OOA模型。
3
2.2
分析面临的主要问题
问题域(problem domain):被开发系统的应用领域,即在现实
构件技术 ?
较差 较差 较好 好
很好
差 较好
好
很好
略好
好
很好
面向服务
很好
很好
很好
9
2.4 本课讲授的OOA方法概貌
1、概念与表示法 建模元素
对象、类 属性 服务 泛化 消息 关联、链 聚合 多态性 主动对象(类) 主题(包)
基本概念
对象,类 属性 服务 继承 消息 关联 聚合 多态 主动对象 ……
原则
分类 行为分析 继承 消息通信 关联 整体-部分关系 粒度控制
10
表示法示例
类名
对象名 @对象名 属性 ... 服务 ... @类名 属性 ... @服务 ... 发送者
类
m (e) 关联
n
类
同步
接收者
异步
普通对象
主动对象
普通类
主动类
(f) 消息连接
(a) 类
(b) 属性与服务
编号 主题名 编号 编号 整体对象类
一般类
压缩方式 编号 主题名 类名 ·· ·· ·· 半展开方式
m
编号
编号
n
特殊类 (c) 泛化 特殊类 部分对象类
展开方式
(d) 聚合 (g) 主题的三种表示方式 (h)包
OOA模型
完整的OOA模型分为基本模型和辅助模型以及需求
模型和模型规约
一、基本模型
基本模型是一个类图(class diagram),是以直观的方式
5
2.2
分析面临的主要问题
4、软件复用的要求
于多个系统
要求一个分析模型在多种条件下设计和实现
对分析提出了更高的要求
制作(服务)构件、组织(服务)构件、检索(服务) 构件、组装(服务)构件
6
2.3 面向对象的分析综述
面向对象= 对象,类 +关系(结构与连接) +继承 +封装 +消息通讯 +……
数据流法
E-R法
面向对象方法
按概念对问题进行分解
软件开发的目标:在预算内按时开发出满足用户需求的高质量软件。
采用不同的方法所付出的代价及所取得的收益是不同的。
8
分析方法的几方面的比 较
对问题域和 系统责任的 理解
改进交流 适应变化 较差 最差 较差 略好 好
很好
支持复用 差 差
功能分解法
数据流法 信息建模法 OOA
系统责任(system responsibilities):所开发的系统应该具备
系统责 任
人事管理 金融业务 个人储蓄 国债发行 贷款业务 …. 信息备份
1、问题域和系统责任复杂性日益增长
世界中由这个系统进行处理的业务范围。
的职能。
问题域
……
……
困难所在: 软件开发人员与领域专家的技术背景不同(学习、更高的见解、 适合于软件) 现今的系统所面临的问题域比以往更为广阔和复杂,系统比以 4 往更为庞大。
表达系统最重要的信息。OOA基本模型的三个层次分别描 述了:系统中应设哪几类对象,每类对象的内部构成,对象
与外部的关系。
12
OOA模型
二、需求模型 需求模型使用用况图来捕获和描述用户的要求
三、辅助模型
对于复杂的系统来说仅建立需求模型和基本模型往往 是不够的,还需要从其他方面进行建模,用以针对基本 模型进行辅助描述 四、模型规则 按照分析方法所要求的格式,对分析模型进行说明和 解释。主要以文字为主。
13
OOA模型
给出所有与问题 域和系统责任有 关的对象,用对 象类表示
捕获与描述用 户的要求
一幅交互图表现完成某一项特定功能的一 组对象之间的详细交互;一辐状态图描述 了一个对象的状态变迁。活动图描述了一 个服务的流程或业务流程。
基本模型(类图)
对象层 特征层 用况图 关系层
辅助模型
交互图 活动图 状态图 包图 …… 对关系密 切的元素 打包,帮 助理解系 统模型。
面向对象分析与设计
——祝毅鸣 办公室:1307
1
第二部分
面向对象分析
2
第2章 什么是面向对象的分析
2.1
什么是面向对象的分析?
面向对象的分析(Object Oriented Analysis, OOA)
OOA是软件生命周期的一个阶段,具有一般分析方法共同
,就是运用面向对象方法进行系统分析。
具有的内容、目标及策略;但强调运用面向对象方法进行
2.2
分析面临的主要问题
2、交流问题
如果分析所产生的文档使分析员以外的其他人员都很难读懂, 那就很不利于交流。这会使彼此的思想不易沟通,并容易隐藏许多 错误。(分析人员与客户及领域专家,分析人员之间,分析人员与 设计人员,开发人员与管理人员)
3、需求的不断变化
引起需求变化的因素: 用户(主客观因素)、竞争因素、经费、技术因素 软件开发者必须以合作的态度满足用户需求 易变的部分依次为:功能、接口、属性、对象----得益于封装原则。
需求模型 定义每个对 象类的属性 与服务
通过已定义的 关系描述对象 类之间的关系
模型规约
对模型中 的所有元 素进行详 14 细说明。
OOA过程
建立类图(基 本模型) * 发现对象、 定义对象类 * 识别对象的 内部特征 * 识别对象的 外部关系
定义用况*(辅助模型,可选) 用用况对用户需求进行规范化描述。
建立详细说明
对模型中的成分进行 规范的定义和文字说 明。可以集中进行, 也可分散在各个活动 中。
原型开发(可选 ) 结合其他活动反 复进行
建立交互图、状态图和活动图等 (辅助模型,可选)
15
本章结束!
16