習題二
一、判斷題
- 瀑布模型的最大優點是將軟件開發的各個階段划分得十分清晰。 (F)
- 原型化開發方法包括生成原型和實現原型兩個步驟。 (F)
- 軟件過程改進也是軟件工程的范疇。 (T)
- 在軟件開發中采用原型西永策略的主要困難時成本問題。 (F)
二、選擇題
- 軟件生命周期模型不包括(B)。
A. 瀑布模型 B. 用例模型 C. 增量模型 D. 螺旋模型 - 包含風險分析的軟件工程模型是(D)。
A. 噴泉模型 B. 瀑布模型 C. 增量模型 D. 螺旋模型 - 軟件過程是(C)。
A. 特定的開發模型 B. 一種軟件求解的計算邏輯 C. 軟件開發活動的集合 D. 軟件生命周期模型 - 軟件工程中描述生命周期的瀑布模型一般包括計划、需求分析、設計、編碼、(D)、維護等幾個階段。
A. 產品發布 B. 版本更新 C. 可行性分析 D. 測試 - 軟件開發的瀑布模型,一般都將開發過程划分為:分析、設計、編碼和測試等階段,一般認為可能占用人員最多的階段是(C)。
A. 分析階段 B. 設計階段 C. 編碼階段 D. 測試階段 - 增量模型本質是一種(C)。
A. 線性順序模型 B. 整體開發模型 C. 非整體開發模型 D. 螺旋模型 - 螺旋模型綜合了(B)的有點,並增加了風險分析。
A. 增量模型和噴泉模型 B. 瀑布模型和演化模型 C. 演化模型和噴泉模型 D. 原型模型和噴泉模型 - CMM模型將軟件過程的成熟度分為5個等級。在(B)使用定量分析來不斷地改進和管理軟件過程。
A. 管理級 B. 優化級 C. 定義級 D.可重復級
三、簡答題
- 如何理解軟件生命周期的內在特征?
軟件產品的生命周期是指從設計該產品的構想開始,到軟件需求的確定、軟件設計、軟件實現、產品測試與驗收、投入使用以及產品版本的不斷更新,再到最終改產品被市場淘汰的全過程。軟件生命周期這個概念從市價的角度講軟件的開發和維護的復雜過程分解為了若干個階段,每個階段都完成特定的相對獨立的任務。由於每個階段的任務相對於總任務難度會大幅度降低,因此在資源分配、時間把握和項目管理上都會比較容易控制。應該合理地划分軟件生命周期的各個階段,使各個階段之間既相互區別又相互聯系,為每個階段賦予特定的任務。 - 對比瀑布模型、原型模型、增量模型和螺旋模型。
瀑布模型:主要體現了分階段、有控制的思想。活動間強調按順序、文檔化;存在的問題是過於理想化,每一步的工作必須完整准確,否則無法進行下一步工作。
原型模型:需求分析入手快速、表達直觀、容易交流。重點解決瀑布模型的需求分析入手難的問題。
增量模型:對於需求復雜的系統,采用分塊開發、逐步集成的開發策略。增量體現了演進、迭代思想,每一塊就是一個增量。每個增量是一次迭代。增量模型的新版本叫做“極限編程(XP)”。
螺旋模型:融合了上述3種模型,融進了循環往復、強化了演進迭代的思想,增加了風險控制環節。但是,風險分析的正確性是左右軟件眼鏡的關鍵因素。 - 當需求不能一次搞清楚,且系統需求比較復雜時應選用哪種開發模型比較適合?
開發模型不是孤立或排斥的,它們之間需要相互借鑒和參考。螺旋模型是一種綜合性的模型,適合於較復雜的系統。 - RUP包含了哪些核心工作流和哪些核心支持工作流?
RUP建立了對軟件過程普遍適用的理論指導框架,是典型的軟件開發過程。它包括直接參與軟件產品構造的核心工作流和若干屬於項目管理范疇的支持工作流。
核心工作流包括:業務建模、需求、分析與設計、實現、測試、部署。
支持工作流包括:配置與變更管理、項目管理、環境。 - XP是一種什么樣的模型?
XP是現代版的增量模型,特點是客戶參與、適應變化、測試驅動、以代碼為核心。實行XP的條件如下。
企業具體較高的能力成熟度,具有團隊開發環境和配套的測試工具。
軟件結構是開放的,增量可隨意整合。
開發團隊擁有“系統隱喻”。 - 每個軟件企業遵循的軟件開發過程都是一樣的嗎?
任何軟件過程只是給軟件開發組織的一個參考,並非清規戒律。企業規划軟件過程要適合企業的實際情況,並且不用一成不變,要隨着企業的法杖、環境的變化和項目的性質來改進軟件過程。RIP就是一個可裁剪的軟件過程模板。 - 請簡述軟件工程。
軟件過程就是軟件產品的加工過程,其本質就是將“客觀世界”映射(虛擬)到“計算機世界”,即從抽象到具體的逐步細化過程。系統分析就是對客觀世界的抽象,中間要經過分析模型、設計模型的逐步細化(具體化),最終的具體結果就是計算機世界里的代碼。 - 敏捷方法的核心價值觀有那些?它對傳統方法的“反叛”體現在哪些方面?
敏捷思想的核心價值觀大體包括以下幾個方面。
注重個人與交互。
重點關注可以工作的軟件。
提高客戶參與程度。
以積極的心態響應需求變化。
敏捷聯盟強調的價值觀是這一流派的核心。人是受價值觀驅使的,敏捷項目管理因而也是以價值觀為推動力的。一個團隊可以采用敏捷做法,但如果它不接受敏捷價值觀,它將不能得到敏捷方法的潛在好處。
敏捷方法對傳統方法的“反叛”體現在以人為中心,不再依靠文檔來控制過程,認為傳統過程過於僵化、文檔繁煩,主張對傳統過程瘦身,在上述價值觀的支配下,做到夠用為准。 - 請簡述CMM的作用。
CMM是評價軟件組織開發能力(水平)的參考模型,是一種認證標准,認可軟件工程達到的程度(如同評定職稱的條件)。
CMM是軟件組織提升自身能力、走向成熟的參照系。它提供了走向成熟的階梯目標,但並不提供走向目標的方法。
CMM等級的提高依靠軟件過程改進。
CMM既是評估軟件能力成熟度的模型,也起到了促進軟件企業按照該模型設置的級別和關鍵過程域不斷改進自己的軟件過程的作用。 - 請簡述CMM軟件過程成熟度的5個級別,以及每個級別對應的標准。
5個等級如下。
1. 初始級的軟件過程是無秩序的,它幾乎處於無步驟可循的狀態。管理是隨機的,軟件產品的成功往往取決於個人。
2. 在可重復級,已建立了基本的項目管理過程,對成本、進度和功能特性進行跟蹤,並且在借鑒以往經驗。所有項目均使用經過批准、裁剪的標准軟件過程來開發和維護軟件。
3. 在已定義級,用於管理和工程兩個方面的過程均已文檔化、標准化,並形成了整個軟件組織的標准軟件過程。所有項目均使用經過批注、裁剪的標准軟件過程來開發和維護軟件。
4. 已管理級的軟件過程和產品質量有詳細的度量標准並且得到了定量的認證和控制。
5. 優化級的軟件過程可以通過量化反饋和先進的新思想、新技術來不斷地、持續性地改進。 - 假設你要開發一個軟件,它的功能是把73624.9385這個數開平方,所得到的結果應該精確到小數點后4位。一旦實現並測試完之后,該產品將被拋棄。你打算選用哪種軟件生命周期模型?請說明你做出這樣選擇的理由。
對這個軟件的需求很明確,事項開平方功能的算法也很成熟。因此,既無須通過原型模型來分析需求也無須用原型模型來驗證設計方案。此外,一旦實現並測試完之后,該產品將被拋棄,因此也無須使用有助於提高軟件可維護性的增量模型或螺旋模型來開發該軟件。
綜上所述,為了開發這個簡單的軟件,使用大多數人所熟悉的瀑布模型就可以了。
項目不能預先確切定義需求,項目組成員(業務員、開發人員、用戶等)不能很好的交流或者通信。 |
快速原型模型 |
項目可能隨時加入各種信息、需求與資料。各個開發階段沒有特定的次序,並且可以交互進行,可以在某個開發階段中隨時補充其他任何開發階段中的遺漏。 | 噴泉模型 |
在開發時間內需求變化很少; |
瀑布模型 |
公司接到了一個龐大且復雜,非常高分享的項目,建設周期預計較長,資金充足。 | 螺旋模型 |
所在公司是“行業軟件提供商”,擁有各個地域的行業解決軟件方案,新接的項目與去年某個項目類似。新項目的客戶對此項目需求較為含糊。 |
快速原型模型 |
開發字處理軟件項目:客戶需求可能發生變化,要求每個階段都能看到成品效果;主要包括核心的文件管理、編輯和文檔生成功能,完善的編輯和文檔生成功能,拼寫和文法檢查功能,高級頁面布局功能。 | 增量模型 |
軟件出於“跑馬圈地”階段,需要短時間內推廣,盡快搶占市場,根據市場反應及用戶體驗完善功能、優化流程等。 | 敏捷模型 |
你要開發一個軟件,功能是把1234.3339開平方,所得結果精確到小數點后4位,實現並測試完后,產品將被拋棄。 | 瀑布模型 |