대화 레이어 다이어그램을 사용하여 응용 프로그램의 아키텍처를 디자인하고 코드가 디자인과 맞는지 여부를 확인할 수 있습니다. Team Foundation Server 작업 항목을 모델 요소에 연결하여 모델과 관련된 작업을 ...

대화
레이어 다이어그램을 사용하여 응용 프로그램의 아키텍처를 디자인하고 코드가 디자인과 맞는지 여부를 확인할 수 있습니다. Team Foundation Server 작업 항목을 모델 요소에 연결하여 모델과 관련된 작업을 추적할 수 있습니다. 따라서 새 솔루션을 디자인하든 기존 솔루션을 업데이트하든 상관없이 모델, IDE 및 코드 간의 추적이 가능합니다. 

응용 프로그램의 레이어 다이어그램을 검토하여 응용 프로그램의 아키텍처를 살펴보는 것부터 시작하겠습니다. 

팀의 설계자가 레이어 다이어그램의 디자인과 맞추기 위해 이 응용 프로그램의 일부를 리팩터링할 것을 제안했습니다. 이 작업은 백로그에 있으며 레이어 다이어그램에 연결되어 있습니다.



작업
팀 탐색기의 [내 작업]에서 해당 작업의 작업 항목을 두 번 클릭하여 엽니다. 

작업 항목에서 [기타 링크]를 클릭합니다.

[모델 링크] 아래에서 "모델 링크"를 두 번 클릭하여 PetShopModels 프로젝트의 Petshop.layerdiagram을 엽니다.

대화
레이어 다이어그램에서는 레이어에 매핑된 네임스페이스 간의 허용되는 종속성을 보여 줍니다. 레이어 다이어그램은 화이트보드의 그림과 매우 비슷합니다. 즉, 도형이 있고 이러한 도형 간의 관계가 있습니다. 솔루션에 레이어 다이어그램을 준비해 두면 의도한 아키텍처를 단순히 설명하는 것 이상의 많은 작업을 수행할 수 있습니다. 레이어 다이어그램을 기준으로 코드의 유효성을 검사하여 잘못된 종속성이 있는지 여부를 확인할 수 있습니다. 이 단계를 체크 인 및 빌드 프로세스의 일부로 포함하면 디자인과 충돌하는 코드 변경 사항을 보다 쉽게 찾을 수 있습니다.



작업
[아키텍처] 메뉴에서 [창], [레이어 탐색기]를 차례로 선택합니다.

레이어 다이어그램에서 Business 레이어를 클릭합니다. 레이어 탐색기에서 아티팩트를 살펴봅니다.

레이어 다이어그램에서 Business 레이어를 마우스 오른쪽 단추로 클릭하고 [아키텍처 유효성 검사]를 선택합니다. 이 작업에는 약간의 시간이 걸립니다.

[오류 목록] 창에서 빨간색 X로 표시된 오류를 살펴봅니다. 첫 번째 오류를 두 번 클릭하여 이 오류를 생성한 코드를 확인합니다.

대화
코드의 일부 종속성이 디자인과 충돌한다는 것을 알 수 있습니다. Order 클래스의 Insert 메서드는 다른 두 클래스의 메서드를 잘못 호출합니다. 레이어 다이어그램에서 Insert 메서드는 다른 두 클래스와 직접 통신하면 안 되는 Business 레이어에 매핑되어 있습니다. Business 레이어는 대신 PaymentGateway 레이어와 통신해야 합니다.

레이어 유효성 검사를 통해 코드의 잘못된 부분을 알았으므로 이러한 충돌을 수정할 때는 다이어그램의 유효성을 다시 검사하여 수정이 올바르게 되었는지 확인해야 합니다.



작업
레이어 다이어그램에서 PaymentGateway 레이어를 클릭합니다.

레이어 탐색기 창에서 PaymentGatway 네임스페이스를 봅니다.

솔루션 탐색기에서 PaymentGateway 프로젝트, PaymentProcessor 형식을 차례로 확장한 다음 멤버 메서드를 검토합니다.

PaymentProcessor.cs 파일을 열어 멤버 메서드 정의를 확인합니다.

대화
PaymentGateway 레이어에 매핑된 코드를 살펴보니 Insert 메서드의 일부 기능은 ProcessPayment 메서드에 위임할 수 있습니다. 이러한 두 메서드의 대략적 구조와 호출 시퀀스를 시각적으로 비교할 수 있도록 시퀀스 다이어그램을 만들어 봅시다.



작업
첫 번째 오류를 두 번 클릭하여 코드를 표시합니다. Insert 메서드의 정의가 표시됩니다.

Insert 메서드 정의의 내부를 아무 곳이나 마우스 오른쪽 단추로 클릭하고 [시퀀스 다이어그램 생성]을 선택합니다. 제안된 모든 옵션을 그대로 두고 [확인]을 클릭합니다.

시퀀스 다이어그램에서는 Insert 메서드가 CreditCardService 클래스와 OnlinePaymentService 클래스의 메서드를 호출한다는 것을 보여 줍니다.

PaymentProcessor.cs 파일에서 ProcessPayment 메서드 정의의 내부를 마우스 오른쪽 단추로 클릭하고 [시퀀스 다이어그램 생성]을 선택합니다. 제안된 모든 옵션을 그대로 두고 [확인]을 클릭합니다.

두 시퀀스 다이어그램 모두를 전환하면서 Insert 메서드 및ProcessPayment 메서드의 대상이 되는 클래스와 그렇지 않은 클래스를 비교합니다. 유사점과 차이점을 확인합니다.

대화
이 두 메서드는 몇 가지 차이점을 제외하고는 매우 비슷함을 알 수 있습니다. Insert 메서드를 리팩터링하여 ProcessPayment를 호출해 보겠습니다. 그런 다음 유효성 검사를 다시 실행하여 변경된 내용이 종속성 충돌을 해결했는지 확인해 봅니다. 



작업
Insert 메서드 정의에서 다음 두 개의 문 사이에 있는 코드를 찾습니다.

if (order.CreditCard.CardType == "CreditCardProviderA" || order.CreditCard.CardType == "CreditCardProviderB") 

및

CalculatePaymentInfo(order);

이 코드를 다음 코드로 바꿉니다.

PaymentGateway.PaymentProcessor processor = new PaymentGateway.PaymentProcessor();
if (!processor.ProcessPayment(order))
{
          return OrderStatus.Failed;
}


아키텍처의 유효성을 검사합니다.




대화

이 비디오에서는 레이어 다이어그램이 응용 프로그램의 의도한 아키텍처를 얼마나 잘 설명하는지 살펴보고 레이어 유효성 검사를 사용하여 디자인과 충돌하는 코드 부분을 확인하는 방법을 살펴보았습니다. 또한 시퀀스 다이어그램을 사용하여 서로 다른 클래스 간의 메서드 흐름을 살펴보았습니다. UML 모델을 사용하여 아키텍처를 설명하는 방법을 배우려면 관련 비디오를 참조하십시오.
대체(fallback) 위치'는 C++ 고급 옵션에서 구성할 수 있습니다. 이 위치를 사용하려면 확인]을 누르십시오. 이 세션에서 C++ 검색 정보와 IntelliSense를 사용하지 않도록 설정하려면 취소]를 누르십시오. ... 대체로 이 위치는 관리 경로여야 합니다. 팀 프로젝트 컬렉션에 연결된 사이트 컬렉션은 기본적으로 이 위치에 만들어집니다. 대화 UML 다이어그램을 사용하여 응용 프로그램의 사용자 요구 사항 및 디자인을 모델링하면 팀 및 관련자의 응용 프로그램에 대한 토론을 쉽게 할 수 있습니다. 또한 응용 프로그램이 사용자의 요구를 충족하는지 확인하여 ... 대화 Visual Studio에서는 IntelliTrace 독립 실행형 수집기를 사용하여 이미 배포한 응용 프로그램에 대한 진단 데이터를 가져올 수 있습니다. 프로덕션 환경 구성을 변경할 필요 없이 응용 프로그램이 배포된 ... 대화 레이어 다이어그램을 사용하여 응용 프로그램의 아키텍처를 디자인하고 코드가 디자인과 맞는지 여부를 확인할 수 있습니다. Team Foundation Server 작업 항목을 모델 요소에 연결하여 모델과 관련된 작업을 ... 대화 상자 리소스의 ID입니다. ID를 입력하면 새 대화 상자 리소스가 만들어집니다. 기존 것을 사용하려면 목록에서 선택하십시오. 기본 클래스가 CDialog, CFormView, COlePropertyPage, CPropertyPage ... 대화 상자 편집기에서 마지막으로 %1 컨트롤을 사용했을 때 저장한 데이터에서 컨트롤 상태를 다시 로드할 수 없습니다. 대화 상자에서 컨트롤이 초기화되지 않습니다. 대화 상자의 너비를 변경하지 않고 자동 크기 조정]을 선택했습니다. 그러나 자동 크기 조정에서는 모든 컨트롤을 현재의 대화 상자 너비에 맞출 수 없는 것으로 판단했습니다. 반드시 대화 상자 너비를 동일하게 유지해야 하는 ... 대화 성능 및 부하 테스트는 모두 응용 프로그램 또는 서비스가 실제 사용자 부하에 따라 어떻게 크기 조정되는지를 이해하는 데 중요한 요소입니다. Visual Studio Ultimate 2012에 포함된 웹 성능 및 ...