소프트웨어 모델링
▶ 모델
▶ 모델링
UML (Unified Modeling Language)
: 통합된 모델
Relationships
▶ Dependency (의존 관계): 어떤 spec에서의 한 변화가 다른 것에 영향을 주는 관계
▶ Association (연관 관계)
▶ Generalization (일반화 관계): superclass(parent)와 subclass(child)
▶ Aggregation (약한 집합)
▶ Composition (강한 집합)
Use Case Diagram
: Actor와 Use Case의 관계를 도식화
- Use case modeling: 모든 유스케이스를 취합하면 시스템의 모습이 된다.
Scenarios
: How a system can be used.
Use case Relationship
▶ Include (포함): 유스케이스가 다른 유스케이스를 포함하는 관계
- 여러 유스케이스에서 공통으로 중복되는 시나리오가 있다면, 이 시나리오를 따로 분리해서 새로운 유스케이스로 만들고, 새로 만든 유스케이스를 각 유스케이스마다 포함시킨다.
▶ Extend (확장): 유스케이스 시나리오에서 어떤 조건에 따라 다른 유스케이스를 확장한다.
- Extended usecase (확장 유스케이스): 확장 용도로 사용하기 위해 참조되는 유스케이스
- Base usecase (기본 유스케이스): 참조하는 유스케이스
- Extended point (확장 포인트): 확장 유스케이스를 참조하는 지점 (조건이 만족되었을 때)
▶ Generalization (일반화): 자식 유스케이스는 부모 유스케이스의 모든 행동과 의미를 물려받고, 여기에 자신만의 행동을 추가할 수 있다.
- Parent use case
- Child use case
Class Diagram
: 클래스 또는 클래스들과 그들의 관계(relationship)를 표시한다.
- 속성 (attribute)
- 메소드 (method, operation)
Class Relationship
▶ Association (연관 관계): 클래스가 개념적으로 서로 연결되어 있음
- 각 클래스마다 역할을 표시할 수 있다.
- 클래스 사이에 두 개의 연관을 나타낼 수 있다.
- 연관에 대한 제약(constraints)를 둘 수 있다.
- 연관 클래스를 가질 수 있다.
- 식별정보(Qualifier): 일대 다(one-to-many)의 다중성 연관관계에서 한 객체가 특정한 객체를 가려내야 하는 상황이 발생할 수 있다. 이때, 식별정보(Qualifier)를 지정할 수 있다.
▶ Inheritance (상속)
- General class (부모 클래스)
- Specialized class (자식 클래스)
▶ Aggregation (약한 집합): 하나의 클래스가 여러 클래스로 구성되어 있는 경우, 부분 클래스--전체 클래스
- 반드시 필요하지는 않은 구성요소
▶ Composition (강한 집합): sub 클래스가 오직 하나의 super 클래스에 대해서만 의미를 가질 때
- 반드시 필요한 구성요소
▶ Dependency (의존 관계): 한 클래스가 다른 클래스를 사용하는 관계
Interface and Realization
- 인터페이스: 클래스의 일정한 행동을 나타내는 operation의 집합으로, 다른 클래스에서 사용될 수 있다.
Abstract class (추상 클래스)
: 객체를 생성하지 않는 클래스
Package Diagram
- 패키지: 연관된 클래스들의 집합
클래스 뷰
- Entity class: 어떤 역할을 수행하기 위해 시스템에서 필요로 하는 클래
- Boundary class: 시스템 내부와 외부 환경 사이의 커뮤니케이션 (사용자 또는 다른 시스템과의 interface)
- Control class: Entity와 Boundary 간의 연결고리
Sequence Diagram & Communication Diagram
Sequence Diagram
: 시간 경과에 따라 객체 상호 간의 교류 과정을 표현한다.
- Object (객체)
- Message (메시지)
Communication Diagram
: 객체 간의 상호관계를 표현한다.
- 시퀀스 다이어그램: 시간 순의 시나리오
- 커뮤니케이션 다이어그램: 클래스들 간의 관계를 파악한다.
Activity Diagram
: 업무 과정(business process)의 활동 흐름을 표현하거나, 오퍼레이션(operation)의 알고리즘을 나타내는데 사용한다.
- Swimline: Activity Diagram에 역할을 표시함으로써, 각 활동의 책임이 누구에게 있는지 나타낼 수 있다.
State Chart Diagram
State Chart
: 사건이나 시간에 따라 시스템 객체의 상태 변화를 표현한다.
Component Diagram & Deployment Diagram
Component Diagram
- Component: 개발환경 내에서 실제적인 소프트웨어 모듈에 대한 구성으로, 패키지와 관련된 구성요소
- Interface
Deployment Diagram
: 전체 시스템 구성요소들의 실제 하드웨어적인 배치, 연결 상태를 표현한다.
출처: 이화여자대학교 박지현교수님 소프트웨어공학
'소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] L7 - 수강시스템 OOP 실습 (0) | 2023.11.12 |
---|---|
[소프트웨어공학] L7 - Object Oriented Development Process Using UML (0) | 2023.11.12 |
[소프트웨어공학] L5 - Architectural Design (0) | 2023.11.05 |
[소프트웨어공학] 7. Architectural Design (0) | 2023.10.15 |
[소프트웨어공학] 6. Requirements Engineering Process (요구 공학 프로세스) (1) | 2023.10.06 |