본문 바로가기
소프트웨어공학

[소프트웨어공학] L6 - Software & System Modeling UML

by leziwn.cs 2023. 11. 12.
소프트웨어 모델링

▶ 모델
▶ 모델링
 

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

: 전체 시스템 구성요소들의 실제 하드웨어적인 배치, 연결 상태를 표현한다.
 
 
 
 
 
출처: 이화여자대학교 박지현교수님 소프트웨어공학