준호씨의 블로그

OOAD (Object-oriented analysis and design) 본문

개발이야기

OOAD (Object-oriented analysis and design)

준호씨 2021. 4. 3. 19:55
반응형

얼마 전 OOAD라는 단어를 들었는데 무슨 약자인가 검색해 보니 Object-oriented analysis and design이었습니다. 직역하자면 객체지향 분석과 설계입니다. 듣고 보니 예전에 학부 수업 때 들었을 법도 한데 오래되어서인지 공부를 열심히 안 해서인지 기억이 안나더군요.

2011년에 누군가 블로그에 정리해둔 내용을 보고 살짝 파악해 보았습니다.

 

Object-Oriented Analysis and Design(OOAD)

객체 지향 분석과 설계1. OOAD (Object-Oriented Analysis and Design) 란 무엇인가?OOAD란 소프트웨어를 개발하는 하나의 방법론으로 모든 소프트웨어 시스템의 주요 기본요소를 사물을 가리키는 객체와 그

egloos.zum.com

소프트웨어를 개발하는 하나의 방법론인데 간략한 내용만 봐서는 평소에 업무에서 Java로 개발할 때 설계하고 구현하는 내용과 크게 달라 보이지는 않네요. 내용은 UML 사용자 지침서라는 책의 내용을 정리한 내용으로 보입니다.

객체지향적은 현실 세계의 사물이 객체이고 객체를 지향한다는 것입니다. OOAD는 객체지향적으로 분석해서 설계를 한다는 말이 되겠죠.

보통 자동차를 예로 드는 경우가 많은데 자동차라는 객체는 여러 속성(Attribute)들과 행동(Operation)들이 있습니다.

Java Class에서 속성은 변수이고 동작은 메서드입니다. 속성은 엔진, 창, 바퀴, 핸들 등이 있을 거고 명사형입니다. 행동은 시동걸기, 시동 끄기, 속도 조절하기, 멈추기 등이 있고 동사형입니다.

이런 식으로 분석한 것들을 표현하는 방법으로 UML(Unified Modeling Language)이 있습니다.

Class이름, Attributes, Operations순으로 표를 그립니다.

대충 이렇게 되겠네요.

UML은 15년 정도 전에 일할 때는 종종 그려가며 일하기도 했었는데 요즘은 딱히 그릴 일이 없는 거 같습니다. Rational Rose의 프로그램 같은걸 이용하면 UML을 그리면 알아서 Class를 만들어 주기도 하곤 했는데요. 요즘은 그냥 class코드를 짜고 UML를 그려달라고 하는 게 더 편할 거 같습니다. 설계적인 측면에서는 그림을 먼저 그리고 시작하는 게 좀 더 나은 설계를 위해서 더 나을지도 모르겠습니다 ^^; 갑자기 요즘 일하는 방법이 올바른지 아닌지 다시금 고민이 되네요.

인터넷에 있는 내용들은 깊이가 좀 부족한 편이라 다음에 관련된 책이라도 하나 읽어 봐야겠습니다. 혼자서 토이 프로젝트할 때도 설계부터 하는 습관도 좀 들여 봐야겠습니다.

반응형
Comments