第02章可视化建模基础EssentialsofVisualModelingwithUML2学习路线图OOUMLOOPDP…Case-Study…学习路线图::……………………12345678910内容安排可视化建模theUMLUML组成结构UML概念模型应用UML2建模软件工程过程与UP简介模型模型是对现实世界的简化模型的重要性纸飞机战斗机不重要非常重要建模就是认识现实世界客观世界主观世界认识世界改造世界世界是什么样的呢?模型示例模型是对现实世界的简化WhatisthisThing?ModelingaBriefcaseAbstractingBriefCase-Capacity-Weight+open()+close()建模的目的模型有助于可视化(Visualize)系统模型能够描述(Specify)系统的结构和行为模型提供构造(Construct)系统的模板模型可以文档化(Document)设计决策建模的原则选择合适的模型模型具有不同的精确程度最好的模型是与现实相联系需要从多个视角创建不同的模型,单一的模型是不够的模型因人而异不同类型的人有不同的世界观持不同的世界观就会得到对现实世界的不同认识——建立不同的模型模块,函数,功能类,关联,对象模型体现现实世界只存在同一个现实世界模型没有对错、只有符合建模人目的多少之分充分的模型抽象和建模的目标是分离要处理事物的主要方面抽象取决于意图,相同事物在不同背景和意图下可以有不同的抽象抽象都是事物的片段信息,是不完整的抽象和模型都是真实事物的精简,但应能有效反映事物充分的模型不要试图建立完美、绝对真实的模型模型没有“正确”之分,只有是否充分之分充分的模型,在特定意图下,能反映事物的关键方面往往要为同一事物建立多个模型不同的模型取决于观察者与观察方式内容安排可视化建模theUMLUML组成结构UML概念模型应用UML2建模软件工程过程与UP简介TheUMLUML—YouMustLearnUML—UnifiedModelingLanguageUML是一种标准的图形化建模语言,是面向对象分析与设计的标准表示,它:不是一种可视化的程序设计语言,而是一种可视化的建模语言(用于分析设计)不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准不是过程,也不是方法,但允许任何一种过程和方法使用它WhatIstheUML?TheUMLisalanguageforVisualizingSpecifyingConstructingDocumentingtheartifactsofasoftware-intensivesystemUnifiedModelingLanguage(统一建模语言)是对象管理组织(OMG)制定的一个通用的、可视化的建模语言标准,可以用来可视化(visualize)、描述(specify)、构造(construct)和文档化(document)软件密集型系统的各种工件(artifacts,又译制品)选择UML很多情况下,推荐使用UML:OO方法是项目决定采用的方法论,是整个项目或产品成功的关键系统规模比较复杂,需要用图形抽象地表达复杂概念,增强设计的灵活性、可读性和可理解性,以便暴露深层次的设计问题,降低开发风险组织希望记录已成功项目、产品的公共设计方案,在开发新项目时可以参考、重用过去的设计,以节省投入,提高开发效率和整体成功率有必要采用一套通用的图形语言和符号体系描述组织的业务流程和软件需求,促进业务人员、开发人员之间一致、高效地交流不选择UMLUML不是万能,有些场合并不适合传统的做法已完全适用,对OOAD的要求也不高,项目非常成功,无改进必要开发的系统比较简单,直接用源码配上少量的文字就能解决问题,软件开发文档也无需添加图形来辅助说明开发的系统本身不属于OO方法、UML适用范围UML发展背景90年代:面向对象分析设计方法学之战P.Coad和E.Yourdon提出OOA和OODG.Booch提出面向对象开发方法Jacobson提出OOSERumbaugh提出的OMT……UML的出现结束了这场方法学战争UML发展历程UMLPartners’ExpertiseUML1.0(Jan.‘97)UML1.1(Sept.‘97)UML1.5(March,‘03)UML2.0(2005)OtherMethodsBooch‘91OMT-1OOSEBooch’93OMT-2PublicFeedbackUnifiedMethod0.8(OOPSLA’95)UML0.9(June‘96)UML0.91(Oct.‘96)and工业化标准化统一化分散的各部分UML2.4.1(2011)UML现状UML1.x目前应用较为普及,包括从1.1~1.52003年3月发布的UML1.5UML2分为基础结构和上层结构2005年7月正式发布UML2.02007年8月、11月UML2.1.1&2.1.22009年2月UML2.2,2010年5月UML2.32011年8月UML2.4.1,2012年5月ISO/IEC19505-1:2012,ISO/IEC19505-2:2012UML的统一统一了什么?开发生命周期应用领域实现语言和平台开发过程本身的内部概念内容安排可视化建模theUMLUML组成结构UML概念模型应用UML2建模软件工程过程与UP简介UML基础结构和上层结构UML基础结构(Infrastructure)即UML元模型使之更加模块化,更易于扩展与UML其它规范更加保持一致(MOF)UML上层结构(Superstructure)是指普通用户使用的UML语法、语义以及符号表示使UML更具可用性UML是基于MOF四层模型元元模型层(M3)包含了定义建模语言所需的元素(UML基础结构)MetaClass,MetaAttribute,MetaOperation元模型层(M2)定义了一种建模语言的结构和语法(UML上层结构)如UML:Class,Attribute,Operation模型层(M1)定义了一个具体的系统的模型如采用UML表示的某系统模型运行时(M0)包含了一个模型的对象在运行时的状态等如某系统运行时的对象和数据模型四层元模型结构实例内容安排可视化建模theUMLUML组成结构UML概念模型应用UML2建模软件工程过程与UP简介UML2概念模型UML上层结构Superstructure构造块buildingblocks通用机制commonmechanisms构架architecture基本UML建模元素、关系和图达到特定目标的通用UML方法系统构架的UML视图构造块构造块(buildingblocks)事物(things)结构、行为、分组、注释关系(relationships)依赖、关联、泛化、实现图(diagram)静态(7种):类图、对象图、构件图、部署图、包图、组合结构图、外廓图动态(7种):顺序图、通信图、时间图、交互纵览图、活动图、状态机图、用例图事物(things)结构(structural)事物类、接口用例、协作构件、工件、节点行为(behavioral)事物交互、状态机、活动分组(grouping)事物包(、框架、模型、子系统…)注释(annotational)事物关系关系relationships依赖dependency关联association泛化generalization实现realization通用机制规格说明(Specifications)文本维度的模型描述修饰(Adornments)描述建模元素的细节信息通用划分(CommonDivisions)建模时对事物的划分方法扩展机制(ExtensibilityMechanisms)构造型、约束、标记值规格说明(Specifications)UML模型至少具有两种维度:图形维度:使用图和图标可视化模型文本维度:各种建模元素的规格说明规格说明模型元素的特征和语义的文本描述形成了承载模型的语义背板(semanticbackplane),赋予模型意义,各种图仅仅是该背板的视图或者可视化投影deathbydiagram(由于图形而死亡)修饰(adornments)UML表示法中的每一个元素都有一个基本符号,可以把各种修饰细节添加到这些符号上只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些重要特征时,才应该表示那些修饰Window+size:Area#visibility:Boolean-xptr:XWindow+create:void+hide:void-attachXWindow:voidWindow通用划分类元(classifier)和实例的划分类元表示一种抽象实例则是这种抽象的一个具体表现类/对象、用例/场景、构件/构件实例…接口和实现的分离接口声明行为的契约(做什么)实现表示对该契约的具体实现细节(如何做)接口/子系统、用例/用例实现、操作/方法…通用划分(续)类型和角色的分离(UML2新增)任何作为其它实体结构的一部分实体(如属性)都具有两个方面的特性:从固有类型派生出来的含义在语境中的角色派生出来的含义类型声明了实体的种类(如对象、属性、参数)角色描述了实体在语境(如类、构件、协作、组合结构)中的含义扩展机制构造型(stereotypes)基于已有的建模元素引入新的建模元素标记值(taggedvalue)扩展UML构造型的特性,可以用来创建构造型的详述信息约束(constraint)扩展UML构造块的语义,可以用来增加新的规则或修改现有的规则外廓(profile)提供了一组预定义的构造型、标记值、约束和基类,以用于特定领域的建模示例:扩展机制构造型(stereotypes)构造型(stereotypes,衍型)根据已有的模型元素定义一个新元素建立在UML已定义的模型元素基础上可以用于所有的UML模型元素,如类、关联、用例、构件等UML规范提供了一些预定义的构造型构造型的几种表现形式外廓(Profile)外廓基于UML元素的子集为特定领域定义了UML的一个特定版本,即定义了一组对UML已有模型的扩展和限定机制,以用于某个特定领域这些扩展和限定机制包括:预定义的构造型、标记值、约束和基类建立在普通的UML元素基础上,并不代表一种新的语言构架:4+1视图(fromRUP)ProcessViewDeploymentViewLogicalViewUse-CaseViewImplementationViewEnd-userFunctionalityProgrammersSoftwaremanagementPerformanceScalabilityThroughputSystemintegratorsSystemtopologyDelivery,installationcommunicationSystemengineeringAnalysts/DesignersStructure4+1视图(续)UseCaseViewEnd-user:Functionality这些视图由用例视图所统一,它描述项目干系人(stakeholder)的需求;所有其他视图都是从用例视图派生而来,该视图把系统的基本需求捕获为用例并提供构造其他视图的基础LogicalViewAnalysts/Designers:Structure系统功能和词汇;描述问题域的词汇,作为类和对象的集合。重点是展示对象和类是如何组成系统、实现所需系统行为的4+1视图(续)ProcessViewSystemintegrators:Performance,Scalability,Throughput系统性