来源:fasiondog

许多UML建模工具可以自动生成文档,让需求人员、开发人员专心于需求、设计的建模。当然为了能够生成符合自己要求的模板,需对建模时的目录结构(模型和包)有所规划和要求,否则很难生成相应的文档。这要求提前了解相应的建模工具如何生成文档以及如何配置文档模板。不同的建模工具配置文档模板的方式和要求,如StarUML使用Word中的批注命令对元素模型进行遍历,而EA则通过RTF标注以及模型目录,相比之下EA的文档生成和模型的目录结构绑定的更紧,如果没有事先规划,更难生成文档。这里简单记录StarUML配置生成Word文档的模板方法和注意事项,作为StarUML帮助的一些补充。EA的文档生成,另外记述。详细的StarUML文档配置方法,详见:http://staruml.sourceforge.net/docs/developer-guide(en)/ch11.html

StarUML文档生成功能菜单在“[Tool]->StarUML Generator”,如下图所示:

创建文档模板

由于StarUML的中文支持不好,如果直接按Help中的方式创建以中文命名的文档模板会出错。可以简单的到StarUML的安装路径下,找到模板所做路径,如:D:\Program Files (x86)\StarUML\modules\staruml-generator\templates。直接复制一份已有的Word模板目录(安装后默认有一份usecase specification),然后将目录改名为所希望的名称。接着将该目录下的“Template.doc”更换为自己的文档模板,作为后续添加命令的基础文档。然后,启动“[Tool]->StarUML
Generator”在界面中更改,模板的注册名称。其详细做法,见下面各图所示。

1)复制已有的Wor的模板目录,并改名为所希望的名称,如“需求规格说明书”

2)在文档生成功能界面([Tool]->StarUML Generator)中,更改模板的注册名称

如何在Word文档中通过批注添加StarUML命令

StarUML是通过Word文档中的“批注”来标识如何将UML模型中的内容插入到文档的指定位置。其指示生成内容的语法主要是“命令+参数”的形式。如下图所示:

其中,命令只有4个,其中IF和SCRIPT很少用,分别是:

  • REPEAT ~ ENDREPEAT (如果是在表格中自动插入多条数据,需用 ENDREPTR 结尾)
  • IF ~ ENDIF (如果是在表格中自动插入多条数据,需用 ENDIFTR 结尾)
  • DISPLAY
  • SCRIPT

由于命令部分是通过“批注”中的作者来表示的,而Word又不能随便更改作者,所以需要下载StarUML提供的默认模板(其中提供了所有命令的批注,模板下载地址:http://staruml.sourceforge.net/files/template-word.zip),从其中拷贝批注来添加命令。在Word中拷贝批注,最好将批注的显示方式改为嵌入方式,见下图:

在嵌入批注的显示方式下,点击“审阅窗格”按钮,可编辑批注内容,输入参数:

命令用法

命令:REPEAT ~ ENDREPEAT

用途:遍历满足输入参数条件的模型元素,并执行REPEAT和ENDREPEAT之间的其它命令。注意,如果是在表格中增加多条数据,结尾应用ENDREPTR。注意,该命令可以嵌套,即REPEAT中嵌套REPEAT

参数:PathName;FilterType;CollectionName;Condition参数都是可选的,彼此之间使用“;”分隔,如果不指定某个参数空着即可,如::Use Case View;UMLClass;;,表示遍历目录::Use Case View中的类型为UMLClass的元素。PathName:路径名指的是模型(Model)和包(Package)的名称,可以在StarUML中选择元素后在状态栏中查看,如下图所示:

在路径前加上“{R}”表示递归该路径下的所有子模型/子包,如“{R}::Use Case View;UMLActor;;”表示递归模型Use Case View下所有的Actor。FilterType:UML模型中元素,如Class、Actor、UseCase。其也可以在StarUML中的状态栏中查看选定元素的类型,见前图。CollectionName:指的是选中元素后右键菜单里(见下图)的“Constraints”和“Collection Editor”中的Attributes/Operations等,其名字和界面中显示的一样,如“;;Constraints;”。

Condition:指定条件,如“current().Documentation != ""”

命令:DISPLAY

用途:显示元素指定的属性或者显示图形

参数:Pathname;Expression

Pathname:见REPEAT命令

Expression:指定元素的属性,使用current()表示当前遍历到的元素,current().Name表示当前元素的名称,其它属性类似。

常用的有:显示元素名称:current().Name;I

显示元素文档内容:current().Documentation

显示Tag内容:;trim(current().GetTaggedValueAsString("UMLStandard", "UseCaseSpecification", "Preconditions"));

显示约束内容,属性、操作等类似:

REPEAT ;;Contraints;

DISPLAY ;current().Name

DISPLAY ;current().Body

ENDREPEAT

显示图形:

REPEAT {R};UMLActivityDiagram;;

DISPLAY ;;  (只要在REPEAT中选定图形,此处参数默认为空即可

ENDREPEAT

命令:SCRIPT

用途:简单的JScript脚本用的不多,可以简单的添加文本前缀,如在用例名称加上“UC_”的前缀

SCRIPT new_name = "UC_" + current().Name

DISPLAY ;new_name;

更复杂一点的,比如为Use Case View模型下的每个包里的用例进行编号,其中每个用例通过添加Tag“ID”指明序号(如何添加新的Tag另外记录)。比如,包“需求管理”下的用例“创建需求申请单”,其ID为“001”,则自动生成用例编号“UC_需求管理_001”。代码如下:

REPEAT ::Use Case View;UMLPackage;;

SCRIPT package_name = current().Name

REPEAT ;UMLUseCase;;

SCRIPT uc_id = "UC_"+ package_name+"_" + current().GetTaggedValueAsString("UMLStandard", "UseCaseSpecification", "ID")

DISPLAY ;uc_id;

ENDPEAT

ENDPEAT

命令:IF ~ ENDIF

我很少用,不介绍了

示例模板(需求规格说明书)

供参考:下载地址:http://www.kuaipan.cn/file/id_14930590516188149.htm?source=1

StarUML配置Word生成文档模板的更多相关文章

  1. doxygen的使用(一)配置并生成文档

    原创文章,欢迎阅读,禁止转载. doxygen是个好用的文档生成工具,他的强大功能有很多介绍,我就不说了.自带的chm帮助手册很全面,包括功能.注释规范.怎么配置.工具用法等.doxygen的用法共3 ...

  2. SpringBoot 集成Swagger2自动生成文档和导出成静态文件

    目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagg ...

  3. C#依据word模版动态生成文档

    新生开学,各院系辅导员代领校园卡.需要打印一份领取卡的协议,协议模版固定,但各院系卡的数量不同.需要从excel表格中抽取数据往word文件中填,同事咨询是否可以用word中的邮件合并功能,心想有这功 ...

  4. 配置WCF同时支持WSDL和REST,swaggerwcf生成文档

    配置WCF同时支持WSDL和REST,SwaggerWCF生成文档 VS创建一个WCF工程,通过NuGet添加SwaggerWcf 创建完成后通过 程序包管理控制台 pm>Install-Pac ...

  5. phpdoctor 安装,配置,生成文档

    window 下安装phpdoctor 1 安装php,设置环境变量path ,把php 的安装路径加上,比如php 安装在d:/php5/ 2下载phpdoctor,可以去官网下载 http://p ...

  6. 使用Sphinx为你的python模块自动生成文档

    Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等. 安装 创建一个sphinx项目 下面的命令会 ...

  7. 利用PowerDesigner逆向工程导出PDM模型及生成文档

    原文:利用PowerDesigner逆向工程导出PDM模型及生成文档 最近需要对老项目进行重构优化,由于项目都是好几年前的,相关设计资料很不全,最基本的数据库设计文档都没有,只能利用PowerDesi ...

  8. 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)

    对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...

  9. 使用Ldoc给Lua生成文档

    Ldoc介绍 LDoc是一个Lua的文档生成工具,过去,比较常用的Lua生成文档的工具是LuaDoc,可惜作者自从2008年之后就再也没有发布过新的版本了,说明作者基本上已经放弃维护了.而LDoc则是 ...

随机推荐

  1. ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation

    ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...

  2. Android简易实战教程--第十九话《手把手教您监听EditText文本变化,实现抖动和震动的效果》

    昨晚写博客太仓促,代码结构有问题,早上测试发现没法监听文本变化!今日更改一下.真心见谅啦,哈哈!主活动的代码已经改好了,看截图这次的确实现了文本监听变化情况. 监听文本输入情况,仅仅限于土司略显low ...

  3. java虚拟机参数设置 jvm参数设置

    java进程命令行使用方式如下: java [-options] class [args...] -options 表示虚拟机的启动参数, class为带有main()函数的java类的全名称 arg ...

  4. 【一天一道LeetCode】#223. Rectangle Area

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Find th ...

  5. 关于MySQL-python-1.2.3.tar.gz安装失败的解决方案

    关于MySQL-python-1.2.3.tar.gz安装失败的解决方案 RHEL6.4升级到python2.7.9,然后安装 MySQL-python-1.2.3.tar.gz, 报错.解决错误之后 ...

  6. FFmpeg示例程序合集-批量编译脚本

    此前做了一系列有关FFmpeg的示例程序,组成了<最简单的FFmpeg示例程序合集>,其中包含了如下项目:simplest ffmpeg player:                   ...

  7. Android读取网络图片到本地的简约的实现

    今天在网上看到了一个关于读取网络文件的小视频,觉得不错,拿来与大家分享 思路 具体的思路比较的简单,但是思想非常的单纯.那就是输入一个网址,点击按钮,将从网络上获取的一张图片显示到一个ImageVie ...

  8. python跨行 print:多用(),换行符\要小心,少用+或者不用(其它程序代码跨行用\就行,不能用括号)

    这两种是错的 # print '11' #       'tset3'#error # print '12' #       +'tset4'#error python跨行用()和\都能实现.+只是连 ...

  9. A*寻路算法入门(三)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  10. 最简单的基于FFmpeg的AVDevice例子(读取摄像头)

    =====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDev ...