[소프트웨어공학] System Modeling

2023. 12. 17. 20:08·CS/소프트웨어공학
목차
  1. System Modeling이란?
  2. Existing and planned system models
  3. System perspective
  4. UML diagram types
  5. Context Model
  6. Process Model
  7. Interaction Model
  8. Structural Model
  9. Generalization
  10. Object class arregation models
  11. Behavior Model
  12. State machine model
  13. Model-driven Engineering (MDE)
  14. MDA(model driven architecture) 단계

System Modeling이란?

  • 시스템의 추상적 모델을 개발하는 과정
  • 각 모델에 따라 다른 관점을 가진다
  • UML 표기법을 기반으로 그래픽적인 표기를 한다 (말로 표현하는 것이 모호하기 때문)
  • 개발자나 고객이 시스템을 이해하고 분석하는 데 도움

 

Existing and planned system models

  • 이미 동작하는 시스템을 그림, 글로 표현하여 현재 시스템의 문제나 새로운 시스템의 요구사항을 추출하는 데 사용
  • Stackholders(이해당사자), 개발자들에게 용이한 설명, 요구사항 간결히 전달
  • model-driven engineering process : 모델링으로 만들어진 기호를 그대로 코드로 구현. (프로그래밍 불필요)

 

System perspective

1) External perspective

  • 외부에서 바라보는 전체적인 관점
  • 시스템이 기존에 없던 경우, 요구사항을 묶어 하나의 시스템으로 본다.

2) Interaction perspective

  • 시스템과 환경, 혹은 시스템의 구성 요소 간의 상호 작용을 중심으로 모델링하는 관점

3) Structural perspective

  • 데이터 구조 모델링
  • 어떤 기능, 클래스가 필요할지에 대해 바라봄

4) Behavioral perspective

  • 시스템 내에서 어떠한 일이 '수행'되어야 하는지를 중심으로 모델링하는 관점

 

UML diagram types

1) Activity Diagram : 데이터 프로세싱이나 프로세스 중 어떤 활동이 수반되는지 표현

2) Use case Diagram : 시나리오 중심

3) Sequence Diagram : 누가 누구에게 무엇을 전달하는지를 표현

4) Class Diagram : 클래스 중심

5) State Diagram : 외/내부의 상태와 이벤트 관계 중심

 

Context Model

  • 추상적이고 상위 레벨, 시스템 외부에서 상호작용을 정의
  • 시스템을 Boundary로 나눈다. 사회/집단의 이해관계에 따라 Boundary가 결정 (시스템 요구사항에 큰 영향을 끼침)
  • 중복성을 제거하고 재활용 여부를 판단
  • 전체적인 시스템 안에 시스템이 어떤 위치에 있는지 표현

 

Process Model

  • Context model에서 구체적 정보가 부족할 때 사용
  • 특정 상황에서 어떤 절차를 거쳐 시스템이 동작하는가 설명
  • 다른 많은 시스템 사이에서 이 시스템이 어떻게 상호작용할지 고려한다.

 

Interaction Model

  • 시스템이 외부환경, 사용자와 어떻게 interaction하는가?
  • 요구 사항을 명확히 파악하는 데 도움
  • use case, sequence diagram이 도움이 많이 됨

Use case modeling

  • 시스템이 특정 시나리오에 대해 행동하는 방식에 대해 모델링
  • 요구사항 추출, UML에 통합되는데 사용
  • 각각의 사용 케이스에 대해 표현
  • Actor : 시나리오 발생시키는 존재. 결과를 가져갈 대상

Sequence Diagram

  • Interaction 모델에 많이 사용
  • 시스템을 분할해 내부 단계 표현

 

Structural Model

  • 소프트웨어의 내부 구조
  • 정적 모델 또는 동적 모델(실행중)
  • 아키텍쳐 논의 및 설계 시 만든다
  • Class diagram으로 많이 표현
  • 객체지향기법 사용 시 sw를 객체 간 상호작용으로 정의할 수 있다.
  • class와 그들과의 연관성으로 표현, 숫자는 대응관계 (1:1 1:다 등)

Generalization

  • structural model (class diagram)에서 많이 사용
  • 상하위 class 개념.. 공통 기능 상속, 개발에 대한 작업량을 줄이고 복잡도 관리 가능
  • 재사용, 중복성 제거의 개념
  • 하위 클라스는 본인이 필요한 것을 특화하고 구체적으로 가시화

Object class arregation models

  • UML에서 마름모로 표현한다.
  • 객체가 객체 안에 있는 개념 (has relationship, part-of relationship)

Behavior Model

  • 실행할 동적 행동을 모델링
  • 시스템이 환경의 자극에 반응할 때 어떤 일이 발생하는지/발생해야 하는지 보여줌
  • 자극의 유형: DATA/EVENT

Data-driven modeling (데이터 기반 모델링)

  • 데이터 처리 중심
  • input -> output, end-to-end가 명확
  • 최근의 비즈니스 어플리케이션에도 많이 사용됨

Event-driven modeling (이벤트 기반 모델링)

  • 전통적인 개발(Real-time system, GUI), Landline phone switching(전화, zoom)에 주로 사용
  • 이벤트의 발생 중심
  • 상태 기반 모델링
  • State, Event(내/외부), Action 요소를 중심으로 시스템을 모델링
  • State Diagram으로 표현

State machine model

  • 실시간 시스템 모델링에 자주 사용
  • StateChart -> UML 의 필수 부분, state machine model..

전자레인지 예시

 

Model-driven Engineering (MDE)

  • 프로그램이 아닌, 모델이 개발 프로세스의 주요 결과물
  • 프로그램은 모델에서 자동 생성
  • 초기 단계
  • 장점: 상위 레벨의 추상화, 새로운 플랫폼에 적은 비용
  • 단점: 비용이 더 클수 있음, 모델이 추상화되어 있어 구현엔 맞지 않음

 

MDA(model driven architecture) 단계

  • A computation independent model (CIM)
    • System의 주요 domain에 대한 추상화를 진행한 모델
  • A platform independent model (PIM)
    • 구현과 무관한 system의 운영에 대한 모델
    • 내/외부 event에 대한 반응과 시스템의 구조를 UML로 표현한다.
  • Platform specific models (PSM)
    • PIM을 각 플랫폼에 맞도록 변형한 모델
    • PIM에 Platform-specific한 세부 사항을 기재한 layer가 추가된다.

 

 

소프트웨어공학 강의 자료와 타 블로그를 참고해 작성한 포스트입니다.

 

Software Engineering – System Modeling

Software Engineering – System Modeling

velog.io

저작자표시 (새창열림)

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

[소프트웨어공학] Software Testing  (1) 2023.12.17
[소프트웨어공학] Design and Implementation  (1) 2023.12.17
[소프트웨어공학] Architectural Design  (0) 2023.12.17
  1. System Modeling이란?
  2. Existing and planned system models
  3. System perspective
  4. UML diagram types
  5. Context Model
  6. Process Model
  7. Interaction Model
  8. Structural Model
  9. Generalization
  10. Object class arregation models
  11. Behavior Model
  12. State machine model
  13. Model-driven Engineering (MDE)
  14. MDA(model driven architecture) 단계
'CS/소프트웨어공학' 카테고리의 다른 글
  • [소프트웨어공학] Software Testing
  • [소프트웨어공학] Design and Implementation
  • [소프트웨어공학] Architectural Design
gyujh
gyujh
개발 공부 블로그
규개발 공부 블로그
  • gyujh
    규
    gyujh
  • 전체
    오늘
    어제
    • 분류 전체보기 (86)
      • Backend&DB (3)
      • CS (5)
        • 컴퓨터구조 (1)
        • 소프트웨어공학 (4)
      • JavaScript (2)
      • Git (2)
      • 알고리즘 (73)
        • 개념 (3)
        • 백준 (70)
      • Projects (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    딕셔너리
    BOJ
    풀이
    런타임
    구현
    문자열
    백준
    algorithm
    알고리즘
    정답
    답
    너비우선탐색
    시간초과
    답안
    스택
    에러
    정렬
    재귀
    숏코딩
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
gyujh
[소프트웨어공학] System Modeling

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.