版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程主講:林芳Qq:1329155520課件:/cmRBEA6CPdMuy訪問密碼d614第一章軟件工程概述本章主要內(nèi)容:軟件危機軟件工程軟件生命周期軟件過程本章重點:軟件工程軟件生命周期軟件生命周期模型1.1軟件危機1.1.1軟件工程發(fā)展史1.1.2軟件危機1.1.1軟件工程發(fā)展史19世紀初在法國人約瑟夫雅各JosephMarieJaquard設(shè)計的織布機里已經(jīng)具有了初步的程序設(shè)計的思想英國著名詩人拜倫Byron的女兒、數(shù)學家愛達奧古斯塔拉夫拉斯伯爵夫人AdaAugustaLovelace,在幫助巴貝奇研究分析機時指出分析機可以像織布機一樣進行編程,并發(fā)現(xiàn)進行程序設(shè)計和編程的基本要素,被認為是有史以來的第一位程序員。而著名的計算機語言Ada就是以她的名字命名的。在計算機的發(fā)展史上,二值邏輯和布爾代數(shù)的使用,是一個重要的突破。其理論基礎(chǔ)是由英國數(shù)學家布爾奠定的。早期利用計算機器解決問題的一般過程是針對特定的問題制造解決該問題的機器設(shè)計所需的指令并把完成該指令的代碼序列傳送到卡片或機械輔助部件上使計算機器運轉(zhuǎn)執(zhí)行預定的操作程序設(shè)計的形式有不同程度的改變,但革命性的變革則是1948年,香農(nóng)重新發(fā)現(xiàn)了二值演算之后,發(fā)生的二值邏輯代數(shù),被引入程序設(shè)計過程。程序的表現(xiàn)形式就是存儲在不同信息載體上的0和1的序列。1.1.1軟件工程發(fā)展史從1946年第一臺計算機產(chǎn)生,軟件工程發(fā)展分為4個階段程序設(shè)計階段(20世紀40年代中期-60年代中期)“軟件=程序+文檔”階段(20世紀60年代中期-70年代中期)軟件工程階段:20世紀70年代中期-20世紀90年代第4代技術(shù)階段程序設(shè)計階段(20世紀40年代中期-60年代中期)
主要致力于硬件的設(shè)計和生產(chǎn)。計算機程序是作為解決特定問題的工具和信息分析工具而存在的,并不是一個獨立的產(chǎn)業(yè),軟件基本不受重視。軟件=程序?!败浖?程序+文檔”階段(20世紀60年代中期-70年代中期)20世紀60年代中期-60年代末期20世紀60年代末期-70年代中期20世紀60年代中期-60年代末期軟件需求量增大,軟件作為獨立產(chǎn)品;1968年MartinGoetz獲得了世界上第一個軟件專利。1969年春ADR公司就IBM壟斷軟件產(chǎn)業(yè)提出了訴訟,促使IBM在1969年6月30日宣布結(jié)束一些軟件和硬件的捆綁銷售,為軟件產(chǎn)品單獨定價。20世紀60年代中期-60年代末期軟件規(guī)模與復雜性大大增加這個階段軟件技術(shù)的發(fā)展為解決這個問題奠定了基礎(chǔ)。軟件的技術(shù)也在不斷發(fā)展:引入了多道程序技術(shù)、多用戶系統(tǒng)、人機交互概念、數(shù)據(jù)庫管理系統(tǒng);有了操作系統(tǒng)和編譯技術(shù);不再直接用機器碼編程,而使用各種符號語言來編程,如高級語言BASIC、FORTRAN、ALGOL、COBOL等。20世紀60年代中期-60年代末期開發(fā)方式仍沿用個體化方式,出現(xiàn)了“軟件危機”二十世紀六十年代IBM公司開發(fā)了System/360系列機器。盡管這些機器在性能上有明顯的差異,但是他們有統(tǒng)一的操作系統(tǒng)——OS/360,讓單一OS適用于整個系列的產(chǎn)品是System/360成功的關(guān)鍵。OS/360的成功陸續(xù)地催化出MFT、MVT、SVS、MVS、MVS/XA、MVS/ESA、OS/390和z/OS等大型機的操作系統(tǒng)。OS/360問題開發(fā)難度大,IBM在1963-1966年開發(fā)OS/360,IBM為這個計劃總共投入50億美元的研發(fā)費用,花5000人-年工作量,最多同時有1000人投入開發(fā)工作,源程序近100萬行。質(zhì)量差,維護困難:每次發(fā)行新版本都要更正前一個版本1000個程序錯誤。
《人月神話》焦油坑這個系統(tǒng)在開發(fā)和維護過程中存在很多問題,在開發(fā)OS/360過程中遇到的問題在FredBrooks寫的軟件工程經(jīng)典之作《人月神話》中詳細地敘述了。史前史中,沒有別的場景比巨獸在焦油坑中垂死掙扎的場面更令人震撼。上帝見證著恐龍、猛犸象、劍齒虎在焦油中掙扎。它們掙扎得越是猛烈,焦油糾纏得越緊,沒有任何猛獸足夠強壯或具有足夠的技巧,能夠掙脫束縛,它們最后都沉到了坑底。
1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序:
DO5I=1,3
誤寫為:DO5I=1.
3
1967年蘇聯(lián)“聯(lián)盟一號”載人宇宙飛船在返航時,由于軟件忽略一個小數(shù)點,在進入大氣層時因打不開降落傘而燒毀。20世紀60年代末期-70年代中期
產(chǎn)生了結(jié)構(gòu)化程序設(shè)計理論。從程序中分離出數(shù)據(jù)結(jié)構(gòu)與算法。形成了完整的軟件系統(tǒng)。發(fā)展了各種程序設(shè)計語言。提出并使用“軟件工程”這個術(shù)語?!败浖こ獭边@個詞是由NATO(NorthAtlanticTreatyOrganization北大西洋公約組織屬下的一個研究組在1967年提出的,這個研究組提議召開一次會議,專門討論“軟件所面臨的問題”。1968年,由NATO科學委員會主辦的這次會議在德國加米施(Garmish)召開,會議提交的報告就被命名為《軟件工程》。1968年NATO提出軟件工程的概念,倡導以工程的原理、原則和方法進行軟件開發(fā),以期解決當時出現(xiàn)的"軟件危機"。3、軟件工程時代(20世紀70年代中期~今)計算機滲透到人類活動各個領(lǐng)域。軟件的生產(chǎn)方式是工程化的生產(chǎn),軟件工程標準規(guī)范還不完善軟件開發(fā)技術(shù)有很大進步,軟件生產(chǎn)率大大提高,但未能獲得突破性進展軟件產(chǎn)品供不應(yīng)求,軟件維護要耗費大量的成本,軟件危機日益嚴重,沒有完全擺脫軟件危機4、第4代技術(shù)階段現(xiàn)在的軟件已經(jīng)不再是單機系統(tǒng),計算機體系結(jié)構(gòu)從主機結(jié)構(gòu)轉(zhuǎn)向C/S環(huán)境、B/S環(huán)境。開發(fā)技術(shù)有了新的發(fā)展:計算機輔助軟件工程CASE將工具和代碼生成器結(jié)合起來,為許多軟件系統(tǒng)提供了可靠的解決方案;面向?qū)ο蠹夹g(shù)已在許多領(lǐng)域迅速取代了傳統(tǒng)的軟件開發(fā)方法;專家系統(tǒng)和人工智能軟件有了實際應(yīng)用;人工神經(jīng)網(wǎng)絡(luò)軟件展示了信息處理的美好前景;并行計算、網(wǎng)絡(luò)計算機、虛擬現(xiàn)實技術(shù)、多媒體技術(shù)和現(xiàn)代通信技術(shù)使人們開始采用和原來完全不同的方法進行工作。此外,光計算機、化學計算機、生物計算機和量子計算機等新一代計算機也在研制之中,這將使軟件工程帶來一場新的革命。1.1.2軟件危機(1)軟件危機定義軟件危機定義:軟件開發(fā)和維護過程中遇到的一系列嚴重問題。軟件危機包含兩方面的問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護數(shù)量不斷膨脹的已有軟件。1.1.2軟件危機(2)軟件危機表現(xiàn)1)
軟件成本高
做個算術(shù)題:美國一家公司在1982年計劃用FORTRAN語言開發(fā)一個在VAX750計算機上運行的應(yīng)用程序,估計這個程序的長度為10000條FORTRAN指令。如果平均每人每天可以開發(fā)出10條(注意:開發(fā)工作量包括問題定義、需求分析、總體設(shè)計、詳細設(shè)計、編碼和測試,不僅僅是編寫代碼。),回答如下問題:回答如下問題:1)開發(fā)這個應(yīng)用程序需要多少人日?答:10000/10=1000(人日)2)假設(shè)程序員的月平均工資為4000美元,每月按20個工作日計算,這個軟件的成本是多少?答:1000/20*4000=200000(美元)3)1982年VAX750計算機硬件價格為125000美元,在那一年這個軟件的成本在總成本中占比多少?答:200000/(200000+125000)=61.5%
4)20年后,一臺性能遠遠優(yōu)于VAX750的微型計算機的價格約為2000美元,這時軟件開發(fā)生產(chǎn)率已提高到平均每人每天40條指令,程序員的月平均工資為8000美元,那么這時開發(fā)上述程序,該軟件的成本在總成本中占比多少?答:軟件成本:10000/40/20*8000=100000(美元)總成本中占比:100000/(100000+2000)=98%
1.1.2軟件危機(2)軟件危機表現(xiàn)1)
軟件成本高
1008060402001955硬件軟件19701985總費用的百分比計算機系統(tǒng)硬件/軟件成本變化趨勢1.1.2軟件危機(3)2)軟件研制進度無法預先估計
3)軟件產(chǎn)品質(zhì)量差
4)軟件常常是不可維護
5)軟件發(fā)展跟不上硬件的發(fā)展和用戶的要求
產(chǎn)生軟件危機的原因1、軟件本身的特點軟件是個邏輯實體,不是物理實體,具有抽象性→管理和控制軟件困難軟件規(guī)模龐大→軟件開發(fā)困難軟件故障是在開發(fā)過程中產(chǎn)生而在測試時沒有發(fā)現(xiàn)的問題→軟件故障修改困難軟件維護會產(chǎn)生新的錯誤→軟件維護困難1.1.2軟件危機(4)1.1.2軟件危機(5)2、人為因素,軟件開發(fā)和維護的方法不正確
1)軟件開發(fā)技術(shù)落后、生產(chǎn)方式落后、開發(fā)工具落后
2)對用戶要求沒有完整準確認識就匆忙著手編寫程序
3)只重視程序而忽視軟件配置其余成分:
4)輕視維護:維護費用占軟件總費用的55%-70%
1.1.2軟件危機(6)緩解軟件危機的途徑1、更新觀念:采用工程化的方法和途徑來開發(fā)與維護軟件2、汲取系統(tǒng)工程的理念,采用必要的組織管理和技術(shù)管理措施3、應(yīng)該不斷地發(fā)現(xiàn)、完善、推廣、使用再實踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法。4、開發(fā)和使用更好的軟件工具,提高軟件生產(chǎn)率。
1.2軟件工程學1.2.1什么是軟件?1.2.2什么是軟件工程?1.2.3軟件工程的目標1.2.4軟件工程學的內(nèi)容1.2.5軟件過程1.2.6軟件工程基本原理1.2.1什么是軟件?1.軟件的定義軟件是指計算機程序及其有關(guān)的數(shù)據(jù)和文檔。程序:能夠完成預定功能的可執(zhí)行的指令序列。數(shù)據(jù):程序能適當處理的信息,具有適當?shù)臄?shù)據(jù)結(jié)構(gòu)。文檔:開發(fā)、使用和維護程序所需要的圖文資料。有了程序,為什么需要文檔?直接閱讀程序有難度。程序只是軟件開發(fā)和維護過程中,其中一小階段的成果。軟件生產(chǎn)的各個階段必需完成的有關(guān)計算機程序的功能、設(shè)計和使用的文字或圖形資料,這些資料稱為“文檔”。軟件文檔是以人們可讀的形式出現(xiàn)的技術(shù)數(shù)據(jù)和信息。特別當軟件成為商品時,文檔是必不可少的。2.軟件的特點軟件是一種邏輯產(chǎn)品生產(chǎn)方式主要是研制,而不是硬件制造軟件不允許有誤差軟件維護復雜
3.軟件的分類—按功能進行劃分系統(tǒng)軟件操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設(shè)備驅(qū)動程序通信處理程序等支撐軟件文本編輯程序文件格式化程序磁盤向磁帶向數(shù)據(jù)傳輸?shù)某绦虺绦驇煜到y(tǒng)支持需求分析、設(shè)計、實現(xiàn)、測試和管理的軟件
應(yīng)用軟件商業(yè)數(shù)據(jù)處理軟件工程與科學計算軟件計算機輔助設(shè)計/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動化軟件計算機輔助教學軟件3.軟件的分類—按規(guī)模進行劃分類別參加人員數(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~10M
3.軟件的分類按工作方式劃分:實時處理軟件分時軟件交互式軟件批處理軟件按服務(wù)對象的范圍劃分:項目軟件產(chǎn)品軟件按使用的頻度進行劃分:一次使用頻繁使用按軟件失效的影響進行劃分:高可靠性軟件一般可靠性軟件1.2.2什么是軟件工程?軟件工程定義
1968年在聯(lián)邦德國召開的NATO(NorthAtlanticTreatyOrganization)國際會議上正式提出并使用“軟件工程”這個術(shù)語。定義1:軟件工程是為了經(jīng)濟地獲得能夠在實際機器上高效運行的可靠軟件而建立和使用的一系列的工程化原則。[Bauer1972]定義2:軟件工程是以工程的形式應(yīng)用計算機科學和數(shù)學原理,從而經(jīng)濟有效地解決軟件問題[CMU/SEI-90-TR-03]定義3:軟件工程是將系統(tǒng)性的、規(guī)范化的、可定量的方法應(yīng)用于軟件的開發(fā)、運行和維護。[IEEE1990]定義4:采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它。理解:
1)軟件工程是系統(tǒng)方法而不是神秘的個人技巧。
2)軟件工程的目標是經(jīng)濟、成功地開發(fā)出高質(zhì)量地軟件。
3)軟件工程包含技術(shù)和管理兩方面的內(nèi)容。軟件工程的本質(zhì)特性軟件工程關(guān)注于大型程序的構(gòu)造軟件工程的中心課題是控制復雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧地合作是開發(fā)軟件的關(guān)鍵軟件必須有效地支持它的用戶在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品1.2.3軟件工程的目標軟件工程是一門工程性的學科,軟件工程的目的是成功地構(gòu)造一個大型軟件系統(tǒng)。所謂成功是指達到以下標準:有較低的開發(fā)成本。能達到用戶所要求的軟件功能。有很好的軟件性能。軟件有較好的可移植性、穩(wěn)定性、健壯性和可靠性。有較好的可維護性,較低的維護成本。能按計劃規(guī)定的進度開發(fā),及時交付使用。1.2.4軟件工程學的內(nèi)容軟件工程學的主要內(nèi)容:軟件開發(fā)技術(shù)包含:軟件工程方法學軟件工具軟件開發(fā)環(huán)境;軟件工程管理學包含:軟件工程經(jīng)濟學軟件管理學。理論方面研究1.軟件工程方法學軟件工程方法學是編制軟件的系統(tǒng)方法,它確定軟件開發(fā)的各個階段,規(guī)定每一階段的活動、產(chǎn)品、驗收的步驟和完成準則。各種軟件工程方法的適用范圍不盡相同。目前使用得最廣泛的軟件工程方法學可以分為傳統(tǒng)方法學面向?qū)ο蠓椒▽W計算機世界現(xiàn)實世界結(jié)構(gòu)化開發(fā)方法SASDSPOOAOODOOP面向?qū)ο箝_發(fā)方法(1)傳統(tǒng)方法學采用結(jié)構(gòu)化技術(shù),來完成軟件開發(fā)任務(wù),把軟件開發(fā)工作劃分成若干個階段傳統(tǒng)方法學歷史悠久,是廣大軟件開發(fā)人員所熟悉的,在開發(fā)某些軟件時十分有效。傳統(tǒng)方法可以再分為:面向數(shù)據(jù)流設(shè)計方法面向數(shù)據(jù)結(jié)構(gòu)設(shè)計方法。(2)面向?qū)ο蠓椒▽W面向?qū)ο蠓椒▽W是在傳統(tǒng)方法學的基礎(chǔ)上發(fā)展起來的。面向?qū)ο蠓椒▽W的要素是對象、類、繼承以及消息通信??梢杂孟铝蟹匠虂砀爬ǎ好嫦?qū)ο?對象+類+繼承+消息通信面向?qū)ο蠓椒▽W是多次反復、迭代開發(fā)的過程。軟件工程方法學有三個要素,包括方法、工具和過程。質(zhì)量焦點過程方法工具質(zhì)量焦點:任何工程方法必須以有組織的質(zhì)量保證為基礎(chǔ)。質(zhì)量的理念刺激不斷過程改進,導致出現(xiàn)更加成熟的軟件工程方法。它是軟件工程的根基。過程:軟件工程的基礎(chǔ)是過程。規(guī)定了完成任務(wù)的工作階段、工作內(nèi)容、產(chǎn)品、驗收的步驟和完成準則。軟件工程過程是將技術(shù)層結(jié)合在一起的凝聚力,使得軟件能夠合理地和及時地開發(fā)出來。方法:完成軟件開發(fā)任務(wù)的技術(shù)手段,軟件工程方法層提供了建造軟件在技術(shù)上需要“怎么做”。工具:在工具層對過程和方法提供了自動和半自動的支持。2.軟件工具軟件工具(softwaretools)是指為了支持計算機軟件的開發(fā)和維護而研制的程序系統(tǒng)。使用軟件工具的目的是提高軟件設(shè)計的質(zhì)量和軟件生產(chǎn)效率,降低軟件開發(fā)、維護的成本。軟件工具用于軟件開發(fā)的整個過程。3.軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境是方法和工具的結(jié)合。在1985年第八屆國際軟件工程會議上,關(guān)于“軟件開發(fā)環(huán)境”的定義是:“軟件開發(fā)環(huán)境是相關(guān)的一組軟件工具集合,它支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成”。軟件開發(fā)環(huán)境的設(shè)計目標是提高軟件生產(chǎn)率和改善軟件質(zhì)量。計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)是一組工具和方法的集合,可以輔助軟件生命周期各階段進行的軟件開發(fā)活動。4.軟件工程管理軟件工程管理學包含軟件工程經(jīng)濟學:包括成本估算、效益評價、風險分析、投資回收分析、質(zhì)量評價等。軟件管理學:包括軟件費用管理、人員組織、工程計劃管理、軟件配置管理等。(1)費用管理從經(jīng)濟角度分析,開發(fā)一個軟件系統(tǒng)是否劃算,是軟件使用單位負責人決定是否開發(fā)這個項目的主要依據(jù),要從軟件開發(fā)成本、運行費用、經(jīng)濟效益等方面來估算整個系統(tǒng)的投資和回收情況。軟件開發(fā)成本主要包含開發(fā)人員的工資報酬,開發(fā)階段的各項支出;軟件運行費用取決于系統(tǒng)的操作費用和維護費用;系統(tǒng)的經(jīng)濟效益是指因使用新系統(tǒng)而節(jié)省的費用和增加的收入。由于運行費用和經(jīng)濟效益兩者在軟件的整個使用期內(nèi)都存在,總的效益和軟件使用時間的長短有關(guān),所以,應(yīng)合理地估算軟件的壽命。一般在進行成本/效益分析時一律假設(shè)軟件使用期為五年。(2)人員組織軟件開發(fā)不是個體勞動,需要各類人員協(xié)同配合、共同完成工程任務(wù),因而應(yīng)該有良好的組織、周密的管理。(3)工程計劃管理軟件工程計劃是在軟件開發(fā)的早期確定的。在計劃實施過程中,如果需要,應(yīng)對工程進度作適當?shù)恼{(diào)整。在軟件開發(fā)結(jié)束后應(yīng)寫出軟件開發(fā)總結(jié),以便今后能制定出更切實際的軟件開發(fā)計劃。(4)軟件配置管理軟件工程各階段所產(chǎn)生的全部文檔和軟件本身構(gòu)成軟件配置。每當完成一個軟件工程步驟,就涉及軟件工程配置,必須使軟件配置始終保持其精確性。軟件配置管理就是在系統(tǒng)的整個開發(fā)、運行和維護時期控制配置的狀態(tài)和變動,驗證配置項的完整性和正確性。1.2.5軟件過程國際標準化組織(InternationalStandardizationOrganization,ISO)是世界性的標準化專門機構(gòu)。ISO9000把軟件過程定義為:“把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動”。軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。軟件開發(fā)過程(softwaredevelopmentprocess)是把用戶要求轉(zhuǎn)化為軟件需求,把軟件需求轉(zhuǎn)化為設(shè)計,用代碼來實現(xiàn)設(shè)計、對代碼進行測試,完成文檔編制并確認軟件可以投入運行使用的過程。軟件過程定義了運用方法的順序、應(yīng)該交付的文檔、開發(fā)軟件的管理措施和各階段任務(wù)完成的標志。1.2.6軟件工程基本原理用分階段的生命周期計劃嚴格管理堅持進行階段評審.高中低變化出現(xiàn)的時期早中晚不同時期引入同一變動付出的代價代價1.2.6軟件工程基本原理實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認不斷改進軟件工程實踐的必要性1.3軟件生命周期1.3.1軟件生命周期定義1.3.2軟件生命周期劃分階段的原則1.3.3軟件生命周期各階段的任務(wù)1.3.1軟件生命周期定義軟件產(chǎn)品從定義開始,經(jīng)過開發(fā)、使用和維護,直到最后被淘汰的整個過程稱為軟件生存周期。
為什么稱為軟件生命周期?T軟件生命周期人的生命周期T費用費用貢獻效益為什么要劃分階段?是實現(xiàn)軟件生產(chǎn)過程化的重要步驟。能夠簡化每個階段的工作。容易確立系統(tǒng)開發(fā)計劃。還可以明確系統(tǒng)各類開發(fā)人員的分工與職責范圍。
1.3.2軟件生命周期劃分階段的原則各階段的任務(wù)彼此間盡可能相對獨立。這樣便于逐步完成每個階段的任務(wù),能夠簡化每個階段的工作,容易確立系統(tǒng)開發(fā)計劃。同一階段的工作任務(wù)性質(zhì)盡可能相同。這樣有利于軟件工程的開發(fā)和組織管理,明確系統(tǒng)各類開發(fā)人員的分工與職責范圍,以便協(xié)同工作,保證質(zhì)量。1.3.3軟件生命周期各階段的任務(wù)軟件生存周期階段劃分:軟件計劃:問題定義、可行性研究、需求分析軟件開發(fā):設(shè)計、實現(xiàn)和測試軟件維護:維護
實際從事軟件開發(fā)時,軟件規(guī)模、種類、開發(fā)環(huán)境及開發(fā)時所使用的技術(shù)方法等因素,都影響階段的劃分。(1)問題定義確定系統(tǒng)的目標、規(guī)模和基本任務(wù)。(2)可行性研究從經(jīng)濟、技術(shù)、法律等方面分析確定系統(tǒng)是否值得開發(fā),及時建議停止項目開發(fā),避免人力、物力、時間的浪費。(3)需求分析確定軟件系統(tǒng)應(yīng)具備的具體功能。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和簡明算法描述表示系統(tǒng)的邏輯模型,防止系統(tǒng)的設(shè)計與用戶的實際需求不相符的后果。(4)概要設(shè)計確定系統(tǒng)設(shè)計方案,軟件的體系結(jié)構(gòu)。確定軟件由哪些模塊組成以及這些模塊之間的相互關(guān)系。(5)詳細設(shè)計描述應(yīng)該如何具體地實現(xiàn)系統(tǒng)。詳細設(shè)計每個模塊,確定實現(xiàn)模塊所需要的算法和數(shù)據(jù)結(jié)構(gòu)。(6)軟件實現(xiàn)階段進行程序設(shè)計(編碼)和模塊測試。(7)綜合測試階段通過各種類型的測試,查出軟件設(shè)計中的錯誤并改正,確保軟件質(zhì)量;還要在用戶的參與下進行驗收,才可交付使用。(8)軟件運行、維護軟件運行期間,通過各種必要的維護使系統(tǒng)改正錯誤、或修改擴充功能使軟件適應(yīng)環(huán)境變化,以便延長軟件的使用壽命,提高軟件的效益。每次維護的要求及修改步驟都應(yīng)詳細準確地記錄下來,作為文檔保存。1.4軟件過程軟件過程:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,他規(guī)定了完成各項任務(wù)的工作步驟。軟件開發(fā)模型:描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。軟件開發(fā)模型確立了軟件開發(fā)和演繹中各階段的次序限制,以及各階段活動的準則,確立了開發(fā)過程所遵守的規(guī)定和限制。1.4.1瀑布模型1.4.2快速原型模型(RapidPrototypeModel)1.4.3增量模型1.4.4噴泉模型1.4.5螺旋模型(SpiralModel)1.4.6RUP(統(tǒng)一過程)1.4.7敏捷過程與極限編程1.4.8微軟過程1.4.9軟件開發(fā)模型的選擇1.4.1瀑布模型(waterfallmodel)
屬于傳統(tǒng)的結(jié)構(gòu)化開發(fā)模式,是一種將軟件生存周期各活動階段規(guī)定為依線性順序聯(lián)接的、系統(tǒng)的和順序的開發(fā)方法。傳統(tǒng)的瀑布模型
按照傳統(tǒng)的瀑布模型開發(fā)軟件,有下述三個特點:(1)階段間具有順序性和依賴性(2)推遲實現(xiàn)的觀點(3)質(zhì)量保證的觀點傳統(tǒng)的瀑布模型
為了保證質(zhì)量,瀑布模型堅持兩個重要做法:每個階段都要完成規(guī)定的文檔。每個階段都要對已完成的文檔進行復審,以便及早發(fā)現(xiàn)隱患,排除故障。文檔的作用:作為階段工作成果和結(jié)束標志;向管理人員提供軟件開發(fā)過程中的進展和情況,把軟件開發(fā)過程中的一些“不可見的”事物轉(zhuǎn)換成“可見的”文字資料;記錄開發(fā)過程中的技術(shù)信息,便于協(xié)調(diào)以后的軟件開發(fā)、使用和修改;提供對軟件的有關(guān)運行、維護和培訓的信息,便于各類人員之間相互了解彼此的工作;向潛在用戶報告軟件的功能和性能,使他們能判定該軟件能否服務(wù)于自己的需要。瀑布模型的優(yōu)點:
它可強迫開發(fā)人員采用規(guī)范的開發(fā)方法。它嚴格地規(guī)定了每個階段必須提交的文檔。它要求每個階段所交出的一切產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證。瀑布模型缺點:1)對于應(yīng)用軟件項目,需求難以完整、準確:2)缺乏靈活:3)開發(fā)代價高:4)沒有體現(xiàn)開發(fā)人員之間通信和軟件工具之間聯(lián)系和開發(fā)工作之間并行、串行。1.4.2快速原型模型(RapidPrototypeModel)為什么要原型?正確的需求定義是系統(tǒng)成功的關(guān)鍵。由于以下幾個方面原因:用戶與開發(fā)者之間以及他們之間的交流存在巨大的文化差異;用戶不熟悉信息技術(shù),可能提出非常含糊的需要,而這種需求有可能被開發(fā)人員隨意解釋;經(jīng)驗證明,一旦用戶開始使用計算機系統(tǒng),他們對目標系統(tǒng)的理解可能又會發(fā)生變化。快速原型模型就是解決這方面的問題??焖僭偷亩x所謂快速原型是快速建立起來的可以在計算機上運行的程序,它能完成的功能往往是最終的軟件產(chǎn)品所能完成的功能的一個子集。特點:軟件產(chǎn)品的開發(fā)基本上是線性順序進行的
原型開發(fā)的過程快速原型模型的特點只要快速原型法使用得當,就能減少軟件的總成本,縮短開發(fā)周期。所以快速原型模型是目前比較流行的實用開發(fā)模型。開發(fā)按線性順序進行,從模型圖可以看出,快速原型模型是不帶反饋環(huán)的,在需求確定之后,后面的開發(fā)按線性順行進行。原型的開發(fā)工具應(yīng)根據(jù)目的而使用,快速原型模型原型的分類漸增式原型:也稱增量模型。用于驗證軟件需求的原型:用于驗證設(shè)計方案的原型:1.4.3增量模型使用增量模型開發(fā)軟件時,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。增量模型例如,使用增量模型開發(fā)字處理軟件:第一個增量構(gòu)件可能提供基本的文件管理、編輯和文檔生成功能;第二個增量構(gòu)件提供更完善的編輯和文檔生成功能;第三個增量構(gòu)件實現(xiàn)拼寫和語法檢查功能;第四個增量構(gòu)件完成高級的頁面排版功能。
優(yōu)點:能在較短時間內(nèi)向用戶提交可完成一些有用的工作的產(chǎn)品,是增量模型的一個優(yōu)點。逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學習和適應(yīng)新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。困難:軟件體系結(jié)構(gòu)的設(shè)計:如何分解增量構(gòu)件?應(yīng)該使構(gòu)件規(guī)模適中,規(guī)模過大或過小都不好。最佳的分解方法因軟件產(chǎn)品特點和開發(fā)人員的習慣而異。在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。分解的唯一必須遵守的約束條件是,當把新構(gòu)件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須是可測試的。1.4.4螺旋模型(spiralmodel)
螺旋模型的基本思想是,使用原型及其他方法來盡量降低風險。
簡化的螺旋模型完整的螺旋模型如圖所示1.4.5噴泉模型(fountainmodel)主要用于采用對象技術(shù)的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。
噴泉模型特點:1.開發(fā)過程有分析、系統(tǒng)設(shè)計、軟件設(shè)計和實現(xiàn)4個階段,各階段相互重疊,它反映了軟件過程并行性的特點。不同活動之間項目成就與時間關(guān)系項目工作分析時間設(shè)計實現(xiàn)測試2.以分析為基礎(chǔ),反映了軟件過程迭代性的自然特性,從高層返回低層無資源消耗。3.強調(diào)增量開發(fā),整個過程是一個迭代的逐步提煉的過程。1.4.6RUP(統(tǒng)一過程)
RationalUnifiedProcess(以下簡稱RUP),Rational公司提出的軟件開發(fā)方法。主要由IvarJacobson的TheObjectoryApproch和TheRationalApproch發(fā)展而來。同時,它又是文檔化的軟件工程產(chǎn)品,所有RUP的實施細節(jié)及方法導引均以Web文檔的方式集成在一張光盤上,由Rational公司開發(fā)、維護并銷售,當前版本是5.0。RUP吸收了多種開發(fā)模型的優(yōu)點,具有很好的可操作性和實用性。從它一推出市場,憑借Booch、IvarJacobson、以及Rumbagh在業(yè)界的領(lǐng)導地位以及與統(tǒng)一建模語言(UnifiedModelLanguage,以下簡稱UML)的良好集成、多種CASE工具的支持、不斷的升級與維護,迅速得到業(yè)界廣泛的認同,越來越多的組織以它作為軟件開發(fā)模型框架?;赨ML的RUP把軟件開發(fā)分成四個階段:初始階段細化階段構(gòu)造階段提交階段RUP三大特點:軟件開發(fā)是一個疊代過程。軟件開發(fā)是由UseCase驅(qū)動的。軟件開發(fā)是以架構(gòu)設(shè)計(ArchitecturalDesign)為中心的。1.4.7敏捷過程與極限編程什么是敏捷過程?一種以人為核心、迭代、循序漸進的開發(fā)方法。敏捷開發(fā)是由一些業(yè)界專家針對一些企業(yè)現(xiàn)狀提出了一些讓軟件開發(fā)團隊具有快速工作、響應(yīng)變化能力的價值觀和原則,并于2001初成立了敏捷聯(lián)盟。他們正在通過親身實踐以及幫助他人實踐,揭示更好的軟件開發(fā)方法。
在敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。簡言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
通過這項工作,他們認為:個體和交互勝過過程和工具可以工作的軟件勝過面面俱到的文檔輕量開發(fā)方法是相對于傳統(tǒng)的重量開發(fā)方法而言。簡單地理解,“量”的輕重是指用于軟件過程管理和控制的、除程序量以外的“文檔量”的多少。輕量開發(fā)方法認識到,在當前很多情況下,按傳統(tǒng)觀念建立的大量文檔,一方面需要消耗大量開發(fā)資源,同時卻已失去幫助“預見、管理、決策和控制的依據(jù)”的作用。因此必須重新審視開發(fā)環(huán)節(jié),去除臃腫累贅,輕裝上陣。客戶合作勝過合同談判響應(yīng)變化勝過遵循計劃極限編程(XP,eXtremeProgramming)極限編程是敏捷過程中最富盛名的一個。極限:把好的開發(fā)實踐運用到極致。XP從實踐中來,是對實踐的總結(jié),也是經(jīng)過實踐檢驗的。廣泛應(yīng)用于需求模糊且經(jīng)常改變的場合。極限編程(ExtremeProgramming,簡稱XP)是由KentBeck在1996年提出的。KentBeck在九十年代初期與WardCunningham共事時,就一直共同探索著新的軟件開發(fā)方法,希望能使軟件開發(fā)更加簡單而有效。Kent仔細地觀察和分析了各種簡化軟件開發(fā)的前提條件、可能性以及面臨的困難。1996年三月,Kent終于在為DaimlerChrysler所做的一個項目中引入了新的軟件開發(fā)觀念——XP。極限編程采用的有效的開發(fā)實踐客戶作為開發(fā)團隊的成員至少有一名客戶代表在項目的整個開發(fā)周期中與開發(fā)人員在一起緊密配合工作,客戶代表負責確定需求、回答開發(fā)人員的問題并且設(shè)計功能驗收測試方案。使用用戶素材用戶素材就是正在進行的關(guān)于需求的談話內(nèi)容。根據(jù)用戶素材合理安排實現(xiàn)該項需求的時間。短交付周期每兩周完成一次的迭代過程實現(xiàn)了用戶的一些需求,交付出目標系統(tǒng)的一個可工作的版本。通過向有關(guān)的用戶演示迭代生成的系統(tǒng),獲得他們的反饋意見。驗收測試通過執(zhí)行由客戶指定的驗收測試來捕獲用戶素材的細節(jié)。結(jié)對編程由兩名開發(fā)人員在同一臺計算機上共同編寫解決同一個問題的程序代碼,通常一個人編碼,另一個人對代碼進行審查與測試,以保證代碼的正確性與可讀性。結(jié)對編程是加強開發(fā)人員相互溝通與評審的一種方式。測試驅(qū)動開發(fā)強調(diào)“測試先行”。在編碼之前應(yīng)該首先設(shè)計好測試方案,然后再編程,直到所有測試獲得通過之后才可以結(jié)束工作。集體所有強調(diào)程序代碼屬于整個開發(fā)小組所有,小組每個成員都有更改代碼的權(quán)利,每個成員都對全部代碼的質(zhì)量負責。持續(xù)集成主張在一天之內(nèi)多次集成系統(tǒng),而且隨著需求的變更,應(yīng)該不斷進行回歸測試??沙掷m(xù)的開發(fā)速度規(guī)定開發(fā)人員每周工作時間不超過40小時,連續(xù)加班不可以超過兩周。開放的工作空間全體參與者(開發(fā)人員、客戶等)一起在一個開放的場所中工作,項目組成員在這個場所自由地交流和討論。及時調(diào)整計劃計劃應(yīng)該是靈活的、循序漸進的。制定出項目計劃后,必須根據(jù)項目進展情況及時調(diào)整。簡單的設(shè)計設(shè)計與計劃在本次迭代過程中完成的用戶素材完全匹配,設(shè)計時不需要考慮未來的用戶素材。在一次次迭代過程中,項目組成員不斷變更系統(tǒng)設(shè)計,使之相對于正在實習的用戶素材而言始終處于最優(yōu)狀態(tài)重構(gòu)在不改變系統(tǒng)行為的前提下,重新調(diào)整和優(yōu)化系統(tǒng)的內(nèi)部結(jié)構(gòu),以降低復雜性、消除冗余、增加靈活性和提高性能。應(yīng)該注意,不要過分依賴重構(gòu),不能輕視設(shè)計,對于大中型系統(tǒng)而言,推遲設(shè)計或者不做設(shè)計,那將是一場災(zāi)難。使用隱喻隱喻是把整個系統(tǒng)聯(lián)系在一起的全局視圖,它描述系統(tǒng)如何運作,以及用何種方式把新功能加入到系統(tǒng)中。與其他方式的不同:
對比其它方法
,敏捷方法有時候被誤認為是無計劃性和紀律性的方法,實際上更確切的說法是敏捷方法,強調(diào)適應(yīng)性而非預見性。
適應(yīng)性的方法集中在快速適應(yīng)現(xiàn)實的變化。當項目的需求起了變化,團隊應(yīng)該迅速適應(yīng)。這個團隊可能很難確切描述未來將會如何變化.
對比迭代方法相比迭代式開發(fā)兩者都強調(diào)在較短的開發(fā)周期提交軟件,敏捷方法的周期可能更短,并且更加強調(diào)隊伍中的高度協(xié)作。
對比瀑布式開發(fā),兩者沒有很多的共同點,瀑布模型式是最典型的預見性的方法,嚴格遵循預先計劃的需求、分析、設(shè)計、編碼、測試的步驟順序進行。步驟成果作為衡量進度的方法,例如需求規(guī)格,設(shè)計文檔,測試計劃和代碼審閱等等。相對來講,敏捷方法則在幾周或者幾個月的時間內(nèi)完成相對較小的功能,強調(diào)的是能將盡早將盡量小的可用的功能交付使用,并在整個項目周期中持續(xù)改善和增強。敏捷過程具有對變化和不確定性的更快速、更敏捷的反應(yīng)特性,而且在快速的同時仍然保持可持續(xù)的開發(fā)速度。因此比較適合于開發(fā)可用資源及開發(fā)時間都有苛刻約束的小項目。1.4.8微軟過程規(guī)劃階段確定產(chǎn)品目標;獲取競爭對手的信息;完成對客戶和市場的調(diào)研分析;確定新版本產(chǎn)品應(yīng)該具備的特性;相對于前一版本,新版本應(yīng)該解決的問題和需要增加的功能設(shè)計階段編寫系統(tǒng)特性規(guī)格說明書:軟件特性、系統(tǒng)結(jié)構(gòu)、各構(gòu)件間的相關(guān)性及接口標準高層系統(tǒng)設(shè)計,繪制系統(tǒng)結(jié)構(gòu)圖,確定風險因素劃分子系統(tǒng)制定產(chǎn)品開發(fā)計劃開發(fā)階段:編寫代碼和文檔穩(wěn)定階段:測試和調(diào)試發(fā)布階段微軟過程與RUP比較相對于RUP而言,可以把微軟過程看做是RUP的一個精簡配置版本。整個微軟過程由若干個生命周期的持續(xù)遞進循環(huán)組成,每個生命周期分為5個階段。RUP的初始階段完成微軟過程規(guī)劃階段的工作精化階段完成設(shè)計工作構(gòu)建階段完成開發(fā)和穩(wěn)定工作移交階段完成發(fā)布工作微軟過程的每個階段精簡為一次迭代完成,每次迭代所完成的工作相對于經(jīng)歷RUP的若干個核心工作流程:規(guī)劃階段中一次迭代主要經(jīng)歷的工作流程為:業(yè)務(wù)建模、需求和項目管理;設(shè)計階段中一次迭代經(jīng)歷的工作流程為:業(yè)務(wù)建模、需求、分析設(shè)計和項目管理;開發(fā)階段中一次迭代經(jīng)歷的工作流程為:需求、分析設(shè)計和實現(xiàn);穩(wěn)定階段中一次迭代經(jīng)歷的工作流程為:測試發(fā)布階段中一次迭代經(jīng)歷的工作流程為:部署、配置與變更管理和項目管理。微軟過程與敏捷過程比較相對于敏捷過程,可以把微軟過程看做是它的一個擴充版本。微軟過程補充規(guī)定了其每個生命周期內(nèi)各個階段的具體工作流程。與敏捷過程類似,微軟過程的適用范圍也是具有有限資源和有限開發(fā)時間約束的項目。1.4.9軟件開發(fā)模型的選擇通過3個例子大家討論如何進行軟件項目開發(fā)模型測選擇。例1假設(shè)要求你開發(fā)一個軟件,該軟件的功能是把讀入的浮點數(shù)開平方,所得到的結(jié)果精確到小數(shù)點后4位。一旦實現(xiàn)并且測試完成后,該產(chǎn)品將被拋棄。選擇用哪種軟件生命周期模型,說明理由?這個軟件需求很明確,實現(xiàn)開平方功能的算法也很成熟,因此,既無需通過分析需求也無需用原型來驗證設(shè)計方案。此外,一旦實現(xiàn)并測試完成,該產(chǎn)品將被拋棄,因此也無需使用有助于提高軟件可維護性的增量模型或螺旋模型來開發(fā)。綜上所述,為了開發(fā)這個簡單軟件,使用大多數(shù)人所熟悉的瀑布模型就可以了。例2假設(shè)你被任命為一家軟件公司的項目負責人,你的工作是管理該公司已被廣泛應(yīng)用的字處理軟件的新版本開發(fā)。由于市場競爭激烈,公司規(guī)定了嚴格的完成期限并且已對外公布。你打算用哪種軟件生命周期模型,說明理由?這個項目的一個重要要求是:嚴格的按照已對外公布完成期限。因此選擇生命周期模型時應(yīng)該著重考慮哪種模型有助于加快產(chǎn)品開發(fā)的進度。使用增量模型開發(fā)軟件時可以并行完成開發(fā)工作,因此能夠加快開發(fā)進度。這個項目是開發(fā)該公司已被廣泛應(yīng)用的字處理軟件的新版本,那么有3個結(jié)論:第一:舊版本相當于一個原型,通過收集用戶對舊版本的反映,較容易確定對新版本的需求,沒必要再專門建立一個原型系統(tǒng)來分析用戶的需求;第二:該公司的軟件工程師對字處理軟件很熟悉,有開發(fā)字處理軟件的豐富經(jīng)驗,具有采用增量模型開發(fā)新版字處理軟件所需要的技術(shù)水平;第三,該軟件受到廣大用戶的喜愛,今后很可能還要開發(fā)更新的版本,因此,應(yīng)該把該軟件的體系結(jié)構(gòu)設(shè)計成開放式的,以利于今后的改進和擴充。綜上所述,采用增量模型來完成這個項目比較恰當。例3航天型號軟件研制過程模型航天型號研制經(jīng)歷方案階段、模樣、初樣、試樣(正樣)、定型型號軟件研制通常也經(jīng)歷模樣、初樣、試樣(正樣)模樣、初樣、正樣軟件是針對同一個軟件開展的循環(huán)研制,側(cè)重面不同。結(jié)合原型、漸進模型,以原型-基本型-更新型來形成航天型號軟件研制過程模型基本思想首先在需求尚不明確的情況下,對已知的需求和尚不能確定的需求進行分析整理,在此基礎(chǔ)上簡單地設(shè)計、編制軟件,產(chǎn)生一個軟件的原型;并對原型進行多方面的研究、分析和討論,以便確定所采取的技術(shù)實現(xiàn)方案是否可行,需求還要做哪些補充、修改和完善,從而獲得一個內(nèi)容較完整、接口較明確的軟件需求和一個切實可行的軟件實現(xiàn)技術(shù)途徑。在軟件原型研制的基礎(chǔ)上,進行一次完整、嚴格的軟件研制工作,獲得一個高質(zhì)量的軟件基本型;最后在軟件基本型的基礎(chǔ)上,針對更新的軟件需求,采用軟件更新與更改的的方法,對軟件進行更新,獲得軟件的更新型模樣、初樣、試樣-正樣模樣初樣正樣原型基本型更新型更新版本1更新版本2……原型軟件原型研制的目的是明確接口、確定需求、試驗系統(tǒng)方案需求分析:根據(jù)系統(tǒng)的任務(wù)分解和技術(shù)要求,對已知需求、應(yīng)有需求、未確認需求等進行綜合分析,形成粗略的原型軟件需求規(guī)格說明。設(shè)計:對軟件的總體結(jié)構(gòu)和接口進行設(shè)計,形成軟件設(shè)計說明。編碼調(diào)試:編制程序并調(diào)試通過。分析總結(jié):運行軟件,并與系統(tǒng)總體、相應(yīng)接口單位進行詳細的分析討論,對軟件需求進行補充、修改和完善,并確定技術(shù)途徑的可行性。對高質(zhì)量要求的軟件研制,軟件原型研制所獲的程序應(yīng)廢棄,不帶入以后的研制階段?;拘突拘脱兄频娜蝿?wù)是根據(jù)基本確定的軟件需求,全面開展軟件的研制工作,形成一個基本滿足系統(tǒng)對軟件各項要求的基本型軟件,以直接應(yīng)用于型號或
溫馨提示
- 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年江蘇省連云港市中考英語試題含解析
- 連云港繼續(xù)教育《心理健康與心理調(diào)適》
- 央企績效考核辦法
- Unit4 Growing up單元練習(含答案)2024-2025學年牛津譯林版英語九年級上冊
- 高中物理第三章電磁感應(yīng)第三節(jié)交變電流課件新人教版選修1-
- 2014-2020年電力半導體模塊和組件行業(yè)咨詢報告
- 2010-2012年水性聚氨酯市場運營及預測分析報告
- 高考地理一輪復習工業(yè)地域的形成與發(fā)展后達標檢測新人教版11
- 2024至2030年中國光纖壁畫數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國PE塑料桶行業(yè)投資前景及策略咨詢研究報告
- 全國專業(yè)標準化技術(shù)委員會目錄
- 中國鐵路總公司公開招聘報名表doc.doc
- 隧道臺車計算書
- 工傷風險數(shù)據(jù)庫
- 試生產(chǎn)現(xiàn)場安全檢查表
- 建筑工程總承包與分包界面劃分大全(4種)
- 物資管理相關(guān)流程圖
- 高速公路黃河特大橋施工渡汛方案
- 歷史故事課件指鹿為馬圖文.ppt
- 上海市高中學生化學競賽(“華理-化工杯”)初賽試題
- 數(shù)學建模教程第3講MATLAB作課件
評論
0/150
提交評論