軟件工程複習

複試忽然加科目了,趕忙惡補一波......html

1、軟件分析:是一個對用戶的需求進行去粗取精、去僞存真正確理解,而後把它用軟件工程開發語言表達出來的過程,程序員

基本任務是和用戶一塊兒肯定要解決的問題,創建軟件的邏輯模型,編寫需求規格說明書文檔並最終獲得用戶的承認。算法

2、軟件設計(概要設計和詳細設計):主要任務就是將軟件分解成模塊使之能實現某個功能的數據和程序說明、可執行程序的程序單元。數據庫

3、軟件編碼(單元測試):指把軟件設計轉換成計算機能夠接受的程序,即寫成以某一程序設計語言表示的"源程序清單"。
4、軟件測試:目的是以較小的代價發現儘量多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例(測試數據和預期的輸出結果組成了測試用例)。數據結構

5、軟件維護:指在已完成對軟件的研製(分析、設計、編碼和測試)工做並交付使用之後,對軟件產品所進行的一些軟件工程的活動。模塊化

根據軟件運行的狀況,對軟件進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。函數

IPO圖、瀑布模型、測試覆蓋、斷定表、PAD圖、SA方法、DFD工具

常見簡答題彙總:性能

一、什麼是軟件工程?它目標和內容是什麼?單元測試

軟件工程就是用科學的知識和技術原理來定義,開發,維護軟件的一門學科。

軟件工程目標:付出較低開發成本;達到要求的功能;取得較好的性能;開發的軟件易於移植;只需較低的維護費用

按時完成開發任務,及時交付使用;開發的軟件可靠性高

軟件工程內容:包括開發技術和開發管理兩個方面。

二、軟件開發中有哪幾種過程模型?哪些適用於面向對象的軟件開發?

軟件開發中常見的軟件過程模型有瀑布模型、原型模型、螺旋模型、噴泉模型、統一軟件過程等。

其中噴泉模型、統一軟件過程適用於面向對象的軟件開發。

三、什麼是結構分析方法?該方法使用什麼描述工具?

結構化分析:簡稱SA,面向數據流進行數據分析的方法。採用自頂向下逐層分解的分析策略。

頂層抽象地描述整個系統,底層具體地畫出系統工程的每一個細節。中間層則是從抽象到具體的過渡。

使用數據流圖,數據字典,做爲描述工具,使用結構化語言,斷定表,斷定樹描述加工邏輯。

四、什麼是軟件概要設計?該階段的基本任務是什麼?
把一個軟件需求轉換爲軟件表示時,首先設計出軟件總的體系結構。稱爲概要設計或結構設計。

基本任務:

⑴設計軟件系統結構

⑵進行數據結構及數據庫的設計

⑶編寫概要設計的文檔

⑷評審

五、軟件維護有哪些內容?

(1)校訂性(改正性)維護。在軟件交付使用後,一些隱含的錯誤在某些特定的使用環境下會暴露出來。

爲了識別和糾正錯誤,修改軟件性能上的缺陷,應進行肯定和修改錯誤的過程,這個過程就稱爲校訂性維護。

(2)適應性維護。爲了使應用軟件適應計算機硬件、軟件環境及數據環境的不斷髮生的變化而修改軟件的過程稱爲適應性維護。

(3)完善性維護。爲增長軟件功能、加強軟件性能、提升軟件運行效率而進行的維護活動稱爲完善性維護。

(4)預防性維護。爲了提升軟件的可維護性和可靠性而對軟件進行的修改稱爲預防性維護。

六、軟件測試要通過哪些步驟?這些測試與軟件開發各階段之間有什麼關係?

軟件測試要通過的步驟是:單元測試→集成測試→確認測試→系統測試

單元測試對源程序中每個程序單元進行測試,檢查各個模塊是否正確實現規定的功能,從而發現模塊在編碼中或算法中的錯誤。該階段涉及編碼和詳細設計文檔。

集成測試是爲了檢查與設計相關的軟件體系結構的有關問題,也就是檢查概要設計是否合理有效。

確認測試主要是檢查已實現的軟件是否知足需求規格說明書中肯定了的各類需求

系統測試是把已確認的軟件與其餘系統元素(如硬件、其餘支持軟件、數據、人工等)結合在一塊兒進行測試。以肯定軟件是否能夠支付使用

七、什麼是軟件生存週期?它有哪幾個活動?

軟件生存週期:一個軟件從提出開發要求開始直到該軟件報廢爲止的整個時期。

包括:問題定義、可行性研究,需求分析,概要設計,詳細設計,編碼和單元測試,綜合測試,運行維護。

八、衡量模塊獨立性的兩個標準是什麼?各表示什麼含義?

內聚和耦合。目標是高內聚低耦合

內聚:又稱爲塊內聯繫,指模塊內部各成分之間相互關聯的程度,以高內聚爲設計目標。

耦合:也稱塊間聯繫,模塊之間相互聯繫程度的度量,聯繫越緊密,耦合性越強,獨立性越差,以低耦合爲設計目標。

九、什麼是結構分析方法?結構化分析方法經過哪些步驟來實現?

結構化分析:簡稱SA,面向數據流進行數據分析的方法。採用自頂向下逐層分解的分析策略。

頂層抽象地描述整個系統,底層具體地畫出系統工程的每一個細節。中間層則是從抽象到具體的過渡。

實現的步驟:

⑴瞭解當前系統的工做流程,得到當前系統的物理模型

⑵抽象出當前系統的邏輯模型

⑶創建目標系統的邏輯模型

⑷做進一步補充和優化

十、什麼是需求分析?需求分析階段的基本任務是什麼?

需求分析:開發人員準確地理解用戶的要求,進行細緻的調查分析,將用戶非形式的需求陳述轉化爲完整的需求定義,再由需求定義轉換到相應的需求規格說明的過程。

基本任務:

⑴問題識別

⑵分析與綜合,導出軟件的邏輯模型

⑶編寫文檔

十一、什麼樣是」事物流」?什麼是」變換流」?

數據流圖(DFD)通常可分爲」變換流」,」事物流」兩種。

̶變換流」:由輸入﹑輸出﹑變換(或稱處理)三部分組成,是一順序結構。

̶事物流」:它的某個加工,分離成許多發散的數據流,造成許多加工路徑,而且根據輸入值選擇其中一個路徑來執行。(這人加工稱爲事務處理中心)

十二、單元測試有哪些內容?

單元測試主要針對模塊的如下五個基本特徵進行測試:

(1)模塊接口

(2)局部數據結構

(3)重要的執行路徑

(4)錯誤處理

(5)邊界條件

1三、什麼是軟件生存週期模型?有哪些主要模型?

生存週期模型:描述軟件開發過程當中各類活動如何執行的模型。對軟件開發提供強有力的支持,爲開發過程當中的活動提供統一的政策保證,

爲參與開發的人員提供幫助和指導,是軟件生存週期模型化技術的基礎,也是創建軟件開發環境的核心。

主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基於知識的模型,變換模型

1四、軟件設計的基本原理包括哪些內容?

模塊化:模塊是軟件的組成部分,是具備獨立功能且可命名的一段程序,全部模塊組成總體,能夠知足問題的要求。

抽象:認識複雜現象過程所使用權的工具,只考慮事物本質的共同特性,忽略細節和其它因素。經過抽象肯定組成軟件的過程實體。

信息隱蔽:將模塊實現自身功能的細節與數據」隱蔽」起來。模塊間僅交換爲完成系統功能所必須的信息。

模塊獨立性:每一個模塊只完成系統要求的獨立的子功能。

1五、結構化程序設計的基本要點是什麼?

主要有三個:

一、採用自頂向下、逐步求精的程序設計方法

二、使用三種基本控制結構構造程序。任何程序均可以由順序、選擇、重複(循環)三種基本控制結構構造,這三種基本結構的共同點是單入口、單出口。

三、主程序員組的組織形式。

1六、詳細設計有哪幾種描述方法?

詳細設計的描述方法有圖形、表格和語言,其中圖形經常使用結構化程序流程圖、盒圖和PAD(問題分析圖)爲描述工具,語言經常使用過程設計語言(PDL)來做爲工具。

1七、單元測試中採用什麼方法?

測試的方法是爲被測試模塊編寫驅動模塊和樁模塊來實現被測試單元的可運行。

經過驅動模塊來模擬被測試模塊的上級調用模塊,以上級模塊調用被測模塊的格式驅動被測模塊,接收被測模塊的測試結構並輸出。

樁模塊則用來代替被測試模塊所調用的模塊。它的做用是返回被測模塊所需的信息。

1八、什麼是軟件配置管理?什麼是基線?

軟件配置管理,簡稱SCM(Software Configuration Management),是指一組管理整個軟件生存期各階段中變動的活動

軟件配置管理技術可使軟件變動所產生的錯誤達到最小並最有效地提升生產率

基線:是軟件生存期中各開發階段的一個特定點,它的做用是把開發各階段工做的劃分更加明確化,使原本連續的工做在這些點上斷開,以便於檢查與確定階段成果。

1九、簡述文檔在軟件工程中的做用?

文檔在軟件工程中的做用以下:

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

(2)提升開發效率

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

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

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

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

20、軟件工程三要素之間的關係?

軟件質量是軟件工程的生命線,軟件工程以質量保證爲基礎。

質量管理促進了過程的改進,創造了許多行之有效的軟件開發方法和工具。

軟件工程釆用層次化的方法,每一個層次都包括過程、方法、工具三要素。

方法支撐過程和工具,過程和工具又促進方法學的研究。

2一、說明面向對象的特徵?

面向對象的特徵是:

(1)對象惟一性。每一個對象都有自身惟一的標識,在對象生存期中,其標識不變,不一樣的對象不能有不一樣的標識。

(2)分類性。是指將具備一致的數據結構(屬性)和行爲(操做)的對象抽象成類

(3)繼承性。是子類自動共享父類數據結構和方法的機制,這是類之間的一種關係。

(4)多態性。是指相同的操做或函數過程能夠做用於多種類型的對象上並得到不一樣的結果。

2二、簡述」變換分析」設計步驟。

⑴肯定變換中心,邏輯輸入和輸出。

⑵設計軟件結構的頂層和第一層–變換結構。

⑶設計中﹑下層模塊,對第一層的模塊自頂向下分解。

⑷設計的優化 :輸入部分求精,每一個物理輸入設置專門模塊,以體現系統的外部接口。其它輸入模塊與轉換數據模塊都很簡單時,可將它們合併。

2三、請簡述可行性研究有哪些步驟?

複查系統規模和目標;研究當前的系統;導出新系統的高層邏輯模型;從新定義問題;導出和評價可供選擇的解決方案;推薦可行的行動方案;草擬開發計劃;書寫文檔並提交審查。

2四、請簡述黑盒測試和白盒測試有何區別,黑盒測試有哪些經常使用方法?

黑盒測試和白盒測試的區別:前者基於功能,後者基於結構

黑盒測試經常使用方法有:邊界值、等價類、因果圖、錯誤推測法等。

2五、什麼是軟件可維護性?常見的軟件維護活動有哪幾類?

軟件可維護性的定義:軟件可以被理解、校訂、適應及加強功能的容易程度;

常見的軟件維護活動有:改正型、適應型、完善型、預防型

2六、CMM全稱是什麼?分爲哪幾個級別?

CMM全稱是軟件能力成熟度模型

從無序到有序的進化分紅5個級別,分別爲:

1 初始級;2 可重複級;3 已定義級;4 已管理級;5 優化級

2七、什麼是數據字典?簡述數據字典與數據流圖的關係。

數據字典是關於數據的信息的集合,對數據流程圖中的各個元素作完整的定義與說明,是數據流程圖的補充工具;

數據字典與數據流圖的關係:數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典數據流圖就不嚴格,然而沒有數據流圖數據字典也難於發揮做用。

數據流圖和對數據流圖中每一個元素的精肯定義放在一塊兒,才能共同構成系統的規格說明。

2八、軟件生命週期劃分爲哪幾個階段?

軟件生命週期分爲三個時期八個階段:

軟件定義:問題定義、可行性研究、需求分析;

軟件開發:概要設計(整體設計)、詳細設計、編碼和單元測試、綜合測試;

運行維護:軟件維護

2九、簡述三種面向對象模型的主要功能?

對象模型:表示了靜態的結構化的系統數據性質,描繪了系統的靜態結構,從客觀世界實體的對象關係角度來描繪對象。

動態模型:該模型描述了系統的控制結構,它表示了瞬間的、行爲化的系統控制性質,它關心的是系統的控制及操做的執行順序,

它從對象的事件和狀態的角度出發,表現了對象的交互行爲。

功能模型:表示變化的系統「功能」性質,它指明系統應該「作什麼」,所以功能模型更直接的反映了用戶對目標系統的要求。

30、詳細設計的基本任務是什麼?

詳細設計的基本任務包括:爲每一個模塊進行詳細的算法設計;爲模塊內的數據結構進行設計;對數據庫進行物理設計;其餘設計;編寫詳細設計說明書;評審。

3一、黑盒測試和白盒測試有什麼區別?

(1)黑盒測試法: 把程序看做一個黑盒子,徹底不考慮程序的內部結構和處理過程。它只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接收輸入數據併產生正確的輸出信息,程序運行過程當中可否保持外部信息的完整性。黑盒測試又稱爲功能測試,包含等價類劃分法、邊界值法、錯誤推測法、因果圖法等。

(2)白盒測試法: 是把程序當作裝在一個透明的白盒子裏,測試者徹底知道程序的結構和處理算法。這種方法按照程序內部的邏輯測試程序,檢測程序中的主要執行通路是否都能按預約要求正確工做。白盒測試又稱爲結構測試,包含邏輯覆蓋法和基本路徑測試法

3二、什麼是軟件工程?軟件工程面臨的問題是什麼?

軟件工程就是用科學的知識和技術原理來定義,開發,維護軟件的一門學科。

軟件工程面臨的問題:軟件的費用,可靠性,可維護性,軟件生產率和軟件的重用

3三、軟件工程三要素之間的關係?(同20題)

3四、簡述結構化程序設計方法的基本要點。

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

(2)使用三種基本控制結構構造程序,分別是順序,選擇和循環

(3)採用主程序員組的組織形式。

3五、顧客在自動櫃員機中插入銀行卡,執行提款的服務項目;銀行職員要求自動櫃員機打印全部的提款數據。畫出自動櫃員機的Use Case圖。?

3六、簡述提升可維護性的方法。

(1)創建明確的軟件質量目標

(2)利用先進的軟件開發技術和工具

(3)創建明確的質量保證工做

(4)選擇可維護的程序設計語言

(5)改進程序文檔

3七、簡述文檔在軟件工程中的做用(同19題)

3八、什麼是軟件危機?產生緣由是什麼?

軟件開發技術的進步未能知足發展的要求。在軟件開發中遇到的問題找不到解決的辦法,問題積累起來,形態尖銳的矛盾,致使了軟件危機。

產生緣由:

⑴ 軟件規模愈來愈大,結構愈來愈複雜。

⑵ 軟件開發管理困難而複雜。

⑶ 軟件包開發費用不斷增長。

⑷ 軟件開發技術落後

生產方式落後,仍採用手工方式。

開發工具落後,生產率提升緩慢。

3九、調試的目的是什麼?調試有哪些技術手段?

調試則是在進行了成功的測試以後纔開始的工做。調試的目的是肯定錯誤的緣由和位置,並改正錯誤,所以調試也稱爲糾錯(Debug)。

調試的技術手段有簡單的調試方法、概括法、演繹法和回溯法等。

40、在傳統軟件工程方法指導下,數據流圖和數據字典的關係如何?

數據字典是關於數據的信息的集合,對數據流程圖中的各個元素作完整的定義與說明,是數據流程圖的補充工具。

數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典數據流圖就不嚴格,然而沒有數據流圖數據字典也難於發揮做用。 數據流圖和對數據流圖中每一個元素的精肯定義放在一塊兒,才能共同構成系統的規格說明

 

參考:https://www.cnblogs.com/ludiboke/p/10533875.html

相關文章
相關標籤/搜索