一.实验目的
1、理解包的基本概念。
2、理解包与包之间的关系。
3、掌握从用例图和类图中抽象出包。
4、掌握从用例图和类图中抽象出包与包之间的关系。
5、掌握使用ROSE软件构建包图的方法。
二.实验内容
- 寻找包
通过把具有很强语义联系的建模元素分组,找出分析包。分析包必须反映元素的真实的语义分组,而不仅是逻辑架构的理想视图。
我们以对象模型(类图)为依据,把关系紧密的类分到同一个包中,把关系松散的类分到不同的包中。
1.标识候选包的原则:
(1).把类图中关系紧密的类放到一个包中;
(2).在类继承类层次中,把不同层次的类放在不同的包中。
2.调整候选包
在已经识别一组候选包后,然后减少包间依赖,最小化每个包的public、protected元素的个数,最大化每个包中private元素的个数。做法是:
(1).在包间移动类;
(2).添加包或删除包。
- 确定包之间的关系
良好包结构的关键是包内高内聚,包间低耦合。
一个包中的类需要用到另一个包中的类,这就造成包之间的依赖关系:
1、使用<<access > >或<<import>>的依赖。
<<access>>叫做访问依赖,它的表示方法是在虚箭线上标有构造型<<access>>,箭头从输入方的包指向输出方的包。
<<use>>叫做使用依赖。
<<import>>的依赖也可以叫做输入依赖或引入依赖。
- 标出包内元素的可见性
public、protected、private
通常,当创建分析包模型时,应该尽量使包模型简单。获得正确的包集合比使用诸如包泛化和依赖构造型的特征更加重要,这些特征可以以后再添加,仅当使用诸如包泛化和依赖构造型的特征使得模型更加容易理解时,才使用这些包整理技术。除了保持简单,还应该避免嵌套包。
三.实验过程
- 寻找包
- 确定包之间的关系
包结构如图所示:
四.实验结果
五.实验分析
在进行ATM包图设计时,可以按照以下步骤进行:
1. 确定包的基本概念:理解包的基本概念,包是一种组织和管理类和其他元素的方式,可以根据元素之间的语义联系进行分组。
2. 寻找包:根据对象模型(类图)中的类之间的关系,将关系紧密的类放到同一个包中,将关系松散的类放到不同的包中。可以根据关系紧密程度和类继承层次来标识候选包。
3. 调整候选包:在识别一组候选包后,可以调整包间的依赖关系,最小化每个包中公共和受保护元素的个数,最大化每个包中私有元素的个数。可以通过在包间移动类、添加包或删除包来实现。
4. 确定包之间的关系:良好的包结构需要包内高内聚和包间低耦合。包之间的依赖关系可以使用<<access>>或<<import>>的依赖来表示,可以使用虚箭头标记构造型<<access>>,箭头从输入方的包指向输出方的包。
5. 标出包内元素的可见性:在包内,可以使用public、protected和private等可见性修饰符来标识元素的可见性。
在设计包图时,需要注意以下几点:
- 保持包模型简单:尽量使包模型简单,获得正确的包集合比使用特性更加重要,可以在需要时再添加特性。
- 避免嵌套包:尽量避免嵌套包,保持包的层次结构简洁。
最后,根据实验结果进行实验分析,并参考相关文献进行深入学习和理解。
参考文献
《UML实验指导书》