版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程南京大学计算机科学与技术系软件工程南京大学计算机科学与技术系1第二部分面向对象软件工程(标准建模语言UML)2009SoftwareEngineeringGroup第二部分2009SoftwareEngineeringG1、面向对象概念2、面向对象程序设计范型3、面向对象建模4、统一建模语言UML5、UML用例图6、UML类图、对象图、包图和复合结构图7、UML状态机图、顺序图、活动图、通讯图和交互概观图8、UML构件图和部署图9、UML定时图10、模型驱动的体系结构2009SoftwareEngineeringGroup内容组织1、面向对象概念2009SoftwareEngineer面向对象软件工程面向对象概念1“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念12009SoftwareEn面向对象软件工程面向对象概念2“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分----对象。用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念22009SoftwareEn面向对象软件工程面向对象概念3对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念32009SoftwareEn面向对象软件工程面向对象概念4类和实例类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念42009SoftwareEn面向对象软件工程面向对象概念5继承
如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念52009SoftwareEn建立对象模型Identifyingclassesandobjects
(识别对象和类)Specifyingattributes
(说明对象属性)Definingoperations
(定义对象操作)Finalizingtheobjectdefinition
(最终确定对象定义)2009SoftwareEngineeringGroup建立对象模型Identifyingclassesand面向对象的过程模型2009SoftwareEngineeringGroupPlanningRiskAnalysisCustomerCommunicationCustomerEvaluationEngineering,Construction&ReleaseIdentifycandidateclassesConstructnthiterationofsystemLookupclassesinlibraryPutnewclassesinlibraryExtractclassesifavailableEngineerclassesifunavailableanalysisdesignprogrammingtesting面向对象的过程模型2009SoftwareEngineer面向对象软件工程
面向对象建模面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目的:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。2009SoftwareEngineeringGroup面向对象软件工程面向对象建模2009S面向对象软件工程面向对象建模模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;2009SoftwareEngineeringGroup面向对象软件工程面向对象建模2009SoftwareEng面向对象软件工程面向对象建模在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。建模语言是面向对象建模中的一个非常关键的因素。2009SoftwareEngineeringGroup面向对象软件工程面向对象建模2009SoftwareEng标准建模语言UMLUML的设计目标:运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显的对应关系着眼于那些有重大影响的问题创建一种对人和机器都适用的建模语言2009SoftwareEngineeringGroup标准建模语言UMLUML的设计目标:2009SoftwareUML产生背景90年代:面向对象分析设计方法学之战Booch方法,OMT方法,OOSE方法等……三大方法提出者合力推出UMLUML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上UML由OMG于1997年11月正式采纳为标准UML是一种建模语言而不是一种方法,其本身是独立于过程的2009SoftwareEngineeringGroupUML产生背景90年代:面向对象分析设计方法学之战2009SUML的创建人2009SoftwareEngineeringGroup并称UML三友(ThreeAmigos)GradyBoochDr.IvarJacobsonDr.JamesRumbaughOMT方法OOSE方法Booch方法UML的创建人2009SoftwareEngineerinUML的发展历史2009公众反馈OOPSLA95UnifiedMethod0.8
Booch93OMT-21996.6和1996.10UML0.9&0.911997.9公布UML1.1
1997.1公布UML1.0合作伙伴意见1997.11.17
UML1.1被OMG采纳为标准
Booch91OMT-1其他方法
OOSE1997~2003
UML1.x2005~2006
UML2.0其中包括1.3、1.4和1.5版面向对象分析设计方法学之战2007.2
UML2.1.1UML三友提出UML的发展历史2009公众OOPSLA95Unif如何理解UMLUML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。2009SoftwareEngineeringGroup如何理解UMLUML为人们提供了从不同的角度去UML的视角
一般而言,我们可以从以下几种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。2009SoftwareEngineeringGroupUML的视角一般而言,我们可以从以下标准建模语言UMLUML语义元-元模型:元模型的基础体系结构,定义一种说明元模型的语言元模型:元-元模型的一个实例,定义一种说明模型的语言模型:元模型的一个实例,定义一种语言来描述信息领域用户对象:模型的一个实例,定义一个特定的领域2009SoftwareEngineeringGroup标准建模语言UMLUML语义2009SoftwareEngUML2.0规范的四个部分2009SoftwareEngineeringGroup定义了最基本的构造块,用于描述UML本身以及针对特定的域(如,实时领域)对UML进行定制。定义了用户级的构造块(constructs),用于对系统的结构、行为进行详述(如,类图、顺序图等)。定义了针对UML的图交换标准,用于对模型以及模型图(包含图形的布局信息)进行交换。用于定义针对模型以及模型元素的约束信息。DiagramInterchangeSuperstructureInfrastructureOCLUML2.0的目标是服务于模型驱动软件开发基于UML2.0规范的四个部分2009SoftwareEngUML2.0Infrastructure设计目标定义一个元语言的核心–基础结构库(InfrastructureLibrary)通过对此核心的复用,可以定义一个自展的UML元模型通过共用核心包,使UML和其它建模语言在体系结构上保持一致2009SoftwareEngineeringGroupUML2.0Infrastructure设计目标定义一个UML2.0Superstructure设计目标严格地复用Infrastructure中的模型构造物支持接口、部件和连接子,及其层次化组合能力,从而提高对架构的规约能力;增强行为图的可伸缩性、精确性和集成能力;审定所有UML1.x的构造物和图,适当地精化、取缔和逐步淘汰,同时进行大量扩展2009SoftwareEngineeringGroupUML2.0Superstructure设计目标严格地DiagramInterchange的设计目标定义一个针对UML模型及图的交换标准UML模型和图UML建模结果既包含模型元素本身(反映语义信息),还包含图形化的布局(反映语法信息)DI可以同时支持两个层次的UML交换2009SoftwareEngineeringGroupDiagramInterchange的设计目标定义一个针对OCL的设计目标ObjectConstraintLanguage(OCL)OCL是一种基于一阶谓词逻辑和集合论的形式化语言OCL主要用于针对UML模型定义不变式条件(invariantconditions)和前后置条件(pre-/post-conditions)除了精确的语义之外,OCL还有无副作用(sideeffect)的优点2009SoftwareEngineeringGroupOCL的设计目标ObjectConstraintLangUML2.0支持13种图2009SoftwareEngineeringGroup新增了4种图调整了2种图UML2.0规范提供的分类层次UML2.0支持13种图2009SoftwareEngi常用的中译名2009SoftwareEngineeringGroup常用的中译名2009SoftwareEngineeringUML2.0增改的图相对于UML1.5增加了4种图复合结构图(CompositeStructureDiagram)包图(PackageDiagram)交互概观图(InteractionOverviewDiagram)定时图(TimingDiagram)
注:包图在UML1.x中并不是一种正式的图对2种图重新命名原来的协作图(CollaborationDiagrams)改名为通讯图(CommunicationDiagrams)原来的状态图(StatechartDiagrams)改名为状态机图(StateMachineDiagrams)2009SoftwareEngineeringGroupUML2.0增改的图相对于UML1.5增加了4种图2009S从实用的角度再看13种图2009SoftwareEngineeringGroup介绍顺序:从实用的角度再看13种图2009SoftwareEngin2009SoftwareEngineeringGroup
Part2-1总结2009SoftwareEngineeringGroup软件工程南京大学计算机科学与技术系软件工程南京大学计算机科学与技术系31第二部分面向对象软件工程(标准建模语言UML)2009SoftwareEngineeringGroup第二部分2009SoftwareEngineeringG1、面向对象概念2、面向对象程序设计范型3、面向对象建模4、统一建模语言UML5、UML用例图6、UML类图、对象图、包图和复合结构图7、UML状态机图、顺序图、活动图、通讯图和交互概观图8、UML构件图和部署图9、UML定时图10、模型驱动的体系结构2009SoftwareEngineeringGroup内容组织1、面向对象概念2009SoftwareEngineer面向对象软件工程面向对象概念1“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念12009SoftwareEn面向对象软件工程面向对象概念2“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分----对象。用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念22009SoftwareEn面向对象软件工程面向对象概念3对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念32009SoftwareEn面向对象软件工程面向对象概念4类和实例类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念42009SoftwareEn面向对象软件工程面向对象概念5继承
如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。2009SoftwareEngineeringGroup面向对象软件工程面向对象概念52009SoftwareEn建立对象模型Identifyingclassesandobjects
(识别对象和类)Specifyingattributes
(说明对象属性)Definingoperations
(定义对象操作)Finalizingtheobjectdefinition
(最终确定对象定义)2009SoftwareEngineeringGroup建立对象模型Identifyingclassesand面向对象的过程模型2009SoftwareEngineeringGroupPlanningRiskAnalysisCustomerCommunicationCustomerEvaluationEngineering,Construction&ReleaseIdentifycandidateclassesConstructnthiterationofsystemLookupclassesinlibraryPutnewclassesinlibraryExtractclassesifavailableEngineerclassesifunavailableanalysisdesignprogrammingtesting面向对象的过程模型2009SoftwareEngineer面向对象软件工程
面向对象建模面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目的:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。2009SoftwareEngineeringGroup面向对象软件工程面向对象建模2009S面向对象软件工程面向对象建模模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;2009SoftwareEngineeringGroup面向对象软件工程面向对象建模2009SoftwareEng面向对象软件工程面向对象建模在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。建模语言是面向对象建模中的一个非常关键的因素。2009SoftwareEngineeringGroup面向对象软件工程面向对象建模2009SoftwareEng标准建模语言UMLUML的设计目标:运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显的对应关系着眼于那些有重大影响的问题创建一种对人和机器都适用的建模语言2009SoftwareEngineeringGroup标准建模语言UMLUML的设计目标:2009SoftwareUML产生背景90年代:面向对象分析设计方法学之战Booch方法,OMT方法,OOSE方法等……三大方法提出者合力推出UMLUML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上UML由OMG于1997年11月正式采纳为标准UML是一种建模语言而不是一种方法,其本身是独立于过程的2009SoftwareEngineeringGroupUML产生背景90年代:面向对象分析设计方法学之战2009SUML的创建人2009SoftwareEngineeringGroup并称UML三友(ThreeAmigos)GradyBoochDr.IvarJacobsonDr.JamesRumbaughOMT方法OOSE方法Booch方法UML的创建人2009SoftwareEngineerinUML的发展历史2009公众反馈OOPSLA95UnifiedMethod0.8
Booch93OMT-21996.6和1996.10UML0.9&0.911997.9公布UML1.1
1997.1公布UML1.0合作伙伴意见1997.11.17
UML1.1被OMG采纳为标准
Booch91OMT-1其他方法
OOSE1997~2003
UML1.x2005~2006
UML2.0其中包括1.3、1.4和1.5版面向对象分析设计方法学之战2007.2
UML2.1.1UML三友提出UML的发展历史2009公众OOPSLA95Unif如何理解UMLUML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。2009SoftwareEngineeringGroup如何理解UMLUML为人们提供了从不同的角度去UML的视角
一般而言,我们可以从以下几种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。2009SoftwareEngineeringGroupUML的视角一般而言,我们可以从以下标准建模语言UMLUML语义元-元模型:元模型的基础体系结构,定义一种说明元模型的语言元模型:元-元模型的一个实例,定义一种说明模型的语言模型:元模型的一个实例,定义一种语言来描述信息领域用户对象:模型的一个实例,定义一个特定的领域2009SoftwareEngineeringGroup标准建模语言UMLUML语义2009SoftwareEngUML2.0规范的四个部分2009SoftwareEngineeringGroup定义了最基本的构造块,用于描述UML本身以及针对特定的域(如,实时领域)对UML进行定制。定义了用户级的构造块(constructs),用于对系统的结构、行为进行详述(如,类图、顺序图等)。定义了针对UML的图交换标准,用于对模型以及模型图(包含图形的布局信息)进行交换。用于定义针对模型以及模型元素的约束信息。DiagramInterchangeSuperstructureInfrastructureOCLUML2.0的目标是服务于模型驱动软件开发基于UML2.0规范的四个部分2009SoftwareEngUML2.0Infrastructure设计目标定义一个元语言的核心–基础结构库(InfrastructureLibrary)通过对此核心的复用,可以定义一个自展的UML元模型通过共用核心包,使UML和其它建模语言在体系结构上保持一致2009SoftwareEngineeringGroupUML2.0Infrastructure设计目标定义一个UML2.0Superstructure设计目标严格地复用Infrastructure中的模型构造物支持接口、部件和连接子,及其层次化组合能力,从而提高对架构的规约能力;增强行为图的可伸缩性、精确性和集成能力;审定所有UML1.x的构造物和图,适当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论