아름다운 클래스 다이어그램을 작성하는 방법

클래스 다이어그램을 그리는 데 중요한 것은 무엇이라고 생각합니까?
나는, 이하의 3개를 의식하고 그리고 있습니다.
  • 구성이 간단하고 이해하기 쉬운 것
  • 독자의 시선의 도선을 의식하는 것
  • 시스템의 핵이되는 것을 나타내는 것

  • 이번에는 내 경험을 바탕으로 아름다운 클래스 다이어그램이란 무엇인가를 주제로 파헤칩니다.

    아름다운 클래스 다이어그램이란?



    클래스 다이어그램은 시스템의 정적 구조 다이어그램이라고 설명합니다. (참고: 클래스 다이어그램 - Wikipedia )
    정적인 구조를 나타낸 그림입니다만, 멈추어져야 할 클래스끼리가 관련을 가지는 것으로 마치 움직이고 있는 것처럼 보이는 것이 아름다운 클래스도의 조건이라고 생각하고 있습니다.
    이를 위해서는 시선을 안내하는 간단한 구성과 배치, 선을 연결하는 것이 중요합니다.
    독자의 시선을 자연스럽게 유도해주는 것으로, 누구라도 이해하기 쉬운 클래스도를 만들 수 있습니다.
    세부까지 구현과 일치시킬 필요는 없습니다. 중요한 것은 그 다이어그램을 보면 대략적인 구성을 한눈에 알 수 있다는 것입니다.
    게다가 시스템의 핵이 되는 오브젝트(도메인 오브젝트)를 잘 추상화해 주고 있으면, 변경에 강한 아름다운 구조를 만들 수 있습니다.



    이전 기사를 소재로 클래스도를 작성해 보았습니다.
    객체 지향의 이점을 자동차에 비유해 보자 - Qiita

    운전자가 자동차 네비게이션 회사로부터 자동차를 수배해, 자동차에 목적지를 건네주어 루트를 받고, 자동차를 조작해 목적지까지 간다, 라고 하는 것을 나타내고 있습니다.
    실제의 시스템 개발에서는, 이 규모로 들어가는 시스템은 없을까 생각합니다만, 작성에 있어서 여러가지 눈치채는 점이 있었으므로, 테크닉집으로서 정리합니다.

    기술 모음


  • 선을 가능한 한 교차시키지 마십시오
  • 선의 스타일은 직각선으로 한다
  • 처리가 왼쪽 상단에서 오른쪽 하단으로 흐르도록 클래스 배치
  • 기본 클래스가 상단이고 구상 클래스가 하단에 오도록 배치
  • 상속 관계의 선은 클래스의 상부로부터 생긴다
  • 집계 관계의 선은 클래스의 오른쪽에서 생깁니다
  • 중요한 메소드만 기술해, 불필요한 메소드는 쓰지 않는다.
  • 메소드의 정의 순서는 가능한 한 처리 순서가 되도록 한다
  • 구상 클래스에는 특징적인 차이만을 쓰도록 한다
  • 도메인 개체를 색으로 구분
  • 컴포지션은 그다지 중요하지 않기 때문에 집계 관계를 중시한다
  • 마지막으로 다이어그램의 위치 관계를 조정하고 균형 잡힌 배치에 유의하십시오

  • 사이고에게



    여기까지 읽어 주셔서 감사합니다.
    솔직히 이 이야기를 다른 사람에게 한 적도 없고, 일반론이 아니기 때문에, 옳은지 자신감은 없습니다.
    하지만 내가 클래스 다이어그램을 그려 잘 갔을 때 느낀 것을 썼습니다.
    여러분은 어떤 곳에 조심해서 그려 있을까요?
    정답은 없다고 생각합니다만, 여러가지 의견을 들어보고 싶습니다.

    좋은 웹페이지 즐겨찾기