freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件工程課件:swguide4(編輯修改稿)

2024-10-10 10:18 本頁面
 

【文章內(nèi)容簡介】 機內(nèi)的運行效率很 高但編寫出的機器語言程序其出錯率也高。 ② 匯編語言(第二代語言):匯編語言比機器語言直觀,它的每一條符號指令與相應(yīng)的機器指令有對應(yīng)關(guān)系,同時又增加了一些諸如宏、符號地址等功能。存儲空間的安排可由機器解決。不同指令集的處理器系統(tǒng)就有自己相應(yīng)的匯編語言。從軟件工程的角度來看,匯編語言只是在高級語言無法滿足設(shè)計要求時,或者不具備支持某種特定功能(例如特殊的輸入/輸出)的技術(shù)性能時,才被使用。 ③ 高級程序設(shè)計語言(第三代語言) ? 傳統(tǒng)的高級程序設(shè)計語言 :如 FORTRAN、 COBOL、 ALGOL、 BASIC 等 。這些程序語言曾得到廣泛應(yīng)用。目前,它們都已有多種版本。有的語言得到較大的改進,甚至形成了可視的開發(fā)環(huán)境,具有圖形設(shè)計工具、結(jié)構(gòu)化的事件驅(qū)動編程模式、開放的環(huán)境,使用戶可以既快又簡便地編制出 windows 下的各種應(yīng)用程序。 ? 通用的結(jié)構(gòu)化程序設(shè)計語言 :它具有很強的過程功能和數(shù)據(jù)結(jié)構(gòu)功能,并提供結(jié)構(gòu)化的邏輯構(gòu)造。這一類語言的代表是 PL/1, PASCAL, C 和 Ada。此外, COBOL7 Turbo BASIC等也應(yīng)歸入第三代程序語言范圍。 ? 專用語言 :專用語言是為特殊的應(yīng)用而設(shè)計的語言。通常具有自己特 殊的語法形式,面對特定的問題,輸入結(jié)構(gòu)及詞匯表與該問題的相應(yīng)范圍密切相關(guān)。有代表性的專用語言有APL、 Lisp、 PROLOG、 Smalltalk、 C++、 FORTH 等。從軟件工程的角度來看,專用語言支持了特殊的應(yīng)用,將特定的設(shè)計要求翻譯成可執(zhí)行的代碼。但是它們的可移植性和可維護性比較差。 ④ 第四代語言( 4GL): 4GL 用不同的文法表示程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),但是它是在更高一級抽象的層次上表示這些結(jié)構(gòu),它不再需要規(guī)定算法的細節(jié)。 4GL 兼有過程性和非過程性 10 的兩重特性。程序員規(guī)定條件和相應(yīng)的動作這是過程性的部分,并 且指出想要的結(jié)果,這是非過程部分。然后由 4GL 語言系統(tǒng)運用它的專門領(lǐng)域的知識來填充過程細節(jié)。 Martin 把第四代語言分為以下幾種類型: ? 查詢語言 :用戶可利用查詢語言對預先定義在數(shù)據(jù)庫中的信息進行較復雜的操作。 ? 程序生成器 :只需很少的語句就能生成完整的第三代語言程序,它不必依賴預先定義的數(shù)據(jù)庫作為它的著手點。 ? 其它 4GL :如判定支持語言、原型語言、形式化規(guī)格說明語言等。 (3) 程序設(shè)計語言的選擇 為某個特定開發(fā)項目選擇程序設(shè)計語言時,既要從技術(shù)角度、工程角度、心理學角度評價和比較各種語 言的適用程度,又必須考慮現(xiàn)實可能性。有時需要作出某種合理的折衷。 在選擇與評價語言時,首先要從問題入手,確定它的要求是什么 ? 這些要求的相對重要性如何 ? 再根據(jù)這些要求和相對重要性來衡量能采用的語言。 通??紤]的因素有 ① 項目的應(yīng)用范圍;② 算法和計算復雜性;③ 軟件執(zhí)行的環(huán)境;④ 性能上的考慮與實現(xiàn)的條件;⑤ 數(shù)據(jù)結(jié)構(gòu)的復雜性;⑥ 軟件開發(fā)人員的知識水平和心理因素等。其中,項目的應(yīng)用范圍是最關(guān)鍵的因素。 針對計算機的 4 個主要應(yīng)用領(lǐng)域,為語言做一個粗略的分類。例如,在科學與工程計算領(lǐng)域內(nèi), C, C++ 語言 得到了廣泛的應(yīng)用,但 FORTRAN 仍然是應(yīng)用最廣泛的語言。在商業(yè)數(shù)據(jù)處理領(lǐng)域中,通常采用 COBOL, RPG 語言編寫程序,當然也可選用 SQL 語言或其它專用語言。在系統(tǒng)程序設(shè)計和實時應(yīng)用領(lǐng)域中,匯編語言或一些新的派生語言,如 BLISS, PL/ S, Ada, C++等得到了廣泛的應(yīng)用。在人工智能領(lǐng)域以及問題求解,組合應(yīng)用領(lǐng)域,主要采用 LISP 和 PROLOG 語言。 新的更強有力的語言,雖然對于應(yīng)用有很強的吸引力,但是因為已有的語言已經(jīng)積累了大量的久經(jīng)使用的程序,具有完整的資料、支撐軟件和軟件開發(fā)工具,程序設(shè)計人員比較熟悉,而且有過類似項目的開發(fā)經(jīng)驗和成功的先例,由于心理因素,人們往往寧愿選用原有的語種。所以應(yīng)當徹底地分析,評價,介紹新的語言,以便從原有語言過渡到新的語言。 5. 程序復雜性度量 程序復雜性主要指模塊內(nèi)程序的復雜性。它直接關(guān)聯(lián)到軟件開發(fā)費用的多少,開發(fā)周期的長短和軟件內(nèi)部潛伏錯誤的多少。同時它也是軟件可理解性的另一種度量。 減少程序復雜性,可提高軟件的簡單性和可理解性,并使軟件開發(fā)費用減少,開發(fā)周期縮短,軟件內(nèi)部潛藏錯誤減少。 (1) 代碼行度量法 度量程序的復雜性,最簡單的方法就是統(tǒng)計程序的源代碼行數(shù)。此 方法基于兩個前提: 程序復雜性隨著程序規(guī)模的增加不均衡地增長; 控制程序規(guī)模的方法最好是采用分而治之的辦法。將一個大程序分解成若干個簡單的可理解的程序段。 方法的基本考慮是統(tǒng)計一個程序模塊的源代碼行數(shù)目,并以源代碼行數(shù)做為程序復雜性的度量。若設(shè)每行代碼的出錯率為每 100行源程序中可能有的錯誤數(shù)目, 例如每行代碼的出錯率為 1%,則是指每 100 行源程序中可能有一個錯誤。 Thayer 曾指出,程序出錯率的估算范圍是從 %~ 7%之間,即每 100 行源程序中可能存在 ~ 7 個錯誤。他還指出,每行代碼的出錯 率與源程序行數(shù)之間不存在簡單的線性關(guān)系。 Lipow 進一步指出,對于小程序,每行代碼的出錯率為 %~ %; 對于大程序,每行代碼的出錯率增加到 %~ %之間,但這只是考慮了程序的可執(zhí)行部分,沒有包括程序中的說明部分。 Lipow 及其他研究者得出一個結(jié)論:對于少于 100 個語句的小程序,源 11 代碼行數(shù)與出錯率是線性相關(guān)的。隨著程序的增大,出錯率以非線性方式增長。所以,代碼行度量法只是一個簡單的,估計得很粗糙的方法。 (2) McCabe 度量法 McCabe 度量法是一種基于程序控制流的復雜性度量方法。 McCabe 定義的程序復雜性度量值又稱環(huán)路復雜度,它基于一個程序模塊的程序圖中環(huán)路的個數(shù)。 如果把程序流程圖中每個處理符號都退化成一個結(jié)點,原來聯(lián)結(jié)不同處理符號的流線變成連接不同結(jié)點的有向弧,這樣得到的有向圖就叫做程序圖。 計算有向圖 G 的環(huán)路復雜性的公式: V (G)= m- n+ 2 其中, V( G)是有向圖 G中的環(huán)路個數(shù), m 是圖 G中有向弧個數(shù), n 是圖 G 中結(jié)點個數(shù)。 以圖 為例,其中,結(jié)點數(shù) n= 11,弧數(shù) m=12,則有 V( G)= m- n+ 2= 12- 11+ 2= 3。即McCabe 環(huán)路復雜度度量值為 3。 它也可以看做由程序圖中的有向弧所封閉的區(qū)域個數(shù)。 當分支或循環(huán)的數(shù)目增加時,程序中的環(huán)路也隨之增加,因此 McCabe 環(huán)路復雜度度量值實際上是為軟件測試的難易程度提供了一個定量度量的方法,同時也間接地表示了軟件的可靠性。實驗表明,源程序中存在的錯誤數(shù)以及為了診斷和糾正這些錯誤所需的時間與 McCabe 環(huán)路復雜度度量值有明顯的關(guān)系。 Myers 建議,對于復合判定,例如( A= 0)∩( C= D)∪( X= 39。A39。)算做三個判定。 利用 McCabe 環(huán)路復雜度度量時, 有幾點說明。 ? 環(huán)路復雜度取決于程序控制結(jié)構(gòu)的復雜度。當程序的分支數(shù)目或循環(huán)數(shù)目增加時其復雜度也增加。環(huán)路復雜度與程序中覆蓋的路徑條數(shù)有關(guān)。 ? 環(huán)路復雜度是可加的。例如,模塊 A的復雜度為 3,模塊 B 的復雜度為 4,則模塊 A與模塊 B 的復雜度是 7。 ? McCabe 建議,對于復雜度超過 10 的程序,應(yīng)分成幾個小程序,以減少程序中的錯誤。Walsh 用實例證實了這個建議的正確性。他發(fā)現(xiàn),在 McCabe 復雜度為 10 的附近,存在出錯率的間斷躍變。 ? McCabe 環(huán)路復雜度隱含的前提是:錯誤與程序的判定加上例行子程序的 調(diào)用數(shù)目成正比。而加工復雜性、數(shù)據(jù)結(jié)構(gòu)、錄入與打亂輸入卡片的錯誤可以忽略不計。 (3) Halstead 的軟件科學 Halstead 軟件科學研究確定計算機軟件開發(fā)中的一些定量規(guī)律,它采用以下一組基本的度量值,這些度量值通常在程序產(chǎn)生之后得出,或者在設(shè)計完成之后估算出。 ① 程序長度,即預測的 Halstead 長度 令 n1 表示程序中不同運算符(包括保留字)的個數(shù),令 n2 表示程序中不同運算對象的個數(shù),令 H 表示“程序長度”,則有 H = n1 ? log2 n1 + n2 ? log2 n2 這里, H 是程序長度的 預測值,它不等于程序中語句個數(shù)。在定義中,運算符包括: 算術(shù)運算符 賦值符( = 或 := ) 數(shù)組操作符 邏輯運算符 分界符(,或 ;或 : ) 子程序調(diào)用符 關(guān)系運算符 括號運算符 循環(huán)操作符等。 圖 程序圖的例 子 C 輸入 D E H 輸入 K 輸出 L 結(jié)束 A 開始 B F G J 12 特別地,成對的運算符,例如“ BEGIN? END”、“ FOR? TO”、“ REPEAT ? UNTIL”、“ WHILE? DO”、“ IF? THEN? ELSE”、“(?)”等都當做單一運算符。 運算對象包括變量名和常數(shù)。 ② 實際的 Halstead 長度 設(shè) N1 為程序中實際出現(xiàn)的運算符總個數(shù), N2 為程序中 實際出現(xiàn)的運算對象總個數(shù), N為實際的 Halstead 長度,則有 N = N1 + N2 ③ 程序的詞匯表 Halstead 定義程序的詞匯表為不同的運算符種類數(shù)和不同的運算對象種類數(shù)的總和。若令 n 為程序的詞匯表,則有 n = n1 + n2 圖 是用 FORTRAN 語言寫出的交換排序的例子。 SUBROUTINE SORT( X, N) DIMENSION X( N) IF( N .LT. 2) RETURN DO 20 I = 2, N DO 10 J = 1, I IF ( X( I) .GE. X( J)) GO TO 10 SAVE = X( I) X( I) = X( J) X( J) = SAVE 10 CONTINUE 20 CONTINUE RETURN END 圖 一個交換排序程序的例子 因此有: 預測的詞匯量 H = n1 ? log2 n1 + n2 ? log2 n2 = 10 ? log2 10 + 7 ? log2 7 = 實際的詞匯量 N = N1 + N2 = 28 + 22 = 50 程序的詞匯表 n = n1 + n2 = 10 + 7 = 17 ④ 程序量 V,可用下式算得 V = ( N1 + N2 ) ? log2 ( n1 + n2 ) 它表明了程序在“詞匯上的復雜性”。其最小值為 V* = ( 2 + n2*) ? log2 ( 2 + n2* ) 這里, 2 表明程序中至少有兩個運算符:賦值符“ :=”和函數(shù)調(diào)用符“ f ( )”, n2* 表示輸入/輸出變量個數(shù)。對于圖 的例子,利用 n1, N1, n2, N2,可以計算得 V = ( 28 + 22 ) ? log2 ( 10 + 7 ) = 204 等效的匯編語言程序的 V= 328。這說明匯編語言比 FORTRAN 語言需要更多的信息量(以bit 表示)。 ⑤ 程序量比率(語言的抽象級別) L = V*∕ V 或 L = ( 2∕ n1 ) ? ( n2∕ N2 ) 這里, N2 = n2 ? log2 n2。它表明了一個程序的最緊湊形式的程序量與實際程序量之比,反映了程序的效率。其倒數(shù) D = 1∕ L 運算符 計數(shù) 運算對象 計數(shù) 可執(zhí)行語句結(jié)束 7 X 6 數(shù)組下標 6 I 5 = 5 J 4 IF( ) 2 N 2 DO 2 2 2 , 2 SAVE 2 程序結(jié)束 1 1 1 .LT. 1 n2= 7 N2= 22 .GE. 1 GO TO 10 1 n1= 10 N1= 28 13 表明了實現(xiàn)算法的困難程度。有時,用 L 表達語言的抽象級別,即用 L 衡量在表達程序過程時的抽象程度。對于高級語言,它接近于 1,對于低級語言,它在 0~ 1 之間。下面列出的是根據(jù)經(jīng)驗得出的一些常用語言的語言抽象級別。 語 言 L 的平均值 English Prose(英語散文) PL/1 ALGOL68
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1