第1章 軟件工程學(xué)_第1頁
第1章 軟件工程學(xué)_第2頁
第1章 軟件工程學(xué)_第3頁
第1章 軟件工程學(xué)_第4頁
第1章 軟件工程學(xué)_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

付宏,教授,軟件與理論方向軟件工程-軟件構(gòu)架與軟件中間件計算機仿真與數(shù)值模擬聯(lián)系方式:計算機樓B21713500822883fuhong@

2024/2/261/1062024/2/26時間、能力、關(guān)系時間52*5-30-35-12=183天上課睡覺吃飯其它4.57210.5能力(985+211+論文)坐下看想行動關(guān)系=討論+協(xié)商+尊重2/1062015201420132012華為華為華為

華為中興中興中興

中興浪潮浪潮神州數(shù)碼

神州數(shù)碼方正方正海爾

海爾南瑞南瑞I方正

方正聯(lián)創(chuàng)科技聯(lián)創(chuàng)科技聯(lián)創(chuàng)科技

熊貓東軟東軟浪潮

浙大網(wǎng)新用友用友浙大網(wǎng)新

浪潮浙大網(wǎng)新浙大網(wǎng)新同方電腦

東軟寶信寶信東軟

清華同方中國軟件企業(yè)十大品牌企業(yè)排名

2024/2/263/1061Microsoft19751986操作系統(tǒng)(OA)和IT供應(yīng)商2Oracle19771989應(yīng)用軟件、數(shù)據(jù)庫產(chǎn)品、開發(fā)工具、專業(yè)服務(wù)集成化供應(yīng)商,Oracl電子商務(wù)套件,Oracle10g新一代電子商務(wù)平臺3SAP1972德國1993用戶/服務(wù)器企業(yè)管理軟件及協(xié)同服務(wù)解決方案供應(yīng)商(IBM4人)SAPERP,SAP客戶關(guān)系管理,SAP產(chǎn)品生命周期管理,SAP供應(yīng)商關(guān)系管理,SAP供應(yīng)鏈管理首鋼礦業(yè)4Compuware19731996應(yīng)用生命周期管理軟件供應(yīng)商——控制成本、降低風(fēng)險、增加收入中軟5NAI19891997合1998電子商務(wù)網(wǎng)絡(luò)安全可用性解決方案供應(yīng)商(美國網(wǎng)絡(luò)聯(lián)盟公司,反病毒廠商)中國石化6BMC19801999企業(yè)管理解決方案供應(yīng)商——從業(yè)務(wù)角度開發(fā)幫助企業(yè)有效管理IT,發(fā)布IT管理策略中國聯(lián)通7BEA19952003應(yīng)用基礎(chǔ)結(jié)構(gòu)軟件供應(yīng)商(電信業(yè)軟件、JAVA中間件)BillolemanEdscottAlfredChuang(莊思浩)東軟8Infor20022005為努力進取公司提供商業(yè)解決方案軟件供應(yīng)商(中間件:企業(yè)資源計劃、供應(yīng)鏈計劃和執(zhí)行、客戶與供應(yīng)商關(guān)系管理、資產(chǎn)管理、產(chǎn)品生命周期管理、財務(wù)管理)利安電光源(香港)有限公司、中興汽車、首鋼實業(yè)公司9Sybase19841991企業(yè)集成解決方案供應(yīng)商(電信、證卷、金融、政府、交通、能源)企業(yè)數(shù)據(jù)庫管理系統(tǒng)、整合各種應(yīng)用平臺、企業(yè)信息流轉(zhuǎn)換成經(jīng)濟效益中國電信10SAS19661976成1990智能軟件供應(yīng)商(數(shù)據(jù)倉庫技術(shù)、分析方法、智能應(yīng)用)中國移動中國工商銀行世界十大著名軟件公司2024/2/264/1062024/2/265/1062024/2/266/106劉積仁

2024/2/267/106張瑞敏2024/2/268/106孫丕恕,山東人,山東大學(xué)無線電專業(yè)畢業(yè)2024/2/269/1062024/2/2610/1062024/2/2611/106孫力斌

2024/2/2612/106(七)經(jīng)中國人民銀行批準(zhǔn)的其他相關(guān)服務(wù)業(yè)務(wù)。中國銀聯(lián)股份有限公司總裁許羅德2024/2/2613/1062024/2/2614/1062024/2/2615/1062024/2/2616/106吉大正元吉大正元信息技術(shù)股份有限公司(以下簡稱“吉大正元”)是中國領(lǐng)先的信息安全專業(yè)服務(wù)提供商,成立于1999年2月,吉林大學(xué)為主要發(fā)起人,注冊資本為人民幣7500萬元,經(jīng)過七年發(fā)展,資產(chǎn)總額由1600萬元遞增到2.57億元,年均增長速度為215%。吉大正元運營中心位于北京中關(guān)村,在東北、上海、深圳、武漢等8個區(qū)域設(shè)有分公司、辦事處,控股山西省數(shù)字證書認證中心,參股國投安信數(shù)字證書認證中心。吉大正元主要從事信息安全產(chǎn)品的研發(fā)、生產(chǎn)、銷售,并提供安全咨詢、安全評估和安全集成等服務(wù),同時參與制定多項國家和行業(yè)PKI/PMI標(biāo)準(zhǔn),是國家信息安全標(biāo)準(zhǔn)技術(shù)委員會WG4PKI/PMI標(biāo)準(zhǔn)組、WG3密碼算法和密碼模塊工作組的主要成員和子項目召集單位。吉大正元現(xiàn)已成為國內(nèi)信息安全行業(yè)知名企業(yè),是國內(nèi)最大的公鑰基礎(chǔ)設(shè)施(PKI)產(chǎn)品供應(yīng)商。根據(jù)中國電子商務(wù)協(xié)會的統(tǒng)計數(shù)據(jù):目前吉大正元在PKI電子證書認證系統(tǒng)領(lǐng)域處于領(lǐng)先地位,市場占有率在70%以上。2024/2/2617/1062024/2/2618/106總目錄第1章軟件工程學(xué)概述第2章可行性研究第3章需求分析第4章形式化說明技術(shù)第5章總體設(shè)計第6章詳細設(shè)計第7章實現(xiàn)第8章維護第9章面向?qū)ο蠓椒▽W(xué)引論第10章面向?qū)ο蠓治龅?1章面向?qū)ο笤O(shè)計第12章面向?qū)ο髮崿F(xiàn)第13章軟件項目管理2024/2/2619/106第1章軟件工程學(xué)概述1.1軟件危機理解

1.2軟件工程掌握1.3軟件生命周期掌握1.4軟件過程掌握2024/2/2620/106第1章軟件工程學(xué)概述1.1軟件危機個體化的軟件環(huán)境在60年代中期以前,通用硬件相當(dāng)普遍軟件是為每個具體應(yīng)用而專門編寫的,通常是規(guī)模較小的程序,編寫者和使用者往往是同一個(或同一組)人軟件設(shè)計通常是在人們頭腦中進行的一個隱含的過程,除了程序清單之外,沒有其他文檔資料保存下來2024/2/2621/106軟件的作坊式生產(chǎn)從60年代中期到70年代中期是計算機系統(tǒng)發(fā)展的第二代時期隨著計算機應(yīng)用的日益普及,軟件數(shù)量急劇膨脹軟件維護工作,以令人吃驚的比例耗費資源。許多程序的個體化特性使得它們最終成為不可維護的。1968年北大西洋公約組織的計算機科學(xué)家在西德召開國際會議,正式提出并使用了“軟件工程”這個名詞,一門新興的工程學(xué)科就此誕生了。2024/2/2622/1061.1.1軟件危機介紹1軟件危機:是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件危機包含下述兩方面的問題:如何開發(fā)軟件,滿足對軟件的日益增長的需求如何維護數(shù)量不斷膨脹的已有軟件

軟件蕭條、軟件困擾

2024/2/2623/106軟件危機的一些表現(xiàn):(1)對軟件開發(fā)成本和進度的估計常常很不準(zhǔn)確(2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。閉門造車(3)軟件產(chǎn)品的質(zhì)量往往靠不住。復(fù)查審查正確性證明(4)軟件常常是不可維護的??芍赜密浖?5)軟件通常沒有適當(dāng)?shù)奈臋n資料。里程碑、工具開發(fā)、維護(6)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。大量人力(7)軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應(yīng)用迅速普及深入的趨勢。供不應(yīng)求2024/2/2624/106

1.1.2產(chǎn)生軟件危機的原因

1產(chǎn)生軟件危機的原因一方面與軟件本身的特點(特性)有關(guān),另一方面也和軟件開發(fā)與維護的方法不正確有關(guān)。軟件特性

(1)形態(tài)特性:無形、不可見的邏輯實體。(2)智能特性:知識、實踐經(jīng)驗、人類智慧的凝聚。(3)開發(fā)特性:個體勞動-個人行為、個人因素。(4)質(zhì)量特性:可參照物不明確、測試技術(shù)局限性、

無問題軟件難以確定(無法定量分析系統(tǒng)的性能)(5)生產(chǎn)特性:生產(chǎn)成本=設(shè)計開發(fā)成本2024/2/2625/106(6)管理特性:對大規(guī)模知識型工作者智力勞動的管理-培訓(xùn)、指導(dǎo)、激勵、制度推行、過程

量化與監(jiān)督、溝通、協(xié)調(diào)等。(7)環(huán)境特性:依賴于計算機系統(tǒng)。(8)維護特性:與使用和時間無關(guān),修正遺留、隱藏的

缺陷。(9)廢棄特性:它不會因為使用時間過長而被“用壞”

維護不劃算-廢棄或退役。(10)應(yīng)用特性:國民經(jīng)濟+國防2024/2/2626/106方法上存在的問題(1)目前相當(dāng)多的軟件專業(yè)人員對軟件開發(fā)和維護還有不少糊涂觀念,在實踐過程中或多或少地采用了錯誤的方法和技術(shù),這可能是使軟件問題發(fā)展成軟件危機的主要原因,忽視分析、看重開發(fā)、輕視維護。(2)對用戶要求沒有完整準(zhǔn)確的認識就匆忙著手編寫程序是許多軟件開發(fā)工程失敗的主要原因之一。(3)缺乏軟件開發(fā)的經(jīng)驗、開發(fā)數(shù)據(jù)的積累。(4)軟件人員與用戶交流存在障礙-文化差異、需求工具。(5)軟件開發(fā)過程不規(guī)范。(6)軟件規(guī)模增大,復(fù)雜性指數(shù)上升。()xin(7)缺少有效的軟件評測手段。2024/2/2627/1062生命周期一個軟件從定義、開發(fā)、使用和維護,直到最終被廢棄(孕育、誕生、成長、成熟、衰亡),要經(jīng)歷一個漫長的時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生命周期(生存周期)。問題定義可行性研究軟件定義需求分析設(shè)計(概要設(shè)計、詳細設(shè)計)編寫程序(10%一20%)軟件開發(fā)測試維護(55%-70%)運行維護2024/2/2628/1063變動的代價在早期引入變動,涉及的面較少,因而代價也比較低;在開發(fā)的中期引入一個變動要對所有已完成配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上更復(fù)雜,因此付出的代價劇增;在軟件“已經(jīng)完成”時再引入變動,則需要付出更高得多的代價。早中后高中低圖1.1引入同一變動付出的代價隨時間變化的趨勢2024/2/2629/106軟件維護比硬件維護更復(fù)雜,它與硬件的維護有本質(zhì)差別2024/2/2630/1061.1.3消除軟件危機的途徑集體。軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。經(jīng)驗。必須充分吸取和借鑒人類長期以來從事各種工程項目所積累的行之有效的原理、概念、技術(shù)和方法,特別要吸取幾十年來人類從事計算機硬件研究和開發(fā)的經(jīng)驗教訓(xùn)。推廣。應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法,并且研究探索更有效的技術(shù)和方法,盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和做法。工具。應(yīng)該開發(fā)和使用更好的軟件工具。正如機械工具可以“放大”人類的體力一樣軟件工具可以“放大”人類的智力。2024/2/2631/1061.2軟件工程

軟件:是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。程序是能夠完成預(yù)定功能和性能的可執(zhí)行的指令序列;數(shù)據(jù)是使程序能夠適當(dāng)?shù)靥幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu);文檔是開發(fā)、使用和維護程序所需要的圖文資料。軟件分類系統(tǒng)軟件:與計算機硬件系統(tǒng)配合,使計算機各部件、相關(guān)軟件、數(shù)據(jù)-協(xié)調(diào)和高效工作的軟件。應(yīng)用軟件:在系統(tǒng)軟件的支持下,在特定領(lǐng)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。支撐軟件:工具軟件縱向支撐:軟件生命周期某階段工具-分析、設(shè)計、編碼、測試、維護等工具橫向支撐:軟件生命周期活動工具-項目管理工具、配置管理工具可復(fù)用軟件:軟件的各種標(biāo)準(zhǔn)庫-廠商提供2024/2/2632/1061.2.1軟件工程的介紹1968年在第一屆NATO會議上給出“軟件工程就是為了經(jīng)濟地獲得可靠的而且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理”。1993年IEEE更全面更具體的定義:“軟件工程是:①把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運行和維護過程,也就是把工程應(yīng)用于軟件;②研究①中提到的途徑。”NorthAtlanticTreatyOrganizationInstituteforElectricalandElectronicsEngineers2024/2/2633/106軟件工程:是指導(dǎo)計算機軟件開發(fā)和維護的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效的維護它。2024/2/2634/106

軟件工程具有下述本質(zhì)特性:

1軟件工程關(guān)注大型程序的構(gòu)造2軟件工程的中心課題是控制復(fù)雜性

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

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

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

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

7在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品2024/2/2635/1061.2.2軟件工程的基本原理

著名的軟件工程專家B.W.Boehm于1983年在一篇論文中提出了軟件工程的七條基本原理。1用分階段的生命周期計劃嚴格管理

生命周期劃分若干階段、制定可行的計劃、按計劃開發(fā)、維護、管理2堅持進行階段評審大部分錯誤是在編碼之前造成的,據(jù)Boehm等人的統(tǒng)計,設(shè)計錯誤占軟件錯誤的63%,編碼錯誤僅占37%;錯誤發(fā)現(xiàn)與改正得越晚所需付出的代價也越高。2024/2/2636/1063實行嚴格的產(chǎn)品控制改變需求時,為了保持軟件各個配置成分的一致性,必須實行嚴格的產(chǎn)品控制,其中主要是實行基準(zhǔn)配置管理?;鶞?zhǔn)配置又稱為基線配置,它們是經(jīng)過階段評審后的軟件配置成分(各個階段產(chǎn)生的文檔或程序代碼)?;鶞?zhǔn)配置管理也稱為變動控制,一切有關(guān)修改軟件的建議,待別是涉及到對基準(zhǔn)配置的修改建議,都必須按照嚴格的規(guī)程進行評審,獲得批準(zhǔn)以后才能實施修改。2024/2/2637/1064采用現(xiàn)代程序設(shè)計技術(shù)人們一直把主要精力用于研究各種新的程序設(shè)計技術(shù)。

SA-SD-SP技術(shù),OOA-OOD-OOP技術(shù)。2024/2/2638/1065結(jié)果應(yīng)能清楚地審查

軟件產(chǎn)品是看不見摸不著的邏輯產(chǎn)品。軟件開發(fā)人員(或開發(fā)小組)的工作進展情況可見性差,難以準(zhǔn)確度量,使得軟件產(chǎn)品的開發(fā)過程比一般產(chǎn)品的開發(fā)過程更難于評價和管理。為了提高軟件開發(fā)過程的可見性,更好地進行管理,應(yīng)該根據(jù)軟件開發(fā)項目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使得所得到的結(jié)果能夠清楚地審查。2024/2/2639/1066開發(fā)小組的成員應(yīng)該少而精

開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。素質(zhì)高的人員的開發(fā)效率比素質(zhì)低的人員的開發(fā)效率可能高幾倍至幾十倍,而且素質(zhì)高的人員所開發(fā)的軟件中的錯誤明顯少于素質(zhì)低的人員所開發(fā)的軟件中的錯誤。此外,隨著開發(fā)小組人員數(shù)目的增加,交流情況討論問題而造成的通信開銷也急劇增加。N(N-1)/2,可見隨著人數(shù)N的增大,通信開銷將急劇增加。因此,組成少而精的開發(fā)小組是軟件工程的一條基本原理,合理5-8人。2024/2/2640/1067承認不斷改進軟件工程實踐的必要性

Boehm提出應(yīng)把承認不斷改進軟件工程實踐的必要性作為軟件工程的第七條基本原理。按照這條原理,不僅要積極主動地采納新的軟件技術(shù),而且要注意不斷總結(jié)經(jīng)驗,積極收集各種數(shù)據(jù)。2024/2/2641/1061.2.3軟件工程方法學(xué)軟件工程:技術(shù)+管理技術(shù):軟件工程方法學(xué)包括3個要素:方法、工具和過程。方法:完成軟件開發(fā)各項任務(wù)的技術(shù)

工具:運用方法提供的自動的或半自動的軟件工程支撐環(huán)境過程:為了獲得高質(zhì)量的軟件所要完成的一系列任務(wù)框架,規(guī)定了完成各項任務(wù)的工作步驟目前使用得最廣泛的軟件工程方法學(xué)分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)管理:通過計劃、組織、控制等一系列活動,合理的配置和使用各種資源,以達到既定的目標(biāo)和過程。方法學(xué):軟件生命周期全過程使用的一整套技術(shù)和方法的集合。

2024/2/2642/1061傳統(tǒng)方法學(xué)(稱生命周期方法學(xué)或結(jié)構(gòu)化范型)從時間角度對軟件開發(fā)和維護的復(fù)雜問題進行分解,把軟件生命周期依次劃分為若干個階段,每個階段有相對獨立的任務(wù),然后逐步完成每個階段的任務(wù)。對于任何兩個相鄰的階段而言,前一階段的結(jié)束標(biāo)準(zhǔn)就是后一階段的開始標(biāo)準(zhǔn)。在每一個階段結(jié)束之前都必須進行正式嚴格的技術(shù)審查和管理復(fù)審,通過之后這個階段才算結(jié)束;如果檢查不過,則必須進行必要的返工,并且返工后還要再經(jīng)過審查。審查的一條主要標(biāo)準(zhǔn)就是每個階段都應(yīng)該交出“最新式的”高質(zhì)量的文檔資料,從而保證在軟件開發(fā)工程結(jié)束時有一個完整準(zhǔn)確的軟件配置交付使用。這種方法歷史悠久,為廣大軟件工程師所熟悉。自頂向下順序的完成軟件開發(fā)各階段的任務(wù)。2024/2/2643/1062面向?qū)ο蠓椒▽W(xué)是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法,把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件把所有對象都劃分成類按照父類與子類的關(guān)系,把若干個相關(guān)類組成一個層次結(jié)構(gòu)的系統(tǒng)對象彼此間僅能通過發(fā)送消息互相聯(lián)系面向?qū)ο蠓椒▽W(xué)的出發(fā)點和基本原則是盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,從而使描述問題的問題空間與實現(xiàn)解法的解空間在結(jié)構(gòu)上盡可能一致。主動、多次、反復(fù)迭代的過程2024/2/2644/1061.3軟件生命周期一般說來,軟件生命周期由軟件定義、軟件開發(fā)和軟件運行維護三個時期組成,每個時期又進一步劃分成若干個階段。軟件定義時期問題定義可行性研究需求分析軟件開發(fā)時期總體設(shè)計詳細設(shè)計系統(tǒng)設(shè)計編碼和單元測試綜合測試系統(tǒng)實現(xiàn)軟件運行維護時期(運維)2024/2/2645/1061問題定義:要解決的問題是什么2可行性研究:確定問題有可行得通的解決辦法嗎?3需求分析:目標(biāo)系統(tǒng)必須具備哪些功能。用正式文檔準(zhǔn)確地記錄對目標(biāo)系統(tǒng)的需求,產(chǎn)生規(guī)格說明書。4總體設(shè)計概括地說,應(yīng)該怎樣實現(xiàn)目標(biāo)系統(tǒng),應(yīng)設(shè)計出低成本、中等成本、高成本3種方案,推薦最佳方案。2024/2/2646/1065詳細設(shè)計設(shè)計每個模塊,確定實現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。6編碼和單元測試寫出正確的容易理解、容易維護的程序模塊。7綜合測試通過各種類型的測試使軟件達到預(yù)定的要求:集成測試:根據(jù)設(shè)計的軟件結(jié)構(gòu),把經(jīng)過單元檢驗的模塊按某種選定的策略結(jié)合起來,在裝配過程中對程序進行必要的測試。驗收測試:按照規(guī)格說明書的規(guī)定,由用戶對目標(biāo)系統(tǒng)進行驗收。2024/2/2647/1068軟件維護,通常有四類維護活動:改正性維護:診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯誤適應(yīng)性維護:修改軟件以適應(yīng)環(huán)境的變化完善性維護:根據(jù)用戶的要求改進或擴充軟件使它更完善預(yù)防性維護:修改軟件為將來的維護活動預(yù)先做準(zhǔn)備2024/2/2648/1062024/2/2649/106經(jīng)典軟件過程模型瀑布模型V模型快速原型模型階段模型(增量模型與迭代模型)螺旋模型噴泉模型現(xiàn)代軟件過程模型Rational統(tǒng)一過程敏捷過程與極限編程微軟過程1.4軟件過程2024/2/2650/106軟件過程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。過程的特性過程使用一定的資源,受一定的限制,并生成一定的中間及最終產(chǎn)品;過程中所包含的活動事先都規(guī)定好了;過程中每個活動的開始、結(jié)束有明確的規(guī)定;每項活動都有相應(yīng)的指導(dǎo)原則,用以明確其目標(biāo);各活動之間以某種順序組織;過程可能包括若干相互關(guān)聯(lián)的子過程;過程中的活動、資源以及產(chǎn)品都可能受到約束。1.4軟件過程1.4.1瀑布模型1特點(1)階段間具有順序性和依賴性

定義過程開發(fā)過程維護過程1問題的定義2可行性研究3需求分析4總體設(shè)計5詳細設(shè)計6編碼7測試8維護傳統(tǒng)的瀑布模型必須等前一階段的工作完成之后,才能開始后一階段的工作。前一階段的輸出文檔就是后一階段的輸入文檔。2024/2/2651/106(2)推遲實現(xiàn)的觀點對于規(guī)模較大的軟件項目來說,編碼開始得越早,最終完成開發(fā)工作所需要的時間反而越長。清楚地區(qū)分邏輯設(shè)計與物理設(shè)計,盡可能推遲程序的物理實現(xiàn),是瀑布模型開發(fā)軟件的一條重要的指導(dǎo)思想(即設(shè)計之前的規(guī)約,編碼之前的設(shè)計)。傳統(tǒng)的瀑布模型定義過程開發(fā)過程維護過程1問題的定義2可行性研究3需求分析4總體設(shè)計5詳細設(shè)計6編碼7測試8維護2024/2/2652/106(3)質(zhì)量保證的觀點軟件工程的基本目標(biāo)是優(yōu)質(zhì)、高產(chǎn)。在瀑布模型的每個階段都應(yīng)堅持兩個重要做法:第一,每個階段都必須完成規(guī)定的文檔。完整、準(zhǔn)確的合格文檔不僅是軟件開發(fā)時期各類人員之間相互通信的媒介,也是運行時期對軟件進行維護的重要依據(jù)。第二,每個階段結(jié)束前都要對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。

瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動的模型。瀑布模型的本質(zhì)是“一次通過”。2024/2/2653/106實際的瀑布模型2024/2/2654/1062優(yōu)點與缺點優(yōu)點:強迫開發(fā)人員采用規(guī)范的方法;嚴格規(guī)定了每個階段必須提交的文檔;階段產(chǎn)品必須經(jīng)過質(zhì)量保證小組的驗證。缺點:客戶必須能夠完整、正確和清晰地表達他們的需求;開發(fā)人員一開始就必須理解需求。缺乏靈活性。一旦軟件需求存在偏差,就會導(dǎo)致開發(fā)出的軟件產(chǎn)品不能滿足用戶的實際要求。在一個項目的早期階段,過分地強調(diào)了基線和里程碑處的文檔,可能要花費更多的時間,建立了一些用處不大的文檔。直到項目結(jié)束之前,都不能演示系統(tǒng)的能力,增加了項目的風(fēng)險。3瀑布模型適用的情況只適用于項目開始時需求就已確定的情況。需求變化小2024/2/2655/1062024/2/2656/106瀑布模型的歷史功績在支持開發(fā)結(jié)構(gòu)化軟件、控制軟件開發(fā)復(fù)雜度、促進軟件開發(fā)工程化方面起了顯著作用;它為軟件開發(fā)和維護提供了一種當(dāng)時較為有效的管理模式,根據(jù)這一模式制定開發(fā)計劃、進行成本預(yù)算、組織開發(fā)人員,以階段評審和文檔控制為手段,有效地對軟件開發(fā)過程進行指導(dǎo),從而對軟件質(zhì)量有一定程度的保證;我國曾在1988年根據(jù)該模型制定并公布了“軟件開發(fā)規(guī)范”國家標(biāo)準(zhǔn)。1.4.2V模型

V模型是瀑布模型的變體,它反映了測試活動與分析和設(shè)計的關(guān)系(德國國防部1992)。編碼形成了V的頂點,分析和設(shè)計在左邊,測試和維護在右邊。2024/2/2657/106

單元和集成測試針對的是程序的正確性系統(tǒng)測試驗證系統(tǒng)設(shè)計由顧客完成的驗收測試把測試步驟與需求說明的每一個元素聯(lián)系起來,以此來確認需求被正確地實現(xiàn)。2024/2/2658/106

該模型中V的左邊和右邊的邊線意味著,如果在驗證和確認的過程中發(fā)現(xiàn)了問題,那么繼續(xù)執(zhí)行右邊的測試步驟之前,重新執(zhí)行V的左邊以修正和改進需求、設(shè)計和編碼。V模型使得某些迭代和重復(fù)工作更加清晰,而這些工作在瀑布模型中都是隱含的。瀑布模型的中心通常是文檔和工件,而V模型的中心則是活動和正確性。2024/2/2659/106驗證(Verification)目標(biāo)是確定系統(tǒng)中各項功能可以正常工作,實質(zhì)上是檢查實現(xiàn)的質(zhì)量如何。確認(Validation)目標(biāo)是確定系統(tǒng)實現(xiàn)了全部的需求,確保開發(fā)方建造的是正確的、用戶需要的產(chǎn)品。2024/2/2660/1062024/2/2661/106V模型的改良之處與存在的問題本質(zhì)是把瀑布模型中一些隱含的迭代過程明確出來,使開發(fā)活動和驗證活動的相關(guān)性更加明顯;V模型使抽象等級的概念也更明顯:所有從需求到實現(xiàn)部分的活動關(guān)注的是建立更多的系統(tǒng)詳細表述,而所有從實現(xiàn)到交付運行的活動關(guān)注的是對系統(tǒng)的驗證和確認。和瀑布模型一樣,都是對軟件開發(fā)過程過份簡單、理想化的抽象,對需求變化的適應(yīng)性差。1.4.3快速原型模型1快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品功能的一個子集。2原型在開發(fā)中的作用:

(1)獲得用戶的真正需求;

(2)可用于為一個項目或項目中某些部分,確定技術(shù)、成本和進度的可能性。3快速原型模型中各主要部分

(1)原型快速分析:指在分析者和用戶的緊密配合下,快速確定軟件系統(tǒng)的基本要求.(2)原型構(gòu)造:在原型分析的基礎(chǔ)上,根據(jù)基本需求規(guī)格說明,忽略細節(jié),只考慮主要特性,快速構(gòu)造一個可運行的系統(tǒng)。2024/2/2662/106(3)原型運行與評價:軟件開發(fā)人員與用戶頻繁通信、發(fā)現(xiàn)問題、消除誤解的重要階段,目的是發(fā)現(xiàn)新需求并修改原有需求。(4)原型修正:對原型系統(tǒng),要根據(jù)修改意見進行修正。(5)判定原型完成:如果原型經(jīng)過修正或改進,獲得了參與者的一致認可,那么原型開發(fā)的迭代過程可以結(jié)束2024/2/2663/1062024/2/2664/106快速原型模型設(shè)計驗證編碼驗證綜合測試維護快速原型驗證規(guī)格說明驗證變化的需求驗證2024/2/2665/106優(yōu)點有助于滿足用戶的真實需求文檔能正確描述用戶需求開發(fā)基本是線性順序通過原型進行學(xué)習(xí)快速缺點可能會增加成本原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅速構(gòu)造原型,依據(jù)用戶意見迅速的修改原型,原型可以是最終產(chǎn)品的一部分,也可以拋棄。2024/2/2666/1061.4.4增量模型(漸增模型)增量模型有一個假設(shè),即需求可以分段,成為一系列增量產(chǎn)品,每一增量可以分別地開發(fā)。增量模型把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼和測試。每個構(gòu)件由多個相互作用的模塊構(gòu)成,能完成特定的功能。第一個增量構(gòu)件往往實現(xiàn)軟件的基本需求,提供最核心的功能。分解時必須遵守的約束條件是,當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中去時,所形成的產(chǎn)品必須是可測試的。2024/2/2667/106圖1.5增量模型概要設(shè)計驗證需求分析驗證規(guī)格說明驗證針對每個構(gòu)件,完成詳細設(shè)計、編碼和集成,經(jīng)測試后交付給用戶維護2024/2/2668/1062024/2/2669/1062024/2/2670/106規(guī)格說明設(shè)計編碼和集成交付客戶規(guī)格說明設(shè)計編碼和集成交付客戶規(guī)格說明設(shè)計編碼和集成交付客戶·········構(gòu)件1:構(gòu)件2:構(gòu)件n:圖1.6風(fēng)險更大的增量模型2024/2/2671/106優(yōu)點1.是瀑布模型的變體,具有瀑布模型的優(yōu)點,產(chǎn)品分期交付。2.第一個可交付版本所需要的成本和時間是很少的;3.開發(fā)由增量表示的小系統(tǒng)所承擔(dān)的風(fēng)險是不大的;4.由于能很快發(fā)布第一個版本,可以減少用戶需求的變更;5.允許增量投資,即在項目開始時,可以僅對一個或兩個增量投資。6.用戶對產(chǎn)品有充裕的的時間進行學(xué)習(xí)和適應(yīng)缺點1.如果沒有對用戶的變更要求進行規(guī)劃,那么產(chǎn)生的初始增量可能會造成后來增量的不穩(wěn)定;2.如果需求不像早期思考的那樣穩(wěn)定和完整,那么一些增量就可能需要重新開發(fā),重新發(fā)布;3.管理發(fā)生的成本、進度和配置的復(fù)雜性,可能會超出一些組織的能力。2024/2/2672/106困難1.在把每個新的增量構(gòu)件集成到現(xiàn)有的軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)的產(chǎn)品2.軟件體系結(jié)構(gòu)必須是開放的3.本身具有矛盾性,一方面要求開發(fā)人員把軟件看作一個整體,另一方面要求開發(fā)人員把軟件看作構(gòu)件序列,且構(gòu)件間彼此獨立2024/2/2673/106該模型的適用情況在開始開發(fā)時,需求很明確,且產(chǎn)品還可被適當(dāng)?shù)胤纸鉃橐恍┆毩⒌摹⒖山桓兜能浖?;在開發(fā)中,期望盡快提交其中的一些增量產(chǎn)品。例如:一個數(shù)據(jù)庫系統(tǒng),它必須通過不同的用戶界面,為不同類型的用戶提供不同的功能。在這一情況下,首先實現(xiàn)完整的數(shù)據(jù)庫設(shè)計,并把一組具有高優(yōu)先級的用戶功能和界面作為一個增量;以后陸續(xù)構(gòu)造其它類型用戶所需求的增量。2024/2/2674/106迭代開發(fā)是在一開始就移交一個完整的系統(tǒng),然后在每一個新的發(fā)布版本中改變每個子系統(tǒng)的功能。

1.4.5迭代模型2024/2/2675/106圖1.6迭代模型規(guī)格說明設(shè)計編碼和集成交付客戶規(guī)格說明設(shè)計編碼和集成交付客戶規(guī)格說明設(shè)計編碼和集成交付客戶版本1:版本2:版本n:2024/2/2676/1061.4.6螺旋模型

Boehm(1988)從涉及到的風(fēng)險的角度來看待軟件開發(fā)過程,提出用螺旋模型,把開發(fā)活動和風(fēng)險管理結(jié)合起來以降低和控制風(fēng)險。2024/2/2677/106

螺旋模型的基本思想是:是用原型及其他方法來盡量降低風(fēng)險。1確定階段目標(biāo),為完成階段目標(biāo)選擇方案,設(shè)定這些方案的約束條件2用建造原型的方法來排除上述方案中潛在的風(fēng)險3用瀑布模型開發(fā)4評價該階段工作,計劃下階段工作2024/2/2678/106維護風(fēng)險分析快速原型驗證風(fēng)險分析規(guī)格說明驗證風(fēng)險分析變化的需求驗證風(fēng)險分析設(shè)計驗證風(fēng)險分析編碼驗證風(fēng)險分析綜合測試圖1.7簡化的螺旋模型2024/2/2679/1062024/2/2680/106螺旋模型的特點:實質(zhì)上相當(dāng)于在瀑布模型的每個階段開始前引入風(fēng)險分析,并由客戶對階段性產(chǎn)品做出評審,這對保證軟件產(chǎn)品質(zhì)量十分有利;由于引入風(fēng)險分析等活動,測試活動的確定性增強了;螺旋模型最外層代表維護,開發(fā)與維護采用同樣方式,使維護得到與開發(fā)同樣的重視。螺旋模型主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項目,只有內(nèi)部開發(fā)項目,才能在風(fēng)險過大時方便終止項目。2024/2/2681/106螺旋模型適用性:主要適合內(nèi)部開發(fā),否則風(fēng)險分析必須在簽訂合同前完成,或者爭取客戶的最大理解;只適合大型軟件項目的開發(fā),否則,每個階段的風(fēng)險分析將占用很大一部分資源,增加成本;對開發(fā)人員的風(fēng)險分析能力是極大的考驗,否則,模型將退化到瀑布模型,甚至更糟。2024/2/2682/1061.4.6

噴泉模型(面向?qū)ο筮^程模型)進一步開發(fā)運行狀態(tài)集成和測試階段編碼階段面向?qū)ο笤O(shè)計階段面向?qū)ο蠓治鲭A段需求階段維護期“噴泉”體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性2024/2/2683/106圓圈的重疊,表明兩個活動之間存在交迭面向?qū)ο蠓椒ㄔ诟拍詈捅硎痉椒ㄉ系囊恢滦裕WC了各項開發(fā)活動之間的無縫過度。注意事項為避免使用噴泉模型開發(fā)軟件時開發(fā)過程過于無序,應(yīng)該把一個線形過程作為總目標(biāo)面向?qū)ο蠓缎捅旧硪蠼?jīng)常對開發(fā)活動進行迭代或求精2024/2/2684/106最佳實踐—6條軟件開發(fā)經(jīng)驗①迭代式開發(fā):復(fù)雜系統(tǒng)的需求會經(jīng)常改變,通過一系列細化、若干漸進反復(fù),得出有效解決方案的迭代方法②管理需求:確定需求是一個連續(xù)的過程,在提取組織功能需求和約束時RUP使用用例和腳本實現(xiàn)③使用基于構(gòu)件的體系結(jié)構(gòu):構(gòu)件是功能清晰的模塊和子系統(tǒng),系統(tǒng)現(xiàn)存的、第三方開發(fā)商提供的④可視化建模:用無歧異的模型,可為文字、圖形、數(shù)學(xué)表達式,RUP采用UML⑤驗證軟件質(zhì)量:質(zhì)量評估內(nèi)建在貫穿于整個開發(fā)過程的、由全體成員參與的所有活動中⑥控制軟件變更:變更是不可避免的,但要有管理變更的能力,對迭代軟件進行控制、跟蹤、監(jiān)控修改1.4.7RUP(RationalUnifiedProcess)2024/2/2685/106RUP軟件開發(fā)生命周期2024/2/2686/1062024/2/2687/106核心工作流業(yè)務(wù)建模

了解目標(biāo)系統(tǒng)的機構(gòu)、商業(yè)運作需求

開發(fā)人員、用戶對需求達成共識分析與設(shè)計

建立分析、設(shè)計模型實現(xiàn)

設(shè)計轉(zhuǎn)化成結(jié)果測試

識別、確認缺陷并消除部署

生成目標(biāo)系統(tǒng)的可運行版本,移交給用戶配置與變更管理

跟蹤維護開發(fā)過程中Artifacts的完整性和一致性項目管理

提供項目管理框架,為軟件開發(fā)項目制定計劃、人員配備、執(zhí)行和監(jiān)控等方面的使用準(zhǔn)則,并為風(fēng)險管理提供框架環(huán)境

軟件開發(fā)環(huán)境,包括過程管理和工具支持2024/2/2688/106RUP軟件開發(fā)生命周期2024/2/2689/1062024/2/2690/106RUP軟件開發(fā)生命周期2024/2/2691/1062024/2/2692/106工作階段初始階段:建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,確定項目的范圍精化階段:設(shè)計并確定系統(tǒng)的體系結(jié)構(gòu),制定項目計劃,確定資源需求構(gòu)建階段:開發(fā)所有構(gòu)件和程序,集成為用戶需要的產(chǎn)品,測試所有功能移交階段:把開發(fā)出的產(chǎn)品提交給用戶使用適用性迭代開發(fā),所有項目2024/2/2693/1061.4.8敏捷過程與極限編程敏捷過程(2001/2,17位—敏捷軟件開發(fā)宣言TheManifestooftheAgileAlliance)敏捷過程由4個簡單的價值觀構(gòu)成個體和交互勝過過程和工具-團隊、環(huán)境可以工作的軟件勝過面面俱到的文檔-簡明客戶合作勝過合同談判-變化、團隊協(xié)同響應(yīng)變化勝過遵循計劃-計劃靈活、可塑、調(diào)整2024/2/2694/106極限編程是敏捷過程中最富盛名的一個,其中“極限”的含義是指把最好的開發(fā)實踐運用到極致。目前極限編程已經(jīng)成為一個典型的開發(fā)方法,廣泛應(yīng)用于需求模糊且經(jīng)常改變的場合。特點:對變化和不確定性反應(yīng)更快速,更敏捷;快速的同時保持可持續(xù)的開發(fā)速度。極限編程(eXtremeProgramming,XP)2024/2/2695/106客戶作為開發(fā)團隊的成員使用用戶素材(正在進行的關(guān)于需求的談話內(nèi)容的助記符)短交付周期(每兩周完成一次迭代)驗收測試結(jié)對編程(一人寫、一人查)測試驅(qū)動的開發(fā)(測試先行,先制定測試計劃)集體所有(程序代碼屬于整個開發(fā)小組,每個成員都有修改代碼的權(quán)利,都對全部代碼負責(zé))極限編程的有效實踐2024/2/2696/106持續(xù)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論