UML-Class Diagram (1)

dogbird·2024년 4월 21일
0

OOAD

목록 보기
12/12

Class Diagram


Class Diagram은 객체 타입인 Class를 표현하는 Diagram으로 classe, interface와 그들의 관계를 보여주는 Diagram이다. Class의 속성(Attribute), 오퍼레이션(Operation), 연관 관계(Association), Generalization(일반화), Package등의 다른 Class와 사이의 다양한 정적인 관계를 표현하거나 정적 관계에 대한 제약 등을 표현한다. Class Diagram은 설계 시 가장 많이 사용되며 모델링 개념의 폭이 넓다.

Operation : 조정하고 처리하고 관리하는 method를 말한다.

  • Class Diagram을 사용해서 코드를 구성하는 과정

  • Class Diagram은 여러 다른 Diagram과 연결된다.

그럼 이제 Class Diagram에서 나타나는 여러가지 클래스 유형들을 살펴보자.

Boundary 클래스

Boundary 클래스는 시스템과 외부 요소간의 인터페이스를 나타내며, 사용자 인터페이스나 외부 시스템과의 상호작용을 담당한다. 일반적으로 UI를 나타내는데 주로 사용되며, 사용자가 시스템과 상호작용하는 방법을 모델링한다.

Boundary 클래스는 주로 시스템 외부의 입력이나 출력을 처리하고, 해당 입력과 출력을 시스템 내부의 객체로 전달하거나 시스템에서 생성된 정보를 외부로 표시하는데 사용된다. 예를 들어, 사용자가 시스템에 입력하는 데이터를 수집하거나, 시스템에서 생성된 결과를 사용자에게 표시하는데 사용될 수 있다.

Boundary 클래스는 UML Class Diagram에서 다이어그램 내의 사각형으로 표시되며, 클래스 이름 위에 "boundary"라고 표시되거나 클래스 이름에 "UI"또는 "Boundary"등의 접두사가 사용될 수 있다. 이를 통해 해당 클래스가 시스템과 외부 세계간의 인터페이스를 나타낸다는 것을 명확히 알 수 있다.
초기에는 액터/유스케이스 한 쌍 당 하나의 바운더리 클래스를 설정하고 이후 여러개의 Boundary 클래스 또는 컨트롤 클래스로 분할 될 수 있다.

Entitiy 클래스

Entitiy 클래스는 주로 데이터베이스 설계나 객체 지향 소프트웨어 개발에서 사용되는 용어이다. Entitiy 클래스는 시스템 내에서 중요한 데이터를 나타내며, 이러한 데이터를 객체 지향적으로 표현한다. 주로, 데이터베이스 테이블과 매핑되는 객체를 나타낸다.

Entitiy 클래스는 시스템 관점에서의 주요 추상개념으로 Use Case기술서의 사건흐름으로부터 파악한다. 주요 추상 개념을 참고하여 관련자료들로부터 명사를 선별하고, 이로부터 Entitiy 클래스를 찾아낸다. Entitiy 클래스를 디자인하기 위해서는 운영모델과 비즈니스 개념 모델 모두를 알아야한다.

Class Diagram에서 Entitiy 클래스는 사각형으로 표시되며 클래스 이름위에 "Entity"라고 표시된다. 클래스 이름 위에서는 일반적으로 속성이 포함될수 있다. Entitiy 클래스는 주로 데이터 모델링이나 소프트웨어 설계 단계에서 사용되며, 데이터베이스 테이블과 객체 간의 매핑을 명확하게 표현하기 위해 사용된다.

Control 클래스

Control 클래스는 유스케이스 행위를 조정하는 클래스로 소프트웨어 시스템의 비즈니스 로직이나 흐름을 제어하는 클래스를 나타낸다. 이 클래스는 시스템의 사용자 인터페이스와 데이터베이스 간의 상호작용을 조정하고, 시스템의 주요 기능을 수행하는데 사용된다. 한 유스케이스에 한 Control 클래스가 맵핑된다. Control 클래스는 주로 사용자의 요청을 받아들이고, 해당 요청에 따라 데이터 처리를 시작하고 적절한 결과를 반환하는 역할을 담당한다.

Class Diagram에서 Control 클래스는 일반적으로 다른 클래스와의 관계를 나타내는 선으로 연결된다. 이 관계는 주로 의존성이며, 컨트롤 클래스가 다른 클래스를 사용하여 작업을 수행함을 나타낸다. Control 클래스는 주로 비즈니스 로직을 중심으로 시스템을 구성하는 데 사용되며, 소프트웨어 아키텍처에서 중요한 역할을 담당한다.

Class Diagram의 전체 예시이다.

상위 클래스 다이어그램

상위클래스 다이어그램은 객체 지향 프로그래밍에서 상속 관계를 나타내는 다이어그램이다. 상위 클래스 다이어그램은 클래스 간의 일반화 관계를 보여준다. 상위 클래스 다이어그램은 클래스가 여러개일 때 관련있는 클래스끼리 묶어주는 역할을 하기 때문에 상위 패키지 다이어그램이라고도 한다. 업무 분류는 클래스 다이어그램에 패키지를 통해서 표현한다. 예를 들어 물품보관 시스템 업무 관련 패키지들을 에로 들면 아래와 같이 나타낼수 있다.



설계 단계에서 클래스 다이어그램


설계 단계에서 클래스 다이어그램을 살펴보기 위한 예시 클래스 다이어그램이다.
하나의 Entitiy에 이런 내용들이 들어간다.

물품보관 시스템을 예로 들어 클래스 다이어그램을 살펴보면 데이터베이스 연동을 위한 <<Wrapper>>라는 스테레오 타입을 정의하고 각 주요 엔터티 클래스들 마다 래퍼 클래스를 사용하고 있다.

가시성(Visibility)

  • private scope (비공개 범위):
    같은 클래스 내에서만 접근할 수 있음
  • package scope (패키지 범위):
    같은 패키지 내에서 접근할 수 있음
  • protected scope (보호 범위):
    같은 클래스 내부 또는 해당 클래스를 상속받은 하위 클래스에서만 접근할 수 있음
  • public scope (공개 범위):
    어떤 클래스나 코드 블록에서도 접근할 수 있는 가장 넓은 범위

연관관계(association)

클래스 다이어그램에서 연관은 클래스들 간의 관계를 나타내는 요소이다. 이것은 객체 지향 프로그래밍에서 클래스들이 서로 상호 작용하는 방법을 설명한다. 연관관계는 두 클래스 간의 관계를 설정하고, 어떤 클래스가 다른 클래슬르 참조하거나 의존한느지를 정의하여 소스 Class와 타겟 Class를 연결한다. 여기서 소스클래스는 연관 관계에서 정보의 출발점이 되는 클래스이고 타겟 클래스는 정보의 도착점이 되는 클래스이다.

연관관계에서 속성(property)의 이름은 역할이름으로 표현되고 연관관계의 양끝에 개수를 표현하여 참여하는 속석의 개수를 표현한다.

Class-level attribute(클래스 수준 속성)

Class-level attribute(클래스 수준 속성)은 객체 지향 프로그래밍에서 클래스 자체에 속하는 속성을 말한다. 이것은 클래스이 모든 인스턴스가 공유하는 데이터를 나타낸다. 클래스 레벨 속성은 클래스의 상태를 나타내며, 해당 클래스에 속한 모든 객체가 동일한 값을 공유한다. 클래스 레벨 속성은 정적이므로 클래스의 인스턴스를 생성하지 않고도 직접 접근 할 수 있다. 표기법은 밑줄을 쳐서 타나낸다.

profile
개발세발 개발자. 멋쟁이가 될 때 까지

0개의 댓글