




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、太原理工 大學(xué)計(jì)算機(jī)學(xué)院2009年7月1.11.1軟件概述軟件概述1.2軟件危機(jī)軟件危機(jī)1.3軟件工程軟件工程1.51.5軟件過(guò)程軟件過(guò)程1.4軟件生命周期軟件生命周期軟件是程序、數(shù)據(jù)和相關(guān)文檔的完整集合。軟件定義由以下三部分組成:1.程序是按照設(shè)計(jì)文檔的功能和性能要求所編寫(xiě)的指令序列,是執(zhí)行部分;2.數(shù)據(jù)是使程序能夠正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu)和所需的信息;3.文檔是為了程序開(kāi)發(fā)而形成的圖文資料,是不可執(zhí)行部分。1.1.1軟件及其特點(diǎn) 1.1軟件概述軟件的特點(diǎn):1.軟件具有抽象特征。軟件是一中邏輯實(shí)體,而不是具體的物理實(shí)體,“不可見(jiàn)”。2.軟件開(kāi)發(fā)沒(méi)有明顯的制造過(guò)程,3.軟件無(wú)備件特征。4.軟件對(duì)計(jì)算
2、機(jī)系統(tǒng)有不同程度的依賴(lài)性5. 自從第一臺(tái)計(jì)算機(jī)誕生以來(lái),就開(kāi)始了軟件的生產(chǎn),到目前為 止,軟件發(fā)展經(jīng)歷了三個(gè)階段: 1.1.2軟件 的發(fā)展:20世紀(jì)50-60年代,采用“個(gè)體生產(chǎn)方式”,人們認(rèn)為軟件就是程序,沒(méi)有相關(guān)的文檔資料。 :20世紀(jì)60-70年代是計(jì)算機(jī)系統(tǒng)發(fā)展的第二階段,出現(xiàn)了“軟件作坊”,軟件質(zhì)量低下,可靠性差,可維護(hù)性差,卻價(jià)格昂貴,供不應(yīng)求。在該階段的后期,于是出現(xiàn)了“軟件危機(jī)”。 70年代至今20世紀(jì)60-70年代是計(jì)算機(jī)系統(tǒng)發(fā)展的第三階段.為了克服軟件危機(jī),1968年北大西洋公約組織的專(zhuān)家們?cè)诼?lián)邦德國(guó)召開(kāi)國(guó)際會(huì)議,在這次會(huì)上正式提出并使用了“軟件工程”這個(gè)名詞。這階段主要采
3、用“工程化的生產(chǎn)方式”。 軟件過(guò)程提出至今,它的發(fā)展已經(jīng)經(jīng)歷了4個(gè)階段: 1.第一代軟件工程(20世紀(jì)60年代到70年代) 軟件生產(chǎn)采用“生產(chǎn)作坊方式“,在該階段的后期,出現(xiàn)了“軟件危機(jī)”。為了克服軟件危機(jī),在著名的NATO軟件可靠性會(huì)議上提出了軟件工程這一名詞。 2. 第二代軟件工程(20世紀(jì)80年代中期到90年代)在80年代中期開(kāi)始,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言相繼推出,面向?qū)ο蟮姆椒ê图夹g(shù)得到發(fā)展,到了90年代,研究的重點(diǎn)從程序設(shè)計(jì)語(yǔ)言逐漸轉(zhuǎn)移到面向?qū)ο蟮姆治龊驮O(shè)計(jì),演化為一種完整的軟件開(kāi)發(fā)方法和系統(tǒng)技術(shù)體系,面向?qū)ο蟮姆椒ǔ蔀檐浖_(kāi)發(fā)的主流,所以這一階段又稱(chēng)為對(duì)象工程。 3.第三代軟件工程
4、隨著規(guī)模的不斷增大,開(kāi)發(fā)人員的增多,開(kāi)發(fā)時(shí)間相應(yīng)持續(xù)增長(zhǎng),加上軟件是知識(shí)密集型的邏輯思維產(chǎn)品,這些都增加了軟件工程的管理難度,人們?cè)谲浖_(kāi)發(fā)的實(shí)踐中認(rèn)識(shí)到:提高軟件生產(chǎn)率、保證軟件質(zhì)量的關(guān)鍵是“軟件過(guò)程“的控制和管理,提出了對(duì)軟件項(xiàng)目管理的計(jì)劃、組織、成本估算、質(zhì)量保證、軟件配置等技術(shù)和策略,逐步形成了軟件過(guò)程工程。 4.第四代軟件工程 90年代起,基于構(gòu)件的開(kāi)發(fā)方法取得了重要的進(jìn)展,軟件系統(tǒng)的開(kāi)發(fā)可通過(guò)使用現(xiàn)存的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭構(gòu)造,從而達(dá)到提高效率和質(zhì)量、降低成本的目的,稱(chēng)為構(gòu)件工程。 軟件危機(jī)的表現(xiàn) 開(kāi)發(fā)成本難以控制,進(jìn)度不可預(yù)計(jì); 產(chǎn)品不符合用戶(hù)的實(shí)際需要 ; 軟件產(chǎn)品的
5、質(zhì)量不保證,可靠性差.用戶(hù)難以滿(mǎn)意; 軟件的可維護(hù)性差 ; 軟件開(kāi)發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應(yīng)求 ; 軟件缺少合格的文檔資料 ; 軟件產(chǎn)品成本十分昂貴。軟件危機(jī)的定義:軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題與矛盾。軟件危機(jī)包括下述兩個(gè)方面:1.如何開(kāi)發(fā)軟件,以滿(mǎn)足社會(huì)對(duì)軟件日益增長(zhǎng)的需要。2.如何更有效地維護(hù)數(shù)量不斷增長(zhǎng)的已有軟件。 1.21.2軟件危機(jī)軟件危機(jī)1.2.1軟件危機(jī)及其表現(xiàn)客觀原因客觀原因: (軟件本身的特點(diǎn)軟件本身的特點(diǎn)) - 軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,具有高度的抽象性; - 軟件是一個(gè)邏輯上復(fù)雜而規(guī)模上龐大的系統(tǒng),涉及技術(shù)、管理等多方
6、面的問(wèn)題; - 軟件的生產(chǎn)方式與硬件明顯不同,軟件開(kāi)發(fā)沒(méi)有明顯的制造過(guò)程 。 - 軟件的運(yùn)行和維護(hù)階段,沒(méi)有傳統(tǒng)意義上的機(jī)械磨損、老化問(wèn)題。 - 軟件與硬件有關(guān),對(duì)軟件有可移植性的要求。 - 軟件工作涉及許多社會(huì)因素。1.2.2軟件危機(jī)產(chǎn)生的原因在軟件開(kāi)發(fā)和維護(hù)的過(guò)程中存在這么多嚴(yán)重問(wèn)題,一方面與軟件本身的特點(diǎn)有在軟件開(kāi)發(fā)和維護(hù)的過(guò)程中存在這么多嚴(yán)重問(wèn)題,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān)。關(guān),另一方面也和軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān)。 主觀原因主觀原因: (人的問(wèn)題、技術(shù)問(wèn)題人的問(wèn)題、技術(shù)問(wèn)題) - -軟件復(fù)雜且規(guī)模龐大。軟件復(fù)雜且規(guī)模龐大。 - -對(duì)軟
7、件的開(kāi)發(fā)和維護(hù)關(guān)系有許多錯(cuò)誤認(rèn)識(shí)和做法對(duì)軟件的開(kāi)發(fā)和維護(hù)關(guān)系有許多錯(cuò)誤認(rèn)識(shí)和做法 沒(méi)有準(zhǔn)確、全面把握用戶(hù)需求,忽視軟件需求分析的重要性。沒(méi)有準(zhǔn)確、全面把握用戶(hù)需求,忽視軟件需求分析的重要性。 輕視軟件維護(hù)。輕視軟件維護(hù)。 不重視階段審查和復(fù)審。不重視階段審查和復(fù)審。 123解決軟件危機(jī)的途徑 將軟件開(kāi)發(fā)看成是一種組織嚴(yán)密、管理嚴(yán)格、各類(lèi)人員協(xié)同配合共同完成的 工程項(xiàng)目。 研究和推廣成功的軟件開(kāi)發(fā)技術(shù)和方法。 開(kāi)發(fā)和使用好的軟件工具。建立嚴(yán)格的文檔資料,重視軟件開(kāi)發(fā)過(guò)程的階段評(píng)審。 - -對(duì)大型軟件項(xiàng)目缺乏有力的組織和管理。對(duì)大型軟件項(xiàng)目缺乏有力的組織和管理。 - -開(kāi)發(fā)工具落后,以致軟件的生產(chǎn)
8、效率和質(zhì)量不高。開(kāi)發(fā)工具落后,以致軟件的生產(chǎn)效率和質(zhì)量不高。 - -軟件開(kāi)發(fā)技術(shù)落后,軟件開(kāi)發(fā)技術(shù)落后, 人們?cè)鴱牟煌慕嵌?,給軟件工程下過(guò)許多定義,其中典型的兩個(gè)為:Fritz Bauer在NATO會(huì)議上給出的定義:“軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件,而建立和使用的完善的工程原理(方法)。這個(gè)定義指出了軟件工程的目標(biāo)是經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件,強(qiáng)調(diào)軟件工程是一門(mén)工程學(xué)科,它必須建立和使用的完善的工程原理。IEEE【IEE93】給出了一個(gè)更加綜合的定義:“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用于軟件中?!边@個(gè)定義強(qiáng)調(diào)了工程
9、化方法和如何實(shí)現(xiàn)這些方法在軟件工程中的重要地位。1.3.1軟件工程的定義1.31.3軟件工程軟件工程 軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件。把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前最好的技術(shù)方法結(jié)合起來(lái),目的是生產(chǎn)出能按期交付的、在預(yù)算范圍內(nèi)的、滿(mǎn)足用戶(hù)需求的、質(zhì)量合格的軟件產(chǎn)品。軟件工程具有下述本質(zhì)特性:軟件工程關(guān)注于大型程序的構(gòu)造。軟件工程的中心課題是控制復(fù)雜性。軟件產(chǎn)品交付使用后仍然需要經(jīng)常修改。開(kāi)發(fā)軟件的效率非常重要。開(kāi)發(fā)人員和諧地合作是成功地開(kāi)發(fā)軟件的關(guān)鍵。軟件必須有效地支持它的用戶(hù)。在軟件工程領(lǐng)域中通常由具有一種文化背景
10、的人替具有另一種文化背景的人開(kāi)發(fā)產(chǎn)品。 軟件工程的基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理 6類(lèi)計(jì)劃 項(xiàng)目概要計(jì)劃,里程碑計(jì)劃,項(xiàng)目控制計(jì)劃,產(chǎn)品控制計(jì)劃, 驗(yàn)證計(jì)劃,運(yùn)行維護(hù)計(jì)劃。堅(jiān)持進(jìn)行階段評(píng)審 1)經(jīng)驗(yàn)數(shù)據(jù)說(shuō)明,大部分錯(cuò)誤是在編碼之前造成的,在整個(gè)軟件設(shè)計(jì)錯(cuò)誤中, 設(shè)計(jì)錯(cuò)誤占63%,而編碼錯(cuò)誤占37%。 2)錯(cuò)誤發(fā)現(xiàn)和改正得越晚,所需付出的代價(jià)就越高。實(shí)行嚴(yán)格的產(chǎn)品控制 主要實(shí)行基準(zhǔn)配置管理。 軟件配置成分: 軟件開(kāi)發(fā)各個(gè)階段產(chǎn)生的文檔和代碼。 基準(zhǔn)配置: 經(jīng)過(guò)評(píng)審后的軟件配置成分。采用現(xiàn)代程序設(shè)計(jì)技術(shù) 提高開(kāi)發(fā)和維護(hù)的效率,如結(jié)構(gòu)化分析SA和結(jié)構(gòu)化設(shè)計(jì)SD技術(shù)。結(jié)果應(yīng)能清楚地審查 開(kāi)發(fā)小
11、組的人員應(yīng)少而精 1)軟件開(kāi)發(fā)的進(jìn)度并非與參與開(kāi)發(fā)人員的數(shù)量成正比,有時(shí)恰恰相反。 2)軟件產(chǎn)品的質(zhì)量絕對(duì)與開(kāi)發(fā)人員的素質(zhì)相關(guān)。承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。學(xué)科。所謂管理就是通過(guò)計(jì)劃、組織和控制等一系列活動(dòng),合理地配置和使用各種資所謂管理就是通過(guò)計(jì)劃、組織和控制等一系列活動(dòng),合理地配置和使用各種資源,以達(dá)到既定目標(biāo)的過(guò)程。源,以達(dá)到既定目標(biāo)的過(guò)程。通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱(chēng)為方法學(xué)通常把在軟件生命周期全過(guò)程中使用的一整
12、套技術(shù)方法的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)為范型。,也稱(chēng)為范型。軟件工程方法學(xué)包含軟件工程方法學(xué)包含3個(gè)要素:方法、工具和過(guò)程。其中,方法是完成軟件開(kāi)個(gè)要素:方法、工具和過(guò)程。其中,方法是完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,回答“怎樣做怎樣做”的問(wèn)題;工具是為運(yùn)用方法而提供的問(wèn)題;工具是為運(yùn)用方法而提供的自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境;過(guò)程是為了獲得高質(zhì)量的軟件所需要的自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境;過(guò)程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。目前使
13、用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。1. 傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué) 傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn)結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))來(lái)完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋騺?lái)完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來(lái)支持結(jié)構(gòu)化技術(shù)的運(yùn)用。軟件工程環(huán)境來(lái)支持結(jié)構(gòu)化技術(shù)的運(yùn)用。這是最早的軟件開(kāi)發(fā)方法。這是最早的軟件開(kāi)發(fā)方法。這種方法學(xué)把軟件生命周期的全過(guò)程依
14、次劃分為若干個(gè)階段,然后順序地完成每這種方法學(xué)把軟件生命周期的全過(guò)程依次劃分為若干個(gè)階段,然后順序地完成每個(gè)階段的任務(wù)。采用這種方法學(xué)開(kāi)發(fā)軟件的時(shí)候,從對(duì)問(wèn)題的抽象邏輯分析開(kāi)始,個(gè)階段的任務(wù)。采用這種方法學(xué)開(kāi)發(fā)軟件的時(shí)候,從對(duì)問(wèn)題的抽象邏輯分析開(kāi)始,一個(gè)階段一個(gè)階段地進(jìn)行開(kāi)發(fā)。具體過(guò)程如下一個(gè)階段一個(gè)階段地進(jìn)行開(kāi)發(fā)。具體過(guò)程如下: (1)采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)。(2)把軟件生命周期劃分成若干個(gè)階段,然后順序完成各個(gè)階段的任務(wù)。 (3)每一個(gè)階段的開(kāi)始和結(jié)束都有嚴(yán)格標(biāo)準(zhǔn),前一階段結(jié)束的標(biāo)準(zhǔn)是后一階段工作開(kāi)始的標(biāo)準(zhǔn)。 (4) 在每一階段結(jié)束之前必
15、須正式地進(jìn)行嚴(yán)格的技術(shù)審查和管理復(fù)審. 2. 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)當(dāng)軟件規(guī)模龐大,或者對(duì)軟件的需求是模糊的或會(huì)隨時(shí)間而變化的時(shí)候,使當(dāng)軟件規(guī)模龐大,或者對(duì)軟件的需求是模糊的或會(huì)隨時(shí)間而變化的時(shí)候,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)軟件往往不成功,此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,用傳統(tǒng)方法學(xué)開(kāi)發(fā)軟件往往不成功,此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)仍然很困難維護(hù)起來(lái)仍然很困難.結(jié)構(gòu)化范型只能獲得有限成功的一個(gè)重要原因是,這種技術(shù)要么面向結(jié)構(gòu)化范型只能獲得有限成功的一個(gè)重要原因是,這種技術(shù)要么面向行為行為(即對(duì)數(shù)據(jù)的操作即對(duì)數(shù)據(jù)的操作),要么面向數(shù)據(jù),還沒(méi)有既面向數(shù)據(jù)又面向行,要么面向數(shù)據(jù),還沒(méi)有既
16、面向數(shù)據(jù)又面向行為的結(jié)構(gòu)化技術(shù)。眾所周知,軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng)。離開(kāi)為的結(jié)構(gòu)化技術(shù)。眾所周知,軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng)。離開(kāi)了操作便無(wú)法更改數(shù)據(jù),而脫離了數(shù)據(jù)的操作是毫無(wú)意義的。數(shù)據(jù)和了操作便無(wú)法更改數(shù)據(jù),而脫離了數(shù)據(jù)的操作是毫無(wú)意義的。數(shù)據(jù)和對(duì)數(shù)據(jù)的處理原本是密切相關(guān)的,把數(shù)據(jù)和操作人為地分離成兩個(gè)獨(dú)對(duì)數(shù)據(jù)的處理原本是密切相關(guān)的,把數(shù)據(jù)和操作人為地分離成兩個(gè)獨(dú)立的部分,自然會(huì)增加軟件開(kāi)發(fā)與維護(hù)的難度。與傳統(tǒng)方法相反,面立的部分,自然會(huì)增加軟件開(kāi)發(fā)與維護(hù)的難度。與傳統(tǒng)方法相反,面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線(xiàn),把向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,它是一種
17、以數(shù)據(jù)為主線(xiàn),把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來(lái)的方法。過(guò)程如下數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來(lái)的方法。過(guò)程如下:(1)把對(duì)象把對(duì)象(object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。件構(gòu)件。(2) 把所有對(duì)象都劃分成類(lèi)把所有對(duì)象都劃分成類(lèi)(class)。(3) 按照父類(lèi)按照父類(lèi)(或稱(chēng)為基類(lèi)或稱(chēng)為基類(lèi))與子類(lèi)與子類(lèi)(或稱(chēng)為派生類(lèi)或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(4) 對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系。對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系。 1.41.4軟件生命周期軟
18、件生命周期 一個(gè)一個(gè)軟件從定義到開(kāi)發(fā),使用和維護(hù),直到最終被淘汰,需要一個(gè)漫長(zhǎng)的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長(zhǎng)的時(shí)期稱(chēng)為生命周期.簡(jiǎn)單的說(shuō)軟件生存周期就是軟件簡(jiǎn)單的說(shuō)軟件生存周期就是軟件產(chǎn)品或軟件系統(tǒng)從設(shè)計(jì)、投入使用到被淘汰的全過(guò)程。產(chǎn)品或軟件系統(tǒng)從設(shè)計(jì)、投入使用到被淘汰的全過(guò)程。 1.4.1軟件生命周期的劃分軟件工程采用的生存周期方法就是從時(shí)間角度對(duì)軟件的開(kāi)發(fā)與維護(hù)這個(gè)復(fù)雜問(wèn)題進(jìn)行分解,將軟件生存漫長(zhǎng)的時(shí)期分為若干階段,每個(gè)階段都有其相對(duì)獨(dú)立的任務(wù),然后逐步完成各個(gè)階段的任務(wù)。 軟件生存周期劃分為三個(gè)時(shí)期:軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)。 軟件定義軟件定義:劃分成劃分成3個(gè)階段,即問(wèn)題定義、可
19、行性研究和需求分析。個(gè)階段,即問(wèn)題定義、可行性研究和需求分析。軟件定義時(shí)期的任務(wù)是:軟件定義時(shí)期的任務(wù)是:解決解決“做什么做什么”? 確定軟件開(kāi)發(fā)工程必須完成的總目確定軟件開(kāi)發(fā)工程必須完成的總目標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計(jì)完成該項(xiàng)工程需要的資源和成本,并且制定工程進(jìn)度表。這個(gè)時(shí)期的工能;估計(jì)完成該項(xiàng)工程需要的資源和成本,并且制定工程進(jìn)度表。這個(gè)時(shí)期的工作通常又稱(chēng)為系統(tǒng)分析,由系統(tǒng)分析員負(fù)責(zé)完成。作通常又稱(chēng)為系統(tǒng)分析,由系統(tǒng)分析員負(fù)責(zé)完成。開(kāi)發(fā)時(shí)期開(kāi)發(fā)時(shí)期:具體設(shè)計(jì)和實(shí)現(xiàn)在前一
20、個(gè)時(shí)期定義的軟件,具體設(shè)計(jì)和實(shí)現(xiàn)在前一個(gè)時(shí)期定義的軟件,解決解決”如何做如何做”? 總體設(shè)計(jì)總體設(shè)計(jì) 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 軟件開(kāi)發(fā)軟件開(kāi)發(fā) 編碼編碼和單元測(cè)試和單元測(cè)試 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn) 綜合測(cè)試綜合測(cè)試維護(hù)時(shí)期維護(hù)時(shí)期:解決解決“改變改變”,一般包括,一般包括“糾錯(cuò)糾錯(cuò)”,“適應(yīng)適應(yīng)”,“修改修改”,“增增強(qiáng)強(qiáng)”四種?四種?主要任務(wù)是使軟件持久地滿(mǎn)足用戶(hù)的需要。當(dāng)軟件在使用過(guò)程中主要任務(wù)是使軟件持久地滿(mǎn)足用戶(hù)的需要。當(dāng)軟件在使用過(guò)程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)該加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件以適應(yīng)新的環(huán)境;當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)該加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件以適應(yīng)新的環(huán)境;當(dāng)用戶(hù)有新要求
21、時(shí)應(yīng)該及時(shí)改進(jìn)軟件以滿(mǎn)足用戶(hù)的新需要。用戶(hù)有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件以滿(mǎn)足用戶(hù)的新需要。生命周期方法學(xué)把軟件生命周期劃分為8個(gè)相對(duì)獨(dú)立的階段:問(wèn)題定義可行性研究 需求分析 總體設(shè)計(jì)(概要設(shè)計(jì)) 詳細(xì)設(shè)計(jì) 編碼和單元測(cè)試 綜合測(cè)試 軟件維護(hù)。每個(gè)階段采用結(jié)構(gòu)化技術(shù)或面向?qū)ο蠹夹g(shù)和適當(dāng)?shù)能浖ぞ邅?lái)完成一些確定的任務(wù),基本上按順序完成各個(gè)階段的任務(wù),在每個(gè)階段結(jié)束之前都要提交相應(yīng)的文檔并進(jìn)行嚴(yán)格的技術(shù)審查和管理復(fù)審。 1.4.2生命周期各階段的任務(wù)問(wèn)題定義:是軟件開(kāi)發(fā)的起始階段。基本任務(wù)是要確定“軟件要解決的問(wèn)題是什么?”,通過(guò)調(diào)研,提出問(wèn)題性質(zhì)、工程目標(biāo)和規(guī)模,系統(tǒng)分析員最終要寫(xiě)出關(guān)于系統(tǒng)目標(biāo)和規(guī)
22、模的初步書(shū)面報(bào)告并得到用戶(hù)的確認(rèn)??尚行匝芯?任務(wù)是在問(wèn)題定義的基礎(chǔ)上,從技術(shù)、經(jīng)濟(jì)、操作等最后提交可行性論證報(bào)告和項(xiàng)目開(kāi)發(fā)報(bào)告。 軟件需求 :任務(wù)是確定目標(biāo)系統(tǒng)必須做什么?準(zhǔn)確確定系統(tǒng)的功能、性能和環(huán)境約束等要求。建立系統(tǒng)的邏輯模型(數(shù)據(jù)流圖+數(shù)據(jù)字典+簡(jiǎn)要算法)并得到用戶(hù)的確認(rèn),最后編制軟件規(guī)格說(shuō)明書(shū)、數(shù)據(jù)要求說(shuō)明書(shū)、初步的用戶(hù)手冊(cè)。其中,功能:系統(tǒng)必須做什么;性能:包括 軟件的安全性、可靠性、可維護(hù)性、錯(cuò)誤處理、適應(yīng)性等。環(huán)境約束:開(kāi)發(fā)的軟件系統(tǒng)必須滿(mǎn)足運(yùn)行環(huán)境方面的要求??傮w設(shè)計(jì):主要任務(wù)是描述系統(tǒng)如何實(shí)現(xiàn)。 這個(gè)階段首先應(yīng)該設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的3種可能的方案:最低成本方案:系統(tǒng)完成最
23、必要的工作;中等成本方案:不僅能夠完成 預(yù)定的任務(wù),而且還有用戶(hù)沒(méi)有指定的功能;高成本方案:系統(tǒng)具有用戶(hù)希望的所有功能,十全十美的系統(tǒng)。系統(tǒng)分析員使用系統(tǒng)流程圖等描述每一種系統(tǒng),估計(jì)每種方案的成本和效益,分析每種方案的優(yōu)缺點(diǎn),然后權(quán)衡利弊,推薦最佳方案并進(jìn)行詳細(xì)設(shè)計(jì),征求用戶(hù)同意。在這個(gè)階段要建立目標(biāo)系統(tǒng)的總體結(jié)構(gòu),即功能模塊結(jié)構(gòu)。對(duì)軟件系統(tǒng)的總體功能進(jìn)行分解,形成功能模塊層次結(jié)構(gòu)圖。(包括模塊的組成、模塊的層次結(jié)構(gòu),模塊間的調(diào)用關(guān)系。最后要編寫(xiě)概要設(shè)計(jì)說(shuō)明書(shū)。 詳細(xì)設(shè)計(jì):主要任務(wù)是對(duì)總體設(shè)計(jì)的每一個(gè)功能模塊進(jìn)行詳細(xì)的描述。包括每一模塊的詳細(xì)功能、算法和數(shù)據(jù)結(jié)構(gòu)以及模塊間的接口信息等設(shè)計(jì)。擬定
24、模塊測(cè)試方案。然后編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和測(cè)試計(jì)劃初稿。 編碼和單元測(cè)試:任務(wù)是程序員根據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū),用選定的高級(jí)程序設(shè)計(jì)語(yǔ)言對(duì)模塊算法進(jìn)行描述,形成可執(zhí)行的源程序。并對(duì)編寫(xiě)的每一個(gè)模塊進(jìn)行單元測(cè)試(對(duì)模塊程序進(jìn)行測(cè)試,驗(yàn)證模塊功能及接口與詳細(xì)設(shè)計(jì)說(shuō)明書(shū)的一致性。)最后提交能夠?qū)崿F(xiàn)用戶(hù)要求的目標(biāo)系統(tǒng)源代碼文檔、用戶(hù)手冊(cè)、操作手冊(cè)和測(cè)試計(jì)劃。 綜合測(cè)試:保證軟件質(zhì)量的重要手段。使軟件達(dá)到預(yù)定的要求。主要進(jìn)行兩種測(cè)試:集成測(cè)試和驗(yàn)收測(cè)試。集成測(cè)試:根據(jù)概要設(shè)計(jì)中各功能模塊說(shuō)明及制定的集成測(cè)試計(jì)劃,將經(jīng)過(guò)單元測(cè)試的模塊逐步進(jìn)行組裝和測(cè)試。編制集成測(cè)試報(bào)告。 驗(yàn)收測(cè)試:根據(jù)軟件需求規(guī)格說(shuō)明書(shū)定義的全部
25、功能和性能要求及軟件驗(yàn)收測(cè)試準(zhǔn)則對(duì)軟件系統(tǒng)進(jìn)行總測(cè)試。編制驗(yàn)收測(cè)試報(bào)告。測(cè)試后,軟件評(píng)審小組對(duì)軟件驗(yàn)收?qǐng)?bào)告、測(cè)試結(jié)果和軟件進(jìn)行評(píng)審。軟件維護(hù):通常有4類(lèi)維護(hù)活動(dòng):(1)改正性維護(hù):診斷和改正在使用過(guò)程中發(fā)現(xiàn)的軟件錯(cuò)誤。(2)適應(yīng)性維護(hù):當(dāng)軟件環(huán)境發(fā)生變化時(shí)(軟件的處理對(duì)象和數(shù)據(jù)環(huán)境變化時(shí)),進(jìn)行的一些適應(yīng)性修改。(3)完善性維護(hù):根據(jù)用戶(hù)的要求改進(jìn)或擴(kuò)充軟件使它更完善。(4)預(yù)防性維護(hù):為了改善將來(lái)的可靠性或可維護(hù)性,而對(duì)軟件進(jìn)行的修改或補(bǔ)充。問(wèn)題定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與單元測(cè)試綜合測(cè)試軟件維護(hù)要解決的問(wèn)題是什么?問(wèn)題性質(zhì)、工程目標(biāo)和規(guī)模的報(bào)告分析員:實(shí)際用戶(hù)+負(fù)責(zé)人是否有
26、解決辦法?分析員 高層邏輯模型,準(zhǔn)確和具體的工程規(guī)模和目標(biāo),成本/效益分析等可行性報(bào)告為了解決的問(wèn)題,目標(biāo)系統(tǒng)必須做什么?準(zhǔn)確確定系統(tǒng)的功能系統(tǒng)的邏輯模型(數(shù)據(jù)流圖+數(shù)據(jù)字典+簡(jiǎn)要算法)如何解決這些問(wèn)題模塊劃分軟件結(jié)構(gòu)如何具體地實(shí)現(xiàn)系統(tǒng):每個(gè)模塊的流程圖(程序的詳細(xì)規(guī)格說(shuō)明)通過(guò)各種類(lèi)型的測(cè)試,使軟件達(dá)到預(yù)定的要求寫(xiě)出正確的容易理解和容易維護(hù)的程序模塊 通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿(mǎn)足用戶(hù)的需要軟件的生命周期8個(gè)時(shí)期的劃分,既適合傳統(tǒng)的結(jié)構(gòu)化方法,也適合面向?qū)ο蠓椒ê突旌戏椒ǎ渲兄饕幸韵聝?yōu)點(diǎn):(1)每個(gè)軟件活動(dòng)時(shí)期的獨(dú)立性較強(qiáng),任務(wù)明確,且聯(lián)系簡(jiǎn)單,容易分工。(2)軟件工程過(guò)程清晰明
27、了。(3)軟件大小規(guī)模都適合,大型軟件可以再細(xì)劃分階段。(4)適合各種軟件工程開(kāi)發(fā)過(guò)程模型(瀑布模型、原型模型等)和開(kāi)發(fā)方法(結(jié)構(gòu)化方法,面向?qū)ο蠓椒ǖ龋?.51.5軟件過(guò)程軟件過(guò)程軟件過(guò)程是指軟件生存周期中的一系列相關(guān)的活動(dòng)。包括軟件開(kāi)發(fā)活動(dòng)所需完成的任務(wù)序列和完成這些任務(wù)的工作步驟。過(guò)程還定義運(yùn)用方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化所需采取的管理措施以及標(biāo)志軟件開(kāi)發(fā)各階段完成任務(wù)的里程碑。通常使用生命周期模型概括地描述軟件過(guò)程,生命周期模型規(guī)定了軟件過(guò)程包含的各個(gè)階段,以及完成這些階段的順序。因此也稱(chēng)為過(guò)程模型。1.5.1軟件生命周期模型也稱(chēng)為軟件開(kāi)發(fā)模型或軟件過(guò)程模
28、型軟件生存周期模型是描述軟件開(kāi)發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型。即描述軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。反映軟件生存周期內(nèi)各種工作應(yīng)如何組織及軟件生存周期各個(gè)階段應(yīng)如何銜接,它能直觀表達(dá)軟件開(kāi)發(fā)全過(guò)程,明確規(guī)定要完成的主要活動(dòng)、任務(wù)和開(kāi)發(fā)策略。隨著軟件工程方法和技術(shù)的發(fā)展,總結(jié)出許多軟件過(guò)程規(guī)律,形成了各個(gè)發(fā)展時(shí)期有代表性軟件過(guò)程模型。如傳統(tǒng)模型、演化模型、面向?qū)ο竽P?。他們各有特點(diǎn),分別適用于不同的軟件項(xiàng)目開(kāi)發(fā),但一般都包含定義、開(kāi)發(fā)和維護(hù)3類(lèi)活動(dòng),定義活動(dòng)要弄清軟件“做什么”,開(kāi)發(fā)活動(dòng)集中解決“怎樣做”;維護(hù)活動(dòng)是對(duì)軟件的修改、完善?!癢hat-How-Change”,概括了3類(lèi)活動(dòng)的
29、主要特征。在不同的軟件開(kāi)發(fā)模型中,這些活動(dòng)或順序展開(kāi),或反復(fù)循環(huán),所用的方法與工具也可能隨所用的模型而異。傳統(tǒng)開(kāi)發(fā)模型瀑布模型(waterfall model)快速原型模型(rapid prototype model)演化開(kāi)發(fā)模型增量模型(incremental model)螺旋模型(spiral model)面向?qū)ο箝_(kāi)發(fā)模型噴泉模型構(gòu)件集成模型(component integrationmodel) 1.5.2傳統(tǒng)開(kāi)發(fā)模型1.瀑布模型(Waterfall Model) 基本思想:也稱(chēng)為傳統(tǒng)生命周期模型或線(xiàn)性順序模型。瀑布模型遵循軟件生命周期的劃分,明確規(guī)定每個(gè)階段的任務(wù),各階段的工作自上而下
30、順序展開(kāi),相互銜接,呈線(xiàn)性圖狀,如同瀑布流水,逐級(jí)下落。瀑布模型采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法,將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。 結(jié)構(gòu)圖:如下圖: 1. 瀑布模型 問(wèn)題定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與單元測(cè)試 綜合測(cè)試軟件維護(hù)定義時(shí)期開(kāi)發(fā)時(shí)期軟件維護(hù)時(shí)期目標(biāo)與范圍說(shuō)明書(shū)可行性論證報(bào)告需求規(guī)格說(shuō)明書(shū)概要設(shè)計(jì)說(shuō)明書(shū)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)程序測(cè)試報(bào)告維護(hù)報(bào)告特點(diǎn):1.階段間具有順序性和依賴(lài)性這個(gè)特點(diǎn)有兩重含義:這個(gè)特點(diǎn)有兩重含義: 必須等前一階段的工作必須等前一階段的工作完成之后,才能開(kāi)始后一階段的工作;完成之后,才能開(kāi)始后一階段的工作; 前一階前一階段的輸出文檔就是后一階段的輸入文檔,因此,段的輸出文檔
31、就是后一階段的輸入文檔,因此,相鄰兩個(gè)階段具有因果關(guān)系,相鄰兩個(gè)階段具有因果關(guān)系,只有前一階段的輸只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)出文檔正確,后一階段的工作才能獲得正確的結(jié)果。果。2.盡可能推遲軟件的編碼對(duì)于規(guī)模較大的軟件項(xiàng)目來(lái)說(shuō),往往編碼開(kāi)始對(duì)于規(guī)模較大的軟件項(xiàng)目來(lái)說(shuō),往往編碼開(kāi)始得越早最終完成開(kāi)發(fā)工作所需要的時(shí)間反而越得越早最終完成開(kāi)發(fā)工作所需要的時(shí)間反而越長(zhǎng)。這是因?yàn)?,前面階段的工作沒(méi)做或做得不長(zhǎng)。這是因?yàn)?,前面階段的工作沒(méi)做或做得不扎實(shí),過(guò)早地考慮進(jìn)行程序?qū)崿F(xiàn),往往導(dǎo)致大扎實(shí),過(guò)早地考慮進(jìn)行程序?qū)崿F(xiàn),往往導(dǎo)致大量返工,有時(shí)甚至發(fā)生無(wú)法彌補(bǔ)的問(wèn)題,帶來(lái)量返工,有
32、時(shí)甚至發(fā)生無(wú)法彌補(bǔ)的問(wèn)題,帶來(lái)災(zāi)難性后果。災(zāi)難性后果。3.文檔驅(qū)動(dòng)性在瀑布模型的每個(gè)階段都應(yīng)堅(jiān)持兩個(gè)重要做法:(1) 每個(gè)階段都必須完成規(guī)定的文檔,沒(méi)有交出合格的文檔就是沒(méi)有完成該階段的任務(wù)。(2) 每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。嚴(yán)格文檔審查保證了軟件的質(zhì)量。優(yōu)點(diǎn):1. 強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的技術(shù)方法。2. 嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔。3. 每個(gè)階段結(jié)束前必須正式進(jìn)行嚴(yán)格的技術(shù)審查和管理復(fù)審。從而使軟件過(guò)程易于管理和控制,有利于質(zhì)量的保證 缺點(diǎn):1.無(wú)法解決軟件需求不明確或不準(zhǔn)確的問(wèn)題,要求軟件開(kāi)發(fā)初期就要給出軟件系統(tǒng)全部需求。不適合需求模糊的系
33、統(tǒng)2.模型是一種理想的線(xiàn)性開(kāi)發(fā)模型,必須等前一階段的工作完成之后,才能開(kāi)始后一階段的工作。缺乏靈活性而且開(kāi)發(fā)周期比較長(zhǎng),承擔(dān)的風(fēng)險(xiǎn)也比較大。 實(shí)用范圍瀑布模型適合于功能和性能需求明確、完整、無(wú)重大變化的軟件開(kāi)發(fā)。例如,編譯系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)和操作系統(tǒng)等。 2.快速原型模型基本思想 結(jié)構(gòu)圖 測(cè)試軟件初步定義 修改原型 維護(hù) 實(shí)現(xiàn) 設(shè)計(jì) 評(píng)價(jià)原型 工作原型快速開(kāi)發(fā)原型特點(diǎn):-快速開(kāi)發(fā)工具、成本低。-它沒(méi)有固定的生存期。-原型驅(qū)動(dòng)性:-過(guò)程的交互性和迭代性:優(yōu)點(diǎn):1.原型法可處理模糊需求,開(kāi)發(fā)者和用戶(hù)可充分交流。2.原型系統(tǒng)可作為培訓(xùn)環(huán)境。3.原型給用戶(hù)以機(jī)會(huì)更改心中原先設(shè)想的、不盡合理的最終系統(tǒng)。4
34、.原型可低風(fēng)險(xiǎn)開(kāi)發(fā)柔性較大的計(jì)算機(jī)系統(tǒng)。5.系統(tǒng)更易維護(hù)。6.原型可降低開(kāi)發(fā)費(fèi)用,縮短開(kāi)發(fā)時(shí)間。 實(shí)用范圍-適合那些不能預(yù)先確切定義需求的軟件開(kāi)發(fā)。 -適合那些項(xiàng)目組成成員(包括分析員、設(shè)計(jì)員、程序員和用戶(hù)等)不能很好協(xié)同配合,交流和通信上存在困難的情況。 缺點(diǎn)頻繁的需求變化會(huì)使開(kāi)發(fā)進(jìn)程難于管理和控制,原型的快速開(kāi)發(fā)和修改對(duì)技術(shù)要求比較高,需要有較好的工作基礎(chǔ)。 1.5.3軟件演化模型(綜合模型) 3.增量模型基本思想:也稱(chēng)漸增模型。增量模型是瀑布模型的順序特征與快速原型模型的迭代特征相結(jié)合的產(chǎn)物。使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、實(shí)現(xiàn)、集成和測(cè)試。每個(gè)構(gòu)件可由多個(gè)
35、相互作用的模塊構(gòu)成,完成特定的功能。開(kāi)發(fā)時(shí)分批逐步地向用戶(hù)提交產(chǎn)品,每次提交一個(gè)滿(mǎn)足用戶(hù)需求子集的增量構(gòu)件,直到最后一次得到滿(mǎn)足用戶(hù)全部需求的完整產(chǎn)品為止。由于其過(guò)程體現(xiàn)軟件產(chǎn)品的漸增形態(tài),所以稱(chēng)為增量模型。 一般第一個(gè)增量構(gòu)件實(shí)現(xiàn)軟件的基本需求,完成最核心的功能。以增加用戶(hù)和開(kāi)發(fā)者的信心。難度較大或需要使用新硬件的構(gòu)件可放在較后的增量中開(kāi)發(fā),避免用戶(hù)長(zhǎng)時(shí)間的等待。同時(shí)不同的增量也可配備不同數(shù)量的開(kāi)發(fā)人員,使計(jì)劃增加靈活性。結(jié)構(gòu)圖 軟件定義概要設(shè)計(jì) 構(gòu)件開(kāi)發(fā) 測(cè)試詳細(xì)設(shè)計(jì)使用與維護(hù) 實(shí)現(xiàn)構(gòu)件集成特點(diǎn):-過(guò)程漸增性:增量模型是一種非整體開(kāi)發(fā)的模型,軟件過(guò)程分批完成,每次提交一個(gè)滿(mǎn)足用戶(hù)需求子集的
36、增量構(gòu)件,產(chǎn)品規(guī)模逐漸增大,直至得到滿(mǎn)足用戶(hù)全部需求的完整產(chǎn)品為止。-每個(gè)增量的開(kāi)發(fā)可用瀑布或快速原型模型來(lái)開(kāi)發(fā)。-迭代的思路 優(yōu)點(diǎn):-能在較短的時(shí)間內(nèi)向用戶(hù)提交可完成部分工作的產(chǎn)品。-逐步增加產(chǎn)品功能,從而使用戶(hù)有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,減少一個(gè)全新的軟件給客戶(hù)組織帶來(lái)的沖擊。 -具有較大的靈活性。有利于控制技術(shù)風(fēng)險(xiǎn)。-有效地控制進(jìn)度和質(zhì)量,有效地吸納用戶(hù)的反饋意見(jiàn)。 缺點(diǎn):增量構(gòu)件的劃分依賴(lài)于系統(tǒng)功能的構(gòu)成和軟件開(kāi)發(fā)人員的經(jīng)驗(yàn),每次集成的新的增量構(gòu)件必須不破壞原有軟件系統(tǒng)的結(jié)構(gòu),因此要求軟件系統(tǒng)的體系結(jié)構(gòu)必須具有高度的開(kāi)放性和可擴(kuò)充性。 實(shí)用范圍:適合于軟件需求不明確、設(shè)計(jì)方案有一定
37、風(fēng)險(xiǎn)的軟件項(xiàng)目。 4螺旋模型 基本思想:在軟件開(kāi)發(fā)的每一個(gè)階段,都進(jìn)行風(fēng)險(xiǎn)分析,并借助構(gòu)建原型來(lái)降低風(fēng)險(xiǎn),每一個(gè)階段的過(guò)程形成一個(gè)周期,螺旋模型的每一個(gè)周期都包括制定計(jì)劃、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和用戶(hù)評(píng)審4個(gè)部分,軟件開(kāi)發(fā)的整個(gè)過(guò)程就是這4個(gè)部分的迭代,每迭代一次,過(guò)程就完成一個(gè)周期,軟件開(kāi)發(fā)就前進(jìn)一個(gè)層次,系統(tǒng)就生成一個(gè)新的版本。由于軟件過(guò)程呈現(xiàn)一種螺線(xiàn)上升,迭代發(fā)展的形態(tài),所以稱(chēng)為螺旋模型。螺旋模型是利用笛卡爾坐標(biāo)的四個(gè)象限上分別代表四個(gè)方面的活動(dòng)來(lái)表示。 結(jié)構(gòu)圖:螺旋模型沿螺線(xiàn)旋轉(zhuǎn),每旋轉(zhuǎn)一圈都?xì)v經(jīng)笛卡兒坐標(biāo)系中四個(gè)象限的四個(gè)方面活動(dòng)制訂計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程及客戶(hù)評(píng)估。螺線(xiàn)自?xún)?nèi)向外每旋轉(zhuǎn)一圈便開(kāi)發(fā)出一個(gè)更為完善的新的軟件版本。該模型采用的是一種自上而下的工作方式。 按下面的4個(gè)步驟如下進(jìn)行:1)制定計(jì)劃:確定該階段的目標(biāo),為完成這些目標(biāo)選擇方案,并設(shè)定這些方案的約束條件。 2)風(fēng)險(xiǎn)分析:對(duì)不同的實(shí)現(xiàn)方案進(jìn)行評(píng)估,對(duì)出現(xiàn)不確定的因
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 經(jīng)濟(jì)師個(gè)人年度工作總結(jié)
- 2025年礬礦開(kāi)采行業(yè)深度研究分析報(bào)告
- 皮革手感劑行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2023-2028年中國(guó)非甾體抗炎藥行業(yè)市場(chǎng)深度評(píng)估及投資戰(zhàn)略規(guī)劃報(bào)告
- 住宅小區(qū)項(xiàng)目節(jié)能評(píng)估報(bào)告-精
- 2024-2025學(xué)年高中政治第二課第一框感受文化影響練習(xí)含解析新人教版必修3
- 2024-2025學(xué)年高中物理第六章4萬(wàn)有引力理論的成就練習(xí)含解析新人教版必修2
- 2020-2025年中國(guó)微特電機(jī)行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資規(guī)劃研究建議報(bào)告
- 2023-2029年中國(guó)軌枕及軌道板行業(yè)發(fā)展全面調(diào)研與未來(lái)趨勢(shì)分析報(bào)告
- 2025年集裝式空調(diào)器項(xiàng)目投資可行性研究分析報(bào)告
- 2025年中國(guó)國(guó)投高新產(chǎn)業(yè)投資集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 年產(chǎn)10噸功能益生菌凍干粉的工廠(chǎng)設(shè)計(jì)改
- 天然氣門(mén)站操作規(guī)程
- 繪本《你很特別》
- 律師事務(wù)所主任在司法行政工作會(huì)議上的發(fā)言稿
- 初中三角函數(shù)計(jì)算題100道
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院財(cái)務(wù)管理
- 北師大版五年級(jí)數(shù)學(xué)下冊(cè)導(dǎo)學(xué)案全冊(cè)
- 臺(tái)球俱樂(lè)部助教制度及待遇
- 醫(yī)師聘用證明.doc
- 核物理實(shí)驗(yàn)方法全冊(cè)配套最完整精品課件
評(píng)論
0/150
提交評(píng)論