본문 바로가기

소프트웨어 정보/소프트웨어공학

소프트웨어 개발 방법론 - 객체지향 개발 방법론

이번 시간에는 소프트웨어 개발 방법론 중 객체지향 개발 방법론에 대하여 설명하도록 하겠습니다. 구조적 개발 방법론과 객체지향 개발 방법론의 장단점을 먼저 설명하도록 하겠습니다.


구조적 개발 방법론은 구조가 단순하여 이해와 수정하기 쉽고 정확하다는 장점이 있습니다. 하지만 객체지향과 비교하여 재사용성이 작고 유지보수가 어렵다는 단점이 있습니다.

 

객체지향 개발 방법론은 현실 세계를 프로그램에 반영한다는 특징이 있습니다. 장단점은 구조적 개발 방법론과 반대라고 이해하시면 됩니다. 



객체란 현실 세계의 개체며 객체들 간의 상호작용은 메시지를 통해 이루어지는 것을 의미합니다

 

자료란 객체가 가지고 있는 상태를 의미하는데 속성, Attribute, 변수, 자료구조 등으로 불리기도 합니다.

 

함수란 객체의 자료처리 행위를 의미하는데 매소드, Method, 동작, Operation, 연산자 등으로 불리기도 합니다.

 

객체지향 밥법론은 추상화, 캡슐화, 정보은폐, 상속, 다형성 등의 특징을 갖는데 추상화란 각각의 객체들의 공통점을 모아서 하나의 객체를 만드는 것을 의미합니다. 예를 들면 자가용이라는 객체, 택시라는 객체, 버스라는 객체 등의 공통점을 뽑아내서 자동차라는 객체를 만드는 것으로 설명할 수 있습니다.

 

캡슐화란 자료 부분과 함수 부분 등 정보처리에 필요한 기능을 한 테두리로 묶는 것을 의미하는데 이렇게 캡슐화를 하면 정보가 은폐되어 외부에서의 변경을 허용하지 않게 됩니다. 

 

정보은폐란 말 그대로 자료를 숨기는 것을 의미합니다. 캡슐화를 하여 정보은폐를 하면 프로그램상에서 특정 부분을 변경했을 때 발생하는 오류를 줄일 수 있게 됩니다.

 

상속이란 상위 클래스의 메소드와 속성을 하위 클래스가 물려받는 것을 의미합니다. 자동차라는 객체를 상속한 택시 객체는 자동차에 없는 정보들만 추가로 사용하면 되는 장점을 갖게 됩니다.

 

다형성이란 한 메시지가 객체에 따라 다른 방법으로 응답할 수 있는 것을 의미합니다. 예를들어 주유하다란 매소드(메시지)가 있을 때 휘발류를 주유하는 것, 경유를 주유하는 것 등을 하나의 매소드로 표현할 수 있게 되는 것입니다.

 

객체지향 개발 방법론을 사용하면 계획 -> 분석 -> 설계 -> 구현 -> 테스트 및 검증의 단계를 거쳐 개발됩니다. 각 단계를 구분지어 얘기하지만 분석과 설계, 구현 작업이 폭포수 모형과 같이 순서가 뚜렷하게 구별되지 않는다는 특징이 있습니다.

 

보통 럼바우 분석 기법을 사용하여 분석하는데 객체 모형 -> 동적 모형 -> 기능 모형의 순서로 진행됩니다. 

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

소프트웨어 역공학  (0) 2018.02.16
소프트웨어 재사용  (0) 2018.02.15
소프트웨어 개발 방법론 - 구조적 개발 방법론  (0) 2018.02.13
형상 관리  (0) 2018.02.12
위험 관리  (0) 2018.02.11