컴포넌트 다이어그램은 컴포넌트 간의 논리적 관계를 설명합니다.
배포 다이어그램은 이를 바탕으로 시스템 하드웨어의 물리적 토폴로지 구조와 이 구조에서 실행되는 소프트웨어를 설명합니다.
구성 요소 다이어그램은 시스템 내의 구성 요소 간, 구성 요소와 인터페이스 간의 관계를 나타내는 모델 다이어그램입니다. 구성 요소 다이어그램은 구성 요소 기반 개발 시스템 모델링에서 중요하며, 사용자가 시스템의 구조를 이해하는 데 도움을 줍니다.
구성 요소 다이어그램의 역할:
1. 시스템 테스트 담당자와 개발자가 시스템의 모든 물리적 부품을 전체적으로 이해할 수 있게 합니다.
2. 소프트웨어 아키텍처 관점에서 시스템의 주요 기능을 설명합니다.
3. 프로젝트 팀의 구성원이 시스템의 구조와 기능을 이해하기 쉽게 합니다.
4. 소프트웨어 재사용에 유리합니다.
실시간 다중 사용자 공동 작업 및 공유 링크를 통한 즉각적인 정보 전달
텍스트 입력으로 자동 생성 및 스타일 최적화
사전 제작 테마 및 완전한 사용자 지정
아이콘, 이미지, 라벨, LaTeX 수식, 코드 블록, 링크, 첨부 파일 지원
내보내기: PNG, VISIO, PDF, SVG | 가져오기: VISIO, Mermaid
실시간 클라우드 저장, 다중 기기 동기화, 버전 기록 및 데이터 보안
컴포넌트 다이어그램은 컴포넌트 간의 논리적 관계를 설명합니다.
배포 다이어그램은 이를 바탕으로 시스템 하드웨어의 물리적 토폴로지 구조와 이 구조에서 실행되는 소프트웨어를 설명합니다.
컴포넌트:컴포넌트는 잘 정의된 인터페이스를 가진, 대체 가능한 물리적 구현 단위로, 일반적으로 실제로 존재하는 물리적 객체를 나타내며, 왼쪽에 두 개의 작은 직사각형이 돌출된 직사각형으로 표시됩니다.
인터페이스:제공 인터페이스는 내보내기 인터페이스라고도 하며, 컴포넌트가 제공하는 서비스의 집합을 나타내며, 인터페이스와 컴포넌트 간의 구현 관계를 사용하여 표현할 수 있습니다; 요구 인터페이스는 가져오기 인터페이스라고도 하며, 컴포넌트가 다른 컴포넌트의 해당 서비스를 요청할 때 따르는 인터페이스로, 의존 관계를 통해 표현됩니다.
관계:컴포넌트 간-->의존 관계, 두 컴포넌트의 클래스 간에 일반화 관계나 사용 관계가 존재하는 경우 의존을 추가할 수 있습니다; 컴포넌트와 인터페이스 간-->의존 또는 구현.
포트:uml2.0에서 도입된 개념으로, 포트는 컴포넌트 상의 상호작용 지점을 지정하며, 이 상호작용 지점을 통해 컴포넌트는 환경, 다른 컴포넌트 또는 내부 컴포넌트와 통신할 수 있으며, 컴포넌트 경계의 작은 직사각형으로 표시됩니다.
간단한 컴포넌트 다이어그램:상호 협력하는 클래스를 하나의 컴포넌트로 조직합니다.
중첩 컴포넌트 다이어그램:중첩된 컴포넌트 다이어그램을 사용하여 컴포넌트의 내부 구조를 나타냅니다.
컴포넌트와 컴포넌트는 포트를 통해 연결되고, 포트와 포트는 커넥터를 통해 연결되지만, 일반적으로 자주 사용되지는 않습니다.
커넥터는 직접 커넥터, 인터페이스 커넥터, 위임 커넥터의 세 가지로 나뉩니다.
1, 여러 팀이 협력하여 개발할 때
2, 마이크로서비스 또는 모듈화 아키텍처
3, 명확한 인터페이스 제약이 있는 시스템
4, 분리 배포가 필요한 컴포넌트(프론트엔드, 백엔드, 데이터베이스 등)
1, 모듈화와 디커플링에 중점을 두세요, 컴포넌트 다이어그램의 주요 가치는 시스템의 계층화와 의존성을 명확히 보여주는 것입니다;
2, 표준 기호와 인터페이스 표기를 사용하여 다이어그램의 가독성과 일관성을 높일 수 있습니다;
3, 클래스 다이어그램/배포 다이어그램과 함께 사용하여 구조, 동작, 배포의 완전한 뷰를 제공합니다;
4, 컴포넌트 다이어그램을 클래스 다이어그램처럼 그리지 마세요, 컴포넌트 다이어그램은 시스템의 '구조'를 표현하는 것이지 '구현 세부사항'이 아닙니다.
컴포넌트 다이어그램은 '누가 무엇을 하고, 누가 누구에게 의존하는가'에 답하고, 클래스 다이어그램은 '어떻게 하는가'에 답합니다.
1. 클래스는 실체에 대한 추상화이고, 컴포넌트는 컴퓨터에 존재하는 물리적 부품에 대한 추상화입니다.
2. 컴포넌트는 소프트웨어 모듈에 속하며, 논리 모듈이 아니며, 클래스와 비교할 때 다른 추상화 수준에 있습니다.
3. 클래스는 직접적으로 연산과 속성을 가질 수 있지만, 컴포넌트는 인터페이스를 통해 접근할 수 있는 연산만을 가집니다.
컴포넌트는 시스템 내 역할에 따라 3가지로 분류됩니다:
1. 배포 컴포넌트: 실행 가능한 시스템을 구성하는 필수 컴포넌트.
예: 자바 가상 머신, 데이터베이스 관리 시스템, EXE 파일, DLL 파일.
2. 작업 산출물 컴포넌트: 개발 과정의 중간 산출물로, 실행 가능한 시스템에 직접 참여하지 않습니다.
예: 소스 코드 파일, 데이터 파일.
3. 실행 컴포넌트: 런타임에 생성되는 컴포넌트.
예: 인스턴스화된 서블릿, COM+ 객체, XML 문서.
컴포넌트와 컴포넌트: 의존 관계
컴포넌트와 인터페이스: 의존 관계 또는 구현 관계
컴포넌트의 입자 크기를 적절히 조절하려면 일반적인 기능 모듈 수준에서 컴포넌트를 설정하고, 단일 클래스를 컴포넌트로 설계하지 않도록 합니다.
왼쪽 심볼 영역에서 '인터페이스'를 오른쪽 작업 영역으로 드래그한 다음, 컴포넌트의 한쪽 끝을 클릭하고 마우스 왼쪽 버튼을 눌러 해당 인터페이스로 이동한 후, 마우스를 놓으면 컴포넌트에 구현할 인터페이스를 지정할 수 있습니다.
아닙니다. 간단한 컴포넌트는 명시적인 인터페이스가 없을 수 있습니다.
제공 인터페이스는 원형으로 표시되며, 이는 본 컴포넌트가 외부에 노출하는 기능(호출 가능)을 나타냅니다.
필요 인터페이스는 반원으로 표시되며, 이는 본 컴포넌트가 다른 컴포넌트가 제공하는 서비스에 의존함을 나타냅니다.
가능합니다. 컴포넌트 간에는 일대다 의존, 양방향 의존 또는 중재자 컴포넌트를 통한 디커플링이 있을 수 있으며, 여러 의존 관계는 여러 개의 점선으로 표시됩니다.