【软件工程导论题型大总结】简答题总结
文章目錄
- 一:傳統軟件工程部分
- (1)非常重要
- (2)可以了解
- 二:面向對象設計部分
- (1)非常重要
- (2)了解
一:傳統軟件工程部分
(1)非常重要
1.
【答案】
軟件危機的定義:軟件危機是在計算機開發和維護過程中所遇到的一系列的嚴重問題,主要包含兩個方面
- 如何開發軟件,以滿足日益增長的軟件需求
- 如何維護軟件數量不斷膨脹的已有軟件
軟件危機的表現:
- 對軟件開發成本和進度的估算不準確
- 用戶對軟件不滿意
- 軟件質量不可靠
- 軟件不可維護
- 沒有合適的文檔資料
- 軟件成本在計算機系統中的成本逐年上升
- 軟件開發生產率低
軟件危機的原因
①:主觀方面
- 忽視需求分析
- 輕視軟件維護
- 沒有認識到程序只是軟件的一部分
- 沒有認識到開發只是軟件漫長生命周期中一個比較次要的階段
- 越到后期引入變動代價會越高
②:客觀方面
- 軟件是邏輯實體,具有不可見性,管理控制很困難
- 軟件不會磨碎,維護意味著需要原來的設計,維護困難
- 軟件規模龐大,程序的復雜性會隨著軟件規模增加而增加
如何解決
- 對計算機軟件應該有正確的認識
- 要吸取和借鑒人類長期從事各種工程項目積累的原理、概念、技術和方法
- 積極開發和使用計算機輔助開發軟件
- 探索更好更有效的管理措施和手段對開發過程進行控制和管理
2.
【答案】
軟件工程定義:采用工程的概念、技術、原理和方法,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,經濟的開發出高質量的軟件并維護它
軟件工程的特征
軟件工程的原理
3.軟件生命周期階段如何劃分?
【答案】
【答案】
軟件過程的定義:是為了獲得高質量軟件所需要完成的一系列任務框架,它規定了完成任務的工作步驟,通常用軟件生命周期模型來描述軟件過程
軟件工程方法學:把在軟件生命周期全過程中所使用的一整套技術方法的集合稱之為軟件工程方法學。包含三個要素
- 方法:完成軟件開發各項任務的技術方法
- 工具:為了運用方法提高的自動或半自動軟件工程支撐環境
- 過程:是為了獲得高質量軟件所需要完成的一系列任務框架
因此軟件過程是軟件工程方法學的重要組成部分
5.
【答案】
①瀑布模型
優點:
- 強迫開發人員使用規范的方法
- 嚴格規定了每個階段提交的文檔
- 要求每個階段交出的產品都必須經過質量保證小組的驗證
- 對文檔的約束,使得軟件維護變得容易一些,且能降低軟件預算
缺點
- 在軟件開發初期就要求做出正確的,全面的,完整的需求分析對多數應用軟件來說是很困難的
- 在需求分析階段,在需求確定后,無法及時驗證需求是否正確,完整
- 作為整體開發的瀑布模型,由于不支持產品演化,缺乏靈活性,對開發過程中很難發現的錯誤,只有在產品最終運行時才能發現
適用范圍
- 用戶的需求非常清晰全面,且在開發過程中沒有或很少有變化
- 開發人員對軟件的應用領域很熟悉
- 用戶的使用環境非常穩定
- 開發工作對用戶的參與要求很低
②快速原型模型
優點:
- 開發的軟件通常滿足用戶需求
- 軟件開發基本是線性過程
缺點
- 準確原型設計困難
- 原型理解可能不同
- 不利于開發人員創新
適用范圍
- 對所開發的領域比較熟悉且與快速的原型開發工具
- 項目招投標時,可以以原型模型作為軟件的開發模型
- 進行產品移植或升級時,或對已有產品原型進行客戶化工作時
③:增量模型
優點
- 短時間內可提交部分功能
- 逐漸增加產品功能,用戶適應產品快
缺點
- 增量構件劃分及集成困難
- 容易退化成邊做邊改模型
④:螺旋模型
優點
- 利于把軟件質量作為軟件的開發目標
- 減少測試
- 維護和開發不分開
缺點
- 風險估計困難
⑤:噴泉模型
噴泉模型是一種以用戶需求為動力,以對象為驅動的模型,主要用于描述面向對象的軟件開發過程。該模型認為軟件開發過程自下而上周期的各階段是相互迭代和無間隙的特性
6.
【答案】
可行性研究的必要性:開發一個軟件時,需要判斷原定的系統模型和目標是否現實,系統完成后所能帶來的效益是否大到值得投資開發這個系統的程度,如果做不到這些,那么花費在這些工程上的任何時間、人力、軟硬件資源和經費,都是無謂的浪費。可行性研究的實質是要進行一次大大壓縮簡化了 的系統分析和設計過程,就是在較高層次上以較抽象的方式進行的系統分析和設計的過程。可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決
涉及方面
- 經濟可行性:經濟效益是否大于開發成本
- 技術可行性:現有技術能夠實現
- 操作可行性:系統操作方式是否可行
- 其它可行性:法律、社會效益
7.可行性研究的目的、本質、任務、過程(步驟)
【答案】
可行性研究的目的:用最小的代價在最小的時間內確定問題是否可以被解決
可行性研究的本質:系統分析和設計過程的大大壓縮和簡化,在較高層次上以較為抽象的方式進行系統的分析和設計過程
可行性研究的任務:
可行性研究的過程(步驟):
8.數據流圖的概念、特點、符號、用途(目的)
【答案】
DFD的概念:描述信息流和數據從輸入到輸出所經受的變換。沒有任何具體物理部件,只是描繪數據在軟件中流動和被處理的邏輯過程
DFD的特點:
DFD的符號:
DFD的用途(目的):
9.數據字典相關的概念、符號、用途
【答案】
數據字典的概念:
數據字典的符號:
數據字典的用途:
10.
【答案】
需求分析的定義:需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統必須做什么”這個問題,目標系統提出完整、準確、清晰、具體的要求。在需求分析階段結束之前,系統分析員應該寫出軟件需求規明書,以書面形式準確地描述軟件需求
需求分析的必要性:為了開發出真正滿足用戶需求的軟件產品,首先必須要知道用戶的需求。對軟件需求的深入理解是軟件開發工作獲得成功的必要前提,不論人們把設計和編碼工作做得如何出色,不能滿足用戶需求的程序只會讓用戶失望
軟件系統需求
- 功能要求
- 性能要求
- 可靠性和可用性要求
- 出錯處理需求
- 接口需求
- 約束
- 逆向需求
- 將來可能提出需求
11.需求分析的準則是什么
12.需求分析的任務
13.
【答案】
14.實體聯系圖作用、優點
【答案】
- E-R模型比較接近人的思維習慣方式
- E-R模型使用簡單的圖形符號表達,便于用戶理解
15.驗證需求的四個方面和方法
【答案】
四個方面
方法
16.總體設計的相關概念
【答案】
總體設計的定義:總體設計的基本目的就是回答“系統應該如何實現”這個問題,又稱為概要設計或初步設計
總體設計的任務:確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系
總體設計的概括:
總體設計的必要性:可以站在全局高度上,花較少成本,從較抽象的層次上分析對比多種可能的系統實現方案和軟件結構,從中選出最佳方案和最合理的軟件結構,從而用較低成本開發出較高質量的軟件系統
17.總體設計的步驟
【答案】
18.簡述設計原理(這一部分中的內容基本會分散在名詞解釋和填空題中記憶)
詢問點1:模塊獨立性重要性
詢問點2:請簡述耦合方式
詢問點3:請簡述內聚方式
【答案】
19.請簡述啟發式規則
【答案】
- 改進軟件結構以提高模塊獨立性
- 模塊的規模應該適當
- 深度、寬度、扇入、扇出數目應該適當
- 模塊的作用域應該在控制域之內
- 力爭降低模塊接口的復雜程度
- 設計單入口單出口的模塊
- 模塊的功能應該可以預測但要防止過分局限
20.程序流圖的符號
【答案】
21.程序流程圖的優缺點
【答案】
22.盒圖的符號
【答案】
23.盒圖的優點
【答案】
- 功能域明確,可以從盒圖上一眼就看出來
- 不可能任意轉移控制
- 很容易確定局部和全程數據的作用域
- 很容易表現嵌套關系,也可以表示模塊的層次結構
24.問題分析圖(PAD圖)的符號
【答案】
25.問題分析圖(PAD圖)的優點
【答案】
26.判定表的組成
【答案】
27.判定表的優缺點
【答案】
28.程序復雜度的價值、作用
【答案】
29.環形復雜度計算方法
【答案】
30.程序設計語言如何選擇
【答案】
31.簡述編碼風格
【答案】
32.軟件測試的目標
【答案】
33.軟件測試的準則
【答案】
34.簡述軟件測試步驟
【答案】
35.簡述單元測試的測試重點
【答案】
36.簡述自頂向下集成
【答案】
37.簡述自底向上集成
【答案】
38.簡述白盒測試中的語句覆蓋、判定覆蓋等邏輯覆蓋過程
【答案】
39.簡述黑盒測試中測試用例的設計標準
【答案】
- 能夠減少為達到合理測試所需要設計的測試用例的總數
- 能夠告訴人們,是否存在某些類型的錯誤,而不是僅僅指出與特定測試相關的錯誤是否存在
40.簡述等價類劃分法(了解,特別注意規則)
【答案】
41.請簡述軟件維護的分類
【答案】
42.請簡述軟件維護的特點
【答案】
【答案】
44.
【答案】
- 通常,對一個已有的軟件做重大修改意味著對軟件功能做較大變更或增加較多新功能,這往往需要修改軟件的體系結構。因此,了解原有軟件的總體情況是很重要的。程序的規格說明書準確地描述了對軟件系統的數據要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向需求及將來可能提出的需求,對了解已有軟件的總體情況有很大幫助。在對已有軟件做重大修改之前仔細閱讀、認真研究這份文檔, 可以避免許多修改錯誤。因此,應該選取這份文檔
- 有經驗的軟件工程師通過閱讀含有適當數量注解的源程序,不難搞清程序的實現算法,沒有描述詳細設計結果的文檔并不會給維護工作帶來太大困難。此外,為了修改程序代碼,原有程序的清單是必不可少的。因此,為了對這個軟件做重大修改應該選取的第二份文檔是源程序清單
45.簡述代碼行技術方法
【答案】
46.簡述代碼行技術的優缺點
【答案】
47.簡述功能點技術信息域特性
【答案】
48.簡述功能點FP的計算方法
【答案】
49.簡述軟件指令保證措施
【答案】
50.簡述軟件管理配置的目的
【答案】
51.簡述CMM
【答案】
(以下部分為拓展)
1.什么 是軟件生存期?有何重要性?國家標準計算機軟件開發規范中,把軟件生存周期劃分為哪幾個階段
【答案】
軟件生命周期是指一個軟件從立項開始,經過開發、測試、使用和維護知道軟件下線的整個時期
2.結構化設計與面向對象設計的區別
簡述提高軟件質量的主要措施
UML 里面有哪些圖
常用的黑盒測試方法有哪些?
等價劃分,邊界值分析,錯誤推測
常用的白盒測試方法有哪些?
邏輯覆蓋(語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、點覆蓋、邊覆蓋、路徑覆蓋),
控制結構測試(基本路徑測試、條件測試、循環測試)
耦合強度的衡量因素有哪些
有哪些常用的設計模式
CMM共有多少個等級,每個等級分別代表什么
(2)可以了解
1.什么是軟件?軟件的特點是什么?
【答案】
【答案】
在軟件開發的不同階段進行修改所付出的代價是不相同的。在早期引入變動,由于設計的面較少,因而代價也比較低;在開發的中后期,軟件配置相關工作已經完成,引入一個變動時常常會引起所有與之有關的成分發生變化,所以代價較高。一個人編碼錯誤是不可避免的,但是修改的成本是很小的,因為這不是整體架構的錯誤,只要不斷進行階段評審,不要讓錯誤留到后期,在早期就盡可能解決
3.
【答案】
結構化范型
- 采用結構化技術完成軟件開發的各項任務
- 把軟件生命周期劃分不同階段
- 每個階段開始和結束都有嚴格標準
- 每個階段結束后要有嚴格審查
面向對象范型
- 把對象作為融合了數據及在數據上的操作行為的統一軟件構件
- 把所有對象劃分為類
- 按照父類與子類的關系,把若干類組成層次結構的系統
- 對象彼此間僅通過消息互相聯系
4。
【答案】
因為使用面向對象方法學開發軟件時,各個階段都使用統一的概念和表示符號, 因此,整個開發過程都是吻合一致的,或者說是無縫連接的,這自然就很容易實現各個開發步驟的反復多次迭代,達到認識的逐步深化,而噴泉模型則很好的體現了面向對象軟件開發過程迭代和無縫的特性
【答案】
優點:提高了團隊生產力,在迭代的開發過程、需求管理、基于組建的體系結構、可視化軟件建模、驗證軟件質量及控制軟件變更等方面、針對所有關鍵的開發活動為每個開發成員提供了必要的準則、模版和工具指導,并確保全體成員共享相同的知識基礎。它建立了簡潔和清晰的過程結構,為開發過程提供較大的通用性
缺點:缺點: RUP只是一個開發過程,并沒有涵蓋軟件過程的全部內容,例如它缺少關于軟件運行和支持等方面的內容,此外,他沒有支持多項目的開發結構,這在一定程度上降低了在開發組織內大范圍實現重用的可能性
Raitional統一過程主要適用于何種項目?
說明敏捷過程適用范圍
說明微軟過程的適用范圍
【答案】
大型的需求不斷變化的復雜軟件系統項目
適用于商業競爭環境下對小型項目提出的有限資源和有限開發時間的約束
適用于商業環境下具有有限資源和有限開發時間約束的項目的軟件過程模式
7.數據模型定義、作用
為了把用戶的數據要求清楚、準確地描述出來,通常建立一個概念性的數據模型(信息模型)。概念性數據模型是一種面向問題的數據模型,是按照用戶的觀點對數據建立的模型。它描述了從用戶角度看到的數據,它反映了用戶的現實環境,而且與在軟件系統中的實現方法無關
8.簡述層次圖和HIPO圖
【答案】
- 層次圖:層次圖用于描繪軟件的層次結構,其中一個矩形框代表一個模塊,方框間的連線表示調用關系而不像層次方框圖那樣表示組成關系層次圖很適于在自頂向下設計軟件的過程中使用。通常用層次圖作為描繪軟件結構的文檔
- HIPO圖:HIPO圖本質就是層次圖加編號。也即HIPO圖=層次圖+輸入/處理/輸出圖
9.簡述結構圖
【答案】
10.簡述一般的抽象過程和軟件工程抽象工程
【答案】
11.什么是流圖
【答案】
流圖實質上是“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現對數據具體操作以及分支或循環的具體條件,流圖通常被用來突出表示程序的控制流
12.流圖的符號
【答案】
- 結點:用圓表示,一個圓代表一條或多條語句。一個順序結構可以合并一個結點
- 邊:箭頭線稱為邊,代表控制流。在流圖中一條邊必須終止于-一個結點,即使這個結點并不代表任何語句
- 區域:由邊和結點圍成的面積稱為區域,計算區域時包括圖外部未被圍起來的區域
13.映射為流圖的方法
【答案】
①:對于順序結構,一個順序處理和下一個選擇可以映射為一個結點
②:對于選擇語句,開始/結束語句映射為一個結點,兩條分支至少各映射成一個結點
③:開始語句和結束語句各映射成一個結點
14.簡述確認測試的范圍
【答案】
(以下部分是拓展)
1.如何實現容錯技術?通常采用哪些方法?
【答案】
實現容錯技術主要手段是冗余,有以下四類
- 結構冗余
- 信息冗余
- 時間冗余
- 冗余附加技術
2.為什么要進行軟件評審
【答案】
因為軟件生存期每個階段的工作都有可能引入人為錯誤,如果某一階段的錯誤不及時糾正,就會傳播到開發的后續階段,引出更多錯誤,因此,進行軟件評審是必要的,評審可以揭露軟件中的缺陷然后加以改正
3.談談你對軟件工程學科的認識和看法
所謂軟件工程就是和建造房子一樣的圖紙,為開發軟件提供一種策略,方法,可以設計出更加實用的軟件,通過軟件工程的學習,我們得到一種策略,來溝通軟件過程、實踐、模式等等。對一款軟件從開始到結束的管理,從宏觀到微觀的把控,我們需要做好每個階段,
軟件工程,是應對軟件危機提出的,為生產可復用,易讀,易懂,好測試,好維護的軟件而形成的編程規范。
是把系統的,有序的,可量化的方法應用到軟件的開發,運營和維護上的過程。涉及鄰域包括但不限于:軟件需求分析,軟件設計,軟件構件 ,軟件測試和維護等方面。而且涉及學科較多,計算機科學,計算機 工程,管理學,數學,項目管理學。質量管理,系統工程,用戶體驗設計等。
總之,學好軟件工程這門理論課,還是首先要有大局意識和整體把握。因為整體的把握就是為進一步的開發提供了方向
4.你認為一名合格的軟件工程師應具備哪些素質
【答案】
- 扎實的編碼、編程能力
- 規范意識和團隊精神
- 認識和運用數據庫的能力
- 較強的英語閱讀和寫作能力
- 具有軟件工程的概念
- 求知欲和進取心
5.你認為軟件開發和軟件管理的關系是什么”
軟件項目管理是軟件工程的普適性活動,它先于任何技術活動之前開始,持續貫穿于整個軟件開發的建模,構造和部署之中。優秀的軟件項目管理是開發優秀軟件的必要前提,也是軟件開發必不可少的組成部分。它將人員,產品,過程和項目統籌規劃,能夠有效預防和解決軟件開發中的協調與溝通問題。
二:面向對象設計部分
(1)非常重要
1.什么是面向對象方法學?它有哪些優點?
【答案】
①定義
②:優點
- 與人類思維習慣一致
- 穩定性好
- 可重用性好
- 較易開發大型軟件產品
- 可維護性好
2.什么是“對象”?它與傳統的數據有何異同?
【答案】
- 對象是從客觀世界中的實體抽象而來的,面向對象的軟件系統是由對象組成的,其任何要素都是對象
- 相對于傳統數據結構的靜態被處理,對象既有靜態的屬性,也有動態的行為,是進行處理的主體
3.什么是類
【答案】
- “類”是對具有相同數據和相同操作的一組相似對象的定義,即類是對具有相同屬性和行為的一個或多個對象的描述,包括對怎樣創建該類的新對象的說明。類是支持繼承的抽象數據類型,而對象就是類的實例
4.什么是“繼承”?
- 廣義地說,繼承是指能夠直接獲得已有的性質和特征,而不必重復定義它們。在面向對象的軟件技術中,繼承是子類自動地共享父類中定義的數據和方法的機制
5.什么是模型?開發軟件為何要建模?
【答案】
6.什么是對象模型?建立對象模型時主要使用哪些圖形符號?這些符號的含義是什么?
【答案】
7.什么是動態模型?建立動態模型時主要使用哪些圖形符號?這些符號的含義是什么?
【答案】
8.什么是功能模型?建立功能模型時主要使用哪些圖形符號?
【答案】
9.試對三種模型進行比較
10.簡述面向對分析的3個模型和5個層次
11.簡述建立對象模型、動態模型、功能模型的基本步驟(★★★★★)
建立對象模型
- 確定類與對象
- 確定關聯
- 劃分主題
- 確定屬性
- 識別繼承關系
- 反復修改
建立動態碼模型
- 編寫腳本
- 設想用戶界面
- 畫出事件跟蹤圖
- 畫出狀態圖
- 審查動態模型
12.面向對象分析與面向對象設計有什么關系
13.面向對象設計基本準則
14.簡述面向對象設計的啟發規則
15.簡述軟件重用(★★★★★)
16.簡述類構件
17.關于面向對象程序設計語言的特點(★★★★★)
18.簡述面向對象測試
(2)了解
1.建立對象模型相關概念
2.建立對象模型如何確定類與對象
3.建立對象模型如何確定關聯
4.建立對象模型如何劃分主題
5.建立對象模型如何確定主題
6.建立對象模型如何識別繼承關系
總結
以上是生活随笔為你收集整理的【软件工程导论题型大总结】简答题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Grad-CAM绘画热力图 使用教程 p
- 下一篇: 25.jsp之生成二维码