计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)

上传人:woxinch****an2018 文档编号:57228846 上传时间:2018-10-20 格式:PPTX 页数:102 大小:603.34KB
返回 下载 相关 举报
计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)_第1页
第1页 / 共102页
计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)_第2页
第2页 / 共102页
计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)_第3页
第3页 / 共102页
计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)_第4页
第4页 / 共102页
计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)》由会员分享,可在线阅读,更多相关《计算机课件 第 1 章(C)- 面向对象分析和设计初步2011(2h)(102页珍藏版)》请在金锄头文库上搜索。

1、第一章 从过程抽象到数据抽象,1.3 面向对象分析和设计,主要内容,面向对象建模 对象模型 UML建模技术 面向对象分析 面向对象设计 面向对象实现,1.3.1 面向对象建模,在创建系统之前必须对问题有一个透彻的了解。为了更好的理解问题和描述问题,人们常常采用“建立问题模型”技术。如:建造一座大厦(图纸),拍电影(剧本) 模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。 模型是一种思考工具,利用这种工具可以把知识规范地无歧义地表示出来。,1. 建模的目的:,(1)模型帮助我们将系统可视化,可以更好地理解系统。 (2)模型可以让我们直观、详细描述系统的结构和

2、行为,并利用它和同事容易沟通。 (3)模型提供了指导我们创建系统的模板,我们可以用它为使用系统的人提供帮助。 (4)模型对我们所做的决策进行文档化。,系统越大越需要建立问题模型。为了开发复杂的软件系统,系统分析员应该抽象出目标系统的特性,使用精确的表示方法构造系统的模型,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。,2.建立问题模型方法,从算法的角度建立问题模型:所有的问题都用过程/函数作为主要构造块 面向对象的建模:所有的问题都用对象/类作为主要构造块 面向对象的建模的方法很多: Rumbaugh-OMT Booch Yourdon - OOA Visio,OMT

3、建模,OMT是著名的对象模型化技术OMT。 OMT认为用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是: 1.描述系统数据结构的对象模型(基本、核心) 2.描述系统控制结构的动态模型 3.描述系统功能的功能模型 这三个模型从3个不同但又密切相关的角度模拟目标系统。 一个典型的软件系统组合了上述三方面内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。,分析:,对象模型是三个模型中最关键的一个模型。它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。(定义“对谁做”) 动态模型着重于系统的控制逻辑。要想对一

4、个系统了解得比较清楚,还应当考察在任何时刻对象及其关系的改变。系统的这些涉及时序和改变状况用动态模型来描述。(定义“何时做”) 功能模型着重于系统内部数据的传送和处理。功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。(定义“做什么”),最核心的模型-对象模型,面向对象方法强调围绕对象而不是围绕功能来构造系统。 对于大系统:3个模型必不可少.对于小系统:对象模型必不可少。 对象模型是上述三种模型中最重要、最基本、最核心的模型。 对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构

5、。,OMT对象模型化技术把分析时收集的信息构造在三类模型中,即对象模型、动态模型和功能模型。,这个模型化的过程是一个迭代过程。通过不断更新、细化,直到切合系统的真正需求为止。,为了建立系统模型,需要定义一组图形符号,并且规定一组组织这些符号以表示特定语义的规则。如对象模型,需要包含下列符号: 表示类的符号(应该既能表示属性又能表示服务); 表示对象(类实例)的符号; 表示继承关系的符号; 表示类和(或)对象 间其他关系的符号。 统一建模语言(UML)为建立系统模型提供了一个图形化的表示手段,UML建模技术,1. UML(Unified Modeling Language, 统一建模语言) UM

6、L是软件和系统开发的标准建模语言。它主要以图形的方式对系统进行分析、设计。 UML是在多种面向对象分析与设计方法相互融合的基础上形成的,是一种专用于系统建模的语言。它为开发人员与客户之间,以及开发人员之间的沟通与理解架起了“桥梁”。,2.UML系统视图,UML 是用来描述模型的,它用模型来描述系统的结构、或静态特征、以及行为或动态特征 它从不同的视角为系统的架构建模,形成系统的不同视图(view) 每一种UML 的视图都是由一个或多个图(diagram )组成的,一个图就是系统架构在某个侧面的表示,它与其它图是一致的,所有的图一起组成了系统的完整视图。 UML 提供了九种不同的图描述系统模型。

7、可以分成两大类: 一类是静态图。包括用例图、类图、对象图、组件图、配置图 另一类是动态图。包括序列图、协作图、状态图和活动图,UML图(preview),1) 用例图,2) 时序图:打印,3) 时序图:打电话,4) 协同图:打印,5) 状态图:电梯,6) 封包,7) 活动图:磁盘,8) 构件分布图,9) 构件图的组合,10) 配置图:主机与外围设备,11)类图,类图用于表示类的存在和类与类之间的相互关系,是从系统构成的角度来描述正在开发的系统。 类的表示:,类图,12)对象图,类图表示类和类与类之间的关系,对象图则表示在某一时刻这些类的具体实例和这些实例之间的具体连接关系。由于对象是类的实例,

8、所以UML 对象图中的概念与类图中的概念完全一致。对象图可以看作类图的示例,帮助人们理解一个比较复杂的类图。对象图也可用于显示类图中的对象在某一点的连接关系。 对象的图示方式与类的图示方式几乎是一样的,主要差别在于对象的名字下面要加下划线。 对象名有下列三种表示格式:,13)关系,类图由类和它们之间的关系,组成类与类之间通常有四种关系: 泛化关系(Generalization) 关联关系(Association) 聚合关系(Aggregation) 合成关系(Composition) 依赖关系(Dependency) 其中,聚合关系(Aggregation),合成关系(Composition)

9、属于关联关系(Association)。 泛化关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。,泛化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。 表示方法: 用一个空心箭头实线,箭头指向父类。或空心箭头虚线,如果父类是接口。,关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。 表示方法:用 实线箭头, 箭头指向被使用的类。 在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个Employee。,聚合关系:是关联关系的一种,

10、是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,啊聚合关系两个类处于不同的层次,一个是整体,一个是部分。 表示方法:空心菱形实线箭头,箭头指向部分。,合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。 表示方法:实心菱形实线箭头,,Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。,依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。 表示方法:虚线箭头,UML开发工

11、具,IBM Rational Rose Microsoft Visio-UML 模型图 Borland Together Jude (Java and UML Developers Environment),一个小巧实用的UML建模软件,是一个中日合作采用XP开发方式纯JAVA开发的软件,也可以说是半个国产软件 EclipseUML RoseStarUML:一款开放源码的UML开发工具,是由韩国公司主导开发出来的产品。,1.3.2 面向对象分析(OOA),1. 基本内涵 面向对象的分析就是运用面向对象方法进行系统分析,抽取和整理用户需求并建立问题域精确模型的过程。 它强调运用面向对象方法进行分

12、析,用面向对象的概念和表示法表达、分析结果。,2. 基本任务,OOA分析工作主要包含3项内容: 理解用户需求; 表达用户需求; 验证用户需求。,3. 基本步骤,面向对象分析工作大体上按照下列顺序进行: 第一步,寻找类&对象; 第二步,确定对象之间的关联; 第三步,定义对象的属性; 第四步,定义对象的服务。 事实上,分析工作不可能严格地按照预定顺序进行,系统的模型往往需要反复构造多遍才能建成。 通常,先构造出模型的子集,然后再逐渐扩充,直到完全、充分地理解整个问题,才能最终把模型建立起来。,1) 确定类&对象,步骤: 找出侯选的类&对象。 对象是对问题域中有意义的事物的抽象,它们既可能是物理实体

13、,也可能是抽象概念。 通常,将需求陈述中的名词 或名词短语作为类&对象的候选者。,筛选出正确的类&对象。 找出候选的类&对象之后,还应该严格考察每个候选者,从中去掉不正确的或不必要的。 删除的依据如下: 冗余的:两个类名表示了相同的信息,应该保留较全面的类&对象。 无关的:与目标系统无关的类&对象。 笼统的:用精确的代替模糊、笼统的类&对象。 无关的属性:去掉类&对象中无关的属性。 操作:通常用动词定义类中的操作。 实现:在系统分析阶段应该少考虑或不考虑怎样实现目标系统。,2) 确定关联,在需求陈述中使用的描述性动词或动词词组,通常表示关联关系。因此,在初步确定关联时,大多数关联可以通过直接提

14、取需求陈述中的动词词组而得出。 分析员还应该与用户及领域专家讨论问题域实体间的相互依赖、相互作用关系,根据领域知识再进一步补充一些关联。 最后,还需对初步确定的关联进行进一步筛选,以去掉不正确的或不必要的关联。三个或三个以上对象之间的关联,大多可以分解为二元关联。,3) 确定属性,分析并确定每个对象有哪些特性。 确定属性的过程包括分析和选择两个步骤。 通常,在需求陈述中用名词词组表示属性。应该仅考虑与具体应用直接相关的属性,不必考虑那些超出所要解决的问题范围的属性。,4) 确定服务,分析并确定每个对象有哪些对属性的操作。 在确定类中应该有的服务时,既要考虑该类实体的常规行为,又要考虑为完成本系

15、统功能所需要提供的服务。,5) 识别继承关系,确定了类中应该定义的属性和服务之后,就可以利用继承机制共享公共性质,并对系统中的类加以层次化组织。 一般说来,可以使用两种方式建立继承关系: 自底向上:抽象出现有类的共同性质泛化出父类,这个过程实质上模拟了人类归纳思维过程。 自顶向下:把现有类细化成更具体的子类,这模似了人类的演绎思维过程。,OOA模型(based on UML):,1.3.3 面向对象设计(OOD),面向对象分析是提取和整理用户需求,并建立问题域精确模型的过程。面向对象设计则是把分析阶段得到的需求转变成符合成本和质量要求的系统实现方案的过程。 从面向对象分析到面向对象设计,是一个

16、逐渐扩充模型的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。,1. 发展过程_I,1) 早期的OOD(80年代至90年代初) 1982 年G. Booch发表“Object-Oriented Design” ,首次称“面向对象的设计”。 1986 年发表“Object-Oriented Development”,较完整地阐述了OOD思想。,两个术语都用OOD作为缩写,内容上也没有根本区别。,1983年R. J. Abbott提出正文分析方法,用规范的英语描述对一个问题的解释,然后从描述中提取对象及其特征。例:名词对象,动词操作。被后来的许多OOD方法所采用。,1. 发展过程_II,1986年后,相继出现了一批(早期的)OOD方法。 如: Booch86Object-Oriented Development(面向对象的开发) GOODGeneral Object-Oriented Development(通用面向对象的开发) HOODHierarchical Object-Oriented Design(层次式面向对象的设计) OOSDObject-Oriented Structured Design(面向对象的结构设计) ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号