《軟體工程(本科教學版)》考試重點

ZALE.PPY發表於2020-11-19

簡答題

1.軟體工程的作用/必要性(Software Engineering)

軟體工程是建立和使用一套合理的工程原則,以便經濟地獲得可靠地、可以在實際機器上高效執行地軟體;
IEEE給出的定義:(1)將系統化的、規範的、可量化的方法應用於軟體的開發,執行和維護,即將工程化方法應用於軟體;(2)在        (1)中所述方法的研究。
軟體過程構成了軟體專案慣例控制的基礎,建立了工作環境以便於應用技術方法、提交工作產品、建立里程碑、保證質量及正確管理變更;
軟體工程方法為構件軟體提供技術上的解決方法;
軟體工程工具為過程和方法提供自動化或半自動化的支援;

2.瀑布模型的優劣(The merits of the waterfall model)

優點
 ①為專案提供了按階段劃分的檢查點;
 ②當前一階段完成後,只需要去關注後續階段;  
 ③可在迭代模型中應用瀑布模型;
 ④它提供了一個模板,這個模板使得分析、設計、編碼、測試和支援的方法可以在該模板下有一個共同的指導;
缺點
①各個階段的劃分完全固定,階段之間產生大量的文件,極大地增大了工作量。
②由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發風險。
③通過過多的強制完成日期和里程碑來跟蹤各個專案階段;
④瀑布模型的突出缺點是不適應使用者需求的變化;

3.物件的概念、特徵(The concept and characteristics of the object)&& 物件與傳統資料物件的區別(The difference between object and traditional data)

1)物件的定義:
    定義1:物件是具有相同狀態的一組操作集合。
    定義2:由儲存物件屬性的資料和可以施加於這些資料的操作封裝在一起構成的整體。物件是類的例項,物件給類以生命。
物件的特徵:繼承、封裝、多型(物件導向)不確定,保留
物件與傳統資料物件的區別:
物件是封裝了資料結構及可以施加在這些資料結構上的操作的封裝體,這個封裝體有唯一標識它的名稱,而且向外界提供一組服務(即共有的操作)。傳統的資料是可見的,可被修改的,而實現物件操作的程式碼和資料是隱藏在物件內部的,在外面看不見的,更不能從外面去訪問或修改這些資料或程式碼。物件將傳統的資料進行封裝處理。

4.實體類、邊界類、控制類(Entity class boundary class control class)

實體類:實體物件的抽象,通常來自域模型(現實世界)用來描述具體的實體,通常對映到資料庫表格與檔案中;
邊界類:邊界物件的抽象,通常是用來完成參與者(使用者、外部系統)於系統之間互動的物件(例如:對話方塊、選單、介面等);
控制類:控制物件的抽象,主要用來體現應用程式的執行邏輯,將其抽象出來,可以使變化不影響使用者介面和資料庫中的表;

5.高質量軟體設計的特徵(Characteristics of high quality software design)

①設計應展示出這樣一種結構:
    A.已經使用可識別的體系結構風格或模式建立;
    B.由展示出良好設計特徵的構件構成;
    C.能夠以演化的方式實現從而便於實現和測試;
②設計應該模組化:也就是說應將軟體邏輯地劃分為元素和子系統;
③設計應該包含資料、體系結構、介面和構件的清晰表示;
④設計應匯出資料結構,這些資料結構適用於要實現的類,並從可識別的資料模式提取。
⑤設計應匯出顯示獨立功能特徵的構件
⑥設計應匯出介面
⑦設計的匯出應根據軟體需求分析過程中獲取的資訊採可重複的方法進行;
⑧應使用能夠有效傳達其意義的表示法來表達設計;

6.體系結構的概念及其重要性(The concept and importance of Architecture)

概念:程式或計算系統的軟體體系結構是指系統的一個或者多個結構,它包括軟體構件、構件的外部可見屬性以及它們之間的相互關係。
作用
    ①對設計在滿足既定需求方面的有效性進行分析;
    ②在設計變更相對容易的階段,考慮體系結構可能的選擇方案;
    ③降低與軟體構造相關的風險;

7.模組獨立性劃分標準(Standard for module independence)

①內聚性:又稱為塊內聯絡,指模組的功能強度的度量,即一個模組內部各個元素彼此結合的緊密程度的度量,如果一個模組內各元素聯絡得越緊密則它的內聚性就越高;
②耦合性:也稱塊間聯絡,指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密其耦合性就越強,模組的獨立性就越差。
耦合性和內聚性是模組獨立性的兩個定性標準,將軟體系統劃分模組使盡量做到高內聚和低耦合,提高模組的獨立性。

8.基於類的構建設計原則(Component based design principles)

①開閉原則:模組應該對外延具有開放性,對修改具有封閉性;
②Liskov原則:子類可以替換它們的基類;
③依賴倒置原則:依賴於抽象而非具體實現
④介面分離原則:多個客戶專用介面比一個通用介面要好
⑤釋出複用等價性原則:複用的粒度就是釋出的粒度;
⑥共同封裝原則:一同變更的類應該合在一起;
⑦共同複用原則:不能一起復用的類不能被分到一組;

9.介面設計黃金原則(Golden principles of interface design)

①使用者操縱控制
②減少使用者的記憶負擔
③保持介面一致

10.軟體測試層次(Various stages of software testing)

教學PPT
單元測試——詳細設計/構建級設計
整合測試——體系結構設計
確認測試——需求
系統測試——系統工程
課本

11.黑盒、白盒測試(White box and black box testing method)

黑盒測試
    概念:也稱行為測試,側重於軟體的功能需求,使軟體工程師能設計出將測試程式所有功能需求的輸入條件集;
    適用場合:對程式內部結構不瞭解而只關心程式功能的場合
優點
    ①適用於各階段測試;
    ②從產品功能角度測試;
    ③容易入手生成測試資料;
缺點
    ①某些程式碼得不到測試;
    ②如果規格說明有誤,則無法發現;
    ③不易進行充分性測試
白盒測試
    適用場合:更關注程式內部邏輯結構的測試
優點
    ①可構成測試資料使特定程式部分得到測試;
    ②有一定的充分性度量手段;
    ③可獲得較多工具支援;
缺點
    ①不易生成測試資料;
    ②無法對未實現規格說明的部分進行測試;
    ③工作量大,通常用於單元測試,有應用侷限

相關文章