版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 一、包的作用 一个程序往往包含了很多个类,那么如何管理这些类就成了一个需要解决的问题(分组机制) 这些类可能由不同的程序员进行(jnxng)建立,当把这些类合并成一个大系统时,往往会产生命名冲突(类名冲突) 包的两个作用:分组机制,命名空间。Java: 包(package)C#: 命名(mng mng)空间(namespace)第1页/共51页第一页,共52页。C#中引入命名(mng mng)空间:using 命名(mng mng)空间名;C#中定义命名(mng mng)空间:namespace 命名(mng mng)空间名 第2页/共51页第二页,共52页。using System;usi
2、ng System.Collections.Generic;using System.Text;namespace scoreA class A class B class C 引入包定义(dngy)包第3页/共51页第三页,共52页。11 .1 包图的概念(ginin)11.2 包的表示(biosh)11.3 包图中的关系(gun x)11.4 阅读包图11.5 创建包图11.6 包图建模第4页/共51页第四页,共52页。11.1 包图的概念(ginin)模型的组织(zzh)结构系统(xtng)的三层结构先分层再细分成包的方式用户界面代表与用户进行交互的界面业务逻辑层用来处理系统的业务流程数
3、据访问层是程序中和数据库进行交互的层第5页/共51页第五页,共52页。11.1 包图的概念(ginin) 对复杂系统进行建模时,经常需要处理大量的类、接口、组件、节点和图,有必要(byo)将这些元素进行分组,就是把语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型,而且也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素隐藏在包内。第6页/共51页第六页,共52页。11.1 包图的概念(ginin)1.包图 包图是描述包与包之间关系的图。包图可以包括注释、约束(yush)。包间的关系有依赖关系和泛化关系。包图第7页/共51页第七页,共52页。11.1 包图
4、的概念(ginin)2. 包图的作用(zuyng) 1)对语义上相关的元素进行分组。 2)提供配置管理单元。 3)在设计时,提供并行工作的单元。 4)提供封装的命名空间。3. 包图中的元素 在包中可以拥有各种其他元素,包括类、接口、构件、节点、协作、用例,甚至是其它(qt)子包或图 。一个元素只能属于一个包。第8页/共51页第八页,共52页。11.2 包的表示(biosh) UML中,用文件夹符号(fho)来表示一个包,它包含2栏。PageNamePageNameClassName-1ClassName-2.PageName类名(li mn)Rose常用表示法包名放在第一栏在第二栏画出所包含的
5、类图形表示第二栏列出包含的类名包名放在第二栏System:WebUIclass嵌套包包的表示法第9页/共51页第九页,共52页。11.2 包的表示(biosh)包的名称(mngchng)UISystem:Web:UI简单名含路径名(全名) 每个包必须有一个与其他(qt)包相区别的名称。标识包名称的格式有两种:简单名和全名。简单名:仅包含一个包的简单名称;全名:用该包的外围包的名字作为前缀,加上包本身的名字。第10页/共51页第十页,共52页。11.2 包的表示(biosh) 2. 包的元素(yun s) 在一个包中可以拥有各种元素,包括(boku)类、接口、构件、节点、协作、用例,甚至是其他包
6、或图。这是一种组成关系,意味着元素是在这个包中声明的,一个元素只能属于一个包。 每一个包就意味着一个独立的命名空间,两个不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。 在包中表示拥有的元素时,有两种方法:一是在第二栏中列出所属元素名,二是在第二栏中画出所属元素的图形表示。第11页/共51页第十一页,共52页。11.2 包的表示(biosh) 3. 包的可见性 像类中的属性和方法一样,包中的元素(yun s)也有可见性,包内元素(yun s)的可见性控制了包外部元素(yun s)访问包内部元素(yun s)的权限。包包A中元素的可见中元素的可见性性包包B中元素的
7、访问权限中元素的访问权限+若B引用了A,则B中的任何元素可以访问A中可见性是+的元素#若B继承了A,则B中的任何元素可以访问A中可见性是#的元素-可见性是-的元素,只能被同一个包中的其它元素访问可见性与访问权限(qunxin)(假设包B中的元素访问包A中的元素)第12页/共51页第十二页,共52页。Public(+): 可在其他任何包中使用Private(-): 只能(zh nn)在该包中使用Protected(#): 可以在该包和该包的子包中使用第13页/共51页第十三页,共52页。11.2 包的表示(biosh) 包内元素的可见性,标识(biozh)了外部元素访问包内元素的权限。包元素(y
8、un s)的可见性第14页/共51页第十四页,共52页。11.2 包的构造型构造型用途虚包(faade)描述一个只引用其他包内元素的包框架(framework)描述一个主要由模式组成的包桩(stub)描述一个作为另一个包的公共内容代理的包子系统(subsystem)描述一个表示正在建模中的整个系统的一个独立部分的包系统(system)描述一个表示正在建模中的整个系统的包第15页/共51页第十五页,共52页。11.3 包图中的关系(gun x)包图中的关系(gun x)包括依赖关系(gun x)和泛化关系(gun x)。1 依赖(yli)关系 依赖关系又可以分为4种。在依赖关系中 ,我们把箭尾端
9、的包称为客户包,把箭头端的包称为提供者包。1)use关系 use关系是一种默认的依赖关系 ,说明客户包(箭尾端的包)中的元素以某种方式使用提供者包(箭头端的包)的公共元素,也就是说客户包依赖于提供者包。如果没有指明依赖类型,则默认为use关系。2) import关系:允许一个包中的元素可以单向访问另一包中的元素 import关系是最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素。 import关系使命名空间合并,当提供者包中的元素具有与客户包中的元素相同的名称时,将会导致命名空间的冲突。这也意味着,当客户包的元素引用提供者包
10、的元素时,将无需使用全称,只需使用元素名称即可。第16页/共51页第十六页,共52页。当包A将包B导入时,包A中的元素(yun s)可以直接访问包B中的元素(yun s),而不必在每次使用时用完整的路径名。11.3 包的导入第17页/共51页第十七页,共52页。using space1;using space2;namespace space3 /第三个命名(mng mng)空间 DownCount dc = new DownCount(10); UpCount uc = new UpCount(10); /using space1;/using space2;namespace space3
11、 /第三个命名(mng mng)空间 space1.DownCount dc = new space1.DownCount(10); space2.UpCount uc = new space2.UpCount(10); 第18页/共51页第十八页,共52页。第19页/共51页第十九页,共52页。11.3 包图中的关系(gun x)3) access关系 如果(rgu)只想使用提供者包中的元素,而不想将两个包合并,则应使用该关系。在客户包中必须使用路径名,才能访问提供者包中的所有公共元素。)trace关系: 想表示一个包到另一个包的历史发展(fzhn),则需要使用trace关系来表示。2泛化关
12、系 包间的泛化关系类似于类间的泛化关系,使用一般包的地方,可以用特殊包代替。 在系统设计中,对某一个特定的功能,有多种实现方法。例如,实现多数据库支持;实现B/S和C/S双界面。这时就需要定义一些高层次的“抽象包”和实现高层次功能的“实现包”。第20页/共51页第二十页,共52页。11.3 包图中的关系(gun x)第21页/共51页第二十一页,共52页。11.4 阅读(yud)包图阅读包图的方法: 1.了解每个包的语义,及其它包含的元素(yun s)语义。 2.理解包间的关系。 3.找到依赖关系复杂的包,从最复杂的包开始阅读,然后依次是简单的包。第22页/共51页第二十二页,共52页。11.
13、4 阅读(yud)包图阅读(yud)包图第23页/共51页第二十三页,共52页。11.5 创建(chungjin)包图绘制(huzh)包图的基本过程主要有三个步骤:(1)寻找包;(2)确定包之间的关系;(3)标出包内元素的可见性。绘制包图的“最小化系统间的耦合关系”的原则: 最大限度(xind)减少包之间的依赖,包封装时,避免包之间的循环依赖;最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。第24页/共51页第二十四页,共52页。11.5 创建(chungjin)包图1 包的划分(hu fn)方法(1)识别底层包 把语义上接近并倾向于一起(yq
14、)变化的元素放在一个包中。例如,把具有泛化关系的一组类放在一个包中。把独立的模型元素暂放在一个包中。(2)合并包 如果底层包数量过多,则合并为高层包。若底层包之间在概念上接近或具有较强的相关性,从作用上属于某项大的功能,在图上有较强的耦合度,或在分布上处于同一台处理机,则考虑把它们合并。良好包结构的关键是包内高内聚,包间低耦合。第25页/共51页第二十五页,共52页。11.5 创建(chungjin)包图2 消除(xioch)循环包依赖 应该尽量避免包模型中的循环依赖。如果包A以某种方式依赖包B,并且包B以某种方式依赖包A,就应该合并这两个包,这是消除循环依赖非常有效(yuxio)的方法。但是
15、经常起作用的、更好的方法是,努力分解公共元素成为第三个包C。重新计算依赖关系,以消除循环依赖。 很多建模工具允许自动验证包间依赖。如果一个包中的元素访问另一个包中的元素,但两个包间却没有依赖关系,那么工具产生访问冲突列表。第26页/共51页第二十六页,共52页。11.5 创建(chungjin)包图合并(hbng) 分解(fnji) 消除循环依赖的示例A,B包合并第27页/共51页第二十七页,共52页。11.6 包图建模技术(jsh) 对成组的元素(yun s)建模 对体系结构视图建模第28页/共51页第二十八页,共52页。11.6 对成组的元素(yun s)建模浏览特定体系结构视图中的建模元
16、素,找出由在概念和语义上相互接近的元素所定义的组块。把每一个这样的组块放到一个包中。对每一个包找出可以在包外访问的元素,将这些(zhxi)元素标记为公有的,把其他的元素标记为受保护的或私有的。如果不确定时,就隐藏该元素。确定包与包之间的依赖关系,特别是引入依赖。确定包与包之间的泛化关系,以及包的多重性和重载。第29页/共51页第二十九页,共52页。11.6 对体系结构视图(sht)建模 找出问题语境中一组有意义的体系结构视图。找出对于可视化、详述、构造和文档化每个视图的语义来说充分必要的元素(和图),并将它们放到合适的包中。如有必要,将这些元素进一步地组合到它们自己的包中。不同视图中的元素之间
17、通常存在依赖关系。体系结构是一个软件系统的核心逻辑结构,常用的体系结构模式包括分层、MVC、管道、黑板、微内核等,而在应用软件中,分层和MVC是最常见的两种结构。在分层的体系结构中,最常见的划分是表示层(present)、逻辑层(business或domain)、数据层(包括数据访问、日记等)。如果采用分层体系结构,我们(w men)就把每一层用一个包来表示。第30页/共51页第三十页,共52页。11.7 实例(shl)图书馆管理系统的包图 使用(shyng)Rational Rose绘制包图的步骤 图书馆管理系统的包图第31页/共51页第三十一页,共52页。11.7 使用(shyng)Rat
18、ional Rose绘制包图的步骤 1. 创建包 2. 修改包的属性 3. 增加包的信息(xnx) 4. 添加包之间的输入依赖 5. 删除包第32页/共51页第三十二页,共52页。11.7 图书馆管理系统的包图 第33页/共51页第三十三页,共52页。包图的改进(gijn)第34页/共51页第三十四页,共52页。小结(xioji) 解释了几种常见的包图表示法,说明了包的可见性、依赖关系、泛化等概念;概要地说明了五种包的构造型。 说明如何寻找包、确定包之间的依赖关系,从而绘制了出一个表明软件体系结构的包图。 简要(jinyo)介绍了用包图表示系统体系结构的建模方法。第35页/共51页第三十五页,
19、共52页。第11讲 对象(duxing)图第36页/共51页第三十六页,共52页。11.1 什么(shn me)是对象11.2 对象(duxing)图的概念11.3 对象(duxing)的表示11.4 链接的表示11.5 阅读对象图的方法第37页/共51页第三十七页,共52页。11.1 什么(shn me)是对象1对象(duxing)2对象(duxing)的特点:状态:对象在某一时刻,对象所有属性值的集合。 行为:没有一个对象是孤立存在的,对象可以被操作,也可以操作别的 对象。而行为就是一个对象根据它的状态改变和消息传送所采取 的行动和所做出的反应 。标识:为了将一个对象与其它所有对象区分开来
20、,我们通常会给它起一 个“标识”。 对象是一个类的实例,是具有具体属性值的一个具体事物。所有的对象都有属性,例如汽车有厂家、型号、颜色和价格。狗有种类、年龄、颜色和喜欢的玩具。第38页/共51页第三十八页,共52页。11.1 什么(shn me)是对象 3对象(duxing)与类的区别(1)对象是一个存在于时间和空间中的具体(jt)实体,而类是一个模型,该模型抽象出对象的“本质”:一组公共属性和一组公共方法。 (2)类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体 。第39页/共51页第三十九页,共52页。杨军:Teacher刘小红:Student
21、教学者学习者11.2 对象(duxing)图的概念 1.对象(duxing)图的定义对象(duxing)图 对象图是描述对象及其关系的图。对象图可以看作类图在某一时刻的实例。几乎使用与类图完全相同的标识。他们的不同点在于,对象图显示类的多个对象实例,而不是实际的类。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。第40页/共51页第四十页,共52页。11.2 对象(duxing)图的概念2.对象(duxing)图的作用 对象图常用来描述业务或软件系统在某一时刻对象的组成(z chn)、结构和关系。3.对象图的组成元素 组成对象图的元素有:对象、链接、注释、约束。链接把多个对象连接在一
22、起构成一个对象图。第41页/共51页第四十一页,共52页。11.3 对象(duxing)的表示 UML中,表示一个对象,主要(zhyo)是标识它的名称、属性。李小平:Personname = “李小平”birthday = 21 October 1983 对象(duxing)名属性名=属性值对象的表示(一) 对象由一个矩形表示,它包含2栏,在第一栏写入对象名,在第二栏列出属性名及属性值,格式如:”属性名=属性值”(1)对象名:类名 对象名在前,类名在后,用冒号来连接。对象名和类名都加下划线。第42页/共51页第四十二页,共52页。11.3 对象(duxing)的表示(2):类名 这是对匿名对象
23、的表示方法。这种格式(g shi)用于尚未给对象取名的情况,前面的冒号不能省略。:Personname = “ ”birthday = 21 October 1983 匿名(nmng)对象属性名=属性值李小平name = “李小平”birthday = 21 October 1983 对象的表示(二)对象的表示(三)(3)对象名省略格式,即省略掉类名。只有对象名,对象名必须加下划线。第43页/共51页第四十三页,共52页。11.4 链接(lin ji)的表示 链接是两个对象(duxing)间的语义关系。对象(duxing)图中,对象(duxing)间的关系称为链接。关联是两个类间的关系。就象对象(duxing)是类的实例一样,链接是关联的实例。链接分单向链接和双向链接。1双向链接(lin ji)角色:Club小王:Person小陈:Person小刘:Person队长成员秘书双向链接第44页/共51页第四十四页,共52页。11.4 链接(lin ji)的表示2单向(dn xin)链接:PersonDetails:Address源对象目标对象单向链接单向(dn xin)链接第45页/共51页第四十五页,共52页。11.4 链接(lin ji)的表示链接分为普通(ptng)链接和自身关联李明:Student专
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从生理学角度解析学前儿童的情绪管理与调适
- 班级管理班级文化
- 企业内部的安全生产标准化管理团队的构建
- 体育赛事中学校运动队的组织与协调
- 创新思维的商业价值与实现路径
- 创新型小学劳动教育的商业模式与未来趋势
- 部编版三年级语文上册第14课《小狗学叫》精美课件
- 从人、机、环角度谈实验室安全管理
- 科技创新年报
- 患者走失应急预案演练
- 广东省广州市白云区八年级(上)期末数学试卷
- 高等级沥青路面柔性基层
- 2023版数学课程标准
- YY/T 0698.6-2009最终灭菌医疗器械包装材料第6部分:用于低温灭菌过程或辐射灭菌的无菌屏障系统生产用纸要求和试验方法
- GB/T 38509-2020滑坡防治设计规范
- GB/T 13384-2008机电产品包装通用技术条件
- 中医专长医师考核内容有哪些
- 低利率时代家庭财富管理课件
- 隋唐长安课件
- 全国硕士研究生入学统一考试英语(二)模拟卷
- 环境规划学课后习题答案
评论
0/150
提交评论