軟件工程相關知識點

1. 數據詞典

是描述數據信息的集合,它對數據流圖中的各個元素按規定格式進行詳細的描述和確切的解釋,是數據流圖的補充工具。

2. 數據流圖

他以圖形的方式反映系統的數據流程。

3. 白盒測試

按照程序內部的結構測試程序,檢驗程序中的每條路徑是否都能按預定要求正確工作。有兩種測試法既邏輯覆蓋測試法和路徑測試法。

4. 黑盒測試

按照程序的功能測試程序,檢驗與程序功能有關的輸入、輸出與程序執行是否正確。有四種方法既等價分類法、邊界值分析法、錯誤猜測法和因果圖法。

5. 完善性維護

爲了適應用戶業務和機構的發展變化而對軟件的功能、性能進行修改、擴充的過程稱爲完善性維護。因爲各種用戶的業務和機構在相當長的時期內不可能是一成不變的,所以功能、性能的增加是不可避免的,而且這種維護活動在整個維護工作中所佔的比重很大。

6. 軟件可靠性

指在給定的時間內,程序按照規定的條件成功地運行的概率。

7. 軟件配置

是一個軟件在生存週期內,他的各種形式、各種版本的文檔與程序的總稱。

8. 軟件再工程

運用逆向工程、重構等技術,在充分理解原有軟件的基礎上,進行分解、綜合、並重新構建軟件,用於提高軟件的可理解性、可維護性可複用性或演化性。

9. α測試

是在一個受控的環境下,由用戶在開發者的“指導”下進行的的測試,由開發者負責記錄錯誤和使用中出現的問題。

10. β測試

是由軟件的最終用戶(多個)在一個或多個用戶場所來進行。由用戶負責記下遇到的所有問題,包括主觀認定的和真實的問題,定期向開發者報告,開發者在綜合用戶的報告之後進行修改,最後將軟件產品交付給全體用戶使用。

 

簡答題

1.軟件工程的七條基本原理是什麼?

軟件工程的七條基本原理是:

(1) 用分階段的是的生存週期計劃嚴格管理;

(2) 堅持進行階段評審;

(3) 嚴格實施的產品控制;

(4) 採用現代程序技術;

(5) 結果應能清楚地審查;

(6) 開發小組的成員應該少而精;

(7) 承認不斷改進軟件工程的必要性。

 

2.良好的編碼風格應具備哪些條件?

應具備以下條件:

(1)使用標準的控制結構;

(2)有限制地使用GOTO語句;

(3)源程序的文檔化 (應具備以下內容)

          ①有意義的變量名稱 —— “匈牙利命名規則 ”。

          ②適當的註釋 ——“註釋規範”。

          ③標準的書寫格式:

                    ——用分層縮進的寫法顯示嵌套結構的層次(鋸齒形風格);

                    ——在註釋段的周圍加上邊框;

                    ——在註釋段與程序段、以及不同程序段之間插入空行;

                    ——每行只寫一條語句;

                    ——書寫表達式時,適當使用空格或圓括號等作隔離符。

(4)滿足運行工程學的輸入輸出風格。

 

3.簡述文檔在軟件工程中的作用。

(1) 提高軟件開發過程的能見度

(2) 提高開發效率

(3) 作爲開發人員階段工作成果和結束標誌

(4) 記錄開發過程的有關信息便於使用與維護;

(5) 提供軟件運行、維護和培訓有關資料;

(6) 便於用戶瞭解軟件功能、性能。

 

4.可行性研究包括哪幾方面的內容?

(1)經濟可行性:是否有經濟效益,多長時間可以收回成本;

(2)技術可行性:現有技術能否實現本系統,現有技術人員能否勝任,開發系統的資源能否滿足;

(3)運行可行性:系統操作在用戶內部行得通嗎?

(4)法律可行性:新系統開發是否會侵犯他人、集體或國家利益,是否違反國家法律。

 

5.結構化的需求分析描述工具有哪些?

有數據流圖(DFD)、數據字典(DD)、判定表、判定樹、結構化語言(PDL)、層次方框圖、Warnier圖、IPO圖、控制流圖(CFD)、控制說明(CSPEC)、狀態轉換圖(STD)和實體—關係圖(E—R)等。

 

6.一般面向對象分析建模的工具(圖形)有哪些?

用例圖、類/對象圖、對象關係圖、實體—關係圖(E—R)、事件軌跡圖(時序圖)和狀態轉換圖(STD)等。

 

7.UML統一建模語言有哪幾種圖形?

用例圖、類圖、對象圖、構件(組件)圖、部署(配置)圖、狀態圖、活動圖、順序(時序)圖、合作(協作)圖等九種圖。

 

8.在面向對象分析時類和對象的靜態關係主要有哪幾種?

類和對象的靜態關係主要有關聯、聚集、泛化、依賴等四種關係。

 

9. 什麼是模塊化?模塊設計的準則?

模塊化是按規定的原則將一個大型軟件劃分爲一個個較小的、相對獨立但又相關的模塊。

模塊設計的準則:

(1) 改進軟件結構, 提高模塊獨立性:在對初步模塊進行合併、分解和移動的分析、精化過程中力求提高模塊的內聚,降低藕合。

(2) 模塊大小要適中:大約50行語句的代碼,過大的模塊應分解以提高理解性和可維護性;過小的模塊,合併到上級模塊中。

(3) 軟件結構圖的深度、寬度、扇入和扇出要適當。一般模塊的調用個數不要超過5個。

(4) 儘量降低模塊接口的複雜程度;

(5) 設計單入口、單出口的模塊。

(6) 模塊的作用域應在控制域之內。

 

10.什麼是模塊獨立性?用什麼度量?

 模塊獨立性概括了把軟件劃分爲模塊時要遵守的準則,也是判斷模塊構造是不是合理的標準。獨立性可以從兩個方面來度量:即模塊本身的內聚和模塊之間的耦合。

 

11. 變換型數據流由哪幾部分組成?

變換型結構由三部分組成:傳入路徑、變換(加工)中心和傳出路徑。

 

12. 變換分析設計的步驟?

(1) 區分傳入、傳出和變換中心三部分,劃分DFD圖的分界線;

(2) 完成第一級分解:建立初始SC圖的框架;

(3) 完成第二級分解:分解SC圖的各個分支;

(4) 對初始結構圖按照設計準則進行精化與改進。

 

13. 事務型數據流由哪幾部分組成?

事務型結構由至少一條接受路徑、一個事務中心與若干條動作路徑組成。

 

14. 事務分析設計的步驟?

(1) 在DFD圖中確定事務中心、接收部分(包含全部接收路徑)和發送部分(包含全部動作路徑);

(2) 畫出SC圖框架,把DFD圖的三部分,分別映射"爲事務控制模塊,接收模塊和動作發送模塊.一般得到SC圖的頂層和第一層(如果第一層簡單可以併入頂層);

(3) 分解和細化接收分支和動作分支,完成初始的SC圖;

(4) 對初始結構圖按照設計準則進行精化與改進。

 

15.數據字典包括哪些內容?

數據字典是描述數據流圖中數據的信息的集合。它對數據流圖上每一個成分:數據項、文件(數據結構)、數據流、數據存儲、加工和外部項等給以定義和說明;它主要由數據流描述、加工描述和文件描述三部分組成。

 

18.什麼是軟件生存週期?把生存週期劃分爲階段的目的是什麼?

 一個軟件從開始計劃起,到廢棄不用止,成爲軟件的生存週期。把整個生存週期劃分爲較小的階段,給每個階段賦予確定而有限的任務,能夠簡化每一步的工作內容,使因爲軟件規模增長而大大增加了的軟件複雜性變得較易控制和管理。

 

19.詳細設計的目的?

爲軟件結構圖(SC圖或HC圖)中的每一個模塊確定採用的算法和塊內數據結構,用某種選定的表達工具給出清晰的描述。

 

20.詳細設計的任務是什麼?

(1) 爲每個模塊確定採用的算法;

(2) 確定每一模塊使用的數據結構;

(3) 確定模塊接口的細節;

(4) 編寫過程設計說明書;

(5) 設計每一模塊的測試用例。

 

21. 編碼的任務?

使用選定的程序設計語言,把模塊的過程性描述翻譯爲用語言書寫的源程序(源代碼)。

 

22.軟件測試的基本任務?

軟件測試是按照特定的規則,發現軟件錯誤的過程;好的測試方案是儘可能發現迄今尚未發現錯誤的測試;成功的測試方案是發現迄今尚未發現錯誤的測試;

 

23.什麼是黑盒測試?黑盒測試主要採用的技術有哪些?

黑盒測試也稱爲功能測試,它着眼於程序的外部特徵,而不考慮程序的內部邏輯結構。測試者把被測程序看成一個黑盒,不用關心程序的內部結構。黑盒測試是在程序接口處進行測試,它只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接收輸入數據產生正確的輸出信息,並且保持外部信息(如數據庫或文件)的完整性。

黑盒測試主要採用的技術有:等價分類法、邊界值分析法、錯誤推測法和因果圖等技術。

 

24.什麼是白盒測試?白盒測試主要採用的技術有哪些?

白盒測試是測試者瞭解被測程序的內部結構和處理過程,對程序的所有邏輯路徑進行測試,在不同點檢查程序狀態,確定實際狀態與預期狀態是否一致。

白盒測試主要採用的技術有:路徑測試技術和事務處理流程技術,對包含有大量邏輯判斷或條件組合的程序採用基於邏輯的測試技術。

 

25.路徑測試技術中幾種主要覆蓋的含義?舉例說明?

語句覆蓋:至少執行程序中所有語句一次。

判定覆蓋:使被測程序中的每一個分支至少執行一次。故也稱爲分支覆蓋。

條件覆蓋:執行所有可能的穿過程序的控制路流程。

條件組合測試:設計足夠的測試用例,使每個判定中的所有可能條件取值組合至少執行一次。

(例略)

 

26.等價分類法的測試技術採用的一般方法?舉例說明?

(1) 爲每個等價類編號;

(2) 設計一個新的測試方案,以儘可能多的覆蓋尚未被覆蓋的有效等價類,重複這一步驟,直到所有有效等價類被覆蓋爲止。

(3) 設計一個新的測試方案,使它覆蓋一個尚未被覆蓋的無效等價類, 重複這一步驟,直到所有無效等價類被覆蓋爲止。

(例略)

 

29.爲什麼說軟件的維護是不可避免的?

因爲軟件的開發過程中,一般很難檢測到所有的錯誤,

其次軟件在應用過程中需要隨用戶新的要求或運行環境的變化而進行軟件的修改或完成功能的增刪等,爲了提高軟件的應用水平和使用壽命,軟件的維護是不可避免的。

 

30.軟件的維護一般分爲哪幾類?

完善性維護:滿足用戶在使用過程中提出增加新的功能或修改已有功能,以滿足用戶日益增長的需要而進行的工作; 適應性維護:是軟件適應新的運行環境而進行的工作; 糾錯性維護:糾正開發期間未發現的遺留錯誤,即在程序使用期間發現的程序錯誤進行診斷和改正的過程;

預防性維護:爲了改善未來的可維護性或可靠性而修改軟件的工作。

 

31.決定軟件可維護性的因素?

(1) 軟件的可理解性、可測試性、可修改性;

(2) 文檔描述符合要求、用戶文檔簡潔明確、系統文檔完整並且標準。

 

32.分析軟件危機產生的主要原因有哪些?

導致軟件危機的主要原因有:

(1)軟件日益複雜和龐大

(2)軟件開發管理困難和複雜

(3)軟件開發技術落後

(4)生產方式落後

(5)開發工具落後

(6)軟件開發費用不斷增加

 

33.說明結構化程序設計的主要思想是什麼?

(1)自頂向下、逐步求精的程序設計方法。

(2)使用3種基本控制結構、單入口、單出口來構造程序。

 

34、軟件測試的基本任務是什麼?測試與糾錯有什麼區別?

軟件測試的基本任務是通過在計算機上執行程序,暴露程序中潛在的錯誤。測試和糾錯目的和任務都不相同,測試是爲了發現程序的錯誤,糾錯是爲了定位和糾正錯誤,從而消除軟件故障,保證程序的可靠運行。

 

35.軟件測試包括哪些步驟?同時說明這些步驟的測試目的是什麼?

(1)單元測試,目的是代碼達到模塊說明書的要求。

(2)集成測試,目的是將經過單元測試的模塊逐步組裝成具有良好一致性的完整的程序。

(3)確認測試,目的是確認程序系統是否滿足軟件需求規格說明書的要求。

(4)系統測試,目的是檢查能否與系統的其餘部分協調運行,並且完成SRS對他的要求。

 

36.需求分析與軟件設計二個階段任務的主要區別是什麼?

需求分析定義軟件的用戶需求,即定義待開發軟件能做什麼。

軟件設計定義軟件的實現細節以滿足用戶需求,即研究如何實現軟件。

 

37.說明軟件測試和調試的目的有何區別?

測試的目的是判斷和發現軟件是否有錯誤

調試的目的是定位軟件錯誤並糾正

 

43、什麼是軟件複用?簡述軟件複用和軟件共享、軟件移植的差別。

軟件複用是指在構造新的軟件系統的過程中,對已存在的軟件人工製品的使用技術。如果是在一個系統中多次使用一個相同的軟件成分,這叫軟件共享;對一個軟件進行修改,使它能運行於新的軟、硬件平臺這稱作軟件移植。

 

44、什麼是軟件再工程?軟件再工程的主要活動有哪些?

軟件再工程是運用逆向工程、重構等技術,在充分理解原有軟件的基礎上,進行分解、綜合,並重新構建軟件,用以提高軟件的可理解性、可維護性、可複用性或演化性。主要活動:信息庫分析、文檔重構、逆向工程、代碼重構、數據重構、正向工程。

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