ETC./학교수업

[UML] UML, 왜 필요한가?

반나무 2021. 3. 17. 17:54

1. 소프트웨어 시스템 구축과정

추상화와 정제

 

소프트웨어 시스템 구축 과정은 복잡한 업부를 이해하기 쉽도록 추상화하고, 이렇게 추상화된 업무를 구현하기 쉽도록 정제하는 과정

 

추상화 <-> 정제

추상화(abstraction) : 내부의 복잡한 사실들을 감추고 이해하기 쉽도록 단순화 하는것.

정제(refinement) : 추상화된 사실의 내부를 펼치는 것

2. 모델, SW 시스템의 추상화

모델(model)의 개념

  • 실제의 단순화
  • 개발하려는 시스템을 보다 잘 이해하기 위해서 모델을 생성한다.
    • 시스템을 있는 그대로 또는 원하는 대로 시각화 하는 것을 도와준다
    • 시스템 구조 또는 행위를 명세할 수 있게 한다.
    • 시스템을 구축할 때 안내해주는 템플릿을 제공한다.
    • 결정사항을 문서화 한다.
  • 소프트웨어 시스템이 구현하는 추상화된 업무의 모형

모델 뷰(model view)

정적인 뷰 : 구조모델(structural model)

동적인 뷰 : 동적모델(dynamic model)

3. UML, 다음 단계의 프로그래밍 언어

기계어 -> 어셈블리어 -> 3세대 언어 -> 객체지향언어 -> 관심지향언어

 

프로그래밍 언어의 발전은 추상화다!

 

모델 = 코드

모델은 시스템을 추상화한 문서로서의 역할만 하는 것이 아니라, 실질적인 소프트웨어 시스템의 구성요소가 된다.

모델로부터 코드 생성을 자동화 한다

모델 변환 작업은 변환 도구에 의해 자동적으로 이루어져야한다.

 

순공학(forward engineering) : 모델을 소스코드로 변환

역공학(reverse engineerring) : 소스코드로 부터 모델 생성

반응형