您好,欢迎访问三七文档
UML简介为什么需要UML计算机图形学名言:一幅图顶得上一千个字建模的意义模型是对现实的简化,建模是为了更好地理解系统。模型帮助我们按照实际情况或需求对系统可视化;(掌握不了文字,画幅画代替)模型允许我们详细说明系统的结构、行为;模型给出了一个构造系统的模板;模型对我们作出的决策进行文档化。(先有文档,再有代码)选择UML使用UML建立对象模型来映射现实世界UML实现业务域到计算机世界的完整、有序的映射选择UMLUML--UnifiedModelingLanguageUnified组合了当前最好的面向对象软件建模方法GradyBooch,JamesRumbaugh,IvarJacobson,UML三位主要贡献者1.OMT(JamesRumbaugh)2.TheBoochmethod(GradyBooch)3.OOSE(IvarJacobson)选择UMLModeling用于表达现实的简化视图,以便于面向对象软件系统的设计与实现LanguageUML主要是遵循精确语法的图形语言(还包括规则约束扩展机制)选择UML选择UMLUML目标:提供全面的建模语言(为所有事情所有人),便于开发组所有成员交流与通信。UML的发展历史其它方法Booch'91OMT-1OOSEBooch'93OMT-2UnifiedMethod0.8UML0.9&0.91UML1.0UML1.1UML1.3UML1.4(使用非常多的一个版本)UML1.5UML2.0UML合作伙伴意见9596.6和96.1097.197.999.601.903.3最新OMGUML的特点统一的标准,已经被OMG接受为标准建模语言面向对象,支持面向对象开发可视化,表示能力强独立于开发过程,可以适用于不同软件过程概念明确,表示简洁,结构清晰,容易学习掌握理解UML的特点UML是一种语言遵循特定的规则允许创建各种模型并不告诉设计者需要创建哪些模型,自己不断总结探索并不提供开发过程,即:什么时候该创建什么图,这个模型怎么用,UML并不给出指导,由UnifiedProcess给出,UnifiedProcess不是本课程重点。软件工程三要素:方法(UML)、工具(rose)、过程(UnifiedProcess)UML是可视化语言UML是图形化语言图形便于交流(一幅图抵上千文字)UML图2-1UML借助图形符号展示和表达系统的概观,据此可以开发出表示系统各个方面的不同图示。有助于理解系统的行为和状态的典型图有:用例图用例为一系列事务,其中的每个事务是从系统外部调用的,需要与内部对象合作,以便在对象与系统周围之间创建关联类图此图是系统的静态结构,也是类以及这些类表示的关系的集合时序图是通过展示系统与其环境之间的交互,描述系统行为的简单而直观的方法时序图UML图2-2协作图表示特定环境和交互中一系列关联的对象。活动图是状态机图的变更或特例。在状态机图中,状态是展示执行操作的活动,操作完成后将触发转换。状态图展示方法执行的状态和对象执行的活动。协作图活动图状态图RationalRose2003简介用例图用例图组成用例(usecase)活动者(角色,actor)关系(relationship)还可以有注解等①用例UseCase系统、子系统或类与外部参与者(actor)交互的动作序列的说明。简单理解为用例就是系统的功能。用例分析可以认为是对系统功能的分解。用例符号用例符号①用例怎样确定用例的粒度?(用例规模的大小)用例的粒度可大可小,一般一个系统控制在20个左右,但没有严格规定用例是系统级的、抽象的描述,不是细化的(考虑的是“做什么what”,而不是“怎样做how”)对复杂的系统可以划分为若干子系统处理①用例怎样识别用例活动者希望系统执行什么任务?活动者在系统中访问哪些信息?(创建、存储、修改、删除等)需要将外界的哪些信息提供给系统?需要将系统的哪个事件告诉活动者?如何维护系统?②活动者Actor系统外部的参与者,可以是用户、外部硬件、其他系统。②活动者怎样识别活动者谁向系统提供信息?谁从系统获取(使用)信息?谁操作这个系统?谁维护这个系统?系统要使用哪些外部资源?(系统启动打印机、扫描仪)系统是否和已经存在的系统交互?(跨行转账的外部银行系统、时间到了定时启动系统某功能)②活动者理解Actor不是指人,而是指代表某一种特定功能的角色,因此同一个人可能对应很多个Actor。Actor是虚拟的概念,是对活动者的称谓,可以指外部系统和设备。如果一个活动者的操作是由另外一个活动者代理完成的,可以建立该活动者到另外活动者的依赖(或关联)关系。②活动者③关系关联(association)包含(include)扩展(extend)泛化(generalization)③关系关联(association)每个用例都由活动者启动(每个用例必须和一个活动者关联,有一个活动者来参与),除包含和扩展用例无论用例和活动者是否存在双向数据交流(无论是参与者提供信息给系统,还是从系统获取信息),关联总是由活动者指向用例,只用单向箭头。③关系包含(include)(是一种依赖关系,加了版型include)使用“包括”关系可以表明一个用例用于描述另一个用例的一些细节;箭头方向由基本用例指向被包含用例;执行基本用例时,每次都必须调用被包含的用例(吃饭前洗手);被包含用例也可以单独执行;③关系包含(include)一个用例功能过多,可分解成小用例,构成包含依赖本例中,被包含用例不能单独执行,没有Actor直接指向它们③关系扩展(extend)(是一种依赖关系,加了版型extend)一个用例(在某些扩展点extensionpoint上)扩展另一个用例的功能,构成新用例;箭头方向由扩展用例指向被扩展用例(即基本用例);扩展用例依赖于被扩展用例(基本用例),只是部分片段组成,不是完整的独立用例,无法单独执行;扩展用例不一定每次都被执行和调用。(吃饭前也可以不洗手),而被包含用例每次必须执行。肯定没有活动者指向扩展用例,因为扩展用例依赖基本用例。③关系泛化(generalization)“泛化”关系用于表明专用用例是实现由另一个通用用例表示的目标的一种特定方式。箭头应指向通用用例;往往将父用例用抽象用例(abstract)表示(即,父用例往往是虚的,真正用的是子用例。)用例图显示系统和外部实体(Actor)交互的图用例描述—事件流用事件流更详细地描述用例的功能主要组成用例名称简要说明前提条件后置条件主事件流/其他事件流用例描述用例名称应该与用例图相符合,并写上其相应的编号简要说明每个用例应有一个相关说明,描述该用例的作用,应注意语言简要,使用用户能够阅读的自然语言前提条件是执行用例之前必修满足的条件,例如前提条件可能是另外一个用例已经执行、或者用户具有运行当前用例的权限。后置条件用例结束后执行的动作,比如一个用例结束后必修运行另外一个用例。并不是每个用例都有后置条件。用例描述主事件流和其他事件流用例的具体细节在主事件流和其他事件流中描述。事件流描述执行用例功能的具体步骤。事件流关注系统做什么,而不是怎么做,它是从用户角度写成的。主事件流和其他事件流包括如下方面:用例如何开始用例的各种途径用例的主流程用例主事件流或其他事件流的变形错误流主事件流其他事件流举例构建用例图步骤确定系统的边界,找出系统外部的参与者和外部系统;确定每个参与者所希望的系统行为,命名为用例;编制用例的脚本,对用例进行描述;绘制用例图;把特殊情况的用例画成单独的子用例图。构建用例图系统边界框用例用例问题详述参与者开发典型用例用例举例顾客供货人收银员自动售货机系统售货供货取货款用例举例“在线拍卖”系统的需求序号UseCase描述1浏览拍卖目录用户浏览当前有效的拍卖物项,并不需要用户已登录入系统。2终结拍卖当一项拍卖的结束时间到达时,该用例被执行,此时买主和卖主会被告知拍卖已经成交、成交的价格以及双方的联络方式,以便真正完成这笔交易。系统将从卖主的信用卡中收取交易的相关费用。如果卖主的信用卡不能付款,系统将针对该卖主建立一个未付款记录。3创建帐户允许用户建立和激活一个帐户,输入用户信息-可以选择包括信用卡信息。当帐户被建立和激活后,用户被认为处于登录状态。4创建拍卖项卖主创建一个在线拍卖物项,在建立一个拍卖项之前,卖主必须要登录系统,并且不能有任何未付款记录。5管理帐户允许用户更新维护其帐户中的有关信息。6竞拍允许登录的买主在浏览拍卖目录时针对特定的拍卖物项竞拍。7登录用户提供用户名称和密码来通过身份验证。8退出用户告知系统该用户目前不想继续使用系统,退出之前必须要登录。使用RationalRose编写用例“在线拍卖”系统的用例图类图与对象图关键抽象是在系统范围上抽象一些重要概念,主要是从需求中得到(例如词汇表、业务规约以及用例模型),这些概念也会涉及到系统所针对的业务领域知识。关键抽象通常表现为系统的实体。关键抽象在线拍卖系统拍卖和拍卖物项信用卡竞拍分类用户帐户和未付款项关键抽象业务实体实体之间的关系强调与系统设计有关的实体排除系统外部多余的实体最后,关键抽象成为分析模型中的类识别类3-1类是一组对象,这些对象具有共同的属性和共同的行为类是创建对象的模板类可捕获对象的本质对象是类的实例化识别类3-2在标识类时,需查找:有形事物事件扮演的角色交互位置组织单位识别类3-3标识的类也称为候选类。可从以下方面标识类:需求说明用例应用程序专家研究系统分析以下方面可标识其他候选类:相似的系统以前的系统用例应用程序专家需求说明以前的系统相似的系统候选类候选类在分析的初始过程中阐明的类称为候选类冗余类无关类标识类的角色多个类定义同一个实体任何不属于应用程序域的类都需去除保留基类,而排除所有作为角色的类标识候选类模糊类没有明确功能的类称为模糊类类图2-1类是对一组对象的描述,这些对象具有相似的属性、操作、关系和行为。类名称属性操作类名称属性方法结构说明语法类对一组对象的描述,这些对象具有相同的属性、操作、方法、关系和语义操作:方法、服务和行为操作是对象可执行的过程。属性:特性,特征属性是进一步描述对象实例的数据。类图2-2类名称通常可对应于现实生活中的实体类名称类属性类方法AccountHolder-Name:String-Age:Integer+Status:Boolean#Hobby:StringAccountHolder-Name:String-Age:Integer+Status:Boolean#Hobby:String+GetName():String+SetName(sName:String)OrderConstructor+Order(id:integer)accessor+getQuantity():integermutator+setQuantity(id:integer)businesslogic+addOrder(id:integer)+cancelOrder(id:integer)类名称方法参数类型参数名称方法名称-id:integer-quantity:integer=0访问模式属性属性名称属性类型属性值类不是孤立存在的类关系关联接口与实现组合泛化(继承)聚合依赖类关系关联2-1结构说明语法关联表示类与类之间的关系,此关系涉及类的各个实例之间的连接识别类之后,需要识别关联多重性(multiplicity)用来说明关联的两个类之间的数量关系各个类都可能与自身有关联关联2-2泛化2-1结构说明语法泛化它是较一般类和较具体类之间的分类关系泛化:标识各个类之间的共同性。指明特化类(子类)的对象可取代泛化类(父类)的对象。是“is-a”关系
本文标题:UML建模
链接地址:https://www.777doc.com/doc-4703522 .html