【面向对象程序设计之CRC】CRC卡及其应用

简介: 作者:gnuhpc  出处:http://www.cnblogs.com/gnuhpc/ 1.什么是 CRC card? CRC (Class-Responsibility-Collaborator) Card是目前比较流行的面向对象分析建模方法。

作者:gnuhpc 
出处:http://www.cnblogs.com/gnuhpc/

1.什么是 CRC card?

CRC (Class-Responsibility-Collaborator) Card是目前比较流行的面向对象分析建模方法。在CRC建模中,用户、设计者、开发人员都有参与,完成对整个面向对象工程的设计。

CRC卡是一个标准索引卡集合,包括三个部分:类名、类的职责、类的协作关系,每一张卡片表示一个类。

· 类 代表一系列对象的集合,这些对象是对系统设计的抽象建模,可以是一个人、一件物品等等,类名写在整个CRC卡的最上方。

· 职责 包括这个类对自身信息的了解,以及这些信息将如何运用。诸如,一个人,他知道他的电话号码、地址、性别等属性,并且他知道他可以说话、行走的行为能力。这个部分在CRC卡的左边。

· 协作 指代另一个类,我们通过这个类获取我们想要的信息或者相关操作。这个部分在CRC卡的右边。

clip_image002

CRC卡片的背面往往记载着这个类的详细描述和在CEC设计中的一些注意事项。

2.如何使用CRC卡组织团队成员?

我们可以使用CRC卡完成设计团队成员的组织工作,但是需要限制在6人以下以提高效率,否则可能会增加沟通成本。我们的成员组成一般有以下三类,职责、人数建议、及其特征描述如下:

· 用户

o 人数:3-5

o 特征:

§ 丰富的行业知识

§ 清晰的业务流程

§ 逻辑思维和良好沟通

§ 对系统设计感兴趣

· OO设计人员

o 人数:1-2

o 特征:

§ 通晓CRC建模流程和方法

§ 通晓OO设计思路和方法

§ 有实际开发OO系统的经验

· 项目协调人

o 人数:1

o 特征:

§ 良好的会议沟通和管理技巧

§ 通晓CRC建模流程和方法

3.CRC分析流程

1)准备工作:

召集人员,拿到相关业务流程的需求——Statement of work,SOW工作陈述,从SOW中提炼出需求,以项目符号列表的形式表示每一个特定的需求。

2)CRC卡的建立:

a.类对应于名词,读完需求分析后,你可以划出一些名词作为类设计的切入点。当然,要习惯于迭代的方式,一开始列出的名词并不见得都要最终设计为一个类,而后续可能因为可用性等需要设计额外的类。

b.我们可以通过这个名词列表进行一一筛选分析,适当把握抽象与具体的关系,比如一个司机、一个秘书、一个经理可能都能抽象为人这个类,但是在第一轮迭代中,若无明显的需求,我们可以先暂时不用去考虑。对于普通的一般的关系,我们可以考虑超类的设计,也可以考虑通过构造函数重载完成。

c.在设计中,我们要注意目标之一是保证可扩展性,重构也是我们要考虑的一个隐性需求。

d.通过第一轮迭代我们就找出了我们需要关注的类。接着我们需要明确类的职责。职责的一个切入点是动词,从动词的列表中就可以得到职责初步列表,然后就行迭代。在这个过程中,并不是每一个动词都会成为一个职责,几个动词可能组成一个职责,最终选择的一些职责可能并没有出现在最初的职责中,对于共享的职责我们要特殊标识,以便在后续的详细设计中特殊处理(比如Java中的接口)。

e.在完成类的职责分析后我们开始根据这些职责及其交互关系明确协作关系,我们此时可以通过用例场景(系统对用户请求或事件作出响应时完成的一个事务或相关操作序列),对于每一个用例,明确交换的对象和消息。在这个过程中,参与的人可以通过角色扮演的方式,既活跃了气氛,又能在沟通交互中体现每一个类职责与协作。

f.完成CRC后就可以通过UML完成正式的初步设计了。


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
6月前
|
Java
JAVA实现CRC16多项式(GB/T20999-2017)
JAVA实现CRC16多项式(GB/T20999-2017)
143 0
|
异构计算
【FPGA】Verilog 编码实现:与非门 | 或非门 | 异或门 | NAND/NOR/XOR 行为验证
【FPGA】Verilog 编码实现:与非门 | 或非门 | 异或门 | NAND/NOR/XOR 行为验证
1165 0
|
7月前
|
存储 算法 安全
C# | 上位机开发新手指南(五)校验算法——CRC
当我们在进行数据传输时,可能会因为信道噪声、干扰等因素导致数据出现错误,从而影响传输的可靠性和准确性。此时,我们需要一种方法来检测数据是否出现错误,并尽可能快速地发现和纠正错误。CRC(Cyclic Redundancy Check)校验算法就是一种常用的数据校验方法,它通过对数据进行处理生成校验码,从而实现对数据的完整性和准确性进行验证。 使用CRC校验的意义在于能够提高数据传输的可靠性,降低数据传输错误率,确保数据的完整性和准确性。在各个领域中,如通信、网络、存储等,CRC校验都得到了广泛的应用。
314 0
C# | 上位机开发新手指南(五)校验算法——CRC
|
存储 C语言
CRC编码计算方法及C语言实现
CRC(Cyclic Redundancy Check)是一种常用的错误校验码,用于检测和纠正传输过程中的错误。在数据通信和存储中,CRC编码被广泛应用,因为它能够高效地检测错误,并且实现简便。
278 0
|
算法 C语言
LabVIEW实现CRC校验
CRC(循环冗余校验),是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
LabVIEW实现CRC校验
|
存储 算法 数据处理
快速入门数字芯片设计,UCSD ECE111(六)SHA256哈希算法的状态机实现(二)
快速入门数字芯片设计,UCSD ECE111(六)SHA256哈希算法的状态机实现(二)
102 0
|
算法 异构计算
m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
m基于FPGA的CRC循环冗余校验系统verilog实现,包含testbench
275 0
|
存储 网络协议 网络安全
计算机网络,CRC码计算生成
网络协议概念:网络协议是计算机网络相互通信的对等层实体之间交换信息时必须遵守的规则或约定的集合。[网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式。TCP/IP协议、IPX/SPX协议。网络协议的三个基本要素:语法、语义和同步;语法:数据和控制信息的结构或格式②语义:用于协调和进行差错处理的控制信息③时序(同步):是对事件实现顺序的详细说明
209 1
计算机网络,CRC码计算生成
|
编译器 C语言
单片机原理与应用以及C51编程技术——C51扩展数据类型(bit、sbit、sfr、sfr16)
单片机原理与应用以及C51编程技术——C51扩展数据类型(bit、sbit、sfr、sfr16)
743 0
单片机原理与应用以及C51编程技术——C51扩展数据类型(bit、sbit、sfr、sfr16)
|
存储 算法 编译器
CRC循环校验码的系统仿真及其应用
CRC循环校验码的系统仿真及其应用
681 0
CRC循环校验码的系统仿真及其应用