源程式分析

源程式分析概述

源程式分析與算法分析不同。源程式分析套用在已有成功程式中,對這些程式閱讀和分析,讀懂學會。
源程式分析是軟體結構與功能的分析。算法分析是算法時間與空間複雜度的分析。
包括:分析軟體的主體,主題與結構;分析軟體不同段落模組或層次的發展線索與中心詞。主體一般認為是數據結構,中心詞(與主體的關係)是當前正在處理的變數,例如遍歷算法中的工作指針變數。
源程式分析是對應某一個具體問題的軟體(計算,遍歷,查找,排序),分析程式功能的原子結構,分子結構(在數據結構中稱為聚合結構),最後用特定算法綜合得到程式框架。

基於程式分析的結構編程

根據源程式分析的結果:程式原子結構與框架,套用到同類問題中,通過上下文程式設計方法,用對應特定算法編程,得到源程式。在專家系統或軟體工程中,逐漸擴展,構成一個完整的系統。可用在軟體自動編程。

對數據結構進行分析的結論

1)數據的處理順序--結構排序,排序結構

程式的數據處理可用原數據結構排序。也可從工作數據結構排序,或以目標結構排序 。例如:矩陣轉置。可用目標矩陣順序,也可用被轉置矩陣順序。

2)數據擴展與循環的範圍。軟體效率的判斷規則

 程式功能實現中數據處理的範圍稱為數據處理範圍映射。用分而治之的思想,但是不用它的方法。數據處理的範圍,定位圍越精確,算法的效率越好。數據處理範圍映射。處理函式的映射空間。但不是函式關係,而是數據相關,數據與運算符的關係。

例如:矩陣的乘法計算。尋找與一行元素相乘的元素的範圍,可以從一個矩陣,從一列元素,或者從一個數組的幾個元素,常用在稀疏矩陣.因此相乘元素的尋找範圍越精確,軟體效率越高。
範圍映射是一類映射,硬體處理的有效範圍越小,算法的效率越高。

程式功能重組與綜合算法

將求解一個問題的軟體分成不同功能,這與軟體模組化不完全一樣。將這些功能重構後,可以構建同一個領域的不同算法。例如:樹的遍歷算法分成三個功能:建立左子索引,判斷,訪問,回溯,右子樹被拓展。
這三個功能經過重構,可以實現的中序,前序,後序遍歷。
這些功能應經過源程式分析,從已有的成功源程式中獲得。這與硬體的IP核是一個道理,但也不完全相同。軟體功能的重構,是通過綜合算法實現的,而組合IP核構成一個數字系統就簡單一些,當然硬體算法是一個逐步開發的過程。這兩個方法是相輔相成,互相促進的。

源程式設計原則---提高軟體效率

1.語句相關度

2.語句集的平衡因子

條件語句的平衡因子。例如

if --else

if---else

if----else

與if else
if else的平衡因子不同。

相關詞條

熱門詞條

聯絡我們