武漢理工軟件工程導論期末_第1頁
武漢理工軟件工程導論期末_第2頁
武漢理工軟件工程導論期末_第3頁
武漢理工軟件工程導論期末_第4頁
武漢理工軟件工程導論期末_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程導論復習

題型及分值

單選題(20分)20x1

推斷題(10分)10x1

問答題(25分)5x5

應用題(45分)7+8+8+10+12

一、軟件工程的基本概念(PPT1-2章)

L軟件危機(產生的緣由)

(1)軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系

列嚴峻問題。

(2)軟件危機主要有以下表現:

a.對軟件開發成本和進度的估計常常不精確。開發成本超出預算,

實際進度比預定安排一再拖延的現象并不罕見。

b.用戶對“已完成”系統不滿足的現象常常發生。

c.軟件產品的質量往往靠不住。Bug一大堆,Patch一個接一個。

d.軟件的可維護程度特別之低。

e.軟件通常沒有適當的文檔資料。

f.軟件的成木不斷提高。

g.軟件開發生產率的提高趕不上硬件的發展和人們需求的增長。

(3)產生緣由:一方面是及軟件本身的特點有關;另一方面是由軟

件開發和維護的方法不正確有關。

(4)消退軟件危機的途徑:

a.對計算機軟件有一個正確的相識(軟件W程序)。

b.必需充分相識到軟件開發不是某種個體勞動的神奇技巧,而應當

是一種組織良好、管理嚴密、各類人員協同協作、共同完成的工程項

目。

c.推廣運用在實踐中總結出來的開發軟件的勝利技術和方法。

d.開發和運用更好的軟件工具。

e.加強軟件管理。

2.軟件的特點有哪些?

(1)軟件是一種邏輯實體,而不是具體的物理實體,它具有抽象性;

(2)軟件的生產及硬件不同;

(3)大多數軟件是定制的;

(4)在軟件的運行和運用期間,沒有硬件那樣的機械磨損、老化問

題;

(5)軟件的開發和運行常常受到計算機系統的限制對計算機系統有

著不同程度的依靠性;

(6)軟件開發至今尚未完全擺脫手工藝的開發方式;

(7)軟件是困難的;

(8)軟件成木相當昂貴;

(9)相當多的軟件工作涉及到社會因素。

3.軟件工程?軟件工程的目標?(……)

(1)定義:軟件工程是應用計算機科學、數學及管理科學等原理開

發軟件的工程。它借鑒傳統工程的原則、方法,以提高質量,降低成

本為目的。

(2)軟件工程旨在開發滿足用戶須要、剛好交付、不超過預算和無

故障的軟件,其主要目標如下:

a.實現預期的軟件功能,達到較好的軟件性能,滿足用戶的需求。

b.增加軟件過程的可見性和可控性,保證軟件的質量。

c.提高所開發軟件的可維護性,降低維護費用。

d.提高軟件開發生產率,剛好交付運用。

e.合理預算開發成本,付出較低的開發費用。

4.軟件生存周期模型?主要的模型類型?(……)

(1)軟件生命周期:軟件生存周期大體可分為如下幾個活動:問題

定義、可行性探討、需求分析、設計、編碼、測試、運行和維護。

(2)典型的軟件過程模型有:

瀑布模型(waterfallmodel)

演化模型(evolutionarymodel)

增量模型(incrementalmodel)

原型模型(prototypingmodel)

螺旋模型(spiralmodel)

噴泉模型(waterfountainmodel)

基于構件的開發模型(component-baseddevelopmentmodel)

形式方法模型(formalmethodsmodel)

5.軟件工程強調(文檔化、規范化)?(……)

(1)軟件工程強調規范化和文檔化。規范化的目的是使眾多的開發

者遵守相同的規范,使軟件生產擺脫個人生產方式,進入標準化、工

程化的生產方式。

(2)文檔化是將軟件的設計思想、設計過程和實現過程完整地記錄

下來,以便于后人的運用和維護,在開發過程中各類相關人員借助于

文檔進行溝通和溝通。另外,在開發過程中產生的各類文檔使得軟件

的生產過程由不行見變為可見,便于管理者對軟件生產進度和開發過

程進行管理。在用戶最終驗收時可以通過對提交的文檔進行技術審查

和管理審查,保證軟件的質量。

二、可行性探討及需求分析

1.可行性探討的目的

(1)用最小的代價在盡可能短的時間內確定問題是否能夠解決。不

是解決問題,而是確定問題是否值得去解決。

(2)說明該軟件開發項目的實現在技術上、經濟上和社會條件上的

可行性;評述為合理地達到開發目標可能選擇的各種方案。

2.需求分析的任務、方法、工具

(1)任務:需求分析的任務就是借助于當前系統的邏輯模型導出目

標系統的邏輯模型,解決目標系統的“做什么”的問題。

(2)方法:

a.訪談

b.面對數據流自頂向下求精

c.簡易的應用規格說明技術

d.快速建立軟件原型

(3)工具:

3.數據流圖(作用)

(1)定義:

數據流圖(DataFlowDiagram):簡稱DFD,它從數據傳遞和加工

角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流

向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用于表

示軟件模型的一種圖示方法。

數據流圖是結構化分析方法中運用的工具,它以圖形的方式描繪

數據在系統中流淌和處理的過程,由于它只反映系統必需完成的邏輯

功能,所以它是一種功能模型。

數據流圖英文縮寫DFD(DataFlowDiagram)它是描繪信息流和

數據從輸入移動到輸出的過程中所經受的變換。數據流圖從數據傳遞

和加工的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過

程。

(2)作用:

a.便于用戶表達功能需求和數據需求及其聯系;

b.便于兩類人員共同理解現行系統和規劃系統的框架;

c.清楚表達數據流的狀況;

d.有利于系統建模.

4.推斷表、推斷樹

(1)推斷表:假如數據流圖的加工須要依靠于多個邏輯條件的取值,

運用判定表來描述比較合適。

以“檢查發貨單”為例:

(2)推斷樹:判定樹也是用來表達加工邏輯的一種工具。有時侯它

比判定表更直觀。

以“檢查發貨單”為例:

三、概要設計

1.劃分模塊的標準(高內聚低耦合)

(1)什么是耦合?模塊的耦合包括哪些類型?

耦合是對一個軟件結構內不同模塊之間互連程度的度量。

模塊的耦合包括以下幾種類型:數據耦合,限制耦合,特征耦合,公

共環境耦合,內容耦合,標記耦合,無耦合/非干脆耦合

(2)什么是內聚?模塊的內聚包括哪些類型?

內聚標記著一個模塊內各個元素彼此結合的緊密程度,它是信息

隱藏和局部化概念的自然擴展。模塊的內聚包括以下幾種類型:低內

聚一偶然內聚,邏輯內聚,時間內聚中內聚一過程內聚,通信內聚;

高內聚一依次內聚,功能內聚。

2.模塊獨立性?衡量的標準?(……)

⑴模塊的獨立性是指軟件系統中每個模塊只涉及軟件要求的具體的

子功能,而和軟件系統中其他模塊的接口是簡潔的。

(2)模塊的獨立程度可以由兩個定性標準度量:

a.耦合:模塊之間的相對獨立性的度量。

b.內聚:模塊功能強度的度量

耦合及內聚都是模塊獨立性的定性標準,都反映模塊獨立性的良好程

度。

3.啟發性規則

給軟件工程師以有益的啟示,往往能幫助他們找到改進軟件設計

提高軟件質量的途徑。下面介紹幾條啟發式規則:

(1)改進軟件結構提高模塊獨立性

設計出軟件的初步結構以后,應當審查分析這個結構,通過模塊

分解或合并,力求降低耦合提高內聚。例如,多個模塊公有的一個子

功能可以獨立成一個模塊,由這些模塊調用;有時可以通過分解或合

并模塊以削減限制信息的傳遞及對全程數據的引用,并且降低接口的

困難程度。

⑵模塊規模應當適中

閱歷表明,一個模塊的規模不應過大,最好能寫在一頁A4紙內

(通常不超過60行語句)。有人從心理學角度探討得知,當一個模塊

包含的語句數超過30以后,模塊的可理解程度快速下降。過大的模

塊往往是由于分解不充分,但是進一步分解必需符合問題結構,一般

說來,分解后不應當降低模塊獨立性。過小的模塊開銷大于有效操作,

而且模塊數目過多將使系統接口困難。因此過小的模塊有時不值得單

獨存在,特殊是只有一個模塊調用它時,通常可以把它合并到上級模

塊中去而不必單獨存在。

(3)深度、寬度、扇出和扇入都應適當.

深度:軟件結構中限制的層數;

寬度:軟件結構內同一個層次上的模塊總數的最大值;

扇出:一個模塊干脆限制(調用)其它模塊的數目;

扇入:一個模塊被其它模塊調用的數目。

(4)模塊的作用域應當在限制域之內

作用域:受該模塊內一個判定影響的全部模塊的集合。

限制域:模塊本身以及全部從屬于它的模塊的集合。

(5)力爭降低模塊接口的困難度

模塊接口困難是軟件發生錯誤的一個主要緣由。應當細致設計模塊接

口,使得信息傳遞簡潔并且和模塊的功能一樣。

如:QUAD-ROOT(TBL,X)

求一元二次方程的根的模塊,其中TBL,X都為數組,分別代

表方程的系數和方程的根。

應當使接口更簡潔,如:

QUAD-ROOT(A,B,C,ROOT1,ROOT2)

A、B、C是方程的系數,ROOTLROOT2是方程的根。

(6)設計單入口單出口的模塊

(7)模塊功能應當可以預料

以上列出的啟發式規則多數是閱歷規律,對改進設計,提高軟件

質量,往往有重要的參考價值;但是,它們既不是設計的目標也不是

設計時應當普遍遵循的原理。

4.深度、寬度、扇出和扇入

⑴深度往往能粗略地標記一個系統的大小和困難程度。深度和程序

長度之間應當有粗略的對應關系,當然這個對應關系是在肯定范圍內

改變的。假如層數過多則應當考慮是否有很多管理模塊過分簡潔了,

能否適當合并。

(2)一般說來,寬度越大系統越困難。對寬度影響最大的因素是模塊

的扇出。

(3)扇出過大意味著模塊過分困難,須要限制和協調過多的下級模塊;

扇出過小(例如總是1)也不好。閱歷表明,一個設計得好的典型系統

的平均扇出通常是3或4(扇出的上限通常是5?9)。

(4)扇出太大一般是因為缺乏中間層次,應當適當增加中間層次的限

制模塊。扇出太小時可以把下級模塊進一步分解成若干個子功能模

塊,或者合并到它的上級模塊中去。當然分解模塊或合并模塊必需符

合問題結構,不能違反模塊獨立原理。

⑸扇入越大則共享該模塊的上級模塊數目越多,這是有好處的,但

是,不能違反模塊獨立原理單純追求高扇入。

⑹視察大量軟件系統后發覺,設計得很好的軟件結構通常頂層扇出

比較高,中層扇出較少,底層扇入到公共的好用模塊中去(底層模塊

有高扇入)。

5.面對數據流的設計方法

(1)面對數據流設計(DataFlow-OrientecDesign,DFOD)是及數據

流分析(DFA)對應的結構化軟件設計技術。

⑵面對數據流的設計要解決的任務,就是在需求分析的基礎上,將

表示系統邏輯模型的DFD圖映射(Mapping)成軟件系統結構的初始

設計描述。

6.變換設計

(1)變換設計就是從變換型數據流圖映射出軟件模塊結構的過程,也

稱以變換為中心的設計。

(2)變換型數據處理問題的工作過程大致分為三步,即取得數據,變

換數據和給出數據。

⑶相應于取得數據、變換數據、給出數據,變換型系統結構圖由輸

入、中心變換和輸出等三部分組成。

(4)變換分析方法由以下四步組成:

a.重畫數據流圖;

b.區分有效(邏輯)輸入、有效(邏輯)輸出和中心變換部分;

c.進行一級分解,設計上層模塊。把整個變換分解成輸入限制模塊

Ci、輸出限制模塊C。和變換中心限制模塊Ct,由主控模塊限制;

d.進行二級分解,設計輸入、輸出和中心變換部分的中、下層模塊。

7.事物設計

⑴事務設計就是從事務型數據流圖映射出軟件模塊結構的過程,也

稱為以事務為中心的設計。

⑵它接受一項事務,依據事務處理的特點和性質,選擇分派一個適

當的處理單元,然后給出結果。

⑶在事務型系統結構圖中,事務

—(571事務中心又

中心模塊按所接受的事務的類型,

選擇某一事務處理模塊執行。各事

務處理模塊并列。每個事務處理模主模塊

_____________u、

輸入類型分析1調度

Hil111y11芋1

112II13I1A2IIB2I|C21

塊可能要調用若干個操作模塊,而操作模塊又可能調用若干個細微環

節模塊。

(4)事務設計的基本方法有兩步:

a.建立主控模塊、接收輸入類型分析模塊和事務調度模塊.

b.分別設計輸入類型分析模塊和調度模塊的下層模塊結構。

方法是:將輸出的每條通路作為調度模塊的一個推斷分支,而輸

入類型分析模塊的下層模塊及變換設計類似。

四、具體設計

LSA方法(基本思想)

2,面對對象分析方法建立的模型(對象模型、行為模型、功能模型)

(1)對象模型

(2)行為模型

⑶功能模型

3.結構化程序設計的限制結構(依次、分支、循環)

(1)依次結構

(2)分支結構

(3)循環結構

4.程序流程圖、N-S盒圖、PAD圖、PDL語言

(1)程序流程圖:程序流程圖也稱為程序框圖,它運用五種基本限制

結構。

(2)N-S盒圖:出于要有一種不允許違反結構程序設計精神的圖形工

具的考慮,Nassi和Shneiderman提出了盒圖,又稱為N-S圖。它有

下述特點:

a.功能域(即,一個特定限制結構的作用域)明確,可以從盒圖上

一眼就看出來。

b.不行能隨意轉移限制。

c.很簡潔確定局部和全程數據的作用域。

d.很簡潔表現嵌套關系,也可以表示模塊的層次結構。

(3)PAD圖:用二維樹形結構的圖來表示程序的限制流,將這種圖翻

譯成程序代碼比較簡潔。它即克服了傳統的流程圖不能清楚表現程序

結構的缺點,又不像N-S圖那樣受到把全部程序約束在一個方框內的

限制,這就是其優勢所在。

(6)PDL語言:PDL是一種用于描述功能模塊的算法設計和加工細微

環節的語言。稱為過程設計語言。它是一種偽碼。偽碼的語法規則分

為“外語法”和“內語法”。

PDL具有嚴格的關鍵字外語法,用于定義限制結構和數據結構,同時

它的表示實際操作和條件的內語法可運用芻然語言的詞匯。

5.計算McCabe環路困難性度量(3種方法)

McCabe度量法,又稱環路困難性度量,是一種基于程序限制流的

困難性度量方法。它基于一個程序模塊的程序圖中環路的個數,因此

計算它先要畫出程序圖。

程序圖是退化的程序流程圖。流程圖中每個處理都退化成一個結

點,流線變成連接不同結點的有向弧(邊)。

程序圖僅描述程序內部的限制流程,

完全不表現對數據的具體操作,以及分支

和循環的具體條件。

⑴流圖中的區域數等于環形困難度

區域:由邊和結點圍成的面積稱為區域,

當計算區域數時應當包括圖外部未被圍

起來的那個區域.

(2)流圖G的環形困難度V(G)=E-N+2.

其中,E是流圖中邊的條數,N是結點數。

(3)流圖G的環形困難度V(G)=P+1

V(G)=4

PDL

procedure:sort其中,P是流圖中判定

I:dowhilerecordsremain

2:readrecord;結點的數目。

ifrecordHeldI-0

3.thenpivcessicccHd.

storeinbutler;五、編碼及測試

incrcmcrtcounter:

4:elseifrecordHeld2O

5:ihenresetcounter;L序言性注釋的作用

6:elseprocessrecord;

storeinfile;

7a:endif通常置于每個程序

eiKlif

7b:enddo

8:end模塊的開頭部分,它應

當給出程序的整體說

明,對于理解程序本身具有引導作用。

⑴夾在程序中的注釋是程序員及日后的程序讀者之間通信的重要手

段。

注釋決不是可有可無的。

⑵一些正規的程序文本中,注釋行的數量占到整個源程序的1/3到

1/2,甚至更多。

(3)注釋分為序言性注釋和功能性注釋。

2.軟件測試的目的

(1)想以最少的時間和人力,系統地找出軟件中潛在的各種錯誤和缺

陷。假如勝利地實施了測試,就能夠發覺軟件中的錯誤。

⑵測試的附帶收獲是,它能夠證明軟件的功能和性能及需求說明相

符合。

(3)實施測試收集到的測試結果數據為牢靠性分析供應了依據。

⑷證明軟件有錯。

3.集成測試策略(驅動模塊、樁模塊)

⑴集成測試是測試和組裝軟件的系統化技術,其主要目標是發覺及

接口有關的問題。

如:數據穿過接口時可能丟失;一個模塊對另一個模塊可能由于

疏忽而造成有害影響;把子功能組合起來可能不產生預期的主功能;

個別看來是可以接受的誤差可能積累到不能接受的程度;全程數據結

構可能有問題等等。

⑵計算機測試:模塊并不是一個獨立的程序,在考慮測試模塊時,

同時要考慮它和外界的聯系,用一些協助模塊去模擬及被測模塊相聯

系的其它模塊。要運行它就必需為其開發驅動軟件和(或)存根(樁)

軟件。

驅動程序也就是一個“主程序”,它接收測試數據,把這些數據

傳送給被測試的模塊,并且印出有關的結果。

存根(樁)程序代替被測試的模塊所調用的模塊,也稱為“虛擬

子程序”。它運用被它代替的模塊的接口,可能做最少量的數據操作,

印出對入口的檢驗或操作結果,并且把限制歸還給調用它的模塊。

⑶方法:

a.非漸增式測試方法,即:先分別測試每個模塊,再把全部模塊按設

計要求放在一起結合成所要的程序進行測試。

b.漸增式測試,即:先把下一個要測試的模塊同已經測試好的那些模

塊結合起來進行測試,測試完以后再把下一個應當測試的模塊結合進

來測試。

這種每次增加一個模塊的方法事實上同時完成單元測試和集成

測試,目前在進行集成測試時普遍采納漸增式測試方法。

(4)漸增方式把模塊結合到程序中去時,有自頂向下和自底向上兩種

集成策略。但在實踐中常采納混合的策略。

4.黑盒測試?黑盒測試方法(等價類劃分、邊界值分析、錯誤推想、

因果圖法)

(1)定義:假如已經知道了產品應當具有的功能,可以通過測試來

檢驗是否每個功能都

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論