一、前景
參考:
一種替代DOORS在WORD中進行需求管理的方法(基于WORD插件的應用)_doors aspice-CSDN博客
二、界面和資源
WORD2013/WORD2016 插件 【已使用該工具通過第三方功能安全產品認證】:
1、 核心功能
1、需求編號和跟蹤矩陣
2、插件支持跟蹤的結果統計
注:加密工具會自動將保存為CSV擴展名的文件主動加密,插件只生成CSV格式,但用tscv擴展名;使用者在導入Tessy之前,必須將擴展名手動改為CSV
3、WORD文件配置標記方式
? ? ??
4、下載資源鏈接
WORD2013/WORD2016 插件安裝包:
【免費】WORD2013/2016,需求管理插件,安裝包,VS2017VSTO工程,C#開發源碼參見:https://download.csdn.net/download/xianghuaizi/905資源-CSDN文庫
Python自動化處理源碼:
【免費】ReqIDHelperWord16需求管理插件自動化工具,源碼,python開發資源-CSDN文庫
?WORD2013/WORD2016 插件源碼:
WORD2013/2016,需求管理插件,源碼,VS2017VSTO工程,C#開發資源-CSDN文庫
三、擴展使用
1 、COM接口
System.Collections.ArrayList CreateReqIDTableCollection(Word.Document targetDoc);string GetReqPropertyValue(string reqID, string name);string GetReqMainText(string reqID);void SetSlientMode(bool slient);void CreateSpecDocListCrossLink(Word._Document[] docs, bool[] appends);void ImportExcelLinkList(string targetDocName, string srcExcelName, string[] reqIDs, string[] cellAddrs);int CreateExcelReqLink(string targetDocName, string reqProperty, bool append, string srcExcelName, string[] reqIDs, string[] traceIDs, string[] cellAddrs);void CreateWordReqLink(Word.Document targetDoc, Word.Document srcDoc, string property, bool append);void CreateWordSelfLink(Word.Document targetDoc);string[] ExportFileVersionInformation(Word.Document doc);void ClearReqPropertyValue(Word.Document targetDoc, string reqProperty);void AddTraceInformation(Word.Document targetDoc, string inf);void ExportReqWithoutPropertyTable(string outPath, Word.Document targetDoc);string GetVerInformation();
2、Python使用示例
1、加載com組件
import win32comdef LoadOfficeAddon() :WordAddInComObject = NoneWord = win32com.client.Dispatch('Word.Application')docAddin = Word.COMAddIns("ReqIDHelperWord16") # Load VSTO add-onWord.Visible = 0if docAddin != None :print("Load ReqIDHelperWord16 Add-In program OK")WordAddInComObject = docAddin.Objectif WordAddInComObject != None :print("Load ReqIDHelperWord16 Add-In COM Object Sucessful!")print(WordAddInComObject.GetVerInformation())return [Word, WordAddInComObject]
2、接口調用?
def ReBuildTrace(Word, WordAddInComObject, targetDoclist) :docHandles = []appends = []wordNum = 0if len(targetDoclist) > 1:print("#" * 80)for doc in targetDoclist:print("ReBuildTrace: " + str(doc))for targetdoc in targetDoclist:# Check the document type: word or anotherif (IsWordDocument(targetdoc)) :wordNum = wordNum + 1doc = Word.Documents.Open(targetdoc)Word.Visible = 0# Clear requirement propertyWordAddInComObject.ClearReqPropertyValue(doc, "Link By") # call com interfaceWordAddInComObject.ClearReqPropertyValue(doc, "Test By")docHandles.append(doc)appendFlag = AppendMode #appends.append(appendFlag)Word.Documents.Save()elif len(targetDoclist) == 1:for targetdoc in targetDoclist:# Check the document type: word or anotherif (IsWordDocument(targetdoc)) :wordNum = wordNum + 1doc = Word.Documents.Open(targetdoc)Word.Visible = 0# Clear requirement propertyWordAddInComObject.ClearReqPropertyValue(doc, "Test By")docHandles.append(doc)appendFlag = AppendMode #appends.append(appendFlag)Word.Documents.Save()# There are only one word document, don't need to rebuildif (wordNum > 1):WordAddInComObject.SetSlientMode(True)WordAddInComObject.CreateSpecDocListCrossLink(docHandles, appends)
3、自動化生成報告
借助插件和python豐富的庫可以生成以下報告(統計報告和詳細報告)
統計報告示例
詳細報告示例
四、總結
通過該工具能夠替代專業工具,但額外維護的花費時間較多。如果經費允許,還是使用專業工具,例如DROME。