UML-클래스 다이어그램
클래스 다이어그램은 정적 다이어그램입니다. 응용 프로그램의 정적보기를 나타냅니다. 클래스 다이어그램은 시스템의 다양한 측면을 시각화, 설명 및 문서화 할뿐만 아니라 소프트웨어 응용 프로그램의 실행 코드를 구성하는데도 사용됩니다.
클래스 다이어그램은 클래스의 속성 및 작업과 시스템에 부과 된 제약을 설명합니다. 클래스 다이어그램은 객체 지향 언어로 직접 매핑 할 수있는 유일한 UML 다이어그램이기 때문에 객체 지향 시스템의 모델링에 널리 사용됩니다.
클래스 다이어그램은 클래스, 인터페이스, 연관, 협업 및 제약의 모음을 보여줍니다. 구조 다이어그램이라고도합니다.
클래스 다이어그램의 목적
클래스 다이어그램의 목적은 애플리케이션의 정적보기를 모델링하는 것입니다. 클래스 다이어그램은 객체 지향 언어로 직접 매핑 할 수있는 유일한 다이어그램이므로 구축 당시 널리 사용됩니다.
활동 다이어그램, 시퀀스 다이어그램과 같은 UML 다이어그램은 애플리케이션의 시퀀스 흐름 만 제공 할 수 있지만 클래스 다이어그램은 약간 다릅니다. 코더 커뮤니티에서 가장 인기있는 UML 다이어그램입니다.
클래스 다이어그램의 목적은 다음과 같이 요약 할 수 있습니다.
애플리케이션의 정적보기 분석 및 설계.
시스템의 책임을 설명하십시오.
구성 요소 및 배포 다이어그램의 기반입니다.
포워드 및 리버스 엔지니어링.
클래스 다이어그램을 그리는 방법?
클래스 다이어그램은 소프트웨어 애플리케이션 구성에 사용되는 가장 널리 사용되는 UML 다이어그램입니다. 클래스 다이어그램의 그리기 절차를 배우는 것은 매우 중요합니다.
클래스 다이어그램에는 그리는 동안 고려해야 할 많은 속성이 있지만 여기서 다이어그램은 최상위 뷰에서 고려됩니다.
클래스 다이어그램은 기본적으로 시스템의 정적보기를 그래픽으로 표현한 것이며 애플리케이션의 다양한 측면을 나타냅니다. 클래스 다이어그램 모음은 전체 시스템을 나타냅니다.
클래스 다이어그램을 그리는 동안 다음 사항을 기억해야합니다.
클래스 다이어그램의 이름은 시스템의 측면을 설명하는 데 의미가 있어야합니다.
각 요소와 그 관계는 미리 식별되어야합니다.
각 클래스의 책임 (속성 및 방법)을 명확하게 식별해야합니다.
불필요한 속성은 다이어그램을 복잡하게 만들기 때문에 각 클래스에 대해 최소 속성 수를 지정해야합니다.
다이어그램의 일부 측면을 설명하기 위해 필요할 때마다 메모를 사용하십시오. 그림이 끝나면 개발자 / 코더가 이해할 수 있어야합니다.
마지막으로 최종 버전을 만들기 전에 다이어그램을 일반 용지에 그려야하며 수정을 위해 가능한 한 여러 번 다시 작업해야합니다.
다음 다이어그램은 애플리케이션 주문 시스템의 예입니다. 전체 애플리케이션의 특정 측면을 설명합니다.
우선 주문과 고객이 시스템의 두 가지 요소로 식별됩니다. 고객이 여러 주문을 가질 수 있기 때문에 일대 다 관계가 있습니다.
Order 클래스는 추상 클래스이며 두 개의 구체적인 클래스 (상속 관계) SpecialOrder와 NormalOrder가 있습니다.
상속 된 두 클래스에는 Order 클래스와 같은 모든 속성이 있습니다. 또한 dispatch () 및 receive ()와 같은 추가 기능이 있습니다.
위에서 언급 한 모든 점을 고려하여 다음과 같은 클래스 다이어그램을 그렸습니다.
클래스 다이어그램을 어디에 사용합니까?
클래스 다이어그램은 정적 다이어그램이며 시스템의 정적 뷰를 모델링하는 데 사용됩니다. 정적보기는 시스템의 어휘를 설명합니다.
클래스 다이어그램은 구성 요소 및 배포 다이어그램의 기초로도 간주됩니다. 클래스 다이어그램은 시스템의 정적보기를 시각화하는 데 사용되는 것이 아니라 모든 시스템의 순방향 및 역 공학을위한 실행 코드를 구성하는데도 사용됩니다.
일반적으로 UML 다이어그램은 객체 지향 프로그래밍 언어와 직접 매핑되지 않지만 클래스 다이어그램은 예외입니다.
클래스 다이어그램은 Java, C ++ 등과 같은 객체 지향 언어와의 매핑을 명확하게 보여줍니다. 실제 경험에서 클래스 다이어그램은 일반적으로 구성 목적으로 사용됩니다.
간단히 말해, 클래스 다이어그램은 다음에 사용됩니다.
시스템의 정적보기를 설명합니다.
정적보기 요소 간의 협업을 표시합니다.
시스템에서 수행하는 기능을 설명합니다.
객체 지향 언어를 사용하는 소프트웨어 애플리케이션 구축.