包对一个较为复杂的系统建模要使用大量的模型元
软件系统分析与设计复习资料参考答案

参考答案选择题1.D2.C3.D4.C5.B6.D7.C8.B9.D10.A11.B12.A13.B14.D15.A16.B17.A18.D19.C20.A21.D22.B23.B24.D25.D26.B27.B28.A29.A30.C31.A32.B33.A34.B35.B36.A37.B38.A39.A40.C41.A42.C43.C44.D45.A46.B47.D48.C49.D50.C51.C52.A53.D54.B55.A56.A57.D58.A59.D60.A61.B62.D63.C64.A65.A66.C67.C68.A69.D70.A71.D72.A73.C74.A75.D判断改错题1.(√)2.(×)有“泳道”概念的是活动图。
3.(×)题目中描述的是CORBA。
4.(×)水平坐标表示一组对象,垂直坐标表示时间顺序。
5.(√)6.(×)UML是建模语言,不是方法论。
7.(√)8.(√)9.(×)两者没有明显分界,需要反复迭代的进行。
10.(×)OOCASE通过外部接口可以方便的调用其它工具软件。
11.(×)定义不同。
12.(√)13.(√)14.(×)完成使命的对象可以被销毁。
15.(×)由图和文字描述组成。
16.(√)17.(×)描述的是白盒复用。
18.(√)19.(F)它不能直接调用EJB构件,而是通过使用代理来调用。
20.(F)不能有嵌套的动作或递归的动作表达式。
21.(T)22.(F)需求模型也是可复用的软件制品。
23.(F)构件图主要用于建立系统的静态实现模型。
24.(F)OOCASE通过外部接口可以方便的调用其它工具软件。
25.(F)“对象+消息”的程序设计模式。
26.(F)通过频繁使用设计样式来设计更大更复杂的系统。
27.(T)28.(T)29.(T)30.(F)协作图强调对象之间的关系,而时序图强调一组对象之间错作调用的时间顺序。
系统分析与设计第2章

计算机
菜单
显示器
CPU
列表框
按钮
内存
键盘
§2.3.2 对象和类的提取和确定
三、类之间的关系 4.接口和实现关系 接口:也是一个类,接口用于描述类或组件必 须实现的契约。 实现关系:一个类元描述了另一个类元保证实 现的契约。
<<interface>> Interface Interface
§2.3.2 对象和类的提取和确定
三、类之间的关系 3.关联关系:关联是一种结构关系,代表类的 对象(实例)之间的一组连接(链)。 (1)关联的属性 ①名称 ②角色:
人员
雇用
公司
§2.3.2 对象和类的提取和确定
三、类之间的关系 ③多重性:通常需要说明一个关联实例中有多少 个相互连接的对象,这就是关联的多重性。
§
2.3.1 对象图、类图
二、对象图 对象图(Object Diagram) 是显示了一组对象和 他们之间的关系。对象图可以看作是类图的一个 实例。 1.对象图的定义 对象图中通常含有:对象和连接。对象图也可 以像其他的图一样,包含注解、约束、包或子系 统。 2.理解对象图的方法 (1) 识别出对象图中所有的类。 (2) 了解每个对象的语义及对象之间连接含 义。
§2.3.2 对象和类的提取和确定
三、类之间的关系 1.泛化(继承)关系 泛化关系指类之间的“一般与特殊关系”。 通常称一般元素为父类,称特殊元素为子类。 子类继承父类的特性(属性、操作、关联等), 同时可以有自己的特性。 单继承 多继承 继承有传递性
客户 学生
个人客户
团体客户
大学生
中学生
§2.1.3加速系统分析法
加速系统分析法强调构造原型,以便更快速地
软件工程练习题库+答案

软件工程练习题库+答案一、单选题(共56题,每题1分,共56分)1.实现虚存最主要的技术是()。
A、整体对换B、整体覆盖C、多道程序设计D、部分对换正确答案:D2.逻辑回归算法通常使用下列哪种方法求解A、统计分析B、梯度下降迭代优化C、直接求解D、相识度计算正确答案:B3.从二叉搜索树中查找一个元素时,其时间复杂度大致为A、O(n)B、O(n2)C、O(1)D、O(log2n)正确答案:D4.下面哪些概念在页式虚拟存储管理系统中一定用到?()A、抖动B、段表C、缺页中断D、联想存储器正确答案:C5.msconfig命令可以用来配置()。
A、系统配置B、协议配置C、服务配置D、应用配置正确答案:A6.执行完当前指令后, PC 中存放的是后继指令的地址,因此 PC 的位数和()的位数相同。
A、指令寄存器B、程序状态字寄存器C、主存地址寄存器D、指令译码器正确答案:C7.下列不属于防火墙核心技术的是()。
A、(静态/动态)包过滤技术B、NAT技术C、应用代理技术D、日志审计正确答案:D8.求 2n 个数中的最大值和最小值,最少的比较次数是A、4n/3B、2n-2C、3n-2D、3n/2正确答案:C9.LSTM网络主要解决了RNN中遇到的哪些问题A、不可并行计算,速度提升B、无法处理语言数据C、可以有选择的记忆D、特征编码稀疏问题正确答案:C10.当你感觉到你的Win2003运行速度明显减慢,当打开任务管理器后发现CPU使用率达到了100%,你认为你最有可能受到了()攻击。
A、缓冲区溢出攻击B、木马攻击C、暗门攻击D、DOS攻击正确答案:D11.A方有一对密钥(KA公开,KA秘密),B方有一对密钥(KB公开,KB秘密),A方向B方发送数字签名M,对信息M加密为:M’= KB 公开(KA秘密(M))。
B方收到密文的解密方案是()。
A、KB公开(KA秘密(M’))B、KA公开(KA公开(M’))C、KA公开(KB秘密(M’))D、KB秘密(KA秘密(M’))正确答案:C12.df.head(6)的含义是A、展示数据中前6条数据B、展示数据中第6条数据C、展示数据中后6条数据D、删除数据中的前6条正确答案:A13.关于机器学习与深度学习的描述正确的是A、深度学习算法不需要对数据进行预处理B、深度学习算法只能应用在计算机视觉与自然语言处理中C、深度学习算法优于机器学习算法D、深度学习算法通常迭代速度较慢正确答案:D14.信息安全中PDR模型的关键因素是()。
simulink常用元器件介绍

Simulink常用元器件介绍Simulink是一种用于建模、仿真和分析动态系统的工具,它是MATLAB软件的一个重要组成部分。
Simulink提供了一个直观的图形界面,使用户能够使用基于图形的块模块化地构建系统模型。
在Simulink中,常用的元器件可以帮助用户构建复杂的系统模型,并进行仿真和分析。
本文将介绍Simulink中常用的元器件,包括信号源、信号处理器、控制器、传感器、执行器等。
这些元器件可以用于模拟各种系统,例如电路、机械系统、控制系统等。
1. 信号源信号源用于提供输入信号,可以是恒定的信号(例如恒定值、恒定频率的正弦波等),也可以是随时间变化的信号(例如阶跃信号、脉冲信号等)。
Simulink中常用的信号源包括:•正弦波信号源(Sine Wave Source):生成指定频率、幅值和相位的正弦波信号。
•阶跃信号源(Step Source):生成阶跃信号,即在指定时间点上跃变的信号。
•脉冲信号源(Pulse Source):生成指定宽度和周期的脉冲信号。
•随机信号源(Random Source):生成服从特定分布的随机信号,如高斯分布、均匀分布等。
2. 信号处理器信号处理器用于对输入信号进行处理和转换,常见的信号处理器包括:•增益(Gain):对输入信号进行线性放大或缩小。
•低通滤波器(Low-pass Filter):通过滤除高频成分,保留低频成分。
•高通滤波器(High-pass Filter):通过滤除低频成分,保留高频成分。
•积分器(Integrator):对输入信号进行积分,得到输出信号的累积值。
3. 控制器控制器用于根据系统状态和输入信号生成控制信号,常见的控制器包括:•比例控制器(Proportional Controller):输出信号与输入信号成比例关系。
•积分控制器(Integral Controller):输出信号与输入信号的积分关系。
•微分控制器(Derivative Controller):输出信号与输入信号的微分关系。
人工智能试题与答案

人工智能试题与答案一、单选题(共103题,每题1分,共103分)1.如果问题存在最优解,则下面几种搜索算法中,()必然可以得到该最优解。
A、启发式搜索B、深度优先搜索C、有界深度优先搜索D、广度优先搜索正确答案:D2.关于python程序设计语言,下列说法不正确的是( )A、python源文件以***.py为扩展名B、python只能在文件模式中编写代码C、python的默认交互提示符是:>>>D、python具有丰富和强大的模块正确答案:B3.贝叶斯网络是基于概率推理的()模型。
A、图形B、数学C、数据D、判断正确答案:B4.根据边的性质不同,概率图模型可大致分为两类:第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网(Bayesiannetwork);第二类是使用无向图表示变量间的相关关系,称为(___)。
A、赫布网B、拉普拉斯网C、马尔科夫网D、塞缪尔网正确答案:C5.要想让机器具有智能,必须让机器具有知识。
因此,在人工智能中有一个研究领域,主要研究计算机如何自动获取知识和技能,实现自我完善,这门研究分支学科叫()。
A、模式识别B、神经网络C、专家系统D、机器学习正确答案:D6.使用似然函数的目的是什么()A、改变目标函数分布B、求解目标函数C、得到最优数据样本D、找到最合适数据的参数正确答案:D7.关于Python的分支结构,以下选项中描述错误的是A、Python中if-elif-else语句描述多分支结构B、分支结构使用if保留字C、分支结构可以向已经执行过的语句部分跳转D、Python中if-else语句用来形成二分支结构正确答案:C8.若某二叉树中的所有结点值均大于其左子树上的所有结点值,且小于右子树上的所有结点值,则该二叉树遍历序列中有序的是A、前序序列B、中序序列C、后序序列D、以上说法均不正确正确答案:B9.机器学习中,模型需要输入什么来训练自身,预测未知?A、人工程序B、历史数据C、神经网络D、训练算法正确答案:B10.操作系统主要是对计算机系统的全部()进行管理,以方便用户、提高计算机使用效率的一种系统软件。
人工智能、数字化理论知识竞赛参考题库资料300题(含各题型)

人工智能、数字化理论知识竞赛参考题库及答案解析00题(含各题型)一、单选题1. 知识有一个逐步完善的过程。
0A、正确B、错误答案:A2. ()是从全称判断推导出单称判断的过程。
A、总结推理B、默认推理C、演绎推理D、归纳推理答案:C3. 群智能算法是基于()对给定的目标寻找最优解的启发式搜索算法。
A、集合B、数组C、群体行为D、个体行为答案:C4. ()描述两个模糊集合中的元素之间的关联程度。
A、概率关系B、模糊关系C、线性关系D、包含关系答案:B5. 蚁群算法是一种应用千组合优化问题的启发式搜索方法。
0A、正确B、错误答案:A6. ()完成语音到文字的转换。
A、语音合成B、语音分析C、语音理解D、语音沪易lJ答案:D7. 只有能够完全实现机器学习的系统才称为学习系统。
0A、正确B、错误答案:B8. 电网一张图的定义是()。
A、中低压配网地理接线图B、面向特定应用的专题图C、发输变配用融合一张网多时态图D、电网规划设计图答案:C9. 信息是用来消除随机不确定性的东西。
0A、正确B、错误答案:A0. 专家系统中的知识按其在问题求解中的作用可以分为数据级、知i兄幸级和0。
A、仓库级B、专业级C、控制级D、理论级答案:C11. ()服务实现模型合规性检测和数据可用性检测,即模型数据是否遵循模型标准规范数据是否符合定义的数值格式或电网实际情况。
A、模型管理中心B、电网图形中心C、电网拓扑中心D、电网设备状态中心答案:A12. 数字经济是以()为核心驱动力量A、智能技术B、物联网技术C、数字技术D、自动化技术答案:C13启发式搜索一般优千盲目搜索,可防皂求过多的甚至完整的启发式信息。
()A、正确B、错误答案:B14. ()是事物规律的发现过程。
A、评价B、环境C、学习D、知识库答案:C15. 以下说法正确的是()A、人工智能,英文缩写为IB、谷歌公司"A lphaGo"击败人类的围棋冠军是人工智能技术的一个完美表现C、人工智能属千自然科学、社会科学、技术科学交叉学科D、人工智能在计算机上实现时绝大多数采用传统的编程技术答案:C16. ()是状态空间搜索的一个基本算法。
系统建模
系统建模系统建模是一种用来描述和分析现实世界复杂系统的方法。
它使用图形和符号来表示系统中的组成部分以及它们之间的关系,并通过模拟和预测系统行为来支持决策制定和问题解决。
系统建模可以应用于各种领域,包括工程、物流、生物学、经济学等等。
本文将介绍系统建模的概念、方法和应用,并探讨其在现实生活中的价值和影响。
系统建模的概念和方法可以追溯到数百年前的工程学和物理学领域。
从那时起,科学家们开始意识到理解和描述复杂系统的重要性。
随着计算机技术的发展,系统建模得到了进一步的发展和应用。
现代系统建模可以通过建立模型来描述系统的各个方面,包括结构、动态行为、交互和性能等。
系统建模中最常用的方法之一是使用图形表示法。
图形表示法使用各种符号和连接线来表示系统中的组成部分和它们之间的关系。
例如,流程图可以用来表示系统中的各个步骤和它们之间的顺序关系;数据流图可以用来表示数据在系统中的流动路径;结构图可以用来表示系统中各个模块或组件的组成关系等。
这些图形表示法可以帮助人们更直观地理解系统,并且可以为系统的建模和分析提供基础。
除了图形表示法,系统建模还使用数学模型来描述系统的行为和性能。
数学模型通常是基于系统的基本原理和规律建立起来的,可以通过一系列的方程和参数来表示系统的动态行为。
例如,在物理学中,可以使用牛顿力学方程来描述物体在受力作用下的运动;在经济学中,可以使用供求关系方程来描述市场的价格变化和供需关系等。
通过建立数学模型,可以对系统进行模拟和预测,以评估不同决策和策略对系统的影响。
系统建模的应用非常广泛,几乎涵盖了所有领域和行业。
在工程领域,系统建模可以帮助设计和优化复杂的工程系统,例如飞机、汽车、电力系统等。
在物流领域,系统建模可以帮助设计和管理供应链网络,以提高物流效率和降低成本。
在生物学领域,系统建模可以帮助研究和理解生物系统的结构和功能,以解决一些疾病和健康问题。
在经济学领域,系统建模可以帮助预测市场的走势和制定经济政策。
软件建模技术理论考核试卷习题一
湖南科技职业学院软件建模技术理论考核试卷一、选择题(每题两分,共60分,每题只有一个正确答案)1.下列描述中,哪个不是建模的基本原则()A.要仔细的选择模型B.每一种模型可以在不同的精度级别上表示所要开发的系统C.模型要与现实相联系D.对一个重要的系统用一个模型就可以充分描述2.下列关于软件特点的描述中,哪个是错误的()A.软件是被开发或设计的,而不是被制造的;B.软件不会“磨损”,但会“退化”;C.软件的开发已经摆脱了手工艺作坊的开发方式;D. 软件是复杂的3.在UML中,有3种基本构造块,分别是()A. 事物、关系和图B. 注释、关系和图C. 事物、关系和结构D. 注释、关系和结构4.在UML中,有四种关系,下面哪个不是()A. 依赖关系B. 继承关系C.泛化关系D.实现关系5.下面哪个不是UML中的静态视图()A.状态图B.用例图C.对象图D.类图6.用户在银行员工的指导下,使用A TM机,查阅银行帐务系统的个人帐务数据,并打印其个人用户帐单。
在上述过程中,对ATM机管理系统而言,哪个不是系统的参与者( )A.用户B.银行员工C.打印系统D.帐务系统7.在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系()A.包含(include)B.扩展(extend)C.泛化(generalization)D.关联(connect)8.下列关于活动图的说法错误的是()A.一张活动图从本质上说是一个流程图,显示从活动到活动的控制流B.活动图用于对业务过程中顺序和并发的工作流程进行建模。
C.活动图中的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。
D.活动图是UML中用于对系统的静态方面建模的五种图中的一种A B C D10.事件(event)表示对一个在时间和空间上占据一定位置的有意义的事情的规格说明,下面哪个不是事件的类型()A.信号B.调用事件C.空间事件D.时间事件11.下列关于状态图的说法中,正确的是()A. 状态图是UML中对系统的静态方面进行建模的五种图之一。
人工智能模拟练习题(含参考答案)
人工智能模拟练习题(含参考答案)一、多选题(共100题,每题1分,共100分)1.下列哪些项是决策树常用的属性选择指标()A、距离平方和B、Gini系数C、信息增益率D、信息增益正确答案:BCD2.以下表达式输出结果中不包含重复元素的有A、set ([1,1,2,3])B、list((1,1,2,3))C、{1,1,2,3}D、list({1,1,2,3})正确答案:ACD3.卷积神经网络中的池化层可以减小下层输入的尺寸。
常见的池化有:A、最小地化层B、乘积池化层C、最大池化层D、平均池化层正确答案:CD4.人工智能因其突出的()等能力,可在网络信息安全领域和社会公共安全领域有许多创新性应用A、知识提取B、数据分析C、自主学习D、智能决策正确答案:ABCD5.前馈神经网络由()、()、()构成?A、中间层B、隐藏层C、输出层D、输入层正确答案:BCD6.图像数字化需要经过的步骤包括()A、裁剪B、采样C、旋转D、量化正确答案:BD7.在Python中,令cars=['bmw','audi','toyota','subaru'] 运行cars.sort(reverse=True)后,cars的值为();运行sorted(cars,reverse=True)后,cars的值为()A、['audi', 'bmw', 'subaru', 'toyota']B、['toyota','subaru','bmw','audi']C、['subaru','toyota','audi','bmw']D、['bmw','audi','toyota','subaru']正确答案:BD8.下列哪些部分是专家系统的组成部分?A、用户B、知识库C、推理机D、综合数据库正确答案:BCD9.C语言中三种基本的类型为()。
2018年5月[0010]《软件工程》标准答案
2018年5月[0010]《软件工程》作业标准答案1、( )是用户和设计交换最频繁的方法。
原型化方法 螺旋模型方法构件组装模型瀑布模型方法2、在人工智能领域,目前最广泛使用的高级语言是 ( )。
LISP AdaFORTRANCOBOL3、模块内聚度越高,说明模块内各成分彼此结合的程度越( )相等 无法判断紧密松散4、“软件危机”产生的主要原因是()。
没有维护好软件 开发方法不当开发人员编写程序能力差软件日益庞大5、软件维护申请报告由( )填写。
维护负责人 用户专家维护程序员6、程序语言的编译系统和解释系统相比,从用户程序的运行效率来看( )。
两者大致相同 前者运行效率高后者运行效率高不能确定7、软件维护是软件得以正常运行的重要环节,按照软件工程方法的理解,一般软件维护应开始于()。
E. 查阅测试记录 分析软件结构 阅读设计文档 理解程序代码8、软件设计中划分模块的一个准则是( )。
低内聚高耦合高内聚低耦合 低内聚低耦合高内聚高耦合9、 维护阶段产生的文档包括( )。
开发进度报告软件问题报告 维护申请报告软件修改报告10、从工程管理的角度来看,软件设计分两步完成( )系统分析、模块设计总体设计、详细设计 详细设计、总体设计模块设计、详细设计11、SA 法的主要描述手段有( )系统流程图和模块图DFD 图、数据词典、加工说明 功能结构图、加工说明软件结构图、加工说明12、 采用甘特图表示软件项目进度安排,下列说法中正确的是()。
能够反映多个人物之间的复杂关系能够直观表示任务之间相互依赖的制约关系 能够表示哪些任务是关键任务能够表示字人物之间的并行和串行关系13、画DFD 图的主要目的( )对系统的数据结构进行描述。
对目标系统的层次结构进行描述。
解决系统是“如何做的问题”。
作为需求分析阶段用户与开发者之间交流信息的工具。
14、数据字典是数据流图中所有元素的定义的集合,一般由以下4类条目组成( )。
A.数据流条目、数据存储条目、数据源条目、加工条目 数据说明条目、控制流条目、加工条目、数据存储条目数据源条目、数据流条目、数据处理条目、数据文件条目数据流条目、数据项条目、文件条目、加工条目15、在下列的基本成分中,哪个不是数据流程图的基本成分?()信息处理 系统状态信息存储外部实体16、数据流图中,当数据流向或流自文件时()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计良好的包,把在语义上接近并倾向于一起变化的元素组织在一起。 因此结构良好的包是松耦合、高内聚的,而且对其内容的访问具有严密的 控制。
Server
《import》 -Database -LoggingService Policies 《import》 +OrderRules
Client +OrderForm +TrackingForm -Order
GUI +Window +Form #EventHandler
Policies 显 式 地 引 入 包 GUI 。 因 此 , 对 于 类 GUI::Window 和 类 GUI::Form ,包 Policies 的内容使用简单名 Window 和 Form 就能访问 它们。然而,由于GUI::EventHandler 是受保护的,因此它是不可见 的。由于包 Server 没有引入 GUI , Server 中的内容必须用限定名才 能访问GUI的公共内容,例如,GUI::Window。类似地,由于Server中 的内容是私有的, GUI 的内容无权访问 Server 中的任何内容,即使用 限定名也不能访问它们。 引入和访问依赖是传递的。在本例中,Client引入Policies, Policies引入GUI,所以Client就传递地引入了GUI。因此,Client的 内容可以访问Policies的引出,同样可以访问GUI的引出。如果 Policies是访问GUI,而不是引入它,Client则不能把GUI中的元素添 加到自己的命名空间,但是仍然能通过限定名(如GUI::Window)引 用它们。
对包中元素的命名
一个包形成了一个命名空间,这意味着在一个包的语境中同一种元 素的名字必须是唯一的。
例如,同一个包不能拥有两个名为Queue的类,但在P1包中可以有一个名为
Queue的类,而在P2包中又有另一个(不同的)名为Queue的类。实际上,类 P1::Queue和类P2::Queue是不同的类,这可以由各自的路径名区别开来。
如果一个包位于另一个包中,外层的包可作为里层包的前缀。例如, 在包Vision中有一个名为Camera的类,而包Vision又在包Sensor中。类 Camera的全名为Sensor::Vision::camera。 在一个包中不同种类的元素可以有相同的名字。这样,在同一个 包中,对一个类命名为Timer,对一个构件也可以命名为Timer。为了 不造成混乱,最好对一个包中所有元素也都唯一地命名。 如果包的内容没有被显示在大矩形中,那么可以把该包的名字放 在大矩形中。 如果包的内容被显示在大矩形中,那么可以把该包的名字放在左 上角的小矩形中。
第 6章 包
对一个较为复杂的系统建模,要使用大量的模型元素,这时就必要把这些元 素分组进行组织。
这样把在语义上接近且 倾向于一起变化的模型 组织在一起,不但控制 模型的复杂度,有助于 理解,而且也有助于按 组控制元素的可见性。
6.1 概念与表示法
定义
包是对模型元素分组的机制。
使用包的最常见目的是把建模元素组织成为组,作为一个集合进行命名 和处理。
包中元素的可见性
在包外,一个包元素的可见性可以通过在该元素名字前加上一个可见性符号 (+:公共的,-:私有的,#:受保护的, ~:包范围的)来指示: 除了对本包的其它元素是可见的以外, +:对所有的引入包以及它们的后代是可见的。 -:对包外的元素都是不可见的。 #:只对那些与包含这些元素的包有泛化关系的子包是可见的。 ~:包的可见性表明一个类对于在同一包内声明的其他类是可见的,但是对于那些 在其他包中声明的类是不可见的。包的各公共部分一同构成包的接口。
包间的关系
包之间不但可以具有拥有关系,包之间也可以具有引入关系、访问关 系或泛化关系。 定义 引入依赖是两个包之间的一种许可依赖关系,一个包中的可见性为公 有的模型元素,可以在指定的包(包括嵌套在该包中的子包)中被引用, 相当于把提供者包的内容附加到客户包的公共命名空间中,而不必对名称 进行限制。 把引入依赖绘制成带有箭头的虚线,其上标有串《import》。 定义 访问依赖是两个包之间的一种许可依赖关系,一个包中的可见性为公 有的模型元素,可以在指定的包(包括嵌套在该包中的子包)中被引用, 相当于把提供者包的内容附加到客户包的私有命名空间中,而不必对名称 进行限制。 把访问依赖绘制成带有箭头的虚线,其上标有串《access》。
压缩方式
编号 包名 类名 类名 · · · · · · 类名 包名 · · · · · · 包名
……
半展开方式
全展开方式
包的层次性
因为包中还可以有包,这样包之间可以有一个层次,且在组织结构上是 一棵严格的树。 在实际使用中,最好要避免过深地嵌套包,一般两、三层即可。对过多 的嵌套,要用“引入依赖”来组织包。
6.3 包的用处
1、组织相关元素,以便于管理和便于复用。包是一个命名 空间,外部使用要加限定名。 2、包引入放松了限制。被引入的元素与引入包中的元素可 以进行关联,或建立泛化关系。
3、便于组合可复用的元建模特征,以创建扩展的建模语言。 也即把被合并包的特征结合到合并包,以定义新的语言。
6.2 如何划分包
识别低层包 每个具有泛化关系或聚合关系的元素位于一个包 关联密集的类划分到一个包 独立的类暂时作为一个包 包的合并 如果低层包数量过多,则合并为高层包 依据:低层包之间—— 从概念考虑:接近,或具有较强的相关性 从作用考虑:属于某项大的功能 观察类图:耦合紧密 分布情况:分布在同一台处理机 组织包的层次 包合并之后,决定低层包是保留还是取消 每个包7±2个内层成分 ——在一张A4纸上表达不清楚时就划分包(Martin Fowler) 层次不宜太多 包的划分不是唯一的,有一定的随意性