TY blog

소프트웨어 시스템 모델링 본문

소프트웨어 공학

소프트웨어 시스템 모델링

주짓수하는 개발자 2023. 10. 3. 22:42
1. 시스템 모델링 이란? 

 

 - 시스템의 추상(abstraction) 모델을 개발하는 프로세스 이며, 각각의 모델은 시스템의 서로 다른 뷰나 관점을 나타낸다. 

 - 시스템 모델은 시스템의 완전한 표현이 아니며 이해하기 쉽도록 자세한 부분은 의도적으로 제외된다. 

 

2. UML 다이어그램 유형

 

1. 유스케이스(Use-case) 다이어 그램 : 시스템과 사용자 간의 상호작용 시나리오  ( 상호작용 모델 )

 * 목적 : 시스템의 행동 기능 모델링, 사용자가 어떤 인터페이스를 통하여 시스템에 무엇을 하는지 간단하게 기술 

 

[유스케이스 다이어 그램의 구성요소] 

  • 유스케이스 : 시스템이 수행, 제공하는 기능이며 공통적인 사용자 목표와 관련된 시나리오의 집합  
  • 액터 : 시스템 외부에서 시스템과 직접 상호작용 하는 모든 것
  • 연관(association) : 액터가 유스케이스를 수행하는 것 
  • 시나리오 : 서비스에서 기본적으로 할 수 있는 테스트 케이스 
  • 관계(Relationship) : 2개 이상의 이어진 액터또는 유스케이스 가 서로 상호작용 하는 것

 

2. 클래스(Class) 다이어그램 : 시스템의 객체 클래스들과 클래스들 간의 관계 ( 구조 모델 )

 * 목적 : 소프트웨어 시스템을 구성하는 객체 클래스들의 정적 구조를 보여준다. 

  • Class : 한가지 종류의 시스템 개체를 일반적으로 정의
  • Attribute : 멤버 변수
  • Operation : 메소드 
  • 연관(association) : 클래스 간의 관계 ( 1:1, 1: N...)

[UML 패키지, 접근제한 표기]

public(+) 모든 접근 허용
private(-) 현재 객체 내에서만 허용
protected(#) 같은 패키지에 있는 객체와 상속관계의 객체들만 허용
package(~) 클래스 식별자 

 

일반화(generalization)

 - 사물을 분류하고 사물 간의 차이점과 클래스에 초점을 맞출 때 지식을 재사용 ( Java - extends )

 

집합(aggregation)

 - 한 객체(전)가 다른 객체로 구성된다. 클래스 들 간의 연관 

 

추상 클래스 (abstract class)

 - 구현이 되지 않은 기능(Operation)을 가진 클래스, 자바문법에서는 클래스를 상속받아 자식 클래스에서 오버라이딩 하여 기능을 재정의 해야 한다. 

 

3. 시퀀스(Sequence) 다이어그램 : 액터와 시스템 간, 시스템 컴포넌트 간 상호작용 시나리오 ( 상호작용 모델 )

 * 목적 : 액터와 시스템의 객체들 간의 상호작용과 객체들 간의 상호작용을 모델링하기 위해서 주로 사용 

 

[다이어 그램의 구성요소] 

  • Object : 객체 
  • Message : 객체 사이의 커뮤니케이션, 메서드 호출
  • return : 메소드 호출 후 돌아오는 값 
  • Interaction frames : 시나리오의 동작, 조건 

[Interaction frames]

alt : alternative [if] par : parallel
loop : loop [반복문] region : critical region
opt : optional [if] neg : invalid interaction
ref : reference [참조 이동] sd : diagram frame

 

Asynchronous Message 

 - 호출자가 함수를 호출 후 결괏값을 기다리지 않고 자체 메시지를 계속 수행할 수 있는 것 

 

4. 액티비티(Activity) 다이어 그램 : 프로세스나 데이터 처리 관련 액티비티 흐름 ( 동작 모델 데이터 흐름도 )

 * 목적 : 유스케이스 시나리오(Business flow) 표현하는 데 사용될 수 있음 

 

  • Action : 어떤 일을 하는 것 ( 단위 작업 )
  • Activity node : 여러 action으로 구성할 수 있는 작업
  • Flow / Edge : action과 연결 ( 다음 흐름도 연결 )
  • Decision : 조건마다 다른 액션 수행 
  • Marge : 흐름도 병합
  • Fork : 액션의 병행 기술 
  • Join : 액션을 기다려 하나의 흐름도를 만듦 

 

* 참고문헌 : (주)한티에듀 소프트웨어공학 제10판 

'소프트웨어 공학' 카테고리의 다른 글

소프트웨어 재공학  (0) 2023.11.07
소프트웨어 개발 테스팅  (0) 2023.10.17
소프트웨어 아키텍처 설계  (0) 2023.10.10
소프트웨어 요구공학  (0) 2023.09.19
소프트웨어 공학 프로세스  (0) 2023.09.13
Comments