程序設計基本概念軟設

程序設計基本概念

編譯程序和解釋程序

彙編語言->源程序->彙編程序->目標程序->運行
高級語言->源程序->解釋程序->中間代碼->運行
	->編譯程序->目標語言程序->運行

語法,語義,語用

詞法(保留字):特定文本內語詞的構成和使用的法則
語法(計算表達):程序設計語言的基本符號
語義:按語法規則構成的各個語法成分的含義,分析是否靜態語義錯誤
語用:表示構成語言的各個記號和使用者的關係

程序設計語言分類

1.命令式和結構化
2.面向對象
3.邏輯式
4.函數式

軟件過程模型

瀑布模型(依線性順序連接,以文檔爲驅動,適用於軟件需求很明確的軟件項目模型)

優點:容易理解,管理成本低。
缺點:客戶必須完整,正確和清晰的表單他們的需要。

增量模型(每一個增量均發佈一個可操作的產品)

優點:第一個交付的成本和時間很少,小系統所承擔的風險不大
缺點:如果沒有對用戶的變更要求進行規劃,產生的初始增量可能會造成增量的不穩定。

演化模型(迭代的過程模型)

原型模型(適用於用戶需求不確定,需求經常變化的情況)

原型模型可以分爲:
1.探索性原型
2.實驗性原型
3.演化型原型

螺旋模型(龐大,複雜且高風險的系統)

每個螺旋週期如下四個步驟:
1.制定計劃
2.風險分析
3.實施工程
4.用戶評估

噴泉模型(以用戶需求作爲動力,以對象作爲驅動的模型,適合於面向對象的開發方法)

噴泉模型使開發過程具有迭代性和無間隙性。
優點:提高軟件項目的開發效率,節省開發時間
缺點:開發過程需要大量開發人員,不易管理

基於構建的開發模型

利用預先包裝的構建來構造應用系統

形式化方法模型(嚴格的數學模型)

主要生成計算機軟件形式化數學規格說明

統一過程模型

用例和風險驅動,以架構爲中心,迭代並且增量的開發過程。由UML方法和工具支持。
迭代的意思是將整個軟件開發項目劃分爲許多個小的“袖珍”項目,每一個袖珍項目包含正常軟件項目的所有元素。

敏捷方法

總體目標爲通過儘可能早的,持續的對有價值的軟件的交付。

極限編程(XP)

輕量高效低風險,每週工作40小時

水晶法

不同項目不同策略,項目質量和開發人員的提高,項目和過程的質量也隨之提高

並列爭求法

每30天一個從此,按照需求的優先級來實現產品。。

常用算法

算法的特性:

(1)有窮性:執行有窮步之後結束。

(2)確定性:算法中每一條指令都必須有確切的含義,不能含糊不清。

(3)輸入(>=0)

(3)輸出(>=1)

(4)有效性(可行性):算法的每個步驟都能有效執行並能得到確定的結果。例如a=0,b/a就無效。

2、分治法

子問題相互獨立,將一個難以解決的大問題分解爲一些規模較小的相同問題

(1)特徵:把一個問題拆分成多個小規模的相同子問題,一般可用遞歸解決。

(2)經典問題:斐波那契數列、歸併排序、快速排序、矩陣乘法、二分搜索、大整數乘法、漢諾塔

3、動態規劃法(用於求最優解)

子問題相互不獨立,避免大量的重複運算,用於求解某種具有最優性質的問題

(1)特徵:劃分子問題(最優子結構),並把子問題結果使用數組存儲,利用查詢子問題結果構造最終問題結果。

(2)經典問題:斐波那契數列、矩陣乘法、揹包問題、 LCS最長公共子序列

4、回溯法

可以系統的搜索一個問題的所有解或任意解。

(1)特徵:系統的搜索一個問題的所有解或任一解。有試探和回退的過程。

(2)經典問題:N皇后問題、迷宮、揹包問題

5、貪心法(用於求滿意解)

貪心算法並不是從整體最優考慮,而是某種意義的局部最優

(1)特徵:局部最優,但整體不見得最優。每步有明確的,既定的策略。

(2)經典問題:揹包問題(如裝箱)、多機調度、找零錢問題

加密技術

MD5 報文摘要算法

RC5 明文加密算法

RSA 非對稱加密算法

SHA-1 安全校驗算法,確保信息未被篡改

軟件複雜度度量

Macabe度量法

 V(G) = m - n + 2

測試

白盒測試

邏輯覆蓋

 語句覆蓋(每條語句至少執行一次)
 路徑覆蓋(測試程序中所有可能路徑)
 判定覆蓋(每個判定表達式至少獲得一次“真”或“假”)
 條件覆蓋(每一條判定語句的每個邏輯條件至少滿足一次)
 判定/條件覆蓋

循環覆蓋

 循環中的每個條件都得到驗證

基本路徑測試

黑盒測試

 等價類劃分
 邊界值分析
 錯誤推測
 因果圖

軟件項目估算模型

COCOMO 估算模型 (精確的易於使用的成本估算模型)

1.基本COCOMO(靜態單變量)
2.中級COCOMO(靜態多變量)
3.詳細COCOMO
  系統,子系統,模塊三個層次

COCOMO Ⅱ 估算模型

1.應用組裝模型
2.早期設計階段模型
3.體系結構階段模型

Putnam 估算模型(動態多變量)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章