软件建模技术-第3章-类图概要课件

上传人:202****8-1 文档编号:241582226 上传时间:2024-07-06 格式:PPT 页数:67 大小:3.01MB
返回 下载 相关 举报
软件建模技术-第3章-类图概要课件_第1页
第1页 / 共67页
软件建模技术-第3章-类图概要课件_第2页
第2页 / 共67页
软件建模技术-第3章-类图概要课件_第3页
第3页 / 共67页
点击查看更多>>
资源描述
第三章第三章 类图类图n3.1 类图的概念类图的概念n3.2 UML中的类中的类n3.3 类图中的关系类图中的关系n3.4 阅读类图阅读类图n3.5 如何建立类图如何建立类图n3.6 Rose2003类图操作类图操作第三章 类图3.1 类图的概念3.1 类图的概念类图的概念1、类图、类图 类图是描述类类图是描述类、协作、协作(类或对象间的协作类或对象间的协作)、接口及其关系的图。接口及其关系的图。3.1 类图的概念1、类图3.1 类图的概念类图的概念图图3-1电子商务网站的对象模型电子商务网站的对象模型3.1 类图的概念图3-1电子商务网站的对象模型3.1 类图的概念类图的概念2、类图的作用、类图的作用 类图常用来描述业务或软件系统的组成类图常用来描述业务或软件系统的组成、结构和关系。结构和关系。3.1 类图的概念2、类图的作用3.1 类图的概念类图的概念3、类图的组成元素、类图的组成元素n类类n接口接口n协作协作n关系关系n注释注释n约束约束n包包3.1 类图的概念3、类图的组成元素3.2 UML中的类中的类、类的表示、类的表示()类的定义()类的定义类是具有相似结构、行为和关系的一类是具有相似结构、行为和关系的一组对象的描述符。组对象的描述符。()类的表示()类的表示3.2 UML中的类、类的表示3.2 UML中的类中的类()类的命名()类的命名n由字符、数字、下划线组成的惟一的字符串;由字符、数字、下划线组成的惟一的字符串;n采用采用CamelCase格式(大写字母开头,混合大格式(大写字母开头,混合大小写,每个单词一大写开始,避免使用特殊符小写,每个单词一大写开始,避免使用特殊符号)号)n类名的两种表示方法类名的两种表示方法简单名简单名 Order路径名路径名java:awt:Rectanget businessRule:Order3.2 UML中的类()类的命名3.2 UML中的类中的类()类的属性()类的属性n属性描述了类的静态特征;属性描述了类的静态特征;n属性名的第一个字母小写;属性名的第一个字母小写;n属性的定义格式属性的定义格式 可见性可见性 属性名属性名:类型类型 多重性多重性次序次序=初始值初始值 特性特性说明:可见性包括说明:可见性包括+、-、#、例:例:#visibility:Boolean=false colors:Color3 points:Point2.*ordered name:String0.13.2 UML中的类()类的属性3.2 UML中的类中的类()类的操作()类的操作n操作名的命名规范习惯采用和属性名相同的命名规则。操作名的命名规范习惯采用和属性名相同的命名规则。n类的操作的定义格式类的操作的定义格式可见性可见性 操作名操作名(参数列表参数列表):返回类型返回类型 特性特性n例:例:+hide():Boolean#create()-attachXWindow(xwin:XwindowPtr)3.2 UML中的类()类的操作3.2 UML中的类中的类()类的职责()类的职责职责指类承担的责职责指类承担的责任和义务。在矩形框中任和义务。在矩形框中最后一栏中写明类的职最后一栏中写明类的职责。责。Washing MachineBrand nameModel nameSerial numberCapacityAdd clothes()Add detergent()Remove clothes()Take dirty clothes as input and produce clean clothes as output3.2 UML中的类()类的职责Washing Machi3.2 UML中的类中的类()类的约束()类的约束约束指定了类所要满足的一个或多个规则。约束指定了类所要满足的一个或多个规则。在在UML中,约束是用花括号括起来的自由文本。中,约束是用花括号括起来的自由文本。Washing MachineBrand nameModel nameSerial numberCapacityAdd clothes()Add detergent()Remove clothes()capacity=16 or 18 or 20 lb3.2 UML中的类()类的约束Washing Machi3.2 UML中的类中的类2、类的种类、类的种类(1)抽象类)抽象类n当某些类有一些共性的方法或属性时,可以定当某些类有一些共性的方法或属性时,可以定义一个抽象类来抽取这些共性,然后将包含这义一个抽象类来抽取这些共性,然后将包含这些共性方法和属性的些共性方法和属性的具体类作为该抽象类的继具体类作为该抽象类的继承承;n抽象类是一种不能直接实例化的类,抽象类是一种不能直接实例化的类,不能用抽不能用抽象类创建对象象类创建对象;n抽象类抽象类可以实现多态可以实现多态;3.2 UML中的类2、类的种类3.2 UML中的类中的类(1)抽象类)抽象类n在在UML中,中,抽象类和抽象方法的表示是将其名抽象类和抽象方法的表示是将其名字用字用斜体斜体表示表示。3.2 UML中的类(1)抽象类3.2 UML中的类中的类()接口()接口n接口是一种类似于抽象类的机制,是一个没有接口是一种类似于抽象类的机制,是一个没有具体实现的类。具体实现的类。n接口接口可以实现多态可以实现多态;n在在UML中接口有两种表示方法:中接口有两种表示方法:Interface图标表示法图标表示法Collection构造符号表示法构造符号表示法3.2 UML中的类()接口Interface图标表示3.2 UML中的类中的类(3)关联类)关联类当两个类之间具有多对多的关系,并且有些当两个类之间具有多对多的关系,并且有些属性不属于关联两端任何一个类;属性不属于关联两端任何一个类;关联类通过一条虚线和对应的关联连接;关联类通过一条虚线和对应的关联连接;3.2 UML中的类(3)关联类3.2 UML中的类中的类(4)主动类)主动类n主动类的实例称为主动对象,一个主动主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控对象拥有一个控制线程并且能够发起控制活动;具有独立的控制期。制活动;具有独立的控制期。n从某种意义上说,它就是一个线程。从某种意义上说,它就是一个线程。n在在UML2.0中,主动类的表示方法为:在中,主动类的表示方法为:在类的两边加上垂直线。类的两边加上垂直线。3.2 UML中的类(4)主动类3.2 UML中的类中的类(5)嵌套类)嵌套类n将一个类的定义放在另一个类定义的内将一个类的定义放在另一个类定义的内部,这就是嵌套类。部,这就是嵌套类。n在在UML中,可以采用一个锚图标来表示中,可以采用一个锚图标来表示这种关系这种关系3.2 UML中的类(5)嵌套类3.3 类图中的关系类图中的关系按照关系的性质分为按照关系的性质分为4种:种:n关联关联n泛化泛化n依赖依赖n实现实现3.3 类图中的关系按照关系的性质分为4种:1 1、关联、关联nassociationn关联是模型元素间的一种语义联系,它是关联是模型元素间的一种语义联系,它是对具有共同的结构特性、行为特性、关系对具有共同的结构特性、行为特性、关系和语义的链的描述。和语义的链的描述。n关联可以有方向,可以是单向关联或双向关联可以有方向,可以是单向关联或双向关联。关联。1、关联associationClass1Class2association namerolename1rolename2multiplicity1multiplicity21 1、关联、关联n关联有名称、角色、多重性和导航性等语关联有名称、角色、多重性和导航性等语法。法。Class1Class2association namero1 1、关联、关联(1)关联名)关联名描述关联的作用;描述关联的作用;通常使用动词或动词短语;通常使用动词或动词短语;1、关联(1)关联名1 1、关联、关联(2)角色)角色关联两端的类可以某种角色参与关联;关联两端的类可以某种角色参与关联;通常使用名词或名词短语;通常使用名词或名词短语;1、关联(2)角色1 1、关联、关联(3)多重性)多重性某个类有多少个对象可以和另一个类的某个类有多少个对象可以和另一个类的单个对象关联;单个对象关联;1、关联(3)多重性1 1、关联、关联(3)多重性)多重性在在UML中,常用的关联的多重性表示格式如下:中,常用的关联的多重性表示格式如下:0.1 0或或11 10.*(0.n)0或多个或多个*0或多个或多个1.*(1.n)1或多个或多个8 85,7.10 5或或7101、关联(3)多重性1 1、关联、关联(4)导航性)导航性用箭头显示导航性;用箭头显示导航性;描述源对象通过链接访问目标对象;描述源对象通过链接访问目标对象;只有源对象才能访问目标对象;只有源对象才能访问目标对象;1、关联(4)导航性1 1、关联、关联(5)关联的约束)关联的约束关联可加上一些约束,以加强关联的含义;关联可加上一些约束,以加强关联的含义;1、关联(5)关联的约束1 1、关联、关联(6)限定符)限定符在关联端紧靠源类图标处可有限定符,在关联端紧靠源类图标处可有限定符,带有限定符的关联称为带有限定符的关联称为限定关联限定关联。限定符的作用:用于将一个多(或一)限定符的作用:用于将一个多(或一)对多关联转化为一个多(或一)对一关对多关联转化为一个多(或一)对一关联。联。限定符是关联的属性限定符是关联的属性,而不是类的属性。,而不是类的属性。1、关联(6)限定符1 1、关联、关联(6)限定符)限定符1、关联(6)限定符1 1、关联、关联(7)关联的种类)关联的种类自返关联自返关联二元关联二元关联(前述前述)N元关联元关联1、关联(7)关联的种类聚合聚合nAggregationn一种特殊形式的关联。一种特殊形式的关联。n在一个二元关联中两个类之间的在一个二元关联中两个类之间的整体与部分整体与部分的的关系。关系。聚合Aggregation组合组合nCompositionn是一种特殊形式的聚合;是一种特殊形式的聚合;n表示类之间整体和部分的关系。表示类之间整体和部分的关系。n整体与部分具有相同的生存期。整体与部分具有相同的生存期。组合Composition2 2、泛化、泛化nGeneralizationn表示两个类元间表示两个类元间“一般一般”与与“特殊特殊”的关系。的关系。n对应面向对象编程语言中类与类之间的对应面向对象编程语言中类与类之间的继承关系继承关系。AthleteSwimmerGolfer2、泛化GeneralizationAthleteSwimm3 3、实现、实现nRealizationn表达一种表达一种说明元素说明元素与与实现元素实现元素之间的关系;之间的关系;n在实现关系中,在实现关系中,说明元素说明元素(称为提供者)(称为提供者),实现元实现元素素(称为客户)(称为客户)n典型应用:接口与实现它的类典型应用:接口与实现它的类、协作与被协作实现协作与被协作实现的用例都是实现关系。的用例都是实现关系。3、实现Realization4 4、依赖、依赖nDependencyn描述两个或多个元素之间语义上的联系,如果一描述两个或多个元素之间语义上的联系,如果一个元素(个元素(提供者提供者)的变化将影响另一个元素()的变化将影响另一个元素(客客户户),则称客户依赖于提供者。),则称客户依赖于提供者。4、依赖Dependency4 4、依赖、依赖n依赖关系可以分为以下四类:依赖关系可以分为以下四类:1)使用依赖(使用依赖(Usage)2)抽象依赖(抽象依赖(Abstraction)3)授权依赖(授权依赖(Permission)4)绑定依赖(绑定依赖(Binding)4、依赖依赖关系可以分为以下四类:(1 1)使用依赖)使用依赖 n表示客户使用提供者提供的服务以实现它的表示客户使用提供者提供的服务以实现它的行为,包括:行为,包括:使用使用-声明使用一个类时需要用到声明使用一个类时需要用到已存在的另一个类。已存在的另一个类。调用调用-声明一个类调用其他类的操声明一个类调用其他类的操作的方法。作的方法。参数参数-声明一个操作和它的声明一个操作和它的参数之间的关系。参数之间的关系。发送发送-声明信号发送者和信号接收声明信号发送者和信号接收者之间的关系者之间的关系。实例化实例化-声明用一个类的方声明用一个类的方法创建了另一个类的实例。法创建了另一个类的实例。(1)使用依赖 表示客户使用提供者提供的服务以实现它的行为,(2 2)抽象依赖)抽象依赖n表示客户与提供者之间用不同的方法表现同表示客户与提供者之间用不同的方法表现同一个概念,通常一个概念更抽象,一个概念一个概念,通常一个概念更抽象,一个概念更具体。包括:更具体。包括:跟踪跟踪-声明不同模型中的元素之间声明不同模型中的元素之间存在一些连接但不如映射精确存在一些连接但不如映射精确。精化精化-声明具有两个不同语义层声明具有两个不同语义层次上的元素之间的映射。次上的元素之间的映射。派生派生-声明一个实例可以从另一声明一个实例可以从另一个实例导出。个实例导出。(2)抽象依赖表示客户与提供者之间用不同的方法表现同一个概念(3 3)授权依赖)授权依赖 n表达提供者为客户提供某种权限以访问其内容表达提供者为客户提供某种权限以访问其内容的情形。包括:的情形。包括:访问访问-允许一个包访问另一个包允许一个包访问另一个包的内容的内容。导入导入-允许一个包访问另一个包允许一个包访问另一个包的内容并为被访问包的组成部分增加别名。的内容并为被访问包的组成部分增加别名。友元友元-允许一个元素访问另一个元允许一个元素访问另一个元素,不管被访问的元素是否具有可见性。素,不管被访问的元素是否具有可见性。(3)授权依赖 表达提供者为客户提供某种权限以访问其内容的情(4 4)绑定依赖)绑定依赖n较高级的依赖类型,用于绑定模板以创建新的较高级的依赖类型,用于绑定模板以创建新的模型元素,包括:模型元素,包括:绑定绑定-为模板参数指定值,以生成一为模板参数指定值,以生成一个新的模型元素。个新的模型元素。(4)绑定依赖较高级的依赖类型,用于绑定模板以创建新的模型元3.4 阅读类图阅读类图1、电子商务网站业务描述、电子商务网站业务描述3.4 阅读类图1、电子商务网站业务描述3.4 阅读类图阅读类图 2、阅读顺序应遵循的原则、阅读顺序应遵循的原则n先看清有哪些先看清有哪些类;类;n然后看看类之间存在的然后看看类之间存在的关系;关系;n结合结合多重性多重性来理解类图的结构特点以及各个属来理解类图的结构特点以及各个属性和方法的含义性和方法的含义 3.4 阅读类图 2、阅读顺序应遵循的原则先看清有软件建模技术-第3章-类图概要课件读图过程读图过程读出类:读出类:读出关系:从图中关系最复杂(也就是线最密集)读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是的类开始阅读,本图中最复杂的就是Order类。类。1)OrderItem和和Order之间是组合关系,根据箭头之间是组合关系,根据箭头的方向可知的方向可知Order包含了包含了OrderItem。2)Order类和类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。客户、收货人、送货单是相关的。读图过程读出类:读图过程读图过程多重性:用来说明关联的两个类之间的数量关系多重性:用来说明关联的两个类之间的数量关系 源类及多重性目标类及多重性分析Customer(1)Order(0n)订单是属于某个客户的,网站的客户可以有0个或多个订单Order(1)Consignee(1)每个订单只能够有一个收货人Order(1)OrderItem(1n)订单是由订单项组成的,至少要有一个订单项,最多可以有n个Order(1)DeliverOrder(1n)一个订单有一个或多个送货单说明:系统根据订单项的产品所属的商户,将其分发给商户,拆成了多个送货单!DeliverOrder(1)OrderItem(1n)一张送货单对应订单中的一到多个订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一个收货人Peddlery(1)DeliverOrder(0n)每个商户可以有相关的0个或多个送货单OrderItem(1)Product(1)每个订单项中都包含着唯一的一个产品Peddlery(1)Prodcut(0n)产品是属于某个商户的,可以注册0到多个产品读图过程多重性:用来说明关联的两个类之间的数量关系 源类及多读图过程读图过程理解方法与图理解方法与图Order类,有两个方法:类,有两个方法:dispatch()和和close(),从名字中可以猜出它,从名字中可以猜出它们分别实现们分别实现“分拆订单生成送货单分拆订单生成送货单”和和“完成订单完成订单”。而在。而在DeliveOrder()类中则有一个类中则有一个Close()方法,同理它应该表示方法,同理它应该表示“完成送货完成送货”。而在。而在OrderItem中有一个中有一个stateChange()方法和方法和deliverState,不难猜出它,不难猜出它就是用来改变其就是用来改变其“是否交给收货人是否交给收货人”标志位的标志位的先调用先调用Order的的dispatch()方法,它将根据其包含的方法,它将根据其包含的OrderItem中产中产品信息,来按供应商户分拆成若干个品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统。商户登录系统后就可以获取其后就可以获取其DeliverOrder,并在执行完后调用,并在执行完后调用close()方法。这方法。这时,就将调用时,就将调用OrderItem的的stateChange()方法来改为其状态。同时方法来改为其状态。同时再调用再调用Order的的close()方法,判断该方法,判断该Order的所有的的所有的OrderItem是否是否都已经送到了,如果是就将其真正都已经送到了,如果是就将其真正close()读图过程理解方法与图Order类,有两个方法:dispat使用了更多辅助建模元素的类图使用了更多辅助建模元素的类图使用了更多辅助建模元素的类图增强的辅助建模元素增强的辅助建模元素导航箭头:类的实例之间只能沿着导航箭头的方向传递导航箭头:类的实例之间只能沿着导航箭头的方向传递,在,在Order中可以获取其相应的中可以获取其相应的Consignee,而从,而从Consignee中是无法了解与其相关的中是无法了解与其相关的Order的的 角色名称:角色名称:Customer端有一个端有一个“+Owner”字符串字符串,这,这表示表示Customer扮演的角色是扮演的角色是Owner,也能对关联进行命,也能对关联进行命名名增强的辅助建模元素导航箭头:类的实例之间只能沿着导航箭头的方导出属性:是指可以根据其他值计算出来的特性,这种导出属性:是指可以根据其他值计算出来的特性,这种属性应在其名称前加上一个属性应在其名称前加上一个“/”符号。符号。限定符:在限定符:在Order和和OrderItem之间的组合关系中,之间的组合关系中,OrderItem这端多了一个方框,里面写着这端多了一个方框,里面写着“ProductId”。它在它在UML中称为限定符,存在限定符的关联称为受限关中称为限定符,存在限定符的关联称为受限关联。它用来表示某种限定关系。在本例中,它的用途是联。它用来表示某种限定关系。在本例中,它的用途是说明:对于一张订单,每一种产品只能用一个订单项说明:对于一张订单,每一种产品只能用一个订单项 约束:用来说明规则,约束:用来说明规则,xor职责:在类的属性栏中添加注释行表示,或增加了一个职责:在类的属性栏中添加注释行表示,或增加了一个新的分栏新的分栏增强的辅助建模元素增强的辅助建模元素导出属性:是指可以根据其他值计算出来的特性,这种属性应在其名3.5 如何建立类图如何建立类图1、类图的抽象层次、类图的抽象层次n概念类概念类 描述应用领域中的概念,仅描述应用领域中的概念,仅包含类名,不考虑细节。包含类名,不考虑细节。n分析类分析类 分析不针对具体语言,包含分析不针对具体语言,包含一些类的细节特性。一些类的细节特性。n设计类设计类 针对具体的语言,考虑类的针对具体的语言,考虑类的实现细节。实现细节。3.5 如何建立类图1、类图的抽象层次概念类3.5 如何建立类图如何建立类图2、建立类图的步骤、建立类图的步骤1)分析问题域,确定需求;分析问题域,确定需求;2)寻找类,确定类的含义和职责;寻找类,确定类的含义和职责;3)定义类的属性和操作;定义类的属性和操作;4)确定类之间的关系;确定类之间的关系;5)精化类和类间的关系;精化类和类间的关系;6)绘制类图。绘制类图。3.5 如何建立类图2、建立类图的步骤分析问题域,确定需求;3.5 如何建立类图如何建立类图3、寻找类的方法、寻找类的方法使用名词使用名词使用名词使用名词/动词寻找类:动词寻找类:动词寻找类:动词寻找类:1)收集相关信息收集相关信息n补充的需求规格说明补充的需求规格说明n用例用例n项目说明文档项目说明文档n其他文档其他文档2)分析信息分析信息n名词、名词短语名词、名词短语 类或属性类或属性n动词、动词短语动词、动词短语 操作操作3.5 如何建立类图3、寻找类的方法使用名词/动词寻找类:3.5 如何建立类图如何建立类图3、寻找类的方法、寻找类的方法使用使用使用使用CRCCRC分析法寻找类:分析法寻找类:分析法寻找类:分析法寻找类:nC-class(类)(类)nR-responsibility(职责)(职责)nC-collaboration(协作)(协作)nCRC分析法是根据类所要扮演的职责来确定类。分析法是根据类所要扮演的职责来确定类。1)脑力风暴收集信息。脑力风暴收集信息。2)关键业务用类表示,其它卡片作为属性。关键业务用类表示,其它卡片作为属性。3.5 如何建立类图3、寻找类的方法使用CRC分析法寻找类:需求描述需求描述李小平是一个爱书之人,家里各类书籍已过千册,而平李小平是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计。籍的购买金额、册数按特定时间周期进行统计。分析分析需求描述李小平是一个爱书之人,家里各类书籍已过千册,而平时又发现类发现类李小平李小平是一个爱书之是一个爱书之人人,家里家里各类各类书籍书籍已过千册,而平已过千册,而平时又时常有时又时常有朋友朋友外借,因此需要一个外借,因此需要一个个人图书管理系统个人图书管理系统。该系统应该能够将书籍的该系统应该能够将书籍的基本信息基本信息按按计算机类计算机类、非计算非计算机类机类分别建档,实现按分别建档,实现按书名书名、作者作者、类别类别、出版社出版社等等关关键字键字的组合查询的组合查询功能功能。在使用该系统录入。在使用该系统录入新书籍新书籍时时系统系统会自动按会自动按规则规则生成生成书号书号,可以修改,可以修改信息信息,但一经创建就,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录记录,可对,可对外借情况列表外借情况列表打印。另外,还希望能够对书打印。另外,还希望能够对书籍的籍的购买金额购买金额、册数册数按按特定时间周期特定时间周期进行统计。进行统计。发现类李小平是一个爱书之人,家里各类书籍已过千册,而平时又时筛选备选类筛选备选类“李小平李小平”、“人人”、“家里家里”很明显是系统外的概念,无须对其建模;很明显是系统外的概念,无须对其建模;而而“个人图书管理系统个人图书管理系统”、“系统系统”指的就是将要开发的系统,即系指的就是将要开发的系统,即系统本身,也无须对其进行建模;统本身,也无须对其进行建模;很明显很明显“书籍书籍”是一个很重要的类,而是一个很重要的类,而“书名书名”、“作者作者”、“类别类别”、“出版社出版社”、“书号书号”则都是用来描述书籍的基本信息的,因此则都是用来描述书籍的基本信息的,因此应该作为应该作为“书籍书籍”类的属性处理,而类的属性处理,而“规则规则”是指书号的生成规则,是指书号的生成规则,而书号则是书籍的一个属性,因此而书号则是书籍的一个属性,因此“规则规则”可以作为编写可以作为编写“书籍书籍”类类构造函数的指南。构造函数的指南。“基本信息基本信息”则是书名、作者、类别等描述书籍的基本信息统称,则是书名、作者、类别等描述书籍的基本信息统称,“关键字关键字”则是代表其中之一,因此无需对其建模;则是代表其中之一,因此无需对其建模;“功能功能”、“新书籍新书籍”、“信息信息”、“记录记录”都是在描述需求时使用都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;筛选备选类“李小平”、“人”、“家里”很明显是系统外的概念,筛选修选类筛选修选类“计算机类计算机类”、“非计算机类非计算机类”是该系统中图书的两大分类,因此是该系统中图书的两大分类,因此应该对其建模,并改名为应该对其建模,并改名为“计算机类书籍计算机类书籍”和和“非计算机类书籍非计算机类书籍”,以减少歧义;,以减少歧义;“外借情况外借情况”则是用来表示一次借阅行为,应该成为一个候选类,则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成多个外借情况将组成“外借情况列表外借情况列表”,而外借情况中一个很重要,而外借情况中一个很重要的角色是的角色是“朋友朋友”借阅主体。虽然到本系统中并不需要建立借阅主体。虽然到本系统中并不需要建立“朋朋友友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将此还是将其列为候选类。为了能够更好地表述,将“外借情况外借情况”改改名为名为“借阅记录借阅记录”,而将,而将“外借情况列表外借情况列表”改名为改名为“借阅记录列表借阅记录列表”;“购买金额购买金额”、“册数册数”都是统计的结果,都是一个数字,因此不都是统计的结果,都是一个数字,因此不用将其建模,而用将其建模,而“特定时限特定时限”则是统计的范围,也无需将其建模;则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类关键类书籍列表,也就是执行统计的主体。书籍列表,也就是执行统计的主体。筛选修选类“计算机类”、“非计算机类”是该系统中图书的两大分得到候选类得到候选类在使用在使用“名词动词法名词动词法”寻找类的时候,很多团队会在此寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字的了解,无需太过咬文嚼字 书籍 计算机类书籍 非计算机类书籍借阅记录 借阅记录列表 书籍列表得到候选类书籍 计算机类书籍 非关联分析,建模关联分析,建模多重性分析,再建模多重性分析,再建模关联分析,建模多重性分析,再建模职责分析职责分析书籍类:从需求描述中,可找到书籍类:从需求描述中,可找到书名、类别、作者、出版社书名、类别、作者、出版社;同时;同时从统计的需要中,可得知从统计的需要中,可得知“定价定价”也是一个关键的成员变量。也是一个关键的成员变量。书籍列表类:书籍列表就是全部书籍列表类:书籍列表就是全部的藏书列表,其主要的成员方法的藏书列表,其主要的成员方法是新增、修改、查询(按关键字是新增、修改、查询(按关键字查询)、统计(按特定时限统计查询)、统计(按特定时限统计册数与金额)。册数与金额)。借阅记录类:借阅人(朋友)、借阅记录类:借阅人(朋友)、借阅时间。借阅时间。借阅记录列表类:主要职责就是借阅记录列表类:主要职责就是添加记录(借出)、删除记录添加记录(借出)、删除记录(归还)以及打印借阅记录(归还)以及打印借阅记录 职责分析书籍类:从需求描述中,可找到书名、类别、作者、出版社限定与修改限定与修改导航性分析:导航性分析:Book与与BookList之间、之间、BorrowRecord和和BorrowList之间是组合关系均无需添加方向描述,而之间是组合关系均无需添加方向描述,而Book与与BorrowRecord之之间则是双方关联,也无需添加。间则是双方关联,也无需添加。约束:约束:Book对象创建后就不能够对象创建后就不能够被删除只能被修改,因此在被删除只能被修改,因此在Book类边上加上用自由文本写的约束类边上加上用自由文本写的约束;一本书要么属于计算机类,要么一本书要么属于计算机类,要么属于非计算机类,因此在属于非计算机类,因此在ItBook和和OtherBook间加了间加了“Xor”约束。约束。限定符:一本书只有一册,因此只限定符:一本书只有一册,因此只能够被借一次,因此对于一本能够被借一次,因此对于一本Book而言只能有一个而言只能有一个RecordId与其对应。与其对应。限定与修改导航性分析:Book与BookList之间、Bor3.6 Rose类图操作类图操作-类图到代码的转换类图到代码的转换1.绘制类图2.ToolsJava/J2EEProject Specification定义代码存放路径3.选种类,选择ToolsJava/J2EEGenerate Code说明:说明:n 生成将文件中的“roseuid 4C88633D003E”为代码标识号,用于标识代码中的类、操作和其他模型元素。n Rose生成代码时,会默认生成构造方法。如不想生成,可将ToolsOptionsJavaClass选项的Generate Default Constructor设为False(默认为True)。3.6 Rose类图操作-类图到代码的转换绘制类图说明:1.新建类图2.选择ToolsJava/J2EEReverse Engineer3.选择类4.选中的类以及与该类相关联的类被添加5.拖拽至绘图面板即可3.6 Rose2003类图操作类图操作-代码到类图的转换代码到类图的转换新建类图3.6 Rose2003类图操作-代码到类图的转换3.6 Rose2003类图操作类图操作编辑代码编辑代码1.选中类2.选择ToolsJava/J2EEEdit Code3.窗口左下角打开相应代码3.6 Rose2003类图操作编辑代码选中类 思考与练习思考与练习 1、读图:要求按照、读图:要求按照3.4.2(P39)步骤步骤 思考与练习 1、读图:要求按照3.4.2(P39)步骤 思考与练习思考与练习 2、画类图:一个教室有多张桌子,每一张、画类图:一个教室有多张桌子,每一张桌子对应一排椅子,一排椅子可以做两个桌子对应一排椅子,一排椅子可以做两个人。人。3、画类图:一个文件夹由多个文件或文件、画类图:一个文件夹由多个文件或文件夹组成,文件有加密和无加密的。夹组成,文件有加密和无加密的。思考与练习 2、画类图:一个教室有多张桌子,每一张桌子实实例例:建建模模类类图图 思考与练习思考与练习 实例:建模类图 思考与练习 答案答案答案
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!