본문 바로가기
컴퓨터 공학/소프트웨어 공학

5. Modeling Concepts

by devp0tato 2026. 4. 23.

이번 챕터는 좀 간단할 예정입니다. 조금 읽어보니까 다음 챕터에서 나옹 요구사항 분석 - use case diagram 을 위한 선행 챕터?, 사전지식 배우기 같은 단원인것 같더라구요. 시험도 얼마 안남았는데 정리할겸 빠르게 써봐야될듯요.... 확실히 정리가 좀 되는거 같기도 하고...

 

I. 모델링의 정의와 기법

 

5장의 챕터 이름부터 Modeling Concepts 인데 모델링이란 무엇일까요?

모델링이란? 

현실 또는 가상의 것을 표현 하는 것

 

되게 간단하죠..? 현실과 가상의 것을 표현한 것이라면 모두 "모델" 이라는 것인데, 그럼 어떤 규칙을 가지고 모델링을 해야할까요?

 

  • Simplicity : 필수적인것만을 간단하게 표현해야 함
  • Completeness : 간단하게 표현하되 표현 되어야 하는것은 모두 표현되어야 함
  • Consistency : Diagram을 작성하는 동안 일관성을 유지해야함(니 맘대로 그리지 말라는 뜻?)
  • Hierarchical : 계층적으로 저차원으로 내려갈 수록 디테일한 부분을 표현해야함

II. 다이어그램

 

그렇다면 다이어그램이란 무엇일까요? 다이어그램은 모델링 기법의 한 종류로써 

현실의 사물과 행동을 추상적 형태로 표현한 것 

 

이러한 다이어그램에는 그리는 규칙이 존재합니다. 이러한 규칙을 통해 동일한 다이어그램을 보고 다수의 사람들이 동일하게 이해하는것을 가능하게 합니다.

소프트웨어의 개발과정에서 다이어그램을 그리게 되는데 다음과 같은 목적을 갖고 있습니다.

 

  • 아이디어 생성
  • 아이디어 소통
  • 구조나 관계을 이해하기
  • 생성된 아이디어를 테스트하거나 예측하기

 

III. 계층성

모델링의 규칙중 하나오 "계층성"을 언급했는데 그림을 통해 이해하면 더 쉬울것 같습니다.

 

책 출판 다이어그램

 

만약에 작가가 책을 출판한다고 가정해 봅시다. 작가는 ( 챕터를 쓰고 -> 이를 검토하고 -> 수정부분이 있다면 수정하고 ) 를 반복한후에 챕터 작성이 완료 되었다면 조판하고 -> 그다음에 출판을 하겠죠. 하지만 세부적으로 보면 더 많은 과정들이 있을 것입니다. 

 

 

챕터 작성관련 세부내용

 

단순히 챕터를 작성하는데만 이를 계획하고 -> 초안을 작성하고 -> 수정하고 -> 연습문제도 넣고 -> Reference 수록하고....
그럼 이것만 있을까요? 챕터를 계획하는데에도 세부내용이 있을것이고, 연습문제를 작성해서 추가하는것에도 세부내용이 있을것이고....

위 내용들을 계층성을 지키지 않고 그리게 된다면 전체 구조를 파악하기도 전에 오랜 시간동안 "챕터 작성하기" 관련해서만 읽고 있을 수도 있습니다. 

즉 계층성을 만족시킴으로써 먼저 전체적인 구조를 파악하게 하고 그 다음에 세부적인 내용을 들여다 볼수 있게 함으로써 전체적인 맥락의 이해도를 높이는데 중요한 역할을 한다고 생각합니다.

 

 

IV . UML - Unified Modeling Language

 

앞서 소프트웨어 개발 과정에서 다이어그램을 그린다고 했습니다. UML은 이 과정에서 시스템을 시각적으로 모델링하도록 도움을 주는 언어입니다. 

 

UML

 

이 그림은 UML을 계층화 한 그림입니다.분류를 제외하고 크게 14 ~ 15개의 다이어그램이 존재하며 사실 이중 Use Case Diagram 그리고 Sequence / Communication Diagram 중 하나 그리고, Class Diagram 정도 그리면 최소한으로 모델링이 된다고 합니다.

 

이정도만 하고 다음 챕터에서 Use-Case Diagram 에 대해서 자세히 설명해 보겠습니다.

 

끄 ㅌ ! ! ! 

 

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

6-1 Use Case Diagram  (0) 2026.04.23
6. Requirement Capture - 요구사항 분석  (0) 2026.04.23
4. 객체 지향 - Object Orientation  (1) 2026.04.23
3. Agile Development  (1) 2026.04.22
2. Software Process  (0) 2026.04.22