Share via


시나리오 개요: 시각화 및 모델링을 사용하여 디자인 변경

소프트웨어 시스템에서 사용자의 요구를 충족하도록 Visual Studio Ultimate에서 시각화 및 모델링 도구를 사용하여 시스템의 디자인을 업데이트하거나 변경하도록 합니다. 이러한 도구에는 UML(Unified Modeling Language) 다이어그램, 레이어 다이어그램, 코드 기반 그래프, 시퀀스 다이어그램 및 클래스 다이어그램이 포함됩니다. 예를 들어 이러한 도구를 사용하여 다음 작업을 수행할 수 있습니다.

  • 사용자의 요구 사항 및 비즈니스 프로세스 명시

  • 기존 코드 시각화 및 탐색

  • 기존 시스템에 대한 변경 내용 기술

  • 시스템이 요구 사항을 충족하는지 확인

  • 코드와 디자인의 일관성 유지

이 연습에서는 다음과 같은 목표를 달성하기 위해 예제 시나리오를 사용합니다.

  • 도구의 주요 사항에 대해 개괄적으로 살펴보고 도구 사용에 따라 소프트웨어 프로젝트에서 얻을 수 있는 이점에 대해 설명합니다.

  • 두 팀이 개발 방법에 관계없이 이러한 도구를 사용하는 방법을 예제 시나리오를 통해 보여 줍니다.

이러한 도구와 지원되는 시나리오에 대한 자세한 내용은 다음을 참조하십시오.

항목 내용

단원

설명

시나리오 개요

예제 시나리오와 참가자에 대해 설명합니다.

소프트웨어 개발에서 아키텍처 및 모델링 다이어그램의 역할

이러한 도구가 소프트웨어 개발 수명 주기 동안 수행하는 역할에 대해 설명합니다.

시스템에 대한 정보 이해 및 전달

참가자가 이 시나리오에서 도구를 사용하는 방법을 개괄적으로 설명합니다.

시각화 및 모델링을 사용하여 시스템 업데이트

각 도구에 대한 세부 정보를 제공하고 이 시나리오에서 도구를 사용하는 방법에 대해 설명합니다.

시나리오 개요

이 시나리오에서는 가상의 두 회사인 Dinner Now 및 Lucerne Publishing의 소프트웨어 개발 수명 주기 에피소드에 대해 설명합니다. Dinner Now는 시애틀에서 웹 기반 음식 배달 서비스를 제공합니다. 고객은 Dinner Now 웹 사이트에서 음식을 주문하고 음식 값을 지불할 수 있습니다. 그러면 배달 가능한 가장 가까운 식당으로 주문 내용이 전달됩니다. 뉴욕에 위치한 회사인 Lucerne Publishing은 오프라인과 온라인 모두에서 다양한 비즈니스를 운영합니다. 예를 들어 고객이 식당 리뷰를 게시할 수 있는 웹 사이트를 운영합니다.

Lucerne은 최근에 Dinner Now를 인수했으며 다음과 같이 변경하려고 합니다.

  • Dinner Now에 식당 리뷰 기능을 추가하여 웹 사이트를 통합합니다.

  • Dinner Now의 지불 시스템을 Lucerne의 지불 시스템으로 교체합니다.

  • Dinner Now의 서비스를 지역으로 확장합니다.

Dinner Now는 SCRUM 및 eXtreme Programming을 사용합니다. 이들 프로그램은 강력한 테스트 기능을 갖추고 있으며 거의 모든 코드를 지원합니다. 먼저 작동하는 소규모 시스템을 만든 다음 점차 기능을 추가하여 위험을 최소화합니다. 짧은 주기로 자주 반복하여 코드를 개발합니다. 이렇게 하면 변경 내용을 충실하게 반영하고 코드를 자주 리팩터링할 수 있으며 "처음부터 완벽하게 디자인(Big Design Up Front)"할 필요가 없습니다.

Lucerne은 매우 크고 복잡한 시스템 컬렉션을 유지 관리하고 있습니다. 그 중에는 40년이 넘은 시스템도 있습니다. 레거시 코드가 복잡하고 광범위하므로 이 회사는 시스템을 변경하는 데 매우 주의합니다. 따라서 매우 엄격한 개발 프로세스에 따라 세부적인 솔루션을 디자인하고 개발 과정에서 발생하는 변경 사항과 디자인을 문서화합니다.

두 팀 모두 사용자의 요구를 충족하는 시스템을 개발하기 위해 Visual Studio Ultimate의 모델링 다이어그램을 사용합니다. Team Foundation Server를 다른 도구와 함께 사용하여 작업을 계획, 구성 및 관리합니다.

Team Foundation 서버에 대한 자세한 내용은 다음을 참조하십시오.

  • 작업 계획 및 추적

  • 업데이트한 코드 테스트, 유효성 검사 및 체크 인

소프트웨어 개발에서 아키텍처 및 모델링 다이어그램의 역할

다음 표에서는 소프트웨어 개발 수명 주기의 다양한 단계에서 이러한 도구가 수행하는 역할에 대해 설명합니다.

사용자 요구 사항 모델링

비즈니스 프로세스 모델링

시스템 아키텍처 및 디자인

코드 시각화 및 탐색

확인

사용 사례 다이어그램(UML)

동작 다이어그램(UML)

클래스 다이어그램(UML)

구성 요소 다이어그램(UML)

시퀀스 다이어그램(UML)

DSL(Domain-Specific Language) 다이어그램

레이어 다이어그램, 레이어 유효성 검사

종속성 그래프(코드 기반)

시퀀스 다이어그램(코드 기반)

클래스 디자이너(코드 기반)

아키텍처 탐색기

UML 다이어그램 및 레이어 다이어그램을 그리려면 모델링 프로젝트를 기존 솔루션의 일부로 만들거나 새로 만들어야 합니다. 이러한 다이어그램은 모델링 프로젝트 내부에 만들어야 합니다. UML 다이어그램의 항목은 일반 모델의 일부이고, UML 다이어그램은 해당 모델의 뷰입니다. 레이어 다이어그램의 항목은 모델링 프로젝트 내에 있지만 일반 모델에는 저장되지 않습니다. 코드 기반 종속성 그래프, 시퀀스 다이어그램 및 클래스 다이어그램은 일반적으로 모델링 프로젝트 외부에 있습니다.

참조

아키텍처의 대체 뷰를 보기 위해 동일한 모델의 특정 요소를 여러 다이어그램에 다시 사용할 수 있습니다. 예를 들어 구성 요소를 다른 구성 요소 다이어그램 또는 시퀀스 다이어그램으로 끌어서 행위자 역할을 하도록 만들 수 있습니다. 자세한 내용은 UML 모델 및 다이어그램 편집를 참조하십시오.

두 팀 모두 레이어 유효성 검사를 사용하여 개발 중인 코드가 디자인과 일관성을 유지하는지 확인합니다.

참조

  • 코드와 디자인의 일관성 유지

  • 논리 아키텍처 설명: 레이어 다이어그램

  • 레이어 다이어그램에 대해 코드 유효성 검사

    참고

    Visual Studio Premium에서는 시각화 및 모델링을 위해 이러한 그래프와 다이어그램의 레이어 유효성 검사 및 읽기 전용 버전을 지원합니다.

시스템에 대한 정보 이해 및 전달

미리 지정된 Visual Studio Ultimate 모델링 다이어그램 사용 순서는 없으므로 사용자의 필요와 방법에 맞게 사용하면 됩니다. 일반적으로 팀에서는 전체 프로젝트 기간 동안 모델을 반복적으로 자주 재사용합니다. 각 다이어그램은 개발 중인 시스템의 여러 가지 측면을 이해, 설명 및 전달하는 데 도움이 되는 특정 기능을 제공합니다.

Dinner Now와 Lucerne은 다이어그램을 공용 언어로 사용하여 서로 간에 또는 프로젝트 관련자와 통신합니다. 예를 들어 Dinner Now에서는 다이어그램을 사용하여 다음과 같은 작업을 수행합니다.

  • 기존 코드 시각화

  • Lucerne과 새 사용자 스토리 또는 업데이트된 사용자 스토리에 대해 의견 교환

  • 새 사용자 스토리 또는 업데이트된 사용자 스토리를 지원하는 데 필요한 변경 작업 파악

Lucerne에서는 다이어그램을 사용하여 다음과 같은 작업을 수행합니다.

  • Dinner Now의 비즈니스 프로세스 파악

  • 시스템 디자인 이해

  • Dinner Now와 새 사용자 요구 사항 또는 업데이트된 사용자 요구 사항에 대해 의견 교환

  • 시스템 업데이트 문서화

다이어그램은 팀이 좀더 쉽게 작업을 계획하고, 관리, 추적할 수 있도록 Team Foundation Server와 통합됩니다. 예를 들어 모델을 사용하여 테스트 사례와 개발 작업을 식별하고 작업을 추정합니다. Lucerne에서는 진행률을 모니터링하여 시스템이 사용자의 요구 사항을 충족하는지 확인할 수 있도록 Team Foundation Server 작업 항목을 모델 요소에 연결합니다. 예를 들면 사용 사례를 테스트 사례 작업 항목에 연결하여, 모든 테스트에 통과한 경우 사용 사례가 수행되는지 확인할 수 있습니다.

팀에서는 변경 내용을 체크 인하기 전에 레이어 유효성 검사 및 자동 테스트를 포함하는 빌드를 실행하여 디자인과 테스트에 대해 코드의 유효성을 검사합니다. 이를 통해 업데이트된 코드가 디자인과 충돌하지 않고 이전에 작동하던 기능을 중단시키지 않는지 확인할 수 있습니다.

참조

  • 비즈니스 프로세스에서 시스템의 역할 이해

  • 새 사용자 요구 사항 또는 업데이트된 사용자 요구 사항 설명

  • 모델에서 테스트 만들기

  • 기존 시스템에 대한 변경 내용 식별

  • 코드와 디자인의 일관성 유지

  • 모델 만들기 및 사용에 관한 일반 팁

  • 작업 계획 및 추적

  • 업데이트한 코드 테스트, 유효성 검사 및 체크 인

비즈니스 프로세스에서 시스템의 역할 이해

Lucerne은 Dinner Now의 비즈니스 프로세스에 대해 자세히 알아보려고 합니다. Lucerne은 Dinner Now에 대해 보다 쉽게 이해하기 위해 다음과 같은 다이어그램을 만듭니다.

다이어그램

설명

사용 사례 다이어그램(UML)

참조

  • Dinner Now 시스템에서 지원하는 작업

  • 작업을 수행하는 사람 및 외부 시스템

  • 각 작업을 지원하는 시스템의 주요 구성 요소

  • 비즈니스 프로세스 중에서 현재 시스템의 범위를 벗어난 부분(예: 음식 배달)

동작 다이어그램(UML)

참조

고객이 주문할 때 발생하는 단계 흐름

클래스 다이어그램(UML)

참조

토론에 사용되는 비즈니스 엔터티/용어 및 엔터티 간의 관계 예를 들어 주문 및 메뉴 항목은 이 시나리오의 어휘에 속합니다.

예를 들어 Lucerne에서는 Dinner Now 웹 사이트에서 수행되는 작업 및 누가 해당 작업을 수행하는지 파악하기 위해 다음과 같은 사용 사례 다이어그램을 만듭니다.

UML 사용 사례 다이어그램

UML 사용 사례 다이어그램

다음 동작 다이어그램은 고객이 Dinner Now 웹 사이트에서 주문하는 단계의 흐름을 나타냅니다. 이 릴리스에서 주석 요소는 역할을 식별하고 선은 역할별 단계를 구성하는 스윔 레인을 만듭니다.

UML 동작 다이어그램

UML 동작 다이어그램

다음 클래스 다이어그램은 주문 프로세스에 참여하는 엔터티를 나타냅니다.

UML 클래스 다이어그램

UML 클래스 다이어그램

새 사용자 요구 사항 또는 업데이트된 사용자 요구 사항 설명

Lucerne에서는 고객이 식당 리뷰를 읽거나 게시할 수 있도록 Dinner Now 시스템에 기능을 추가하려고 합니다. Dinner Now에 이 새로운 요구 사항을 설명하고 함께 검토할 수 있도록 다음 다이어그램을 업데이트합니다.

다이어그램

설명

사용 사례 다이어그램(UML)

참조

"식당 리뷰 쓰기"에 대한 새 사용 사례

동작 다이어그램(UML)

참조

고객이 식당 리뷰를 쓸 때 발생하는 단계

클래스 다이어그램(UML)

참조

리뷰를 저장하는 데 필요한 데이터

예를 들어 다음 사용 사례 다이어그램에는 새로운 요구 사항을 나타내는 새 "리뷰 쓰기" 사용 사례가 포함되어 있습니다. 쉽게 식별할 수 있도록 이 사용 사례는 다이어그램에서 주황색으로 강조 표시됩니다.

UML 사용 사례 다이어그램

UML 사용 사례 다이어그램

다음 동작 다이어그램에는 새로운 사용 사례의 단계 흐름을 설명하는 새로운 요소(주황색)가 포함되어 있습니다.

UML 동작 다이어그램

UML 동작 다이어그램

다음 클래스 다이어그램에는 팀에서 세부 정보에 대해 토론할 수 있도록 새 리뷰 클래스 및 새 리뷰 클래스와 다른 클래스와의 관계가 포함되어 있습니다. 고객과 식당마다 리뷰가 여러 개 있을 수 있습니다.

UML 클래스 다이어그램

UML 클래스 다이어그램

모델에서 테스트 만들기

두 팀 모두 시스템을 변경하기 전에 시스템과 구성 요소에 대한 전체 테스트를 수행하는 데 동의합니다. Lucerne에는 시스템 및 구성 요소 수준 테스트를 수행하는 특별 팀이 있습니다. 이 팀은 Dinner Now에서 만든 테스트를 다시 사용하고 UML 다이어그램으로 이러한 테스트를 구성합니다.

  • 각 사용 사례는 하나 이상의 테스트로 표시됩니다. 사용 사례 다이어그램의 요소는 Team Foundation Server의 테스트 사례 작업 항목에 연결됩니다.

  • 동작 다이어그램 또는 시스템 수준 시퀀스 다이어그램의 각 흐름은 하나 이상의 테스트에 연결됩니다. 테스트 팀에서는 동작 다이어그램을 통해 가능한 경로를 모두 테스트하는지 체계적으로 확인합니다.

  • 테스트를 설명하는 데 사용되는 용어는 사용 사례, 클래스 및 동작 다이어그램에 정의된 용어를 기반으로 합니다.

요구 사항이 변경되고 변경 내용을 반영하기 위해 다이어그램이 업데이트될 때 테스트도 업데이트됩니다. 요구 사항은 테스트에 통과하는 경우에만 충족된 것으로 간주됩니다. 가능하거나 실용적인 경우 구현 시작 전에 테스트가 UML 다이어그램을 기반으로 정의됩니다.

참조

기존 시스템에 대한 변경 내용 식별

Dinner Now는 새 요구 사항을 충족하는 데 필요한 비용을 예측해야 합니다. 비용은 이 변경이 시스템의 다른 부분에 미치는 영향에 따라 부분적으로 달라집니다. 이해를 돕기 위해 Dinner Now 개발자 중 한 명이 기존 코드로부터 다음과 같은 그래프와 다이어그램을 만듭니다.

그래프 또는 다이어그램

나타내는 요소

종속성 그래프

참조

코드의 종속성과 기타 관계

예를 들어 Dinner Now에서는 어셈블리와 어셈블리의 종속성을 간략하게 파악하기 위해 먼저 어셈블리 종속성 그래프를 검토할 수 있습니다. 그래프로 드릴인투하여 어셈블리의 네임스페이스와 클래스를 탐색할 수 있습니다.

또한 Dinner Now는 그래프를 만들어 코드의 특정 영역 및 다른 종류의 관계를 탐색할 수 있습니다. Dinner Now는 아키텍처 탐색기 또는 솔루션 탐색기를 사용하여 원하는 영역과 관계를 찾아서 선택할 수 있습니다.

코드 기반 시퀀스 다이어그램

자세한 내용은 시퀀스 다이어그램에서 코드 시각화를 참조하십시오.

인스턴스 간의 상호 작용 시퀀스

시퀀스 다이어그램은 메서드 정의에서 생성되며 코드에서 메서드 동작을 구현하는 방법을 이해하는 데 도움이 됩니다.

코드 기반 클래스 다이어그램

자세한 내용은 방법: 프로젝트에 클래스 다이어그램 추가(클래스 디자이너)를 참조하십시오.

코드의 기존 클래스

예를 들어 개발자는 Architecture 탐색기를 사용하여 자신이 집중할 네임스페이스를 선택하고 코드에서 종속성 그래프를 작성합니다. 그런 다음 새 시나리오의 영향을 받는 영역을 중심으로 그래프의 범위를 조정합니다. 해당 영역이 그래프에서 선택되고 강조 표시됩니다.

네임스페이스 종속성 그래프

네임스페이스 종속성 그래프

개발자는 선택된 네임스페이스를 확장하여 클래스, 메서드 및 관계를 봅니다.

확장된 네임스페이스 종속성 그래프

그룹 간 링크가 표시되어 있는 확장된 네임스페이스 종속성 그래프

개발자는 코드를 조사하여 영향을 받는 클래스와 메서드를 찾습니다. 그런 다음 코드에서 시퀀스 다이어그램과 클래스 다이어그램을 생성하여 변경 내용을 설명하고 토론합니다. 자세한 내용은 코드 시각화를 참조하십시오.

각 변경의 효과를 보려면 각 변경 후 코드에서 종속성 그래프와 시퀀스 다이어그램을 다시 생성합니다.

팀에서는 시스템의 다른 부분(예: 구성 요소, 상호 작용)에 대한 변경 내용을 설명하기 위해 화이트보드에 해당 요소를 그릴 수 있습니다. 또한 두 팀 모두 세부 정보를 캡처, 관리 및 이해할 수 있도록 Visual Studio에서 다음과 같은 다이어그램을 그릴 수 있습니다.

다이어그램

설명

동작 다이어그램(UML)

참조

고객이 식당에서 다시 주문할 때 시스템에서 확인 후 고객에게 리뷰를 작성하라는 메시지를 표시하는 단계의 흐름

클래스 다이어그램(UML)

참조

논리 클래스 및 논리 클래스 관계 예를 들어 리뷰 및 리뷰와 다른 엔터티(예: 식당, 메뉴, 고객)와의 관계에 대해 설명하는 새 클래스가 추가됩니다.

리뷰를 고객과 연결하려면 시스템에서 고객 정보를 저장해야 합니다. UML 클래스 다이어그램을 사용하여 이러한 세부 정보를 명확하게 나타낼 수 있습니다.

코드 기반 클래스 다이어그램

자세한 내용은 방법: 프로젝트에 클래스 다이어그램 추가(클래스 디자이너)를 참조하십시오.

코드의 기존 클래스

구성 요소 다이어그램(UML)

참조

시스템의 상위 요소(예: Dinner Now 웹 사이트 및 인터페이스) 이러한 인터페이스는 제공 및 사용되는 메서드 또는 서비스를 통해 각 구성 요소가 상호 작용하는 방법을 정의합니다.

시퀀스 다이어그램(UML)

참조

인스턴스 간의 상호 작용 시퀀스

예를 들어 다음 구성 요소 다이어그램은 Dinner Now 웹 사이트 구성 요소의 일부인 새 구성 요소를 보여 줍니다. ReviewProcessing 구성 요소는 리뷰 작성 기능을 처리하며 주황색으로 강조 표시됩니다.

UML 구성 요소 다이어그램

UML 구성 요소 다이어그램

다음 시퀀스 다이어그램은 Dinner Now 웹 사이트에서 고객이 특정 식당에 이전에 주문한 적이 있는지 여부를 확인할 때 발생하는 상호 작용 시퀀스를 보여 줍니다. 이전에 주문한 적이 있으면 고객에게 리뷰를 작성하라는 메시지가 표시됩니다. 작성된 리뷰는 식당으로 전송되어 웹 사이트에 게시됩니다.

UML 시퀀스 다이어그램

UML 시퀀스 다이어그램

코드와 디자인의 일관성 유지

Dinner Now에서는 업데이트된 코드가 디자인과 일관성을 유지하는지 확인해야 합니다. 따라서 시스템의 기능 레이어를 설명하고 레이어 간에 허용된 종속성을 지정하고 솔루션 아티팩트를 레이어에 연결하는 레이어 다이어그램을 만듭니다.

다이어그램

설명

레이어 다이어그램

참조

코드의 논리 아키텍처

레이어 다이어그램은 Visual Studio 솔루션의 아티팩트를 구성한 후 레이어라는 추상 그룹에 매핑합니다. 이러한 레이어는 아티팩트가 시스템에서 수행하는 역할, 작업 또는 기능을 식별합니다.

레이어 다이어그램은 계획된 시스템 디자인을 설명하고 해당 디자인에 대해 변화하는 코드의 유효성을 검사하는 데 도움이 됩니다.

레이어를 만들려면 솔루션 탐색기, 종속성 그래프 또는 아키텍처 탐색기에서 항목을 끌어 옵니다. 새 레이어를 그리려면 도구 상자를 사용하거나 다이어그램 화면을 마우스 오른쪽 단추로 클릭합니다.

기존 종속성을 보려면 레이어 다이어그램 화면을 마우스 오른쪽 단추로 클릭한 다음 종속성 생성을 클릭합니다. 계획된 종속성을 지정하려면 새 종속성을 그립니다.

예를 들어 다음 레이어 다이어그램은 레이어 간의 종속성과 각 레이어에 연결된 아티팩트 수를 나타냅니다.

통합 지불 시스템의 레이어 다이어그램

레이어 다이어그램

코드 개발 중에 디자인과 충돌하지 않도록 팀에서는 Team Foundation Build에서 실행되는 빌드에 레이어 유효성 검사를 사용합니다. 또한 체크 인 작업에서 레이어 유효성 검사가 필요한 사용자 지정 MSBuild 작업을 만듭니다. 빌드 보고서를 사용하여 유효성 검사 오류를 수집합니다.

참조

모델 만들기 및 사용에 관한 일반 팁

  • 대부분의 다이어그램은 선으로 연결된 노드로 구성됩니다. 다이어그램 형식별로 도구 상자에서 다른 종류의 노드와 선을 제공합니다.

    도구 상자를 열려면 보기 메뉴에서 도구 상자를 클릭합니다.

  • 노드를 만들려면 도구 상자에서 다이어그램으로 노드를 끌어 옵니다. 특정 종류의 노드를 기존 노드로 끌어 와야 합니다. 예를 들어 구성 요소 다이어그램에서 새 포트를 기존 구성 요소에 추가해야 합니다.

  • 선 또는 연결을 만들려면 도구 상자에서 해당 도구를 클릭하고 소스 노드와 대상 노드를 차례로 클릭합니다. 일부 선은 특정 종류의 노드 간에만 만들 수 있습니다. 포인터를 가능한 소스 또는 대상으로 이동하면 연결을 만들 수 있는지 여부가 포인터에 표시됩니다.

  • UML 다이어그램에서 항목을 만들면 일반 모델에도 해당 항목이 추가됩니다. 모델링 프로젝트의 UML 다이어그램은 이러한 모델의 뷰입니다. 레이어 다이어그램의 항목은 모델링 프로젝트의 일부이지만 일반 모델에는 저장되지 않습니다.

    모델을 보려면 아키텍처 메뉴에서 을 가리킨 다음 UML 모델 탐색기를 클릭합니다.

  • 경우에 따라 특정 항목을 UML 모델 탐색기에서 UML 다이어그램으로 끌어 올 수 있습니다. 동일한 모델 내의 일부 요소를 여러 다이어그램에 사용하여 아키텍처의 대체 뷰를 표시할 수 있습니다. 예를 들어 구성 요소를 다른 구성 요소 다이어그램 또는 시퀀스 다이어그램으로 끌어 와서 행위자로 사용할 수 있습니다.

  • Visual Studio Ultimate는 UML 2.1.2를 지원합니다. 이 개요에서는 이 릴리스에서 제공하는 UML 다이어그램의 주요 기능에 대해서만 설명하지만 UML과 그 용도에 대해 자세히 설명하는 서적도 많습니다.

자세한 내용은 소프트웨어 디자인용 모델 개발를 참조하십시오.

작업 계획 및 추적

Visual Studio Ultimate 모델링 다이어그램은 작업을 좀더 쉽게 계획하고 관리하며 추적할 수 있는 Team Foundation Server와 통합됩니다. 두 팀 모두 모델을 사용하여 테스트 사례와 개발 작업을 식별하고 작업을 추정합니다. Lucerne에서는 Team Foundation Server 작업 항목을 만들어 사용 사례, 구성 요소 등의 모델 요소에 연결합니다. 이를 통해 진행률을 모니터링하고 사용자 요구 사항에 따라 작업을 다시 추적하여 변경 내용이 사용자 요구 사항을 계속 충족하는지 확인할 수 있습니다.

팀에서는 작업을 진행하면서 작업 항목을 업데이트하여 작업에 소요된 시간을 반영합니다. 또한 다음 Team Foundation Server 기능을 사용하여 작업을 모니터링하고 작업 상태를 보고합니다.

  • 계획된 작업을 예정된 시간 내에 완료하는지 여부를 보여 주는 일일 번다운 보고서. Team Foundation Server에서 비슷한 보고서를 생성하여 버그 진행률을 추적합니다.

  • 팀에서 작업 부하를 모니터링하여 멤버 간에 분산하는 데 도움이 되도록 Microsoft Excel을 사용하는 반복 통합 문서. 이 통합 문서는 Team Foundation Server에 연결되며 정기 회의에서 토론 주제를 제공합니다.

  • Office Project를 사용하여 팀 전체에 중요한 프로젝트 정보를 전달하는 개발 대시보드

참조

코드 테스트, 유효성 검사 및 체크 인

해당 팀이 작업을 완수할 경우 코드를 Team Foundation 버전 제어에 체크인하고 코드를 잊어버린 경우 Team Foundation서버에서 미리 알림을 받습니다. Team Foundation Server에서 체크 인을 수락하기 전에 팀에서 단위 테스트 및 레이어 유효성 검사를 실행하여 테스트 사례와 디자인에 대해 코드를 확인합니다. Team Foundation Server를 사용하여 빌드, 자동 단위 테스트 및 레이어 유효성 검사를 정기적으로 실행합니다. 이를 통해 코드가 다음 기준을 충족하는지 확인할 수 있습니다.

  • 작동함

  • 이전의 작동 코드를 중단하지 않음

  • 디자인과 충돌하지 않음

Dinner Now는 자동 테스트를 많이 보유하고 있습니다. 모든 컬렉션은 현재도 적용되기 때문에 Lucerne에서 다시 사용할 수 있습니다. 또한 Lucerne에서는 이러한 테스트를 기반으로 하고 새로운 기능을 포괄하도록 테스트를 새로 추가할 수 있습니다. 둘 다 Visual Studio Ultimate을 사용하여 수동 테스트를 실행합니다.

코드가 디자인을 따르도록 팀에서는 Team Foundation Build에서 레이어 유효성 검사를 포함하여 빌드를 구성합니다. 충돌이 발생하면 세부 정보와 함께 보고서가 생성됩니다.

참조

시각화 및 모델링을 사용하여 시스템 업데이트

Lucerne과 Dinner Now는 지불 시스템을 통합해야 합니다. 다음 단원에서는 Visual Studio Ultimate의 모델링 다이어그램을 사용하여 이 작업을 수행하는 방법을 보여 줍니다.

  • 사용자 요구 사항 이해: 사용 사례 다이어그램

  • 비즈니스 프로세스 이해: 동작 다이어그램

  • 시스템 구조 설명: 구성 요소 다이어그램

  • 상호 작용 설명: 시퀀스 다이어그램

  • 기존 코드 시각화: 종속성 그래프

  • 형식 용어 정의: 클래스 다이어그램

  • 논리 아키텍처 설명: 레이어 다이어그램

참조

사용자 요구 사항 이해: 사용 사례 다이어그램

사용 사례 다이어그램은 시스템에서 지원하는 동작과 누가 해당 동작을 수행하는지를 요약합니다. Lucerne에서는 사용 사례 다이어그램을 사용하여 Dinner Now 시스템에 대한 다음 정보를 파악합니다.

  • 고객 주문

  • 식당에서 주문 받기

  • Dinner Now 지불 시스템에서 지불의 유효성을 검사하는 데 사용하는 외부 지불 프로세서 게이트웨이가 웹 사이트의 범위를 벗어났습니다.

또한 다이어그램은 주요 사용 사례 중 일부를 보다 작은 사용 사례로 나누는 방법을 보여 줍니다. Lucerne에서는 자체 지불 시스템을 사용하려고 합니다. Process Payment 사용 사례를 다른 색으로 강조 표시하여 변경이 필요하다는 것을 나타냅니다.

사용 사례 다이어그램에서 Process Payment 강조 표시

사용 사례 다이어그램에서 Process Payment 강조 표시

개발 시간이 단축된다면 팀에서 고객이 식당에 직접 음식 값을 지불하도록 허용할지 여부를 토론할 수 있습니다. 이를 보여 주기 위해 Process Payment 사용 사례를 Dinner Now 시스템 경계 외부의 사용 사례와 교체합니다. Dinner Now에서만 주문을 처리하도록 고객을 식당에 직접 연결합니다.

사용 사례 다이어그램의 식당 지불 범위 조정

사용 사례 다이어그램의 식당 지불 범위 조정

참조

사용 사례 다이어그램 그리기

사용 사례 다이어그램의 주요 기능은 다음과 같습니다.

  • 행위자는 사람, 조직, 컴퓨터 또는 소프트웨어 시스템이 수행하는 역할을 나타냅니다. 예를 들어 고객, 식당 및 Dinner Now 지불 시스템이 행위자에 해당합니다.

  • 사용 사례는 개발 중인 시스템과 행위자 간의 상호 작용을 나타냅니다. 한 번의 마우스 클릭이나 단일 메시지에서 며칠 간 이어지는 트랜잭션에 이르는 모든 규모의 상호 작용을 나타낼 수 있습니다.

  • 연결은 행위자를 사용 사례에 연결합니다.

  • 큰 사용 사례가 작은 사용 사례를 포함할 수 있습니다. 예를 들어 Create Order 사용 사례가 Select Restaurant 사용 사례를 포함합니다. 사용 사례를 확장할 수 있습니다. 즉, 사용 사례가 특정 조건에서만 발생하도록 확장된 사용 사례에 목표와 단계를 추가할 수 있습니다. 사용 사례는 다른 사용 사례에서 상속될 수도 있습니다.

  • 하위 시스템은 개발 중이거나 구성 요소 중 하나인 소프트웨어 시스템을 나타내며, 사용 사례를 포함하는 큰 상자입니다. 사용 사례 다이어그램은 하위 시스템 경계 내부 또는 외부에 있는 항목을 명확하게 나타냅니다. 사용자가 다른 방법으로 특정 목표를 달성하도록 하려면 사용 사례를 하위 시스템 경계 외부에 그립니다.

  • 아티팩트는 다이어그램의 요소를 문서의 다른 다이어그램에 연결합니다.

참조

요약: 사용 사례 다이어그램의 장점

사용 사례 다이어그램을 사용하여 다음을 시각화할 수 있습니다.

  • 시스템에서 지원하는 작업 또는 지원하지 않는 동작

  • 이러한 동작을 수행하는 사람 및 외부 시스템

  • 각 동작을 지원하는 시스템의 주요 구성 요소. 부모 시스템 내에 중첩되는 하위 시스템으로 나타낼 수 있음

  • 사용 사례를 작은 사용 사례 또는 변형으로 나누는 방법

다른 다이어그램과의 관계

다이어그램

설명

동작 다이어그램

사용 사례의 단계 흐름 및 사용 사례에서 단계를 수행하는 사람

사용 사례의 이름은 대개 동작 다이어그램의 단계를 반영합니다. 동작 다이어그램은 결정, 병합, 입력, 출력, 동시 흐름 등의 요소를 지원합니다.

참조

시퀀스 다이어그램

사용 사례에서 참가자 간의 상호 작용 시퀀스

참조

클래스 다이어그램(UML)

사용 사례에 참여하는 엔터티 또는 유형

참조

비즈니스 프로세스 이해: 동작 다이어그램

동작 다이어그램은 비즈니스 프로세스의 단계 흐름에 대해 설명하고 워크플로를 전달하는 간단한 방법을 보여 줍니다. 개발 프로젝트에 동작 다이어그램이 여러 개 있을 수 있습니다. 일반적으로 동작에는 식사 주문, 메뉴 업데이트, 비즈니스에 새 식당 추가 등의 외부 작업에 기인한 모든 작업이 포함됩니다. 동작이 복잡한 작업에 대한 세부 정보를 설명할 수도 있습니다.

Lucerne에서는 다음 동작 다이어그램을 업데이트하여 지불을 처리하고 식당에 결제하는 과정을 보여 줍니다. Dinner Now의 지불시스템을 강조 표시된 Lucerne의 지불 시스템으로 교체합니다.

동작 다이어그램의 Lucerne 지불 시스템

동작 다이어그램에서 Dinner Now 지불 시스템 교체

Lucerne과 Dinner Now에서는 업데이트된 다이어그램을 통해 비즈니스 프로세스에서 Lucerne 지불 시스템이 적합한 영역을 시각화할 수 있습니다. 이 릴리스에서는 주석을 사용하여 단계를 수행하는 역할을 식별합니다. 선을 사용하여 역할별 단계를 구성하는 스윔 레인을 만듭니다.

또한 팀에서는 주문한 음식이 배달된 이후에 고객이 식당에 대신 지불하는 대체 스토리에 대해 토론할 수도 있습니다. 이 경우 소프트웨어 시스템에 대한 요구 사항이 달라집니다.

Dinner Now에서 이전에는 화이트보드나 PowerPoint를 사용하여 이러한 다이어그램을 그렸습니다. 지금은 Visual Studio Ultimate를 사용하여 이러한 다이어그램을 그리므로 두 팀 모두 세부 정보를 캡처, 이해 및 관리할 수 있습니다.

참조

동작 다이어그램 그리기

동작 다이어그램의 주요 기능은 다음과 같습니다.

  • 초기 노드: 동작의 첫 번째 작업을 나타냅니다.

    다이어그램에는 이러한 노드 중 하나가 항상 있어야 합니다.

  • 작업: 사용자 또는 소프트웨어가 작업을 수행하는 단계를 설명합니다.

  • 제어 흐름: 작업 간 흐름을 보여 줍니다.

  • 의사 결정 노드: 흐름의 조건부 분기를 나타냅니다.

  • 분기 노드: 단일 흐름을 여러 개의 동시 흐름으로 나눕니다.

  • 동작 최종 노드: 동작의 끝을 보여 줍니다.

    이러한 노드는 선택 사항이지만 다이어그램에 포함하여 동작이 어디에서 끝나는지를 보여 주는 것이 좋습니다.

참조

요약: 동작 다이어그램의 장점

동작 다이어그램을 사용하면 비즈니스, 시스템 또는 프로그램 작업 간의 정보와 제어 흐름을 시각화하여 설명할 수 있습니다. 동작 다이어그램을 사용하면 다른 사람과 의견을 나눌 때 워크플로를 간단하고 효율적으로 설명할 수 있습니다.

다른 다이어그램과의 관계

다이어그램

설명

사용 사례 다이어그램

각 행위자가 수행하는 동작을 요약합니다.

참조

구성 요소 다이어그램

잘 정의된 인터페이스 집합을 통해 동작을 제공하거나 사용하는 재사용 가능한 부분의 컬렉션으로 시스템을 시각화합니다.

참조

시스템 구조 설명: 구성 요소 다이어그램

구성 요소 다이어그램에서는 잘 정의된 인터페이스 집합을 통해 동작을 제공하거나 사용하는 분리 가능 부분의 컬렉션으로 시스템을 설명합니다. 부분의 규모와 연결 방식에는 제한이 없습니다.

Lucerne 및 Dinner Now에서는 시스템 구성 요소와 해당 인터페이스를 시각화하고 토론하는 데 도움이 되도록 다음과 같은 구성 요소 다이어그램을 만듭니다.

지불 시스템의 외부 구성 요소

Dinner Now 지불 시스템의 구성 요소

이 다이어그램은 다른 구성 요소 유형과 해당 종속성을 보여 줍니다. 예를 들어 Dinner Now 웹 사이트와 Lucerne 지불 시스템 모두에서 지불 유효성을 확인하려면 외부 지불 프로세스 게이트웨이가 필요합니다. 구성 요소 사이의 화살표는 다른 구성 요소의 기능이 필요한 구성 요소를 나타내는 종속성을 의미합니다.

Lucerne 지불 시스템을 사용하려면 Lucerne 지불 시스템의 PaymentApproval 및 PayableInsertion 인터페이스를 사용하도록 Dinner Now 웹 사이트를 업데이트해야 합니다.

다음 다이어그램에서는 Dinner Now 웹 사이트에 대한 구성 요소의 특정 구성을 보여 줍니다. 이 구성은 웹 사이트의 인스턴스가 다음과 같은 4가지 부분으로 구성됨을 보여 줍니다.

  • CustomerProcessing

  • OrderProcessing

  • ReviewProcessing

  • PaymentProcessing

이러한 부분은 지정된 구성 요소 형식의 인스턴스이며 다음과 같이 연결됩니다.

Dinner Now 웹 사이트 내부의 구성 요소

Dinner Now 웹 사이트 내부의 구성 요소

Dinner Now 웹 사이트에서는 동작을 이러한 부분에 위임하여 웹 사이트 기능을 처리하도록 합니다. 부모 구성 요소와 멤버 구성 요소 사이의 화살표는 부모가 인터페이스를 통해 받거나 보내는 메시지를 처리하는 부분을 나타내는 위임을 보여 줍니다.

이 구성에서 PaymentProcessing 구성 요소는 고객 지불을 처리합니다. 따라서 Lucerne의 지불 시스템과 통합되도록 이 구성 요소를 업데이트해야 합니다. 다른 시나리오에서는 구성 요소 형식이 같은 여러 인스턴스가 동일한 부모 구성 요소에 존재할 수 있습니다.

참조

구성 요소 다이어그램 그리기

구성 요소 다이어그램의 주요 기능은 다음과 같습니다.

  • 구성 요소: 시스템 기능의 분리 가능 요소를 나타냅니다.

  • 제공된 인터페이스 포트: 구성 요소가 구현하거나 다른 구성 요소 또는 외부 시스템에서 사용되는 메시지 또는 호출 그룹을 나타냅니다.

  • 필요한 인터페이스 포트: 구성 요소가 다른 구성 요소 또는 외부 시스템에 전송하는 메시지 또는 호출 그룹을 나타냅니다. 이런 종류의 포트는 구성 요소에 필요한 다른 구성 요소 또는 외부 시스템의 작업을 설명합니다.

  • 부분은 구성 요소의 멤버이며 일반적으로 다른 구성 요소의 인스턴스입니다. 또한 부모 구성 요소의 내부 디자인 요소입니다.

  • 종속성: 구성 요소에 다른 구성 요소의 기능이 필요함을 나타냅니다.

  • 위임: 구성 요소의 부분이 부모 구성 요소와 주고받는 메시지를 처리함을 나타냅니다.

참조

요약: 구성 요소 다이어그램의 장점

구성 요소 다이어그램을 사용하여 다음과 같이 시각화할 수 있습니다.

  • 구현 언어 또는 스타일에 상관없이 분리 가능 부분 컬렉션으로 시스템 시각화

  • 디자인을 잘 이해하고 요구 사항 변경 시 쉽게 업데이트할 수 있도록 잘 정의된 인터페이스로 구성 요소 시각화

다른 다이어그램과의 관계

다이어그램

설명

종속성 그래프

기존 코드의 조직과 관계를 시각화합니다.

구성 요소에 대한 후보를 식별하려면 종속성 그래프를 만들고 시스템에서의 기능별로 항목을 그룹화합니다.

참조

시퀀스 다이어그램

구성 요소 간 또는 구성 요소 내부 부분 간의 상호 작용 시퀀스를 시각화합니다.

구성 요소의 시퀀스 다이어그램에서 수명선을 만들려면 구성 요소를 마우스 오른쪽 단추로 클릭하고 수명선 만들기를 클릭합니다.

참조

클래스 다이어그램(UML)

구성 요소의 기능을 구현하는 클래스와 제공된 포트나 필요한 포트에 대한 인터페이스를 정의합니다.

참조

레이어 다이어그램

구성 요소와 연관된 시스템의 논리적 아키텍처에 대해 설명합니다. 레이어 유효성 검사를 사용하여 코드가 디자인과 일관성을 유지하는지 확인합니다.

참조

동작 다이어그램

구성 요소가 들어오는 메시지에 대한 응답으로 수행하는 내부 처리를 시각화합니다.

참조

기존 코드 시각화: 종속성 그래프

종속성 그래프에서는 코드의 현재 구성과 관계를 보여 줍니다. 항목은 그래프에 노드로 표시되고, 관계는 링크로 표시됩니다. 종속성 그래프를 사용하여 다음과 같은 작업을 수행할 수 있습니다.

  • 익숙하지 않은 코드 탐색

  • 제안된 변경이 기존 코드에 미치는 영향과 영향을 미치는 부분 이해

  • 복잡성, 자연 레이어 또는 패턴을 비롯하여 향상된 기능을 이용할 수 있는 영역 확인

예를 들어 Dinner Now는 PaymentProcessing 구성 요소를 업데이트하는 데 필요한 비용을 예측해야 합니다. 비용은 이 변경이 시스템의 다른 부분에 미치는 영향에 따라 부분적으로 달라집니다. 이해를 돕기 위해 Dinner Now 개발자 중 한 명이 코드에서 종속성 그래프를 생성하고 변경의 영향을 받을 수 있는 영역을 중심으로 범위를 조정합니다.

다음 그래프에서는 PaymentProcessing 클래스와 Dinner Now 시스템의 선택된 다른 부분 간의 종속성을 보여 줍니다.

Dinner Now 지불 시스템의 종속성 그래프

Dinner Now 지불 시스템의 종속성 그래프

개발자는 그래프에서 PaymentProcessing 클래스를 확장하고 멤버를 선택하여 영향을 받을 수 있는 영역을 확인합니다.

PaymentProcessing 내부 메서드 및 종속성

PaymentProcessing 클래스 내부 메서드 및 종속성

Lucerne 지불 시스템에 대해 클래스, 메서드 및 종속성을 검사하는 다음 그래프를 생성합니다. Lucerne 시스템에서 작업을 수행하려면 Dinner Now의 다른 부분과 상호 작용해야 할 수도 있습니다.

Lucerne 지불 시스템의 종속성 그래프

Lucerne 지불 시스템의 종속성 그래프

두 팀이 서로 협력하여 두 시스템을 통합하는 데 필요한 변경 사항에 대해 결정합니다. 쉽게 업데이트할 수 있도록 코드의 일부를 리팩터링하기로 결정했습니다. PaymentApprover 클래스는 DinnerNow.Business 네임스페이스로 이동되며 몇 가지 새로운 메서드를 필요로 합니다. 트랜잭션을 처리하는 Dinner Now 클래스는 자체 네임스페이스를 가집니다. 팀에서 작업을 계획, 구성 및 추적하는 데 사용할 작업 항목을 만듭니다. 모델 요소에 유용한 작업 항목을 연결합니다.

팀에서는 코드를 재구성한 업데이트된 구조와 관계를 보여 주는 새 종속성 그래프를 생성합니다.

코드를 재구성한 종속성 그래프

코드를 재구성한 종속성 그래프

이 그래프에서는 PaymentApprover 클래스가 DinnerNow.Business 네임스페이스에 있으며 몇 가지 새로운 메서드를 가지고 있음을 보여 줍니다. Dinner Now 트랜잭션 클래스는 이제 자체 PaymentSystem 네임스페이스를 가지므로 나중에 코드를 쉽게 처리할 수 있습니다.

종속성 그래프 만들기

  • 소스 코드를 간략히 살펴보려면 다음 단계를 수행하여 종속성 그래프를 생성합니다.

    아키텍처 메뉴에서 종속성 그래프 생성을 가리킨 다음 솔루션용을 선택합니다.

    컴파일된 코드를 간략히 살펴보려면 빈 종속성 그래프를 만든 다음 어셈블리 파일 또는 이진 파일을 그래프 화면으로 끌어 놓습니다.

    자세한 내용은 종속성 그래프를 사용하여 코드 전체에서 종속성 매핑를 참조하십시오.

  • 특정 코드 또는 솔루션 항목을 탐색하려면 솔루션 탐색기 또는 아키텍처 탐색기를 사용하여 시각화할 항목 및 관계를 선택합니다. 그런 다음 새 그래프를 생성하거나 선택한 항목을 기존 그래프에 추가합니다.

    종속성 그래프를 사용하여 코드 전체에서 종속성 매핑아키텍처 탐색기로 코드 찾기을 참조하십시오.

  • 그래프를 쉽게 탐색하려면 수행할 작업에 맞게 레이아웃을 다시 정렬합니다.

    예를 들어 코드의 레이어를 시각화하려면 트리 레이아웃을 선택합니다. 자세한 내용은 종속성 그래프 찾아보기 및 다시 정렬를 참조하십시오.

  • 그래프의 특정 영역에 초점을 맞추려면 항목을 필터링하거나 모양을 사용자 지정하여 범위를 조정합니다. 자세한 내용은 종속성 그래프 편집 및 사용자 지정를 참조하십시오.

요약: 종속성 그래프의 장점

종속성 그래프를 사용하여 다음을 수행할 수 있습니다.

  • 기존 코드의 구성과 관계 파악

  • 제안된 변경의 영향을 받을 수 있는 영역 식별

  • 코드를 쉽게 유지 관리, 변경 및 재사용할 수 있도록 개선할 수 있는 복잡성, 패턴, 레이어 또는 기타 영역 식별

다른 다이어그램과의 관계

다이어그램

설명

레이어 다이어그램

시스템의 논리 아키텍처 레이어 유효성 검사를 사용하여 코드가 디자인과 일관성을 유지하는지 확인합니다.

기존 레이어 또는 계획된 레이어를 식별하려면 종속성 그래프를 만들고 관련 항목을 그룹화합니다. 레이어 다이어그램을 만들려면 그래프 또는 아키텍처 탐색기에서 항목을 끌어 옵니다.

참조

구성 요소 다이어그램

구성 요소, 구성 요소 인터페이스 및 구성 요소 관계

구성 요소를 식별하려면 종속성 그래프를 만들고 시스템에서의 기능별로 항목을 그룹화합니다.

참조

클래스 다이어그램(UML)

클래스, 클래스의 특성 및 작업, 관계

이러한 요소를 식별하려면 요소를 보여 주는 그래프 문서를 만듭니다.

참조

클래스 다이어그램(코드 기반)

코드의 기존 클래스

코드의 기존 클래스를 시각화하고 수정하려면 클래스 디자이너를 사용합니다.

자세한 내용은 방법: 프로젝트에 클래스 다이어그램 추가(클래스 디자이너)를 참조하십시오.

상호 작용 설명: 시퀀스 다이어그램

시퀀스 다이어그램은 시스템 부분 간의 상호 작용에 대해 설명합니다. 부분은 규모의 제한이 없습니다. 예를 들어 프로그램의 개별 개체, 대규모 하위 시스템 또는 외부 행위자 등의 다양한 부분이 가능합니다. 상호 작용은 규모와 형식의 제한이 없습니다. 예를 들어 개별 메시지, 확장 트랜잭션, 기능 호출, 웹 서비스 메시지 등이 해당될 수 있습니다.

Lucerne 및 Dinner Now에서는 Process Payment 사용 사례의 단계에 대해 설명하고 토론하기 위해 구성 요소 다이어그램에서 다음과 같은 시퀀스 다이어그램을 만듭니다. 수명선은 Dinner Now 웹 사이트 구성 요소와 부분을 미러링합니다. 수명선 사이에 표시되는 메시지는 구성 요소 다이어그램의 연결을 따릅니다.

Process Payment 사용 사례에 대한 시퀀스 다이어그램

Process Payment 사용 사례에 대한 시퀀스 다이어그램

시퀀스 다이어그램에서는 고객이 주문하면 Dinner Now 웹 사이트에서 OrderProcessing의 인스턴스에 대한 ProcessOrder를 호출함을 보여 줍니다. 그런 다음 OrderProcessing은 PaymentProcessing에 대한 ProcessPayment를 호출합니다. 이 과정은 외부 지불 프로세서 게이트웨이에서 지불 유효성을 검사할 때까지 계속됩니다. 유효성을 검사한 이후에만 컨트롤이 Dinner Now 웹 사이트로 반환됩니다.

Lucerne은 Dinner Now 시스템과 통합하기 위해 지불 시스템을 업데이트하는 데 필요한 비용을 예측해야 합니다. 이해를 돕기 위해 Lucerne 개발자 중 한 명이 기존 상호 작용을 시각화하는 시퀀스 다이어그램을 코드에서 생성합니다.

참조

시퀀스 다이어그램 그리기

시퀀스 다이어그램의 주요 기능은 다음과 같습니다.

  • 세로 수명선은 소프트웨어 개체의 인스턴스 또는 행위자를 나타냅니다.

    참가자가 개발 중인 시스템의 외부에 있음을 나타내는 행위자 기호를 추가하려면 수명선을 클릭합니다. 속성 창에서 행위자True로 설정합니다. 속성 창이 열리지 않으면 F4 키를 누릅니다.

  • 가로 메시지는 메서드 호출, 웹 서비스 메시지 또는 일부 다른 통신을 나타냅니다. 실행 발생은 수명선에 나타나고 수신 개체가 호출을 처리하는 기간을 나타내는 세로 음영의 사각형입니다.

  • 동기화 메시지 중에 sender 개체는 일반 함수 호출에서처럼 컨트롤이 <<반환>>될 때까지 기다립니다. 비동기 메시지 중에는 전송자가 즉시 계속할 수 있습니다.

  • <<만들기>> 메시지를 사용하여 다른 개체에 의한 개체 생성을 나타냅니다. 이 메시지가 개체에 보내는 첫 번째 메시지여야 합니다.

참조

요약: 시퀀스 다이어그램의 장점

시퀀스 다이어그램을 사용하여 다음을 시각화할 수 있습니다.

  • 사용 사례를 실행하는 동안 행위자 또는 개체 사이에 전송되는 컨트롤 흐름

  • 메서드 호출 또는 메시지의 구현

다른 다이어그램과의 관계

다이어그램

설명

클래스 다이어그램(UML)

수명선이 나타내는 클래스와 수명선 간에 전송되는 메시지에 사용되는 매개 변수 및 반환 값을 정의합니다.

수명선에서 클래스를 만들려면 수명선을 마우스 오른쪽 단추로 클릭하고 클래스 만들기 또는 인터페이스 만들기를 클릭합니다. 클래스 다이어그램의 형식에서 수명선을 만들려면 형식을 마우스 오른쪽 단추로 클릭하고 수명선 만들기를 클릭합니다.

참조

구성 요소 다이어그램

수명선이 나타내는 구성 요소와 메시지로 표시되는 동작을 제공하고 사용하는 인터페이스에 대해 설명합니다.

구성 요소 다이어그램에서 수명선을 만들려면 구성 요소를 마우스 오른쪽 단추로 클릭하고 수명선 만들기를 클릭합니다.

참조

사용 사례 다이어그램

시퀀스 다이어그램의 사용자와 구성 요소 간의 상호 작용을 사용 사례로 요약하여 사용자의 목표를 나타냅니다.

참조

형식 용어 정의: 클래스 다이어그램

클래스 다이어그램에서는 시스템에 참여하는 엔터티, 용어 또는 개념과 각각의 관계를 정의합니다. 예를 들어 개발 중 이러한 다이어그램을 사용하여 구현 언어 또는 스타일에 상관없이 각 클래스의 특성과 작업을 설명할 수 있습니다.

Lucerne에서는 Process Payment 사용 사례에 참여하는 엔터티에 대해 설명하고 토론하기 위해 다음과 같은 클래스 다이어그램을 그립니다.

클래스 다이어그램의 Process Payment 엔터티

클래스 다이어그램의 Process Payment 엔터티

이 다이어그램은 한 Customer가 많은 주문을 하고 주문마다 다른 방식으로 지불할 수 있음을 보여 줍니다. BankAccount 및 CreditCard가 모두 Payment에서 상속됩니다.

개발 중 Lucerne에서는 다음 클래스 다이어그램을 사용하여 각 클래스의 세부 정보를 설명하고 토론합니다.

클래스 다이어그램의 Process Payment 엔터티 세부 정보

클래스 다이어그램의 Process Payment 세부 정보

참조

클래스 다이어그램 그리기

클래스 다이어그램의 주요 기능은 다음과 같습니다.

  • 형식(예: 클래스, 인터페이스, 열거형):

    • 클래스는 특정 구조 또는 동작 특성을 공유하는 개체의 정의입니다.

    • 인터페이스는 외부에서 볼 수 있는 개체 동작 부분을 정의합니다.

    • 열거형은 리터럴 값 목록을 포함하는 분류자입니다.

  • 특성은 분류자의 각 인스턴스를 설명하는 특정 형식의 값입니다. 분류자는 형식, 구성 요소, 사용 사례 및 행위자의 일반 이름입니다.

  • 작업은 분류자 인스턴스에서 수행할 수 있는 메서드 또는 함수입니다.

  • 연결은 두 분류자 사이의 일부 관계를 나타냅니다.

    • 집계는 분류자 간의 공유 소유권을 나타내는 연결입니다.

    • 컴퍼지션은 분류자 간의 전체 관계를 나타내는 연결입니다.

    집계 또는 컴퍼지션을 보려면 연결에 대한 집계 속성을 설정합니다. 공유는 집계를 표시하고 복합은 컴퍼지션을 표시합니다.

  • 종속성은 한 분류자의 정의를 변경하면 다른 분류자의 정의도 변경될 수 있음을 나타냅니다.

  • 일반화는 특정 분류자가 일반 분류자의 일부 정의를 상속함을 나타냅니다. 인식은 클래스가 인터페이스에서 제공되는 작업과 특성을 구현함을 나타냅니다.

    이러한 관계를 만들려면 상속 도구를 사용합니다. 인식을 롤리팝으로 나타낼 수도 있습니다.

  • 패키지는 분류자, 연결, 수명선, 구성 요소 및 기타 패키지의 그룹입니다. 가져오기 관계는 한 패키지가 다른 패키지의 모든 정의를 포함함을 나타냅니다.

기존 클래스를 처음 탐색하고 토론할 경우 클래스 디자이너를 사용하여 코드에서 클래스 다이어그램을 만들 수 있습니다.

참조

요약: 클래스 다이어그램의 장점

클래스 다이어그램을 사용하여 다음을 정의할 수 있습니다.

  • 시스템에 참여하는 엔터티와 사용자의 요구 사항을 설명할 때 사용하는 일반 용어 자세한 내용은 사용자 요구 사항 모델링를 참조하십시오.

  • 구현에 상관없이 시스템의 부분(예: 구성 요소)에 사용되는 형식 자세한 내용은 소프트웨어 시스템의 아키텍처 모델링를 참조하십시오.

  • 형식 간의 관계(예: 종속성) 예를 들어 한 형식을 다른 형식의 여러 인스턴스와 연결할 수도 있음을 나타낼 수 있습니다.

다른 다이어그램과의 관계

다이어그램

설명

사용 사례 다이어그램

사용 사례에서 목표 및 단계를 설명하는 데 사용되는 형식을 정의합니다.

참조

동작 다이어그램

개체 노드, 입력 핀, 출력 핀 및 동작 매개 변수 노드를 통해 전달되는 데이터 형식을 정의합니다.

참조

구성 요소 다이어그램

구성 요소, 구성 요소 인터페이스 및 구성 요소 관계를 설명합니다. 클래스가 전체 구성 요소를 설명할 수도 있습니다.

참조

레이어 다이어그램

클래스와 연관된 시스템의 논리적 아키텍처를 정의합니다.

레이어 유효성 검사를 사용하여 코드가 디자인과 일관성을 유지하는지 확인합니다.

참조

시퀀스 다이어그램

수명선의 형식과 수명선이 수신할 수 있는 모든 메시지에 대한 작업, 매개 변수 및 반환 값을 정의합니다.

클래스 다이어그램의 형식에서 수명선을 만들려면 형식을 마우스 오른쪽 단추로 클릭하고 수명선 만들기를 클릭합니다.

참조

종속성 그래프

기존 코드의 조직과 관계를 시각화합니다.

클래스, 클래스 관계 및 클래스 메서드를 식별하려면 요소를 보여 주는 그래프 문서를 만듭니다.

참조

논리 아키텍처 설명: 레이어 다이어그램

레이어 다이어그램은 솔루션의 아티팩트를 추상 그룹 또는 레이어로 구성하여 시스템의 논리적 아키텍처에 대해 설명합니다. 아티팩트는 네임스페이스, 프로젝트, 클래스, 메서드 등으로 다양합니다. 레이어는 아티팩트가 시스템에서 수행하는 역할 또는 작업을 나타내고 설명합니다. 코드가 디자인과 일관성을 유지하도록 빌드 및 체크 인 프로세스에 레이어 유효성 검사를 포함할 수도 있습니다.

코드와 디자인의 일관성을 유지하기 위해 Dinner Now 및 Lucerne에서는 다음 레이어 다이어그램을 사용하여 변경되는 코드의 유효성을 검사합니다.

통합 지불 시스템의 레이어 다이어그램

Lucerne에 통합된 Dinner Now의 레이어 다이어그램

이 다이어그램의 레이어는 해당 Dinner Now 및 Lucerne 솔루션 아티팩트에 연결됩니다. 예를 들어 비즈니스 레이어는 DinnerNow.Business 네임스페이스 및 멤버에 연결되며, PaymentApprover 클래스를 포함합니다. 리소스 액세스 레이어는 DinnerNow.Data 네임스페이스에 연결됩니다. 화살표 또는 종속성은 비즈니스 레이어에서만 리소스 액세스 레이어의 기능을 사용할 수 있음을 지정합니다. 팀에서 코드를 업데이트하면 레이어 유효성 검사가 정기적으로 수행되어 충돌이 발생하는지 확인하고 팀에서 충돌을 신속하게 해결할 수 있도록 도와 줍니다.

팀은 서로 협력하여 두 시스템을 증분 방식으로 통합하고 테스트합니다. 우선 PaymentProcessing을 처리하기 전에 PaymentApprover와 Dinner Now의 나머지 부분이 함께 잘 작동하는지 확인합니다.

다음 종속성 그래프에서는 Dinner Now와 PaymentApprover 사이의 새로운 호출을 보여 줍니다.

통합 시스템으로 업데이트된 종속성 그래프

메서드 호출이 업데이트된 종속성 그래프

Dinner Now에서는 시스템이 예상 대로 작동하는지 확인한 후 PaymentProcessing 코드를 주석으로 처리합니다. 레이어 유효성 검사 보고서가 정리되고 결과 종속성 그래프에 추가 PaymentProcessing 종속성이 없다고 표시됩니다.

PaymentProcessing 없는 종속성 그래프

PaymentProcessing 없는 종속성 그래프

참조

레이어 다이어그램 그리기

레이어 다이어그램의 주요 기능은 다음과 같습니다.

  • 레이어는 아티팩트의 논리 그룹을 설명합니다.

  • 링크는 레이어와 아티팩트 사이의 연결입니다.

    아티팩트에서 레이어를 만들려면 솔루션 탐색기, 종속성 그래프 또는 아키텍처 탐색기에서 항목을 끌어 옵니다. 새 레이어를 그린 다음 아티팩트에 연결하려면 도구 상자를 사용하거나 다이어그램 아티팩트를 마우스 오른쪽 단추로 클릭하여 레이어를 만든 다음 항목을 레이어로 끌어 놓습니다.

    레이어의 숫자는 해당 레이어에 연결된 아티팩트의 수를 나타냅니다. 이러한 아티팩트는 네임스페이스, 프로젝트, 클래스, 메서드 등일 수 있습니다. 레이어의 아티팩트 수를 해석할 때 다음 사항을 유념해야 합니다.

    • 레이어가 직접 연결되지 않은 다른 아티팩트를 포함하는 아티팩트에 연결된 경우 연결된 아티팩트만 숫자에 포함됩니다. 그러나 레이어 유효성 검사 중에는 직접 연결되지 않은 다른 아티팩트도 분석을 위해 포함됩니다.

      예를 들어 레이어가 단일 네임스페이스에 연결된 경우 해당 네임스페이스에 클래스가 들어 있더라도 연결된 아티팩트의 수는 1입니다. 레이어가 네임스페이스의 각 클래스에도 연결되어 있으면 연결된 클래스가 숫자에 포함됩니다.

    • 레이어가 아티팩트에 연결된 다른 레이어를 포함하면 컨테이너 레이어가 이 아티팩트에도 연결됩니다. 단, 컨테이너 레이어의 숫자에는 이러한 아티팩트가 포함되지 않습니다.

    레이어에 연결된 아티팩트를 보려면 레이어를 마우스 오른쪽 단추로 클릭하고 링크 보기를 클릭하여 레이어 탐색기를 엽니다.

  • 종속성은 한 레이어가 다른 레이어의 기능을 사용할 수 있지만 반대의 경우는 가능하지 않음을 나타냅니다. 양방향 종속성은 한 레이어가 다른 레이어의 기능을 사용할 수 있고 반대의 경우도 가능함을 나타냅니다.

    레이어 다이어그램에 기존 종속성을 표시하려면 레이어 다이어그램 화면을 마우스 오른쪽 단추로 클릭한 다음 종속성 생성을 클릭합니다. 계획된 종속성을 설명하려면 새 종속성을 그립니다.

참조

요약: 레이어 다이어그램의 기능

레이어 다이어그램을 사용하여 다음을 수행할 수 있습니다.

  • 아티팩트의 기능에 따라 시스템의 논리적 아키텍처에 대해 설명합니다.

  • 개발 중인 코드가 지정된 디자인과 일치하는지 확인합니다.

다른 다이어그램과의 관계

다이어그램

설명

종속성 그래프

기존 코드의 조직과 관계를 시각화합니다.

레이어를 만들려면 종속성 그래프를 생성한 다음 그래프의 항목을 잠재적 레이어로 그룹화합니다. 그룹을 그래프에서 레이어 다이어그램으로 끌어 놓습니다.

참조

구성 요소 다이어그램

구성 요소, 구성 요소 인터페이스 및 구성 요소 관계를 설명합니다.

레이어를 시각화하려면 시스템에 있는 다른 구성 요소의 기능을 설명하는 구성 요소 다이어그램을 만듭니다.

참조

외부 리소스

범주

링크

포럼

블로그

Visual Studio ALM + Team Foundation Server 블로그

기술 문서 및 저널

아키텍처 저널 - 문제 23: 아키텍처 모델링 및 프로세스

기타 사이트

MSDN Architecture CEnter

참고 항목

개념

코드 시각화

소프트웨어 디자인용 모델 개발

개발 프로세스에서 모델 사용

Agile 개발에서 모델 사용

개발하는 동안 시스템 유효성 검사

UML 모델 및 다이어그램 확장