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

1元 10元 50元





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



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
基于文件仓库进行建模协作(EA+SVN)
 
作者:俎涛,张贵显(火龙果软件工程)
  1849  次浏览      47 次
2021-4-27
 

在文章《协同建模&版本管理(基于EA)》一文中,我们提到EA有四种协同建模方式:

  • 基于本地文件
  • 基本共享文件仓库
  • 基于模型数据库
  • 基于云服务
  • 今天我们主要介绍一下第二种方式 基于共享文件仓库进行建模协作。这种方式主要是对EA中各个模型包应用版本控制来实现。任何包都可以应用版本控制——无论是模型的根节点、视图还是子包。


    Enterprise Architect支持模型中版本控制包的两种主要方式:

    1、 Model Baselines模型基线:这是EA内置的功能,可以在模型存储库本身中存储包的时间点快照。


    2、Version Control Integration版本控制集成: EA支持与第三方版本控制系统的集成,它支持的版本控制工具包括Subversion、CVS、Microsoft的TFS和SCC兼容工具,如Accurev和Visual Source Safe。

    接下来我们主要看一下如何通过SVN实现模型的版本控制。

    EA +SVN协同建模

    基于SVN进行协同建模这种方式包含服务器端和客户端。服务器安装版本控制服务器组件存放文件仓库。用户在客户端EA中通过版本控制系统连接访问服务器上的文件仓库。


    EA +SVN版本控制系统组成:

    部分 说明
    版本控制服务器 安装基于文件的版本控制系统SVN管理端,配置版本控制服务。
    版本控制客户端 安装SVN客户端,安装EA,建立工作副本文件夹,连接服务器,配置EA版本控制 。

    安装软件:

  • VisualSvn Server svn服务器
  • Tortoise Svn svn客户端
  • Enterprise Architect
  • 操作指南:


    基于EA+SVN协作如下工作场景

    在服务器建立模型文件仓库,
    管理员在EA客户端中把模型提交到文件仓库管理起来,
  • 多人进行并发建模:
  • 其他用户可以check out 一个 package,编辑,check in;此时其他用户对锁定的package无法编辑,只能阅读。
  • 如果一个用户正在阅读一个package,check out 的用户 check in 了此package,则提醒更新。
  • 可以把一个模型文件仓库备份,

    我们进行如下操作:

    操作1: SVN服务器配置

    1. 下载安装软件

    现在Subversion已经迁移到apache网站上了,官网下载地址:http://subversion.apache.org/packages.html

    我们一般是VisualSVN server 服务端和TortoiseSVN 客户端搭配使用

    VisualSVN可以极大地简化Subversion服务器的安装,配置和管理。

    2. 创建一个仓库

    3. 创建版本控制项目(或用于特定项目的模块或文件夹)

    4. 配置用户ID和密码

    操作2:SVN客户端配置

    1、安装客户端SVN软件

    我们选择TortoiseSVN客户端,下载安装

    2、建立工作副本文件夹,连接SVN服务器

    当版本库初始化完毕后,还只是一个空目录,里面没有任何内容。所以需要先在本地创建并制作初始的设计图,然后将其提交到版本库中。这个工作基本上只需要做一次。

    在这个本地空间,用户可以用SVN检出已有的ea项目到新建的EA工作空间

    操作3、设置EA版本控制

    在本地创建一个空的eap文件,右击Model——Package Controll——Version Controll Settings


    操作4、在EA中进行基于SVN的版本管理

    1、添加分支到版本控制

    右键点击“Project Browser”中本地副本的包,在弹出菜单中,选择“Package Control -> Add Branch to Version Control”,将本地内容提交版本控制。



    在“版本控制”工作副本文件夹中创建多个子文件夹,然后导出所选模型分支中的所有“包”。系统根据程序包GUID为XMI文件生成文件名。

    注意:

  • 在选择此命令之前,必须在模型中定义用于此操作的版本控制配置
  • 在模型根节点上调用此命令时,会将版本控制应用于模型中的每个Package
  • 版本提交成功后,可以看到在“Browser"窗口中,节点上已经被明显地添加了加锁的标记。这表明该节点内的Package,已经纳入版本控制管理了。


    这个时候不能再进行操作,如果添加新元素会显示如下提示:


    右键单击选择Package Control > Check Out Branch 之后,节点上没有了锁的标记。


    2、导出模型分支

    导出EAB文件,项目组其他成员导入用。右键单击选择Package Control > Export as Model Branch


    导出EAB文件,项目组其他成员可以导入用。文档名称可以自定义。


    3、导入模型分支

    选中一个包右键单击Package Control > Import a Model Branch


    4、其他版本控制操作


    选中一个包右键Package Control 右侧有很多菜单项,具体功能如下表。

    操作 说明
    Check In Branch
    签入分支

    当前所选模型分支中包含的签入模型包(即所选模型包及其所有子模型包)。
    “选择要签入的模型包”对话框列出了该分支中已签出的所有版本控制的模型包。您可以在列表中选择包,然后提交以进行签入。
    您还可以选择在对版本控制提交新修订后将模型包保留为未签出状态。
    Check Out Branch
    签出分支
    递归检出当前所选模型分支中包含的所有模型包(即所选模型包及其所有子模型包),这些包是受版本控制的并已签入。
    Check In
    签入

    将当前所选模型包的新修订提交到版本控制存储库,并锁定该模型包以免进一步编辑。
    仅适用于您自己签出的包。
    Check Out签出 将当前选择的模型包与版本控制存储库中的最新修订版进行同步,然后解锁该模型包以进行编辑。
    仅适用于尚未签出的包(以及尚未签出其关联模型包文件的包)。
    Undo Check Out
    撤消签出
    将选定的程序包还原到版本控制存储库中的最新版本,并锁定该包以免进一步编辑。
    Put Latest
    更新到最新

    将当前选定的模型包的新修订提交到版本控制存储库,同时使模型包保持check out 状态。
    这等效于check in包并立即再次将其check out。
    仅适用于自己签出的模型包。
    Get Latest
    获取最新
    符合当前适用案例的工具应支持其他适用案例所需的所有扩展单元,这实际上意味着支持MARTE的所有必要特性。
    Get All Latest
    获取所有最新

    将项目中的所有版本控制包更新为从版本控制检索到的最新版本。
    仅更新当前签入的模型包。
    检索到最新修订后,系统将扫描所有受控程序包,并通过将程序包与其XMI 1.1文件进行比较来修复所有丢失的交叉引用。
    如果XMI中的交叉引用信息与模型不匹配,则系统使用XMI中的信息更新模型,并将此更新记录在“系统输出”窗口中。
    您可以通过选择“系统输出”窗口中的条目并使用上下文菜单选项“回滚更新”(如果选择了多个条目,则使用“回滚所选更新”)来回滚此类更新。
    • 关闭模型会清除“系统输出”窗口中的条目
    • 回滚更新时,也会清除“系统输出”窗口中的条目
    Scan XMI and Reconcile Model
    扫描XMI和协调模型

    扫描与每个项目的受控程序包相关的程序包XMI文件,并恢复在项目中检测到缺少的任何图表对象或交叉引用。
    此功能在团队环境中非常有用,在团队环境中,每个用户维护自己的模型数据库的私有副本(即多个私有项目文件),并且通过使用受控程序包传播模型更新。当模型托管在所有团队成员都可以访问的单个共享数据库中时,它没有任何好处。
    将每个受控程序包与其关联的XMI文件进行比较,如果模型中的交叉引用信息与XMI不匹配,则系统使用来自XMI的信息更新模型,并将更新记录在“系统输出”窗口中。
    您可以通过右键单击“系统输出”窗口中的条目并选择“回滚更新”选项(如果选择了多个条目,则选择“回滚选定的更新”)来回滚此类更新。
    关闭模型会清除“系统输出”窗口中的条目;当您回滚更新时,窗口中的一个条目也会被清除。
    此功能作为“获取所有最新”操作的一部分自动调用。
    在使用私有模型部署的环境中工作并且您的模型包含大量交叉包引用时,建议您在重新导入受控包之后不时调用“扫描XMI和协调模型” -例如,在使用“获取最新信息”更新多个模型包之后-或在执行了许多模型包检出之后。
    通常,避免在未提交模型更改的情况下运行“扫描XMI和协调模型”。通常,您:
    • Check out 一些package
    • 调用“扫描XMI和协调模型”
    • 进行修改
    • 提交所有未完成的更改,然后再签出更多模型包并再次运行“扫描XMI和协调模型”
    File Properties文件属性
    显示与与当前所选模型包关联的XMI导出文件有关的版本控制属性;这也可以确定谁签出了包。
    File History
    文件历史

    显示当前所选模型包的更改历史记录信息。
    恢复或检出该模型包的先前版本。
    Compare with Controlled Version
    与受控版本比较
    将当前选择的程序包与从版本控制中检索到的相关XMI文件的最新版本进行比较。
    Add Branch to Version Control
    将分支添加到版本控制

    只需一次操作,即可将版本控制应用于选定模型分支内的所有模型包。
    在这种情况下,模型分支是当前在“浏览器”窗口中选择的“包”,其中包含所有包。
    Export as Model Branch
    导出为模型分支

    从您自己的模型私人副本中导出新创建的模型分支。
    Import a Model Branch
    导入模型分支

    检索模型分支并将其导入到源模型或另一个模型中。
    Get Package
    取得包


    访问版本控制存储库中模型中当前不可用的模型包。
    Re-synch Status With VC Provider
    与VC提供程序重新同步状态


    在不执行XMI导入或导出的情况下,更新为项目中的选定程序包记录的版本控制状态值,以使其与版本控制提供程序报告的值相匹配。
    当项目中记录的程序包的版本控制状态与版本控制提供程序报告的版本控制状态不同步时,请使用此功能。
    Version Control Settings
    版本控制设置


    显示“版本控制设置”对话框。

    火龙果软件提供团队协同建模环境的咨询服务,可以帮助用户搭建完整的团队建模和MBSE解决方案,详细信息请见http://tool.uml.com.cn/ToolsEA/introduce.asp

    如果您希望了解更多信息:

    • 欢迎访问建模者频道 http://modeler.org.cn/
    • 也欢迎直接联系我们 zhgx@uml.net.cn ,010-62670969

    本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp

     

    后记

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

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

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

    课程:
  • 基于UML和EA进行分析设计
  • MBSE(基于模型的系统工程)  
  • 基于模型的需求管理)方法与实践
  • 基于SysML和EA进行系统设计与建模  
  • 企业架构建模
  • 系统架构建模方法与案例
  • 领域驱动的建模与设计
  • 基于模型的设计
  • 业务建模与业务分析
  • 基于模型的设计

  • MBSE工具链 :
  • 建模工具:EA
  • MBSE平台:iSpace
  • 模型共享:WebEA
  • 文档生成:DocGenerator
  • 模型仿真:Simulator
  • 质量管理:inspector

  • 咨询方案:
  • MBSE(基于模型的系统工程)
  • 基于UML的模型驱动的开发
  • 基于Sys ML进行系统分析设计
  • 基于模型进行系统分析设计
  • 欢迎联系我们: 俎涛 Zutao@uml.net.cn

       
    1849 次浏览       47
     
    相关文章

    基于模型的Code执行分析(使用EA)
    AUTOSAR 建模和ARXML文件生成(基于EA)
    基于工程数据的研发管理
    基于EA建立DMN模型
     
    相关文档

    UML统一建模语言参考手册
    网上商城UML图
    UML建模示例:JPetStor
    UML序列图编写规范
     
    相关课程

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

    最新活动计划
    软件架构设计方法、案例与实践 9-22[北京]
    云计算、微服务与分布式架构 9-22[北京]
    人工智能、机器学习& TensorFlow+Keras 9-24[北京]
    配置管理方法、实践、工具与应用 9-26[北京]
    MBSE(基于模型的系统工程)9-28[北京]
    Python 核心编程与可视化技术实战 9-16[上海]
     
    最新文章
    iPerson的过程观:要 过程 or 结果
    “以人为本”的工程哲学
    企业架构、TOGAF与ArchiMate概览
    UML 图解:顺序图( sequence diagram )
    UML 图解:对象图( class diagram )
    最新课程
    基于UML和EA进行系统分析设计
    UML+EA+面向对象分析设计
    基于SysML和EA进行系统设计与建模
    UML + 嵌入式系统分析设计
    领域驱动的建模与设计
    更多...   
    成功案例
    某电信运营供应商 应用UML进行面向对象分析
    烽火通信 UML进行面向对象的分析设计
    西门子 UML与嵌入式软件分析设计
    航天科工某子公司 从系统到软件的分析、设计
    深圳某汽车企业 模型驱动的分析设计
    更多...