软件工程环形复杂度计算方法有哪些_软件工程复习6165组考题
黑色字體為原本答案,藍色字體修改補充了
復習題組「61-65/61-65/13/13」
一、名詞解釋
61.確認測試
檢查已實現的軟件是否滿足了需求規格說明中所確定的各種需求,以及軟件配置是否完全、正確。(過程:功能性測試---軟件配置復查---驗收測試----α測試和β測試)
(補充)確認測試也稱為驗收測試,它的目標是驗證軟件的有效性。
通常,驗證指的是保證軟件正確地實現了某個特定要求的一系列活動;確認指的是為了保證軟件確實滿足了用戶需求而進行的一系列活動。
62.過程模式(未找到答案)
所謂軟件過程模型就是一種開發策略,這種策略針對軟件工程的各個階段提供了一套范形,使工程的進展達到預期的目的。對一個軟件的開發無論其大小,我們都需要選擇一個合適的軟件過程模型,這種選擇基于項目和應用的性質、采用的方法、需要的控制,以及要交付的產品的特點。一個錯誤模型的選擇,將迷失我們的開發方向。
63.RMMM計劃(Risk Mitigation, Monitoring and Management Plan)
翻譯為:風險緩解,監測和管理計劃,又稱軟件項目風險管理,是軟件項目管理的重要內容。在進行軟件項目風險管理時,要辯識風險,評估它們出現的概率及產生的影響,然后建立一個規劃來管理風險。風險管理的主要目標是預防風險。
軟件項目風險是指在軟件開發過程中遇到的預算和進度等方面的問題以及這些問題對軟件項目的影響。軟件項目風險會影響項目計劃的實現,如果項目風險變成現實,就有可能影響項目的進度,增加項目的成本,甚至使軟件項目不能實現。
風險管理策略可以包含在軟件項目計劃中,或者風險管理步驟也可以組織成一個獨立的風險緩解、監控和管理計劃(RMMM計劃)。RMMM計劃將所有風險分析文檔化,并由項目管理者作為整個項目計劃中的一部分來使用。
64.耦合
耦合是模塊之間的相對獨立性(互相連接的緊密程度)的度量。
65.多態性
同一操作作用于不同的類的實例,將產生不同的執行結果,即不同類的對象收到相同的消息時,得到不同的結果。對象根據所接受的消息而做出動作,同樣的消息被不同的對象接收時可能導致完全不同的行為,這種現象稱為多態性。
(補充)在面向對象的設計中,多態主要體現在向不同的對象發送同一個信息,不同的對象在接收時會產生不同的行為(即方法),對像可以用自己的方法去響應共同的信息。(?多態:在同一個時刻,體現出來的不同狀態)
二、簡答題
61.簡述模型在軟件開發中的作用。
軟件開發是一個復雜的過程,建立模型可降低復雜度.
建立模型可以使開發者有效地交流.
軟件開發模型能清晰、直觀地表達軟件開發全過程,明確規定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。
62.軟件維護有哪些特點?
1、結構化維護與非結構化維護差別巨大
2、維護的代價高昂
3、維護的問題很多
下面列出和軟件維護有關的部分問題:
(1)理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。如果僅有程序代碼沒有說明文檔,則會出現嚴重的問題。
(2)需要維護的軟件往往沒有合格的文檔,或者文檔資料顯著不足。認識到軟件必須有文檔僅僅是第一步,容易理解的并且和程序代碼完全一致的文檔才真正有價值。
(3)當要求對軟件進行維護時,不能指望由開發人員給我們仔細說明軟件。由于維護階段持續的時間很長,因此,當需要解釋軟件時,往往原來寫程序的人已經不在附近了。
(4)絕大多數軟件在設計時沒有考慮將來的修改。除非使用強調模塊獨立原理的設計方法學,否則修改軟件既困難又容易發生差錯。
(5)軟件維護不是一項吸引人的工作。形成這種觀念很大程度上是因為維護工作經常遭受挫折。
上述種種問題在現有的沒采用軟件工程思想開發出來的軟件中,都或多或少地存在著。不應該把一種科學的方法學看做萬應靈藥,但是,軟件工程至少部分地解決了與維護有關的每一個問題。
63.模塊化的三個重要特征是什么,闡明各自的作用。
1.相對獨立性,可以對模塊單獨進行設計、制造、調試、修改和存儲,這便于由不同的專業化企業分別進行生產;
2.互換性,模塊接口部位的結構、尺寸和參數標準化,容易實現模塊間的互換,從而使模塊滿足更大數量的不同產品的需要;
3.通用性,有利于實現橫系列、縱系列產品間的模塊的通用,實現跨系列產品間的模塊的通用。
64.單元測試時,為什么需要開發驅動模塊和樁模塊?
這是因為在開發設計的初級階段,完成一個單元的開發任務后,這個單元相關聯上面、下面的模塊尚未開發出來,為了要測試所開發單元,所以要驅動模塊和樁模塊
在底層進行的測試叫做單元測試,也叫做模塊測試。
驅動模塊:
驅動模塊是用來模擬被測模塊的上一級模塊,相當于被測模塊的主程序。它接收數據并將相關數據傳送給被測模塊,啟用被測模塊并打印出相應結果。驅動模塊的目的很單純,就是訪問類庫的屬性和方法來確定類庫是否正確。
樁模塊:
樁模塊是模擬被測試模塊所調用的模塊,而不是軟件產品的組成部分。主程序作為驅動模塊,與之直接相連的模塊是樁模塊,也稱為“替身模塊”。樁模塊本身不執行任何功能,只在它作為替身被調用時返回靜態值。
65.什么是Use Cases Model,主要作用是什么?
是系統既定功能及系統環境的模型
用例模型最重要的作用是將系統行為傳達給客戶或最終用戶。
用例(Use Case)是一種描述系統需求的方法,使用用例的方法來描述系統需求的過程就是用例建模。
使用用例的方法來描述系統的功能需求的過程就是用例建模,用例模型主要包括以下兩部分內容:
用例圖(Use Case Diagram)
確定系統中所包含的參與者、用例和兩者之間的對應關系,用例圖描述的是關于系統功能的一個概述。
用例規約(Use Case Specification)
針對每一個用例都應該有一個用例規約文檔與之相對應,該文檔描述用例的細節內容、
用例模型的作用
首先,用例模型是一種標準的語言,很容易成為開發人員之間交流和溝通的媒介,用例模型可以精確地定義軟件需求,出現歧義的可能性很小,這可以保證用戶和開發人員對需求理解的一致性
其次,用例模型可以成為我們評估壓法工作量的一個標準,特別是對于迭代式開發言。迭代式開發模型里,通常依據用例模型來劃分軟件的開發周期:優先級別高的用例會在早期的迭代周期中實現,而優先級別低的用例則被安排在后續的迭代周期中完成。可以通過限制每個迭代周期中的用例個數來保證迭代周期長度的合理性
再次,用例模型在整個開發過程中都扮演著非常重要的角色,它可以驅動軟件的分析和設計逐步細化
最后,測試過程中使用的測試用例-----特別是那些關注軟件功能的測試用例---往往也是根據用例模型來確定的
三、論述題
13.討論不同軟件過程模型與軟件開發的關系
常見的過程模型有瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型等。
軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。通常使用生命周期模型簡潔地描述軟件過程。生命周期模型規定了把生命周期劃分成哪些階段及各個階段的執行順序,因此,也稱為過程模型。常見的過程模型有瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型等。
1.瀑布模型
這個特點有兩重含義:
1.必須等前一階段的工作完成之后,才能開始后一階段的工作;
2.前一階段的輸出文檔就是后一階段的輸入文檔,因此,只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結果。
瀑布模型每個階段都應堅持兩個重要做法:
1.每個階段都必須完成規定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務。完整、準確的合格文檔是軟件開發時期各類人員之間相互通信的媒介,也是運行時期對軟件進行維護的重要依據。
2.每個階段結束前都要對所完成的文檔進行評審,以便遲早發現問題,改正錯誤。事實上越是早期階段犯下的錯誤,暴露出來的時間就越晚,排除故障改正錯誤所需付出的代價也越高。因此,及時審查,是保證軟件質量,降低軟件成本的重要措施。
可以說瀑布模型是由文檔驅動的。這個事實也是它的一個缺點,在可運行的軟件產品交付給用戶之前,用戶只能通過文檔來了解產品是什么樣的。瀑布模型歷史悠久、廣為人知的,它的優勢在于它是規范的、文檔驅動的方法;這種模型的問題是,最終開發出的產品可能并不是用戶真正需要的。
(1)傳統的瀑布模型:(2)實際的瀑布模型:
2.快速原型模型
所謂快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產品能完成的功能的一個子集。快速原型的本質是“快速”,開發人員應該盡可能快地建造出原型系統,以加速軟件開發過程,節約軟件開發成本。原型的用作是獲知用戶的真正需求,一旦需求確定了,原型系統將被拋棄。
快速原型模型正是為了克服瀑布模型的缺點而提出來的。它通過快速構建一個可在計算機上運行的原型系統,讓用戶試用原型系統并收集用戶反饋意見的辦法,獲取用戶的真實需求。
3.增量模型
增量模型也稱為漸增模型,使用增量模型開發軟件時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。每個構件由多個相互作用的模塊構成,并且能夠完成特定的功能。使用增量模型時,第一個增量構件往往實現軟件的基本需求,提供最核心的功能。
優點:
1.能在較短的時間內向用戶提交可完成部分工作的產品。
2.逐步增加產品功能可以使用戶有充裕的時間學習和適應新產品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。
增量模型具有可在軟件開發的早期階段使投資獲得明顯回報和較易維護的優點,但是,要求軟件具有開放的結構是使用這種模型時固有的困難。?
4.螺旋模型
螺旋模型的基本思想就是,使用原型及其他方法來盡量降低風險。理解這種模型的一個簡便方法,是把它看作每個階段之前都增加了風險分析過程的快速原型模型。
螺旋模型主要適用于內部開發的大規模軟件項目。如果進行風險分析的費用接近整個項目的經費預算,則風險分析是不可行的。事實上項目越大,風險也越大,因此進行風險分析的必要性也越大。此外只有內部開發的項目,才能在風險過大時方便中止項目。
螺旋模型的主要優勢在于,它是風險驅動,但是,這也可能是它的一個弱點。除非軟件開發人員具有豐富的風險評估經驗和這方面的專門知識,否則將出現真正的風險:當項目實際上正在走向災難時,開發人員可能還認為一切正常。
風險驅動的螺旋模型適用于內部開發的大型軟件項目,但是,只有在開發人員具有風險分析和排除風險的經驗及專門知識時,使用這種模型才會獲得成功。
(1)簡化的螺旋模型 (2)完整的螺旋模型
4.噴泉模型
噴泉模型對軟件復用和生存周期中多項開發活動的集成提供了支持,以面向對象的軟件開發方法為基礎,它適合面向對象的開發方法。它克服了瀑布模型不支持軟件重用和多項開發活動集成的局限性。噴泉模型使開發過程具有迭代性和無間隙性。系統某個部分常常重復工作多次,相關功能在每次迭代中隨之加入演化的系統。無間隙是指在分析、設計和實現等開發活動之間不存在明顯的邊界。
按照在軟件生命周期過程中應完成的任務的性質,在概念上可以把軟件生命周期劃分成定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試以及運行維護等8個階段。實際從事軟件開發工作時,軟件規模、種類、開發環境及使用的技術方法等因素,都影響各階段的劃分。
軟件過程是為了獲得高質量的軟件產品所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。由于沒有適用所有軟件項目的任務集合,科學、有效的軟件過程應該定義一組適合所承擔的項目特點的任務集合。通常使用軟件過程模型簡潔地描述軟件過程,它規定了把軟件生命周期劃分成的階段及各個階段的順序。
四、應用題
13.下列是一段偽碼程序:
START
???INPUT (A,B,C)
???IF A>5 ?
THEN ?X=10
ELSE X=1
ENDIF
IF B>10
??THEN Y=20
??ELSE Y=2
ENDIF
IF C<15
??THEN Z=30
??ELSE Z=3
ENDIF
PRINT(X,Y,Z)
STOP
問題:(1)畫出控制流程圖(10分)
(2)采用基本路徑測試,給出獨立的路徑(10分)
(3)寫出路徑覆蓋用例(10分)
總結
以上是生活随笔為你收集整理的软件工程环形复杂度计算方法有哪些_软件工程复习6165组考题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux apache certbot
- 下一篇: 计算机网络最短路径路由选择,最短路径算法