軟件工程學(xué)概述 課件_第1頁(yè)
軟件工程學(xué)概述 課件_第2頁(yè)
軟件工程學(xué)概述 課件_第3頁(yè)
軟件工程學(xué)概述 課件_第4頁(yè)
軟件工程學(xué)概述 課件_第5頁(yè)
已閱讀5頁(yè),還剩127頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程(SoftwareEngineering)朱芳軟件工程(SoftwareEngineering)朱課程介紹及要求用工程化的方法來開發(fā)軟件課程介紹及要求用工程化的方法來開發(fā)軟件教學(xué)目標(biāo)為什么要學(xué)習(xí)這門課程有助于正確理解和認(rèn)識(shí)“軟件”的概念及其特點(diǎn)理解軟件開發(fā)面臨的問題和挑戰(zhàn)掌握軟件工程的原則、方法和思想來系統(tǒng)地開發(fā)軟件,尤其是復(fù)雜、龐大的軟件的開發(fā)了解和接觸軟件開發(fā)所需的各種技術(shù)手段理解、掌握和運(yùn)用教學(xué)目標(biāo)為什么要學(xué)習(xí)這門課程課程介紹和要求什么是軟件工程為什么需要軟件工程(產(chǎn)生背景)軟件工程需要解決那些問題軟件工程涉及那些方面內(nèi)容理解課程介紹和要求什么是軟件工程理解課程介紹和要求軟件工程概念技術(shù)過程手段工具掌握運(yùn)用運(yùn)用工程化思想進(jìn)行軟件開發(fā)需求分析軟件設(shè)計(jì)程序設(shè)計(jì)軟件維護(hù)課程介紹和要求軟件工程掌握運(yùn)用運(yùn)用工程化思想進(jìn)行軟件開發(fā)課程介紹和要求內(nèi)容組織先導(dǎo)要求程序設(shè)計(jì)語(yǔ)言最好有一定的軟件開發(fā)經(jīng)驗(yàn)課程介紹和要求內(nèi)容組織先導(dǎo)要求程序設(shè)計(jì)語(yǔ)言課程介紹和要求學(xué)習(xí)要求聽理解知識(shí)點(diǎn)和思想無需死記硬背做實(shí)踐體會(huì)軟件工程的原則、方法和技術(shù),在實(shí)踐中提高培養(yǎng)抽象思維能力培養(yǎng)獨(dú)立解決問題的能力培養(yǎng)合作精神想閱讀相關(guān)資料課程介紹和要求學(xué)習(xí)要求聽課程介紹和要求8考核方式平時(shí)+實(shí)驗(yàn)(40%)期末考試(60%)課程介紹和要求8考核方式平時(shí)+實(shí)驗(yàn)(40%)課程介紹和要求9課程實(shí)習(xí)要求(1/2)內(nèi)容選擇一個(gè)項(xiàng)目開發(fā)課題,用軟件工程的思想知道其開發(fā)過程。完成需求分析,詳細(xì)設(shè)計(jì),測(cè)試,項(xiàng)目匯報(bào)。時(shí)間待定分組以小組為單位,6—8人一組為宜課程介紹和要求9課程實(shí)習(xí)要求(1/2)內(nèi)容課程介紹和要求10課程實(shí)習(xí)要求(2/2)提交內(nèi)容電子文檔評(píng)價(jià)方法按階段遞交和打分文檔:完整性、合理性、規(guī)范性注意:嚴(yán)格按照要求執(zhí)行課程介紹和要求10課程實(shí)習(xí)要求(2/2)提交內(nèi)容軟件工程中典型案例-宇航在“勇氣”號(hào)從地球飛往火星的半年多時(shí)間內(nèi),其存儲(chǔ)器里積聚了大量的數(shù)據(jù)文件,超過了存儲(chǔ)器的負(fù)荷。這導(dǎo)致“勇氣”號(hào)從1月21日開始癱瘓?jiān)诨鹦巧?,無法向地球傳送數(shù)據(jù)??茖W(xué)家雖然通過刪除存儲(chǔ)器內(nèi)的部分?jǐn)?shù)據(jù)使“勇氣”號(hào)于2月1日恢復(fù)工作,但專家仍然希望通過格式化存儲(chǔ)器來徹底消除隱患。軟件工程中典型案例-宇航在“勇氣”號(hào)從地球飛往火星的半年多時(shí)宇航1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序:DO5I=1,3誤寫為:DO5I=1.31999年9月到達(dá)火星的“火星氣候軌道器”——后來成了一個(gè)著名的笑話。工程師在計(jì)算軌道器推力的時(shí)候,混用了公制和英制的單位,從而導(dǎo)致了它的墜毀。宇航1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損電子商務(wù)2007-10-30日由于官方票務(wù)網(wǎng)站流量曾瞬時(shí)達(dá)到每小時(shí)800萬(wàn)次,超過了系統(tǒng)設(shè)計(jì)的每小時(shí)100萬(wàn)次的承受量。啟動(dòng)后第一小時(shí)從各售價(jià)渠道瞬時(shí)提交到票務(wù)系統(tǒng)的門票達(dá)到20萬(wàn)張,也超過了系統(tǒng)設(shè)計(jì)的每小時(shí)銷售15萬(wàn)張的票務(wù)處理能力。北京奧組委不得不作出停止售票的決定。從初步的情況分析,并不是帶寬的問題,主要還是系統(tǒng)后臺(tái)的數(shù)據(jù)庫(kù)的處理能力,在設(shè)計(jì)、規(guī)劃方面,還有待改進(jìn)。電子商務(wù)2007-10-30日由于官方票務(wù)網(wǎng)站流量曾瞬時(shí)達(dá)到金融2006年05月日本最大美資銀行花旗銀行出現(xiàn)重大交易系統(tǒng)故障,約27.5萬(wàn)宗公用事業(yè)款項(xiàng)的交易遭重復(fù)扣數(shù),或在完成交易后未有更新月結(jié)紀(jì)錄。金融2006年05月日本最大美資銀行花旗銀行出現(xiàn)重大交易系統(tǒng)軍事海灣戰(zhàn)爭(zhēng)中美軍使用的“愛國(guó)者”導(dǎo)彈由于未能攔截的“飛毛腿”導(dǎo)彈命中一個(gè)美軍陣地,28名美國(guó)士兵全部喪生。事后分析問題與“愛國(guó)者”的內(nèi)置時(shí)鐘有關(guān),它用以預(yù)測(cè)下一枚飛毛腿”何時(shí)出現(xiàn)。“愛國(guó)者”控制程序中使用的寄存器只有24個(gè)字節(jié)的長(zhǎng)度,精確度因此受到影響,系統(tǒng)運(yùn)行的時(shí)間越長(zhǎng),累積誤差也越大。海灣戰(zhàn)爭(zhēng)中,這些系統(tǒng)的運(yùn)行時(shí)間達(dá)到100小時(shí),產(chǎn)生了678米的范圍差。軍事海灣戰(zhàn)爭(zhēng)中美軍使用的“愛國(guó)者”導(dǎo)彈由于未能攔截的“飛毛腿醫(yī)療最廣為人知的是加拿大原子能公司制造的Therac-25線性加速放射器致人死亡事件。該機(jī)器由計(jì)算機(jī)控制,耗資百萬(wàn)元以上,由于5次連續(xù)性的錯(cuò)誤造成放射過量,5位病人死亡,2人重傷。死亡病人接受了超過正常劑量100倍以上的放射。醫(yī)療最廣為人知的是加拿大原子能公司制造的Therac-25線你自己親身經(jīng)歷的?你自己親身經(jīng)歷的?第1章:軟件工程學(xué)概述1.1軟件危機(jī)

60年代中期以前:通用硬件相當(dāng)普遍,軟件卻是為某個(gè)具體的應(yīng)用而編寫的。

60年代中到70年代中:軟件作坊。第1章:軟件工程學(xué)概述1.1軟件危機(jī)

軟件危機(jī):計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。(正常、不正常運(yùn)行軟件都具有這種問題)1.1.1軟件危機(jī)的介紹軟件危機(jī):計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;2)用戶對(duì)完成的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;3)軟件產(chǎn)品的質(zhì)量往往靠不?。?)軟件常常是不可維護(hù)的;5)軟件通常沒有適當(dāng)?shù)奈臋n資料;軟件危機(jī)的典型表現(xiàn):1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;軟件危機(jī)的典型表6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;7)軟件開發(fā)生產(chǎn)率提高的速度跟不上計(jì)算機(jī)應(yīng)用的發(fā)展趨勢(shì)。軟件危機(jī)的典型表現(xiàn):6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;軟件危機(jī)1.1.2產(chǎn)生軟件危機(jī)的原因1)軟件本身特點(diǎn)造成;2)軟件開發(fā)與維護(hù)的方法不正確。主要表現(xiàn):(a)忽視軟件需求分析;(b)認(rèn)為軟件開發(fā)就是寫程序并使之運(yùn)行;(c)輕視軟件維護(hù);1.1.2產(chǎn)生軟件危機(jī)的原因1)軟件本身特點(diǎn)造成;主要表

在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)很不相同:高中低早期中期后期軟件開發(fā)時(shí)期代價(jià)圖1.1引入同一修改的代價(jià)隨時(shí)間變化的趨勢(shì)在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)很不相同:1)推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并研究探索更有效的技術(shù)和方法;2)開發(fā)和使用更好的軟件工具;3)良好的組織管理措施。

1.1.3解決軟件危機(jī)的途徑1)推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并研

為了解決軟件危機(jī)產(chǎn)生的問題,軟件工程與方法學(xué)逐漸形成,然后出現(xiàn)了兩個(gè)相互相承又各有側(cè)重的學(xué)科:1)軟件工程學(xué):主要應(yīng)用工程的方法和技術(shù)研究軟件開發(fā)與維護(hù)的方法、工具和管理的一門交叉學(xué)科。2)程序設(shè)計(jì)方法學(xué):主要應(yīng)用數(shù)學(xué)的方法研究程序的性質(zhì)以及程序設(shè)計(jì)的理論和方法的學(xué)科。

為了解決軟件危機(jī)產(chǎn)生的問題,軟件工程與方法學(xué)逐漸形成1.2軟件工程1.2.1軟件工程的介紹1968年NATO會(huì)議:軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。1993年IEEE:軟件工程是(1)把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程;(2)研究(1)中提到的途徑。1.2軟件工程1.2.1軟件工程的介紹1968年NAT

1.軟件工程關(guān)注于大型程序的構(gòu)造;

2.軟件工程的中心課題是控制復(fù)雜性;

3.軟件經(jīng)常變化;

4.開發(fā)軟件的效率非常重要;

5.和諧地合作是軟件開發(fā)的關(guān)鍵;

6.軟件必須有效地支持它的用戶;

7.在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。軟件工程的本質(zhì)特性:1.軟件工程關(guān)注于大型程序的構(gòu)造;軟件工程的本質(zhì)特性:1.2.2軟件工程的基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理;2.堅(jiān)持進(jìn)行階段評(píng)審;3.實(shí)行嚴(yán)格的產(chǎn)品控制;4.采用現(xiàn)代程序設(shè)計(jì)技術(shù);5.結(jié)果能清楚地審查;6.開發(fā)小組的人員應(yīng)該少而精;7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。1.2.2軟件工程的基本原理1.用分階段的生命周期計(jì)劃嚴(yán)1.2.3軟件工程方法學(xué)通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(Methodology),也稱為范型(Paradigm)。軟件工程方法學(xué)的3要素:方法、工具和過程1.2.3軟件工程方法學(xué)1.傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。結(jié)構(gòu)化方法(StructureMethod)有:

1)結(jié)構(gòu)化設(shè)計(jì)方法(SD);2)結(jié)構(gòu)化分析方法(SA);

3)結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)(SADT)4)JACKSON方法5)WARNIER方法1.傳統(tǒng)方法學(xué)2.面向?qū)ο蠓椒▽W(xué)

把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密結(jié)合起來的方法,模擬人類認(rèn)識(shí)世界解決問題的方法和過程。

面向?qū)ο蟮姆椒?對(duì)象(屬性與服務(wù)的封裝)+分類+繼承+通過消息的通訊2.面向?qū)ο蠓椒▽W(xué)1)適用于實(shí)時(shí)事物處理系統(tǒng)的有限狀態(tài)機(jī)方法(FSM);2)適用于并發(fā)軟件系統(tǒng)的PETRI網(wǎng)方法;3)以數(shù)學(xué)概念和理論為基礎(chǔ)的形式化方法,如

SDC公司的形式化開發(fā)方法FDM:(FormalDevelopmentMethodology)IBM公司的維也納開發(fā)方法VDM:

(ViennaDevelopmentMethod)

3.其他開發(fā)方法

1)適用于實(shí)時(shí)事物處理系統(tǒng)的有限狀態(tài)機(jī)方法3.其他開發(fā)方1.3軟件生命周期軟件生命周期:指軟件從提出到最終被淘汰的這個(gè)存在期。1.3軟件生命周期軟件生命周期:軟件生命周期組成:

1)軟件定義;

A.問題定義B.可行性研究C.需求分析

2)軟件開發(fā);

D.總體設(shè)計(jì)E.詳細(xì)設(shè)計(jì)

F.編碼和單元測(cè)試G.綜合測(cè)試

3)運(yùn)行維護(hù);軟件生命周期組成:1.問題定義;2.可行性研究;3.需求分析;4.總體設(shè)計(jì)(概要設(shè)計(jì));5.詳細(xì)設(shè)計(jì);6.編碼與單元測(cè)試;7.綜合測(cè)試;8.維護(hù)。軟件生命周期各個(gè)階段:1.問題定義;軟件生命周期各個(gè)階段:1.4軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過程(ISO9000):使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)。輸入:如軟件需求輸出:如軟件產(chǎn)品1.4軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一1.4.1瀑布模型1.階段間具有順序性和依賴性2.推遲實(shí)現(xiàn)的觀點(diǎn)3.質(zhì)量保證的觀點(diǎn)1.4.1瀑布模型1.階段間具有順序性和依賴性1.4.1瀑布模型傳統(tǒng)瀑布模型的特點(diǎn)提供了軟件過程模型的基本框架(模板)。強(qiáng)調(diào)了每一階段活動(dòng)的嚴(yán)格順序。質(zhì)量保證觀點(diǎn):以經(jīng)過評(píng)審確認(rèn)了的階段工作產(chǎn)品(文檔)驅(qū)動(dòng)下一階段的工作,便于管理。是一種整體開發(fā)模型,程序的物理實(shí)現(xiàn)集中在開發(fā)階段的后期,用戶在最后才能看到自己的產(chǎn)品。傳統(tǒng)瀑布模型存在什么問題?1.4.1瀑布模型傳統(tǒng)瀑布模型的特點(diǎn)優(yōu)點(diǎn):采用規(guī)范的方法;嚴(yán)格規(guī)定每個(gè)階段提交的文檔;要求每個(gè)階段交出的產(chǎn)品必須經(jīng)過驗(yàn)證。優(yōu)點(diǎn):采用規(guī)范的方法;嚴(yán)格規(guī)定每個(gè)階段提交的文檔;要求每個(gè)階1.4.1瀑布模型瀑布模型適合于用戶需求明確、完整、無重大變化的軟件項(xiàng)目開發(fā)。瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型?!捌俨寄P褪怯晌臋n驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要缺點(diǎn)。

實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行;用戶常常難以清楚地給出所有需求;用戶必須有耐心,等到系統(tǒng)開發(fā)完成。

瀑布模型的優(yōu)缺點(diǎn)1.4.1瀑布模型瀑布模型適合于用戶需求明確、完整、無重大1.4.2快速原型模型(RapidPrototypeModel)在用戶不能給出完整、準(zhǔn)確的需求說明,或者開發(fā)者不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等許多情況下,可以根據(jù)用戶的一組基本需求,快速建造一個(gè)原型(可運(yùn)行的軟件),然后進(jìn)行評(píng)估,進(jìn)一步精化、調(diào)整原型,使其滿足用戶的要求,也使開發(fā)者對(duì)將要做的事情有更好的理解。建造/修改原型

聽取用戶意見用戶測(cè)試運(yùn)行原型原型實(shí)現(xiàn)范型1.4.2快速原型模型(RapidPrototypeM1.4.2快速原型模型優(yōu)點(diǎn):不帶反饋環(huán),基本上是線性順序進(jìn)行。1.4.2快速原型模型1.4軟件過程模型原型模型存在的問題

⑴為了使原型盡快的工作,沒有考慮軟件的總體質(zhì)量和長(zhǎng)期的可維護(hù)性。

⑵為了演示,可能采用不合適的操作系統(tǒng)、編程語(yǔ)言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。

⑶開發(fā)過程不便于管理。有效的使用原型模式建造原型僅是為了定義需求,之后就被拋棄(或被部分拋棄),實(shí)際的軟件在充分考慮了質(zhì)量和可維護(hù)性之后才被開發(fā)。1.4軟件過程模型原型模型存在的問題1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證維護(hù)過程開發(fā)過程1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試1.4軟件過程模型(3)增量模型(IncrementalModel)是一種漸進(jìn)地開發(fā)逐步完善的軟件版本的模型。需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證維護(hù)針對(duì)每個(gè)構(gòu)件完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測(cè)試后交付給用戶1.4軟件過程模型(3)增量模型(Incremental1.4軟件過程模型分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼編碼編碼測(cè)試測(cè)試測(cè)試測(cè)試增量1增量2增量3增量4交付交付交付交付●●●●●

?

反復(fù)的應(yīng)用瀑布模型的基本成分和原型模型的迭代特征,每一個(gè)線型過程產(chǎn)生一個(gè)“增量”的發(fā)布或提交,該增量均是一個(gè)可運(yùn)行的產(chǎn)品。

?

早期的版本實(shí)現(xiàn)用戶的基本需求,并提供給用戶評(píng)估的平臺(tái)。增量模型1.4軟件過程模型分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼1.4軟件過程模型在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品,并分批、逐步地向用戶提交產(chǎn)品。從第一個(gè)構(gòu)件交付之日起,用戶就能做一些有用的工作。整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件,開發(fā)人員可以一個(gè)構(gòu)件一個(gè)構(gòu)件地逐步開發(fā)。逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶組織帶來的沖擊。采用增量模型比采用瀑布模型和快速原型模型需要更精心的設(shè)計(jì),但在設(shè)計(jì)階段多付出的勞動(dòng)將在維護(hù)階段獲得回報(bào)。增量模型的優(yōu)點(diǎn)1.4軟件過程模型在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)1.4軟件過程模型增量模型的困難在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計(jì)得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過程必須簡(jiǎn)單、方便,也就是說,軟件體系結(jié)構(gòu)必須是開放的。開發(fā)人員既要把軟件系統(tǒng)看作整體。又要看成可獨(dú)立的構(gòu)件,相互矛盾。多個(gè)構(gòu)件并行開發(fā),具有無法集成的風(fēng)險(xiǎn)。1.4軟件過程模型增量模型的困難在把每個(gè)新的增量構(gòu)件集成到1.4軟件過程模型(4)螺旋模型(SpiralModel)

軟件風(fēng)險(xiǎn)是任何軟件開發(fā)項(xiàng)目中都普遍存在的實(shí)際問題,項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)目所冒的風(fēng)險(xiǎn)也越大。

對(duì)于復(fù)雜的大型軟件,開發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來,加入了風(fēng)險(xiǎn)分析。在該模型中,軟件開發(fā)是一系列的增量發(fā)布,早期的迭代中,發(fā)布的增量可能是一個(gè)紙上的模型或原型,在以后的迭代中,逐步產(chǎn)生系統(tǒng)更加完善的版本。螺旋模型的基本思想是降低風(fēng)險(xiǎn)。1.4軟件過程模型(4)螺旋模型(SpiralMode1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析可看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。簡(jiǎn)化的螺旋模型1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試1.4軟件過程模型完整的螺旋模型1.4軟件過程模型完整的螺旋模型

螺旋模型風(fēng)險(xiǎn)分析工程實(shí)施用戶通信用戶評(píng)估產(chǎn)品維護(hù)項(xiàng)目產(chǎn)品增強(qiáng)項(xiàng)目新產(chǎn)品開發(fā)項(xiàng)目概念開發(fā)項(xiàng)目計(jì)劃建造及發(fā)布螺旋模型風(fēng)險(xiǎn)工程用戶通信用戶產(chǎn)品維護(hù)項(xiàng)目產(chǎn)品增強(qiáng)項(xiàng)目新產(chǎn)品1.4軟件過程模型螺旋模型的優(yōu)點(diǎn)對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo)減少了過多測(cè)試或測(cè)試不足維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別螺旋模型的特點(diǎn)風(fēng)險(xiǎn)驅(qū)動(dòng),需要相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),否則風(fēng)險(xiǎn)更大主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目,隨著過程的進(jìn)展演化,開發(fā)者和用戶能夠更好的識(shí)別和對(duì)待每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn)隨著迭代次數(shù)的增加,工作量加大,軟件開發(fā)成本增加1.4軟件過程模型螺旋模型的優(yōu)點(diǎn)1.4軟件過程模型(5)面向?qū)ο竽P蛧娙P?FountainModel)分析設(shè)計(jì)實(shí)現(xiàn)測(cè)試集成演化特點(diǎn):主要用于支持面向?qū)ο箝_發(fā)過程體現(xiàn)了軟件創(chuàng)建所固有的迭代和無間隙的特征1.4軟件過程模型(5)面向?qū)ο竽P蛧娙P?Founta1.4.6Rational統(tǒng)一過程1.RUP軟件開發(fā)經(jīng)驗(yàn)(1)迭代式開發(fā)(2)管理需求(3)使用基于構(gòu)件的體系結(jié)構(gòu)(4)可視化建模(5)貫穿于開發(fā)過程的軟件質(zhì)量驗(yàn)證(6)控制軟件變更1.4.6Rational統(tǒng)一過程1.RUP軟件開發(fā)經(jīng)圖1.10RUP軟件開發(fā)生命周期圖1.10RUP軟件開發(fā)生命周期1.4.7敏捷過程與極限編程1.敏捷過程具有高效、快速響應(yīng)變化的開發(fā)過程。(1)個(gè)體和交互勝過過程和工具;(2)可以工作的軟件勝過面面俱到的文檔;(3)客戶合作勝過合同談判;(4)響應(yīng)變化勝過遵循計(jì)劃。2.極限編程敏捷過程中最著名的一種,指把好的開發(fā)實(shí)踐運(yùn)用到極致,多應(yīng)用于軟件需求模糊的場(chǎng)合。1.4.7敏捷過程與極限編程1.敏捷過程敏捷(靈活)過程與極限編程

極限編程是敏捷過程中最有名的一個(gè),適于小型項(xiàng)目.極限編程(XP,eXtremeProgramming)對(duì)于傳統(tǒng)的軟件工程中看來是“極端的”實(shí)踐.圖1.11XP項(xiàng)目的整體開發(fā)過程敏捷(靈活)過程與極限編程

極限編程是敏捷過程中最有名的一個(gè)圖1.12XP迭代開發(fā)過程XPvaluesCommunicationSimplicityFeedbackCourageRespect圖1.12XP迭代開發(fā)過程XPvalues1.4.8微軟過程1.微軟過程準(zhǔn)則2.微軟軟件生命周期(1)規(guī)劃階段(2)設(shè)計(jì)階段(3)開發(fā)階段(4)穩(wěn)定階段(5)發(fā)布階段3.微軟過程模型1.4.8微軟過程1.微軟過程準(zhǔn)則1.4.8微軟過程

圖1.13微軟軟件生命周期階段劃分和主要里程碑1.4.8微軟過程

圖1.13微軟軟件生命周期階段劃分和主要圖1.14微軟過程的生命周期模型圖1.14微軟過程的生命周期模型

問題定義就是要確定為用戶建立什么樣的軟件系統(tǒng),軟件叫什么樣的名稱等等?!皢栴}”是指軟件最基本的問題,如:

軟件的總體目標(biāo)什么?

有什么用途?

為哪些用戶設(shè)計(jì)?

1.5問題定義階段問題定義就是要確定為用戶建立什么樣的軟件系統(tǒng),軟件叫問題定義報(bào)告的內(nèi)容包括:

1)軟件項(xiàng)目標(biāo)題;

2)軟件目標(biāo);

3)軟件用戶對(duì)象;

4)軟件規(guī)模。問題定義報(bào)告的內(nèi)容包括:

問題定義是軟件生命周期中時(shí)間最短的階段,一般都比較簡(jiǎn)單,因此在實(shí)際開發(fā)中它是最容易被忽視的一個(gè)階段。這一階段工作主要由系統(tǒng)分析員來完成,系統(tǒng)分析員要盡可能從較高的角度概括軟件所要做的工作,而不用寫明問題的實(shí)現(xiàn)細(xì)節(jié)。

問題定義是軟件生命周期中時(shí)間最短的階段,一般都比較簡(jiǎn)1.5小結(jié)軟件=程序+數(shù)據(jù)+文檔軟件危機(jī):原因,現(xiàn)象,辦法

(軟件工程學(xué))軟件工程(學(xué)):開發(fā)、運(yùn)行和維護(hù)軟件的系統(tǒng)方法軟件工程3個(gè)要素:方法、工具和過程。軟件生命周期:定義,開發(fā),運(yùn)行維護(hù)軟件過程:瀑布模型+RUP1.5小結(jié)軟件=程序+數(shù)據(jù)+文檔本章內(nèi)容結(jié)束本章內(nèi)容結(jié)束軟件工程(SoftwareEngineering)朱芳軟件工程(SoftwareEngineering)朱課程介紹及要求用工程化的方法來開發(fā)軟件課程介紹及要求用工程化的方法來開發(fā)軟件教學(xué)目標(biāo)為什么要學(xué)習(xí)這門課程有助于正確理解和認(rèn)識(shí)“軟件”的概念及其特點(diǎn)理解軟件開發(fā)面臨的問題和挑戰(zhàn)掌握軟件工程的原則、方法和思想來系統(tǒng)地開發(fā)軟件,尤其是復(fù)雜、龐大的軟件的開發(fā)了解和接觸軟件開發(fā)所需的各種技術(shù)手段理解、掌握和運(yùn)用教學(xué)目標(biāo)為什么要學(xué)習(xí)這門課程課程介紹和要求什么是軟件工程為什么需要軟件工程(產(chǎn)生背景)軟件工程需要解決那些問題軟件工程涉及那些方面內(nèi)容理解課程介紹和要求什么是軟件工程理解課程介紹和要求軟件工程概念技術(shù)過程手段工具掌握運(yùn)用運(yùn)用工程化思想進(jìn)行軟件開發(fā)需求分析軟件設(shè)計(jì)程序設(shè)計(jì)軟件維護(hù)課程介紹和要求軟件工程掌握運(yùn)用運(yùn)用工程化思想進(jìn)行軟件開發(fā)課程介紹和要求內(nèi)容組織先導(dǎo)要求程序設(shè)計(jì)語(yǔ)言最好有一定的軟件開發(fā)經(jīng)驗(yàn)課程介紹和要求內(nèi)容組織先導(dǎo)要求程序設(shè)計(jì)語(yǔ)言課程介紹和要求學(xué)習(xí)要求聽理解知識(shí)點(diǎn)和思想無需死記硬背做實(shí)踐體會(huì)軟件工程的原則、方法和技術(shù),在實(shí)踐中提高培養(yǎng)抽象思維能力培養(yǎng)獨(dú)立解決問題的能力培養(yǎng)合作精神想閱讀相關(guān)資料課程介紹和要求學(xué)習(xí)要求聽課程介紹和要求75考核方式平時(shí)+實(shí)驗(yàn)(40%)期末考試(60%)課程介紹和要求8考核方式平時(shí)+實(shí)驗(yàn)(40%)課程介紹和要求76課程實(shí)習(xí)要求(1/2)內(nèi)容選擇一個(gè)項(xiàng)目開發(fā)課題,用軟件工程的思想知道其開發(fā)過程。完成需求分析,詳細(xì)設(shè)計(jì),測(cè)試,項(xiàng)目匯報(bào)。時(shí)間待定分組以小組為單位,6—8人一組為宜課程介紹和要求9課程實(shí)習(xí)要求(1/2)內(nèi)容課程介紹和要求77課程實(shí)習(xí)要求(2/2)提交內(nèi)容電子文檔評(píng)價(jià)方法按階段遞交和打分文檔:完整性、合理性、規(guī)范性注意:嚴(yán)格按照要求執(zhí)行課程介紹和要求10課程實(shí)習(xí)要求(2/2)提交內(nèi)容軟件工程中典型案例-宇航在“勇氣”號(hào)從地球飛往火星的半年多時(shí)間內(nèi),其存儲(chǔ)器里積聚了大量的數(shù)據(jù)文件,超過了存儲(chǔ)器的負(fù)荷。這導(dǎo)致“勇氣”號(hào)從1月21日開始癱瘓?jiān)诨鹦巧?,無法向地球傳送數(shù)據(jù)。科學(xué)家雖然通過刪除存儲(chǔ)器內(nèi)的部分?jǐn)?shù)據(jù)使“勇氣”號(hào)于2月1日恢復(fù)工作,但專家仍然希望通過格式化存儲(chǔ)器來徹底消除隱患。軟件工程中典型案例-宇航在“勇氣”號(hào)從地球飛往火星的半年多時(shí)宇航1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序:DO5I=1,3誤寫為:DO5I=1.31999年9月到達(dá)火星的“火星氣候軌道器”——后來成了一個(gè)著名的笑話。工程師在計(jì)算軌道器推力的時(shí)候,混用了公制和英制的單位,從而導(dǎo)致了它的墜毀。宇航1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損電子商務(wù)2007-10-30日由于官方票務(wù)網(wǎng)站流量曾瞬時(shí)達(dá)到每小時(shí)800萬(wàn)次,超過了系統(tǒng)設(shè)計(jì)的每小時(shí)100萬(wàn)次的承受量。啟動(dòng)后第一小時(shí)從各售價(jià)渠道瞬時(shí)提交到票務(wù)系統(tǒng)的門票達(dá)到20萬(wàn)張,也超過了系統(tǒng)設(shè)計(jì)的每小時(shí)銷售15萬(wàn)張的票務(wù)處理能力。北京奧組委不得不作出停止售票的決定。從初步的情況分析,并不是帶寬的問題,主要還是系統(tǒng)后臺(tái)的數(shù)據(jù)庫(kù)的處理能力,在設(shè)計(jì)、規(guī)劃方面,還有待改進(jìn)。電子商務(wù)2007-10-30日由于官方票務(wù)網(wǎng)站流量曾瞬時(shí)達(dá)到金融2006年05月日本最大美資銀行花旗銀行出現(xiàn)重大交易系統(tǒng)故障,約27.5萬(wàn)宗公用事業(yè)款項(xiàng)的交易遭重復(fù)扣數(shù),或在完成交易后未有更新月結(jié)紀(jì)錄。金融2006年05月日本最大美資銀行花旗銀行出現(xiàn)重大交易系統(tǒng)軍事海灣戰(zhàn)爭(zhēng)中美軍使用的“愛國(guó)者”導(dǎo)彈由于未能攔截的“飛毛腿”導(dǎo)彈命中一個(gè)美軍陣地,28名美國(guó)士兵全部喪生。事后分析問題與“愛國(guó)者”的內(nèi)置時(shí)鐘有關(guān),它用以預(yù)測(cè)下一枚飛毛腿”何時(shí)出現(xiàn)?!皭蹏?guó)者”控制程序中使用的寄存器只有24個(gè)字節(jié)的長(zhǎng)度,精確度因此受到影響,系統(tǒng)運(yùn)行的時(shí)間越長(zhǎng),累積誤差也越大。海灣戰(zhàn)爭(zhēng)中,這些系統(tǒng)的運(yùn)行時(shí)間達(dá)到100小時(shí),產(chǎn)生了678米的范圍差。軍事海灣戰(zhàn)爭(zhēng)中美軍使用的“愛國(guó)者”導(dǎo)彈由于未能攔截的“飛毛腿醫(yī)療最廣為人知的是加拿大原子能公司制造的Therac-25線性加速放射器致人死亡事件。該機(jī)器由計(jì)算機(jī)控制,耗資百萬(wàn)元以上,由于5次連續(xù)性的錯(cuò)誤造成放射過量,5位病人死亡,2人重傷。死亡病人接受了超過正常劑量100倍以上的放射。醫(yī)療最廣為人知的是加拿大原子能公司制造的Therac-25線你自己親身經(jīng)歷的?你自己親身經(jīng)歷的?第1章:軟件工程學(xué)概述1.1軟件危機(jī)

60年代中期以前:通用硬件相當(dāng)普遍,軟件卻是為某個(gè)具體的應(yīng)用而編寫的。

60年代中到70年代中:軟件作坊。第1章:軟件工程學(xué)概述1.1軟件危機(jī)

軟件危機(jī):計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。(正常、不正常運(yùn)行軟件都具有這種問題)1.1.1軟件危機(jī)的介紹軟件危機(jī):計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;2)用戶對(duì)完成的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;3)軟件產(chǎn)品的質(zhì)量往往靠不?。?)軟件常常是不可維護(hù)的;5)軟件通常沒有適當(dāng)?shù)奈臋n資料;軟件危機(jī)的典型表現(xiàn):1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;軟件危機(jī)的典型表6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;7)軟件開發(fā)生產(chǎn)率提高的速度跟不上計(jì)算機(jī)應(yīng)用的發(fā)展趨勢(shì)。軟件危機(jī)的典型表現(xiàn):6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;軟件危機(jī)1.1.2產(chǎn)生軟件危機(jī)的原因1)軟件本身特點(diǎn)造成;2)軟件開發(fā)與維護(hù)的方法不正確。主要表現(xiàn):(a)忽視軟件需求分析;(b)認(rèn)為軟件開發(fā)就是寫程序并使之運(yùn)行;(c)輕視軟件維護(hù);1.1.2產(chǎn)生軟件危機(jī)的原因1)軟件本身特點(diǎn)造成;主要表

在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)很不相同:高中低早期中期后期軟件開發(fā)時(shí)期代價(jià)圖1.1引入同一修改的代價(jià)隨時(shí)間變化的趨勢(shì)在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)很不相同:1)推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并研究探索更有效的技術(shù)和方法;2)開發(fā)和使用更好的軟件工具;3)良好的組織管理措施。

1.1.3解決軟件危機(jī)的途徑1)推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并研

為了解決軟件危機(jī)產(chǎn)生的問題,軟件工程與方法學(xué)逐漸形成,然后出現(xiàn)了兩個(gè)相互相承又各有側(cè)重的學(xué)科:1)軟件工程學(xué):主要應(yīng)用工程的方法和技術(shù)研究軟件開發(fā)與維護(hù)的方法、工具和管理的一門交叉學(xué)科。2)程序設(shè)計(jì)方法學(xué):主要應(yīng)用數(shù)學(xué)的方法研究程序的性質(zhì)以及程序設(shè)計(jì)的理論和方法的學(xué)科。

為了解決軟件危機(jī)產(chǎn)生的問題,軟件工程與方法學(xué)逐漸形成1.2軟件工程1.2.1軟件工程的介紹1968年NATO會(huì)議:軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。1993年IEEE:軟件工程是(1)把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程;(2)研究(1)中提到的途徑。1.2軟件工程1.2.1軟件工程的介紹1968年NAT

1.軟件工程關(guān)注于大型程序的構(gòu)造;

2.軟件工程的中心課題是控制復(fù)雜性;

3.軟件經(jīng)常變化;

4.開發(fā)軟件的效率非常重要;

5.和諧地合作是軟件開發(fā)的關(guān)鍵;

6.軟件必須有效地支持它的用戶;

7.在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。軟件工程的本質(zhì)特性:1.軟件工程關(guān)注于大型程序的構(gòu)造;軟件工程的本質(zhì)特性:1.2.2軟件工程的基本原理1.用分階段的生命周期計(jì)劃嚴(yán)格管理;2.堅(jiān)持進(jìn)行階段評(píng)審;3.實(shí)行嚴(yán)格的產(chǎn)品控制;4.采用現(xiàn)代程序設(shè)計(jì)技術(shù);5.結(jié)果能清楚地審查;6.開發(fā)小組的人員應(yīng)該少而精;7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。1.2.2軟件工程的基本原理1.用分階段的生命周期計(jì)劃嚴(yán)1.2.3軟件工程方法學(xué)通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(Methodology),也稱為范型(Paradigm)。軟件工程方法學(xué)的3要素:方法、工具和過程1.2.3軟件工程方法學(xué)1.傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。結(jié)構(gòu)化方法(StructureMethod)有:

1)結(jié)構(gòu)化設(shè)計(jì)方法(SD);2)結(jié)構(gòu)化分析方法(SA);

3)結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)(SADT)4)JACKSON方法5)WARNIER方法1.傳統(tǒng)方法學(xué)2.面向?qū)ο蠓椒▽W(xué)

把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密結(jié)合起來的方法,模擬人類認(rèn)識(shí)世界解決問題的方法和過程。

面向?qū)ο蟮姆椒?對(duì)象(屬性與服務(wù)的封裝)+分類+繼承+通過消息的通訊2.面向?qū)ο蠓椒▽W(xué)1)適用于實(shí)時(shí)事物處理系統(tǒng)的有限狀態(tài)機(jī)方法(FSM);2)適用于并發(fā)軟件系統(tǒng)的PETRI網(wǎng)方法;3)以數(shù)學(xué)概念和理論為基礎(chǔ)的形式化方法,如

SDC公司的形式化開發(fā)方法FDM:(FormalDevelopmentMethodology)IBM公司的維也納開發(fā)方法VDM:

(ViennaDevelopmentMethod)

3.其他開發(fā)方法

1)適用于實(shí)時(shí)事物處理系統(tǒng)的有限狀態(tài)機(jī)方法3.其他開發(fā)方1.3軟件生命周期軟件生命周期:指軟件從提出到最終被淘汰的這個(gè)存在期。1.3軟件生命周期軟件生命周期:軟件生命周期組成:

1)軟件定義;

A.問題定義B.可行性研究C.需求分析

2)軟件開發(fā);

D.總體設(shè)計(jì)E.詳細(xì)設(shè)計(jì)

F.編碼和單元測(cè)試G.綜合測(cè)試

3)運(yùn)行維護(hù);軟件生命周期組成:1.問題定義;2.可行性研究;3.需求分析;4.總體設(shè)計(jì)(概要設(shè)計(jì));5.詳細(xì)設(shè)計(jì);6.編碼與單元測(cè)試;7.綜合測(cè)試;8.維護(hù)。軟件生命周期各個(gè)階段:1.問題定義;軟件生命周期各個(gè)階段:1.4軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過程(ISO9000):使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)。輸入:如軟件需求輸出:如軟件產(chǎn)品1.4軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一1.4.1瀑布模型1.階段間具有順序性和依賴性2.推遲實(shí)現(xiàn)的觀點(diǎn)3.質(zhì)量保證的觀點(diǎn)1.4.1瀑布模型1.階段間具有順序性和依賴性1.4.1瀑布模型傳統(tǒng)瀑布模型的特點(diǎn)提供了軟件過程模型的基本框架(模板)。強(qiáng)調(diào)了每一階段活動(dòng)的嚴(yán)格順序。質(zhì)量保證觀點(diǎn):以經(jīng)過評(píng)審確認(rèn)了的階段工作產(chǎn)品(文檔)驅(qū)動(dòng)下一階段的工作,便于管理。是一種整體開發(fā)模型,程序的物理實(shí)現(xiàn)集中在開發(fā)階段的后期,用戶在最后才能看到自己的產(chǎn)品。傳統(tǒng)瀑布模型存在什么問題?1.4.1瀑布模型傳統(tǒng)瀑布模型的特點(diǎn)優(yōu)點(diǎn):采用規(guī)范的方法;嚴(yán)格規(guī)定每個(gè)階段提交的文檔;要求每個(gè)階段交出的產(chǎn)品必須經(jīng)過驗(yàn)證。優(yōu)點(diǎn):采用規(guī)范的方法;嚴(yán)格規(guī)定每個(gè)階段提交的文檔;要求每個(gè)階1.4.1瀑布模型瀑布模型適合于用戶需求明確、完整、無重大變化的軟件項(xiàng)目開發(fā)。瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型。“瀑布模型是由文檔驅(qū)動(dòng)的”這個(gè)事實(shí)也是它的一個(gè)主要缺點(diǎn)。

實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行;用戶常常難以清楚地給出所有需求;用戶必須有耐心,等到系統(tǒng)開發(fā)完成。

瀑布模型的優(yōu)缺點(diǎn)1.4.1瀑布模型瀑布模型適合于用戶需求明確、完整、無重大1.4.2快速原型模型(RapidPrototypeModel)在用戶不能給出完整、準(zhǔn)確的需求說明,或者開發(fā)者不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等許多情況下,可以根據(jù)用戶的一組基本需求,快速建造一個(gè)原型(可運(yùn)行的軟件),然后進(jìn)行評(píng)估,進(jìn)一步精化、調(diào)整原型,使其滿足用戶的要求,也使開發(fā)者對(duì)將要做的事情有更好的理解。建造/修改原型

聽取用戶意見用戶測(cè)試運(yùn)行原型原型實(shí)現(xiàn)范型1.4.2快速原型模型(RapidPrototypeM1.4.2快速原型模型優(yōu)點(diǎn):不帶反饋環(huán),基本上是線性順序進(jìn)行。1.4.2快速原型模型1.4軟件過程模型原型模型存在的問題

⑴為了使原型盡快的工作,沒有考慮軟件的總體質(zhì)量和長(zhǎng)期的可維護(hù)性。

⑵為了演示,可能采用不合適的操作系統(tǒng)、編程語(yǔ)言、效率低的算法,這些不理想的選擇成了系統(tǒng)的組成部分。

⑶開發(fā)過程不便于管理。有效的使用原型模式建造原型僅是為了定義需求,之后就被拋棄(或被部分拋棄),實(shí)際的軟件在充分考慮了質(zhì)量和可維護(hù)性之后才被開發(fā)。1.4軟件過程模型原型模型存在的問題1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證維護(hù)過程開發(fā)過程1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試1.4軟件過程模型(3)增量模型(IncrementalModel)是一種漸進(jìn)地開發(fā)逐步完善的軟件版本的模型。需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證維護(hù)針對(duì)每個(gè)構(gòu)件完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測(cè)試后交付給用戶1.4軟件過程模型(3)增量模型(Incremental1.4軟件過程模型分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼編碼編碼測(cè)試測(cè)試測(cè)試測(cè)試增量1增量2增量3增量4交付交付交付交付●●●●●

?

反復(fù)的應(yīng)用瀑布模型的基本成分和原型模型的迭代特征,每一個(gè)線型過程產(chǎn)生一個(gè)“增量”的發(fā)布或提交,該增量均是一個(gè)可運(yùn)行的產(chǎn)品。

?

早期的版本實(shí)現(xiàn)用戶的基本需求,并提供給用戶評(píng)估的平臺(tái)。增量模型1.4軟件過程模型分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼1.4軟件過程模型在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品,并分批、逐步地向用戶提交產(chǎn)品。從第一個(gè)構(gòu)件交付之日起,用戶就能做一些有用的工作。整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件,開發(fā)人員可以一個(gè)構(gòu)件一個(gè)構(gòu)件地逐步開發(fā)。逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給客戶組織帶來的沖擊。采用增量模型比采用瀑布模型和快速原型模型需要更精心的設(shè)計(jì),但在設(shè)計(jì)階段多付出的勞動(dòng)將在維護(hù)階段獲得回報(bào)。增量模型的優(yōu)點(diǎn)1.4軟件過程模型在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)1.4軟件過程模型增量模型的困難在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計(jì)得便于按這種方式進(jìn)行擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過程必須簡(jiǎn)單、方便,也就是說,軟件體系結(jié)構(gòu)必須是開放的。開發(fā)人員既要把軟件系統(tǒng)看作整體。又要看成可獨(dú)立的構(gòu)件,相互矛盾。多個(gè)構(gòu)件并行開發(fā),具有無法集成的風(fēng)險(xiǎn)。1.4軟件過程模型增量模型的困難在把每個(gè)新的增量構(gòu)件集成到1.4軟件過程模型(4)螺旋模型(SpiralModel)

軟件風(fēng)險(xiǎn)是任何軟件開發(fā)項(xiàng)目中都普遍存在的實(shí)際問題,項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)目所冒的風(fēng)險(xiǎn)也越大。

對(duì)于復(fù)雜的大型軟件,開發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來,加入了風(fēng)險(xiǎn)分析。在該模型中,軟件開發(fā)是一系列的增量發(fā)布,早期的迭代中,發(fā)布的增量可能是一個(gè)紙上的模型或原型,在以后的迭代中,逐步產(chǎn)生系統(tǒng)更加完善的版本。螺旋模型的基本思想是降低風(fēng)險(xiǎn)。1.4軟件過程模型(4)螺旋模型(SpiralMode1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析可看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。簡(jiǎn)化的螺旋模型1.4軟件過程模型快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試1.4軟件過程模型完整的螺旋模型1.4軟件過程模型完整的螺旋模型

螺旋模型風(fēng)險(xiǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論