面向对象分析和设计初步.pptx
《面向对象分析和设计初步.pptx》由会员分享,可在线阅读,更多相关《面向对象分析和设计初步.pptx(102页珍藏版)》请在三一办公上搜索。
1、第一章 从过程抽象到数据抽象,1.3 面向对象分析和设计,主要内容,面向对象建模对象模型UML建模技术面向对象分析面向对象设计面向对象实现,1.3.1 面向对象建模,在创建系统之前必须对问题有一个透彻的了解。为了更好的理解问题和描述问题,人们常常采用“建立问题模型”技术。如:建造一座大厦(图纸),拍电影(剧本)模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。模型是一种思考工具,利用这种工具可以把知识规范地无歧义地表示出来。,1.建模的目的:,(1)模型帮助我们将系统可视化,可以更好地理解系统。(2)模型可以让我们直观、详细描述系统的结构和行为,并利用它和同
2、事容易沟通。(3)模型提供了指导我们创建系统的模板,我们可以用它为使用系统的人提供帮助。(4)模型对我们所做的决策进行文档化。,系统越大越需要建立问题模型。为了开发复杂的软件系统,系统分析员应该抽象出目标系统的特性,使用精确的表示方法构造系统的模型,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。,2.建立问题模型方法,从算法的角度建立问题模型:所有的问题都用过程/函数作为主要构造块面向对象的建模:所有的问题都用对象/类作为主要构造块面向对象的建模的方法很多:Rumbaugh-OMTBooch Yourdon-OOA Visio,OMT建模,OMT是著名的对象模型化技术
3、OMT。OMT认为用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:1.描述系统数据结构的对象模型(基本、核心)2.描述系统控制结构的动态模型3.描述系统功能的功能模型这三个模型从3个不同但又密切相关的角度模拟目标系统。一个典型的软件系统组合了上述三方面内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。,分析:,对象模型是三个模型中最关键的一个模型。它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。(定义“对谁做”)动态模型着重于系统的控制逻辑。要想对一个系统了解得比较清楚,还应当考察在任何时刻对象及
4、其关系的改变。系统的这些涉及时序和改变状况用动态模型来描述。(定义“何时做”)功能模型着重于系统内部数据的传送和处理。功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。(定义“做什么”),最核心的模型-对象模型,面向对象方法强调围绕对象而不是围绕功能来构造系统。对于大系统:3个模型必不可少.对于小系统:对象模型必不可少。对象模型是上述三种模型中最重要、最基本、最核心的模型。对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。,OMT对象模型化技术把分析时收集的信息构造在三类模型
5、中,即对象模型、动态模型和功能模型。,这个模型化的过程是一个迭代过程。通过不断更新、细化,直到切合系统的真正需求为止。,为了建立系统模型,需要定义一组图形符号,并且规定一组组织这些符号以表示特定语义的规则。如对象模型,需要包含下列符号:表示类的符号(应该既能表示属性又能表示服务);表示对象(类实例)的符号;表示继承关系的符号;表示类和(或)对象 间其他关系的符号。统一建模语言(UML)为建立系统模型提供了一个图形化的表示手段,UML建模技术,1.UML(Unified Modeling Language,统一建模语言)UML是软件和系统开发的标准建模语言。它主要以图形的方式对系统进行分析、设计
6、。UML是在多种面向对象分析与设计方法相互融合的基础上形成的,是一种专用于系统建模的语言。它为开发人员与客户之间,以及开发人员之间的沟通与理解架起了“桥梁”。,2.UML系统视图,UML 是用来描述模型的,它用模型来描述系统的结构、或静态特征、以及行为或动态特征它从不同的视角为系统的架构建模,形成系统的不同视图(view)每一种UML 的视图都是由一个或多个图(diagram)组成的,一个图就是系统架构在某个侧面的表示,它与其它图是一致的,所有的图一起组成了系统的完整视图。UML 提供了九种不同的图描述系统模型。可以分成两大类:一类是静态图。包括用例图、类图、对象图、组件图、配置图另一类是动态
7、图。包括序列图、协作图、状态图和活动图,UML图(preview),1)用例图,2)时序图:打印,3)时序图:打电话,4)协同图:打印,5)状态图:电梯,6)封包,7)活动图:磁盘,8)构件分布图,9)构件图的组合,10)配置图:主机与外围设备,11)类图,类图用于表示类的存在和类与类之间的相互关系,是从系统构成的角度来描述正在开发的系统。类的表示:,类图,12)对象图,类图表示类和类与类之间的关系,对象图则表示在某一时刻这些类的具体实例和这些实例之间的具体连接关系。由于对象是类的实例,所以UML 对象图中的概念与类图中的概念完全一致。对象图可以看作类图的示例,帮助人们理解一个比较复杂的类图。
8、对象图也可用于显示类图中的对象在某一点的连接关系。对象的图示方式与类的图示方式几乎是一样的,主要差别在于对象的名字下面要加下划线。对象名有下列三种表示格式:,13)关系,类图由类和它们之间的关系,组成类与类之间通常有四种关系:泛化关系(Generalization)关联关系(Association)聚合关系(Aggregation)合成关系(Composition)依赖关系(Dependency)其中,聚合关系(Aggregation),合成关系(Composition)属于关联关系(Association)。泛化关系表现为继承或实现关系(is a),关联关系表现为变量(has a),依赖关系
9、表现为函数中的参数(use a)。,泛化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。表示方法:用一个空心箭头实线,箭头指向父类。或空心箭头虚线,如果父类是接口。,关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。表示方法:用 实线箭头,箭头指向被使用的类。在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个Employee。,聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,啊聚合关系两个类处于不同的层次,一个是整体,一个是部分。表示方
10、法:空心菱形实线箭头,箭头指向部分。,合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。表示方法:实心菱形实线箭头,,Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。,依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。表示方法:虚线箭头,UML开发工具,IBM Rational RoseMicrosoft Visio-UML 模型图Borland TogetherJude(Java and
11、UML Developers Environment),一个小巧实用的UML建模软件,是一个中日合作采用XP开发方式纯JAVA开发的软件,也可以说是半个国产软件EclipseUMLRoseStarUML:一款开放源码的UML开发工具,是由韩国公司主导开发出来的产品。,1.3.2 面向对象分析(OOA),1.基本内涵 面向对象的分析就是运用面向对象方法进行系统分析,抽取和整理用户需求并建立问题域精确模型的过程。它强调运用面向对象方法进行分析,用面向对象的概念和表示法表达、分析结果。,2.基本任务,OOA分析工作主要包含3项内容:理解用户需求;表达用户需求;验证用户需求。,3.基本步骤,面向对象分
12、析工作大体上按照下列顺序进行:第一步,寻找类&对象;第二步,确定对象之间的关联;第三步,定义对象的属性;第四步,定义对象的服务。事实上,分析工作不可能严格地按照预定顺序进行,系统的模型往往需要反复构造多遍才能建成。通常,先构造出模型的子集,然后再逐渐扩充,直到完全、充分地理解整个问题,才能最终把模型建立起来。,1)确定类&对象,步骤:找出侯选的类&对象。对象是对问题域中有意义的事物的抽象,它们既可能是物理实体,也可能是抽象概念。通常,将需求陈述中的名词 或名词短语作为类&对象的候选者。,筛选出正确的类&对象。找出候选的类&对象之后,还应该严格考察每个候选者,从中去掉不正确的或不必要的。删除的依
13、据如下:冗余的:两个类名表示了相同的信息,应该保留较全面的类&对象。无关的:与目标系统无关的类&对象。笼统的:用精确的代替模糊、笼统的类&对象。无关的属性:去掉类&对象中无关的属性。操作:通常用动词定义类中的操作。实现:在系统分析阶段应该少考虑或不考虑怎样实现目标系统。,2)确定关联,在需求陈述中使用的描述性动词或动词词组,通常表示关联关系。因此,在初步确定关联时,大多数关联可以通过直接提取需求陈述中的动词词组而得出。分析员还应该与用户及领域专家讨论问题域实体间的相互依赖、相互作用关系,根据领域知识再进一步补充一些关联。最后,还需对初步确定的关联进行进一步筛选,以去掉不正确的或不必要的关联。三
14、个或三个以上对象之间的关联,大多可以分解为二元关联。,3)确定属性,分析并确定每个对象有哪些特性。确定属性的过程包括分析和选择两个步骤。通常,在需求陈述中用名词词组表示属性。应该仅考虑与具体应用直接相关的属性,不必考虑那些超出所要解决的问题范围的属性。,4)确定服务,分析并确定每个对象有哪些对属性的操作。在确定类中应该有的服务时,既要考虑该类实体的常规行为,又要考虑为完成本系统功能所需要提供的服务。,5)识别继承关系,确定了类中应该定义的属性和服务之后,就可以利用继承机制共享公共性质,并对系统中的类加以层次化组织。一般说来,可以使用两种方式建立继承关系:自底向上:抽象出现有类的共同性质泛化出父
15、类,这个过程实质上模拟了人类归纳思维过程。自顶向下:把现有类细化成更具体的子类,这模似了人类的演绎思维过程。,OOA模型(based on UML):,1.3.3 面向对象设计(OOD),面向对象分析是提取和整理用户需求,并建立问题域精确模型的过程。面向对象设计则是把分析阶段得到的需求转变成符合成本和质量要求的系统实现方案的过程。从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。,1.发展过程_I,1)早期的OOD(80年代至90年代初)1982 年G.Booch发表“Object-Oriented Design”,首次称“面向
16、对象的设计”。1986 年发表“Object-Oriented Development”,较完整地阐述了OOD思想。,两个术语都用OOD作为缩写,内容上也没有根本区别。,1983年R.J.Abbott提出正文分析方法,用规范的英语描述对一个问题的解释,然后从描述中提取对象及其特征。例:名词对象,动词操作。被后来的许多OOD方法所采用。,1.发展过程_II,1986年后,相继出现了一批(早期的)OOD方法。如:Booch86Object-Oriented Development(面向对象的开发)GOODGeneral Object-Oriented Development(通用面向对象的开发)H
17、OODHierarchical Object-Oriented Design(层次式面向对象的设计)OOSDObject-Oriented Structured Design(面向对象的结构设计),1.发展过程_III,2)现今的OOD(90年代以后)特点:以面向对象的分析为基础,一般不依赖结构化分析。与相应的OOA方法共同构成一种OOA&D方法体系。OOA和OOD采用一致的概念与原则,但属于软件生命周期的不同阶段,有不同的目标及策略。较全面地体现面向对象方法的概念与原则。大多数方法独立于编程语言,通过面向对象的分析与设计所得到的系统模型可以由不同的编程语言实现。,2.定义,面向对象的设计(O
18、OD)就在是OOA模型基础上运用面向对象方法进行系统设计,目标是产生一个符合具体实现条件的OOD模型。,OOD与OOA、OOP关系:OOD是OO软件工程中承前启后的中间环节往前OOA(全部用OO概念建模)往后OOP(用OOPL支持的OO概念编程)OOD使用与OOA和OOP一致的概念建立完整的、可实现的系统设计模型。,OOA与OOD的目标、内容OOA主要内容是研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。目标是建立一个直接映射问题域,符合用户需求的OOA模型。OOD主要内容是以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决
19、策和局部细节的设计。目标是产生一个满足用户需求,并且完全可实现的OOD模型。全局性设计决策:体系结构、分布方案、并发控制、人机交互、数据管理等。OOD方法应支持用户以OO概念表达对这些问题的设计。局部细节的设计:对每个对象类的每个属性和每个服务给出详细的定义。,3.设计内容,通常,一个实用的软件系统在逻辑上由问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统等四大部分组成。针对上述四个部分,在OOD中进行以下四个相应的活动:设计问题域部分;设计人机交互部分的;设计任务管理部分;设计数据管理部分。,4.设计准则_I,模块化 面向对象软件开发模式,很自然的支持了把系统分解成模块的设计原则
20、:对象就是模块。抽象 面向对象方法不仅支持过程抽象,而且支持数据抽象。类实际上是一种抽象数据数据类型。信息隐藏 在面向对象方法中,信息隐藏通过对象的封装性实现:类结构分离了接口与实现,从而支持了信息隐藏。,弱耦合 在面向对象方法中,耦合主要指不同对象之间相互关联的紧密程度。一般说来,对象之间的耦合可分为以下两类:交互耦合:对象之间的耦合通过消息来实现,则这种耦合就是交互耦合。继承耦合:继承是一般化类与特殊类之间耦合的一种形式。在面向对象设计时,应尽量降低交互耦合的程度,提高继承耦合程度。,4.设计准则_II,4.设计准则_III,5)强内聚 在OOD中存在以下3种内聚:服务内聚:一个服务应该完
21、成一个且仅完成一个功能。类内聚:一个类应该只有一个用途。一般特殊内聚:设计出的一般特殊结构应该是对相应领域知识的正确抽取,应该符合多数人的概念。在设计时应该力求做到高内聚。,4.设计准则_IV,可重用 重用有两方面的含义:一是尽量使用已有的类(包括开发环境提供的类库,以及以往开发类似系统时创建的类);二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的重复使用性。,OOD模型从两个侧面来描述,1.3.3 面向对象实现,1.基本任务把面向对象设计的结果翻译成用某种面 向对象程序语言书写的面向对象程序。测试和调试编写出的面向对象程序。程序的质量主要由设计的质量决定,应该将大量的时间花
22、在系统分析与设计上,但是所选用的程序语言的特点对程序质量也有重要影响。,2.面向对象语言的选择,面向对象语言可以分为两类:纯面向对象语言。例如:Java,C#,Smalltalk,Eiffel等。混合型面向对象语言(即在过程语言的基础上增加面向对象机制)例如:C+。,选择面向对象语言或工具的原则,计算模式:C/S或B/S运行平台:PC/嵌入式系统/SmartDevice/otherOS平台:Windows/Linux/嵌入式OS/other时间、空间需求可参考的资源语言或工具的功能、类库、配置、发布语言或工具未来的发展前景开发人员的基础项目的未来前景等等,一个面向对象的C+程序实例,1.需求陈
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 初步

链接地址:https://www.31ppt.com/p-6613923.html