已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11讲包图及对象图,在windows中文件夹有什么作用?对文件进行分类管理避免了命名冲突,一、包的作用一个程序往往包含了很多个类,那么如何管理这些类就成了一个需要解决的问题(分组机制)这些类可能由不同的程序员进行建立,当把这些类合并成一个大系统时,往往会产生命名冲突(类名冲突)包的两个作用:分组机制,命名空间。,Java:包(package)C#:命名空间(namespace),C#中引入命名空间:using命名空间名;,C#中定义命名空间:namespace命名空间名,usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacescoreAclassAclassBclassC,引入包定义包,11.1包图的概念,11.2包的表示,11.3包图中的关系,11.4阅读包图,11.5创建包图,11.6包图建模,11.1包图的概念,模型的组织结构,系统的三层结构,先分层再细分成包的方式,用户界面代表与用户进行交互的界面,业务逻辑层用来处理系统的业务流程,数据访问层是程序中和数据库进行交互的层,11.1包图的概念,对复杂系统进行建模时,经常需要处理大量的类、接口、组件、节点和图,有必要将这些元素进行分组,就是把语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型,而且也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素隐藏在包内。,11.1包图的概念,1.包图包图是描述包与包之间关系的图。包图可以包括注释、约束。包间的关系有依赖关系和泛化关系。,包图,11.1包图的概念,2.包图的作用1)对语义上相关的元素进行分组。2)提供配置管理单元。3)在设计时,提供并行工作的单元。4)提供封装的命名空间。,3.包图中的元素在包中可以拥有各种其他元素,包括类、接口、构件、节点、协作、用例,甚至是其它子包或图。一个元素只能属于一个包。,11.2包的表示,UML中,用文件夹符号来表示一个包,它包含2栏。,PageName,PageName,ClassName-1ClassName-2.,PageName,类名,Rose常用表示法,包名放在第一栏,在第二栏画出所包含的类图形表示,第二栏列出包含的类名,包名放在第二栏,System:Web,UI,class,嵌套包,包的表示法,11.2包的表示,包的名称,每个包必须有一个与其他包相区别的名称。标识包名称的格式有两种:简单名和全名。,简单名:仅包含一个包的简单名称;,全名:用该包的外围包的名字作为前缀,加上包本身的名字。,11.2包的表示,2.包的元素,在一个包中可以拥有各种元素,包括类、接口、构件、节点、协作、用例,甚至是其他包或图。这是一种组成关系,意味着元素是在这个包中声明的,一个元素只能属于一个包。,每一个包就意味着一个独立的命名空间,两个不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。,在包中表示拥有的元素时,有两种方法:一是在第二栏中列出所属元素名,二是在第二栏中画出所属元素的图形表示。,11.2包的表示,3.包的可见性像类中的属性和方法一样,包中的元素也有可见性,包内元素的可见性控制了包外部元素访问包内部元素的权限。,可见性与访问权限(假设包B中的元素访问包A中的元素),Public(+):可在其他任何包中使用Private(-):只能在该包中使用Protected(#):可以在该包和该包的子包中使用,11.2包的表示,包内元素的可见性,标识了外部元素访问包内元素的权限。,包元素的可见性,11.2包的构造型,11.3包图中的关系,包图中的关系包括依赖关系和泛化关系。,1依赖关系,依赖关系又可以分为4种。在依赖关系中,我们把箭尾端的包称为客户包,把箭头端的包称为提供者包。,1)use关系use关系是一种默认的依赖关系,说明客户包(箭尾端的包)中的元素以某种方式使用提供者包(箭头端的包)的公共元素,也就是说客户包依赖于提供者包。如果没有指明依赖类型,则默认为use关系。,2)import关系:允许一个包中的元素可以单向访问另一包中的元素import关系是最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素。import关系使命名空间合并,当提供者包中的元素具有与客户包中的元素相同的名称时,将会导致命名空间的冲突。这也意味着,当客户包的元素引用提供者包的元素时,将无需使用全称,只需使用元素名称即可。,当包A将包B导入时,包A中的元素可以直接访问包B中的元素,而不必在每次使用时用完整的路径名。,11.3包的导入,usingspace1;usingspace2;namespacespace3/第三个命名空间DownCountdc=newDownCount(10);UpCountuc=newUpCount(10);,/usingspace1;/usingspace2;namespacespace3/第三个命名空间space1.DownCountdc=newspace1.DownCount(10);space2.UpCountuc=newspace2.UpCount(10);,11.3包图中的关系,3)access关系如果只想使用提供者包中的元素,而不想将两个包合并,则应使用该关系。在客户包中必须使用路径名,才能访问提供者包中的所有公共元素。,)trace关系:想表示一个包到另一个包的历史发展,则需要使用trace关系来表示。,2泛化关系,包间的泛化关系类似于类间的泛化关系,使用一般包的地方,可以用特殊包代替。在系统设计中,对某一个特定的功能,有多种实现方法。例如,实现多数据库支持;实现B/S和C/S双界面。这时就需要定义一些高层次的“抽象包”和实现高层次功能的“实现包”。,11.3包图中的关系,11.4阅读包图,阅读包图的方法:1.了解每个包的语义,及其它包含的元素语义。2.理解包间的关系。3.找到依赖关系复杂的包,从最复杂的包开始阅读,然后依次是简单的包。,11.4阅读包图,阅读包图,11.5创建包图,绘制包图的基本过程主要有三个步骤:(1)寻找包;(2)确定包之间的关系;(3)标出包内元素的可见性。,绘制包图的“最小化系统间的耦合关系”的原则:最大限度减少包之间的依赖,包封装时,避免包之间的循环依赖;最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。,11.5创建包图,1包的划分方法,(1)识别底层包把语义上接近并倾向于一起变化的元素放在一个包中。例如,把具有泛化关系的一组类放在一个包中。把独立的模型元素暂放在一个包中。,(2)合并包如果底层包数量过多,则合并为高层包。若底层包之间在概念上接近或具有较强的相关性,从作用上属于某项大的功能,在图上有较强的耦合度,或在分布上处于同一台处理机,则考虑把它们合并。,良好包结构的关键是包内高内聚,包间低耦合。,11.5创建包图,2消除循环包依赖,应该尽量避免包模型中的循环依赖。如果包A以某种方式依赖包B,并且包B以某种方式依赖包A,就应该合并这两个包,这是消除循环依赖非常有效的方法。但是经常起作用的、更好的方法是,努力分解公共元素成为第三个包C。重新计算依赖关系,以消除循环依赖。,很多建模工具允许自动验证包间依赖。如果一个包中的元素访问另一个包中的元素,但两个包间却没有依赖关系,那么工具产生访问冲突列表。,11.5创建包图,合并,分解,消除循环依赖的示例,11.6包图建模技术,对成组的元素建模对体系结构视图建模,11.6对成组的元素建模,浏览特定体系结构视图中的建模元素,找出由在概念和语义上相互接近的元素所定义的组块。把每一个这样的组块放到一个包中。对每一个包找出可以在包外访问的元素,将这些元素标记为公有的,把其他的元素标记为受保护的或私有的。如果不确定时,就隐藏该元素。确定包与包之间的依赖关系,特别是引入依赖。确定包与包之间的泛化关系,以及包的多重性和重载。,11.6对体系结构视图建模,找出问题语境中一组有意义的体系结构视图。找出对于可视化、详述、构造和文档化每个视图的语义来说充分必要的元素(和图),并将它们放到合适的包中。如有必要,将这些元素进一步地组合到它们自己的包中。不同视图中的元素之间通常存在依赖关系。体系结构是一个软件系统的核心逻辑结构,常用的体系结构模式包括分层、MVC、管道、黑板、微内核等,而在应用软件中,分层和MVC是最常见的两种结构。在分层的体系结构中,最常见的划分是表示层(present)、逻辑层(business或domain)、数据层(包括数据访问、日记等)。如果采用分层体系结构,我们就把每一层用一个包来表示。,11.7实例图书馆管理系统的包图,使用RationalRose绘制包图的步骤图书馆管理系统的包图,11.7使用RationalRose绘制包图的步骤,1.创建包2.修改包的属性3.增加包的信息4.添加包之间的输入依赖5.删除包,11.7图书馆管理系统的包图,包图的改进,小结,解释了几种常见的包图表示法,说明了包的可见性、依赖关系、泛化等概念;概要地说明了五种包的构造型。说明如何寻找包、确定包之间的依赖关系,从而绘制了出一个表明软件体系结构的包图。简要介绍了用包图表示系统体系结构的建模方法。,第11讲对象图,11.1什么是对象,11.2对象图的概念,11.3对象的表示,11.4链接的表示,11.5阅读对象图的方法,11.1什么是对象,1对象,2对象的特点:,状态:对象在某一时刻,对象所有属性值的集合。,行为:没有一个对象是孤立存在的,对象可以被操作,也可以操作别的对象。而行为就是一个对象根据它的状态改变和消息传送所采取的行动和所做出的反应。,标识:为了将一个对象与其它所有对象区分开来,我们通常会给它起一个“标识”。,对象是一个类的实例,是具有具体属性值的一个具体事物。所有的对象都有属性,例如汽车有厂家、型号、颜色和价格。狗有种类、年龄、颜色和喜欢的玩具。,11.1什么是对象,3对象与类的区别,(1)对象是一个存在于时间和空间中的具体实体,而类是一个模型,该模型抽象出对象的“本质”:一组公共属性和一组公共方法。,(2)类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体。,11.2对象图的概念,1.对象图的定义,对象图,对象图是描述对象及其关系的图。对象图可以看作类图在某一时刻的实例。几乎使用与类图完全相同的标识。他们的不同点在于,对象图显示类的多个对象实例,而不是实际的类。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。,11.2对象图的概念,2.对象图的作用,对象图常用来描述业务或软件系统在某一时刻对象的组成、结构和关系。,3.对象图的组成元素,组成对象图的元素有:对象、链接、注释、约束。链接把多个对象连接在一起构成一个对象图。,11.3对象的表示,UML中,表示一个对象,主要是标识它的名称、属性。,对象名,属性名=属性值,对象的表示(一),对象由一个矩形表示,它包含2栏,在第一栏写入对象名,在第二栏列出属性名及属性值,格式如:”属性名=属性值”,(1)对象名:类名对象名在前,类名在后,用冒号来连接。对象名和类名都加下划线。,11.3对象的表示,(2):类名这是对匿名对象的表示方法。这种格式用于尚未给对象取名的情况,前面的冒号不能省略。,匿名对象,属性名=属性值,对象的表示(二),对象的表示(三),(3)对象名省略格式,即省略掉类名。只有对象名,对象名必须加下划线。,11.4链接的表示,链接是两个对象间的语义关系。对象图中,对象间的关系称为链接。关联是两个类间的关系。就象对象是类的实例一样,链接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国交通运输设备行业发展展望及投资策略报告
- 2024年大学一年级智能应急技术专业《应急智能监测》期末考试测验卷及答案
- 2024年大学一年级量子通信技术专业《通信技术应用》期末考试测验卷及答案
- 采煤支护工安全意识能力考核试卷含答案
- 《GBT 30428.4-2016 数字化城市管理信息系统 第 4 部分:绩效评价》专题研究报告
- 化工蒸馏工创新实践竞赛考核试卷含答案
- 公司有色金属熔池熔炼炉工岗位标准化技术规程
- 煤调湿工岗前岗中考核试卷含答案
- 公司露天矿采矿前装机司机岗位标准化技术规程
- 《GBT 3960-2016 塑料 滑动摩擦磨损试验方法》专题研究报告
- 皮肤鳞癌NCCN指南中文版2021v2
- GB/T 27843-2011化学品聚合物低分子量组分含量测定凝胶渗透色谱法(GPC)
- GB 4053.2-2009固定式钢梯及平台安全要求第2部分:钢斜梯
- FujiNXT基础教程课件
- 无痛人流同意书及记录单
- 实用针灸美容学
- 房屋租赁合同(精简版-)
- 医药代表专业拜访技巧
- 《生产运作与管理》教案(完整版)
- 2010904-天赋少年教育计划:美国斯坦福大学EPGY课程述评
- 电业安全工作规程——电气部分电业安全工作规程
评论
0/150
提交评论