MBT文档模型化、工程化生成工具用户手册 30倍效率文档撰写工程化方法 A model based document builder

本文主要是介绍MBT文档模型化、工程化生成工具用户手册 30倍效率文档撰写工程化方法 A model based document builder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MBT文档模型化生成工具用户手册

30倍效率文档撰写工程化方法

A model based document builder

  1. 简介

在软件工程领域,工程文档通常主要包括实施方案、需求分析、软件设计、测试报告、验收大纲、用户手册等几种。这些文档中,通常要求内容丰富,能够体现整个软件工程大部分信息;易于理解,需要制作各种表格,绘制各种图形,包括UML图。可见,文档撰写的工作量巨大,需要有工具支撑,以提高工作效率。

“文档模型化生成工具”的研制目的是为了简化工程文档,减少文档撰写的工作量,所针对的实际现象是:

(1)产品研发人员之间文档样式、模板不统一,格式过于复杂,编辑、合并、分块工作会耗费大量时间。

(2)同一项目中,文档之间联系紧密,其中往往包括一些重复信息。

(3)章节之间,隐含了组成、从属关系信息。

(4)表格制作、图形绘制工作工作量大。

(5)段落、插图、表格、目录、编号、页码、样式等文档要素要进行正确美观的格式调整和控制,会占据用户大量时间。

(6)文档内容多、格式复杂时,编辑、保存都需要一定的等待时间。

(7)Word文件版本管理、内容比较、内容合并、内容恢复比较困难。

MBT文档模型化生成工具从Latex、Markdown、reStructedText等脚本生成文档技术中得到启发。升级、简化MarkDown,设计脚本,面向特定的应用目标,在使用上需要遵循一定的领域语言(方言)语法逻辑,就可以有针对性地加以自动化处理,以提高文档撰写工作效率。

(1)文档模型化,对文档要素建模,统一管理和处理过程。模型表格化,尽可能使得用户可用Excel录入。

(2)统一和简化文档样式,文档模型化生成工具鼓励简化文档样式。一篇文档通常只使用几种简洁的样式,包括:标题(1-6级)、目录、正文文字段落、插图(png、jpg、bmp、visio、UML图、Dot图等)、表格、编号列表项、无编号列表项、嵌入word文档块、嵌入其它文档、代码、公式。

(3)单位内部使用统一模板。设置模板服务器,当模板调整后,更新到服务器,工具自动从服务器下载最新的模板,生成符合要求格式、样式的文档。

(4)文档内容可复用,例如产品分级功能、产品基本情况、运行环境(测试环境、试用环境)、研制进度、人员安排、技术风险、技术先进性等内容,都可以作为文档块单独撰写,后续可以在各文档中包含使用。

(5)自动从标记的章节之间,生成组成、从属关系的UML插图、表格和相应的编号。

(6)通过脚本生成表格、图形、公式等文档要素,自动编号、指定引用标签。

(7)由于使用了基于模板的脚本生成文档技术,用户不再需要花费时间在对段落、插图、表格、目录、编号、页码、样式等文档要素要进行正确美观的控制。

(8)使用MBT脚本撰写文档,文档内容就是文本,可以使用内置DocEditor图形界面编辑器,也可使用用户常用的文本编辑器,如Editplus、UltraEdit、Sublime、VScode、Vim等软件。在文档内容很多的情况下,编辑效率更高,软件响应无延迟。

(9)文本文件版本管理、内容比较、内容合并、内容恢复容易。

(10)复杂的格式外部导入,如确实需要使用表格套表格、九宫格插图等复杂格式,可使用Word撰写好,通过指令插入。

(11)MBT可以作为中间文档格式。Word文件和PowerPoint文件可转换为MBT文件,通过MBT文件再转成其它格式。另外,一些系统需要生成文档,生成MBT文档比生成Word文档要简单得多。

  1. 文档工程化

MBT工具是实现复杂大型文档撰写工程化管理的核心环节。文档模型化(脚本化)使文档变成了类似软件代码的文本文件,因此可以借鉴软件工程理念、应用成熟的软件工程工具链,实现文档撰写工程化,极大提高文档工作的效率。具体的环节和对应的工具主要有以下几种。

需求管理,采集提炼用户需求,形成需求条目文档,指导文档撰写。

文档设计,确定使用的文档模板和文档内容框架结构,划分文档内容模块,将文档块,分配到不同的项目组成员,分工协作开展工作。

版本管理,用SVN或GIT版本管理工具,管理文档各版本,包括不同人员在不同时间、不同地点撰写的文档版本。

版本比较和合并,使用BeyondCompare、UltraCompare或WinMerge等工具之一,比较不同版本文档之间的差异,合并消除差异。

同行评审(Review),使用Review board、Gerrit、CodeStriker、Code Review Tool等工具之一,由项目组或各级负责人员实施文档检查和评审。

缺陷跟踪(Bug trace),使用JIRA、BugZilla、Bugtracker等工具之一,对发现的问题进行跟踪,直到问题解决。

自动构建,将一个组织内部的全部文档每天自动构建为目标文档,并收集分析构建过程中发现的问题。

采用GitLab 服务系统,用于文档仓库管理,使用Git作为文档代码管理工具,可一站式实现上述软件工程工具功能。文档在最后完成交付时,需要统一润色。

  1. 软件使用流程

(1)编写文档文本,保存为文档磁盘文件。

(2)输入文档磁盘文件到文档生成工具,工具通过解释器解释为文档结构,调用文档生成、UML绘制、Dot绘图、文档模板等模块或资源,生成目标文档(Docx、HTML、chm帮助文件、Qt帮助文件、pptx、pdf、xps)。其中,Docx格式是最终输出的文档,HTML格式用于快速察看文档效果,chm用于HtmlHelp联机帮助,Qt帮助文件用Qt软件联机帮助、PowerPoint用于演示汇报,pdf是Adobe提出的通用电子文档格式、xps是Microsoft提出的通用电子文档格式。

(3)用Word软件打开Docx文档(用PowerPoint打开pptx文档),对整个文档进行润色和校对。

建议在专门的一个目录中存放某个软件工程的相关文档。并使用版本管理工具对这些文件进行管理。纯文本格式的文档代码,利于版本管理和文本比较工具的使用。版本管理工具可使用svn或git,文本比较工具可使用Beyond Compare。

  1. 软件系统组成

文档生成工具由DocEditor图形编辑界面和控制台处理程序两部分组成。

一般情况下,用户只需要使用DocEditor编辑器即可。高级用户可使用控制台处理程序,实现一些自动化的文档处理调用。

    1. 图形编辑界面

文档生成工具提供了易用的图形编辑界面。

图 1 图形用户界面

左边是章节树,点击章节节点,可以在编辑器中选中相应的章节,右键菜单中,可查找章节,拷贝、粘贴、删除章节。

支持常用文档脚本的插入。支持常用文档脚本的插入。

支持在Windows资源管理器中,选中图像文件、Word文件、txt文件,拖放到窗口中。也可以将剪切板中的文本、图像直接粘贴到文档中。

图 2 插入常见文档要素

用户可选择一个其它编辑工具,如Editplus 4、UltraEdit、Visual Studio 2013、Visual Code、Sublime等,使用命令行指令生成,或者用文档生成工具编辑器打开再生成,获得输出结果文档。

图 3 生成菜单

文档生成工具提供了文档校对功能,能够检查文档中的中文文字错误。

图 4 高级工具

    1. 控制台处理程序

生成文档指令格式如下:

PrjDoc.exe xx.txt [xx.docx |xx.htm|xx.chm|xx.pptx|xx.pdf] switches

Switches文档类型开关: 实施方案 需求规格说明 概要设计 详细设计 测试大纲 测试报告 用户手册 帮助 通用文档等。如果没有指定文档类型,会从输入文件名称中推测文档类型。文档类型会添加到标题中,如果是通用文档时,文档标题不会添加“文档类型”字样。

这篇关于MBT文档模型化、工程化生成工具用户手册 30倍效率文档撰写工程化方法 A model based document builder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347694

相关文章

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI