UML과 객체지향 모델링

재영·2021년 1월 17일
1

이번 방학 UML 관련 내용들을 학습하여 소프트웨어 공학에 있어서, 심화된 학습을 진행하고자 한다. 프로젝트관리 과목을 수강하기는 했지만, 소프트웨어 공학과 설계 관련한 내용에 있어서는 부족한 점이 많은 것 같아 이를 보완하고자 이번 공부를 기획하였다.

  • 학습은 아래의 책을 기반으로 공부한 내용들을 간략하게 정리해보는 과정으로 진행할 예정이다.
    이 책의 내용을 기반으로 학습을 진행한 내용들을 블로그에 정리해보려고 한다.

    UML 용도와 특징

  • UML은 시스템 개발을 위한 시각적인 설계 표기를 제공한다. 또한, 객체 지향 시스템을 개발할 때 산출물을 명세화, 시각화, 분석화하는데 사용되고 그 산출물은 다양한 참여자가 쉽게 이해할 수 있는 의사소통 도구로 활용된다.
  • UML은 시각화, 명세화, 문서화, 구축 언어라는 특징을 갖는다.

객체 지향 모델링

  • 객체지향이 개발되기 전에는 모델링할 때 대개 절차 지향 방법을 사용하였다. 하지만 객체 지향은 이러한 절차지향의 문제점을 극복하고 인간의 사고하는 방식대로 프로그램을 개발하려는 노력의 소산물이라고 할수 있다.

<객체와 클래스>

  • 객체는 현실세계에 존재하는 모든것들을 의미한다. ex) 소나타, KTX, 붕어빵 등 눈에 보이거나 만져지는 실제적인 것이 모두 객체다.

  • 클래스는 개념적으로 존재하는 것을 의미한다. 즉 객체를 생성할 수 있는 구조와 정보를 가진 틀이라고 정의할 수 있다. ex) 자동차, 기차, 붕어빵 기계로 표현되는 것들이다.

메시지

  • 메시지는 객체 간의 상호작용 수단이다. 객체는 각각 독립적으로 존재하고 다른 객체와 상호작용하며 소프트웨어를 운영하게 된다. 이때 메시지는 객체가 다른 객체에 특정 작업을 요청하는 신호라고 볼 수 있다.

<객체 지향의 특징>

객체 지향에는 여러 특징이 있다. 추상화, 캡슐화, 상속, 다형성의 네가지 특징이다.

  1. 추상화: 현실세계에 존재하는 어떤 것을 있는 그대로 표현하면 복잡하기 때문에, 특정 측면을 강조하여 나타내는 것을 추상화라고 부른다.

  2. 캡슐화: 캡슐화란 데이터와 이 데이터를 처리하는 오퍼레이션이 한 틀 안에서 객체라는 단위로 묶여 사용되는 것을 말한다. 이러한 캡슐화는 클래스로 구현하게 된다.

  3. 상속: 상속은 객체 지향에서 가장 핵심이 되는 개념으로, 프로그램을 쉽게 확장할 수 있는 수단이다. 자세히 설명해 보자면 상속은 상위 클래스의 모든 특성을 하위 클래스가 이어받음으로써, 이미 정의된 클래스를 재사용하고 확장할 수 있도록 지원받는 개념이다.

  4. 다형성: 다형성은 여러 클래스에 같은 이름의 함수가 존재하지만 동작은 다르게 수행하는 것을 의미한다.

<추상 클래스와 인터페이스>

  • 추상클래스: 추상 클래스는 클래스의 명칭과 메서드는 있으나, 메서드의 처리 내용이 없다. 그래서 상속을 통해 메서드가 구현된다.

  • 인터페이스: 인터페이스는 모든 메서드가 추상 메서드인 경우를 말한다. 인터페이스는 추상 클래스보다 한 단계 더 추상화된 클래스이다.

<추상클래스 자세히 알아보기>

위에는 Animal의 추상클래스이다.

  • 어떤 X라는 클래스가 추상 클래스를 상속 받는다면, X 클래스는 추상 클래스에 선언했던, 추상 메서드를 무조건 구현을 해야 하는 룰이 있다.

위와 같이 Dog 클래스를 선언하여 이를 활용하여 실행해볼 수 있다.

이를 통해 메인 메서드가 실행이 가능하다.

<모델링 방법>

객체 지향 방법론으로는 다양한 것들이 있다. 그 중에서 대표적인 몇가지 방법론을 살펴볼 것이다.

1) 부치 방법론: 부치 방법론은 설계 중심의 방법론으로서 시스템을 몇개의 뷰로 분석할 수 있다고 보았다. 그래서 이 뷰를 모델 다이어그램으로 나타내었다.

2) 야콥슨의 OOSE: OOSE는 유스케이스를 강조한 방법론이다. 유스케이스는 외부 행위자와 상호작용하는 시스템의 요구사항을 정의하고 큰 규모의 시스템을 개발하는데 효율적이다.

3) 럼바의 OMT: OMT 방법론에는 하나의 시스템을 기술하기 위하여 세가지 모델을 사용한다. 바로 객체 모델, 동적 모델, 기능 모델이다.

4) UML: 부치 방법론과 OOSE, OMT를 하나로 합한 방법론이다.

profile
AI 돌리는 강아지

0개의 댓글