版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程學(xué)概述
(Introduction)前言Programmingisfun,butdevelopingqualitysoftwareishard.---PhilippeKruchten2outline軟件軟件危機(jī)軟件工程軟件生命周期軟件過程及模型3outline軟件軟件危機(jī)軟件工程軟件生命周期軟件過程及模型4軟件的概念軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。程序是按事先設(shè)計(jì)和的功能性能要求執(zhí)行的指令序列(instructions)數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)(datastructures)文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料(documents)
軟件=程序+數(shù)據(jù)+文檔程序=算法+數(shù)據(jù)結(jié)構(gòu)軟件是人類心靈和智慧在虛擬空間中的投射。5問題1有哪些類型的程序設(shè)計(jì)語言?面向機(jī)器匯編語言、機(jī)器語言等面向過程
Fortran,Pascal,C等面向?qū)ο?/p>
C++,Java等面向問題結(jié)構(gòu)化查詢語言SQL等6問題2在軟件開發(fā)過程中會(huì)產(chǎn)生哪些文檔?可行性研究報(bào)告需求規(guī)格說明書概要設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書測(cè)試報(bào)告用戶手冊(cè)……….7問題3軟件開發(fā)過程中為什么要編寫文檔?便于對(duì)軟件開發(fā)的管理和維護(hù)便于各種人員的交流有哪些文檔標(biāo)準(zhǔn)國際標(biāo)準(zhǔn)ISO行業(yè)標(biāo)準(zhǔn)IEEE、CMMI國家標(biāo)準(zhǔn)GB企業(yè)標(biāo)準(zhǔn)8CaseAnalysis19案例黃河水量調(diào)度綜合監(jiān)視系統(tǒng)系統(tǒng)開發(fā)流程:瀑布模型開發(fā)工具:VisualBASIC.NET地理信息系統(tǒng):ARCIMS數(shù)據(jù)庫管理系統(tǒng):MicrosoftSQLServer7.0運(yùn)行環(huán)境:局域網(wǎng)絡(luò)(LAN)操作系統(tǒng)(WindowsNTServer2000)系統(tǒng)結(jié)構(gòu):三層Browser/Server結(jié)構(gòu)10系統(tǒng)介紹黃河水量調(diào)度綜合監(jiān)視系統(tǒng)主要功能水量調(diào)度實(shí)時(shí)水情監(jiān)視監(jiān)視與預(yù)警流域信息查詢氣象信息查詢水調(diào)資料查詢水情信息查詢引退水信息查詢降雨信息查詢水質(zhì)信息查詢水調(diào)方案查詢重要文檔查詢功能設(shè)置以及地圖標(biāo)繪11實(shí)時(shí)水情監(jiān)視12河道概況13生成報(bào)表14水庫概況選擇水庫名稱后,電子地圖會(huì)定位到相應(yīng)位置,并彈出水庫概況信息窗口15水庫概況16水庫概況-庫容曲線17云圖應(yīng)用查詢18水庫水情19日雨量信息該站雨量信息20時(shí)段雨量信息21雨量信息圖22墑情信息圖23軟件的特點(diǎn)表現(xiàn)形式軟件是一種邏輯實(shí)體,具有抽象性。生產(chǎn)方式軟件的開發(fā)過程中沒有明顯的制造過程,大多數(shù)軟件仍是定制的。要求
軟件產(chǎn)品不允許誤差維護(hù)在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題24軟件的特點(diǎn)軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工的開發(fā)方式軟件本身是復(fù)雜的實(shí)際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性軟件成本相當(dāng)昂貴25軟件的分類按軟件的功能進(jìn)行劃分:系統(tǒng)軟件應(yīng)用軟件按軟件規(guī)模進(jìn)行劃分:類別參加人員數(shù)研制期限源程序行數(shù)
微型1 1~4周0.5k小型1 1~6月1k~2k中型2~5 1~2年5k~50k大型5~20 2~3年50k~100k甚大型100~10004~5年1M(=1000k)極大型2000~50005~10年1M~10M26軟件的發(fā)展軟件發(fā)展的四個(gè)階段軟件發(fā)展存在的問題27軟件發(fā)展的四個(gè)階段1950---1965
沒有系統(tǒng)的軟件開發(fā)方法和管理機(jī)制、自定義軟件、批處理、有限分布。1965---1975
產(chǎn)生人機(jī)交互的新概念、新技術(shù)軟件產(chǎn)品、多用戶、實(shí)時(shí)、數(shù)據(jù)庫。281973---1988
微處理器的出現(xiàn)并廣泛應(yīng)用 分布式系統(tǒng)、嵌入智能、低成本硬件、消費(fèi)者的影響。1988---至今
廣域和局域網(wǎng)絡(luò)迅速普及 強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)、專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡(luò)、并行計(jì)算、網(wǎng)絡(luò)計(jì)算機(jī)。軟件發(fā)展的四個(gè)階段29軟件發(fā)展存在的問題軟件開發(fā)能力不能滿足人們的需要。社會(huì)對(duì)軟件的依賴程度加大,人們普遍關(guān)注軟件的安全和可靠性。建造高可靠性、高質(zhì)量軟件的任務(wù)任重路遠(yuǎn)。若干年前開發(fā)的應(yīng)用軟件經(jīng)過幾十次修改已無人認(rèn)識(shí)它的內(nèi)部結(jié)構(gòu),己經(jīng)不可維護(hù)。30outline軟件軟件危機(jī)軟件工程軟件生命周期軟件過程及模型31案例分析1:IBM360美國IBM公司在1963年至1966年開發(fā)的IBM360的操作系統(tǒng)。這一項(xiàng)目花了5000人一年的工作量,最多時(shí)有1000人投入開發(fā)工作,寫出了近100萬行源序。......據(jù)統(tǒng)計(jì),這個(gè)操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個(gè)程序錯(cuò)誤而修正的結(jié)果。......這個(gè)項(xiàng)目的負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時(shí)說:“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計(jì)工作正像這樣一個(gè)泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰也沒有料到問題竟會(huì)陷入這樣的困境......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項(xiàng)目的典型事例為人們所記取。SoftwareCrisis!32人月神話:“沒有一種單純的技術(shù)或管理上的進(jìn)步,能夠獨(dú)立地承諾在10年內(nèi)大幅度地提高軟件的生產(chǎn)率、可靠性和簡潔性”。1、大前提:軟件活動(dòng)包含根本任務(wù)和次要任務(wù)根本任務(wù)——打造構(gòu)成抽象軟件實(shí)體的復(fù)雜概念結(jié)構(gòu),次要任務(wù)——使用編程語言表達(dá)這些抽象實(shí)體,并在時(shí)間和空間內(nèi)將它們映射成機(jī)器語言。2、小前提:現(xiàn)有解決方案致力于解決次要任務(wù)考察和評(píng)估幾乎現(xiàn)有所有的軟件工程解決方案,布魯克斯指出:現(xiàn)有所有方案全都在致力于解決軟件工程中的次要問題。3、結(jié)論:沒有銀彈無論這些方案多么完善,都不可能在根本上解決問題,即使將全部次要任務(wù)的時(shí)間縮減到零,也不會(huì)帶來生產(chǎn)率數(shù)量級(jí)上的提高。33案例分析2:Ariane5June4,1996EuropeanSpaceAgencylostnewestrocket,theAriane5,successortotheAriane4Morethan$370Millionlostonfirstflight34案例分析2:Ariane5TheAriane5softwarereusedthespecificationsfromtheAriane4,buttheAriane5'sflightpathwasconsiderablydifferentandbeyondtherangeforwhichthereusedcomputerprogramhadbeendesigned.Adataconversionfroma64-bitfloatingpointto16-bitsignedintegervaluecausedanarithmeticoverflow,asthefloatingpointnumberhadavaluetoolargetoberepresentedbya16-bitsignedinteger.Itisoneofthemostinfamouscomputerbugsinhistory35軟件危機(jī)的概念軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題絕不僅僅是不能正常運(yùn)行的軟件才具有的,實(shí)際上,幾乎所有軟件都不同程度地存在這些問題。Keypoints:howtodevelopnewsoftwarehowtosupportoldsoftware36軟件危機(jī)的典型表現(xiàn)典型表現(xiàn):對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住。軟件常常是不可維護(hù)的。軟件通常沒有適當(dāng)?shù)奈臋n資料。軟件成本在計(jì)算機(jī)系統(tǒng)總成本所占的比例逐年上升。軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用普及的速度。37開發(fā)成本高舉例38產(chǎn)生軟件危機(jī)的原因客觀:軟件本身的特點(diǎn)軟件的規(guī)模加大、復(fù)雜性提高、性能增強(qiáng)軟件是邏輯產(chǎn)品,尚未完全認(rèn)識(shí)其本質(zhì)和特點(diǎn)主觀:不正確的開發(fā)、管理方法缺乏有效的、系統(tǒng)的開發(fā)、維護(hù)大型軟件項(xiàng)目的技術(shù)手段和管理方法用戶對(duì)軟件需求的描述和軟件開發(fā)人員對(duì)需求的理解往往存在差異計(jì)劃不周,最終導(dǎo)致進(jìn)度拖延沒有充分的文檔資料軟件可靠性缺少度量的標(biāo)準(zhǔn),質(zhì)量無法保證忽視軟件維護(hù),使其維護(hù),不易升級(jí)39outline軟件軟件危機(jī)軟件工程軟件生命周期軟件過程及模型40軟件工程的概念必須意識(shí)到:“軟件”編程,它有自己的生命周期
(lifecycle)。大型軟件系統(tǒng)的開發(fā)與其它工程項(xiàng)目如建造橋梁、制造飛機(jī)、輪船等的開發(fā)是同理的。
“軟件工程”(SoftwareEngineering)NATOConference,Garmisch,Germany,1968.解決問題的想法:軟件危機(jī)根源解決途徑軟件工程41軟件工程定義Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料。IEEE:將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中。FritzBauer:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。42軟件工程定義概括地說,軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。43軟件工程定義軟件工程是一門交叉學(xué)科軟件開發(fā)技術(shù):
軟件開發(fā)方法軟件開發(fā)過程軟件工具和軟件工程環(huán)境軟件工程管理:
軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)
軟件工程所包含的內(nèi)容不是一成不變的,隨著人們對(duì)軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。應(yīng)該用發(fā)展的眼光看待它。44
轉(zhuǎn)變對(duì)軟件開發(fā)的認(rèn)識(shí):
上升
程序系統(tǒng)
轉(zhuǎn)變思維定式:
上升
程序員系統(tǒng)工程師(系統(tǒng)分析員)
工程化訓(xùn)練45a“quality”focusprocessmodelmethodstools方法使用的順序;要求交付的文檔資料;為保證質(zhì)量和適應(yīng)變化所需要的管理;軟件開發(fā)各個(gè)階段完成的里程碑。軟件開發(fā)提供了“如何做”的技術(shù)。為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境,CASE軟件工程三要素46軟件工程的歷史起源于20世紀(jì)50年代但是從學(xué)術(shù)的角度看,軟件工程還是一個(gè)年輕的學(xué)科第一次會(huì)議在20世紀(jì)60年代后期在80年代才從計(jì)算機(jī)科學(xué)分離開47軟件工程的歷史1、60年代末~80年代初狀況:軟件系統(tǒng)的規(guī)模、復(fù)雜性以及在關(guān)鍵領(lǐng)域的廣泛應(yīng)用促進(jìn)了軟件開發(fā)過程采納工程化的方法進(jìn)行管理。研究:開發(fā)模型、支持工具、開發(fā)方法。成果:瀑布模型、結(jié)構(gòu)化語言(Pascal等)、結(jié)構(gòu)化方法、各種管理方法(如費(fèi)用估算、文檔復(fù)審)。事件:前期主要研究系統(tǒng)實(shí)現(xiàn)技術(shù);后期則開始強(qiáng)調(diào)管理和軟件質(zhì)量。焦點(diǎn):軟件項(xiàng)目482、80年代初~現(xiàn)在
狀況:“軟件工廠”的概念已經(jīng)提出。研究:軟件生產(chǎn)技術(shù),特別是軟件復(fù)用技術(shù)和軟件生產(chǎn)管理的研究和實(shí)踐。成果:提出了具有廣泛應(yīng)用前景的面向?qū)ο蠓椒ê拖嚓P(guān)的編程語言。事件:軟件過程改進(jìn)。在工業(yè)實(shí)踐中建立起一種量化的評(píng)估程序,判定軟件組織成熟的程度。焦點(diǎn):軟件過程軟件工程的歷史493、近幾年
研究從過程管理轉(zhuǎn)向產(chǎn)品開發(fā),更加注重新的程序開發(fā)范型和軟件生產(chǎn)。范圍:面向agent語言、復(fù)用技術(shù)、需求分析規(guī)格說明的形式化研究、高智能高自動(dòng)化的CASE成為熱點(diǎn)。軟件工程的歷史50軟件工程原理Boehm于1983年提出7條基本原理:(1)用分階段的生命周期計(jì)劃嚴(yán)格管理(2)堅(jiān)持進(jìn)行階段評(píng)審(3)實(shí)行嚴(yán)格的產(chǎn)品控制——基線配置管理
(Baselineconfigurationmanagement)(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)(5)結(jié)果應(yīng)能清楚地審查—setstandards(6)開發(fā)小組的成員應(yīng)該少而精(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性51outline軟件軟件危機(jī)軟件工程軟件生命周期軟件過程及模型52軟件生命周期軟件的生命周期是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動(dòng)的全周期。從形成概念開始,經(jīng)過研制,交付使用,在使用中不斷增補(bǔ)修訂,直到最后退役,讓位于新的軟件產(chǎn)品的全過程。生命周期的構(gòu)成:軟件定義問題定義可行性研究需求分析軟件開發(fā)總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試軟件維護(hù)維護(hù)退役53軟件生命周期問題定義“要解決的問題是什么?”確定要開發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求可行性研究“對(duì)于問題定義所確定的問題有可行的解決方法嗎?”了解用戶要求和現(xiàn)實(shí)環(huán)境從技術(shù)、經(jīng)濟(jì)、市場(chǎng)等方面研究并論證開發(fā)該軟件系統(tǒng)的可行性54軟件生命周期可行性研究(cont.)技術(shù)可行性:當(dāng)前的軟件開發(fā)方法和工具能否支持需求的實(shí)現(xiàn);操作可行性:用戶能否在特定的環(huán)境下使用這個(gè)軟件;經(jīng)濟(jì)可行性:開發(fā)和使用、維護(hù)這個(gè)軟件的成本能否被用戶所接受。階段性產(chǎn)品可行性論證報(bào)告制定初步項(xiàng)目開發(fā)計(jì)劃(人員,進(jìn)度)55軟件生命周期需求分析“為了解決問題,目標(biāo)系統(tǒng)必須做什么?”任務(wù):確定用戶對(duì)軟件系統(tǒng)的需求:功能需求:軟件必須要完成的功能;性能需求:軟件的安全性、可靠性、可維護(hù)性、精度、錯(cuò)誤處理、適應(yīng)性、用戶培訓(xùn)等;運(yùn)行環(huán)境約束:待開發(fā)的軟件產(chǎn)品必須滿足的環(huán)境要求重要性:軟件開發(fā)的依據(jù),軟件驗(yàn)收的標(biāo)準(zhǔn)56軟件生命周期需求分析(cont.)困難:難以說清、動(dòng)態(tài)變化、歧義、復(fù)雜。應(yīng)用軟件的需求分析涉及應(yīng)用領(lǐng)域的知識(shí)和經(jīng)驗(yàn)。需求分析過程需求分析人員必須與用戶不斷、反復(fù)地交流和商討,使用戶需求逐步準(zhǔn)確、一致、完全。方法:抽象、問題分解、快速原型、多視點(diǎn)等面向數(shù)據(jù)流的分析方法、面向數(shù)據(jù)的分析方法、面向?qū)ο蟮姆治龇椒üぞ撸篟ationalRose,WitClass,VisualModel57
需求分析階段性產(chǎn)品軟件需求規(guī)格說明書SRS用軟件需求規(guī)格說明語言描述軟件系統(tǒng)的功能需求、性能需求、接口需求、設(shè)計(jì)需求、軟件產(chǎn)品的基本結(jié)構(gòu)、采用的開發(fā)標(biāo)準(zhǔn)和驗(yàn)收原則等。用戶手冊(cè)概要58軟件生命周期總體設(shè)計(jì)工具
面向數(shù)據(jù)流的設(shè)計(jì)方法結(jié)構(gòu)圖面向數(shù)據(jù)的設(shè)計(jì)方法面向?qū)ο蟮脑O(shè)計(jì)方法RationalRose階段性產(chǎn)品概要設(shè)計(jì)規(guī)格說明書數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明書集成測(cè)試計(jì)劃59軟件生命周期詳細(xì)設(shè)計(jì)“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”任務(wù)細(xì)化概要設(shè)計(jì)所生成的各個(gè)模塊,并詳細(xì)描述程序模塊的內(nèi)部細(xì)節(jié)(算法,數(shù)據(jù)結(jié)構(gòu)等),形成可編程的程序模塊,制訂單元測(cè)試計(jì)劃階段新產(chǎn)品詳細(xì)設(shè)計(jì)規(guī)格說明書,單元測(cè)試計(jì)劃60軟件生命周期編碼和單元測(cè)試任務(wù)把軟件設(shè)計(jì)轉(zhuǎn)換成程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的仔細(xì)測(cè)試每個(gè)單元模塊61軟件生命周期編碼和單元測(cè)試方法以詳細(xì)設(shè)計(jì)規(guī)格說明書為依據(jù)、基于某種程序設(shè)計(jì)語言進(jìn)行編碼。
結(jié)構(gòu)化程序設(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì)工具Eclipse,VisualStudio.NET,etcIDE階段產(chǎn)品源程序代碼62軟件生命周期綜合測(cè)試任務(wù)將已測(cè)試過的模塊按一定順序組裝起來,按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測(cè)試。
方法用戶參與,以軟件需求規(guī)格說明書為依據(jù)進(jìn)行測(cè)試工具專用測(cè)試工具階段性產(chǎn)品可供用戶使用的軟件產(chǎn)品(文檔,源程序)63軟件生命周期軟件運(yùn)行確認(rèn)測(cè)試后的軟件安裝在用戶環(huán)境中;測(cè)試通過后移交用戶使用;盡量擴(kuò)大軟件發(fā)行量發(fā)揮更大的社會(huì)和經(jīng)濟(jì)效益;軟件使用過程中用戶要認(rèn)真收集軟件錯(cuò)誤,并撰寫軟件問題報(bào)告和軟件維護(hù)報(bào)告64軟件生命周期軟件維護(hù)軟件工作環(huán)境不斷變化,軟件也必然跟著變化,軟件必須不斷進(jìn)化以滿足客戶的需求變化,這是軟件產(chǎn)品最根本的特性。軟件維護(hù)占用軟件開發(fā)60%以上的工作量。正確性維護(hù)擴(kuò)充性維護(hù)適應(yīng)性維護(hù)階段性產(chǎn)品:軟件產(chǎn)品的新版本
65outline軟件軟件危機(jī)軟件工程軟件生命周期軟件過程及模型66軟件過程軟件過程是近十年來人們關(guān)注的焦點(diǎn)。軟件過程規(guī)定了獲取、供應(yīng)、開發(fā)、操作、和維護(hù)軟件時(shí),要實(shí)施的過程、活動(dòng)和任務(wù)。其目的是為各種人員提供一個(gè)公共的框架,以便用相同的語言進(jìn)行交流。軟件過程模型是軟件過程的抽象表示。軟件過程模型也常稱為:
軟件工程模式軟件生存周期模型67軟件過程模型建造-修正模型瀑布模型快速原型模型增量模型螺旋模型噴泉模型形式化方法模型基于構(gòu)件的開發(fā)模型RUP敏捷過程與極限編程微軟過程模型注:軟件過程模型是不斷發(fā)展的,每種模型都有各自的優(yōu)缺點(diǎn),使用時(shí)可組合多種模型。68建造-修正模型BuildandFixORCodelikeHell(魯莽編碼)從一個(gè)大致的想法開始工作,然后經(jīng)過非正規(guī)的設(shè)計(jì)、編碼、調(diào)試和測(cè)試方法,最后完成工作。可能有或可能沒有規(guī)范發(fā)布(可能)69建造-修正模型好處:成本可能很低。只需要很少的專業(yè)知識(shí),任何寫過程序的人都可以。對(duì)于一些非常小的、開發(fā)完后就會(huì)很快丟棄的軟件可以采用。缺點(diǎn):對(duì)于規(guī)模稍大的項(xiàng)目,采用這種模型是很危險(xiǎn)的。70傳統(tǒng)的瀑布模型實(shí)際的瀑布模型瀑布模型711.階段間具有順序性和依賴性前一階段的工作完成之后,才能開始后一階段的工作;前一階段的輸出文檔就是后一階段的輸入文檔。2.推遲實(shí)現(xiàn)的觀點(diǎn)對(duì)于規(guī)模較大的軟件項(xiàng)目來說,往往編碼開始得越早最終完成開發(fā)工作所需要的時(shí)間反而越長。3.質(zhì)量保證的觀點(diǎn)每個(gè)階段都必須完成規(guī)定的文檔,是“文檔驅(qū)動(dòng)”的模型;每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。瀑布模型的特點(diǎn)721.瀑布模型的優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。2.瀑布模型的缺點(diǎn):只能通過文檔了解產(chǎn)品,不經(jīng)過實(shí)踐的需求是不切實(shí)際的。3.瀑布模型適用于:需求是預(yù)知的;軟件實(shí)現(xiàn)方法是成熟的;項(xiàng)目周期較短。瀑布模型的優(yōu)缺點(diǎn)73導(dǎo)致問題的主要原因用戶與開發(fā)者之間存在著差異,由于沒有有效的溝通渠道或媒介,這種差異常常無法協(xié)調(diào)。2.用戶由于不熟悉信息技術(shù),可能提出非常含糊甚至不可行的需求,這種需求經(jīng)常被開發(fā)人員所誤解。3.經(jīng)驗(yàn)表明,一旦用戶開始使用一個(gè)計(jì)算機(jī)系統(tǒng)他們對(duì)目標(biāo)系統(tǒng)的理解可能又會(huì)發(fā)生很多變化這導(dǎo)致原始需求失效。更嚴(yán)重的是一個(gè)大型系統(tǒng)往往需要很多人,花幾年的時(shí)間才能完成。在這期間,用戶的需求和環(huán)境可能發(fā)生了大變化,從而使最終的系統(tǒng)不能使用。74
實(shí)際上,軟件開發(fā),特別是開發(fā)的早期階段,應(yīng)該是學(xué)習(xí)和實(shí)踐的過程,這個(gè)活動(dòng)(action)應(yīng)該包括開發(fā)人員和用戶兩個(gè)方面。盡管用戶在開始時(shí)說不清楚所要求的未來軟件系統(tǒng)(目標(biāo)系統(tǒng))會(huì)是什么樣子(需求),但他們卻可以對(duì)IT人員開發(fā)的系統(tǒng)非常熟練地進(jìn)行挑剔!這就啟發(fā)我們能否一開始就給用戶展示一個(gè)目標(biāo)系統(tǒng)的的雛形,讓用戶評(píng)頭論足,然后逐步進(jìn)行修改,直至成功。這就是所謂的快速原型模型。
解決辦法75快速原型模型快速原型模型快速原型:是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。
76適用于用戶驅(qū)動(dòng)的系統(tǒng)(即需求模糊或隨時(shí)間變化的系統(tǒng))軟件產(chǎn)品的開發(fā)基本上是線性、順序的改善的用戶參與提高系統(tǒng)的實(shí)用性、可維護(hù)性節(jié)省開發(fā)的投入、縮短整個(gè)軟件的開發(fā)周期本質(zhì)就是“快速”優(yōu)點(diǎn)77原型模型存在的問題用戶有時(shí)誤解了原型的角色:例如他們可能誤解原型應(yīng)該和真實(shí)系統(tǒng)一樣可靠缺少控制:由于用戶可能不斷提出新要求,因而原型迭代的周期很難控制額外的花費(fèi):研究結(jié)果表明構(gòu)造一個(gè)原型可能需要10%額外花費(fèi)為了盡快實(shí)現(xiàn)原型,采用了不合適的技術(shù),運(yùn)行效率可能會(huì)受影響原型法要求開發(fā)者與用戶密切接觸,有時(shí)這是不可能的,例如外包軟件。78注意雖然有問題存在,但是快速原型模型仍是軟件開發(fā)的一個(gè)有效的過程模型。關(guān)鍵是定義了開始的游戲規(guī)則,即用戶與開發(fā)者兩方面必須達(dá)成一致:原型被建造僅是為了定義需求,之后被拋棄(或至少部分被拋棄),實(shí)際的軟件在充分考慮了質(zhì)量和可維護(hù)行之后才被開發(fā)。79構(gòu)建原型的方法1.手工繪制一個(gè)書面原型,或采用簡單的開發(fā)平臺(tái),如微機(jī),構(gòu)造一個(gè)功能型界面。2.使用開發(fā)工具,快速開發(fā)一個(gè)初步的、符合用戶基本(主要)需求的、可運(yùn)行的原型。3.借用一個(gè)商品化的,或第三方開發(fā)的類似系統(tǒng),或?qū)Τ晒浖墓δ軓?fù)用(部分的或全部的)請(qǐng)用戶評(píng)價(jià)是否符合需求,在明確了基本需求之后,再著手開發(fā)自己的原型。80CaseAnalysis281案例:構(gòu)建原型《全省雨水情監(jiān)視預(yù)警系統(tǒng)》
項(xiàng)目初期需求不是很清晰,難以獲得完整的需求,瀑布模型不適用,考慮使用快速原型模型,先構(gòu)建一個(gè)原型系統(tǒng)給用戶用,在用戶使用的過程中獲取更多的需求。
構(gòu)建好的原型系統(tǒng)就是用戶和開發(fā)人員之間進(jìn)行溝通的紐帶。82系統(tǒng)介紹 《全省雨水情監(jiān)視預(yù)警系統(tǒng)》根據(jù)今年省水利廳的防汛要求可以隨時(shí)隨地地讓防汛有關(guān)工作人員看到報(bào)警信息,當(dāng)出現(xiàn)緊急情況時(shí),能主動(dòng)把報(bào)警信息推送到這些工作人員的電腦桌面,也可以以短消息或者圖片的形式發(fā)到工作人員的移動(dòng)設(shè)備上,使相關(guān)人員隨時(shí)了解實(shí)時(shí)信息,為監(jiān)視、分析、決策、指揮提供靈活方便的信息獲取手段。83“客戶端登錄”功能原型在本界面用戶輸入服務(wù)器地址、用戶名及密碼,可以進(jìn)行登錄,也可以勾選自動(dòng)登錄以便下次運(yùn)行時(shí)自動(dòng)使用已保存的用戶名與密碼進(jìn)行登錄。84“自動(dòng)預(yù)警”功能原型
當(dāng)有預(yù)警消息傳送至桌面,會(huì)進(jìn)行判斷客戶端是否開啟,若客戶端開啟,則自動(dòng)打開預(yù)警消息的彈窗并顯示預(yù)警消息,否則會(huì)等待下次開啟客戶端時(shí)進(jìn)行離線傳送。85“用戶管理”功能原型
用戶管理用于管理接受預(yù)警信息的用戶。用戶權(quán)限分為3種,超級(jí)管理員,管理員,普通用戶。超級(jí)管理員默認(rèn)只有一位,可以查看編輯所有用戶信息,管理員可以查看編輯自己的用戶信息以及普通用戶的信息,普通用戶僅僅可以查看自己的用戶信息。86“用戶管理”功能原型87“測(cè)站管理”功能原型
測(cè)站管理功能實(shí)現(xiàn)對(duì)所有測(cè)站的基礎(chǔ)信息的管理,包括測(cè)站基礎(chǔ)數(shù)據(jù)瀏覽與查看、測(cè)站的預(yù)警標(biāo)識(shí)的設(shè)置。測(cè)站信息是系統(tǒng)數(shù)據(jù)的關(guān)鍵基礎(chǔ)部分,通過測(cè)站的添加與刪除,為系統(tǒng)提供了測(cè)站的預(yù)警范圍,同時(shí)可以根據(jù)預(yù)警需要進(jìn)行設(shè)置測(cè)站是否預(yù)警。88“測(cè)站管理”功能原型89“預(yù)警管理”功能原型
預(yù)警管理頁面是對(duì)預(yù)警信息進(jìn)行管理,預(yù)警信息是預(yù)警系統(tǒng)當(dāng)中重要預(yù)警功能重要的組成部分,包括降雨量門檻,流量門檻,水位門檻,水庫站門檻。
預(yù)警管理頁面將對(duì)這些門檻進(jìn)行設(shè)置,設(shè)置后的門檻值為系統(tǒng)提供預(yù)警條件,當(dāng)預(yù)警條件改變時(shí)也可以通過預(yù)警管理頁面編輯對(duì)門檻值進(jìn)行修改。90“預(yù)警管理”功能原型91“日志管理”功能原型
日志管理頁面用于查詢歷史記錄,可以查詢特定用戶的預(yù)警信息,可以查看歷史記錄狀態(tài)是已經(jīng)發(fā)送,未發(fā)送,還是通過離線發(fā)送,可以對(duì)歷史記錄進(jìn)行刪除。日志管理頁面是預(yù)警系統(tǒng)結(jié)果反饋的重要組成部分。92“日志管理”功能原型93“消息管理”功能原型
消息管理用于用戶自定義自己習(xí)慣的消息格式,每個(gè)用戶對(duì)于消息格式有不同的要求,消息管理界面用于對(duì)所有的消息格式總共9類進(jìn)行編輯,對(duì)于消息格式不正確的格式,系統(tǒng)會(huì)自動(dòng)判斷,并且自動(dòng)替換成正確的消息格式。消息管理功能為用戶提供了多樣性選擇,便于系統(tǒng)擴(kuò)展。94“消息管理”功能原型95增量模型
增量模型把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。96增量模型需求分析驗(yàn)證規(guī)格說明驗(yàn)證概要設(shè)計(jì)驗(yàn)證針對(duì)每個(gè)構(gòu)件,完成詳細(xì)設(shè)計(jì)、編碼和集成、經(jīng)測(cè)試后交付給用戶維護(hù)97增量模型適用于:適用于需求經(jīng)常改變的軟件開發(fā)過程。如果在項(xiàng)目既定的商業(yè)要求期限之前不可能找到足夠的開發(fā)人員,在這種情況下,增量模型顯得特別有用。98螺旋模型螺旋模型的基本思想:使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。
簡化的螺旋模型99完整的螺旋模型100螺旋模型適用于:特別適用于龐大、復(fù)雜并具有高風(fēng)險(xiǎn)的系統(tǒng)。適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目。101支持軟件復(fù)用。利用預(yù)先包裝好的軟件構(gòu)件來構(gòu)造應(yīng)用系統(tǒng)。領(lǐng)域分析構(gòu)件可變性分析構(gòu)建可復(fù)用構(gòu)件領(lǐng)域模型領(lǐng)域基準(zhǔn)體系結(jié)構(gòu)圖可復(fù)用構(gòu)件庫分析體系結(jié)構(gòu)設(shè)計(jì)獲取構(gòu)件構(gòu)件特化和修改評(píng)價(jià)構(gòu)件組裝和測(cè)試開發(fā)未找到構(gòu)件的部分應(yīng)用系統(tǒng)工程應(yīng)用系統(tǒng)領(lǐng)域工程基于構(gòu)件的開發(fā)模型102形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開發(fā)方法。軟件開發(fā)的全過程中,從需求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 45152-2024老齡化社會(huì)基于社群的綜合保健與照顧服務(wù)框架
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《口腔工藝技術(shù)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東酒店管理職業(yè)技術(shù)學(xué)院《數(shù)據(jù)處理與實(shí)驗(yàn)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《電子系統(tǒng)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東環(huán)境保護(hù)工程職業(yè)學(xué)院《探索神奇的植物世界》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東東軟學(xué)院《合唱與指揮3》2023-2024學(xué)年第一學(xué)期期末試卷
- 開挖作業(yè)安全培訓(xùn)課件
- 小學(xué)生炒股課件下載視頻
- 《神經(jīng)解剖傳導(dǎo)路》課件
- 《自然資源保護(hù)法》課件
- 高中思想政治-高三一輪復(fù)習(xí)講評(píng)課教學(xué)課件設(shè)計(jì)
- 自動(dòng)噴水滅火系統(tǒng)的設(shè)計(jì)計(jì)算
- 教師評(píng)職稱個(gè)人綜述
- 旅游景區(qū)組織機(jī)構(gòu)
- LSI-陣列卡操作手冊(cè)
- 漢字文化解密(華中師范大學(xué))超星爾雅學(xué)習(xí)通網(wǎng)課章節(jié)測(cè)試答案
- 黑龍江省哈爾濱市八年級(jí)上學(xué)期物理期末考試試卷及答案
- 商業(yè)綜合體設(shè)計(jì)說明書
- GB/T 19587-2017氣體吸附BET法測(cè)定固態(tài)物質(zhì)比表面積
- 比賽車門凹陷修復(fù)
- 第三單元課外古詩詞誦讀課件(共41張PPT) 部編版語文九年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論