軟件工程導(dǎo)論_第1頁
軟件工程導(dǎo)論_第2頁
軟件工程導(dǎo)論_第3頁
軟件工程導(dǎo)論_第4頁
軟件工程導(dǎo)論_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程導(dǎo)論第一頁,共七十九頁,2022年,8月28日1.張海藩.軟件工程導(dǎo)論.北京:清華大學出版社,2008.2.鄭人杰.軟件工程概論.北京:清華大學出版社,2003.3.史濟民.軟件工程原理方法與應(yīng)用.北京:高等教育出版社,2002.4.鄧良松等.軟件工程(第二版).西安:西安電子科技大學出版社,2004.5.SoftwareEngineering,6thEditionSommerville.I.(影印版)機械工業(yè)出版社2003.4.教材及主要參考書:第二頁,共七十九頁,2022年,8月28日第一章軟件工程學概述11.1軟件危機1.3

軟件生命周期1.5小結(jié)1.4軟件過程1.2軟件工程第三頁,共七十九頁,2022年,8月28日軟件是計算機系統(tǒng)的重要組成部分;軟件是邏輯產(chǎn)品,需要計算機硬件和系統(tǒng)軟件的支撐;軟件是計算機控制系統(tǒng)的指揮中樞;軟件是信息轉(zhuǎn)換器,它能對信息進行加工、處理或變換;軟件是工具,在人們的生活、工作、休閑,在社會的經(jīng)濟、軍事、政治、文化、科學技術(shù)、教育中發(fā)揮具大作用;第四頁,共七十九頁,2022年,8月28日軟件—

定義能夠完成預(yù)定功能和性能的可執(zhí)行的指令(計算機程序)軟件是使得程序能夠適當?shù)夭僮餍畔⒌臄?shù)據(jù)結(jié)構(gòu)描述程序的操作和使用的文檔第五頁,共七十九頁,2022年,8月28日現(xiàn)在,被普遍接受的軟件的定義是:

軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關(guān)數(shù)據(jù)(data)及其說明文檔(document)。Software=Program+Data+Document第六頁,共七十九頁,2022年,8月28日軟件—

軟件特征軟件是一種邏輯實體,具有抽象性軟件沒有明顯的制造過程軟件在使用過程中,沒有磨損、老化的問題軟件對硬件和環(huán)境有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低軟件是復(fù)雜的,而且以后會更加復(fù)雜軟件的成本相當昂貴大多數(shù)軟件是自定的,而不是通過已有的構(gòu)件組裝而來的軟件工作牽涉到很多社會因素第七頁,共七十九頁,2022年,8月28日2008年,我國軟件產(chǎn)業(yè)繼續(xù)保持高速增長態(tài)勢,實現(xiàn)產(chǎn)業(yè)收入達1935.5億元,同比增長31.2%,比電子信息制造業(yè)高出11.4個百分點。其中,軟件產(chǎn)品收入703.9億元,仍為軟件產(chǎn)業(yè)的主要組成部分;軟件技術(shù)服務(wù)增長最快,達356.3億元,同比增長48.2%。在之前的7年,我國軟件產(chǎn)業(yè)收入從2001年的796億元增長到2007年的5834億元,增長了6.3倍,占全球軟件產(chǎn)業(yè)的份額也從1.5%上升到8.7%。第八頁,共七十九頁,2022年,8月28日國外軟件企業(yè)的人才結(jié)構(gòu)畸形的人才結(jié)構(gòu)?高層管理員程序員軟件開發(fā)員系統(tǒng)分析員圖1.1國外人才結(jié)構(gòu)圖第九頁,共七十九頁,2022年,8月28日我國的軟件人才卻呈橄欖形(缺少高級管理者和基礎(chǔ)程序員),必須多發(fā)展“塔基”(軟件藍領(lǐng)),才能形成合理的軟件人才結(jié)構(gòu)。圖1.2軟件人員從業(yè)結(jié)構(gòu)第十頁,共七十九頁,2022年,8月28日拉布雷阿的焦油坑(MuralofLaBreaTarPits)圖1.3拉布雷阿的焦油坑第十一頁,共七十九頁,2022年,8月28日在未來的十年內(nèi),無論是在技術(shù)還是管理方法上,都看不出有任何突破性的進步,能夠獨自保證在十年內(nèi)大幅度地提高軟件的生產(chǎn)率、可靠性和簡潔性。Thereisnosingledevelopment,ineithertechnologyormanagementtechnique,whichbyitselfpromisesevenoneorder-of-magnitudeimprovementwithinadecadeinproductivity,inreliability,insimpllicity.NoSilverBullet?第十二頁,共七十九頁,2022年,8月28日

微軟公司,測試人員與開發(fā)人員數(shù)量之比一般為1.5~2.5左右,即一個開發(fā)人員背后有兩位左右測試人員在工作,以保證軟件產(chǎn)品的質(zhì)量。在WINDOWS2000開發(fā)團隊中,微軟用了250多個項目經(jīng)理、1700多個開發(fā)人員,而內(nèi)部測試人員則達到3200人,比前兩者的之和還要多。有關(guān)機構(gòu)的研究表明,國外軟件開發(fā)機構(gòu)40%的工作量花在軟件測試上,測試費用占項目總費用的30%至50%。對于一些要求高可靠、高安全的軟件,測試費用可能相當于整個項目費用的3至5倍。軟件產(chǎn)品的高質(zhì)量,主要依賴科學的軟件測試。第十三頁,共七十九頁,2022年,8月28日1.1軟件危機“軟件危機”(Softwarecrisis)的出現(xiàn)是由于軟件的規(guī)模越來越大,復(fù)雜度不斷增加,軟件需求量增大。而軟件開發(fā)過程是一種高密集度的腦力勞動,軟件開發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要。致使大量質(zhì)量低劣的軟件涌向市場,有的花費大量人力財力,而在開發(fā)過程中就夭折。1.1軟件危機第十四頁,共七十九頁,2022年,8月28日1.1.1軟件危機的介紹1.1軟件危機一.什么是軟件危機?軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。二.軟件危機的表現(xiàn)形式對軟件開發(fā)成本和進度的估計常常很不準確;用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;軟件產(chǎn)品的質(zhì)量往往靠不住,Bug一大堆,Patch一個接一個;第十五頁,共七十九頁,2022年,8月28日4.軟件常常是不可維護的;5.軟件通常沒有適當?shù)奈臋n資料;6.軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升;7.軟件開發(fā)生產(chǎn)率提高的速度跟不上計算機應(yīng)用普及的趨勢。1.1軟件危機二.軟件危機的表現(xiàn)形式(續(xù))第十六頁,共七十九頁,2022年,8月28日1.1.2產(chǎn)生軟件危機的原因(軟件開發(fā)人員

的錯誤觀點)

“有一個對目標的概括描述就足以著手編寫程序了,許多細節(jié)可以在以后再補充”“所謂軟件開發(fā)就是編寫程序并設(shè)法使它運行”“用戶對軟件的要求不斷變化,然而軟件是柔軟而靈活的,可以輕易地改動”“軟件投入生產(chǎn)性運行以后需要的維護工作并不多,而且維護是一件很容易做的簡單工作”1.1軟件危機第十七頁,共七十九頁,2022年,8月28日

產(chǎn)生軟件危機的原因1.軟件缺乏“可見性”,軟件的開發(fā)過程的進展情況難以衡量,軟件質(zhì)量難以評價;2.軟件維護意味著改正或修改原來的設(shè)計,使維護較難;3.軟件規(guī)模大,須由多人分工合作,管理難度大;4.軟件專業(yè)人員對軟件開發(fā)和維護有糊涂觀念,常采用錯誤的方法和技術(shù);錯誤的認識和做法主要表現(xiàn),(1)忽視軟件需求分析的重要性;(2)忽視軟件維護1.1軟件危機第十八頁,共七十九頁,2022年,8月28日1.1軟件危機4.選擇好的軟件開發(fā)工具。1.端正認識,糾正“軟件就是程序”的錯誤觀念;2.認識到軟件開發(fā)是組織良好、管理嚴密,各類人員協(xié)同配合、共同完成的工程項目;3.多使用已成功的技術(shù)和方法,探索更有效的方法;1.1.3消除軟件危機的途徑第十九頁,共七十九頁,2022年,8月28日1.2軟件工程1.2軟件工程1.2.1軟件工程的介紹1.什么是軟件工程?為了經(jīng)濟的獲得可靠的,在實際機器上高效運行的軟件,而建立和使用的好的工程原則。

采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程。第二十頁,共七十九頁,2022年,8月28日2.軟件工程三要素

過程、方法和工具軟件工程過程方法工具1.2軟件工程第二十一頁,共七十九頁,2022年,8月28日軟件工程過程方法工具軟件工程釆用層次化的方法,每個層次都包括過程、方法、工具三要素。方法支撐過程和工具、過程和工具促進方法學的研究。將系統(tǒng)的、規(guī)范的、可量化的方法運用到軟件工程的始終,滲透到軟件工程的過程、方法和工具中。為軟件工程的過程和方法提供自動化或半自動化的工具支持貫穿軟件開發(fā)的各個環(huán)節(jié)完成項目的技術(shù)手段(傳統(tǒng)方法學、面向?qū)ο蠓椒▽W)第二十二頁,共七十九頁,2022年,8月28日3.軟件工程發(fā)展階段軟件工程的發(fā)展已經(jīng)歷了四個重要階段:4)第四代軟件工程—構(gòu)件工程3)第三代軟件工程—過程工程2)第二代軟件工程—對象工程1)第一代軟件工程—傳統(tǒng)的軟件工程1.2軟件工程第二十三頁,共七十九頁,2022年,8月28日軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1)第一代軟件工程—傳統(tǒng)的軟件工程2)第二代軟件工程—對象工程3)第三代軟件工程—過程工程4)第四代軟件工程—構(gòu)件工程60年代末到70年代為了克服“軟件危機”(Softwarecrisis)提出“軟件工程”的名詞,將軟件開發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。1.2軟件工程3.軟件工程發(fā)展階段第二十四頁,共七十九頁,2022年,8月28日1.軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1)第一代軟件工程—傳統(tǒng)的軟件工程2)第二代軟件工程—對象工程3)第三代軟件工程—過程工程4)第四代軟件工程—構(gòu)件工程80年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計,演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對象工程。1.2軟件工程3.軟件工程發(fā)展階段第二十五頁,共七十九頁,2022年,8月28日1.軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1)第一代軟件工程—傳統(tǒng)的軟件工程2)第二代軟件工程—對象工程3)第三代軟件工程—過程工程4)第四代軟件工程—構(gòu)件工程80年代中開始,人們在軟件開發(fā)的實踐過程中認識到:提高軟件生產(chǎn)率,保證軟件質(zhì)量的關(guān)鍵是“軟件過程”,是軟件開發(fā)和維護中的管理和支持能力,逐步形成軟件過程工程。1.2軟件工程3.軟件工程發(fā)展階段第二十六頁,共七十九頁,2022年,8月28日1.軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1)第一代軟件工程—傳統(tǒng)的軟件工程2)第二代軟件工程—對象工程3)第三代軟件工程—過程工程4)第四代軟件工程—構(gòu)件工程90年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進展,軟件系統(tǒng)的開發(fā)可通過使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無需從頭開始構(gòu)造,以此達到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。1.2軟件工程3.軟件工程發(fā)展階段第二十七頁,共七十九頁,2022年,8月28日4.軟件工程目標

在給定成本、進度的前提下,開發(fā)出具有:有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可適應(yīng)性、可追蹤性、可移植性、可互操作性并滿足用戶需求的軟件產(chǎn)品。5.軟件工程基本原則

在軟件開發(fā)過程中,為了達到軟件開發(fā)目標,必須遵循下列原則:

抽象模塊化信息隱藏局部化一致性完全性可驗證性1.2軟件工程第二十八頁,共七十九頁,2022年,8月28日1.2軟件工程6.軟件工程的特性(1)軟件工程關(guān)注于大型程序的構(gòu)造;(2)軟件工程的中心課題是控制復(fù)雜性;(3)軟件經(jīng)常變化;(4)開發(fā)軟件的效率非常重要;(5)和諧地合作是開發(fā)軟件的關(guān)鍵;(6)軟件必須有效地支持它的用戶;(7)在軟件工程領(lǐng)域中是由具有一種文化背景的人替另一種文化背景的人創(chuàng)造產(chǎn)品。第二十九頁,共七十九頁,2022年,8月28日1.2.2軟件工程的基本原理1.用分階段的生命周期計劃嚴格管理;2.堅持進行階段評審;3.實行嚴格的產(chǎn)品控制;4.采用現(xiàn)代程序設(shè)計技術(shù);5.結(jié)果應(yīng)能清楚地審查;6.開發(fā)小組的人員應(yīng)該少而精;7.承認不斷改進軟件工程實踐的必要性。1.2軟件工程第三十頁,共七十九頁,2022年,8月28日1.3軟件生存期1.3軟件生存期從68年北大西洋公約的軟件可靠性會議(NATO)上,首次提出“軟件工程”的概念,提出了在軟件生產(chǎn)中采用工程化的方法,采用一系列科學的、現(xiàn)代化的方法技術(shù)來開發(fā)軟件。這種工程化的思想貫穿到軟件開發(fā)和維護的全過程。了解有關(guān)軟件生存期等重要的概念,對掌握、學習和應(yīng)用軟件工程的方法、技術(shù)是極有益的。第三十一頁,共七十九頁,2022年,8月28日

硬件失效率曲線,是一U型曲線(即浴盆曲線)。軟件失效率曲線,它沒有U型曲線的右半翼。因為軟件不存在磨損和老化問題,然而存在退化問題。失效率時間硬件失效率曲線失效率時間實際曲線理想曲線軟件失效率曲線軟、硬件失效情況的對比1.3軟件生存期圖1.5軟、硬件失效情況對比第三十二頁,共七十九頁,2022年,8月28日按照規(guī)模劃分軟件類別參加人數(shù)研制期限產(chǎn)品規(guī)模(源代碼行)微型11–4周0.5K小型11–6月1K–2K中型2-51–2年5–50K大型5-202–3年50–500K甚大型100-10004–5年1M極大型2000-50005–10年1M–10M按照服務(wù)對象的范圍劃分軟件項目軟件—由客戶委托開發(fā)的軟件。產(chǎn)品軟件—由軟件開發(fā)機構(gòu)開發(fā),提供給市場的。按照軟件工作方式劃分實時處理軟件 交互式軟件 批處理軟件此外,還可以按照軟件的功能、使用的頻度及按照軟件失效的影響進行劃分。1.3軟件生存期第三十三頁,共七十九頁,2022年,8月28日1.3軟件生存期軟件生命周期分為三大階段(8個小階段)一、軟件定義階段1、問題定義階段:“要解決的問題是什么?”2、可行性研究階段:“對上一階段所確定的問題是否值得去解?是否有可行的解決辦法?”3、需求分析階段:“為解決這個問題,目標系統(tǒng)必須做什么?”第三十四頁,共七十九頁,2022年,8月28日1.3軟件生存期軟件生命周期分為三大階段(8個小階段)二、軟件開發(fā)階段4、總體設(shè)計階段:“應(yīng)該怎樣概括地實現(xiàn)目標系統(tǒng)?”5、詳細設(shè)計階段:“應(yīng)該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”6、編碼和單元測試階段:寫出正確的容易理解、易于維護的程序模塊并仔細測試每個模塊。7、綜合測試:通過各類測試使軟件達到預(yù)定要求。三、軟件維護階段:8、通過各種必要的維護活動使系統(tǒng)持久地滿足用戶的需要。第三十五頁,共七十九頁,2022年,8月28日1.4軟件過程(生存期模型)

軟件生存周期模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。目前有若干軟件生存期模型,各種模型有其不同的特點,并適用于不同的開發(fā)方法。1.4軟件過程瀑布模型(waterfallmodel)快速原型模型(rapidprototypingmodel)增量模型(incrementalmodel)螺旋模型(spiralmodel)噴泉模型(fountainmodel)智能模型(intelligentmodel)第三十六頁,共七十九頁,2022年,8月28日問題定義編碼需求分析設(shè)計可行性研究運行與維護測試開發(fā)階段運行階段計劃階段(目標與范圍說明書)(可行性論證論告)(維護報告)(測試報告)(程序)(設(shè)計文檔)(需求說明書)1.4.1瀑布模型(文檔驅(qū)動)圖1.6瀑布模型1.4軟件過程主要思想:軟件開發(fā)過程與軟件生命周期是一致的相鄰二階段之間存在因果關(guān)系需對階段性產(chǎn)品進行評審第三十七頁,共七十九頁,2022年,8月28日優(yōu)點:使軟件開發(fā)過程可以在分析、設(shè)計、編碼、測試和維護的框架下進行;軟件開發(fā)過程具有系統(tǒng)性、可控性,克服了軟件開發(fā)的隨意性。缺點:項目開始階段用戶很難精確的提出產(chǎn)品需求,由于技術(shù)進步,用戶對系統(tǒng)深入的理解,修改需求十分普遍。項目開發(fā)晚期才能得到程序的運行版本,這時修改軟件需求和開發(fā)中的錯誤代價很大。采用線性模型組織項目開發(fā)經(jīng)常發(fā)生開發(fā)小組人員“堵塞狀態(tài)”,特別是項目的開始和結(jié)束。1.4軟件過程第三十八頁,共七十九頁,2022年,8月28日按照傳統(tǒng)的瀑布模型進行軟件開發(fā),由于將軟件開發(fā)這樣一個充滿回朔的過程硬性地割裂開,雖然強調(diào)各個階段的復(fù)審,而用戶所提出的需求往往是模糊的,因此很難得到一個完整精確的規(guī)格說明,直接影響到后期的開發(fā),針對其主要缺點推出了快速原型模型。什么是原型模型方法?

原型是軟件開發(fā)過程中,軟件的一個早期可運行的版本,它反映了最終系統(tǒng)的部分重要特性。原型模型的基本思想是花費少量代價建立一個可運行的系統(tǒng),使用戶及早獲得學習的機會,強調(diào)的是軟件開發(fā)人員與用戶的不斷交互,通過原型的演進不斷適應(yīng)用戶任務(wù)改變的需求。將維護和修改階段的工作盡早進行,使用戶驗收提前,從而使軟件產(chǎn)品更加適用。1.4軟件過程1.4.2快速原型模型第三十九頁,共七十九頁,2022年,8月28日由于軟件項目的特點和運行原型的目的不同,分為兩種類型:軟件原型的分類2、追加(addon)型也稱快速建立漸進原型RCP法(RapidCyclicPrototyping)法采用循環(huán)漸進的開發(fā)方式,對系統(tǒng)模型作連續(xù)精化,即先構(gòu)造一個功能簡單而且質(zhì)量要求不高的模型系統(tǒng),將系統(tǒng)需要具備的性質(zhì)逐步添加上去,通過不斷地擴充修改,逐步追加新的要求,直至所有性質(zhì)全部滿足,此時的原型模型也就是最終的產(chǎn)品。1、廢棄(throwaway)型也稱為快速建立需求規(guī)格原型RSP法(RapidSpecificPrototyping),先構(gòu)造一個功能簡單而且質(zhì)量要求不高的模型系統(tǒng),針對這個模型系統(tǒng)反復(fù)進行分析修改,讓用戶學習。待需求說明書一旦確定,原型將被廢棄,后階段的工作仍按照瀑布模型開發(fā)。1.4軟件過程第四十頁,共七十九頁,2022年,8月28日快速分析

快速確定軟件系統(tǒng)的基本要求,確定原型所要體現(xiàn)的特性(總體結(jié)構(gòu),功能,性能、界面等)。2.構(gòu)造原型

根據(jù)基本規(guī)格說明,忽略細節(jié),只考慮主要特性,快速構(gòu)造一個可運行的系統(tǒng)。有三類原型:用戶界面原型,功能原型,性能原型。3.運行和評價原型

用戶試用原型并與開發(fā)者之間頻繁交流,發(fā)現(xiàn)問題,目的是驗證原型的正確性。4.修正與改進

對原型進行修改,增刪。運行評價

構(gòu)造快速分析或修改快速原型模型開發(fā)過程快速原型法的工作模型如圖所示,按以下步驟循環(huán)執(zhí)行。圖1.7快速原型模型1.4軟件過程第四十一頁,共七十九頁,2022年,8月28日構(gòu)造原型運行/評價原型原型完成否要細部說明否嚴格說明細部效果滿意否整理原型提供文檔修正改進原型YYNN快速分析,確定初步規(guī)格說明YN圖1.8快速原型化開發(fā)過程

快速建立系統(tǒng)原型進行系統(tǒng)的分析和構(gòu)造有如下優(yōu)點:1、增進軟件開發(fā)人員和用戶對系統(tǒng)需求的理解。便于將用戶模糊的功能需求明確化。2、為用戶提供了一種強有力的學習手段。3、易于確定系統(tǒng)的性能,是理解和確認軟件需求規(guī)格說明的工具。4、按照RCP

法建立的原型即為最終的產(chǎn)品。1.4軟件過程缺點:1、對于大型軟件項目,原型模型需要足夠的人力資源以建立足夠的原型組。2、原型模型要求開發(fā)者和客戶在一段時間內(nèi)共同完成原型系統(tǒng)的開發(fā),如果任何一方?jīng)]有實現(xiàn)承諾,會導(dǎo)致原型開發(fā)的失敗。3、如果系統(tǒng)難以模塊化,建造原型所需構(gòu)件就有問題。第四十二頁,共七十九頁,2022年,8月28日1.4.3增量模型(incrementalmodel)增量模型是一種非整體開發(fā)的模型。根據(jù)增量的方式和形式的不同,分為基于瀑布模型的漸增模型和基于原型的快速原型模型。使用增量模型開發(fā)模型時,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能完成特定的功能。第一個增量構(gòu)件往往提供最核心的功能。例字處理軟件

注意:在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。

1.4軟件過程第四十三頁,共七十九頁,2022年,8月28日增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細節(jié),從而較早地產(chǎn)生工作軟件。1.4軟件過程第四十四頁,共七十九頁,2022年,8月28日定義概要需求把需求分配給增量設(shè)計系統(tǒng)結(jié)構(gòu)開發(fā)系統(tǒng)增量驗證增量組裝增量驗證系統(tǒng)系統(tǒng)不完全最終系統(tǒng)圖1.9增量模型1.4軟件過程1.4.3增量模型(incrementalmodel)第四十五頁,共七十九頁,2022年,8月28日1.4.4螺旋模型

對于大型軟件,只開發(fā)一個原型往往達不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風險分析。螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:1.確定目標、方案和限制條件;2.評估方案、標識風險和解決風險;3.開發(fā)確認產(chǎn)品;4.計劃下一周期工作。圖1.10螺旋模型1.4軟件過程第四十六頁,共七十九頁,2022年,8月28日1.4.5噴泉模型分析系統(tǒng)設(shè)計軟件設(shè)計實現(xiàn)圖1.11噴泉模型該模型是由和于1990年提出的一種新的開發(fā)模型。主要用于采用對象技術(shù)的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。

其特點如下:

1、開發(fā)過程有分析、系統(tǒng)設(shè)計、軟件設(shè)計和實現(xiàn)4個階段。2、各階段相互重疊,它反映了軟件過程并行性的特點。3、以分析為基礎(chǔ),資源消耗成塔型。4、反映了軟件過程迭代性的自然特性,從高層返回低層無資源消耗。5、強調(diào)增量開發(fā),整個過程是一個迭代的逐步提煉的過程。

1.4軟件過程第四十七頁,共七十九頁,2022年,8月28日1.4.6智能模型(intelligentmodel)獲取需求需求分析具體描述優(yōu)化程序調(diào)整驗證維護知識庫專家系統(tǒng)程序也稱為基于知識的軟件開發(fā)模型,是知識工程與軟件工程相結(jié)合的軟件開發(fā)模型。其主要特點是必須建立知識庫,并將模型本身、軟件工程知識、特定領(lǐng)域知識放入知識庫。具體描述可以使用形式功能規(guī)約,也可以使用知識處理語言描述等。其模型如圖所示:圖1.12智能模型1.4軟件過程第四十八頁,共七十九頁,2022年,8月28日1.4軟件過程1.4.7Rational統(tǒng)一過程(RationalUnifiedProcess)圖1.13RUP軟件開發(fā)生命周期第四十九頁,共七十九頁,2022年,8月28日1.4軟件過程優(yōu)點:使用現(xiàn)有或新開發(fā)的構(gòu)件定義體系結(jié)構(gòu)的系統(tǒng)化方法;軟件質(zhì)量評估貫穿整個開發(fā)過程,由全體成員參與;描述了如何控制、跟蹤和監(jiān)控修改,確保迭代開發(fā)的成功;采用迭代和漸增的方式來開發(fā)軟件,整個項目開發(fā)過程由多個迭代過程組成;提供了將管理的可見性引入開發(fā)過程的機制。缺點:RUP只是一個開發(fā)過程,并沒有涵蓋軟件過程的全部內(nèi)容,缺少關(guān)于軟件運行和支持等方面的內(nèi)容;沒有支持多項目的開發(fā)結(jié)構(gòu),這在一定程度上降低了在開發(fā)組織內(nèi)大范圍實現(xiàn)重用的可能性。第五十頁,共七十九頁,2022年,8月28日1.4軟件過程1.4.8敏捷過程與極限編程1.敏捷過程由四個價值觀生命組成:1)個體和交互勝過過程和工具;2)可以工作的軟件勝過面面俱到的文檔;3)客戶合作勝過合同談判;4)響應(yīng)變化勝過遵循計劃。注意:聲明只不過是對不同因素在保證軟件開發(fā)成功方面所起作用的大小做了比較,說一個因素更重要并不是說其他因素不重要,更不是說某個因素可以被其他因素代替。第五十一頁,共七十九頁,2022年,8月28日1.4軟件過程2.極限編程極限:是指把好的開發(fā)實踐運用到極致。1)極限編程的有效實踐客戶作為開發(fā)團隊的成員;使用用戶素材;短交付周期;驗收測試;結(jié)對編程;集體所有;測試驅(qū)動開發(fā);持續(xù)集成;開放的工作空間;及時調(diào)整計劃;簡單的設(shè)計;重構(gòu);使用隱喻。第五十二頁,共七十九頁,2022年,8月28日1.4軟件過程2)極限編程的整體開發(fā)過程圖1.14XP項目的整體開發(fā)過程

第五十三頁,共七十九頁,2022年,8月28日1.4軟件過程3)極限編程的迭代過程圖1.15XP迭代開發(fā)過程第五十四頁,共七十九頁,2022年,8月28日1.4軟件過程特點:具有對變化和不確定性的更快速、更敏捷的反應(yīng)特性,而且在快速的同時仍然能夠保持可持續(xù)的開發(fā)速度。能較好地適應(yīng)商業(yè)競爭環(huán)境下對小型項目提出的有限資源和有限開發(fā)的時間約束。第五十五頁,共七十九頁,2022年,8月28日1.4軟件過程1.4.9微軟過程1.微軟過程準則:項目計劃應(yīng)該兼顧未來的不確定因素;用有效的風險管理來減少不確定因素的影響;經(jīng)常生成并快速地測試軟件的過渡版本,從而提高產(chǎn)品的穩(wěn)定性和可預(yù)測性;采用快速循環(huán)、遞進的開發(fā)過程;用創(chuàng)造性的工作來平衡產(chǎn)品特性和產(chǎn)品成本;項目進度表應(yīng)該具有較高穩(wěn)定性和權(quán)威性;使用小型項目組并發(fā)地完成開發(fā)工作;在項目早期把軟件配置項基線化,項目后期則凍結(jié)產(chǎn)品;使用原型驗證概念,對項目進行早期論證;把零缺陷作為追求的目標;時程碑評審會的目的是改進工作,切忌相互指責。第五十六頁,共七十九頁,2022年,8月28日2.微軟過程把軟件周期劃分成5個階段:圖1.16微軟軟件生命周期階段劃分和主要里程碑1.4軟件過程第五十七頁,共七十九頁,2022年,8月28日作業(yè):P325,7,10第五十八頁,共七十九頁,2022年,8月28日2可行性研究第二章可行性研究2.1可行性研究的任務(wù)2.2可行性研究過程2.3系統(tǒng)流程圖2.4數(shù)據(jù)流圖2.5數(shù)據(jù)字典2.6成本/效益分析第五十九頁,共七十九頁,2022年,8月28日2.1可行性研究的任務(wù)2.1可行性研究的任務(wù)可行性研究的目的:就是用最小的代價在盡可能短的時間內(nèi)確定問題是否有解,是否值得去解??尚行匝芯康娜齻€方面:(1)技術(shù)可行性:現(xiàn)有技術(shù)能夠?qū)崿F(xiàn)這個系統(tǒng)嗎?(2)經(jīng)濟可行性:經(jīng)濟效益能否超過開發(fā)成本?(3)操作可行性:系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通嗎?第六十頁,共七十九頁,2022年,8月28日例:開發(fā)計算機輔助設(shè)計(CAD)

系統(tǒng)取代當前的手工設(shè)計過程系統(tǒng)分析員為手工設(shè)計系統(tǒng)和CAD目標系統(tǒng)進行成本效益分析T:繪一幅圖的平均時間,單位是小時。d:每小時繪圖的平均成本,單位是元。n:每年繪圖的數(shù)目。r:用CAD系統(tǒng)繪圖減少的繪圖時間比例。p:用CAD系統(tǒng)繪圖的百分比。利用CAD系統(tǒng)繪圖每年可以節(jié)省的經(jīng)費為:B=r×T×n×d×p當r=1/4,T=4小時,n=8000/年,d=20元/小時,p=60%代入上式計算得B=96000元/年。用CAD繪圖比用手工系統(tǒng)繪圖平均每年約節(jié)省96000元。第六十一頁,共七十九頁,2022年,8月28日2.2可行性研究的過程2.2可行性研究過程1.復(fù)查系統(tǒng)規(guī)模和目標2.研究目前正在使用的系統(tǒng)3.導(dǎo)出新系統(tǒng)的高層邏輯模型4.進一步定義問題5.導(dǎo)出和評價供選擇的解法6.推薦行動方針7.草擬開發(fā)計劃8.書寫文檔提交審查第六十二頁,共七十九頁,2022年,8月28日2.3系統(tǒng)流程圖基本符號:見教材P39,圖2.1系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件(程序、文檔、數(shù)據(jù)庫)。它是物理流圖而不是程序流程圖2.3系統(tǒng)流程圖2.3.1符號系統(tǒng)符號:見教材P39,圖2.2第六十三頁,共七十九頁,2022年,8月28日2.3系統(tǒng)流程圖2.3系統(tǒng)流程圖2.3.2例子事務(wù)庫存清單程序定貨信息報告生成程序定貨報告庫存清單主文件第六十四頁,共七十九頁,2022年,8月28日2.3系統(tǒng)流程圖2.3系統(tǒng)流程圖2.3.3分層對復(fù)雜的系統(tǒng)需分層地描繪,可以使閱讀者感到更清晰,即一個總圖可以細化成一系列的細化圖。例如:上例中的“庫存清單程序”,就可以進一步細化到程序算法。第六十五頁,共七十九頁,2022年,8月28日2.4數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,DFD)是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標識了一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需的加工處理。數(shù)據(jù)存儲數(shù)據(jù)源點或終點加工加工名數(shù)據(jù)流數(shù)據(jù)流名文件名實體名箭頭圓或橢圓單或雙杠矩形框還有一些輔助的圖例:2.4數(shù)據(jù)流圖2.4.1數(shù)據(jù)流圖的圖符四種基本圖形符號:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*與

+或互斥+第六十六頁,共七十九頁,2022年,8月28日顧客出版社驗證訂單匯總訂單訂單出版社訂單圖書目錄文件顧客檔案待處理訂單文件正確訂單一批訂單出版社檔案文件訂貨存根文件DFD圖的例子加工名編號加工名編號文件名文件名2.4數(shù)據(jù)流圖第六十七頁,共七十九頁,2022年,8月28日顧客出版社驗證訂單匯總訂單訂單出版社訂單圖書目錄文件顧客檔案待處理訂單文件正確訂單一批訂單出版社檔案文件訂貨存根文件畫圖步驟:1、確定外部實體及輸入、輸出數(shù)據(jù)流。2、確定分解頂層的加工。3、確定使用的文件。4、用數(shù)據(jù)流將各部分連接起來,形成數(shù)據(jù)封閉。注意:標注各加工框及數(shù)據(jù)流名稱。例1:圖書預(yù)定系統(tǒng)P44圖2.62.4數(shù)據(jù)流圖第六十八頁,共七十九頁,2022年,8月28日領(lǐng)書單

進書通知

購書單

缺書單

例:售書系統(tǒng)學生教材購銷系統(tǒng)書庫保管員領(lǐng)書單

進書通知

進書通知

購書單

缺書單

1銷售2采購書庫保管員學生F1教材存量表

F2缺書登記表

第六十九頁,共七十九頁,2022年,8月28日例復(fù)印機控制軟件的數(shù)據(jù)流圖第七十頁,共七十九頁,2022年,8月28日2.4數(shù)據(jù)流圖2.4.3命名P451.為數(shù)據(jù)流命名2.為處理(加工)命名2.4.4用途數(shù)據(jù)流圖的基本用途:做信息交流的工具;數(shù)據(jù)流圖的主要用途:做分析和設(shè)計的工具。

分析員在研究系統(tǒng)時多用系統(tǒng)流程圖,那樣更清晰具體;開發(fā)設(shè)計人員多用數(shù)據(jù)流圖,因為數(shù)據(jù)流圖更著重描繪系統(tǒng)要完成的功能。對比參見P43圖2.5,P44圖2.6,2.7第七十一頁,共七十九頁,2022年,8月28日

“先全局后局部,先整體后細節(jié),先抽象后具體”

通??蓪⑦@種分層的DFD圖,分為頂層、中間層、底層。具體步驟:1。先確定系統(tǒng)范圍,畫出頂層的DFD圖。2。逐層分解頂層DFD圖,獲得若干中間層DFD圖。3。畫出底層的DFD圖。

2.4.5畫分層DFD圖的方法頂層圖說明了系統(tǒng)的邊界,即系統(tǒng)的輸入和輸出數(shù)據(jù)流,頂層圖只有一張。底層圖由一些不能再分解的加工組成,這些加工都已足夠簡單,稱為基本加工。在頂層和底層之間的是中間層。中間層的數(shù)據(jù)流圖描述了某個加工的分解,而它的組成部分又要進一步分解。畫各層DFD圖時,“由外向內(nèi)”。2.4數(shù)據(jù)流圖第七十二頁,共七十九頁,2022年,8月28日

溫馨提示

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

最新文檔

評論

0/150

提交評論