《面向对象程序设计 (2)优秀课件.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计 (2)优秀课件.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计第1页,本讲稿共30页第二部分第二部分 面向对象软件工程面向对象软件工程(标准建模语言(标准建模语言UML)2009Software Engineering Group第2页,本讲稿共30页1、面向对象概念2、面向对象程序设计范型3、面向对象建模4、统一建模语言UML5、UML用例图6、UML类图、对象图、包图和复合结构图7、UML状态机图、顺序图、活动图、通讯图和交互概观图8、UML构件图和部署图9、UML定时图10、模型驱动的体系结构2009Software Engineering Group内容组织内容组织第3页,本讲稿共30页面向对象软件工程面向对象概念1n“面向对象”
2、是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。2009Software Engineering Group第4页,本讲稿共30页面向对象软件工程面向对象概念2n“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分-对象。n用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。2009Software Engineering Group第5页,本讲稿共30页面向对象软件工
3、程面向对象概念3n对象 对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。2009Software Engineering Group第6页,本讲稿共30页面向对象软件工程面向对象概念4n类和实例 类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。2009Software En
4、gineering Group第7页,本讲稿共30页面向对象软件工程面向对象概念5n继承 如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。2009Softw
5、are Engineering Group第8页,本讲稿共30页建立对象模型nIdentifying classes and objects (识别对象和类)nSpecifying attributes (说明对象属性)nDefining operations (定义对象操作)nFinalizing the object definition (最终确定对象定义)2009Software Engineering Group第9页,本讲稿共30页面向对象的过程模型2009Software Engineering GroupPlanning RiskAnalysis CustomerCommuni
6、cation CustomerEvaluation Engineering,Construction&ReleaseIdentifycandidateclassesConstructnth iterationof systemLook upclassesin libraryPut new classesin libraryExtractclassesif availableEngineerclassesif unavailable analysis design programming testing第10页,本讲稿共30页面向对象软件工程 面向对象建模 面向对象思想比较自然地模拟了人类认识客
7、观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目的:n在着手解决一个复杂问题之前,对解决方案进行检测;n用于同客户或其他相关人员进行交流;n加强视觉效果;n对复杂问题进行简化。2009Software Engineering Group第11页,本讲稿共30页面向对象软件工程面向对象建模n模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;n在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;2009Software Engineering Group第
8、12页,本讲稿共30页面向对象软件工程面向对象建模n在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。n建模语言是面向对象建模中的一个非常关键的因素。2009Software Engineering Group第13页,本讲稿共30页标准建模语言UMLUML的设计目标:n运用面向对象概念来构造系统模型n建立起从概念模型直至可执行体之间明显的对应关系n着眼于那些有重大影响的问题n创建一种对人和机器都适用的建模语言2009Software Engineering Group第14页
9、,本讲稿共30页UML产生背景90年代:面向对象分析设计方法学之战nBooch方法,OMT方法,OOSE方法等三大方法提出者合力推出UMLnUML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上nUML由OMG于1997年11月正式采纳为标准UML是一种建模语言而不是一种方法,其本身是独立于过程的2009Software Engineering Group第15页,本讲稿共30页UML的创建人2009Software Engineering Group并称并称UMLUML三友(三友(Three Three AmigosAmigos)Grady
10、BoochGrady BoochDr.Ivar JacobsonDr.Ivar JacobsonDr.James RumbaughDr.James RumbaughOMT方法方法OOSE方法方法Booch方法方法第16页,本讲稿共30页UML的发展历史2009公公众众反反馈馈OOPSLA95 Unified Method 0.8 Booch93 OMT-21996.6和和1996.10 UML 0.9&0.911997.9公布公布 UML 1.1 1997.1公布公布 UML 1.0合作伙伴意见合作伙伴意见1997.11.17 UML 1.1被被OMG 采纳为标准采纳为标准 Booch91 O
11、MT-1 其他方法其他方法 OOSE19972003 UML 1.x 20052006 UML 2.0其中包括其中包括1.3、1.4和和1.5版版面向对象分析设计方法学面向对象分析设计方法学之战之战2007.2 UML 2.1.1UML三友提出三友提出第17页,本讲稿共30页如何理解UML UML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。2009Software Engineering Group第18页,本讲稿共30页UML的视角 一般而言,
12、我们可以从以下几种常用的视角来描述一个系统:n系统的使用实例:从系统外部的操作者的角度描述系统的功能。n系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。n系统的构成:描述系统由哪些程序构件所组成。n系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。n系统的配置:描述系统的软件和各种硬件设备之间的配置关系。2009Software Engineering Group第19页,本讲稿共30页标准建模语言UMLUML语义n元-元模型:元模型的基础体系结构,定义一种说明元模型的语言n元模型:元-元模型的一个实例,定义一种说明模型的语言n模型:元
13、模型的一个实例,定义一种语言来描述信息领域n用户对象:模型的一个实例,定义一个特定的领域2009Software Engineering Group第20页,本讲稿共30页UML 2.0规范的四个部分2009Software Engineering Group定义了最基本的构造块,用于描述定义了最基本的构造块,用于描述UMLUML本身以及针本身以及针对特定的域(如,实时领域)对对特定的域(如,实时领域)对UMLUML进行定制。进行定制。定义了用户级的构造块(定义了用户级的构造块(constructs constructs),用于对系统的结),用于对系统的结构、行为进行详述(如,类图、顺序图等)
14、。构、行为进行详述(如,类图、顺序图等)。定义了针对定义了针对UMLUML的图交换标准,用于对模型的图交换标准,用于对模型以及模型图(包含图形的布局信息)进行交以及模型图(包含图形的布局信息)进行交换。换。用于定义针对模型以及模型元素的约用于定义针对模型以及模型元素的约束信息。束信息。UML2.0UML2.0的目标是服务于模型驱动软件开发的目标是服务于模型驱动软件开发基于基于第21页,本讲稿共30页UML 2.0 Infrastructure设计目标n定义一个元语言的核心基础结构库(InfrastructureLibrary)通过对此核心的复用,可以定义一个自展的UML元模型n通过共用核心包,
15、使UML和其它建模语言在体系结构上保持一致2009Software Engineering Group第22页,本讲稿共30页UML 2.0 Superstructure 设计目标n严格地复用Infrastructure中的模型构造物n支持接口、部件和连接子,及其层次化组合能力,从而提高对架构的规约能力;n增强行为图的可伸缩性、精确性和集成能力;n审定所有UML1.x的构造物和图,适当地精化、取缔和逐步淘汰,同时进行大量扩展2009Software Engineering Group第23页,本讲稿共30页Diagram Interchange的设计目标n定义一个针对UML模型及图的交换标准n
16、UML模型和图UML建模结果既包含模型元素本身(反映语义信息),还包含图形化的布局(反映语法信息)nDI可以同时支持两个层次的UML交换2009Software Engineering Group第24页,本讲稿共30页OCL的设计目标Object Constraint Language(OCL)nOCL是一种基于一阶谓词逻辑和集合论的形式化语言nOCL主要用于针对UML模型定义不变式条件(invariant conditions)和前后置条件(pre-/post-conditions)n除了精确的语义之外,OCL还有无副作用(side effect)的优点2009Software Engin
17、eering Group第25页,本讲稿共30页UML 2.0支持13种图2009Software Engineering Group新增了4种图调整了2种图UML2.0UML2.0规范提供的分类层次规范提供的分类层次第26页,本讲稿共30页常用的中译名2009Software Engineering Group第27页,本讲稿共30页UML2.0增改的图n相对于UML1.5增加了4种图复合结构图(Composite Structure Diagram)包图(Package Diagram)交互概观图(Interaction Overview Diagram)定时图(Timing Diagra
18、m)注:包图在UML1.x中并不是一种正式的图n对2种图重新命名原来的协作图(Collaboration Diagrams)改名为通讯图(Communication Diagrams)原来的状态图(Statechart Diagrams)改名为状态机图(State Machine Diagrams)2009Software Engineering Group第28页,本讲稿共30页从实用的角度再看13种图2009Software Engineering Group介绍顺序:介绍顺序:第29页,本讲稿共30页2009Software Engineering Group Part2-1 Part2-1 总结总结第30页,本讲稿共30页