베스트 프랙티스: 비주얼 모델링 UML 이미지

비주얼 모델링은 요약 레벨을 인상시킵니다.

주제

비주얼 모델링은 무엇입니까? 페이지 맨 위

비주얼 모델링은 소프트웨어 설계를 캡처하기 위한 의미가 풍부한 그래픽 및 텍스트 설계 표기법의 사용입니다. UML과 같은 표기법은 정확한 구문 및 의미론을 유지하는 동안 요약 레벨이 인상될 수 있도록 합니다. 이 방법에서는 독자가 설계에 대해 추론할 수 있게 하여 설계가 형성되고 검토됨에 따라 설계 팀의 의사소통이 개선됩니다. 또한 구현에 대한 명백한 기초를 제공합니다.

왜 모델링해야 합니까? 페이지 맨 위

모델은 시스템의 단순화된 보기입니다. 이것은 특별한 관점에서 시스템의 필수사항을 표시하고 비필수적인 세부사항은 숨깁니다.  모델을 다음과 같은 방법으로 도움을 줄 수 있습니다.

복잡한 시스템 이해 돕기 페이지 맨 위

시스템이 복잡해질수록 모델의 중요성이 증가됩니다. 예를 들어, 개집은 청사진 없이도 만들 수 있습니다. 그러나 집에서 고층 빌딩으로 진전될수록 청사진에 대한 요구는 명백해집니다.

유사하게, 한 사람이 몇 일 동안에 빌드한 작은 어플리케이션을 전체적으로 쉽게 이해할 수 있습니다. 그러나 수없이 많은 SLOC(Source Lines Of Code)를 가진 e-commerce 시스템 또는 수십만 SLOC를 가진 항공 제어 시스템은 더 이상 한 사람이 쉽게 이해할 수 없습니다.  모델을 구축하여 개발자가 큰 그림에 집중할 수 있도록 하고, 컴포넌트가 상호 작용하는 방법을 이해하며 치명적인 결함을 식별할 수 있도록 합니다.  

 다음은 몇 가지 모델의 예입니다.

  • 작동을 명확하게 지정하기 위한 유스 케이스
  • 설계를 캡처하기 위한 클래스 다이어그램 및 데이터 모델 다이어그램
  • 동적 작동을 모델링하기 위한 상태 전이 다이어그램

모델링은 팀이 복잡하지 않게 시스템의 구조 및 작동을 가시화하고 구성하며 문서화하는 데 도움을 주기 때문에 중요합니다.

저비용으로 설계 대안 탐색 및 비교 페이지 맨 위

단순 모델은 설계 대안을 탐색하기 위해 저비용으로 작성되고 수정될 수 있습니다. 고비용의 코드 개발에 투자하기 전에 다른 개발자가 혁신적인 아이디어를 캡처하고 검토할 수 있습니다. 반복적 개발에 연결될 때, 비주얼 모델링은 개발자가 설계 변경사항을 평가하고 이런 변경사항을 전체 개발 팀에게 전달하는 데 도움을 줍니다.

구현에 대한 기초 형성 페이지 맨 위

오늘날 대부분의 프로젝트는 재사용 가능하고 변경을 허용하며 안정적인 시스템을 얻기 위해 객체지향 프로그래밍 언어를 사용합니다. 이런 장점을 얻으려면 설계에서 객체 기술을 사용하는 것이 더욱 더 중요합니다. RUP는 구현의 기초가 되는 객체지향 설계 모델을 생성합니다.

적절한 툴 지원으로 설계 모델은 구현을 위한 초기 코드 세트를 생성하는 데 사용될 수 있습니다.  이것은 "포워드 엔지니어링" 또는 "코드 생성"이라고 합니다. 설계 모델은 시스템을 빌드하는 데 충분한 정보를 포함하도록 향상됩니다.

또한 기존 구현에서 설계 모델을 생성하기 위해 리버스 엔지니어링이 적용될 수 있습니다. 이것은 기존 구현을 평가하는 데 사용될 수 있습니다.   

"라운드 트립 엔지니어링"은 설계 및 코드의 일관성을 보증하기 위해 포워드 및 리버스 엔지니어링 기술 모두를 결합합니다.  라운드 트립 엔지니어링이 반복 프로세스 및 올바른 툴과 결합되면 각 반복 동안에 설계 및 코드가 동기화되게 할 수 있습니다.

요구사항을 정확히 캡처 페이지 맨 위

시스템을 빌드하기 전에 요구사항을 캡처하는 것이 중요합니다. 정확하고 명백한 모델을 사용하여 요구사항을 지정하는 것은 모든 스테이크홀더가 요구사항에 대해 이해하고 동의할 수 있는지 확인하는 데 도움을 줍니다.   

구현에서 시스템의 외부 작동을 분리시킨 모델은 구현 세부사항에서 혼란에 빠지지 않고 의도된 시스템 사용에 집중하는 데 도움을 줍니다.

의사결정을 명백하게 전달 페이지 맨 위

RUP는 비즈니스 엔지니어링과 시스템 엔지니어링에 적용될 수 있는 표기법인 UML을 사용합니다. 표준 표기법은 다음 역할을 수행합니다([BOO95] 참조). 

  • "명백하지 않거나 코드 자체에서 추정될 수 없는 의사결정을 전달하기 위한 언어 역할을 합니다."
  • "중요한 전략적이고 전술적인 의사결정 모두를 캡처할 수 있을 만큼 풍부한 의미론을 제공합니다."
  • "사람이 추론하고 툴이 조작될 수 있을 만큼 구체적인 양식을 제공합니다. "

UML은 객체-기술 산업 전체에서 소프트웨어 모델링의 베스트 프랙티스 집합을 나타냅니다. UML에 대한 자세한 정보는 http://www-306.ibm.com/software/rational/uml 웹 사이트를 방문하십시오.



Rational Unified Process   2003.06.15