您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center 汽车系统工程   模型库  
会员   
   
LLM大模型与智能体开发实战
12月28-29日 北京+线上
用SysML和EA系统建模
12月25-26日 北京+线上
需求分析与管理
2026年1月22-23日 北京+线上
     
   
 订阅
类图和代码的映射关系解读( C++ )
 
作者:俎涛(火龙果科技)
    次浏览      
 2024-4-9
 

类图是代码结构的主要建模形式,为了让读者看的更形象,采用图例的方式介绍类图和代码的映射关系。

如下是一个设计类图的图例:

下面对类之间的关系分别进行类图和代码示例说明( C++ 代码):

1) Association

2) Aggregation

3) Composition

4) Generalization

5) Realization

6) Dependency

类的关系:

Association

Driver 可以驾驶 Car ,二者的关系长期存在。

#include "Car.h"

class Driver
{

public:
      Driver();
      virtual ~Driver();
      Car *m_Car; //assocation关系

  void Drive();

private:
      int name;
      int age;

};

 

Aggregation

Car 聚合了 Wheel , Wheel 可以脱离 Car 而独立存在。

class Car : public Device
{

public :
      Car ();
      virtual ~ Car ();
      Wheel * m_Wheel ; //aggregation 关系
      Motor m_Motor ;
 
      void Move ();
 
private :
      int mass ;
      int rate ;
 
};

 

Composition

Car 包含 Motor , Motor 是 Car 不可分的一部分。

#include "Wheel.h"
 
class Car : public Device
{
 
public :
      Car ();
      virtual ~ Car ();
      Wheel * m_Wheel ;
      Motor m_Motor ; //composition 关系
 
      void Move ();
 
private :
      int mass ;
      int rate ;

};

 

Generalization

Motor 和 Wheel 是 Device 的子类,继承了 Device 的属性: id 和 state ,方法: Start ()和 Stop()

#include "Device.h"
class Wheel : public Device
{
 
public :
      Wheel ();
      virtual ~ Wheel ();
 
      void Rotate ();
 
private :
      int radius ;
      int width ;

};

 

Realization

Device 实现 接口 Runnable 的 Start ()和 Stop ()方法。

 

#include "Runnable.h"
 
class Device : public Runnable //Realization 关系
{
 
public :
      Device ();
      virtual ~ Device ();
      int id ;
      int state ;
 
      void Start ();
      void Stop ();
 
};

 

Dependency

Car 的 move 操作依赖于 enviroment

#include "Wheel.h"
#include "environment.h"
 
class Car
{
 
public :
      Car ();
      virtual ~ Car ();
      Wheel * m_Wheel ;
      Motor * m_Motor ;
 
      void Move ( enviroment e ); //dependency 关系
 
private :
      int mass ;
      int rate ;

};

 

说明:本文的模型采用建模工具 EA 建模、生成代码 。


UML图解系列:

1.UML概览
2.用例图
3.活动图
4.类图
5.对象图
6.顺序图
7.类图和代码的映射关系解读( C++ )

 

后记

希望您读了此文后有所受益。

如果您有经验乐于分享,欢迎投稿给我们

如果您对我们的培训、咨询和工具感兴趣:

  • 课程:基于UML和EA进行分析设计  
  • 课程:MBSE(基于模型的系统工程)  
  • 课程:基于模型的需求管理)方法与实践
  • 课程:基于SysML和EA进行系统设计与建模  
  • 课程:企业架构建模
  • 课程:系统架构建模方法与案例
  • 课程:领域驱动的建模与设计
  • 课程:基于模型的设计
  • 课程:业务建模与业务分析
  • 建模工具EA
  • 基于模型的需求管理工具:iSpace
  • 咨询方案:MBSE(基于模型的系统工程)
  • 咨询方案:基于UML的模型驱动的开发
  • 欢迎联系我们: 俎涛Zutao@uml.net.cn

       
      次浏览       
     
    相关工具

    文档生成器(DocGenerator)
    代码工程师 Code Engineer
    模型检查器 Checker
    WebEA
    自动建模器(AutoModeler)
     
    相关文章

    ASPICE 4.0 过程指南
    采用SysML对FPGA逻辑单元进行建模(对应到VHDL代码)
    DoDAF建模图例(EA+UPDM)
    EA集成第三方工具:Polarion、JIRA、AzureDevOps
    UML建模指南(建模工具iSpace)
     
    相关课程

    ASPICE4.0核心开发过程指南
    使用NML进行系统分析与建模
    基于UML和EA进行系统分析设计
    业务建模与业务分析
    基于SysML和EA进行系统设计与建模

    工具新闻
    2025年6月 EA v17.1 发布
    2024年6月 EA v17.0 Beta版发布
    2022年11月 EA v16.1的发布说明
    2022年11月 EA v16.1正式版介绍
    2022年7月 EA v16.05的发布说明
     
    最新文章
    SysML图解
    UAF 过程指南
    代码逆向模型:QT插件Demo
    基于企业架构的企业数字化指南
    采用SysML对FPGA逻辑单元进行建模
    DoDAF建模图例(EA+UPDM)
    硬件模型:智驾域控制器(建模工具EA)
    UML建模指南(建模工具iSpace)
    更多...   
    MBSE工具
    MBSE平台
    建模工具 EA
    模型库-Model Center
    需求管理-ReqManager
    自动建模-Modeler
    多级仿真-Sys Simulator
    代码工程-Code Engineer
    文档生成器-DocGenerator
    更多...   
    成功案例
    某汽车整车企业 MBSE工具链和咨询服务
    航天三院某研究所 建模工具、模型库和咨询
    零跑汽车 建模工具EA及服务
    赛力斯 MBSE工具链和培训服务
    高合汽车研发部门 建模工具EA、WebEA、
    广汽研究院 SysML+EA+软件分析设计
    高合汽车研发部门 建模工具EA、WebEA、
    国汽智联 建模工具EA、模型库、WebEA
    更多...