您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 西安工业大学《软件工程》第十一章-统一建模语言(UML)
计算机科学与工程学院软件工程(SoftwareEngineer)第十一章统一建模语言(UML)UML(UnifiedModelingLanguage)是一种建模语言,是为面向对象开发系统的产品进行可视化的说明和编制文档的方法。它是由信息系统(IS,InformationSystem)和面向对象领域的三位著名的方法学家:GradyBooch、JamesRumbaugh、和IvarJacobson提出的,由OMG组织(ObjectManagementGroup)采纳作为业界标准。UML取代目前软件业众多的分析和设计方法(Booch、Coad、Jacobson、Odell、Rumbaugh、Wirfs-Brock等),成为一种标准,这是软件界第一次有了一个统一的建模语言。计算机科学与工程学院软件工程(SoftwareEngineer)11.1UML简介1UML的产生和成长UML发展历史大致可以概括为四个阶段:第一阶段:面向对象的方法学家联合行动。1994年10月,GradyBooch和JimRumbaugh开始致力于这一工作。第二阶段:公司的联合行动。1996年,UML的开发者得到了来自公众的正面反应,并倡议成立了UML成员协会,以完善、加强和促进UML的定义工作。第三阶段:在OMG组织、控制下对UML规范进行的修订和改进,产生了UML1.2、1.3、1.4、1.5等版本。第四阶段:目前所处阶段。目前所处阶段是本世纪开始以来的重大修订,推出了全新的版本2.0。计算机科学与工程学院软件工程(SoftwareEngineer)2UML的定义及目标UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。1、它是一种可视化的建模语言。2、它是一种建模语言规格说明,是一种表示的标准。3、不是过程也不是方法,但允许任何一种过程和方法使用它UML主要作者提出的目标是:提供给用户一个易于使用和表达的可视化的建模语言,使他们能够开发和交流有意义的模型。独立于任何开发语言。独立于任何开发过程。简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改。提供了解建模语言的一个基本手段。支持面向对象的设计与开发中涌现出的高级概念,例如协作、框架、模式和构件,强调在软件开发中对架构、框架、模式和构件的重用。最佳的软件工程实践经验的集成。有利于面向对象工具的市场成长。计算机科学与工程学院软件工程(SoftwareEngineer)3UML的应用领域1.在不同类型系统中的应用UML常见的应用有:信息系统(InformationSystem);技术系统(TechnicalSystem);嵌入式实时系统(EmbeddedReal-TimeSystem);分布式系统(DistributedSystem);系统软件(SystemSoftware);商业系统(BusinessSystem);在软件开发的不同阶段中的应用,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。计算机科学与工程学院软件工程(SoftwareEngineer)11.2UML语言概述1视图(views)视图用来表示被建模系统的各个方面。视图由多个图(Diagrams)构成,它不是一个图片(graph),而是在某一个抽象层上对系统的抽象表示。如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊的方面就可以了。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。计算机科学与工程学院软件工程(SoftwareEngineer)2图(diagram)图由图片(graph)组成。图片是模型元素的符号化。把这些符号有机地组织起来形成的图,表示了系统的一个特殊部分或某个方面。一个典型的系统模型应有多个各种类型的图,图是一个具体视图的组成部分,在画一个图时就相当于把这个图分配给某个视图了。依据图本身的内容,有些图可能是多个视图的一部分。UML中包含用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图、部署图共九种。使用这九种图就可以描述世界上任何复杂的事物,这充分地显示了UML的多样性和灵活性。计算机科学与工程学院软件工程(SoftwareEngineer)3模型元素图为一些通用的模型元素符号示例在图中使用的概念统称为模型元素。+操作()-属性类状态包构件接口节点用例笔记计算机科学与工程学院软件工程(SoftwareEngineer)4通用机制UML语言利用通用机制为图附加一些信息,这些信息通常无法用基本的模型元素表示,常用的通用机制有修饰(adornment)、笔记(note)和规格说明(specification)等。计算机科学与工程学院软件工程(SoftwareEngineer)5UML建模工具随着UML的诞生与发展,涌现出了众多的UML建模工具。如RationalRose、Microsoft的MicrosoftOfficeVisio、Jude、免费的UML工具BOUML、SparxSystems的EnterpriseArchitect(EA)、使用java编写的开源UML产品ArgoUml、StartUML等等。计算机科学与工程学院软件工程(SoftwareEngineer)11.3用例建模用例建模描述一个系统应该做什么,描述的是外部参与者所理解的系统功能。构建用例模型是通过开发者与客户或最终使用者对需求规格说明达成的共识,明确系统的基本功能,为后阶段的工作打下基础。用例模型的基本组成部件是用例、参与者和系统。用例用于描述系统的功能,也就是从外部用户的角度,观察系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述。计算机科学与工程学院软件工程(SoftwareEngineer)1用例图用例模型可以由若干个用例图组成,用例图中包含系统、参与者和用例等三种模型元素。客户保险商务系统签订保险单销售统计资料客户数据资料保险销售员计算机科学与工程学院软件工程(SoftwareEngineer)2参与者(actor)1)参与者是与系统交互的人或事2)寻找参与者通过回答下列的一些问题确定参与者:(1)使用系统主要功能的人是谁?(即主要参与者)(2)需要借助于系统完成日常工作的人。(3)维护、管理系统,保证系统正常工作的人(次要参与者)。(4)系统要控制哪些硬件设备?(5)系统需要与哪些其它系统交互?(6)对系统产生的结果感兴趣的人或事是哪些?计算机科学与工程学院软件工程(SoftwareEngineer)3用例用例代表的是参与者感受到的一个完整的功能。UML中的用例是动作步骤的集合。系统中的每种可执行情况就是一个动作,每个动作由许多具体步骤实现。1)用例的特征(1)用例总由参与者初始化,即:参与者必须直接或间接地指示系统执行用例。(2)用例为参与者提供值。用例必须为参与者提供实在的值,这个值能被参与者识别。(3)用例是一个完整的描述。计算机科学与工程学院软件工程(SoftwareEngineer)2.寻找用例对于已识别的参与者,通过询问下列问题就可发现用例:(1)参与者需要系统提供哪种功能?参与者需要做什么?(2)参与者需要读取、产生、删除、修改或存储系统中的某种信息吗?(3)系统中发生的事件需要通知参与者吗?或者参与者需要通知系统某件事吗?这些事件(功能)能干些什么?(4)如果用系统的新功能处理参与者的日常工作,是简单化了还是提高了工作效率?计算机科学与工程学院软件工程(SoftwareEngineer)3)用例的描述应包括下面几个方面:(1)用例的目标:用例的最终任务是什么?想达到什么样的目标?(2)用例是怎样被启动(initiate)的:哪个参与者在怎样的情况下启动执行用例?比如张三买了车,是所以要投保的原因。(3)参与者和用例之间的消息流:参与者和用例之间的哪些消息是用来通知对方的?哪些是修改或检索信息的?哪些是帮助用例做决定的?系统和参与者之间的主消息流描述了什么问题?系统使用或修改了哪些实体?(4)用例的多种执行方案:在不同的条件或特殊情况下,用例能依当时条件选择一种合适的执行方案。(5)如何通过给参与者一个值来结束用例。计算机科学与工程学院软件工程(SoftwareEngineer)4)用例之间的关系用例之间有扩展(extend)、使用(use)、组合三种关系。扩展和使用是继承关系的另一种体现形式。组合则是把相关的用例打成包(package),当作一个整体看待。签订保险单签订汽车购买合同extends签订保险单签订汽车保险合同2签订汽车保险合同1usesuses计算机科学与工程学院软件工程(SoftwareEngineer)11.4类与对象建模1类和对象在面向对象建模技术中,我们采用分类的方法将客观世界的实体映射为对象,并归纳成一个个类。、对象和他们之间的关联是面向对象技术中最基本的元素。在UML中,类和对象模型分别由类图和对象图表示。类的名字属性操作计算机科学与工程学院软件工程(SoftwareEngineer)2类图和对象图类图是类图属于一种静态模型,是用类和它们之间的关系描述系统的一种图示。对象图是类图的一个实例。表示在某一时刻类的具体实例和这些实例之间的具体连接关系。-姓名:String-年龄:Integer作家-名称:String-内存:Integer计算机0..11..*(a)类图姓名:String=张三年龄:Integer=28张三:作家名称:String=DEll1.2G内存:Integer=128张三办公室的PC:计算机名称:String=IBM1.2G内存:Integer=256张三家里的PC:计算机(b)对象图计算机科学与工程学院软件工程(SoftwareEngineer)3关系类图由类和它们之间的关系组成,类与类之间的关系有关联(association)、依赖(dependency)、泛化(generalization)1)关联关系关联表示两个类之间存在某种语义上的联系,用于描述类与类之间的连接。根据不同的含义关联可分为普通关联、递归关联、限定关联、或关联、有序关联、三元关联和聚合等七种。计算机科学与工程学院软件工程(SoftwareEngineer)2)聚合(aggregation)(一般聚合、共享聚合、组合—复合聚合)聚合是一种特殊形式的关联。聚合表示类与类之间的整体与部分的关系。3)泛化(generalization)泛化表示的是一般描述和具体描述之间的关系,具体描述建立在一般描述的基础上,并对其进行了扩展。具体描述与一般描述完全一致,具有其所有特性、成员和关系。计算机科学与工程学院软件工程(SoftwareEngineer)4)依赖(Dependency)依赖是两个模型元素间的语义连接,一个是独立的模型元素,一个是依赖的模型元素。5)细化(refinement)细化是UML中的术语,表示对事物更详细一层的描述。两个元素A、B描述同一件事物,它们的区别是抽象层次不同,若元素B是在元素A的基础上的更详细的描述,则称元素B细化了元素A,或称元素A细化成元素B。计算机科学与工程学院软件工程(SoftwareEngineer)4约束和派生(规则)UML中的规则称为约束和派生。约束用于限制一个模型,我们已经讨论过的约束有或关联、有序关联和继承约束。派生用于描述某种事物的产生规则,比如说一个人的年龄可以由该人的生日和当前日期派生出来。一般说来,约束和派生能应用于任何模型元素,但最常用于属性、关联、继承、角色和时间计算机科学与工程学院软件工程(SoftwareEngineer)5包对于一个复杂的系统,通常都是把它分为若干个较小的系统(子系统)。解决这个问题的一个思路是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。这个思路被松散地应用到许多对象技术中。子系统B子系统C子系统E子系统A子系统D计算机科学与工程学院软件工程(SoftwareEngineer)6如何确定类1)寻找类在进行构造类图描述系统的工作时,首先要定义类,
本文标题:西安工业大学《软件工程》第十一章-统一建模语言(UML)
链接地址:https://www.777doc.com/doc-6217787 .html