CRC卡诠释

CRC,即Class Responsibility Collaboration,是一种用于设计面向对象软件过程中使用的交流工具和头脑风暴工具。典型的应用场合是首次确定设计中需要哪些类,及这些类如何交互。每个CRC卡上通常有以下几项:类名,父类和子类,本类的职责(responsibility),与本类交互的类型,本卡片的作者。

使用小卡片,迫使设计人员对复杂的设计进行简单有效的描述。它会强迫设计者突出关键思路,阻止设计者在设计的早期过于关心细节的实现;另一方面,也可以阻止设计者为一个类型设计太多的职责。因为卡片的形式比较方便,设计过程中可以摊在一个桌面上,也可以用于向其他人展示设计中各个类的交互。

为画出一个CRC卡片,通常的作法是从软件需要描述文档中找出名词和动词,并决定是否为每个名词设计一个类以及哪些动词是这些类的职责。自然,并不是每个名词都会成为软件中的一个类型,但这些通常是设计的起点。

使用CRC的一般步骤:

Step 1. 选择相关的用例(use case)

Step 2. 按顺序画出与该用例有关的全部卡片。首先是触发这一用例的类型,其次是接受上一个类型消息的类。或者,把所有相关类型和他人的主要职责全部画出,放在桌面上。

Step 3. 把所有的类型和职责全部审阅一遍,命名。

按用例的描述,把CRC上的职责过一遍,给职责命名,并分清每个类型如何处理每项职责或委托给其他类型。

如果是用CRC做头脑风暴的工具,随需要增加新的类型和功能,或是重新在现有的类型间划分职责。本步骤中,并不需要给类型和它们的方法命令,这些工作留到最后阶段完成。

Step 4. 改变使用条件,对设计进行压力测试

在审阅设计的过程中,试着逐个改变用例的假设条件,看是否会影响整个设计。在一个好的设计中,只需要增加一个类型或改动一个类型,就足以应付这些变化。也就是说,改变单个条件的情况下,这种改变可以隔离在一个小范围内。如果需要,增加一个新类型。

并不是全部的卡片的都会进入最后的设计中,一些卡片会因为用途不多而被边缘化,不会成为最终设计的一部分。

Step 5. 增减卡片,完善设计

使用CRC卡片可以在桌面上同时展示多种设计,经过反复的修订,一个粗糙的设计可以演变成一个精致的设计,都最终的设计非常小巧。在修订的过程中,不要扔掉卡片,随着对问题的认识,有可能会用到这些卡片

Step 6. 写出最关键的职责和交互方式,关键交互方工要画出交互图。

### 回答1: crc片和状态图是软件开发中常用的工具,用于描述和设计软件系统的不同方面。 首先,CRC片(Class-Responsibility-Collaboration片)用于识别软件系统中的类以及类之间的职责和协作关系。画CRC片的步骤如下: 1.确定系统中的类:根据需求和系统设计,确定系统中需要的类。 2.确定类的职责:为每个类确定其所扮演的角色和职责。 3.画CRC片:在一张片上写下类的名称、职责和相关的协作关系。 片的正面:写下类的名称和职责,类的职责应该简明清晰,描述类的核心功能。 片的背面:写下与其他类的协作关系,即与其他类进行通信和合作的方式。 然后,状态图用于描述系统中对象的状态和状态之间的转换。画状态图的步骤如下: 1.确定对象:根据系统需求,确定需要描述状态和状态转换的对象。 2.确定状态:为对象确定可能的状态,并将状态用圆圈表示,每个圆圈内写下状态的名称。 3.确定状态转换:确定状态之间的转换条件和转换触发事件,并将转换条件和触发事件用箭头连接相应的状态。 4.画状态图:将状态和状态之间的转换用箭头和圆圈表示在图上。 画状态图时,可以使用工具软件如UML(Unified Modeling Language)来进行绘制,也可以手动画在纸上。 总结起来,画CRC片和状态图是软件开发中的常用工具,可以帮助开发人员清晰地描述和设计软件系统,确保系统的正确性和高效性。 ### 回答2: CRC片和状态图是软件开发中常用的工具,用于分析系统的需求和设计系统的行为。以下是有关它们的绘制方法的简要介绍: CRC片绘制方法: 1. 准备片:可以使用片纸或片模板。每个片上应写有类名、职责和合作者。 2. 定义类:根据需求分析,识别出系统中的各个类,为每个类创建一张片。 3. 确定职责:根据每个类所担任的职责,将其写在片的顶部。 4. 找到合作者:根据每个类所需合作的其他类,将它们写在片的底部。 5. 排列片:通过表象的方式,在工作区域里排列片,以反映类之间的关系。 状态图绘制方法: 1. 确定参与者:确定系统中的参与者,这些参与者可以是对象、实体或外部系统。 2. 确定状态:根据需求分析,确定系统中的状态,并为每个状态创建一个图形。 3. 建立转换关系:确定状态之间的转换关系,例如事件或条件,通过箭头连接不同的状态。 4. 添加事件和动作:为每个状态的转换添加事件触发和相应的动作。 5. 将状态图完善:将每个状态的转换条件和动作的详细信息进行补充。 需要注意的是,CRC片和状态图是设计系统的工具,并不是详细表示系统的具体实现。在绘制时,需要根据实际情况和需求不断完善和调整,以便能够准确表达系统的结构和行为。 ### 回答3: 在软件工程中,CRC片和状态图是两种常用的工具,用于系统的需求分析和设计。 CRC片是指职责(Responsibility)、合作(Collaboration)和类(Class)的片。它用于识别和描述系统中的不同职责,并确定他们之间的合作关系。绘制CRC片的步骤如下: 1. 首先,确定系统中的各个角色或者参与者。角色可以是具体的人、组织或者其他系统。 2. 对于每个角色,写下该角色可能扮演的不同职责。每个职责在一张CRC片上进行描述。 3. 在每张CRC片上,列出该职责涉及的类别,并简要介绍它们之间的合作关系。 状态图又称为状态迁移图,用于描述系统中各个对象或者类的状态以及在不同状态之间的转换关系。绘制状态图的步骤如下: 1. 首先,确定系统中的对象或者类,并确定它们可能存在的各个状态。每个状态用一个圆圈表示。 2. 在每个状态圆圈内部,写下该状态的名称。 3. 然后,确定各个状态之间的转换关系。使用箭头连接各个状态之间的关系,并标注转换条件或者事件。 4. 如果有需要,可以在状态图上添加由于特定条件或事件导致的动作或行为。 绘制CRC片和状态图是系统设计和需求分析过程中的重要步骤,能够帮助开发者更好地理解系统的结构和行为,并且有助于团队成员之间的沟通和合作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值