코드 생성

팀에서 모델로부터 코드를 생성하여 사용자 요구 사항의 변경에 매우 신속하고 안정적으로 대응할 수 있습니다.팀에서 유사한 제품 계열을 개발하거나 자주 사용되는 패턴에 의존하는 경우 코드 생성은 특히 효과적입니다.

프로그램 코드, 스키마, 문서, 리소스 및 임의 종류의 다른 아티팩트를 생성할 수 있습니다.팀에서 UML(Unified Modeling Language) API를 사용하여 모델을 조사하는 텍스트 템플릿을 작성할 수 있습니다.자세한 내용은 방법: UML 모델에서 파일 생성을 참조하십시오.

대부분의 경우 팀에서 모델로부터 코드를 일부만 생성합니다.partial 클래스 등의 기법을 사용하여 생성된 코드를 직접 작성된 코드와 분리할 수 있습니다.생성된 코드를 절대로 편집하지 마십시오.대신 모델을 업데이트하면 코드가 업데이트됩니다.

코드 생성은 다음과 같은 경우에 유용합니다.

  • 제품 라인:Fabrikam, Inc.에서는공항의 수하물 처리 시스템을 만들어 설치합니다.소프트웨어의 많은 기능은 설치된 소프트웨어마다 매우 유사하지만 소프트웨어 구성은 설치된 수하물 처리 시스템의 유형과 이러한 요소가 컨베이어 벨트에 의해 서로 연결되는 방식에 따라 달라집니다.계약이 시작될 때 Fabrikam의 팀은 공항 관리 팀과 함께 요구 사항을 논의하고 UML 동작 다이어그램을 사용하여 컨베이어 벨트 계획을 세웁니다.팀은 이 모델에서 구성 파일, 프로그램 코드 및 사용자 설명서를 생성합니다.또한 코드에 대한 추가 및 조정을 수동으로 수행하여 이 작업을 완료합니다.한 작업에서 다음 작업으로 넘어갈 때는 생성된 요소의 범위를 확장합니다.

  • [ 패턴:Contoso, Ltd의 개발자는 종종 웹 사이트를 제작하는데UML 클래스 다이어그램을 사용하여 탐색 스키마를 디자인하고 클래스 및 연결을 사용하여 웹 페이지와 탐색 링크를 나타냅니다.웹 사이트 코드의 많은 부분은 생성될 수 있습니다.각 웹 페이지는 균일한 패턴을 따르는 몇 개의 클래스와 리소스 파일 항목에 대응합니다.결과는 직접 작성된 코드보다 안정적이고 융통성이 큽니다.

  • 스키마:Humongous Insurance는 전 세계에서 수천 대의 시스템을 사용하고 있습니다.이러한 시스템에서 사용하는 데이터베이스, 언어 및 인터페이스는 각기 다릅니다.중앙 아키텍처 팀에서는 비즈니스 개념 및 프로세스의 내부 모델을 게시합니다.다이어그램을 사용하면 디자인에 대해 쉽게 논의할 수 있습니다.로컬 팀은 이러한 모델에서 데이터베이스 및 XML 스키마의 여러 부분, C# 선언 및 기타 요소를 생성할 수 있습니다.

사용자 지정 모델링 언어

이전 예제에서 각 회사에서는 모델을 매우 특수하게 사용합니다.동작 다이어그램을 사용하여 수하물 트랙을 나타낼 수 있지만 공식적인 수하물 트랙 표기법이 훨씬 나을 것입니다.Visual Studio에서는 다음과 같은 방법을 지원합니다.

  • 스테레오타입을 사용하여 UML 다이어그램을 사용자 지정합니다.스테레오타입을 사용하여 여러 가지 형식의 요소를 구별하고(승객 수속대와 X선 검사대를 구분하고) 각 요소에 추가 특성 값을 기록할 수 있습니다.자세한 내용은 방법: 프로필을 정의하여 UML 확장을 참조하십시오.

  • DSL(Domain-Specific Language)을 직접 디자인합니다.대상 도메인에서 많은 작업을 수행하는 경우 요구 사항에 대한 보다 구체적인 조정에 추가적인 노력을 기울이는 것이 좋습니다.자세한 내용은 시각화 및 모델링 SDK - 도메인별 언어을 참조하십시오.

팀에서 Visual Studio SDK를 사용하여 이러한 형식의 모델에 대한 메뉴 명령, 유효성 검사 테스트 및 도구 상자 항목을 만들 수 있습니다.다이어그램을 통합하고 데이터베이스와 같은 외부 리소스에 연결할 수 있는 Visual Studio Extension을 만들 수도 있습니다.