您的位置:

UML组件图详述

一、组件图概述

UML(Unified Modeling Language)是对软件开发中所需的建模语言的一种标准化描述语言。UML组件图用于展示系统中组件的结构,以及组件之间的依赖关系。一个组件可以是任何类别,比如,类、接口、程序包、甚至是整个系统。组件图展示组件架构的层次结构,可以使用组件提供的接口与其他组件通信。

二、组件图用途

组件图可以为软件开发提供多方面的信息,如下:

1、项目开发规划

在计划开发过程中,组件图可以用于展示需要的开发组件以及雇佣的待开发的团队成员,有助于集中精力开发关键组件。另外组件图的助于制定开发计划和预算预算支出。

2、系统架构

组件图为系统的架构提供图像,帮助在系统的构建之前建立共识,帮助团队了解应用程序的构成。

3、通信协议

组件图为系统中每个组件之间定义通信协议,帮助小组成员编写可靠的代码。

三、组件图的构成

组件图由多种元素构成,具体如下:

1、组件

组件表示为矩形,矩形内填写组件名称,可以是任何东西,如:类、对象、库、可执行文件、模块等。

2、接口

接口表示为圆形,圆形内填写接口名称,它定义了组件提供给其他组件的服务。接口可以传递方法调用和信号。

3、依赖关系

依赖关系是组件之间的关系,表示使用一个组件的类可能使用另一个组件。箭头从使用组件指向被使用组件。

4、组合关系

组合关系用以说明一组类是一个整体,它意味着其中的类被组合组成一个大的类来提供更多的功能。组合关系用实线箭头表示,箭头指向被组合的类。

5、归属关系

归属关系用以说明两个元素之间包含部分与整体之间的关系。归属关系使用菱形箭头表示,箭头指向包含部分的元素。

四、组件图的示例代码

@startuml
!define AWSPUML https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v7.2.0/dist

!includeurl AWSPUML/Networking/@ElasticLoadBalancingController.puml

!define ICONURL https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v6.0.0/dist
!includeurl ICONURL/AWSCommon/AWSLogo.puml

!define SQSURL https://raw.githubusercontent.com/cloudtools/torture/master/markdown/img/plantuml
!define SQSICONURL https://raw.githubusercontent.com/cloudtools/torture/master/markdown/img
!includeurl SQSURL/aws-sqs.puml

!define EBICONURL https://raw.githubusercontent.com/cloudtools/torture/master/markdown/img
!includeurl EBICONURL/elasticbeanstalk.puml

title Example Component View

[Amazon SQS]-[Amazon SNS]
[Amazon RDS]-[Amazon EC2]
[Amazon RDS]-[AWS Elastic Beanstalk]
[AWS Elastic Beanstalk]-[AWS Elastic Load Balancer]
note right of [Amazon SQS]: A distributed messaging system

[AWS] --> [AWS Elastic Beanstalk]
note left of [AWS]: Architecture deployed on Amazon Web Services (AWS)

@enduml