본문 바로가기

CS/창의적 컴퓨터공학 설계

7. CRC Cards

 

 CRC card class responsibility collaboration 약자이다.

클래스를 만들고 클래스가 어떤 역할을 하고 어떤 콜라보를 하는 등에 대한 표현을 하는 일종의 문서이다.

Responsibility 클래스가 만들어진 목적에 부합하는 어떤 책임을 말하는 것이다.

Collaboration 클래스가 어떤 일을 하나의 일을 하나의 클래스가 수도 있지만,

개의 클래스가 서로 협력해서 일을 경우를 말한다.

 

 Responsibility knowing doing으로 나뉜다.

클래스가 use case 요구사항에 따라서 해야 하는 operation

일을 하기 위해서 필요한 데이터가 담긴 attribute 있다.

 

Knowing 클래스가 알아야하는 것으로,

보통 클래스가 갖는 attribute 거기에 담긴 data 보고 클래스가 알아야 하는 것들을 말한다.

 

Doing Operation 클래스가 해야 하는 일들 function 선언한다.

이런 것들에 대해 구체적으로 표현해야 한다는 것이다.

클래스가 use case 요구사항에 따라서 해야 하는 operation 일을 하기 위해서 필요한 데이터가 담긴 attribute 있다.

 

 Collaboration 클래스와 클래스가 협력을 하는 것이다.

Requestor 클라이언트가 되고 responder 클라이언트의 요구를 받아서 서비스를 제공하는 것이다.

Collaboration request 대해 서비스를 제공하기 위해 클래스들이 함께 일을 하는 것이다.

이는 일종의 계약에 의해서 진행된다. 설계를 하고 코드를 작성할 안에 계약 관계를 넣는다.

 

  계약 관계는 전형적으로 aggregation, generalization, association 있다.

외에도 설계자가 클래스를 보고 관계를 따로 정의해서 만들 수도 있다.

Aggregation 전체적인 커다란 클래스가 있고 안에 부속품처럼 하나의 부분을 하는 클래스가 있는 관계를 말한다.

Generalization 상속하는 관계를 말한다.

superclass 있는 attribute이나 operation 상속해서 super class 가진 지식 knowledge 습득하는 관계이다.

Depends upon이라는 관계는 하나의 클래스가 어떤 일을 진행할 단독적으로 이루어지기 보다는

그것에 연관돼서 후속적으로 다음일이 진행되는 관계이다.

Association 일반적인 관계라고 생각하면 된다. 클래스 간에 일반적인 관계가 있고 관계를 선언하고 표시하면 된다.

 

 CRC card의 앞면에는 클래스의 이름, id를 정하고 클래스의 type을 적는다.

또한 클래스가 어떤 일을 하는지를 쓰는 description과 어떤 use case와 관련된 일인지 use case의 번호를 적는다.

그리고 responsibilitycollaborator가 있다.

Responsibility는 어떤 일을 해야 하는 지를 적는 것이고

collaboratorcollaboration을 해야 하는 일을 같이하는 다른 클래스를 적는 것이다.

CRC card의 뒷면에는 attribute와 그 attributetype으로 쓴다.

또한 다른 클래스들 간에 어떤 관계가 있는지에 대해 적는다.

'CS > 창의적 컴퓨터공학 설계' 카테고리의 다른 글

6. Use Case, Use case Description  (0) 2020.04.16
5. System Analysis  (0) 2020.04.09
4. 다이어그램 UML Diagram  (0) 2020.04.02
3. UML은 무엇인가  (0) 2020.04.02
2. 컴퓨터공학 설계란 무엇인가  (0) 2020.04.02