🎯 목차
- 상세설계
- Class Diagram
- Sequence Diagram
- Peudo Code
- 코딩
- 테스트

객체지향 설계에서 가장 중요한 다이어그램 중 하나로, 시스템의 구조적 모델을 시각적으로 표현
UML(Unified Modeling Language)다이어그램 중 하나로, 클래스와 클래스 간의 관계를 정의하고, 시스템의 정적 구조를 설명하는 데 사용
시스템의 객체 지향 설계를 시각화하는 데 사용
객체지향 프로그래밍에서 클래스는 객체의 청사진으로, 시스템이 어떤 데이터(속성)와 동작(메서드)를 가질지 정의
클래스 다이어그램을 통해 시스템의 전반적인 구조를 쉽게 파악할 수 있으며, 개발자들 간의 소통을 원활하게 하고 설계를 명확하게 정리하는 데 중요한 역할
정의: 시스템에서 사용되는 객체를 추상화한 구조로, 속성(Attributes)과 메서드(Operations)로 구성됩니다.
표기법:
- 사각형으로 표시되며, 세 개의 구역으로 나뉩니다:
- 클래스 이름
- 속성
- 메서드
예시 :
+------------------+
| 클래스 이름 |
+------------------+
| 속성 |
+------------------+
| 메서드 |
+------------------+
정의: 클래스의 상태나 데이터를 나타내는 변수.
표기법:
- 형식: 접근제어자 속성명: 데이터 타입
- 접근제어자:
- : Public (공개)
- : Private (비공개)
(#) : Protected (상속 클래스 접근 가능)
예시: - name: String
정의: 클래스가 수행할 수 있는 동작이나 기능.
표기법:
- 형식: 접근제어자 메서드명(매개변수: 데이터 타입): 반환 타입
- 예시: + getName(): String
클래스 간의 연결을 나타내며, 다양한 유형이 존재합니다:
- 연관 (Association):
두 클래스 간의 관계를 나타냄.
화살표 방향으로 읽음.
예시: Student -> Course (학생은 강의를 수강한다)
- 집합 (Aggregation):
전체와 부분 관계.
부분은 독립적으로 존재 가능.
빈 다이아몬드로 표시.
예시: Team <>--- Player
- 복합 (Composition):
전체와 부분 관계.
부분은 전체와 함께 생성/소멸.
채워진 다이아몬드로 표시.
예시: Library ◼--- Book
- 일반화 (Generalization):
상속 관계를 나타냄.
비어 있는 삼각형 화살표로 표시.
예시: Animal ▻ Dog
- 의존 (Dependency):
한 클래스가 다른 클래스에 의존적일 때 사용.
점선 화살표로 표시.
예시: Customer ---> Order
정의: 클래스가 구현해야 할 동작의 집합.
표기법:
- 이름 위에 <>로 표시.
- 메서드만 포함.
lua
+---------------------+
| <> |
| Printable |
+---------------------+
| + print(): void |
+---------------------+
![]() | ![]() |
|---|
┌───────────┐
│ Actor │
└───────────┘
예시: user:Customer
정의:
객체 간에 전달되는 요청, 응답, 데이터 등을 나타냄.
표기법:
css
user → server: login()
arduino
user → queue: sendMessage()
css
server ← user: loginSuccess()
diff
+-------------------+
| 객체 처리 중... |
+-------------------+
bash
┌───────────────┐
│ <> │
│ Database │
└───────────────┘
루프 (Loop):
arduino
loop [조건식]
user → server: requestData()
end
조건문 (Alt):
조건에 따라 분기되는 흐름을 나타냄.
예시:
alt 성공
user → server: loginSuccess()
else 실패
user → server: loginFailed()
end
Sequence Diagram의 예시
Actor :Object1 :Object2
┌─────┐ ┌─────────┐ ┌─────────┐
│User │ │ Server │ │ Database│
└─────┘ └─────────┘ └─────────┘
| | |
| login() | |
|----------->>| |
| | queryUserData() |
| |----------------->>|
| | returnData() |
| |<<-----------------|
| returnSuccess() |
|<<-------------------------------|