跟我学UML——UML静态建模中的UML包图
- 格式:pdf
- 大小:253.00 KB
- 文档页数:9
1.1跟我学UML静态建模——应用Rational Rose工具设计实现客户关系管理CRM系统的概要设计阶段相关模块的类图示例(关注类的个数、类之间的关系)1、添加本项目中的与数据访问层组件相关的各个类(1)新建一个类(2)输入类名称以命名该类(3)分别在各个包中输入各个类,最后将产生下面的状态1)持久类:ComplaintInfoPO、ConsumptionInfoPO、CustomersInfoPO、ProductInfoPO和StaffBaseInfoPO2)数据访问类:ComplaintInfoDAO,ConsumptionInfoDAO、CustomersInfoDAO,ProductInfoDAO,StaffBaseInfoDAO、BaseDAO3)数据连接类:DBCPConnectionBean4)异常处理类:WebCRMException5)业务服务层类:StaffLoginService、CustomersFeedBackService、CustomersLevelClassificationService、CustomerInfoAnalysisForecast、CustomerInquiryService、CustomerDataManagementService、BulkMailService6)控制层类:FilterDispatch、ActionSupport、ProductInfoAction、StaffLoginAction、ComplaintAction、ConsumptionAction、CustomersAction7)表示层类:Index、staffLogin、deleteCustomersInfo、addCustomersInfo、updateCustomersInfo、showCustomersInfo、queryCustomersInfo、customerInfoAnalysisForecast2、添加本项目中的与数据访问层组件相关的各个接口(1)新建一个接口(2)输入接口的名称,比如为“ConnectDBInterface”注意:在概要设计中不需要考虑各个类或者接口中的具体的成员定义!这可以将它们留在详细设计中来完成------这也是概要设计和详细设计中的类图中的类差别。
UML之包图包图的基本概念: 包图是⽤来描述模型中的包和所包含元素的组织⽅式的图,是维护和控制系统总体结构的重要内容。
包图能够组织许多UML中的元素,不过其最常⽤的⽤途是⽤来组织⽤例图和类图。
包图中包含包元素以及包之间的关系。
与其他图类似,包图中可以创建注解和约束。
包的概念: 包是⽤于把模型组织成层次结构的通⽤机制,它不能执⾏。
包名:包有简单名、路径名包中的元素:包中可以容纳各种⾼级的模型元素,如类和类的关系、状态机、⽤例图、交互、协作等,甚⾄是⼀个完整的UML图。
另外,包中还可以含有包,这被称为包的嵌套。
包元素的可见性:控制包外元素对包内元素的访问权限。
公有(+):只要当前包被引⼊,包内的公共元素即对引⼊者可见。
保护(#):仅对当前包的⼦包可见。
私有(-):仅对该包可见,外部⽆法访问。
另外,如果某元素对于⼀个包是可见的,则它对于嵌套在这个包中的任何包都是可见的。
包的构造型:可以使⽤构造型来描述包的种类。
UML预定义了⼀些构造型,⽤户也可⾃⾏定义新的构造型。
⾼内聚,低耦合:在外部观察包时,可以将内部元素视作⼀个整体,⽅便将多个元素⼀同处理。
包内部的元素应该保证有相似、相同的语义,或者其元素有同时更改和变化的性质。
注:在实际应⽤中,包对包含的元素的作⽤相当于C++和C#中命名空间的概念或Java中的包概念。
和这些概念不同的是,UML包中的内容不限于类和接⼝,包中的元素种类要丰富的多。
元素的分包原则:1)元素不能“狡兔三窟”:树形结构的⼀个节点不能同时拥有两个⽗节点,⼀个元素也不允许在两个包中重复出现。
2)相同包内元素不能重名:包所具有的命名空间的作⽤要求⽤⼀个包中的同种类元素名称必须是唯⼀的。
3)包内元素要紧密联系:分在同⼀个包中的元素应该具有某些相同的性质,即包的⾼内聚性。
4)包与包尽可能保持独⽴:包和包之间需要尽可能减少耦合度,要求包内元素与外部元素有尽可能少的依赖关系。
包的依赖关系:包之间的依赖关系实际上是从⼀个更⾼的层次来描述包内某些元素之间的依赖关系。
1.1跟我学在MyEclipse工具中如何设计UML静态建模中的各个UML图1.1.1在UML透视图中实现UML静态建模中的各个图
1、包图—--通过类图来实现
(1)新建一个包
(2)并且命名该包
(3)添加其它的包
(4)设置包与包之间的父子关系---直接将子包建在父包里面
2、创建类图
(1)新建一个类,并且命名该类
(2)在该类中添加属性,并且设置各个属性的数据类型
(3)最后设置各个类之间的关系
(4)将类添加到对应的包中---拖动目标类到包图中的包中
(5)原来在类图中所创建的各个类之间的关系继续保留下来。
3、UML to Java(UML类图中的各个类与Java代码之间的转换)
4、将Java程序类转化为UML类图(Java-UML)(1)编程待转换的Java程序类
(2)按F5
(3)应用反向工程工具
(4)显示出成员
(6)设置类之间的关系
5、将所画的UML图导出为图像文件
6、改变项目中的UMR的根nameSpace名称(由default----com.px1987)。
1.1跟我学UML静态建模——在Rational Rose工具中设计实现UML类图的应用示例(第1部分)1.1.1UML类图1、UML类图(1)类图类是面向对象模型的最基本的模型元素。
类图表达为了实现某一用例中的一组对象类之间的静态结构,以及它们之间的联系和交互。
(2)类图的作用主要体现在描述结构和联系:类图描述系统中类的静态结构,它不仅定义系统中的类,表示类之间的联系(关联、依赖、聚合等),还包括类的内部结构(类的属性和操作)。
(3)类与类之间的联系类与类之间的联系可以分为两种:结构性联系(静态联系)和行为性联系(动态联系)。
1)结构性联系指类的继承与派生、父类与子类间的聚合、组合、泛化/特化等。
2)行为性联系指类之间可以通过消息联系,通过系统预定义或用户自定义的语义联系。
(4)类的UML的图示类是对象的集合,这些对象有共同的结构特征、行为特征、联系和语义;在UML中类的图形表示为实线矩形框。
但要注意的是:在类图中不一定要列出全部的成员内容。
如在建立分析模型或设计模型时,可以只列出类名,在图中着重表达类间联系;在建立实现模型时,再在图中给出属性和操作等详细内容。
如:(5)类中的属性成员及其UML的图示●属性(成员变量)属性是类的命名的性质,在类图中用文字串说明。
其表示为:可视性属性名(多重性):类型=初始值其中:可视性用可视性标记表示:公共(+)、保护(#)、私有(-)类型(即数据类型)依赖于选择的工具语言。
例如,+年龄:integer=25●类的static成员属性所应该注意的是,对类的成员属性也就是 static成员属性在类图中的表示为带下划线的形式。
如下面的“货单个数”的类的成员属性的表示方式。
abstract class Computer{private CPU intelCPU;private HDDisk oneHDDisk;private Printer hpPrinter;Computer oneUserInfo;String bingPai="联想计算机";abstract public boolean calculateDate(Data oneDate) throws DataException;}(6)类中的方法成员及其UML的图示●类中的操作(成员方法)操作是类的行为特征或动态特征,用于对服务或实体相关的操作建模。
UML中的包图介绍及其在软件架构中的应用软件开发过程中,设计和构建一个良好的软件架构是至关重要的。
而在软件架构设计中,UML(统一建模语言)的包图是一个非常有用的工具。
本文将介绍UML中的包图,并探讨其在软件架构中的应用。
1. 包图的概念包图是UML中的一种结构图,用于表示软件系统的组织结构和模块化设计。
它通过将系统划分为不同的包(Package),并显示它们之间的关系,帮助开发人员更好地理解系统的组成部分和模块之间的依赖关系。
2. 包的定义和特点包是一种逻辑组织单元,用于将相关的类、接口、用例等组织在一起。
它具有以下特点:- 包具有层次结构,可以包含其他包,形成包的嵌套关系。
- 包可以表示命名空间,用于解决命名冲突问题。
- 包可以表示模块或子系统,用于实现软件的模块化设计。
3. 包图的元素包图由多个元素组成,包括:- 包(Package):表示一个包,用于组织相关的类、接口等。
- 类(Class):表示一个类,用于描述系统中的对象。
- 接口(Interface):表示一个接口,用于定义类的行为。
- 依赖关系(Dependency):表示一个包对另一个包的依赖关系。
- 关联关系(Association):表示包之间的关联关系。
- 泛化关系(Generalization):表示包之间的继承关系。
4. 包图的使用包图在软件架构设计中有广泛的应用。
它可以帮助开发人员更好地组织和管理软件系统的结构,提高系统的可维护性和可扩展性。
以下是包图在软件架构中的几个常见应用:4.1 模块化设计包图可以将系统划分为不同的模块,每个模块对应一个包。
通过包图,开发人员可以清晰地了解系统的模块划分和模块之间的依赖关系,从而更好地进行模块化设计。
模块化设计可以提高系统的可维护性,降低系统的耦合度,便于开发人员进行并行开发。
4.2 系统组织和管理包图可以帮助开发人员更好地组织和管理系统的结构。
通过包图,开发人员可以清晰地了解系统的组成部分和模块之间的关系,从而更好地进行系统的组织和管理。
4.2 UML包图4.2.1 UML中的包图1.UML中的包和包图(Package Diagram)一个企业应用系统中可能包含数百个类,如何有效地管理这些类就成了一个需要解决的问题。
一种有效的管理方式是将类分组,功能相似或相关的类组织在一起,形成功能模块或者子系统。
在各种面向对象的编程语言中都提供了对类进行分类管理的机制——如Java语言的包(Package),而在UML中,对类或者其他的模型元素进行分组时则使用包图。
(1)包图是保持系统整体结构简明、清晰的重要工具。
在Rational Rose中对包采用类似于文件夹的符号来表示(如图4.19所示的“留言功能包”、“用户权限管理包”),并且一个包可嵌套在另一个包中形成子包。
使用包图可以将相关模型元素分组,包图由包和包之间的关系构成,它是维护和控制系统总体结构(系统架构)的重要建模工具。
(2)在Rational Rose2003中的包图是通过类图来体现的。
如果某个包为其他包的子包,则应该将子包放入父包中,如图4.19所示。
图4.19 Rational Rose2003中的包图是通过类图来体现的2.包之间的关系及其UML图示在设计包时,首先要决定系统中应该有哪些包,比如要尽量将系统中不稳定的模型元素和相对稳定的模型元素分配到不同包中,以提高软件系统的可维护性;或者将可选功能和核心功能实现分置于不同的包或子包之中。
其次决定包之间的关系,包之间存在两种关系:依赖和泛化(继承或者构成)。
下面分别介绍这两种关系,以及它们在Rational Rose中的具体实现。
(1)包之问的依赖关系。
如果对类A的修改会导致类B的改变,则称B依赖于A。
如果两个包中存在具有依赖关系的两个类,则认为这两个类所属的两个包之间则存在着依赖关系。
图4.19所示的“留言功能包”和“用户权限管理包”之间存在依赖。
包之间的依赖关系应尽量简单、稀疏,通常要求某一包中的模型元素只与同层及相邻下一层的模型元素之间存在依赖关系。