Share via


코드 생성

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

프로그램 코드, 스키마, 문서, 리소스 및 임의 종류의 다른 아티팩트를 생성할 수 있습니다. 팀에서 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을 만들 수도 있습니다.