why not

시스템 설계3 (15일차) 본문

Today I Learn/환급 챌린지

시스템 설계3 (15일차)

novem 2023. 3. 6. 08:49

1. 클래스 다이어그램(Class diargram)이란?

  • 한 시스템을 구성하는 클래스들의 구조를 나타내고 클래스 내의 속성(attribute)이나 메소드(method)를 시각화 한 diagram이다.
  • 클래스의 구조 및 클래스 간의 상호 작용 방법이나 클래스의 구성 방법을 표현하는데에 촛점을 맞춘 structural diagram이다.
  • 클래스는 정적이어서 동적인 객체와 다르다.
    • 정적이라는 것은 시간과 조건이 고려되지 않은 것을 말한다.
    • 클래스 다이어그램에서는 sequence diagram과 다르게 조건이나 순차적인 것들이 들어가지 않는다.
    • 철저하게 클래스가 어떤 의존성을 가지고 있는지 그 관계를 나타내기 위한 다이어그램이다.

CreateGroup과 AddMembers 그리고 ExpenseMain이라는 클래스가 각각 있고

이 CreateGroup과 AddMembers는 CenterOverlay로 구성이 되어 있다.

2. 클래스 다이어그램을 사용하는 이유?

  • 클래스 간의 관계와 의존성을 빠르게 파악할 수 있다.
    • 새로운 요구사항이 들어왔을 때, 재사용하거나 확장할 만한 클래스가 어떤 것이 있는지 빠르게 파악 가능하다.
    • 새로운 팀원이 왔을 때에 빠르게 시스템의 구조를 파악할 수 있다.
    • 처음부터 완벽하게 다이어그램을 그리기는 어렵고 조금씩 업데이트 되기 때문에, 소프트웨어가 완성된 후에는 구현 설명을 위해 사용할 수 있다.
    • ex) 한 시스템에 50개의 클래스가 있다고 가정할 때,  이 클래스들의 의존 관계도를 파악하기 위해서 50개의 클래스 파일을 다 열어두고 비교하면서 구조를 파악하는 것은 비효율적이기 때문에 구조를 한눈에 파악할 수 있게 시각화가 필요하다.

3. 언제 사용하나요?

  • 요구사항이 수집되고, 한 시스템 내의 어떻게 클래스를 설계할 것인지 설계 단계에서 사용
  • 클래스 간의 관계가 복잡할 때 (상속과 조합이 많을 때를 말함)
  • 시스템에서 사용되는 클래스들의 구조를 시각화 해야 할 때
  • 새로운 시스템을 설계하거나 기존의 시스템을 확장할 때 참고용으로 사용

4. 어떻게 사용하나요?

 

4-1. 구성 요소

  • 클래스 -> GroupExpense(클래스명)
    • 속성 (Attribute)
      • payer, description, amount, paisAt... (속성의 이름)
      • string, integer, date, boolean (타입)
    • 메소드 (Method)
  • 관계
    • 상속 (Inheritance)관계

Vehicle(parent)이라는 클래스와 Airplane, Boat, Car(children)이라는 Vehicle을 상속한 클래스들이 있다.

 

  • 조합
    • 화살표가 아닌 다이아몬드로 표시

ExpenseList가 부모격이라 GroupExpense를 사용을 하고 있다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

* 필수 삽입 링크 : http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr