版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
教師:張為電話Q:2634422548軟件工程
2023/2/62為什么要學習軟件工程2023/2/632023/2/64為什么要學習這門課程正確理解和認識“軟件”的概念及其特點正確地理解,領(lǐng)悟和掌握軟件工程方法學掌握軟件工程的原則、方法和思想來系統(tǒng)地開發(fā)軟件,尤其是復雜、龐大軟件的開發(fā)了解和接觸各種軟件開發(fā)技術(shù)和工具培養(yǎng)和他人相互合作進行軟件開發(fā)、獨立解決問題的能力培養(yǎng)通過多種手段獲取新知識的能力培養(yǎng)邏輯思維能力,尤其是抽象能力軟件工程是軟件技術(shù)和管理人員必備的課程如何學習這門課程理論和實踐的結(jié)合
-->課題實習內(nèi)容小組形式軟件開發(fā)過程驗收內(nèi)容和標準(項目開發(fā)計劃、可行性研究報告、需求規(guī)格說明書、概要設計說明書、詳細設計說明書、測試計劃、測試分析報告、用戶操作手冊、項目開發(fā)總結(jié)報告、程序維護手冊、軟件修改報告、軟件問題報告、源代碼等文檔
)軟件工程目的體驗軟件工程各階段的主要工作,特別注意吸取教訓;
學會與他人合作,培養(yǎng)團隊精神,單干戶將得不到成績。有何意義?■本課將是學習以下課程的基礎(chǔ)綜合課程設計專業(yè)實習畢業(yè)設計■實際應用參與單位軟件系統(tǒng)建設工作參與軟件開發(fā)第一章軟件與軟件工程1.1軟件的概念1.2軟件工程的概念1.3軟件過程模型1.4敏捷軟件開發(fā)原則和應用1.5軟件工程人的因素9待增內(nèi)容軟件系統(tǒng)及軟件元素系統(tǒng)子系統(tǒng)模塊/包構(gòu)件/組件/中間件類屬性/方法/操作變量/運算新增內(nèi)容:軟件過程測試(V模型)測試計劃測試需求測試設計邏輯設計數(shù)據(jù)/測試用例(輸入/輸出)設計測試編碼測試運行及報告測試總結(jié)及展望新增內(nèi)容:編號文檔編號為閱讀定位而對根據(jù)文檔章節(jié)結(jié)構(gòu)編號隨機文檔結(jié)構(gòu)調(diào)整而改變本體編號因?qū)ぷ鲀?nèi)容本體識別需要而引入的標識符隨著本體的識別而產(chǎn)生終身不變常用符號前綴REQ:需求DGN:設計TST:測試1.1.1軟件與軟件的組成計算機科學對軟件的定義軟件是在計算機系統(tǒng)支持下,能夠完成特定功能和性能的程序、數(shù)據(jù)和相關(guān)的文檔
軟件可形式的表示為:
軟件=知識+程序+數(shù)據(jù)+文檔2023/2/6131.1軟件的概念程序:用計算機程序設計語言描述的。數(shù)據(jù):程序加工的對象和結(jié)果。文檔:錄軟件開發(fā)的活動和中間制品,記錄軟件配置及變更,用于軟件專業(yè)人員和用戶的交流,用于軟件開發(fā)、過程管理和運行階段的維護。2023/2/614遵循標準保持程序、數(shù)據(jù)和文檔的一致性。1.1.2軟件生存周期軟件生存周期:軟件從概念形成、進化、運行到退役的全過程。圖1.1傳統(tǒng)軟件生存周期
2023/2/6151.1.3軟件的特點軟件是一種邏輯實體,不是物理實體,他具有抽象性軟件不會磨損和老化軟件主要是研制,生產(chǎn)是簡單的拷貝軟件成本昂貴,其開發(fā)方式至今尚未擺脫手工方式軟件維護不同于硬件維修,易產(chǎn)生新的問題軟件具有“復雜性”,其開發(fā)和運行常受到計算機系統(tǒng)的限制,即受環(huán)境影響大2023/2/616圖1.2軟硬件的故障率曲線硬件交付后,初期會暴露產(chǎn)品設計、制造中的問題,各零部件需要磨合,經(jīng)長期使用會發(fā)生磨損、老化,于是故障率曲線呈“浴缸”形(如圖1.2a所示)。軟件不會磨損、老化,但軟件邏輯關(guān)系復雜、理解困難,維護過程中很可能產(chǎn)生新的缺陷(如圖1.2b所示)。2023/2/6171.1.4幾類常用的軟件系統(tǒng)軟件個人計算機軟件實時嵌入式軟件科學和工程計算軟件事務處理軟件人工智能軟件Web應用軟件2023/2/6181.1.5軟件的質(zhì)量不同人對軟件質(zhì)量的關(guān)注點和理解是不同的。用戶:關(guān)注軟件質(zhì)量的外部屬性,如軟件的正確性、可靠性、有效性、完整性、可用性、可維護性、可移植性、可復用性等。軟件工程師:更關(guān)注軟件質(zhì)量的內(nèi)部屬性,通過提高軟件內(nèi)部屬性,如模塊化、一致性、簡潔性、可測試性、自文檔化等,支持和保證軟件外部質(zhì)量屬性的實現(xiàn)。國際標準化協(xié)會頒布的ISO9126(2001)將軟件質(zhì)量要素確定為正確性、可靠性、有效性、可使用性、可維護性、可移植性六個。2011年3月國際標準化組織對ISO9126做了修訂和擴充,發(fā)布了ISO/IEC25010新標準,增加了安全性和兼容性。軟件要素和屬性之間的關(guān)系不是獨立的,有些是相關(guān)的,甚至是矛盾的。2023/2/619(1)正確性(correctness)。軟件滿足需求規(guī)約及完成用戶目標的程度。(2)可用性(usability)。
學習和使用軟件的難易程度,包括:操作軟件、為軟件準備輸入數(shù)據(jù),解釋軟件輸出結(jié)果等。(3)可靠性(reliability)。
軟件完成預期功能,成功運行的概率。軟件可靠性反映了軟件無故障工作的狀況。(4)有效性(efficiency)。軟件系統(tǒng)利用計算機的時間資源和空間資源完成系統(tǒng)功能的能力。2023/2/620軟件工程8個質(zhì)量要素:(5)可維護性(maintainability)。軟件制品交付用戶使用后,能夠?qū)λM行修改,以便改正潛伏的缺陷、改進性能和其他屬性,使軟件制品適應環(huán)境的變化等等。由于軟件是邏輯產(chǎn)品,只要用戶需要可以無限期地使用下去,軟件維護是
不可避免的。軟件維護成本約
占整個生命周期
的40%至60%。
軟件維護費用高
的問題今天仍然沒有明顯改變。圖1.3軟件開發(fā)成本比重上升維護成本居高不下2023/2/621(6)可移植性(portability)。將軟件安裝在不同計算機系統(tǒng)或環(huán)境的難易程度。(7)安全性(security)??刂苹虮Wo程序和數(shù)據(jù)不受破壞的機制,以防止程序和數(shù)據(jù)受到意外的或蓄意的存取、使用、修改、毀壞或泄密。在網(wǎng)絡環(huán)境下計算機犯罪、惡作劇增多,軟件安全受到人們的高度重視。(8)可復用性(reusebility)。
概念或功能相對獨立的一個或一組相關(guān)模塊定義為一個軟構(gòu)件。軟構(gòu)件可以在多種場合應用的程度稱為構(gòu)件的可復用性。2023/2/6221.1.6軟件的安全與保護軟件安全是軟件控制的系統(tǒng)始終處于不危及人的生命財產(chǎn)和生態(tài)環(huán)境的屬性。軟件安全包括兩個方面:(1)關(guān)鍵領(lǐng)域關(guān)鍵部位的計算機軟件必須正確、可靠的工作,要防止因概念、設計和結(jié)構(gòu)等方面的不完善造成的系統(tǒng)失效,要具有挽回因設計、操作不當造成軟件系統(tǒng)失效的能力。(2)對進入軟件系統(tǒng)人的身份進行認證、對數(shù)據(jù)訪問進行控制,阻止計算機病毒、木馬的侵入,防止計算機失控,計算機內(nèi)的重要信息被盜,給人們的財產(chǎn)和精神造成巨大損失。
2023/2/623軟件的安全與保護IEC國際標準SC65A-123(草案)把軟件危險程度分成四級,即災難性、重大、較大、較小。災難性計算機系統(tǒng)的失效會危及群眾的生命,摧毀設備、設施,造成巨大的經(jīng)濟損失重大失效會危及人員生命,部分設備、設施嚴重損壞,造成大的經(jīng)濟損失較大失效會造成人員傷害,給設備、設施造成一定損失較小不涉及安全性問題2023/2/624表1.1IECSC65A-123不同危險等級軟件的可靠性要求
連續(xù)控制系統(tǒng)
業(yè)務處理系統(tǒng)危險等級每小時發(fā)生危險故障的次數(shù)請求調(diào)用時發(fā)生故障的概率災難性
10-8~10-9
10-4~10-5重大
10-7~10-8
10-3~10-4較大
10-6~10-7
10-2~10-3較小
10-5~10-610-1~10-2
2023/2/6251.2軟件工程的概念1.2.1軟件工程的定義1.2.2軟件工程的發(fā)展1.2.3軟件工程的目標和原則1.2.4軟件開發(fā)的主要方法2023/2/6261.2.1軟件工程的定義IEE93給出的軟件工程定義:
①將系統(tǒng)的、規(guī)范的、可量化的方法應用于軟件的開發(fā)、運行和維護的過程;
②及上述方法的研究。軟件工程這一定義的第一部分要求,軟件開發(fā)、運行和維護的過程是“系統(tǒng)的”、“規(guī)范的”、“可量化的”。軟件工程定義的第二部分說明,軟件工程需要相關(guān)科學研究做基礎(chǔ),需要方法學的支持。2023/2/627圖1.4軟件工程五要素軟件工程的項目、人、過程、方法和工具、軟件制品構(gòu)成了軟件工程的五要素,它們既有區(qū)別又有聯(lián)系(如圖1.4所示)2023/2/6282004年ACM和IEEE/CS聯(lián)合推出的軟件工程知識體SWEBOK系統(tǒng)的定義了軟件工程學科的研究目標和主要內(nèi)容,包括:
軟件需求、設計、構(gòu)造、
測試、維護、配置管理、
軟件工程管理、軟件工程過程、
軟件工程工具和方法、軟件質(zhì)量2023/2/629計算機系統(tǒng)4個不同的發(fā)展階段:時期主頻軟件第一代20世紀50年代初到60年代末103~105程序設計階段個體化生產(chǎn)軟件危機出現(xiàn)第二代20世紀60年代末期到80年代中期105~107程序系統(tǒng)階段作坊式生產(chǎn)軟件工程誕生第三代20世紀80年代中期到90年代末期107~108軟件工程階段工程化思想分布式系統(tǒng)第四代2000年至今109硬件與軟件綜合體系結(jié)構(gòu)獨立學科1.2.2軟件工程的發(fā)展軟件危機的原因:2023/2/631問題出在哪里?①用戶對軟件需求的描述經(jīng)常出現(xiàn)二義性、不確定性、遺漏或錯誤。
軟件開發(fā)過程中,經(jīng)常提出變更軟件功能、界面、支撐環(huán)境等要求。2023/2/632②軟件開發(fā)人員對用戶需求的理解與用戶的本來愿望有差異。
這種差異用戶和開發(fā)人員可能還不知道,這必然導致開發(fā)出來的軟件產(chǎn)品與用戶要求不一致。2023/2/633③大型軟件項目需要組織一定的人力共同完成,多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗,而多數(shù)軟件開發(fā)人員又缺乏管理經(jīng)驗。
各類人員的信息交流不及時、不準確、有時還會產(chǎn)生誤解2023/2/634人與人的交流比寫程序困難得多。④軟件項目開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關(guān)系和各個分枝,因此容易產(chǎn)生疏漏和錯誤。2023/2/635⑤缺乏有力的方法學和工具支持,過分地依靠程序設計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個性化。2023/2/636⑥軟件產(chǎn)品的特殊性和人類智力的局限性,使人們處理“復雜問題”困難重重。
所謂“復雜問題”的概念是相對的。一旦人們采用先進的組織形式、開發(fā)方法和工具提高了軟件的開發(fā)效率和能力,新的、更大的、更復雜的問題又擺在人們面前。2023/2/637軟件工程的發(fā)展綜上所述,軟件工程發(fā)展的主要因素是:信息社會的廣泛需求,軟硬件技術(shù)的進步,軟件從業(yè)人員卓有成效的工作,軟件產(chǎn)業(yè)的興起,軟件學科建設和人才培養(yǎng),各國政府對軟件發(fā)展的重視等四十年來軟件工程逐步成熟,伴隨硬件的發(fā)展,軟件工程向著施工領(lǐng)域更廣泛、開發(fā)能力更強,過程更成熟,軟件質(zhì)量、成本、進度更加可控的目標邁進。2023/2/638圖1.5影響軟件工程發(fā)展的關(guān)鍵要素2023/2/6391.2.3軟件工程的目標和原則軟件工程的目標在給定成本、進度的前提下,開發(fā)出滿足用戶或市場需要的高質(zhì)量的軟件產(chǎn)品。為了達到這些目標,在軟件開發(fā)過程中必須根據(jù)軟件系統(tǒng),特別是各子系統(tǒng)的功能、特點和實際情況,選取適宜的開發(fā)模型和設計方法,采用有效的軟件項目管理方法。過程中必須遵循的軟件工程原則:
抽象、信息隱藏、模塊化、局部化、一致性、
完全性和可驗證性。2023/2/6401.2.4軟件開發(fā)的主要方法常用的方法有:結(jié)構(gòu)化方法、面向?qū)ο蠓椒?、及形式化開發(fā)方法等。近年來隨著網(wǎng)絡技術(shù)、多媒體技術(shù)的發(fā)展和構(gòu)建大型復雜軟件的需要:網(wǎng)絡的軟件開發(fā)方法基于構(gòu)件的軟件開發(fā)方法面向方面AOP的軟件開發(fā)方法人機界面及虛擬現(xiàn)實的軟件開發(fā)方法敏捷軟件開發(fā)方法這些方法支持軟件的分析、設計、編碼、測試,給出了指導軟件開發(fā)活動的基本原則、技術(shù)和步驟。2023/2/6411.結(jié)構(gòu)化方法結(jié)構(gòu)化方法是1970年代初至1980年代中廣泛使用的方法至今在科學計算、實時嵌入式應用軟件開發(fā)中仍在發(fā)揮作用結(jié)構(gòu)化方法是從結(jié)構(gòu)化的程序設計開始逐步擴展為,包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設計、結(jié)構(gòu)化程序設計的系統(tǒng)方法。結(jié)構(gòu)化分析用分層的數(shù)據(jù)流圖和控制流圖開發(fā)系統(tǒng)的功能模型和數(shù)據(jù)模型。結(jié)構(gòu)化設計按照系統(tǒng)功能模型,自頂向下,逐步求精,最終得到組成系統(tǒng)的模塊(子系統(tǒng))及它們之間的控制關(guān)系。結(jié)構(gòu)化程序設計用結(jié)構(gòu)化的程序設計語言,遵循結(jié)構(gòu)化的程序設計原則實現(xiàn)模塊功能,實現(xiàn)體系結(jié)構(gòu)中每一功能模塊的過程屬性和算法描述。2023/2/6422.面向?qū)ο蠓椒ㄇ疤釛l件1980年代中期個人計算機圖形界面迅速普及,處理基于社會的信息系統(tǒng)問題需求廣泛,為面向?qū)ο蠓椒ǖ陌l(fā)展和推廣創(chuàng)造了條件。內(nèi)容面向?qū)ο蠓椒ㄊ且詫ο?、對象關(guān)系構(gòu)建軟件系統(tǒng)的方法。包括,面向?qū)ο蠓治?、設計、編碼、測試。對象是類的實例,類用屬性、操作和關(guān)系描述。類是面向?qū)ο蠓椒ń?、設計、實現(xiàn)和測試的基礎(chǔ)。類具有良好的可復用性。UMLJ.Rumbaugh、I.Jacobson、G.Booch等人聯(lián)合開發(fā)對象管理組織(OMG)發(fā)布統(tǒng)一過程RUP將面向?qū)ο筌浖_發(fā)的分析、設計和構(gòu)造無縫聯(lián)接起來Rational
ROSE可方便地生成一系列的UML視圖2023/2/6433.形式化開發(fā)方法以軟件正確性為目標軟件需求規(guī)約用形式化需求規(guī)約語言(RSL)描述,如VDM的META—IV,CSP,Z語言等依靠嚴格的數(shù)學推理,保證軟件開發(fā)的正確性有效解決歧義性、完整性、一致性、安全性問題形式化語言支持形式化需求規(guī)約語言有嚴格的語法、語義定義,以及一系列的數(shù)學推演規(guī)則。通常語法、語義以集合論、數(shù)理邏輯或代數(shù)學為基礎(chǔ)。規(guī)則指明軟件規(guī)約必須滿足的數(shù)學性質(zhì),及軟件實現(xiàn)與軟件規(guī)約必須保持的一致性。正確地程序變換在此基礎(chǔ)上,利用變換模型和配套的開發(fā)工具,如程序變換工具、定理證明工具等進行一系列的程序變換,最后生成正確的程序代碼。2023/2/6441.3軟件過程模型1.3.1瀑布模型1.3.2增量過程模型1.3.3原型建造模型1.3.4螺旋模型1.3.5基于構(gòu)件的過程模型1.3.6通用軟件過程模型2023/2/6451.3軟件過程模型軟件過程(process):描述、開發(fā)、維護軟件制品,創(chuàng)建、管理和支持軟件項目的一系列活動。為了描述、規(guī)范軟件開發(fā)的管理和技術(shù)活動,需要建立軟件過程模型,對軟件開發(fā)過程的結(jié)構(gòu)和屬性進行抽象。軟件過程模型定義了軟件開發(fā)活動,給出了它們之間的邏輯關(guān)系,為軟件工程管理提供里程碑和進度表;為軟件開發(fā)提供框架和方法。2023/2/646軟件過程模型軟件過程模型受軟件開發(fā)歷史環(huán)境的影響,可分為三種類型:(1)將軟件開發(fā)過程的分解與軟件生存周期劃分綁定在一起的瀑布模型及其變形。(2)軟件開發(fā)過程的分解與軟件生存周期劃分相對獨立的通用過程模型。(3)專用模型,包括基于構(gòu)件的軟件過程模型、Web應用軟件過程模型、面向方面AOP的軟件過程模型、以形式化開發(fā)方法為基礎(chǔ)的變換模型等。2023/2/6471.3.1瀑布模型瀑布模型(waterfallmodel)也稱軟件生存周期模型,是W.Royce在1970年首先提出的。它們既是軟件開發(fā)過程的分解,也是軟件生存周期的階段劃分。瀑布模型按照各階段的目標和任務逐步進行開發(fā),直至通過確認測試,向用戶交付最終軟件制品為止。
圖1.6軟件生存周期的瀑布模型2023/2/648利用瀑布模型進行軟件開發(fā)的
過程和生成的軟件制品2023/2/649反饋的瀑布模型實踐中,對某一階段軟件制品的評審會經(jīng)常發(fā)現(xiàn)缺陷和疏漏,這時不得不暫停這一階段的活動,反饋到前面的有關(guān)階段修正缺陷、增補疏漏,然后再重復前面的工作,直至該階段通過評審后再進入下一階段。于是,瀑布模型演變成帶有反饋的瀑布模型,如圖1.8所示。圖1.8帶反饋的瀑布模型2023/2/650V字型瀑布模型另一種改進的瀑布模型是V字型瀑布模型,如圖所示。軟件的分析、設計過程與軟件測試過程一一對應,強化了軟件設計和測試的關(guān)系,加強了軟件的質(zhì)量保證。圖1.9V字型瀑布模型2023/2/651瀑布模型的特點思路簡潔、明確上一階段的開發(fā)結(jié)果是下一階段開發(fā)的輸入,相鄰兩個階段具有因果關(guān)系,緊密相聯(lián)。階段分離、評審為了保障軟件開發(fā)的正確性,每一階段任務完成后,都必須對它的階段性制品(文檔、原型、程序等)進行評審,確認之后再轉(zhuǎn)入下一階段瀑布模型的可行性研究、需求、設計、編碼、測試分離,有利于軟件的體系結(jié)構(gòu)設計,規(guī)范了軟件開發(fā)活動,有利于開發(fā)人員的組織、管理適用場景對于規(guī)模較小、軟件需求比較穩(wěn)定的項目或子系統(tǒng),采用瀑布模型能夠顯著提高軟件開發(fā)的質(zhì)量和效率2023/2/652瀑布模型的缺點①需求難以確定必須要求客戶和系統(tǒng)分析員確定軟件需求后才能進行后續(xù)的軟件開發(fā)工作,但多數(shù)場合給出大型軟件項目的全部需求是困難的,有時甚至是不現(xiàn)實的;②初版開發(fā)時間長,缺陷發(fā)現(xiàn)晚需求確定后,用戶和軟件項目負責人要等相當長的時間(經(jīng)過設計、實現(xiàn)、測試、運行)才能得到軟件的最初版本,如果用戶對這個軟件提出比較大的修改意見,那么整個軟件項目將會蒙受巨大的人力、財力和時間損失;③缺陷積累、放大開發(fā)人員在瀑布模型“上游”出現(xiàn)“過失”(mistake)會為軟件制品帶來“缺陷”(fault)并潛伏在軟件制品中,缺陷會誤導“下游”的開發(fā)活動,若未被發(fā)現(xiàn),則軟件運行時會造成系統(tǒng)“故障”(failure)。造成修復成本高這時必須花力氣找到故障原因,修復缺陷,造成不應有的人力、財力和時間損失。2023/2/653使用瀑布模型的注意事項①需求明確后再施工;②每個階段的結(jié)果要及時評審和測試,發(fā)現(xiàn)的問題妥善處理后再開始下一階段的工作;③開發(fā)周期盡量短,盡快給用戶使用,得到反饋意見;④一次開發(fā)的軟件規(guī)模不宜過大。2023/2/654瀑布模型實踐中,很多物理系統(tǒng)中的實時軟件,或大型軟件系統(tǒng)的某些部分已經(jīng)過嚴格的可行性論證和仿真實驗,需求是非常明確的,有些還能用嚴格的數(shù)學物理模型描述,如火箭控制系統(tǒng)的嵌入式軟件、軍用指揮控制系統(tǒng)的裝備軟件等。這樣的軟件過程就可以采用帶反饋的瀑布模型或V字瀑布模型。美國國防部標準2167-A規(guī)定,瀑布模型是國防部合同中軟件開發(fā)交付的依據(jù),德國國防部1992年也強調(diào)了V字瀑布模型的作用。2023/2/6551.3.2增量過程模型動因:解決瀑布模型的不足對于軟件開發(fā)前需求基本確定的大型軟件項目,采用瀑布模型開發(fā)時間長、不能快速占領(lǐng)市場、不能在短期內(nèi)得到用戶的反饋意見。增量過程模型的基本思想
開發(fā)人員與用戶協(xié)商將需求分解,劃分為一系列增量,并為增量排序,急需的增量排在前面先開發(fā),不急需的放在后面。
每個增量都歷經(jīng)需求、設計、編碼、測試、移交幾個階段(如圖1.10所示)。
根據(jù)增量間的依賴關(guān)系、開發(fā)人員和項目的實際情況,有些增量可串行開發(fā),有些可并行開發(fā)。
在此過程中不斷開發(fā)、不斷集成、不斷交付,直到完成所有增量的開發(fā),得到最終的軟件制品。2023/2/656
圖1.10增量過程模型2023/2/657例:開發(fā)字處理軟件第一個增量構(gòu)件基本的文件管理、編輯、和文檔生成功能第二個增量構(gòu)件更完善的編輯和文檔生成功能;第三個增量構(gòu)件實現(xiàn)拼寫和語法檢查功能;第四個增量構(gòu)件完成高級的頁面排版功能2023/2/658優(yōu)點①不斷地發(fā)布軟件新版本,可及時獲得客戶的反饋,用于調(diào)整后續(xù)的軟件開發(fā)策略;②由于軟件需求是確定的,可先對軟件體系結(jié)構(gòu)進行設計,能保持良好的軟件體系結(jié)構(gòu)。缺點①增量規(guī)模不能大(開發(fā)不要超過20k行代碼),否則會暴露瀑布模型的缺點;②將客戶需求分解成增量序列必須對系統(tǒng)需求十分了解,并有頂層設計的經(jīng)驗;③多數(shù)系統(tǒng)都需要基本服務,如何為基本服務定義增量,何時實現(xiàn)這些增量,處理起來比較困難。2023/2/659增量過程模型的特點1.3.3原型建造模型原型(prototyping):是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。原型向客戶展示了待開發(fā)軟件系統(tǒng)的全部或部分功能和性能,在征求客戶對原型意見的過程中,進一步修改、完善、確認軟件系統(tǒng)的需求并達到一致的理解。2023/2/660原型建造模型快速開發(fā)原型的途徑有三種:①利用計算機模擬軟件系統(tǒng)的人機界面和人機交互方式;②利用敏捷軟件開發(fā)方法開發(fā)一個工作原型,實現(xiàn)軟件系統(tǒng)重要的,容易產(chǎn)生誤解的部分功能;③找來若干個類似軟件,利用這些軟件向客戶展示軟件需求中的部分或全部功能。2023/2/661原型建造模型原型有兩類。(1)拋棄型原型(實驗性原型)利用原型定義和確認了軟件需求后,原型就完成了任務。開發(fā)人員就可以按照確認的需求進行軟件設計、編碼、測試。(2)應用型原型(進化性原型)
利用原型確認軟件需求后,對原型進一步加工、完善,使之成為系統(tǒng)的一部分。2023/2/662圖1.11原型建造模型1.3.4螺旋模型螺旋模型(spiralmodel)是TRW的B.Boehm在1988年提出的一種迭代模型。螺旋模型是從里向外,螺旋線每個回路表示的軟件過程都由四個階段組成。(1)定義目標(2)風險分析(3)開發(fā)和驗證(4)規(guī)劃2023/2/663圖1.12Boehm的螺旋模型2023/2/664螺旋模型適合大型軟件開發(fā)特別是電子商務、電子政務一類的業(yè)務軟件系統(tǒng)因為開發(fā)這類系統(tǒng)時,需求往往不能完全確定項目開始時開發(fā)人員與用戶協(xié)商,將能夠確定的需求、暫時不能確定的需求劃分為一系列的增量,并為增量排序,確定的、急需的增量排在前面,暫時不能確定或不急需的放在后面2023/2/665螺旋模型優(yōu)點具有邊學習、邊建模,邊開發(fā)、邊使用、邊改進缺點由于需求的不確定性,軟件開發(fā)初期無法進行軟件體系結(jié)構(gòu)設計,多次迭代會導致軟件體系結(jié)構(gòu)變壞,為軟件理解和維護帶來困難2023/2/666通過迭代、進化,占領(lǐng)先機原型建造模型和螺旋模型既是迭代模型,又是進化模型實踐中,客戶利用迭代或增量模型盡快開發(fā)第一個版本的軟件制品,占領(lǐng)市場的有利商機,然后再逐步擴展系統(tǒng)功能,不斷推出后續(xù)版本1.3.5基于構(gòu)件的過程模型基于構(gòu)件的軟件開發(fā)以軟件復用為基礎(chǔ),必須有可供選擇和使用的構(gòu)件及集成構(gòu)件的框架。構(gòu)件的基本要素包括:接口定義(操作名、參數(shù)、異常處理)構(gòu)件使用說明(如定義接口的語言,構(gòu)件功能、性能)構(gòu)件部署信息(指明部件如何“打包”成為可執(zhí)行的實體)。它也是快速構(gòu)建原型的有效方法,應用廣泛實踐中構(gòu)件往往是異構(gòu)的有些構(gòu)件是傳統(tǒng)的軟件模塊,有些是面向?qū)ο蟮念惢蜍浖赡軄碜杂诙鄠€供應商給軟件維護帶來困難2023/2/668基于構(gòu)件的過程模型基于構(gòu)件的軟件過程模型如圖所示。圖1.13基于構(gòu)件的軟件開發(fā)模型2023/2/669基于構(gòu)件的過程模型優(yōu)點減少了軟件開發(fā)工作量,降低了軟件開發(fā)成本和風險,縮短了軟件交付時間。缺點為使用構(gòu)件可能要修改需求,提供的軟件可能與用戶期望的系統(tǒng)不同。2023/2/6701.3.6通用軟件過程模型到了1990年代為了滿足社會對應用軟件廣泛、迫切的需求,適應多數(shù)應用軟件開發(fā)需要從創(chuàng)意開始、需求若明若暗、需求變更頻繁的實際情況,人們對常用的軟件過程進行了總結(jié)和擴展,將軟件開發(fā)過程的活動劃分為:
溝通、策劃、建模、構(gòu)建、部署共五項,并以此為基礎(chǔ),構(gòu)建多種通用的軟件過程模型。2023/2/671通用軟件過程模型“溝通”活動:確定業(yè)務模型
項目立項,軟件系統(tǒng)工程師和領(lǐng)域?qū)<摇⒂脩舻慕涣?。不斷提取需求、篩選業(yè)務用例,逐步完善業(yè)務過程模型。溝通活動適應大型業(yè)務軟件需求提取、變更的需要。
溝通活動也是領(lǐng)域?qū)<?、用戶、軟件系統(tǒng)工程師共同學習、認識、確定用戶業(yè)務過程模型(也是待開發(fā)軟件的基本過程模型)的過程。“策劃”活動:評估項目整體風險分析、項目規(guī)劃、成本估算、制定項目計劃、項目跟蹤等。
策劃活動加強了軟件過程的項目管理。2023/2/672通用軟件過程模型“建?!被顒樱悍治雠c設計軟件開發(fā)的需求建模和軟件體系結(jié)構(gòu)設計“構(gòu)建”活動:實現(xiàn)軟件開發(fā)的構(gòu)件獲取或構(gòu)件設計、編碼和測試。建模和構(gòu)建活動是傳統(tǒng)軟件開發(fā)過程的核心。“部署”活動:交付發(fā)布軟件制品、現(xiàn)場安裝、運行、維護,及用戶培訓等。通用的軟件過程模型線性過程模型迭代過程模型增量過程模型進化過程模型并行過程模型2023/2/673通用軟件過程模型通用的軟件過程模型有下列幾種。(1)線性過程模型線性過程模型是在瀑布模型的基礎(chǔ)上發(fā)展起來的,如圖所示。
圖1.14線性過程模型2023/2/674(2)迭代過程模型迭代過程模型由帶反饋的瀑布模型發(fā)展而來。模型中允許溝通和策劃活動反復迭代。這是軟件系統(tǒng)工程師、管理人員與客戶反復交流、提取、確定軟件需求,形成待開發(fā)的需求用例、規(guī)約,進行風險分析、估算開發(fā)成本、制定項目計劃的過程。建?;顒邮且粋€迭代過程開發(fā)的軟件體系結(jié)構(gòu)應滿足需求用例和需求規(guī)約的要求,應不斷優(yōu)化,力求簡潔,符合軟件開發(fā)的原則,滿足開發(fā)的約束條件
圖1.15迭代過程模型2023/2/675(3)通用增量過程模型當軟件開發(fā)前,軟件需求能基本確定,能進行相對完整的軟件體系結(jié)構(gòu)設計時,可采用通用增量過程模型
圖1.16通用的增量過程模型2023/2/676(4)通用進化過程模型原型過程模型和螺旋過程模型都是進化過程模型。包含通用軟件開發(fā)活動的原型模型如圖所示。
圖1.17通用原型過程模型利用軟件開發(fā)五項活動的通用螺旋模型如圖所示。
圖1.18通用螺旋過程模型2023/2/677(5)并行過程模型軟件開發(fā)的溝通、策劃活動與建?;顒涌梢圆⑿胁僮?。溝通、策劃的結(jié)果和變更可及時反饋給建?;顒印=;顒赢a(chǎn)生的軟件制品,如原型、需求規(guī)約、體系結(jié)構(gòu)也可及時反饋給溝通、策劃活動參考。多數(shù)構(gòu)建、部署活動始
于建模完成并通過評審
之后,因為構(gòu)建活動工
作量大、參與的人比較
多,因此希望建?;顒?/p>
生成的軟件體系結(jié)構(gòu)質(zhì)
量比較高、變更比較少,
這樣可以減少返工和產(chǎn)
品報廢。圖1.19并行過程模型2023/2/6781.4敏捷軟件開發(fā)原則和應用1.4.1敏捷軟件開發(fā)原則1.4.2敏捷軟件過程的極限編程實踐1.4.3敏捷軟件開發(fā)過程的應用2023/2/6791.4敏捷軟件開發(fā)原則和應用針對中小型事務處理軟件開發(fā)2001年RobertCMartin等21位經(jīng)驗豐富的軟件開發(fā)專家針對中小型事務處理軟件開發(fā)采用大型、高可信軟件開發(fā)的標準帶來的文檔多、成本高、開發(fā)時間長等弊端,論述了他
溫馨提示
- 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年汽車銷售合同擔保服務模板附車輛改裝服務3篇
- 2024年短期公租房租賃合同
- 崗位職責表課程設計
- 2024幼兒園發(fā)展規(guī)劃(35篇)
- 基于機器學習的古代繪畫修復與復原技術(shù)研究
- 2024年營銷工作計劃(59篇)
- 沼氣池儲氣罐課程設計
- 線描西蘭花課程設計
- 英漢互譯系統(tǒng)的課程設計
- 物流行業(yè)運輸司機工作總結(jié)
- 經(jīng)顱多普勒超聲(TCD)
- 激勵約束考核實施細則
- 抽獎券模板(可修改)
- 高壓蒸汽滅菌效果監(jiān)測記錄簿表(完整版)
- 人教版物理八年級上冊全冊知識點總結(jié)
- 編織密度自動計算
- 硝酸及液體硝酸銨生產(chǎn)行業(yè)風險分級管控體系實施指南
- 瑤醫(yī)目診圖-望面診病圖解-目診
- 染色體標本的制作及組型觀察
- 導游實務課件
- 藝術(shù)類核心期刊目錄
評論
0/150
提交評論