如何接手別人的LabVIEW代碼/可執行程序?

在工作中我們常常有很多情況要給別人擦屁股,如何能讓這種工作更有效率一些呢?今天這篇文章就想討論一下這個問題:

  1. 完全沒有代碼,只有硬體和可執行程序,文檔也少的可憐,甚至和實物脫節。

  2. 有源代碼,但是關鍵代碼加密了,看不到細節。

  3. 有源代碼,但是寫的一塌糊塗。

  • 接手EXE

對於第一種情況,其實和其他語言一樣,通用方法是觀察程序的運行流程,觀察程序和硬體、網路、文件、資料庫、串口等等的交互,還原程序的執行流程和交互。

對照文檔還原系統需求。

對於特別老的LabVIEW程序,有一個偏方可以嘗試:

  1. 可以將EXE或者DLL的後綴名修改為Zip

  2. 使用Windows自帶的解壓工具或者WinRAR解壓(注意不要使用7zip,會把EXE解壓成資源文件)

  3. 觀察解壓縮的程序文件名以及層次關係

  4. 有對應版本的LabVIEW開發環境可以觀察VI的連線版和介面,如果可以接受,不升級LabVIEW版本可以直接在程序中調用對應VI。

  • 接手加密代碼

  1. 對於加密代碼,最好是能找到密碼,目前來看複雜密碼不太好嘗試出來。

  2. 如果不能,則判斷加密代碼是否是關鍵代碼,是否需要改動,非關鍵代碼可以保持不動。

  3. 需要改動的情況下則在不改變功能的前提下進行替換式重構。

  4. 對於主VI加密的情況下,先還原硬體操作流程以及其他的操作模塊,最後組織主程序。

  • 接手雞窩式代碼

  1. 搞明白程序的需求,還原關鍵流程。

  2. 將獨佔式資源(硬體、文件、資料庫等等)封裝成功能性全局變數。

  3. 將程序模塊化,原子操作封裝成VI。

  4. 不要過早優化,整理流程優先,善用注釋。

原文:

如何接手別人的LabVIEW代碼/可執行程序?


推薦閱讀:

軟體工程專業前景怎麼樣?
什麼是社會資源?為什麼有人會鄙視程序員沒有社會資源?
如何評價中國大學軟體課程中對於流行技術(如Git)的忽視?
效率比擬RapidXml的XML解析庫Textcat::XML即將完工

TAG:LabVIEW | 软件工程 |