版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程學概述計算機系任洪敏HmRen@2009.9.1信息管理與信息系統(tǒng)軟件工程軟件工程導論(第五版)張海藩清華大學出版社(2007)教材2軟件工程
實用軟件工程(第四版)鄭人杰殷人昆陶永雷清華大學出版社(1996)
軟件工程-實踐者的研究方法(英文版第八版)RogerS.Pressman機械工業(yè)出版社參考書目3軟件工程SoftwareEngineeringLaboratoryProjectHomeDesignandImprovementSystemTheHomeDesignandImprovementSystem,HDIS,isintendedtointegrateandunifyallactivitiesrelatedtoconstructionandimprovementsofhomes.Constructinganewhomeorrenovatinganexistinghomecanrequireahighnumberofinteractionswithnumerousindividuals,companies,andstores.ThepurposeofHDISistoutilizecomputingtechnologyinapositivewaytoenhance,facilitate,andpromotethisactivity.5軟件工程計劃:工作內(nèi)容①ContractorManagement②HomeOwnerManagement③ArchitecturalManagement④InteriorDesigner⑤LandscapeManagement⑥Schedule&SupplierManagement
FundingManagement
LandOfficeManagement6《圖書管理系統(tǒng)》《圖書管理系統(tǒng)》針對的用戶是中型圖書室,藏書的種類包括中、英、俄、德、日文書籍和期刊,讀者的數(shù)量和來源僅限于本單位職工及通過館際互借認可的讀者。相應的需求有:能夠存儲一定數(shù)量的圖書信息,并方便有效的進行相應的書籍數(shù)據(jù)操作和管理,這主要包括:7
讀者信息的登記、刪除及修改。讀者資料的統(tǒng)計與查詢。能夠?qū)π枰慕y(tǒng)計結(jié)果提供打印輸出。能夠提供一定的安全機制,提供數(shù)據(jù)信息授權(quán)訪問,防止隨意刪改,同時提供信息備份的服務(wù)。9鼓勵項目移動互聯(lián)網(wǎng)項目李開復:創(chuàng)新工作室10信息管理與信息系統(tǒng)應提交的文檔軟件需求規(guī)格說明書軟件設(shè)計規(guī)格說明書系統(tǒng)測試報告書演示程序11軟件工程目的體驗軟件工程各階段的主要工作,特別注意吸取教訓;
學會與他人合作,培養(yǎng)團隊精神,單干戶將得不到成績。現(xiàn)在開始:構(gòu)想、分組行動起來!第一次進度要求:1周分組,班長發(fā)到我處,指明組長13Late1950’s:§1.軟件危機(SoftwareCrisis)Intheearlydays:
“Software”=“Placeasequenceofinstructionstogethertogetthecomputertodosomethinguseful”.UserComputerComputerbecamecheaperandmorecommonHighlevellanguageswereinventedProgrammerUserComputereasier14Early1960s:Veryfewlargesoftwareprojectsweredonebysomeexperts.HackerMiddletolate1960s:Trulylargesoftwaresystemswereattempted.例:美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果。Cracker15一些數(shù)據(jù):大約70%的軟件開發(fā)項目超出了估算的時間,大型項目平均超出計劃交付時間20%到50%,90%以上的軟件項目開發(fā)費用超出預算,并且項目越大,超出項目計劃的程度越高美國政府審計局:只有不到2%的合同定購軟件在發(fā)布時具有可用性——98%以上的項目都失敗了17yet,SuccessHasntComeEasily31%53%16%SuccessfullyChallengedCanceled軟件危機相關(guān)術(shù)語“兩難境地(CrunchMode)”:處于兩難境地的項目面臨著無法達到最初目標的威脅(費用、進度表、功能性等等),而項目團隊在努力想要跨越該困境?!拔覀冋幱趦呻y境地,在半夜之前是不會回家的”“死亡行軍(DeathMarch)”:用來描述其進度表幾乎不可能完成的項目。“這是一個死亡行軍項目,我希望自己不要參與進去”19更準確的說法:慢性痛苦(chronicaffliction)SuggestedbyProf.DanielTiechrow,UniversityofMichigan盡管忍受痛苦,但是軟件依然在我們這個世界起著越來越重要的作用,但是如果能夠醫(yī)治痛苦,那么軟件業(yè)將發(fā)展得更加健康。如何醫(yī)治這種軟件業(yè)的慢性痛苦?21§1.軟件危機⑴項目沒有被很好地理解;計劃不周,最終導致進度拖延。例1.Inthelate1960s,abright-eyedyoungengineer*waschosento“write”acomputerprogramforanautomatedmanufacturingapplication.Thereasonforhisselectionwassimple.Hewastheonlypersoninhistechnicalgroupwhohadattendedacomputerprogrammingseminar.Heknewthein’sandout’sofassemblerlanguageandFortran,butnothingaboutsoftwareengineeringandevenlessaboutprojectschedulingandtracking.問題出在哪里?22Hisbossgavehimtheappropriatemanualsandaverbaldescriptionofwhathadtobedone.Hewasinformedthattheprojectmustbecompletedintwomonths.Hereadthemanuals,consideredhisapproach,andbeganwritingcode.Aftertwoweeks,thebosscalledhimintohisofficeandaskedhowthingsweregoing.“Reallygreat,”saidtheyoungengineerwithyouthfulenthusiasm,“ThiswasmuchsimplerthanIthought.I’m
probablycloseto75percentfinished.”Thebosssmiled.“That’sreallyterrific,”hesaid.Hethentoldtheyoungengineertokeepupthegoodworkandplantomeetagaininaweek’stime.23§1.軟件危機例2:
Intheearly1980s,theUnitedStates’InternalRevenueService(IRS)hiredSperryCorporationtobuildanautomatedfederalincometaxformprocessingsystem.AccordingtotheWashingtonPost,the“systemhasprovedinadequatetotheworkload,costnearlytwicewhatwasexpectedandmustbereplacedsoon”(Sawyer1985).In1985,anextra$90millionwasneededtoenhancetheoriginal$103millionworthofSperryequipment.Inaddition,becausetheproblempreventedtheIRSfromreturningrefundstotaxpayersbythedeadline,theIRSwasforcedtopay$40.2millionininterestand$22.3millioninovertimewagesforitsemployeeswhoweretryingtocatchup.25§1.軟件危機In1996,thesituationhadnotimproved.TheLosAngelesTimesreportedonMarch29thattherewasstillnomasterplanforthemodernizationofIRScomputers,onlyasix-thousandtechnicaldocument.CongressmanJimLightfootcalledtheproject“a$4-billionfiascothatisflounderingbecauseofinadequateplanning”(Vartabedian1996).Myth:Ifwegetbehindschedule,wecanaddmoreprogrammersandcatchup.Reality:Softwaredevelopmentisnotamechanisticprocesslikemanufacturing.InthewordsofBrooks,“addingpeopletoalatesoftwareprojectmakesitlater.”26
1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序:
DO5I=1,3
誤寫為:DO5I=1.3
1967年蘇聯(lián)“聯(lián)盟一號”載人宇宙飛船在返航時,由于軟件忽略一個小數(shù)點,在進入大氣層時因打不開降落傘而燒毀。29§1.軟件危機⑷軟件難以維護(maintainability)不易升級evolvability)Myth:Oncewewritetheprogramandgetittowork,ourjobisdone.Reality:Someoneoncesaidthat“thesooneryoubegin‘writingcode’,thelongerit’lltakeyoutogetdone.”Industrydataindicatethatbetween50and70percentofalleffortexpendedonaprogramwillbeexpendedafteritisdeliveredtothecustomerforthefirsttime.30§1.軟件危機
BettermanagementDifferentteamorganizationsBetterlanguages&toolsUniformcodingconventions
必須意識到:“軟件”編程,它有自己的生命周期(lifecycle)。大型軟件系統(tǒng)的開發(fā)與其它工程項目如建造橋梁、制造飛機、輪船等的開發(fā)是同理的?!败浖こ獭?SoftwareEngineering)NATOConference,Garmisch,Germany,1968.解決問題的想法:312軟件的概念軟件的概念:軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。其中,程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)是使程序能正常操作所需的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā),維護和使用有關(guān)的圖文材料。322.1軟件特點軟件的特點:
軟件的生產(chǎn)與硬件不同,它沒有明顯的制造過程。硬件在制造過程中進行質(zhì)量控制,軟件在開發(fā)過程中進行質(zhì)量控制。軟件是一種邏輯實體,不是具體的物理實體,具有抽象性.軟件的運行和使用期間,沒有硬件那樣的機械磨損和老化問題,但存在軟件退化問題。332.1軟件的特點(續(xù))軟件的開發(fā)和運行常常受到計算機系統(tǒng)的限制,不同程度依賴計算機系統(tǒng)。軟件移植的問題。軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式。軟件本身的復雜性。軟件的復雜性可能來自它所反映的實際問題的復雜性,也可能來自程序邏輯結(jié)構(gòu)的復雜性。軟件成本相當昂貴。軟件的研制工作需要投入大量的、復雜的、高強度的腦力勞動,它的成本是比較高的。相當多的軟件工作涉及到社會因素。許多軟件的開發(fā)和運行涉及機構(gòu)、體制及管理方式等問題,甚至涉及到人的觀念和人們的心理。它直接影響到項目的成敗
342.2軟件的分類軟件的分類:按照功能劃分:系統(tǒng)軟件、支撐軟件、應用軟件按照規(guī)模劃分:微型、小型、中型、大型、甚大型、極大型按照工作方式劃分:實時處理軟件、分時軟件、交互式軟件、批處理軟件按照服務(wù)對象劃分:項目軟件、產(chǎn)品軟件按照使用頻度劃分:使用一次、一年一次、一天一次、頻繁使用按照失效影響劃分:高可靠性軟件、一般可靠性軟件35計算機軟件經(jīng)歷了三個發(fā)展階段:程序設(shè)計階段,約為50至60年代程序系統(tǒng)階段,約為60至70年代軟件工程階段,約為70年代以后計算機軟件發(fā)展三個時期及其特點:參見下表。表注:軟件語言包括需求定義語言、軟件功能語言、軟件設(shè)計語言、程序設(shè)計語言。36軟件發(fā)展階段(續(xù))特點
時期程序設(shè)計程序系統(tǒng)軟件工程軟件所指程序程序及說明書程序、文檔、數(shù)據(jù)程序設(shè)計語言匯編、機器語言高級語言軟件語言軟件工作范圍程序編寫包括設(shè)計和測試軟件生成期需求人員程序設(shè)計者本人少數(shù)用戶市場用戶開發(fā)組織個人開發(fā)小組開發(fā)小組、開發(fā)機構(gòu)軟件規(guī)模小型中小型大中小型質(zhì)量決定因素個人程序技術(shù)小組技術(shù)水平管理水平開發(fā)技術(shù)和手段子程序、程序庫結(jié)構(gòu)化程序設(shè)計工程化開發(fā)方法、CASE、數(shù)據(jù)庫維護人員程序設(shè)計者開發(fā)小組專職維護人員硬件特征價高、速度、容量、可靠性差降價、速度、容量、可靠性提高高速、大容量、微型化、網(wǎng)絡(luò)化軟件特征完全不受重視軟件不能滿足需求,出現(xiàn)軟件危機有進步,未突破性進展,價高,未完全擺脫危機時期特點37軟件發(fā)展的根本變化數(shù)十年來根本的變化:人們對軟件有了新的認識。50年代到60年代時,程序設(shè)計曾經(jīng)被看做是一種任人發(fā)揮創(chuàng)造才能的技術(shù)領(lǐng)域。程序的寫法可以不受任何約束。隨著計算機的廣泛使用,人們要求這些程序容易看懂、容易使用,并且容易修改和擴充。于是,程序便從個人按自己意圖創(chuàng)造的“藝術(shù)品”轉(zhuǎn)變?yōu)槟鼙粡V大用戶接受的工程化產(chǎn)品。軟件的需求是軟件發(fā)展的動力。早期的程序開發(fā)者只是為了滿足自己的需要,這種自給自足的生產(chǎn)方式仍然是其低級階段的表現(xiàn)。進入軟件工程階段以后,軟件開發(fā)的成果具有社會屬性,它要在市場中流通以滿足廣大用戶的需要,軟件開發(fā)者和用戶的分工和責任也是十分清楚的軟件工作的范圍從只考慮程序的編寫擴展到涉及整個軟件生存周期,包括制定計劃、需求分析、軟件設(shè)計、軟件實現(xiàn)、軟件測試和軟件維護。383軟件工程定義Boehm:運用現(xiàn)代科學技術(shù)知識來設(shè)計并構(gòu)造計算機程序及為開發(fā)、運行和維護這些程序所必需的相關(guān)文件資料IEEE:軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法FritzBauer:建立并使用完善的工程化原則,以較經(jīng)濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法工程:系統(tǒng)、規(guī)范、可度量39軟件工程的定義軟件工程是一類求解軟件的工程,它應用計算機科學,數(shù)學以及管理科學等原理,借鑒傳統(tǒng)工程的原則、方法,創(chuàng)建軟件以達到提高質(zhì)量,降低成本的目的。其中計算機科學、數(shù)學用于構(gòu)造模型與算法,工程科學用于制定規(guī)范、設(shè)計范型、評估成本以及確定權(quán)衡,管理科學用于計劃、資源、質(zhì)量、成本等管理。軟件工程是一門指導計算機軟件開發(fā)和維護的工程學科。40軟件工程的產(chǎn)生和發(fā)展軟件工程的發(fā)展已經(jīng)歷了四個重要階段:4、第四代軟件工程—構(gòu)件工程3、第三代軟件工程—過程工程2、第二代軟件工程—對象工程1、第一代軟件工程—傳統(tǒng)的軟件工程411.1.1軟件程的產(chǎn)生和發(fā)展軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程
60年代末到70年代為了克服“軟件危機”(Softwarecrisis)提出“軟件工程”的名詞,將軟件開發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。421.1.1軟件工程的產(chǎn)生和發(fā)展1.1.1軟件工程的產(chǎn)生和發(fā)展軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計,演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對象工程。431.1.1軟件工程的產(chǎn)生和發(fā)展1.1.1軟件工程的產(chǎn)生和發(fā)展軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程80年代中開始,人們在軟件開發(fā)的實踐過程中認識到:提高軟件生產(chǎn)率,保證軟件質(zhì)量的關(guān)鍵是“軟件過程”,是軟件開發(fā)和維護中的管理和支持能力,逐步形成軟件過程工程。441.1.1軟件工程的產(chǎn)生和發(fā)展1.1.1軟件工程的產(chǎn)生和發(fā)展軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程—傳統(tǒng)的軟件工程2、第二代軟件工程—對象工程3、第三代軟件工程—過程工程4、第四代軟件工程—構(gòu)件工程90起年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進展,軟件系統(tǒng)的開發(fā)可通過使用現(xiàn)成的可復用構(gòu)件組裝完成,而無需從頭開始構(gòu)造,以此達到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。45軟件工程本質(zhì)特性軟件工程關(guān)注大型復雜程序構(gòu)造軟件工程的中心課題是控制復雜性軟件經(jīng)常變化:keepingsoftwaresoft軟件開發(fā)的效率非常重要和諧合作是軟件開發(fā)的關(guān)鍵軟件必須有效地支持它的用戶軟件工程相關(guān)的知識和文化背景的分離46軟件工程管理的基本原理用分階段的生命周期計劃嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制[基準配置管理]采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應能清楚地審查開發(fā)小組的人員應該少而精承認不斷改進軟件工程實踐的必要性47軟件工程技術(shù)的基本原理抽象:
抽取事物最基本的特性和行為,忽略非基本的細節(jié)。采用分層次抽象,自頂向下、逐層細化的辦法控制軟件開發(fā)過程的復雜性。信息隱蔽:
將模塊設(shè)計成“黑箱”,實現(xiàn)的細節(jié)隱藏在模塊內(nèi)部,不讓模塊的使用者直接訪問。這就是信息封裝,使用與實現(xiàn)分離的原則。使用者只能通過模塊接口訪問模塊中封裝的數(shù)據(jù)。模塊化:
模塊是程序中邏輯上相對獨立的成分,是獨立的編程單位,應有良好的接口定義。如C語言程序中的函數(shù)過程,C++語言程序中的類。模塊化有助于信息隱蔽和抽象,有助于表示復雜的系統(tǒng)。局部化:
要求在一個物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算機資源,保證模塊之間具有松散的耦合,模塊內(nèi)部具有較強的內(nèi)聚。這有助于控制解的復雜性。48軟件工程技術(shù)的基本原理(續(xù))確定性:軟件開發(fā)過程中所有概念的表達應是確定的、無歧義性的、規(guī)范的。這有助于人們之間在交流時不會產(chǎn)生誤解、遺漏,保證整個開發(fā)工作協(xié)調(diào)一致。一致性:
整個軟件系統(tǒng)(包括程序、文檔和數(shù)據(jù))的各個模塊應使用一致的概念、符號和術(shù)語。程序內(nèi)部接口應保持一致。軟件和硬件、操作系統(tǒng)的接口應保持一致。系統(tǒng)規(guī)格說明與系統(tǒng)行為應保持一致。用于形式化規(guī)格說明的公理系統(tǒng)應保持一致。完備性:
軟件系統(tǒng)不丟失任何重要成分,可以完全實現(xiàn)系統(tǒng)所要求功能的程度。為了保證系統(tǒng)的完備性,在軟件開發(fā)和運行過程中需要嚴格的技術(shù)評審。可驗證性:
開發(fā)大型的軟件系統(tǒng)需要對系統(tǒng)自頂向下、逐層分解。系統(tǒng)分解應遵循系統(tǒng)易于檢查、測試、評審的原則,以確保系統(tǒng)的正確性。49軟件工程研究的內(nèi)容軟件開發(fā)一整套技術(shù)方法的集合軟件工程方法學包括三個要素:方法、工具和過程。軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計、算法過程的設(shè)計、編碼、測試以及維護等。50toolmethodprocedureQualityfocusSoftwareengineeringlayers軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。計算機輔助軟件工程(CASE)將各種軟件工具、開發(fā)機器和一個存放開發(fā)過程信息的工程數(shù)據(jù)庫組合起來形成一個軟件工程環(huán)境。軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個階段完成的里程碑。52生命開發(fā)方法學結(jié)構(gòu)化方法:結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計、結(jié)構(gòu)化編碼過程:劃分階段、依此進行、技術(shù)和管理復審、文檔驅(qū)動工具:大量輔助工具簡單、有條不紊、廣泛應用不適合:規(guī)模龐大、需求模糊和變化、維護困難53面向?qū)ο蠓椒▽W面向?qū)ο蠹夹g(shù):面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計、面向?qū)ο缶幋a(OO的思想)過程:主動地多次反復迭代的演化過程。工具:VS、ROSE易于理解、易于復用、易于維護54計算機系統(tǒng)工程基于計算機的系統(tǒng)和其元素55計算機系統(tǒng)工程軟件:計算機程序、數(shù)據(jù)結(jié)構(gòu)、相關(guān)文檔硬件:計算設(shè)備(如CPU,存儲器)和外部機電設(shè)備(如傳感器、馬達等)人:硬件和軟件的用戶數(shù)據(jù)庫:一個大型的有組織的信息集合文檔:手冊、表格和其它用以描述系統(tǒng)使用和操作的信息過程:定義每一種系統(tǒng)元素的特定使用步驟,或系統(tǒng)駐留的過程性環(huán)境56SoftwareandsystemsengineeringTheproportionofsoftwareinsystemsisincreasing.Software-drivengeneralpurposeelectronicsisreplacingspecial-purposesystemsProblemsofsystemsengineeringaresimilarto
problemsofsoftwareengineeringSoftwareis(unfortunately)seenasaproblem
insystemsengineering.Manylargesystemprojectshavebeendelayedbecauseofsoftwareproblems574軟件生命周期正如同任何事物一樣,軟件也有一個孕育、誕生、成長、成熟、衰亡的生存過程。我們稱其為計算機軟件的生存周期。生命周期的三個時期:軟件定義、軟件開發(fā)、軟件維護58軟件生命周期(續(xù))問題定義:“要解決的問題是什么”簡要寫出問題性質(zhì)、工程目標、工程規(guī)模的書面報告可行性研究:“該問題有可行的解決辦法嗎?”高層、壓縮和簡化的系統(tǒng)分析和設(shè)計過程研究問題的范圍、值得嗎、行嗎需求分析:“目標系統(tǒng)必須做什么”系統(tǒng)的邏輯模型需求規(guī)格說明書59軟件生命周期(續(xù))總體設(shè)計:“概括地說,系統(tǒng)怎樣實現(xiàn)?”設(shè)計和分析多種方案,推薦方案和其計劃系統(tǒng)的體系結(jié)構(gòu)詳細設(shè)計:“系統(tǒng)具體怎樣實現(xiàn)?”程序的詳細規(guī)格說明,編碼的藍圖確定模塊的算法和數(shù)據(jù)結(jié)構(gòu)60軟件生命周期(續(xù))編碼和單元測試:編碼程序模塊測試該模塊綜合測試集成測試驗收測試系統(tǒng)分析61軟件生命周期(續(xù))軟件維護改正性維護完善性維護適應性維護預防性維護沒有一個四海皆準的統(tǒng)一的過程62問題定義編碼需求分析設(shè)計可行性研究運行與維護測試開發(fā)時期運行時期計劃時期(目標與范圍說明書)(可行性論證論告)(維護報告)(測試報告)(程序)(設(shè)計文檔)(需求說明書)瀑布模型圖1.3瀑布模型1.3軟件生存期63軟件過程——生命周期模型瀑布模型64圖1-3軟件生存周期工作量分配65圖1-4開發(fā)期工作量分配66軟件過程——生命周期模型快速原形模型快速原形規(guī)格說明設(shè)計實現(xiàn)系統(tǒng)維護67軟件過程——生命周期模型增量模型定義概要需求把需求分配給增量設(shè)計系統(tǒng)結(jié)構(gòu)開發(fā)系統(tǒng)增量驗證增量組裝增量驗證系統(tǒng)系統(tǒng)不完全最終系統(tǒng)68軟件過程——生命周期模型增量模型需求分析規(guī)格說明系統(tǒng)設(shè)計實現(xiàn)集成實現(xiàn)集成需求分析規(guī)格說明系統(tǒng)設(shè)計實現(xiàn)集成實現(xiàn)集成需求分析規(guī)格說明系統(tǒng)設(shè)計實現(xiàn)集成實現(xiàn)集成構(gòu)件n構(gòu)件2構(gòu)件169增量模型(incrementalmodel)增量模型是一種非整體開發(fā)的模型。該模型具有較大的靈活性,適合于軟件需求不明確、設(shè)計方案有一定風險的軟件項目。增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細節(jié),從而較早地產(chǎn)生工作軟件。70
螺旋模型
對于大型軟件,只開發(fā)一個原型往往達不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風險分析。螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:1.確定目標、方案和限制條件;2.評估方案、標識風險和解決風險;3.開發(fā)確認產(chǎn)品;4.計劃下一周期工作。螺旋模型71軟件過程——生命周期模型噴泉模型重復演進各階段間無明顯界限72統(tǒng)一過程概述Rational公司的RUP發(fā)展而來的一套軟件工程方法,是目前最有效的軟件開發(fā)過程模型?;跇?gòu)件的用UML制定軟件系統(tǒng)所有藍圖突出特點:用例驅(qū)動、架構(gòu)優(yōu)先、迭代和增量過程四個階段:初始、細化、構(gòu)造、移交強調(diào)開發(fā)過程五個核心工作流:需求捕獲、分析、設(shè)計、實現(xiàn)、測試73RUP工作流與階段74在RUP中,項目生命周期被劃分為四個階段:
(1)初始階段(Inception)
(2)細化階段(Elaboration)
(3)構(gòu)造階段(Construction)
(4)交付階段(Transition)每個階段開始時都有特定的目標,結(jié)束時有里程碑。在每個階段中存在一個或多個迭代。在每個迭代中,可以有多個工作流。2統(tǒng)一過程四個工作階段75獲取需求需求分析具體描述優(yōu)化程序驗證維護調(diào)整知識庫/專家系統(tǒng)智能模型76SoftwareMyths(1)ManagementMyths(管理神話)Managerswithsoftwareresponsibility,likemanagersinmostdisciplines,areoftenunderpressuretomaintainbudgets,keepschedulesfromslipping(松弛),andimprovequality.Likeadrowningpersonwhograspsatastraw(抓住稻草的要淹死的人),asoftwaremanageroftengraspsatbeliefinasoftwaremyth,ifthatbeliefwilllessenthepressure(eventemporarily).77ManagementMythsMyth:Wealreadyhaveabookthat’sfullofstandardsandproceduresforbuildingsoftware,won’tthatprovidemypeoplewitheverythingtheyneedtoknow?Reality:Thebookofstandardsmayverywellexist,butisitused?Aresoftwarepractitionersawareofitsexistence?Doesitreflectmodernsoftwareengineeringpractice?Isitcomplete?Isitstreamlinedtoimprovetimetodeliverywhilestillmaintainingafocusonquality?Inmanycases,theanswertoallofthesequestionsis“no”.78ManagementMythsMyth:Mypeoplehavestate-of-the-artsoftwaredevelopmenttools,afterall,webuythemthenewestcomputers.Reality:Ittakesmuchmorethanthelatestmodelmainframe,workstationorPCtodohigh-qualitysoftwaredevelopment.Computer-aidedsoftwareengineeringtoolsaremoreimportantthanhardwareforachievinggoodqualityandproductivity,yetthemajorityofsoftwaredevelopersstilldonotusethemeffectively.79ManagementMythsMyth:Ifwegetbehindschedule,wecanaddmoreprogrammersandcatchup(sometimescalledtheMongolianhordeconcept)Reality:Softwaredevelopmentisnotamechanisticprocesslikemanufacturing.InthewordsofBrooks:Addingpeopletoalatesoftwareprojectmakesitlater.80ManagementMythsMyth:IfIdecidetooutsourcethesoftwareprojecttoathirdparty,Icanjustrelaxandletthatfirmbuildit.Reality:Ifanorganizationdoesnotunderstandhowtomanageandcontrolsoftwareprojectsinternally,itwillinvariablystrugglewhenitoutsourcessoftwareprojects.81SoftwareMyths(2)CustomermythsAcustomerwhorequestscomputersoftwaremaybeapersonatthenextdesk,atechnicalgroupdownthehall,themarketing/salesdepartment,oranoutsidecompanythathasrequestedsoftwareundercontract.Inmanycases,thecustomerbelievesmythsaboutsoftwarebecausesoftwaremanagersandpractitionersdolittletocorrectmisinformation.Mythsleadtofalseexpectations(bythecustomer)andultimately,dissatisfactionwiththedeveloper.82CustomermythsMyth:Ageneralstatementofobjectivesissufficienttobeginwri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年農(nóng)民專業(yè)合作社股權(quán)轉(zhuǎn)讓及品牌授權(quán)合作協(xié)議2篇
- 2024年版:股東之間股權(quán)轉(zhuǎn)讓協(xié)議書
- 采購工作總結(jié)與計劃9篇
- 一年級上冊音樂教學計劃三篇
- 高三教學工作計劃4篇
- 樣品買賣合同
- 將優(yōu) 質(zhì) 服務(wù)進行到底
- 2025年專用級次磷酸鈉項目發(fā)展計劃
- 全國獨家分銷合同(2篇)
- 商業(yè)租房協(xié)議范本
- 2023年1月廣東省自考00634廣告策劃試題及答案含解析
- 河南省洛陽市2023-2024學年高二上學期期末考試英語試題(解析版)
- 超聲檢查醫(yī)療糾紛的防范培訓課件
- 采購管理的流程與原則
- 2022-2023學年山東省東營市東營區(qū)七年級(上)期末歷史試卷(五四學制)(附答案詳解)
- 《城市道路工程設(shè)計規(guī)范》宣貫課件
- 稻盛和夫的實學經(jīng)營與會計
- 視頻監(jiān)控維保項目投標方案(技術(shù)標)
- 椎管內(nèi)腫瘤圍手術(shù)期護理課件
- 麻醉科主任述職報告
- PDCA降低護士針刺傷發(fā)生率
評論
0/150
提交評論