版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章包图5.1包图的概念(gàiniàn)5.2包的表示(biǎoshì)5.3包图中的关系5.4阅读包图5.5创建包图5.6包图建模共三十一页5.1包图的概念(gàiniàn)1.包包就像一个“容器”,可用于组织(zǔzhī)模型中的相关元素,以便容易理解。将相关的各种类型的模型元素组织成组的通用机制。包的实例没有任何语义。仅在建模时有意义,而不必转换到可执行的系统中。共三十一页5.1包图的概念(gàiniàn)2.包图描述(miáoshù)包及其关系的图。图5-1是一个典型的包图。包图(PackageDiagram)是维护和控制系统总体结构的重要建模工具。共三十一页5.1包图的概念(gàiniàn)3.包的作用对语义上相关的元素进行(jìnxíng)分组。提供配置管理单元。提供并行工作的单元。提供封装的命名空间,同一个包中,其元素的名称必须唯一。共三十一页5.1包图的概念(gàiniàn)3.包中的元素包中的元素:类、接口、组件、节点、协作、用例、图以及其他包。一个模型元素不能被一个以上(yǐshàng)的包所拥有。如果包被撤销,其中的元素也要被撤销。共三十一页5.2包的表示(biǎoshì)1.包的符号表示UML中,用文件夹符号来表示一个包。包由一个矩形表示,它包含2栏。最常见(chánɡjiàn)的几种包的表示法,如图5-2所示:PackageNamePackageNameClassName-1ClassName-2…..PackageName类名Rose常用表示法包名放在第一栏在第二栏画出所包含的类图形表示第二栏列出包含的类名包名放在第二栏共三十一页5.2包的表示(biǎoshì)1.包的符号(fúhào)表示嵌套包及其表示一个包可以包含其他的包;嵌套包可以访问自身的元素;应尽量避免使用嵌套包,一般2-3层最好。LibraryUsers嵌套包LibrarianBorrower共三十一页5.2包的表示(biǎoshì)1.包的符号(fúhào)表示嵌套包及其表示外部表示法共三十一页5.2包的表示(biǎoshì)2.包的名称每个包必须有一个与其他(qítā)包相区别的名称。两种形式:简单名和路径。System:Web:UISystem.Web.UI共三十一页5.2包的表示(biǎoshì)3.包的元素在一个包中可以拥有(yōngyǒu)各种其他元素,这是一种组成关系。每一个包就意味着一个独立的命名空间,两个不同的包,可以具有相同的元素名。在包中表示拥有的元素时,有两种方法:一种是在第二栏中列出所属元素名,一种是在第二栏中画出所属元素的图形表示。共三十一页5.2包的表示(biǎoshì)4.包的可见性公有的(public)“+”受保护(bǎohù)的(protected)“#”私有的(private)“-”共三十一页5.2包的表示(biǎoshì)可见性含义前缀符号公有的Public此元素可以被任何引用该包的包中的元素访问。+受保护的Protected此元素可被继承该包的包中的元素访问。#私有的private此元素只能被同一个包中的元素访问。-4.包的可见性包内元素(yuánsù)的可见性控制了包外部元素(yuánsù)访问包内部元素(yuánsù)的权限。共三十一页5.3包图中的关系(guānxì)包之间可以(kěyǐ)有两种关系:
引用和访问依赖:在一个包中引入另一个包输出的元素泛化:说明包的家族共三十一页5.3包图中的关系(guānxì)1.依赖关系使用关系《use》:说明客户包中的元素以某种方式使用提供者包的公共元素。包含(bāohán)关系《import》:提供者包命名空间的公共元素被添加为客户包命名空间上的公共元素访问关系《access》:提供者包命名空间的公共元素被添加为客户包命名空间上的私有元素。客户提供者共三十一页5.3包图中的关系(guānxì)1.依赖关系(guānxì)④
跟踪关系《trace》:通常表示一个元素历史地发展成为另一个进化版本。分析模型是设计模型的元模型,元模型的元素进化为设计模型,这时指的是模型之间的关系,不是元素之间的关系。分析模型设计模型元模型共三十一页5.3包图中的关系(guānxì)2.泛化关系(guānxì)包间的泛化关系与类之间的泛化关系类似。共三十一页5.4阅读(yuèdú)包图阅读包图的方法如下:了解(liǎojiě)每个包的语义及其包含元素语义。理解包间的关系。找到依赖复杂的包,从最复杂的包开始阅读,然后依次是简单的包。共三十一页5.4阅读(yuèdú)包图共三十一页举例(jǔlì)例子描述分析系统工作流程:
1)通过Internet连接到股票信息服务器,获取实时的股票信息,并存入数据库中。
2)根据用户的输入和选择,从数据库中获取相应的信息,展现(zhǎnxiàn)在屏幕中。
3)在数据的展现过程中,将需要绘制大量的图表。共三十一页举例(jǔlì)根据(gēnjù)功能模块组织包:
包分析与功能.NET支持包SocketClient负责连接Internet服务器,获取实时股票信息System.Net.SocketsDataAccess负责从数据库读写实时股票信息System.Data.SqlclientUI负责响应用户输入和选择,并展现信息System.Windows.FormsGraphicGenerate负责根据数据库的信息生成相应的图表System.Drawing共三十一页共三十一页举例(jǔlì)业务(yèwù)
呈现数据共三十一页设计(shèjì)包的原则
在考虑如何对类进行分组并放入不同(bùtónɡ)的包时,主要依据类之间的依赖关系进行分组。包中的类应该是功能相关的,在建包时,应把概念上和语义上相近的模型元素纳入一个包。依赖关系其实是耦合的一种体现,如果两个包中的类之间存在依赖关系,那么这两个包之间就有了依赖关系,也就存在耦合关系。好的设计要求体现高内聚、低耦合的特性。共三十一页设计(shèjì)包的原则设计包时,应遵循(zūnxún)以下原则:重用等价原则共同闭包原则共同重用原则非循环依赖原则共三十一页设计(shèjì)包的原则重用等价原则
——把类放入包中时,应考虑把包作为可重用的单元。共同闭包原则
——把那些需要同时改变的类放在同一个包中。若一个类的行为或结构的改变要求另一个类做相应的改变;删除(shānchú)了一个类后,另一个类成多余的;两个类之间有大量的消息发送。共三十一页设计(shèjì)包的原则共同重用原则
——把不会(bùhuì)一起使用的类不要放在同一个包中。非循环依赖原则
——包之间的依赖关系不要形成循环。共三十一页设计(shèjì)包的原则
合并(hébìng)
分解
消除循环依赖的示例共三十一页5.4创建(chuàngjiàn)包图绘制包图的基本(jīběn)步骤如下:①分析系统的模型元素(通常是对象类),把概念上或语义上相近的模型元素归入同一个包。②对于每一个包,标出其模型元素的可视性,确定包内每个元素的访问属性,是公共、保护或私有。③确定包与包之间的依赖联系,特别是“引入”关系。④确定包与包之间的泛化关系。⑤绘制包图。⑥对结果进行精化和细化。共三十一页整个系统大致划分成以下4个包:SystemService:包含(bāohán)读者、管理员以及借书相关业务相关的用例、类等信息;SystemUI:包含操作界面、窗体相关的用例、类等信息;SystemCommonUtilities:包括系统提供的公共用例、类等信息。SystemDataBase:包括数据库操作相关的用例、类等信息;图书馆系统(xìtǒng)的包图共三十一页小结(xiǎojié)首先解释了几种常见的包图表示法之后,通过了一个简单的例子来说明包的可见性、依赖关系、泛化等概念;其次,概要(gàiyào)地说明了四种包的构造型。说明如何寻找包、确定包之间的依赖关系,从而绘制了出一个表明软件体系结构的包图。共三十一页内容(nèiróng)总结第5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球光学透明粘合带行业调研及趋势分析报告
- 2025合同范本劳务派遣合同模板书人力资源和企业新
- 2025用户服务合同
- 2025委托律师代理合同范本范文
- 土地转让居间合同
- 2025【合同范本】运输道路交通货物合同
- 美容师劳动合同书
- 消杀服务合同范文
- 2025公司用工合同范本
- 战略合作协议书合同
- 第1课+古代亚非(教学设计)【中职专用】《世界历史》(高教版2023基础模块)
- 新教科版六年级下册科学全册教案
- 物业客服管家的培训课件
- 2024年房地产行业的楼市调控政策解读培训
- 《统计学-基于Python》 课件全套 第1-11章 数据与Python语言-时间序列分析和预测
- 《GMP实务教程》 完整全套教学课件 项目1-14 GMP基础知识-药品生产行政检查
- 装饰定额子目(河南省)
- 【高速铁路乘务工作存在的问题及对策研究9800字】
- 北师大版英语课文同步字帖三年级下册课文对话原文及翻译衡水体英语字帖三年级起点
- GB/T 2550-2016气体焊接设备焊接、切割和类似作业用橡胶软管
- GB/T 21295-2014服装理化性能的技术要求
评论
0/150
提交评论