저는 UML을 써본 적도 없고, 제대로 공부해본 적도 없습니다만... (솔직히 관심도 없습니다)
집사람은 많이 씁니다. 집사람은 자바로 SI 쪽 개발을 하는데, 그쪽에서는 UML이 프로젝트의 중심입니다.
일반적으로 C++에서 코드가 중심인 것과는 차이가 크죠.
UML이 필요하고 안하고는 프로젝트의 성격에 따라 다를 겁니다.
SI 프로젝트, 요즘 말하는 엔터프라이즈 프로젝트에서는 UML이 필수입니다.
성능이나 크기보다는 설계, 유지보수 용이성이 훨씬 더 중요하죠.
또 요구된 기능 구현과 납기 면에서도 마찬가지입니다.
SI 프로젝트 특성상 최적화된 뛰어난 코드보다는 납기내에 요구된 기능을 충실한 구현하는 것이 지상과제이기
때문에, 초기 설계가 잘못되어 요구된 기능이 구현되지 못하거나 납기에 맞추지 못하는 경우가 생기면 아무리
뛰어난 코드로 잘 만들었다고 하더라도 말짱 꽝입니다.
반면에.. MS 오피스나 윈도우, 혹은 V3나 아래아 한글같은 경우는 어떨까요.
이런 제품들에서는 납기를 지키는 것은 크게 의미가 없습니다. 물론 출시시기도 어느정도 고려는 하지만,
개발 도중에 최초에 예정했던 기능이 생각보다 의미가 없다면 과감하게 뺄 수도 있고, 계획되지 않은 기능이
줄줄이 추가될 수도 있습니다.
물론 프로젝트가 아주 대형화된다면 설계, UML이 개입될 여지는 점점 더 커지지만, 같은 규모의 경우 SI
프로젝트에 비해 UML이 개입할 수 있는 정도가 훨씬 적겠지요.
이런 구분을 한마디로 요약하자면, SI 프로젝트냐 아니면 패키지 혹은 솔루션 프로젝트냐로 나눌 수 있겠습니다.
사실 두 업계는 똑같이 SW 업계라고 부르지만 주력으로 사용하는 툴이나 일하는 형태도 다르고 일하는 환경도
다르고, 심지어는 고용형태까지도 많이 다릅니다. 설계가 어떤식으로 얼마나 중요하느냐도 다를 수 밖에 없죠.
비슷한 예가 ERD입니다. SI 프로젝트에서는 필수죠. 모델링이 주류가 되기 전까지(그리고 지금도 모델링을
도입하지 않은 경우) SI 프로젝트를 하면 가장 먼저 ERD를 먼저 그려놓고 거기에 따라 개발을 하는 것이
대부분이었습니다. 그런데 시스템 유틸리티나 패키지 프로그램에서는 ERD를 그릴 일 자체가 없죠.
UML 모델링도 비슷해서, 로직의 흐름이라기보다는 데이터의 흐름에 더 중점이 있는 것 같습니다.
subspace.케이블가이 님이 쓰신 글 :
: 음.. 자유게시판의 분위기를 약간 재밌게 해보기 위해서..
: 개발자 여러분들에게 묻고 싶습니다.
:
: 여러분들은 UML을 얼마나 사용하고, 어떻게 사용하시나요?
:
: 저는 개발을 꽤 많이 했다고 생각하는데요..
: 사실은 컴퓨터공학이 전공이 아니다보니 소프트웨어 개발공학에 대한 부분의 지식이 모자란 상태에서
: 개발을 하다보니 어찌보면 혼자 터득한 개발방법론(?)을 이용해서 개발하는 경우가
: 대다수 입니다. (사실 이러한 개발 방법론이 적절한 것은 아니죠... 쩝..)
: 그러다 보니 개발할때 사실 뽀다구(?)도 안나고, 그런 공학적인 측면을 많이 배운 사람과
: 얘기를 하다보면 조금 주눅이 드는 것은 사실이죠. 물론 장기간동안 개발하면서 그러한 방법에 대한
: 부분을 상당히 좁히기 위해서 노력을 하긴 했지만.. 어떠한 툴을 통해서 혹은 그러한 방법론을
: 통해서 개발하는 것을 몰랐기 떄문에 늦게나마 인식을 하게 되었지만.. 아무래도 늦은 편이죠..
:
: 어째든 사설이 길었습니다.
:
: 그래서 질문인 것이.. 과연 UML을 사용해서 개발하는 개발자가 많은가요?
:
: 저는 C/C++을 이용해서 개발을 합니다. 개발은 주로 패키지를 만들고.. 만들어진 패키지를
: 고객의 요구사항에 맞게 수정하는 경우가 대다수라고 보면.. 됩니다.
: 물론 고객의 요구에 따라서 새로이 시스템을 만드는 경우도 있구요...
: 웹 기반의 서비스 시스템을 만드는 경우는 없습니다.
: 그렇다보니.. 개발을 위한 시스템 설계는 하지만.. UML이라든가 이런 것은 생각하지 않고 있습니다.
: 뭐.. 보기는 좋은지 몰라도.. 국내 개발환경이라는게.. 모든 일들이.. 얼마만에 개발을 완료해라..
: 이런요구사항 속에서는 실제 설계 기간만도 1달 이상 잡기는 어렵죠..
: 물론 큰 프로젝트야 길게도 잡기는 하지만.. 통상 3개월 가량의 프로젝트의 경우는 2주 ~ 1달 이내로
: 설계를 끝내고 개발에 들어가는 경우가 태반이죠..
: 그러다보니.. 요구사항 받고, 시스템 설계하고, 사용자 인터페이스 확인하고 하다보면..
: 금세 2주는 훌쩍 넘어가 버리죠..
: 이렇다보니 UML을 생각할 겨를이 없습니다. 물론 사용을 안해왔기 때문에 그럴수도 있겠지만 말이죠..
:
: 이런 상황에서 개발자들은 UML을 사용하고 있나요?
: 아니면 이러한 프로젝트에서는 UML을 사용하지 않고 있나요?
:
: UML에 대한 내용을 많이 보면.. 일반적으로 Web 기반의 시스템을 개발하는 경우(SI 의 경우죠..)라면
: 사용을 할 만도 할거 같은데.. 이러한 패키지를 만들거나 C/S 시스템을 만들어야 하는 경우
: 적용하기도 만만치 않은거 같구.. C/C++에 UML적용이 잘 되는지도 모르겠네요..
: (래쇼날 로즈를 보면 Visual C++을 지원한다고 나오긴 하더군요..)
:
: 여러분들은 어떠세요..
: 의견을 듣고 싶습니다.
:
: UML을 꼭 해야 한다.
: 아키텍쳐가 되려면 UML을 빼면 개발이 주먹구구가 될 수 밖에 없다.
: 에이.. C/S 시스템이나 패키지에 UML은 무슨...
: 등등등..
:
: 의견을 듣고 싶습니다.
|