在CRC建模中,用户、设计者、开发人员都有参与,完成对整个面向对象工程的设计。
类
代表一系列对象的集合,这些对象是对系统设计的
抽象建模,可以是一个人、一件物品等等,类名写在整个CRC卡的最上方。
职责
包括这个类对自身信息的了解,以及这些信息将如何运用。诸如,一个人,他知道他的电话号码、地址、性别等属性,并且他知道他可以说话、行走的行为能力。这个部分在CRC卡的左边。
协作 指代另一个类,我们通过这个类获取我们想要的信息或者相关操作。这个部分在CRC卡的右边。
CRC卡片的背面往往记载着这个类的详细描述和在CEC设计中的一些注意事项。
Definition : One common way of checking for a good design andguiding its refinement is to use CRC cards.
CRC stands for Classes, Responsibilities, Collaborations. 类名,类的职责,类的协作关系
Although CRC is not part of UML, they add some very useful insights throughout a development.
Creating CRC Cards 建立一个CRS卡
The name of a class, at the top 类名在最上方
The responsibilities of the class, on the left-hand side 类的职责在左侧
The collaborators of the class, which help to carry outeach responsibility, on the right-hand side of the card.类的协作关系放在右侧
耦合性
也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性
又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合
一个软件结构内不同模块之间互连程度的度量。
一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。