【声明】欢迎转载,但请保留文章原始出处:http://blog.csdn.net/yelangjueqi/article/details/44733433
1,入门
类是任何面向对象系统中最重要的模块。类是对一组具有相同属性、操作、关系和语义的对象的描述。一个类可以实现一个或多个接口。类可以用来捕获正在开发的系统中的词汇。这些类可以包括作为问题域一部分的抽象,也可以包括构成实现的那些类。可以用来描述软件事物和硬件事物,甚至可以描述纯粹概念性的事物。
UML为类提供了图形表示。通过这种表示法能够独立于任何编程语言来对抽象进行可视化,并强调抽象最重要的部分:名称、属性和操作。
2,术语和概念
2.1,名称每一个类都必须有一个有别于其他类的名称。名称(name)是一个字符串。单独的名称叫做简单名(simple name),用类所在包的名称作为前缀的类名叫做限定名(qualified name),绘制的类可以仅显示它的名称。(分割类名和包名使用双冒号)
2.2,属性
在图形上,将属性在类名的下面栏中列出。可以仅显示属性的名称。
可以通过声明属性的类以及属性可能的默认初始值来进一步详述属性
2.3,操作
操作(operation)是一个服务的实现,该服务可以由任何类的对象来请求以影响其行为。换句话说,操作是能对一个对象所做事情的抽象,并且它由这个类的所有对象所共享。类可以有任意数目的操作,也可以根本没有操作。在图形上,把操作列在类的属性栏下面的栏中。可以仅显示操作的名称,也可以进一步用注释或活动图来详述操作的实现。
可以阐明操作的特征标记来详述操作,特征标记包含所有参数的名称、类型和默认值,如果是函数, 还要包括返回类型。还可以详述操作的其他特性,例如把操作标记为多态的、不变的或描述它的可见性。
2.4,为了更好地组织属性和操作的长列表,可以利用衍型在每一组属性和操作之前加一个描述其种类的前缀。
3,常用建模技术
3.1,对系统的词汇建模3.2,对系统中的职责分布建模
对系统中的职责分布建模,要做如下工作:
A,识别一组为了完成某些行为而紧密地协同工作的类
B,对上述的每一个类识别出一组职责
C,从整体上观察这组类,把职责过多的类分解成较小的抽象,把职责过于琐碎的类合成较大的类,重新分配职责以使每一个抽象合理地存在。
D,考虑这些类的相互协作方式,相应地重新地分配它们的职责,使协作中没有哪个类的职责过多或多少。
3.3,对非软件事物建模
3.4,对简单类型建模
对简单类型建模,要做如下工作:
A,对抽象为类型或枚举的事物建模,这可以用带有适当衍型的类表示符来表示
B,若需要详述与该类型相联系的值域,可以使用约束
4,提示和技巧
在用UML对类进行建模时要记住:对最终用户或实现者来说,各个类都应该映射到某个有形的或者概念性的抽象。一个结构良好的类,应符合如下条件:A,为取自问题域或者解域的词汇中的事物提供明确的抽象。
B,嵌入一个小的,明确定义的职责集,并且很好的实现它们。
C,把抽象的规约和它的实现清楚地分开。
D,简单而且可理解,并具有可适应性和可扩展性。
当用UML绘制一个类时,要遵循如下的策略:
A,仅显示在该类的语境中对于理解抽象较为重要的类的特性。
B,按属性和操作的种类进行分组,以更好地组织其长列表。
D,把相关的类显示在同一个类图中。