문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 UML (문단 편집) === 컴퓨터 분야에서의 효용성에 대해 === UML을 두루 사용하는 쪽은 주로 SI 업체에 근무하던 사람들이다. 정확히는 비지니스 프로세스 개발 분야에 특화되어 사용, 발전되었으며, 개발 요구 사항은 이들에 맞춰져 구성되었다. 이론적으로는 모든 것을 표현 가능하나, 기본적으로 배우기 어렵다는 문제 때문에 아직 널리 퍼지지 못하고 있다. 일단 UML을 도입하면 이런 효과를 기대해 볼수 있다. * 개발 기획과 산출물에 대한 확실한 증거. UML이 소프트웨어의 설계도를 그리기 위한 물건이다보니 UML을 그렸으면 그린대로 만들고 그린대로 동작하면 일단 그 설계는 성공한 것으로 본다. 하지만 실제 설계된 대로 돌아가고 설계된 대로 돌아가게끔 하는 것은 쉽지가 않기에 이런 부분은 전문적인 아키텍트가 붙어서 해결한다. SI업체의 경우 업체별로 각자 업무흐름이 있으니 다 똑같지는 않지만, 한번 UML을 그리면 관련된 모든 사람들에게 설계문서를 돌려 도장을 찍고 그대로 만들겠다는 계약서를 쓴다 [[카더라]]. ~~그래도 나중에 변경사항 나오는건 어쩔수가 없다.~~ * 프로그램 개발이라는 행위에 대해 전문가와 비전문가가 서로 대화할수 있는 도구. 일반적인 프로그램 언어와는 달리 도형으로 표현이 가능하기 때문에 프로그램에 대한 지식이 없는 사람도 프로그램이 제공해야할 기능과 구조를 표현하는게 가능하다. 물론, 비전문가가 설계하는 컨셉을 그대로 프로그램 언어로 옮길수는 없기에 일반적으로 개발을 요청한 쪽과는 UseCase 정도만 사용해서 일을 하고 그 UseCase마다 구현을 위한 내용을 설계한다. 하지만 UML을 도입하면 이런 피곤한 일들이 생긴다. * 제대로 배운 사람이 없다: 기본적으로 모델링 분야는 '''기호학과 언어학을 바탕으로 만들어진, 인공 기호/논리/언어체계이다.''' 인터넷을 개발한 사람이 물리학자이고, MIT MediaLab 설립자가 건축학자이듯이 컴퓨터는 제대로 전공을 배운 사람이 없다. 그리고 그리는 표준에 관련된 방법론을 책이 아닌, 제대로 익힌 사람은 더더욱 드물다. * 다양한 학문의 접점이라, 그리기는 쉬워도 적용하기는 어렵다: 모델은 기호학, 모델 변환 도구는 수학과 논리학, 언어학 등이 결합된 부분이어서, 전문 개발 회사 이외에는 손대기 매우 어렵다. 그리고 컴파일러 만들어서 큰 돈 벌은 회사는 없다. MS나 Oracle은 Lock-in 전략을 위해서 사용하지, 직접적인 매출을 위해서 개발하지 않는다. MS 홈페이지 들어가면 Visual Studio Community 버전 공짜로 받을 수 있다. * 설계한 내용대로 구현이 불가능할 경우 실무자 입장에선 구현이 최선이기 때문에 설계를 무시하고 프로그램을 만들게 된다. 그런데 이렇게 초기 설계에 없던 구현을 하게되면 이 부분은 설계문서에 재반영시켜야 하는데 개발일정에 쫓기다보면 그렇게 하기가 힘들다. 다행히도 요즘은 개발툴들[* 다만 무진장 비싸다. 분야에 따라서는 정가가 아닌 제품에서 % 단위로 떼어간다.][* 공개를 해버린 MS Robotics Development Studio는 순식간에 로봇 관련 중소기업들의 de facto 표준이 되었다.]이 많이 발전되어 소스코드와 UML을 상호 연관시켜 자동으로 갱신될수 있도록 해준다.[* 이론적으로는 모델 기반 개발은 최적화 작업을 죄악시한다. 후임 개발자가 손 댈 수 없으니까...] * UML 전문가가 따로 담당해야 할 정도의 서류의 산이 만들어진다. UML 설계문서는 정말 작정하고 그리기 시작하면 시스템 규모에 따라 틀리지만 그 양이 엄청나다. 그래서 이런 부분을 전문적으로 관리해주는 사람이 있다면 모를까 그렇지 않으면 개발자가 서류에 깔려죽는다. 그래서 필요한 부분만 서류화시키려고 하는데, 개발팀의 규모가 커질수록 그렇게 하기 어렵다. 그러한 이유로 항공기나 원자로 제작 등 거대한 회사 규모를 갖추어야 하는 경우에만 UML 담당 매니저와 인사교육 담당자를 따로 둔다. 소규모 개발회사의 경우 단위기능별로 밑그림이 필요할 때 시퀀스나 유즈케이스, 클래스 정도만 조금 사용한다. 대표적인 UML 파생 제품은 National Instrument사의 LabView를 이용해서 개발된 미군 무인전투기 프레더터가 있다. UML과 모델 기반 개발 방법의 채용을 통해 개발 비용 및 검증 비용을 절감하였다.[* 이론적으로는 개발 언어가 변경되더라도 언어 변환 어댑터만 교체하면 된다.] UML을 피상적으로 이해하고 사용하였던 F-35[* 모델 기반 개발 분야의 재앙이라고 불리다가, 이제는 미국 국가재정의 재앙이라고 불린다.[[http://nationalinterest.org/blog/the-buzz/the-f-35-14-trillion-dollar-national-disaster-19985]] ]는 개발자 부족으로 인해 개발언어를 [[Ada]][* 미 국방부 무기 표준 개발 언어]에서 C++로 교체하다가... 세계 최고가의 비행기가 되어버렸다. UML은 실제로 프로그램을 제작하는데 직접 사용되는 것이 아닌, 프로파일을 이용한 모델 기반 개발(Model-based development)에 사용된다. UML은 모델 기반 개발 및 요구조건-개발-검증 단계를 명시한 V 프로세스의 핵심 부분이며, 전자 장비의 기능성과 안정성을 규정해 높은 IEC 61508, IEC 61508에서 파생된 자동차 세부 표준인 ISO 26262 및 기타 7가지 세부 개발 방법론, 자동차 개발 및 소프트웨어 구현 표준인 AUTOSAR 표준에서는 기본으로 사용한다.[* 이들 모델은 UML을 직접적으로 사용하지 않고, 나름대로 변형된 모델을 사용하지만, UML 모르고서는 읽을 수도 없다. 물론 OMG에서 이들 표준 및 단체에 사용료 받는다.] LG CNS에서 MDD(Model Driven Development) 100%로 400건 이상의 개발을 완료했다고 --자랑--한다. [[http://www.lgcns.co.kr/v3/News/NewsDetail?SERIAL_NO=1615|#]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기