
CRC 카드
=> Class, Responsibility, Collaboration 이 세 가지 주요 요소를 각 카드에 기록하여 클래스의 역할, 그리고 다른 클래스와의 관계를 명확하게 합니다.
- 사용 사례 분석을 통한 후보 추출:
- 프로젝트 팀은 사용 사례(use case) 문서나 설명을 기반으로 텍스트 분석을 수행합니다. 이 과정에서 시스템이 수행해야 할 작업, 기능, 요구 사항 등을 텍스트에서 식별합니다. 이를 통해 초기 후보(candidate) 클래스, 기능, 역할 등이 추출됩니다. 이 단계에서 주목하는 것은 시스템이 사용자나 다른 시스템과 어떻게 상호작용하는지에 대한 설명입니다.
- 브레인스토밍을 통한 추가 후보 추출:
- 팀원들이 함께 모여 브레인스토밍을 진행합니다. 이 과정에서 각자의 아이디어를 공유하고, 토론을 통해 추가적인 후보 클래스, 기능, 역할 등을 도출합니다. 이 단계는 창의적인 아이디어를 발굴하고, 다양한 관점에서 시스템을 바라보는 데 중점을 둡니다.
- CRC 카드를 사용한 롤-플레잉:
- CRC 카드(Class-Responsibility-Collaborator)를 활용하여 각 클래스의 역할을 명확히 합니다. 카드에는 클래스 이름, 해당 클래스가 수행해야 할 책임(Responsibilities), 그리고 협력할 다른 클래스(Collaborators)가 적혀 있습니다. 팀원들은 이 카드를 사용해 각 클래스가 실제로 어떤 역할을 하는지, 어떤 클래스들과 상호작용하는지에 대해 롤-플레잉을 진행합니다.
- 기능의 적합성 검토:
- 롤-플레잉을 진행하면서 각 클래스와 기능의 적합성을 검토합니다. 이 과정에서 클래스의 책임이 너무 많거나, 모호하거나, 불필요한 기능이 있는지 등을 평가합니다. 또한, 클래스 간의 협력 관계가 효율적인지도 검토합니다. 이를 통해 어떤 기능이 적합하고, 어떤 기능이 수정되거나 제거되어야 하는지를 결정합니다.
- 새로운 클래스의 생성:
- 위의 과정을 통해 새로운 클래스가 생성됩니다. 불필요하거나 중복된 기능을 제거하고, 새로운 기능이나 클래스를 추가하여 시스템의 구조를 보다 명확하고 효율적으로 만듭니다. 이 단계에서는 시스템의 전체적인 설계가 점진적으로 개선되며, 각 클래스와 그 책임이 더욱 명확해집니다.
이 과정들은 시스템의 초기 설계 단계에서 중요한 역할을 하며, 팀원들이 시스템의 구조와 각 클래스의 역할을 명확히 이해하는 데 도움을 줍니다.
* The three class types in the unified process are
- Entity classes : 수 년 동안 keeping 되어야 하는 정보 저장
- Boundary classes : UI인데 이제 GUI
- Control classes : 계산하는 클래스
'소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] 클래스 다이어그램 (Class Diagram) (50) | 2024.04.24 |
---|---|
[소프트웨어공학] 객체지향 언어 특징 (49) | 2024.04.24 |