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

1元 10元 50元





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



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
类图和代码的映射关系解读( C++ )
 
作者:俎涛(火龙果科技)
  937  次浏览      20 次
 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

       
    937 次浏览       20
     
    相关文章

    用户手册:EA Helper
    自然语言自动化生成图
    使用iSpace进行多人协作建模
    基于模型的软件复用(MBSR)
     
    相关文档

    AUTOSAR_TR_BSW UML模型建模指南
    UML时间图建模(基于EA)
    UML 模型框架(基于EA)
    UML序列图编写规范
     
    相关课程

    UML+EA+面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于UML和EA进行系统分析设计

    工具新闻
    2024年6月 EA v17.0 Beta版发布
    2022年11月 EA v16.1的发布说明
    2022年11月 EA v16.1正式版介绍
    2022年7月 EA v16.05的发布说明
    2022年4月 EA16.0 正式版发布
     
    最新文章
    在EA中内嵌文档- Artifact
    EA中模型视图
    EA中的实体关系图
    使用EA进行风险建模
    EA中的项目词汇表
    EA的模型导出或导入csv文件
    自定义表格(Custom Table)在EA中的使用
    Gap Analysis Matrix(差距分析矩阵)
    更多...   
    MBSE工具
    MBSE平台
    建模工具 EA
    模型库-Model Center
    需求管理-ReqManager
    自动建模-Modeler
    多级仿真-Sys Simulator
    代码工程-Code Engineer
    文档生成器-DocGenerator
    更多...   
    成功案例
    广汽研究院 SysML+EA+软件分析设计
    高合汽车研发部门 建模工具EA、WebEA、学习视频
    国汽智联 建模工具EA、模型库、WebEA和iSpace
    亿咖通 MBSE工程体系与工具链咨询
    中航无人机 MBSE工具链
    吉利汽车 购买EA工具
    华科汽车零部件 购买EA工具
    东风岚图汽车 购买EA工具 以及EA定制开发
    更多...