




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章程序設計和軟件工程5.1程序設計語言5.2程序設計方法5.3軟件工程
5.1程序設計語言5.1.1程序的概念5.1.2程序設計語言的分類5.1.3程序設計語言的選擇
5.1程序設計語言5.1.1程序的概念
簡單地說,程序就是解決實際問題的操作步驟,它是一個有限的操作序列。例如,求a、b、c、d四個數的最大值,可以使用以下的步驟來完成這一任務:輸入a、b、c、d的值;比較a、b的大小,把較大值放入max;比較max與c的大小,把較大值重新放入max;比較max與d的大小,把較大值重新放入max;輸出max的值。顯然,如果程序是由人來執行的,程序只要用自然語言來描述就行了,如果是由計算機來執行的,則必須用計算機能夠接受和識別的計算機語言來描述。本章所說的程序就是用某種計算機語言描述的、可以用計算機能完成的操作指令序列。
5.1程序設計語言5.1.2程序設計語言的分類
根據程序設計語言發展的歷程,可將其大致分成四類:1.機器語言機器語言是用二進制代碼表示的、能被計算機直接識別和執行的機器指令的集合,也就是處理器的指令系統。機器語言的優點在于它能被計算機直接識別,運行速度快。2.匯編語言匯編語言是一種用助記符表示的仍然面向機器的計算機語言。匯編語言亦稱符號語言。3.高級語言這種與自然語言接近并能被計算機所接受和執行的語言稱為高級語言。高級語言根據其發展歷程和應用領域,可分為以下幾類:(1)傳統的高級程序設計語言。(2)通用的結構化程序設計語言。(3)
專用語言。4.4GL語言4GL即第四代語言(Fourth-GenerationLanguage)。4GL是按計算機科學理論指導設計出來的結構化語言。4GL具有簡單易學、用戶界面良好、非過程化程度高、面向問題等特點,按照4GL的功能可以將它們劃分為:查詢語言和報表生成器、圖形語言、應用生成器和形式規格說明語言。
5.1程序設計語言5.1.3程序設計語言的選擇
不同語言有不同的優勢,在進行程序設計時,選擇程序設計語言非常重要,若選擇了合適的語言,就能減少編碼的工作量,產生易讀、易測試、易維護的代碼,提高程序開發的效率。通常從以下因素來衡量某種程序設計語言是否適合特定的項目:
應用領域;
算法和計算復雜度;
軟件運行環境;用戶需求中關于性能方面的要求;
數據結構的復雜性;軟件開發人員的知識水平和心理因素等。5.2程序設計方法5.2.1程序設計的基本過程5.2.2結構化程序設計方法5.2.3面向對象程序設計方法
5.2程序設計方法5.2.1程序設計的基本過程
程序設計就是針對具體問題,使用某種程序設計語言編寫程序代碼來驅動計算機完成特定功能的過程。程序設計的基本過程如圖:其基本步驟如下:分析問題。確定要解決的問題,對要解決的問題進行調查分析,明確要實現的功能。確定解決方案。通過對問題的分析,找出其運算和變化規律,確定解決方案,建立數學模型。當一個問題有多個解決方案時,選擇適合計算機解決問題的最佳方案。設計算法。依據問題的解決方案確定數據結構和算法,并用適當的工具描述算法。編寫程序。依據算法描述,選擇一種合適的計算機語言編寫程序。調試和運行程序。通過反復調試和運行程序,找出程序中存在的錯誤,直到程序的運行效果達到預期目標。整理文檔。對解決問題的整個過程的相關資料進行整理,編寫程序使用說明書,生成規范的程序文檔。5.2程序設計方法5.2.2結構化程序設計方法
結構化程序設計的設計思想主要有三個方面:1.“自頂向下,逐步細化,模塊化”的設計過程具體包括以下兩個方面:(1)將一個大問題分解為若干子問題(模塊)組成的層次結構。(2)將模塊細化成更小、更簡單的模塊,直至能容易給出模塊的一系列處理步驟,并能由程序設計語言的語句來實現。2.把程序結構限制為三種基本結構(1)順序結構:最基本、最普通的程序結構,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。如圖5.3所示,先執行A再執行B。5.2程序設計方法5.2.2結構化程序設計方法
(2)選擇結構:又稱“分支結構”,如圖5.4所示,其特點是先進行一定的條件判斷,根據判斷的結果從兩組操作中選擇一組來執行。
(3)循環結構:其特點是在一定的條件下重復執行一組操作。5.2程序設計方法5.2.2結構化程序設計方法
3.限制goto語句的濫用因為goto語句是無條件轉移語句,使用goto語句會破壞程序的結構,降低程序的可讀性,因此不提倡使用goto語句。#include<stdio.h>int
n=0;int
main(void)
{
printf("input
a
string:
");
loop:
if
(getchar()!='\n')
{
n++;
goto
loop;
}
printf("output:
%d\n",n);}5.2程序設計方法5.2.3面向對象程序設計方法
1.面向對象的基本概念類和對象是面向對象程序設計的基本概念,繼承性、封裝性和多態性是面向對象程序的基本特征。2.面向對象程序設計的思想面向對象程序設計的思想主要體現在以下幾方面:(1)從現實世界中客觀存在的事物(對象)出發,盡可能運用人類自然的思維方式去構造軟件系統(2)將事物的本質特征抽象后表示為軟件系統中的類和對象,以此作為構造軟件系統的單位
(3)使軟件系統能直接映射問題,并保持問題中事物及其相互關系的本質。3.面向對象程序設計的步驟面向對象程序設計的過程包括以下步驟:(1)面向對象分析(ObjectOrientedAnalysis,OOA)(2)面向對象設計(ObjectOrientedDesign,OOD)(3)面向對象編程(ObjectOrientedProgramming,OOP)(4)面向對象測試(ObjectOrientedTest,OOT)(5)面向對象維護(ObjectOrientedSoftwareMaintenance,OOSM)
5.3軟件工程5.3.1軟件危機5.3.2軟件工程5.3.3軟件生命周期5.3.4軟件工程方法學5.3.5軟件測試
5.3軟件工程5.3.1軟件危機
1.軟件危機的主要表現軟件開發進度難以預測。(2)軟件開發成本難以控制,投資一再追加,令人難于置信。(3)
用戶對產品功能難以滿足,開發人員和用戶之間很難溝通、矛盾很難統一。(4)
軟件產品質量無法保證,系統中的錯誤難以消除。(5)
軟件產品難以維護。(6)
軟件缺少適當的文檔資料。2.軟件危機的主要原因用戶需求不明確。(2)
缺乏正確的理論指導,缺乏有力的方法學和工具方面的支持。(3)
軟件開發規模越來越大。(4)
軟件開發復雜度越來越高。
5.3軟件工程5.3.2軟件工程
1.軟件工程的定義
一是IEEE有1993年給出的定義:軟件工程是將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維護的過程,即將工程化應用于軟件中的方法的研究。二是《計算機科學技術百科全書》對軟件工程的定義:軟件工程是應用計算機科學、數學、邏輯學及管理科學等原理,開發軟件的工程。2.軟件工程的特殊性
軟件的特性與其他工程領域特性之間存在著本質上的不同。這些差別己經影響了軟件工程項目,導致其花費的增加、推遲交付軟件產品和軟件產品不能滿足用戶的需求等后果。這些差別主要體現在:(1)處理通過常用的預先定制的構件來構建系統的能力(2)缺少度量技術
5.3軟件工程5.3.3軟件生命周期
2.傳統的開發階段
軟件作為一種工業化產品,也有其生命周期。軟件生命周期包括從提出軟件產品開始,直到該軟件產品被淘汰的全過程。1.周期是個整體軟件生命周期的傳統的開發階段的主要步驟是需求分析、設計、實現和測試
圖5.7表示的是軟件的生命周期,即軟件一旦開發完成,它就進入了一個既被使用又被維護的循環,這個循環將永不停止,直至軟件生命周期結束。
5.3軟件工程5.3.4軟件工程方法學
瀑布模型是最經典的并獲得最廣泛應用的軟件過程模型。
5.3軟件工程5.3.5軟件測試
軟件測試是保證軟件質量的重要手段,其主要過程涵蓋了軟件生命周期的全過程,包括需求定義階段的需求測試、編碼階段的單元測試、集成測試,以及后期的確認測試、系統測試,驗證軟件是否合格、能否交付用戶使用等。1.軟件測試的原則(1)盡早不斷測試的原則。(2)IPO原則(InProcessOut)。(3)獨立測試原則。(4)合法和非合法原則。(5)錯誤群集原則。(6)嚴格性原則。(7)覆蓋原則。(8)定義功能測試原則。(9)回歸測試原則。(10)錯誤不可避免原則。
5.3軟件工程5.3.5軟件測試
2.軟件測試方法軟件測試方法的分類有很多種,可以按不同的標準對其進行分類。
以測試過程中程序執行狀態為依據可分為靜態測試(StaticTesting,ST)和動態測試(DynamicTesting,DT)。靜態測試的含義是被測程序不運行,只依靠分析或檢查源程序的語句、結構、過程等來檢查程序是否有錯誤。動態測試與靜態測試相對應,是通過運行被測試程序,對得到的運行結果與預期的結果進行比較分析,同時分析運行效率和健壯性能等。
以具體實現算法細節和系統內部結構的相關情況為根據可分黑盒測試、白盒測試和灰盒測試。黑盒測試被測程序看成是一個無法打開的黑盒,而工作人員在不考慮任何程序內部結構和特性的條件下,根據需求規格說明書設計測試實例,并檢查程序的功能是否能夠按照規范說明準確無誤的運行。其主要是對軟件界面和軟件功能進行測試。白盒測試從程序結構方面出發對測試用例進行設計,主要是借助程序內部的邏輯和相關信息,通過檢測內部動作是否按照設計規格說明書的設定進行,檢查每一條通路能否正常工作,主要用于檢查各個邏輯結構是否合理,對應的模塊獨立路徑是否正常以及內部結構是否有效。灰盒測試則介于黑盒測試和白盒測試之間。
5.3軟件工程5.3.5軟件測試
3.軟件測試的實施軟件測試過程分4個階段,即單元測試、集成測試、系統測試和確認測試。單元測試主要是對該軟件的模塊進行測試,通過測試以發現該模塊的實際功能出現不符合的情況和編碼錯誤。集成測試是軟件測試的第二階段,在這個階段,通常要對已經嚴格按照程序設計要求和標準組裝起來的模塊同時進行測試。系統測試采用黑盒法來進行測試的,以此來檢查該系統是否符合軟件需求。本階段的主要測試內容包括健壯性測試、性能測試、功能測試、安裝或反安裝測試、用戶界面測試、壓力測試、可靠性及安全性測試等。驗收測試是最后一個階段的測試操作,是在軟件產品投入正式運行前所要進行的測試工作。驗收測試的主要目標是為向用戶展示所開發出來的軟件符合預定的要求和有關標準,并驗證軟件實際工作的有效性和可靠性,確保用戶能用該軟件順利完成既定的任務和功能。
5.4設計模式
設計模式(DesignPattern)是一套被反
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項目管理關鍵指標設計的考點試題及答案
- 玻璃制品安全生產與應急預案考核試卷
- 生物農藥在病蟲害防治中的綜合評價考核試卷
- 證券從業資格證考試心理準備試題及答案
- 磷肥工藝優化與節能減排考核試卷
- 2025年【金屬非金屬礦山支柱】模擬考試題及答案
- 機械加工中的智能供應鏈管理考核試卷
- 油田投球機安裝施工方案
- 復述上面已經提到的主題以下是新的個主題名稱考核試卷
- 園藝師參與科研項目的必要性試題及答案
- 《調相機運行規程》
- 施工現場一級動火作業審批表
- 污水管網巡查及養護投標方案(技術標)
- 腫瘤患者延續護理
- 《長方體和正方體的展開圖》-課件
- 數字圖像處理在航空航天中的應用
- 中水回用機房設備安裝
- (新版)制絲操作工(二級)理論考試復習題庫-上(單選題匯總)
- 手術室實踐指南術中輸血操作護理課件
- 食品投訴處理培訓課件
- 郵政快遞員工培訓課件
評論
0/150
提交評論