頻道欄目
首頁 > 資訊 > 其他綜合 > 正文

軟件工程——軟件開發模型

18-03-23        來源:[db:作者]  
收藏   我要投稿

軟件支持過程

1.軟件過程

定義:軟件過程是指軟件生命周期(Life Cycle)中的時間序列,有起始點和終止點。

過程與階段(Phase)有關,階段與里程碑(Milestone)有關。某些重要里程碑上的文檔(通過評審和審計之后)又稱為基線(Baseline)。

軟件工程的支持過程,由支持軟件生命周期各個階段的生產工具所組成。(包括需求分析工具、概要設計工具、詳細設計工具、編程工具、測試工具、維護工具、軟件開發環境、軟件工程環境)

2.CASE工具

CASE是一組工具和方法的集合,可以輔助軟件開發生命周期各階段。

CASE工具主要包括:畫圖工具,報告生成工具,數據詞典、數據庫管理系統和規格說明檢查工具,代碼生成工具和文檔資料生成工具等。

目前CASE的標準是UML。

傳統的軟件生命周期:可行性研究→需求分析→軟件設計→編碼→軟件測試→軟件維護

軟件的管理過程

1.

軟件中的過程,分為“基本過程、支持過程、組織過程”三種。

基本過程:需求、設計、實現、測試、驗收。

支持過程:支持過程開發和過程管理的各種CASE工具。

組織過程:建立有關小組,如軟件工程組、質量保證組、測試組、文檔組。

2.

軟件工程中主要存在的3類過程管理模型:

(1)ISO9000質量管理和質量保證體系

來源于國際標準化組織ISO,按20多個質量要素管理。

(2)CMM過程能力成熟度模型

來源于卡耐基梅隆大學軟件工程研究所,按24個過程域PA,分階段模型和連續模型兩種方式管理,屬于重載過程管理。

(3)企業文化(微軟企業文化、敏捷文化現象、IBM企業文化等)

屬于輕載過程管理。

軟件生命周期與開發模型

軟件的生命周期與選擇的開發模型有關,不同的開發模型,對應不同的生命周期。

軟件生命周期模型能清晰、直觀地表達軟件開發全過程,是軟件開發過程應遵循的開發路線圖。

1.瀑布模型

瀑布模型(Waterfall Model)又稱流水式過程模型。

在瀑布模型中,軟件開發的各項活動嚴格按照線性方式進行。當前階段的活動接受上一階段活動的工作結果,實施完成所需的工作內容。

適用范圍:

早期的面向過程的結構化分析、結構化設計、結構化編程、結構化測試、結構化維護方法,很適合于瀑布模型;蛘哒f,瀑布模型適合于結構化方法,即面向過程的軟件開發方法。

特點:

里程碑或基線驅動,或者說文檔驅動。

過程逆轉性很差或者說不可逆轉,逆轉將會延誤工期,增加成本,造成重大損失。

選擇模型的條件:

不是任何軟件都可以采用瀑布模型的,軟件項目或產品選擇瀑布模型,必須滿足下列條件:

(1)在開發時間內需求沒有或很少變化。

(2)分析設計人員對應用領域很熟悉。

(3)低風險項目(對目標、環境很熟悉)。

(4)用戶使用環境很穩定。

(5)用戶除提出需求以外,很少參與開發工作。

盡管上述條件比較苛刻,但是,軟件企業在開發新產品或新項目時,往往還是采用瀑布模型。系統軟件和工具軟件的開發,也常常采用瀑布模型。

模型的優點:

開發階段清晰,便于評審、審計、跟蹤、管理和控制。

2.增量模型

增量模型(Incremental Model)是遵循遞增方式來進行軟件開發的。

軟件產品被作為一組增量構件(模塊),每次需求分析、設計、實現、集成、測試和交付一塊構件,直到所有構件全部實現為止。

模型的本意:

要開發一個大的軟件系統,先開發其中的一個核心模塊(或子系統),然后再開發其他模塊(或子系統),這樣一個個模塊(或子系統)地增加上去,就像搭積木一樣,直至整個系統開發完畢為止。

在每增加一個模塊前,先要對該模塊進行模塊測試。通過后再將此模塊加入到系統中,然后還要進行系統集成測試。系統集成測試成功后,再增加新的模塊。

這樣多次循環,直到系統搭建完畢為止。

模型的特點:

任務或功能模塊驅動,可以分階段提交產品。有多個任務單,這些多個任務單的集合,構成項目的一個總《任務書》,或總《用戶需求報告》/《需求規格說明書》。

選擇模型的條件:

(1)在整個項目開發過程中,需求都可能發生變化,客戶接受分階段交付。

(2)分析設計人員對應用領域不熟悉,難以一步到位。

(3)中等或高風險項目(工期過緊且可分階段提交的系統或目標、環境不熟悉)。

(4)用戶可參與到整個軟件開發過程中。

(5)使用面向對象語言或第四代語言。

(6)軟件公司自己有較好的類庫、構件庫。

模型的優點:

(1)由于將一個大系統分解為多個小系統,這就等于將一個大風險分解為多個小風險,從而降低了開發難度。

(2)人員分配靈活,剛開始不用投入大量人力資源。如果核心模塊產品很受歡迎,則可增加人力實現下一個增量。當配備的人員不能在設定的期限內完成產品時,它提供了一種先推出核心產品的途徑。即可先發布部分模塊給客戶,對客戶起到鎮靜劑的 作用。

模型的缺點:

如果軟件系統的組裝和拆卸性不強,或開發人員全局把握水平不高(沒有數據庫設計專家進行系統集成),或者客戶不同意分階段提交產品,或者開發人員過剩,就不宜采用這種模型。

3.原型模型

原型模型(Prototype Model)的本意是:在初步需求分析之后,馬上向客戶展示一個軟件產品原型(樣品),對客戶進行培訓,讓客戶試用,在試用中收集客戶意見,根據客戶意見立刻修改原型,之后再讓客戶試用,反復循環幾次,直到客戶確認為止。

原型模型很適合于企業資源規劃ERP(Enterprise Resource Planning)系統。

模型的特點:

原型驅動。開發者必須先有一個原型(樣品),至少要有一個原型的核心。
原型模型與迭代模型相同點是:反復循環幾次,直到客戶確認為止。不同點是:原型模型事先有一個展示性的產品原型(樣品),而迭代模型可能沒有。

選擇模型的條件:

(1)已有產品或產品的原型(樣品),只需客戶化的工程項目。

(2)簡單而熟悉的行業或領域。

(3)有快速原型開發工具。

(4)進行產品移植或升級

由于上述條件不太苛刻,所以凡是有軟件產品的IT企業,在他們熟悉的業務領域內,當客戶招標時,他們都會以原型模型作為軟件開發模型,去制作投標書,去講解投標。

模型的優點:

開發速度快,用戶意見反饋實時,有利于開發商在短時間內推廣并實施多個客戶

模型的缺點:

因為事先有一個展示性的產品原型,所以在一定程度上,不利于開發人員的創新。

快速原型法:

由于原型模型的開發速度較快,有時也將它稱作快速原型法(Rapid Prototyping)。

在開發工具和開發環境迅速發展的今天,在信息系統開發中,原型法和快速原型法又被賦予新的內容:事先沒有原型產品,也可以采取這種辦法。

基本思路是:采用以面向元數據為主的方法,在需求分析的基礎上,利用Power Designer等數據庫分析和設計工具,快速建立信息系統的概念數據模型CDM和物理數據模型PDM;然后利用面向對象的編程工具,快速地實現需求分析中確認的流程、功能、性能和接口;之后交付給用戶試用,反復循環幾次,直到客戶確認滿意為止。

快速原型法選擇的條件之一是:項目組中有數據庫分析和設計的專家,有面向對象編程的專家,文檔制作有成熟的模板,而且系統或項目又不是非常大。

快速原型法選擇的條件之二是:項目組的開發環境為分行業的業務基礎平臺(例如用友業務基礎平臺),該業務基礎平臺又完全適合所需開發的系統或項目,而且系統或項目又不是非常大。

4.迭代模型

針對瀑布模型的缺陷,人們提出了迭代模型(Iterative Model)。

所謂迭代,是指活動的多次重復。從這個意義上講,原型不斷完善和增量不斷產生,都是迭代的過程。但這里所講的迭代模型是RUP推出的一種“逐步求精”的面向對象的軟件開發過程模型,被認為軟件界迄今為止最完善的、商品化的開發過程模型。

模型的特點:

迭代或迭代循環驅動,每一次迭代或迭代循環,均要走完初始(先啟)、精化、構建、產品化(移交)這四個階段。RUP的主要特征如下:

采用迭代的、增量式的開發過程;采用UML語言描述軟件開發過程;有功能強大的軟件工具Rational Rose支撐。

面向對象的方法,尤其是面向對象的CASE工具Rational Rose,適合于迭代模型。

模型的選取條件:

(1)生命周期模型是以迭代為主要特征的。項目組的管理人員和核心成員,應對迭代的開發方式比較熟悉。

(2)管理人員和核心成員應對軟件工程的核心過程:系統建模、需求分析、系統設計、系統實現、項目管理、配置管理、測試等比較熟悉。

(3) 采用面向對象技術(如OOA,OOD等)的項目組,建議使用迭代式生命周期。

(4)項目組的核心設計人員,應具備一定程度的軟件架構的知識,并熟練掌握軟件架構設計技能。

(5)項目組全體成員應熟悉UML,并能利用建模工具(如Rational Rose等)進行分析、策劃、設計、測試等。

(6)項目組的管理人員應具備風險管理的知識和技能。

(7)擁有實施軟件產品開發、組裝的軟件組織。

模型的優點:

在開發早期或中期,用戶需求可以變化;在迭代之初,它不要求有一個相近的產品原型;模型的適用范圍很廣,幾乎適用于所有的項目開發。

模型的缺點:

傳統的項目組織方法是按順序(一次且僅一次)完成每個工作流程,即瀑布式生命周期。迭代模型是采取循環的工作方式,每次循環均使工作產品更靠近目標產品一次,這就要求項目組成員具有很高的水平并掌握先進的開發工具。

5.螺旋模型

螺旋模型基本做法是在瀑布模型的每一個開發階段前,引入一個非常嚴格的風險識別、風險分析和風險控制,它把軟件項目分解成一個個小項目。每個小項目都標識一個或多個主要風險,直到所有的主要風險因素都被確定。

螺旋模型沿著螺線順時針方向進行若干次迭代,圖中的四個象限代表了以下迭代活動:

(1)制定計劃:確定軟件目標,選定實施方案,弄清項目開發的限制條件;

(2)風險分析:分析評估所選方案,考慮如何識別和消除風險;

(3)實施開發:實施軟件開發和驗證;

(4)客戶評估:評價開發工作,提出修正建議

模型的特點:

(1)把軟件開發過程組成為一個逐步細化的螺旋周期,每經歷一個周期,系統就得到進一步的細化和完善;

(2)整個模型緊密圍繞開發中的風險分析,推動軟件設計向深層擴展和求精;

(3)強調持續的判斷、確定和修改用戶的任務目標,并按成本、效益來分析候選的軟件產品對任務目標的貢獻。

選擇模型的條件:

螺旋模型強調風險分析,使得開發人員和用戶對每個演化層出現的風險有所了解,繼而做出應有的反應,因此特別適用于龐大、復雜并具有高風險的系統。

對于這些系統,風險是軟件開發不可忽視且潛在的不利因素,它可能在不同程度上損害軟件開發過程,影響軟件產品的質量。

減小軟件風險的目標是在造成危害之前,及時對風險進行識別及分析,決定采取何種對策,進而消除或減少風險的損害。 模型的優點:

(1)與瀑布模型相比,螺旋模型支持用戶需求的動態變化,為用戶參與軟件開發的所有關鍵決策提供了方便,從而降低了軟件開發風險。

(2)螺旋模型對可選方案和約束條件的強調,有利于已有軟件的重用,也有助于把軟件質量作為軟件開發的一個重要目標。

(3)減少了過多測試(浪費資金)或測試不足(產品故障多)所帶來的風險。

(4)螺旋模型中維護只是模型的另一個周期,在維護和開發之間并沒有本質區別。

模型的缺點:

(1)很難讓用戶確信這種演化方法的結果是可以控制的。由于建設周期長,而軟件技術發展比較快,所以經常出現軟件開發完畢后,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。

(2)采用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的項目開發中,如果未能夠及時標識風險,勢必造成重大損失。

(3)過多的迭代次數會增加開發成本,延遲提交時間

相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片