版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第11讲讲 包图及对象图包图及对象图第1页/共52页在windows中文件夹有什么作用?对文件进行分类管理避免了命名冲突第2页/共52页 一、包的作用 一个程序往往包含了很多个类,那么如何管理这些类就成了一个需要解决的问题(分组机制) 这些类可能由不同的程序员进行建立,当把这些类合并成一个大系统时,往往会产生命名冲突(类名冲突) 包的两个作用:分组机制,命名空间。Java: 包(package)C#: 命名空间(namespace)第3页/共52页C#中引入命名空间:using 命名空间名;C#中定义命名空间:namespace 命名空间名 第4页/共52页using System;usin
2、g System.Collections.Generic;using System.Text;namespace scoreA class A class B class C 引入包定义包第5页/共52页11 .1 包图的概念11.2 包的表示11.3 包图中的关系11.4 阅读包图11.5 创建包图11.6 包图建模第6页/共52页11.1 包图的概念模型的组织结构系统的三层结构先分层再细分成包的方式用户界面代表与用户进行交互的界面业务逻辑层用来处理系统的业务流程数据访问层是程序中和数据库进行交互的层第7页/共52页11.1 包图的概念 对复杂系统进行建模时,经常需要处理大量的类、接口、组件
3、、节点和图,有必要将这些元素进行分组,就是把语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型,而且也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素隐藏在包内。第8页/共52页11.1 包图的概念1.包图 包图是描述包与包之间关系的图。包图可以包括注释、约束。包间的关系有依赖关系和泛化关系。包图第9页/共52页11.1 包图的概念2. 包图的作用 1)对语义上相关的元素进行分组。 2)提供配置管理单元。 3)在设计时,提供并行工作的单元。 4)提供封装的命名空间。3. 包图中的元素 在包中可以拥有各种其他元素,包括类、接口、构件、节点、协作、用例,甚至
4、是其它子包或图 。一个元素只能属于一个包。第10页/共52页11.2 包的表示 UML中,用文件夹符号来表示一个包,它包含2栏。PageNamePageNameClassName-1ClassName-2.PageName类名Rose常用表示法包名放在第一栏在第二栏画出所包含的类图形表示第二栏列出包含的类名包名放在第二栏System:WebUIclass嵌套包包的表示法第11页/共52页11.2 包的表示1. 包的名称UISystem:Web:UI简单名含路径名(全名) 每个包必须有一个与其他包相区别的名称。标识包名称的格式有两种:简单名和全名。简单名:仅包含一个包的简单名称;全名:用该包的外
5、围包的名字作为前缀,加上包本身的名字。第12页/共52页11.2 包的表示 2. 包的元素 在一个包中可以拥有各种元素,包括类、接口、构件、节点、协作、用例,甚至是其他包或图。这是一种组成关系,意味着元素是在这个包中声明的,一个元素只能属于一个包。 每一个包就意味着一个独立的命名空间,两个不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。 在包中表示拥有的元素时,有两种方法:一是在第二栏中列出所属元素名,二是在第二栏中画出所属元素的图形表示。第13页/共52页11.2 包的表示 3. 包的可见性 像类中的属性和方法一样,包中的元素也有可见性,包内元素的可见性控制了
6、包外部元素访问包内部元素的权限。包包A中元素的可见中元素的可见性性包包B中元素的访问权限中元素的访问权限+若B引用了A,则B中的任何元素可以访问A中可见性是+的元素#若B继承了A,则B中的任何元素可以访问A中可见性是#的元素-可见性是-的元素,只能被同一个包中的其它元素访问可见性与访问权限(假设包B中的元素访问包A中的元素)第14页/共52页Public(+): 可在其他任何包中使用Private(-): 只能在该包中使用Protected(#): 可以在该包和该包的子包中使用第15页/共52页11.2 包的表示 包内元素的可见性,标识了外部元素访问包内元素的权限。包元素的可见性第16页/共5
7、2页11.2 包的构造型构造型用途虚包(faade)描述一个只引用其他包内元素的包框架(framework)描述一个主要由模式组成的包桩(stub)描述一个作为另一个包的公共内容代理的包子系统(subsystem)描述一个表示正在建模中的整个系统的一个独立部分的包系统(system)描述一个表示正在建模中的整个系统的包第17页/共52页11.3 包图中的关系包图中的关系包括依赖关系和泛化关系。1 依赖关系 依赖关系又可以分为4种。在依赖关系中 ,我们把箭尾端的包称为客户包,把箭头端的包称为提供者包。1)use关系 use关系是一种默认的依赖关系 ,说明客户包(箭尾端的包)中的元素以某种方式使用
8、提供者包(箭头端的包)的公共元素,也就是说客户包依赖于提供者包。如果没有指明依赖类型,则默认为use关系。2) import关系:允许一个包中的元素可以单向访问另一包中的元素 import关系是最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素。 import关系使命名空间合并,当提供者包中的元素具有与客户包中的元素相同的名称时,将会导致命名空间的冲突。这也意味着,当客户包的元素引用提供者包的元素时,将无需使用全称,只需使用元素名称即可。第18页/共52页当包A将包B导入时,包A中的元素可以直接访问包B中的元素,而不必在每次使
9、用时用完整的路径名。11.3 包的导入第19页/共52页using space1;using space2;namespace space3 /第三个命名空间 DownCount dc = new DownCount(10); UpCount uc = new UpCount(10); /using space1;/using space2;namespace space3 /第三个命名空间 dc = new space1.DownCount(10); uc = new space2.UpCount(10); 第20页/共52页第21页/共52页11.3 包图中的关系3) access关系 如
10、果只想使用提供者包中的元素,而不想将两个包合并,则应使用该关系。在客户包中必须使用路径名,才能访问提供者包中的所有公共元素。)trace关系: 想表示一个包到另一个包的历史发展,则需要使用trace关系来表示。2泛化关系 包间的泛化关系类似于类间的泛化关系,使用一般包的地方,可以用特殊包代替。 在系统设计中,对某一个特定的功能,有多种实现方法。例如,实现多数据库支持;实现B/S和C/S双界面。这时就需要定义一些高层次的“抽象包”和实现高层次功能的“实现包”。第22页/共52页11.3 包图中的关系第23页/共52页11.4 阅读包图阅读包图的方法: 1.了解每个包的语义,及其它包含的元素语义。
11、 2.理解包间的关系。 3.找到依赖关系复杂的包,从最复杂的包开始阅读,然后依次是简单的包。第24页/共52页11.4 阅读包图阅读包图第25页/共52页11.5 创建包图绘制包图的基本过程主要有三个步骤:(1)寻找包;(2)确定包之间的关系;(3)标出包内元素的可见性。绘制包图的“最小化系统间的耦合关系”的原则: 最大限度减少包之间的依赖,包封装时,避免包之间的循环依赖;最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。第26页/共52页11.5 创建包图1 包的划分方法(1)识别底层包 把语义上接近并倾向于一起变化的元素放在一个包中。例如,把
12、具有泛化关系的一组类放在一个包中。把独立的模型元素暂放在一个包中。(2)合并包 如果底层包数量过多,则合并为高层包。若底层包之间在概念上接近或具有较强的相关性,从作用上属于某项大的功能,在图上有较强的耦合度,或在分布上处于同一台处理机,则考虑把它们合并。良好包结构的关键是包内高内聚,包间低耦合。第27页/共52页11.5 创建包图2 消除循环包依赖 应该尽量避免包模型中的循环依赖。如果包A以某种方式依赖包B,并且包B以某种方式依赖包A,就应该合并这两个包,这是消除循环依赖非常有效的方法。但是经常起作用的、更好的方法是,努力分解公共元素成为第三个包C。重新计算依赖关系,以消除循环依赖。 很多建模
13、工具允许自动验证包间依赖。如果一个包中的元素访问另一个包中的元素,但两个包间却没有依赖关系,那么工具产生访问冲突列表。第28页/共52页11.5 创建包图AB合并 分解 ABC消除循环依赖的示例A,B包合并第29页/共52页11.6 包图建模技术 对成组的元素建模 对体系结构视图建模第30页/共52页11.6 对成组的元素建模 浏览特定体系结构视图中的建模元素,找出由在概念和语义上相互接近的元素所定义的组块。 把每一个这样的组块放到一个包中。 对每一个包找出可以在包外访问的元素,将这些元素标记为公有的,把其他的元素标记为受保护的或私有的。如果不确定时,就隐藏该元素。 确定包与包之间的依赖关系,
14、特别是引入依赖。 确定包与包之间的泛化关系,以及包的多重性和重载。第31页/共52页11.6 对体系结构视图建模 找出问题语境中一组有意义的体系结构视图。找出对于可视化、详述、构造和文档化每个视图的语义来说充分必要的元素(和图),并将它们放到合适的包中。如有必要,将这些元素进一步地组合到它们自己的包中。不同视图中的元素之间通常存在依赖关系。体系结构是一个软件系统的核心逻辑结构,常用的体系结构模式包括分层、MVC、管道、黑板、微内核等,而在应用软件中,分层和MVC是最常见的两种结构。在 分 层 的 体 系 结 构 中 , 最 常 见 的 划 分 是 表 示 层 ( p r e s e n t )
15、 、 逻 辑 层(business或domain)、数据层(包括数据访问、日记等)。如果采用分层体系结构,我们就把每一层用一个包来表示。第32页/共52页11.7 实例图书馆管理系统的包图 使用Rational Rose绘制包图的步骤 图书馆管理系统的包图第33页/共52页11.7 使用Rational Rose绘制包图的步骤 1. 创建包 2. 修改包的属性 3. 增加包的信息 4. 添加包之间的输入依赖 5. 删除包第34页/共52页11.7 图书馆管理系统的包图 第35页/共52页包图的改进第36页/共52页小结 解释了几种常见的包图表示法,说明了包的可见性、依赖关系、泛化等概念;概要地
16、说明了五种包的构造型。 说明如何寻找包、确定包之间的依赖关系,从而绘制了出一个表明软件体系结构的包图。 简要介绍了用包图表示系统体系结构的建模方法。第37页/共52页第第11讲讲 对象图对象图第38页/共52页11.1 什么是对象11.2 对象图的概念11.3 对象的表示11.4 链接的表示11.5 阅读对象图的方法第39页/共52页11.1 什么是对象1对象2对象的特点:状态:对象在某一时刻,对象所有属性值的集合。 行为:没有一个对象是孤立存在的,对象可以被操作,也可以操作别的 对象。而行为就是一个对象根据它的状态改变和消息传送所采取 的行动和所做出的反应 。标识:为了将一个对象与其它所有对
17、象区分开来,我们通常会给它起一 个“标识”。 对象是一个类的实例,是具有具体属性值的一个具体事物。所有的对象都有属性,例如汽车有厂家、型号、颜色和价格。狗有种类、年龄、颜色和喜欢的玩具。第40页/共52页11.1 什么是对象3对象与类的区别(1)对象是一个存在于时间和空间中的具体实体,而类是一个模型,该模型抽象出对象的“本质”:一组公共属性和一组公共方法。 (2)类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体 。第41页/共52页杨军:Teacher刘小红:Student教学者学习者11.2 对象图的概念 1.对象图的定义对象图 对象图是描述对象
18、及其关系的图。对象图可以看作类图在某一时刻的实例。几乎使用与类图完全相同的标识。他们的不同点在于,对象图显示类的多个对象实例,而不是实际的类。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。第42页/共52页11.2 对象图的概念2.对象图的作用 对象图常用来描述业务或软件系统在某一时刻对象的组成、结构和关系。3.对象图的组成元素 组成对象图的元素有:对象、链接、注释、约束。链接把多个对象连接在一起构成一个对象图。第43页/共52页11.3 对象的表示 UML中,表示一个对象,主要是标识它的名称、属性。李小平:Personname = “李小平”birthday = 21 October 1983 对象名属性名=属性值对象的表示(一) 对象由一个矩形表示,它包含2栏,在第一栏写入对象名,在第二栏列出属性名及属性值,格式如:”属性名=属性值”(1)对象名:类名 对象名在前,类名在后,用冒号来连接。对象名和类名都加下划线。第44页/共52页11.3 对象的表示(2):类名 这是对匿名对象的表示方法。这种格式用于尚未给对象取名的情况,前面的冒号不能省略。:Personname = “ ”birthday = 21 October 1983 匿名对象属性名=属性值李小平name = “李小平”birthday = 21 October 1983 对象的表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB1306T 300-2025 公园养护管理规范
- 2025年编辑撰稿人岗位招聘面试参考试题及参考答案
- 2025年交流与传播经理岗位招聘面试参考试题及参考答案
- 2025年社交运营专员岗位招聘面试参考题库及参考答案
- 襄阳电梯考试题目及答案
- 2025年护士专业考试真题及答案
- 2025年母婴护理专员岗位招聘面试参考题库及参考答案
- 2025年生物信息学专家岗位招聘面试参考题库及参考答案
- 2025年案例分析师岗位招聘面试参考试题及参考答案
- 2025年合作伙伴关系经理岗位招聘面试参考题库及参考答案
- DB34∕T 3831-2021 城市污水处理厂节能降耗运行技术规范
- 广州地铁地盘管理办法
- 亚洲合作资金管理办法
- DB51∕T 3267-2025 公路应急抢通保通技术规程
- 轮廓固定培训课件
- CJ/T 340-2016绿化种植土壤
- 团建酒店住宿协议书
- 2025-2030年中国农药行业市场深度调研及发展趋势和前景预测研究报告
- 夫妻忠诚协议书合同
- 2025年全国高压电工证(复审)理论考试试题(1000题)附答案
- 中小学食堂财务管理培训讲座
评论
0/150
提交评论