面向对象程序设计1.ppt_第1页
面向对象程序设计1.ppt_第2页
面向对象程序设计1.ppt_第3页
面向对象程序设计1.ppt_第4页
面向对象程序设计1.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软 件 工 程,南京大学计算机科学与技术系,第二部分 面向对象软件工程 (标准建模语言UML),2009,Software Engineering Group,1、 面向对象概念 2、 面向对象程序设计范型 3、 面向对象建模 4、 统一建模语言UML 5、 UML用例图 6、 UML类图、对象图、包图和复合结构图 7、 UML状态机图、顺序图、活动图、通讯图和交互概观图 8、 UML构件图和部署图 9、 UML定时图 10、模型驱动的体系结构,2009,Software Engineering Group,内容组织,面向对象软件工程,面向对象概念1 “面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。,2009,Software Engineering Group,面向对象软件工程,面向对象概念2 “面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分-对象。 用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。,2009,Software Engineering Group,面向对象软件工程,面向对象概念3 对象 对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。,2009,Software Engineering Group,面向对象软件工程,面向对象概念4 类和实例 类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。 在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。,2009,Software Engineering Group,面向对象软件工程,面向对象概念5 继承 如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。 借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。 通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。,2009,Software Engineering Group,建立对象模型,Identifying classes and objects (识别对象和类) Specifying attributes (说明对象属性) Defining operations (定义对象操作) Finalizing the object definition (最终确定对象定义),2009,Software Engineering Group,面向对象的过程模型,2009,Software Engineering Group,Planning,Risk Analysis,Customer Communication,Customer Evaluation,Engineering, Construction & Release,Identify candidate classes,Construct nth iteration of system,Look up classes in library,Put new classes in library,Extract classes if available,Engineer classes if unavailable,analysis design programming testing,面向对象软件工程,面向对象建模 面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目的: 在着手解决一个复杂问题之前,对解决方案进行检测; 用于同客户或其他相关人员进行交流; 加强视觉效果; 对复杂问题进行简化。,2009,Software Engineering Group,面向对象软件工程,面向对象建模 模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害; 在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;,2009,Software Engineering Group,面向对象软件工程,面向对象建模 在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。 建模语言是面向对象建模中的一个非常关键的因素。,2009,Software Engineering Group,标准建模语言UML,UML的设计目标: 运用面向对象概念来构造系统模型 建立起从概念模型直至可执行体之间明显的对应关系 着眼于那些有重大影响的问题 创建一种对人和机器都适用的建模语言,2009,Software Engineering Group,UML产生背景,90年代:面向对象分析设计方法学之战 Booch方法,OMT方法,OOSE方法等 三大方法提出者合力推出UML UML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上 UML由OMG于1997年11月正式采纳为标准 UML是一种建模语言而不是一种方法,其本身是独立于过程的,2009,Software Engineering Group,UML的创建人,2009,Software Engineering Group,并称UML三友(Three Amigos),Grady Booch,Dr. Ivar Jacobson,Dr. James Rumbaugh,OMT方法,OOSE方法,Booch方法,UML的发展历史,2009,公众 反馈,OOPSLA95 Unified Method 0.8,Booch93 OMT-2,1996.6和1996.10 UML 0.9&0.91,1997.9公布 UML 1.1,1997.1公布 UML 1.0,合作伙伴意见,1997.11.17 UML 1.1被OMG 采纳为标准,Booch91 OMT-1 其他方法 OOSE,19972003 UML 1.x,20052006 UML 2.0,其中包括1.3、1.4和1.5版,面向对象分析设计方法学之战,2007.2 UML 2.1.1,UML三友提出,如何理解UML,UML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。,2009,Software Engineering Group,UML的视角,一般而言,我们可以从以下几种常用的视角来描述一个系统: 系统的使用实例:从系统外部的操作者的角度描述系统的功能。 系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。 系统的构成:描述系统由哪些程序构件所组成。 系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。 系统的配置:描述系统的软件和各种硬件设备之间的配置关系。,2009,Software Engineering Group,标准建模语言UML,UML语义 元-元模型: 元模型的基础体系结构,定义一种说明元模型的语言 元模型: 元-元模型的一个实例,定义一种说明模型的语言 模型: 元模型的一个实例,定义一种语言来描述信息领域 用户对象: 模型的一个实例,定义一个特定的领域,2009,Software Engineering Group,UML 2.0规范的四个部分,2009,Software Engineering Group,定义了最基本的构造块,用于描述UML本身以及针对特定的域(如,实时领域)对UML进行定制。,定义了用户级的构造块(constructs ),用于对系统的结构、行为进行详述(如,类图、顺序图等)。,定义了针对UML的图交换标准,用于对模型以及模型图(包含图形的布局信息)进行交换。,用于定义针对模型以及模型元素的约束信息。,Diagram Interchange,Superstructure,Infrastructure,OCL,UML2.0的目标是服务于模型驱动软件开发,基于,UML 2.0 Infrastructure设计目标,定义一个元语言的核心基础结构库(InfrastructureLibrary)通过对此核心的复用,可以定义一个自展的UML元模型 通过共用核心包,使UML和其它建模语言在体系结构上保持一致,2009,Software Engineering Group,UML 2.0 Superstructure 设计目标,严格地复用Infrastructure中的模型构造物 支持接口、部件和连接子,及其层次化组合能力,从而提高对架构的规约能力; 增强行为图的可伸缩性、精确性和集成能力; 审定所有UML1.x的构造物和图,适当地精化、取缔和逐步淘汰,同时进行大量扩展,2009,Software Engineering Group,Diagram Interchange的设计目标,定义一个针对UML模型及图的交换标准 UML模型和图 UML建模结果既包含模型元素本身(反映语义信息),还包含图形化的布局(反映语法信息) DI可以同时支持两个层次的UML交换,2009,Software Engineering Group,OCL的设计目标,Object Constraint Language (OCL) OCL是一种基于一阶谓词逻辑和集合论的形式化语言 OCL主要用于针对UML模型定义不变式条件(invariant conditions)和前后置条件(pre-/post- conditions) 除了精确的语义之外,OCL还有无副作用(side effect)的优点,2009,Software Engineering Group,UML 2.0支持13种图,2009,Software Engineering Group,新增了4种图,调整了2种图,UML2.0规范提供的分类层次,常用的中译名,2009,Software Engineering Group,UML2.0增改的图,相对于UML1.5增加了4种图 复合结构图(Composite Structure Diagram) 包图(Package Diagram) 交互概观图(Interaction Overview Diagram) 定时图(Timing Diagram) 注:包图在UML1.x中并不是一种正式的图 对2种图重新命

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论