軟體編碼綜述

2021-09-25 13:18:56 字數 2990 閱讀 2013

一:軟體編碼的任務與目標

將軟體設計的結果翻譯成計算機可以「的形成使用某種語言描述的程式。

程式的質量主要取決於軟體設計的質量,程式語言的特性和編碼途徑也對程式的可靠性、可讀性、可測試性和可維護性產生深遠的影響。

二:常用程式語言及開發環境的特點與適用範圍;

1、專案的應用領域

(1)科學工程計算。需要大量的標準庫函式,以便處理複雜的數值計算,可供選用的語言有fortran語言、c語言等。

(2)資料處理與資料庫應用。sql為ibm公司開發的資料庫查詢語言,4gl稱為第4代語言。

(3)實時處理。實時處理軟體一般對效能的要求很高,可選用的語言有組合語言、ada語言等。

(4)系統軟體。如果編寫作業系統、編譯系統等系統軟體時,可選用組合語言、c語言、pascal語言和ada語言。

(5)人工智慧。如果要完成知識庫系統、專家系統、決策支援系統、推理工程、語言識別、模式識別等人工智慧領域內的系統,應選擇prolog、lisp語言。

2、軟體開發的方法

有時程式語言的選擇依賴於開發的方法,如果要用快速原型模型來開發,要求能快速實現原型,因此宜採用4gl。如果是物件導向方法,宜採用物件導向的語言程式設計。

3、軟體執行的環境

良好的程式設計環境不但能有效提高軟體生產率,同時能減少錯誤,有效提高軟體質量。

4、演算法和資料結構的複雜性

科學計算、實時處理和人工智慧領域中的問題演算法較複雜,而資料處理、資料庫應用、系統軟體領域的問題,資料結構.比較複雜,因此選擇語言時可考慮是否有完成複雜演算法的能力,或者有構造複雜資料結構的能力。

5、軟體開發人員的知識

編寫語言的選擇與軟體開發人員的知識水平及心理因素有關,開發人員應仔細地分析軟體專案的型別,敢於學習新知識,掌握新技術。

三:程式設計規範的作用和內容;

(1)提高可讀性

編碼規範,幫助我們寫出人類容易理解的**,它為我們提供了最基本的模板,良好的編碼風格,使**具有一定的描述性,可以通過名字來獲取一些需要ide才能得到的提示,如可訪問性、繼承基類等。

(2)統領全域性,促進團隊協助

編碼規範,要求團隊成員遵守這一統一的全域性決策,這樣成員之間可以輕鬆地閱讀對方的**,所有成員正以一種清晰而一致的風格進行編碼。而且,開發人員也可以集中精力關注他們真正應該關注的問題——自身**的業務邏輯,與需求的契合度等區域性問題。

(3)有助於知識傳遞,加快工作交接的好處是開發人員可以很快的接手專案組其他成員的工作,快速完成工作交接。

(4)減少名字增生,降低維護成本

在沒有規範的情況下和容易為同一型別的例項起不同的名字。對於以後維護這些**程式設計師來說會產生疑惑。

(5)強調制數之間的關係降低缺陷引入的機會

命名可以表示一定的邏輯關係,是開發人員在使用時保持警惕,從而一定程度上減

風格的相似性,能讓開發人員更迅速,更容易理解一些陌生的**,更快速地理解別人的**。因為,他和你的**風格是一樣的,你沒有必要對他的一些個性化風格進行揣測。這樣少缺陷被引人的機會。

(6)提高程式設計師個人能力

不可否認,每個程式設計師都應該養成良好的編碼習慣,而編碼規範無疑是教材之一。從乙個程式設計師的**本身能看出很多東西。所以,即便是為了自身發展,作為程式設計師也沒有理由抵制這種規則的存在。你可能沒有認識到,我們正默默地得益於編碼規範。

編碼規範的基本內容

1、**簡潔,避免冗餘,要使**統一,易於閱讀,就要做到遵循嚴格的規範

每個源程式檔案都應有檔案頭說明

每個函式都有函式頭說明

主要變數(結構、聯合、類或物件)在定義或引用時,應新增能反映其含義的注釋

常量定義時應有相應的說明

變數、常量和函式的命名都應一目了然

處理過程的每個階段應有相應的注釋說明

在典型演算法前都有注釋,一目了然的語句不加注釋

保持注釋與**完全對應

利用縮進來顯示程式的邏輯結構(縮排後的**在後期維護時會結構清晰且易於維護)

2、使**不受單一平台和編譯器的制約,方便日後的移植,即增加適應性,這就要求開發的程式能在幾乎所有的環境下都能成功的執行而不僅是侷限於開發者的環境中,例如web開發工程師就應該保證自己的程式能在型別繁多,版本繁多的瀏覽器中均能執行且不會造成相容性問題。

3、保證基本安全,避免**漏洞,意味著該軟體在測試執行的過程中具備避免可能發生故障的能力,且一旦發生故障,能自我解除或排除故障,軟體的可靠性必須在設計階段就確定,在開發和測試階段再考慮就困難了,同時,軟體應有一定的健壯性和可擴充套件性,即軟體對於規範要求以外的輸入能夠判斷出這個輸入不符合規範要求且有合理的處理方式,軟體設計完成後要留有公升級介面和公升級空間,對擴充套件開放,對修改關閉。

四:常用版本控制工具及特點五:結對程式設計和測試驅動的軟體開發的實施方法。

結對程式設計:

1、結對的雙方限定為同一專案組;

2、領航者和實施者坐在同一臺速度較快、配置較高的機器前,要保證兩個人都能看清螢幕,尤其是領航者(可以考慮接乙個顯示屏);

3、兩個人至少保證每分鐘交流一次;

4、在我們提高班,建議用有經驗的「老手」帶「新手」的方式或者「新手」之間組合,盡量避免兩個人都特別經驗豐富,「老手」或「新手」在工作開始之前應該向對方解釋清楚自己正在做的工作;

5、兩名開發人員先共同制定一套設計方案,但絕大部分應由實施者完成;

6、**完成後進行單元測試;

7、**審查小組進行審查;

8、實施結對輪轉機制,包括兩方面:

(1)、領航者和實施者在一定時間內互換角色(比如乙個小時,雙方可以根據實際情況協調)

(2)、每個小模組完成後進行人員輪換,即更換結對物件(由於結對本來的目的之一就是每個人都需要了解整個專案的需求,所以幾乎不存在「合作思維中斷」現象)。

測試驅動的軟體開發:

1、 識別所需的功能增量

2、 針對此功能編寫乙個測試並實現為乙個自動測試

3、 執行此測試,以及所有已實現的其他測試

4、 實現這個功能,並重新執行這個測試

5、 一旦所有的測試成功,轉入去實現下乙個功能

軟體模式綜述

軟體模式綜述 1 引言 模式 pattern 的概念最早由建築大師christopher alexander於二十世紀七十年代提出,應用於建築領域,八十年代中期由ward cunningham 和kent beck將其思想引入到軟體領域,1994年開始由hillside group 由kent be...

軟體測試綜述

1 軟體測試的目標 發現程式中的錯誤,是為 了證明程式有錯,而不是證明程式無錯。保證軟體質量,提高軟體可靠 性的關鍵。2 軟體測試的任務 軟體測試是軟體開發工作的最後乙個環節。由於人認識客觀事物的主觀性,難免在開發 的軟體產品中產生錯誤。為了給使用者交付乙個高質量的軟體系統,必須對開發的系統進行嚴格...

軟體開發方法綜述

國外大的軟體公司和機構一直在研究軟體開發方法這個概念性的東西,而且也提出了很多實際的開發方法,比如 生命週期法 原型化方法 物件導向方法等等。下面介紹幾種流行的開發方法 1 結構化方法 結構化開發方法是由e.yourdon 和 l.l.constantine 提出的,即所謂的sasd 方 法,也可稱...