티스토리 뷰
[프로그래밍 방법론] 객체 지향 방법론 - UML
UML(Unified Modeling Language)은 분석, 설계를 사용자가 쉽게 인식하게끔 비주얼화 및 문서화 하기 위한 언어입니다. 즉 소프트웨어 개발 과정에서 산출되는 결과들을 명시하고, 문서화 하기 위한 모델링 언어인것 입니다. 이는 객체 지향 방법론을 문서화 해주는 좋은 방법을 제안하고 있습니다.
1. UML이란?
UML에 대한 정의를 살펴보면 아래와 같습니다.
객체 관련 표준화기구인 OMG에서 1997년 11월 객체 모델링 기술(OMT;object modeling technique), OOSE 방법론 등을 연합하여 만든 통합 모델링 언어로 객체 지향적 분석 ·설계 방법론의 표준 지정을 목표로 하고 있다. 요구 분석, 시스템 설계, 시스템 구현 등의 과정에서 생길 수 있는 개발자간의 의사 소통의 불일치를 해소할 수 있다. 모델링에 대한 표현력이 강하고 비교적 모순이 적은 논리적인 표기법(notation)을 가진 언어라는 장점이 있다. 따라서 개발자간의 의사 소통이 쉬워지며 생략되거나 불일치되는 모델링 구조에 대한 지적도 용이하고, 개발하려는 시스템 규모에 상관없이 모두 적용 가능하다.
유스케이스(use case) 다이어그램, 클래스 다이어그램 등 8개의 다이어그램을 기반으로 객체지향 소프트웨어를 개발하기 위한 풍부한 분석 및 설계 장치를 제공하고 있어 향후 상당 기간 동안 산업계의 표준으로 활용될 것이라 예상된다. UML을 가장 잘 적용할 수 있는 소프트웨어 개발 프로세스는 1998년 11월 미국 래셔널(Rational)사에서 개발한 통합 프로세스(Unified Process) 5.0이다. 이 프로세스는 웹 애플리케이션(web application) 개발에 효율적이고 개발팀의 생산성을 극대화하며 UML의 장점을 최대한 살릴 수 있도록 고안된 실무형 개발 프로세스이다.
[네이버 지식백과]
UML 역시 하나의 언어입니다. UML을 적용한다고 해서 좋은 어플리케이션이 뚝딱 만들어지는 것은 아닙니다. 이는 팀원들이 진행해야 하는 범위와 프로세스를 결정하고, 이를 바탕으로 효율적인 어플리케이션 개발이 가능하도록 도와주는 언어라고 생각을 하시면 됩니다.
2. UML의 역사
UML은 1987년 State Chart를 시작으로 UML 2.2 버전까지 개발이 되어 왔습니다. 크게 UML 1.X 이전, 1.X, 2.X 버전으로 구분을 할 수 이습니다.
- UML 1.X 이전 : 1994년 Rational Software는 James Rumbaugh를 영입하여 OMT라 불리는 Object-Modeling Technique와 Grady Booch 메소드를 개발하였습니다. 1996년 Object-Oriented Software Engineering(OOSE) 방법론을 고안한 Jacobson이 합류하여 UML 스펙을 정의하였습니다.
- UML 1.X : UML을 발표하고 나서 이 언어에 대한 스펙 부분을 강화하였습니다.
- UML 2.X : 2005년 1.5 버전에서 2.0버전으로 업데이트 되었습니다.
3. 다이어그램 in UML
UML 2.0에는 13가지의 다이어그램이 정의되어 있습니다.
- Class Diagram
- Composite Structure Diagram
- Component Diagram
- Deployment Diagram
- Object Diagram
- Package Diagram
- Activity Diagram
- Sequence Diagram
- Communication Diagram
- Interaction Overview Diagram
- Timing Diagram
- Usecase Diagram
- State Machine Diagram
4. 모델과 모델링
왜 프로그램 및 시스템을 개발을 할 때 모델링을 해야할까요? 그럼 먼저 모델에 대한 내용부터 살펴보도록 하겠습니다.
모델의 사전적 의미는,
1. 개체를나타내는모형.
2. 아직생산되지않은어떤것이기초로할 모형.
3. 디자인또는견본.
4. 흉내내거나 모방되는예제역할을수행하는것.
모델은 이학 및 공학 분야에서 상당히 유용하게 쓰이는 개념으로서 가장 일반적인 의미로 말하면, "모델을 만든다"는 것은 잘 모르고 있는 것을 이해하는데 도움이 될 것으로 추측되는 어떤 것을 사용한다는 뜻이다. 어떤 분야에서는 이 모델의 일련의 수식(방정식)의 집합으로 정의되기도 하며, 다른 분야에서는 컴퓨터 시뮬레이션을 모델로 삼기도 한다.
UML의 여러가지 그래픽 요소는 하나의 큰 그림, 즉 다이어그램을 그리는데 사용된다. UML은 언어이기 때문에, 이들 그래픽 요소들을 맞추는 데에는 규칙이 필요하다. 다이어그램의 목적은 시스템을 여러가지 시각에서 볼 수 있는 뷰(View)를 제공하는 것이며, 이러한 뷰의 집합을 모델(Model)이라고 한다. 시스템의 UML 모델은 건물을 짓는 건축가의 스케일 모델과도 비슷하다고 말할 수 있다. UML 모델은 시스템 자체의 “목적 행동”을 설명하는 언어이다. UML 모델은 시스템의 “구현 방법을 설명하는 수단”이 아니다.
객체지향 언어를 통해서 어플리케이션을 만들때는 상속, 추상화와 같은 중요개념을 이용하게 됩니다. 이러한 개념들은 실생활에서 볼 수 있는 다양한 개체들을 클래스화할 수 있습니다. 요구사항에 대한 명사는 클래스로, 동사는 함수로 대부분 구성할 수가 있지요.
요구사항에 대한 시스템을 디자인할 때는 요구사항에 맞게 시스템을 설계해야 하기 때문에 모델링에 대한 필요사항이 점점 높아지고 있습니다.
이 글에서는 간략히 UML에 대해서 알아보았습니다. 차후 시간이 날때마다 UML의 구성요소인 다이어그램과 프로그래밍 설계 방법론에 대해서 이야기해보도록 하겠습니다.
이 글이 도움이 되셨나요?
그렇다면 아래의 그림을 클릭해주세요.
'프로그래밍 팁s > 프로그래밍 방법론' 카테고리의 다른 글
[프로그래밍 방법론] 객체 지향 프로그래밍 - 유스케이스 다이어그램(Use Case Diagram) (1) | 2014.10.30 |
---|---|
[프로그래밍 방법론] 오류 처리와 C# 예외처리 – Clean Code (0) | 2014.10.29 |
[프로그래밍 방법론] 객체와 자료구조 – Clean Code (0) | 2014.10.24 |
[프로그래밍 방법론] 객체 지향 방법론 - 프로그램 잘 설계하기 (0) | 2014.10.24 |
[프로그래밍 방법론] 코드 형식(Code Convention) – Clean Code (0) | 2014.10.21 |