
# 代码模型
代码模型定义代码结构以及代码元素逻辑模型中逻辑元素的对应关系，建立逻辑元素到代码仓或者代码目录的映射关系，以实现软件源代码的显示管理。
#### 元素介绍
表1代码模型元素介绍 
| 元素名         | 图标                                                                                                       | 含义                                                                                                                    |
|:---|:---|:---|
| Repo Grp    | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546903229.png "点击放大") | 代码仓组是代码模型分组辅助元素，不对应具体的代码仓，仅表示一个集合。 一个设计对象对应多个代码仓的情况，建议使用Repo Grp标识出来，供构建模型整体引用。 |
| Repo        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515503308.png "点击放大") | 表示一个代码仓。                                                                                                              |
| Dir         | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515343386.png "点击放大") | 表示一个代码目录。 Dir不单独出现，建立在某个代码仓或者上级目录之下。                                            |
| File        | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546983235.png "点击放大") | 表示代码仓中的文件，名称中包含文件名+文件类型后缀。                                                                                            |
| Dir Templ   | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546903231.png "点击放大") | 目录模板。                                                                                                                 |
| Manifest    | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515503312.png "点击放大") | Repo和对应的逻辑设计对象使用Manifest连接。 表示由此代码仓的代码实现此设计对象的功能。连线方向由代码元素指向逻辑元素。             |
| Composition | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515343400.png "点击放大") | 组合，是整体与部分的关系，但部分不能离开整体而单独存在。菱形箭头为整体所在一边。                                                                              |
| Aggregation | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546983249.png "点击放大") | 聚合，是整体与部分的关系，且部分可以离开整体而单独存在。菱形箭头为整体所在一边。                                                                              |
| Dependency  | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002546903247.png "点击放大") | 依赖，是一种使用的关系，即一个类的实现需要另一个类的协助。                                                                                         |
| Usage       | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515503328.png "点击放大") | 使用，是一种使用的关系。表明一个模块在运行的时候，需要使用另外一个模块。                                                                                  |
| Build From  | ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002515343404.png "点击放大") | 构建关系，表示当前构建结果从某一代码目录或者代码文件构建而来，仅适于构建元素与代码元素之间的关系，连线方向由构建元素指向代码元素。                                                     |
   
#### 前提条件
因为代码模型主要是描述创建出来的代码元素与逻辑元素的Manifest连线关系，所以在代码模型设计前必须要先完成逻辑模型的设计。
#### 建模步骤
1. 创建代码模型图。 
   创建新的代码模型图或者在已有的代码模型图中进行绘图设计，如果设计内容过多，可根据实际情况将内容进行拆分，创建多个代码模型图，在对应的代码模型图中去建立关系。
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002039508045.png "点击放大")
   
   
2. 引用逻辑元素到代码模型。 
   在代码模型中不能创建新的逻辑元素，必须要从逻辑模型中引用到代码模型中，引用逻辑元素的操作方式有两种
   方式一：直接从工程树上将逻辑元素节点拖入到打开的代码模型图中，选择Link方式。
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002489824712.png "点击放大")
   方式二：在逻辑模型图中按Ctrl键**多选** 或者**框选多个**逻辑元素Ctrl+C复制，然后再到代码模型中Ctrl+V粘贴，粘贴方式选择引用元素，可以保留嵌套组合的结构样式。
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002003349856.png "点击放大")
   上述两种方式都可以将逻辑元素引用到代码模型图中，在代码模型中只需要引用需要建立映射关系的逻辑元素即可。
   
   
3. 创建代码元素并与逻辑元素建立Manifest连线关系。 
   在步骤2中将逻辑元素引用到代码模型中后，再从工具箱中拖入代码仓元素，如果存在一个代码仓组下的多个代码仓元素，可以选代码仓组元素，将多个代码仓元素包含起来，如果具体模块对应的是代码仓中某一目录中的代码，则需要在对应的代码仓元素中创建Dir目录元素，再建立对应逻辑元素与代码元素的Manifest关系。
   ![](https://support.huaweicloud.com/usermanual-codeartsmodeling/zh-cn_image_0000002039588973.png "点击放大")
   
   
 
