第一章軟件工程概論_第1頁
第一章軟件工程概論_第2頁
第一章軟件工程概論_第3頁
第一章軟件工程概論_第4頁
第一章軟件工程概論_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程華南理工大學(xué)計算機科學(xué)與工程學(xué)院信息網(wǎng)絡(luò)中心/數(shù)園網(wǎng)絡(luò)有限公司開發(fā)存在的主要問題總結(jié)沒有明確的項目計劃,缺乏整體對項目進展的規(guī)劃項目沒有明確的的生命周期模型,沒有明確的階段性,無法衡量各個階段的進展情況。只能靠領(lǐng)導(dǎo)或者專家的經(jīng)驗來評估。整個開發(fā)過程對上層管理者不可視,不能及時發(fā)現(xiàn)和糾正開發(fā)過程中存在的問題整個開發(fā)過程缺乏質(zhì)量保證意識,目前基本上沒有質(zhì)量改進和過程改進的計劃和措施,還是依靠幾個"專家"和"牛人"的力量。開發(fā)存在的主要問題項目缺乏過程控制,開發(fā)過程沒有納入配置管理,整個項目運作完成后,不能回顧開發(fā)過程中的工作產(chǎn)品。沒有配置管理,也會給開發(fā)人員帶來較大的隨意性,產(chǎn)生問題的幾率也會增大。項目之間的相互牽扯較多,一個人屬于多個項目,每個項目的人力投入、時間計劃很難估算。也給這些人進度延遲或者出現(xiàn)問題找到了托詞。沒有需求管理措施,什么需求應(yīng)該接納,什么需求應(yīng)該拒絕,需求如何跟蹤都沒有有效管理。開發(fā)存在的主要問題開發(fā)過程中一般較多關(guān)注功能實現(xiàn),缺乏對可測試性、可維護性等等質(zhì)量屬性方面的關(guān)注。開發(fā)過程中所使用的規(guī)程、規(guī)范、文檔模板、檢查單較少。針對開發(fā)過程、設(shè)計方法等方面的培訓(xùn)資料較少,企業(yè)需要在緊張的工作中去培育員工多方面的管理和業(yè)務(wù)素質(zhì)。制定了一些規(guī)范和標(biāo)準(zhǔn),但可操作性還不強,需要更新和完善。開發(fā)存在的主要問題缺乏一些必要的IT支撐體系,如:缺陷跟蹤電子流,項目跟蹤電子流、質(zhì)量保證電子流和必要的輔助工具?!怀墒旖M織軟件項目的特征1、缺乏確定的軟件過程和相應(yīng)的管理和控制;2、即使給出了軟件過程,也不嚴(yán)格的遵循和強制執(zhí)行;3、管理是完全被動的,管理者采用的策略是救火式的,即出了事才去解決,解決的時候也難以縱觀全局,往往只顧眼前;4、由于缺乏有依據(jù)的估算,制訂軟件預(yù)算和生產(chǎn)計劃時往往跟著感覺走,實際生產(chǎn)時則常常超標(biāo);5、如果強制在預(yù)定期限內(nèi)完成,那么軟件的功能和質(zhì)量肯定是得不到保證;

6、缺乏評價軟件產(chǎn)品質(zhì)量和解決產(chǎn)品缺陷和過程問題的客觀基礎(chǔ)成熟組織軟件項目的特征具有在企業(yè)范圍內(nèi)管理、控制軟件開發(fā)和維護過程的能力;現(xiàn)有人員和新進人員均了解所遵循的軟件過程,且工作活動均按照事先的計劃完成;在定義好的軟件過程中,所有項目和機構(gòu)中的角色和責(zé)任分明;制定的計劃是有效的且與實際的工作進展一致;軟件過程在必要時可按照一定規(guī)則和程序加以修改;軟件產(chǎn)品和過程的具有一定的可控性。這主要體現(xiàn)在:成熟組織軟件項目的特征1.

管理者能夠監(jiān)督軟件產(chǎn)品的質(zhì)量和生產(chǎn)過程;2.

具有客觀的和定量化的措施來判斷產(chǎn)品質(zhì)量并分析產(chǎn)品與生產(chǎn)過程中的問題;3.

計劃和預(yù)算有章可循,它是基于歷史數(shù)據(jù)的,從而是實際可行的;4.

預(yù)算的結(jié)果,包括成本、時間表、產(chǎn)品功能和質(zhì)量等,通常能夠達到;5.

有關(guān)的參與者完全理解遵循軟件過程的價值并認(rèn)真地遵循之;6.

具有支撐軟件過程的基礎(chǔ)設(shè)施,如標(biāo)準(zhǔn)過程庫、歷史數(shù)據(jù)庫等。不成熟組織軟件項目的結(jié)果救火英雄輩出錯誤付出高昂代價員工積極性降低企業(yè)生存壓力受到嚴(yán)重挑戰(zhàn)……數(shù)據(jù)分析0.117KLOC/人月軟件生產(chǎn)率軟件開發(fā)生產(chǎn)率對比0.3公司SEI數(shù)據(jù)分析數(shù)/KLOCBug率軟件Bug率對比0.5公司SEI7.3數(shù)據(jù)分析問題所占百分比錯誤類型XX產(chǎn)品XX版本問題按錯誤分布統(tǒng)計圖14.214.814.84.833.118.3接口需求編碼邏輯設(shè)計其他數(shù)據(jù)分析問題所占百分比錯誤類型設(shè)計問題分布設(shè)計思想錯誤設(shè)計缺陷更改設(shè)計新增設(shè)計32.1數(shù)據(jù)分析問題所占百分比錯誤類型需求問題分布244需求不明確需求不合理新增需求72華為流程化管理歷程介紹1、質(zhì)量大會(萬人領(lǐng)廢品)給人的啟示2、流程化管理歷程3、取得的效果原微軟全球技術(shù)中心總經(jīng)理唐俊會見朱鎔基時分析中國軟件企業(yè)的不足:中國軟件企業(yè)缺乏標(biāo)準(zhǔn)化的研發(fā)模式,缺乏了解正規(guī)的軟件研發(fā)流程的管理人員,缺乏真正熟悉軟件開發(fā)流程的高級程序員。印度軟件產(chǎn)業(yè)現(xiàn)狀:

2002年軟件產(chǎn)值為101億美元、出口76.8億美元,估計在2008年為850億美元,出口500億美元。全球最大的500家公司中有200多家采用印度軟件,美國最大的100家公司幾乎100%把印度作為國外軟件的首選地。印度成功的經(jīng)驗:CMM流程化管理,全球CMM五級組織有42家,CMM四級組織有87家,印度有80多家。如何搜集、管理和使用信息,將決定你在競爭中的輸贏。中國不缺少軟件人才,缺少的只是群體作業(yè)和協(xié)同發(fā)展的全球戰(zhàn)略眼光以及市場運作的能力?!葼枴どw茨第一章軟件工程概述§1.1軟件工程的背景和歷史軟件發(fā)展階段:程序設(shè)計階段—50至60年代程序系統(tǒng)階段—60至70年代軟件工程階段—70年代以后195019601970198019902000早期:面向批處理有限的分布自定義軟件第二階段:多用戶實時數(shù)據(jù)庫軟件產(chǎn)品第三階段:分布式系統(tǒng)嵌入“智能”低成本硬件消費者的影響第四階段:強大的桌面系統(tǒng)面向?qū)ο蠹夹g(shù)專家系統(tǒng)人工神經(jīng)網(wǎng)絡(luò)并行計算網(wǎng)絡(luò)計算機軟件開發(fā)大事記

1945年6月30日,馮?諾依曼在EDVIC計算機設(shè)計報告草案中介紹了存儲程序的概念。圖靈謝絕了劍橋大學(xué)帝國學(xué)院研究的地位,參加了英國國家物理實驗室(NPL)數(shù)學(xué)部的工作。他把早先對可計算性的研究成果與他在戰(zhàn)時的電子學(xué)方面經(jīng)驗結(jié)合在一起,以極大的熱情從事電子計算機的設(shè)計工作。他起草了關(guān)于自動計算機機器ACE(automaticcomputingengine)的報告,描述了存儲程序概念在計算機中的應(yīng)用,闡明了用程序?qū)崿F(xiàn)某些運算而程序員不必知道機器細節(jié)的情況,這就預(yù)言了以后對高級語言的開發(fā),他甚至還想象遠程終端的使用,指出“利用電話線來控制遠距離的計算機是完全可能的”1945年軟件開發(fā)大事記

6月,馮?諾依曼(JohnvonNeumann)與高德斯坦等人發(fā)表了《電子計算機裝置邏輯結(jié)構(gòu)初探》的論文,成為EDVAC的設(shè)計基礎(chǔ)。

1946年

10月,圖靈發(fā)表了一篇論文《計算機器與智能》(ComputingMachineryandIntelligence),指出如果一臺機器對于質(zhì)問的響應(yīng)與人類的響應(yīng)完全無法區(qū)別,那么這臺機器就具有智能。今天,人們把這一論斷稱為圖靈測試,它奠定了人工智能的理論基礎(chǔ)。1950年軟件開發(fā)大事記

1951年開始使用子程序概念?;魻柋额D(BettyHolbertor)創(chuàng)建了一種分類-合并生成器,成為編譯系統(tǒng)的前驅(qū)?;羝昭兄瞥晒Φ谝粋€編譯程序A-O。1952年

IBM資助的一個委員會在JohnBackus領(lǐng)導(dǎo)下開始研制高級語言,設(shè)計用于科學(xué)與工程計算的FORTRAN語言。

IBM推出了IBM704,其機器性能較以前的計算機有了顯著提高。并且在IBM704上首次運行了符號匯編程序SAP(symbolicassemblyprogram),成為程序發(fā)展史上最有意義的事。它確立了匯編的基本形式。1954年1956年軟件開發(fā)大事記

1957年,在IBM704上運行了第一個高級語言FORTRAN,它適合科技運算,至今還在使用。

在高級語言方面出現(xiàn)了COMITⅡ,IPL-Ⅴ,IT等。COMITⅡ是用字符串處理與模式匹配的第一語言。IPL-Ⅴ是一種表處理語言,形式上與匯編語言類似,曾在60年代大量使用。IT是在IBM650小型機上實現(xiàn)的第一語言,對編譯程序的研究起了推動作用。1957年軟件開發(fā)大事記高級語言方面,MIT的JohnMcCarthy發(fā)明了LISP語言。它是為人工智能領(lǐng)域的應(yīng)用而設(shè)計。至今仍在廣泛使用。ALGOL58出現(xiàn):它由一個國際數(shù)學(xué)家小組設(shè)計,主要用于數(shù)學(xué)與科學(xué)計算。出現(xiàn)了第一個專用語言APT,用于數(shù)控機床的程序編寫。此外,還有用于商業(yè)數(shù)據(jù)處理的語言Flow-Matic。在象棋程序方面,AlexBernstein等人開發(fā)了運行在IBM704機的第一個成熟的程序。AlanNewell,JohnShaw,HerbertSimon還使用高級語言首次開發(fā)了模仿人類思維過程的程序。在1958年,空中交通管理系統(tǒng)開始開發(fā)。1958年軟件開發(fā)大事記

建立了數(shù)據(jù)處理系統(tǒng)委員會(CODASYL)以創(chuàng)建通用的商用語言COBOL。麥卡錫(JohnMcCarthy)開發(fā)了用于人工智能的表處理語言LISP。1959年

ALGOL60問世。它是在ALGOL58的基礎(chǔ)上,由一個國際數(shù)學(xué)家小組定義的。FORTRAN的設(shè)計者JohnBackus也參加了這項工作。ALGOL語言正是通過BackusNaurForm(即巴科斯?諾爾范式)這種元語言來定義的。ALGOL是使用遞歸的第一個主要的面向過程的語言。

COBOL語言的規(guī)格報告正式公布。它是自1959年5月,由GraceM.Hopper領(lǐng)導(dǎo)的小組在五角大樓支持下的工作的結(jié)果。

1960年軟件開發(fā)大事記出現(xiàn)了第一個模擬語言GPSS。它是GeneralPurposeSystemSimulator的縮寫。意為“通用系統(tǒng)模擬程序”。所謂模擬,就是用計算機來“做實驗”,通過模擬可得知“實驗”的反應(yīng)與結(jié)果。MIT在IBM7090上開發(fā)了第一個實驗性分時系統(tǒng)CTSS(compatibletimesharingsystem)。當(dāng)時的7090只有32K內(nèi)存,監(jiān)控程序為5K,剩下27K給用戶使用。CTSS成功地支持著32個用戶,允許他們同時用各自的終端來編譯程序和運行程序。CTSS對IBM后來的操作系統(tǒng)產(chǎn)生了很大的影響。

1961年軟件開發(fā)大事記在測試技術(shù)方面,Auerback公司提供了最早的基準(zhǔn)程序Benchmark。在語音識別方面,貝爾實驗室的Kersta研制了用語音譜圖,發(fā)現(xiàn)同一個人同一個音的譜圖總是比不同的人發(fā)同一個音的譜圖更為相似。為此他創(chuàng)造了一個類似于“指紋”(fingerprint)的新詞“聲紋”(voiceprint),就是說像用“指紋”辨別人那樣,可以用“聲紋”來辨別人。這很有應(yīng)用價值。貝爾實驗室的另一個小組開發(fā)了能設(shè)計、存儲及編輯合成音樂的軟件。美國斯坦福及普度大學(xué)首次建立計算機科學(xué)系。1962年軟件開發(fā)大事記貝爾實驗室發(fā)明了為字符串處理提供完善功能的一種獨特的編程語言SNOBOL。GPSS之后又一種模擬語言SIMSCRIPT問世。由大型軟件系統(tǒng)支持的美國半自動防空系統(tǒng)(SAGE)花費了80億美元才得以成功1963年軟件開發(fā)大事記5月1日,美國達特茅斯學(xué)院的凱梅尼(JohnKemeny)和湯姆斯(ThomasKurtz)發(fā)明了BASIC語言。他們認(rèn)為FORTRAN等語言都是為專業(yè)人員設(shè)計的,而他們希望能為毫無經(jīng)驗的人提供一種新的語言,特別是使用非計算機專業(yè)的大學(xué)生都能通過這種語言學(xué)會使用計算機。此外,在編程語言方面還出現(xiàn)了PL/1、Formac,以及IBM公司開發(fā)的報表生成程序:RPGⅡ。后者是一種使用方便的專用語言,用戶只需了解有關(guān)“輸入、文件描述、計算、輸出”這4個規(guī)格說明,就可用RPGⅡ產(chǎn)生報表。因此,有人曾說RPG是第四代編程語言的先兆。IBM經(jīng)7年努力,完成了航空訂票系統(tǒng)。為分散于各地的機票代理機構(gòu)提供方便。IBM在當(dāng)年開發(fā)了計算機輔助設(shè)計系統(tǒng)。1964年軟件開發(fā)大事記開始了MAC工程,服務(wù)于大型分時系統(tǒng)。后來發(fā)展成為Multics操作系統(tǒng)。羅賓森(J.A.Robinson)的工作打下了邏輯程序設(shè)計的基礎(chǔ)。荷蘭計算機科學(xué)家迪克斯特拉(EdsgarW.Dijkstra)提出結(jié)構(gòu)化編程技術(shù),適合在軟件的詳細設(shè)計或低層設(shè)計及編碼實現(xiàn)階段采用。1965年IBM公司的P.H.Howard提出英文字符識別系統(tǒng),推動了文字識別技術(shù)的發(fā)展。R.Casey和G.Nagy對漢字OCR(光學(xué)字符識別)進行了研究,并提出二級匹配的方法。1966年軟件開發(fā)大事記在模擬語言方面,出現(xiàn)了Simula67。這是第一個面向?qū)ο笳Z言。它是挪威計算中心的O.J.Dahl和K.Nygaard用ALGOL語言開發(fā)的。在科學(xué)計算方面,出現(xiàn)了Reduce軟件包。美國科學(xué)家克努斯(DonaldKnuth)開發(fā)發(fā)表其經(jīng)典巨作——TheArtofComputerProgramming。把算法與數(shù)據(jù)結(jié)構(gòu)作為獨立實體從使用它們的程序中分離出來。1967年軟件開發(fā)大事記10月北大西洋公約組織(NATO)的科學(xué)委員會在德國加爾密斯(Garmisch)開會討論軟件可靠性及軟件危機的問題,產(chǎn)生了關(guān)于“軟件工程”的加爾密斯報告,簡稱G-報告。首次提出了關(guān)于“軟件工程”的問題。荷蘭科學(xué)家埃德EdsgarW.Dijkstra在ACM通信上發(fā)表了“GOTO語句值得考慮的害處”(GOTOStatementConsideredHarmful)的短文,指出調(diào)試修改程序的困難與它包含的GOTO數(shù)目成正比,假如取消了GOTO語句,將會使編程錯誤大幅減少。于是引發(fā)了一場關(guān)于結(jié)構(gòu)化編程的大討論。在編程語言方面,國際信息處理聯(lián)合會(FP)的工作小組設(shè)計了ALGOL68。雖然它是ALGOL60的后繼者,但它卻是一種全新的語言。其設(shè)計目的是:為算法間的交流、為不同計算機上程序的可移植、為計算機科學(xué)的教育提供一種通用的程序設(shè)計語言。ALGOL68有很豐富的表達能力,有令人感興趣的優(yōu)美結(jié)構(gòu)。該聯(lián)合會還鼓勵使用六位數(shù)字的數(shù)據(jù)格式(YYMMDD)來表示日期進行信息交換,從而造成今天的2000年危機問題。此外,SeymourPapert、W.Feurzeig等開發(fā)了Logo語言。它作為LISP語言的一種方言,是專為兒童介紹計算機及其編程而研制的。它在用戶接口上開發(fā)完整的編程環(huán)境。在計算機圖形學(xué)方面,IvanE.Suterland提出窗口技術(shù)。

1968年軟件開發(fā)大事記貝爾實驗室的DennisM.Ritchie和K.Thompson用PDP-7匯編指令編寫了UNIX的第一版本V1。這一著名操作系統(tǒng)正式問世。UNIX的發(fā)展對計算機界、尤其是對軟件界產(chǎn)生了巨大而深刻的影響。10月,NATO的委員會又在意大利的羅馬開會討論軟件開發(fā)技術(shù)問題,產(chǎn)生了關(guān)于“軟件工程技術(shù)”的羅馬報告,簡稱R-報告。1969年WinstonRoyce在他的《管理大型軟件系統(tǒng)的開發(fā)》(ManagingtheDevelopmentofLargeSoftwareSystems)提出了著名的“瀑布模型”(Waterfalldevelopmentmethod)??绿兀‥.F.Codd)提出關(guān)系模型為數(shù)據(jù)庫技術(shù)的發(fā)展打下基礎(chǔ)。在編程語言方面,出現(xiàn)了用于系統(tǒng)程序設(shè)計的BLISS語言,它是BasicLanguageforImplementationofSystemSoftware的縮寫,用來編寫編譯程序和操作系統(tǒng)。1970年軟件開發(fā)大事記瑞士聯(lián)邦技術(shù)學(xué)院的NiklausWirth(尼可萊?沃斯)教授發(fā)明了第一個結(jié)構(gòu)化的編程語言,并用17世紀(jì)法國著名科學(xué)家BlaisePascal(帕斯卡)的名字把它命名為Pascal語言。Pascal語言出現(xiàn)后,ALGOL68便銷聲匿跡了。這一年,Wirth教授還提出“自頂向下、逐步細化”的程序設(shè)計方法,成為從高層設(shè)計開始、貫穿整個中層設(shè)計、并延續(xù)到底層設(shè)計直到編碼完成的一種重要的軟件設(shè)計方法。FriedrichI.Bauer給軟件工程下了個定義:“確立并使用正確的工程原理和方法,以便能夠經(jīng)濟地獲得可靠而有效的軟件。”巴拿斯(DavidParnas)提出了信息隱蔽的原理,對軟件工程的發(fā)展產(chǎn)生了巨大影響。JohnKemeny和ThomasKurtz推出BASIC第6版,使BASIC成為相當(dāng)穩(wěn)定的通用語言。在計算機輔助教學(xué)領(lǐng)域出現(xiàn)TUTOR語言,它在CDC6500以及Cyber系列的PLATO控制下運行。1971年軟件開發(fā)大事記在編程語言方面,貝爾實驗室的DennisRitchie發(fā)明了C語言。它在MartinRichards的BCPL語言和KenTbompston的B語言的基礎(chǔ)上進行發(fā)展。最初的C語言是為編寫UNIX而設(shè)計的,并在PDP-11上首先實現(xiàn)。法國馬賽大學(xué)的AlanColmerature發(fā)明了PROLOG語言,它是用于人工智能領(lǐng)域的又一種編程語言,在歐洲和日本比較流行。Xerox公司的PaloAlto研究中心AlanKay(艾蘭?凱)發(fā)明了Smalltalk語言。它是一種面向?qū)ο蟮恼Z言,適合使用鼠標(biāo)工作的可視計算機系統(tǒng)(Visualcomputersystem),它體現(xiàn)了與傳統(tǒng)程序設(shè)計不同的觀念及風(fēng)格。在軟件工程方面,D.Parnas進一步提出軟件結(jié)構(gòu)問題和Parnas分解方法。特點是分解時每個模塊都隱藏著一個設(shè)計,使用這個方法能決定設(shè)計決策的層次,得到軟件的結(jié)構(gòu)。在計算機科學(xué)的理論方面,計算復(fù)雜性理論提出了NP問題的思想。以此表明對于某些大規(guī)模的計算問題(如旅行商問題),其計算量是極其巨大的。當(dāng)年,王安等發(fā)展了字處理系統(tǒng)。1972年軟件開發(fā)大事記在計算機輔助教學(xué)方面,加州大學(xué)的JohnA.Starkweather發(fā)明了PILOT語言。它是ProgrammedInquire,LearningOrTeaching的縮寫,意為“編程查詢及教學(xué)”。它的命令不多,使用簡單,都是針對CAI的需要而設(shè)計,適合開發(fā)教學(xué)課件(courseware)使用。在Zerox的研究人員開展了圖形用戶界面的工作。1973年在計算機輔助教學(xué)方面,加州大學(xué)的JohnA.Starkweather發(fā)明了PILOT語言。它是ProgrammedInquire,LearningOrTeaching的縮寫,意為“編程查詢及教學(xué)”。它的命令不多,使用簡單,都是針對CAI的需要而設(shè)計,適合開發(fā)教學(xué)課件(courseware)使用。在Zerox的研究人員開展了圖形用戶界面的工作。1974年軟件開發(fā)大事記M.A.Jackson提出JSP方法,即JacksonStructuredProgramming,它是適合中小型數(shù)據(jù)處理系統(tǒng)進行模塊結(jié)構(gòu)設(shè)計的一種方法。CrayKildall創(chuàng)建了DigitalResearch公司,專門經(jīng)銷CP/M系統(tǒng)軟件,在以后的8年里,CP/M占領(lǐng)了90%的8位機操作系統(tǒng)時常。為它開發(fā)的應(yīng)用軟件達2000種之多。UNIX操作系統(tǒng)開始從貝爾實驗室走向社會,它的第六版增加了程序員工作臺PWB,形成早期的編程環(huán)境。CharlesH.Moore發(fā)明了Forth語言。Forth在微機用戶中擁有一小批熱情的支持者,雖大多數(shù)人對它一無所知。它的準(zhǔn)則是把計算機的機時和存儲器視為寶貴的資源,必須最大限度地控制和利用這些資源。因此,F(xiàn)orth適合實時控制及工業(yè)機器人的編程這一年還出現(xiàn)了SPSS語言,它是StatisticalProgramsfortheSocialSciences的縮寫,意為用于社會科學(xué)的統(tǒng)計程序。勃洛克(FroderickBrooks)的著作“人月的秘密”(themythicalman-month)中說明了在拖延了的項目中增加人員只會使項目更為延期。美國國防部為降低軟件費用、提高嵌入式防務(wù)系統(tǒng)的可靠性,開展了規(guī)模宏大的統(tǒng)一高級語言的行動(1975年至1983年)。首先由國防部研究工程委員會建立了高級語言工作組,多次組織對語言需求的討論。1975年軟件開發(fā)大事記B.W.Boehm又對軟件工程給出定義:“在軟件(包括程序和文檔)設(shè)計、實現(xiàn)、測試、運行、維護的各個過程中,建立在科學(xué)基礎(chǔ)上的一套實用方法”。C.A.Hoare則認(rèn)為軟件工程是“一種導(dǎo)致電子數(shù)字計算機具有強大功能的藝術(shù),這種功能表現(xiàn)為人可以方便地使用計算機”。在軟件設(shè)計方法學(xué)方面,IBM公司的J.F.Stay提出HIPO設(shè)計方法。它建立在層次圖(HC)和輸入-處理-輸出圖(IPO)的基礎(chǔ)上,適用于高層設(shè)計。此外,HOS公司的M.Hamilton和S.Zeldin又提出HOS設(shè)計方法。1976年軟件開發(fā)大事記S.Jefferyh和T.A.Linden補充了軟件工程的定義,指出“軟件工程不只是一套工具和技術(shù)的集合,它是一種工程……,軟件工程同一般理解的其他類型的工程相比要豐富些,軟件工程師能從其他工程學(xué)科獲得借鑒;反過來,軟件工程當(dāng)前開發(fā)的方針對其他領(lǐng)域的工程也是十分有用??傊鳛橐婚T工程學(xué)科,軟件工程已經(jīng)到了羽翼豐滿的時候?!盨oftTech公司的D.T.Ross提出SADT結(jié)構(gòu)化分析設(shè)計技術(shù)。11月,美國國防部高級語言工作組完成制定新語言可行性的經(jīng)濟分析。通過大量評審,認(rèn)為現(xiàn)存語言都不滿足對新語言的需求。同時,從投標(biāo)語言中,選出四種方案:Softech的藍色語言、SRI黃色語言、Intermetrics的紅色語言、HoneywellBull的綠色語言。加州大學(xué)伯克利分校推出UNIX的1BSD版本。美國國家計算機和信息處理標(biāo)準(zhǔn)委員會(ANSC-X3)制定信息交換代碼ASCII的標(biāo)準(zhǔn)X3.4-1977。與之相關(guān)的標(biāo)準(zhǔn)已有X3.32-1973(ASCII控制字符的圖形)和X3.41-974(ASCII代碼擴充技術(shù))以及后來制定的X3.64-1979(使用ASCII時的附加控制)。1977年軟件開發(fā)大事記美國國防部高級語言工作組把來自各國的近400名自愿者分為80個評審組,對四種候選方案進行評審。確定由紅色語言和綠色語言繼續(xù)競爭。1978年加州大學(xué)伯克利分校又以2BSD和UNIXV7為基礎(chǔ),在32位VAX上研制成具有虛擬存儲訥訥公里的3BSDUNIX系統(tǒng)。Pascal語言的創(chuàng)始人Wirth在Pascal的基礎(chǔ)上,又開發(fā)了Modula-2語言。它克服了Pascal的許多缺點,并具有了現(xiàn)代的模塊特性。美國國防部新語言的評審中,綠色語言最后獲勝。它的主要設(shè)計者是法國人JeanIchbiah。5月,新語言正式命名為Ada,以紀(jì)念對編程做過重大貢獻的愛達?拉夫拉斯伯爵夫人。貝爾實驗室的L.R.Rabiner等利用聚類技術(shù)開發(fā)不定人的英語識別系統(tǒng)。1979年8月,Microsoft公司宣布為16位的微機提供UNIX的新品種XENIX。經(jīng)過長期的努力,在1980年,由美國國防部確定把ADA語言用于過程控制與嵌入式應(yīng)用。1980年軟件開發(fā)大事記B.W.Boehm出版了《軟件工程經(jīng)濟學(xué)》,這一名著思想新穎、敘述生動,令人愛不釋手。他提出構(gòu)造費用模型(COCOMO)作為軟件的估計模型。引起了軟件度量的發(fā)展。同年,R.Abbott總結(jié)了面向?qū)ο蟮脑O(shè)計方法學(xué)。IBM公司推出個人計算機IBMPC,Microsoft公司的MS-DOS也同時問世。IBM公司選擇PC-DOS為其新的個人計算機的操作系統(tǒng)。從而為BillGates的微軟公司的發(fā)展開辟了道路。IBM在同年又推出IBMPC/XT。DOS升為2.0版。美國AshtonTate推出微機用的關(guān)系數(shù)據(jù)庫dBASEⅡ。DBASEⅡ成為第一個PC數(shù)據(jù)庫系統(tǒng),得到市場廣泛歡迎。AT&T公布UNIXSystemⅡ,成為第一個外部發(fā)行的版本。中國頒布了《信息交換用漢字編碼字符集?基本集》,國家標(biāo)準(zhǔn)代號GB2312-80。1981年軟件開發(fā)大事記SCO(Sants

CrusOperation)公司與Microsoft合作開發(fā)XENIX。JohnWarnock開發(fā)了Postscript的頁面描述語言。以后,形成著名的Adobe系統(tǒng)。Autodesk公司推出了AutoCAD第一版。1982年王永民發(fā)明了“五筆字型”漢字輸入法。AT&T公布了UNIXSystemV。伯克利分校公布了4.2BSD。ANSI批準(zhǔn)了Ada標(biāo)準(zhǔn)。Apple公司推出用鼠標(biāo)操作的圖標(biāo)及下拉式菜單的工作方式。貝爾實驗室發(fā)展了C++語言。它原為1980年Bjarne

Stroustrup發(fā)明的“帶類的C”,即增加了面向?qū)ο蟪绦蛟O(shè)計所需的抽象數(shù)據(jù)類型——類。直到1983年,根據(jù)RickMasetti的建議,定名為C++。1983年軟件開發(fā)大事記FoxSoftware公司推出FoxBASE。Novell公司推出NetWareV1.0。10月15日,國際標(biāo)準(zhǔn)化組織ISO制定了開發(fā)系統(tǒng)互連參考模型OSI/RM,即ISO7498-1。它是指導(dǎo)信息處理系統(tǒng)互連、互通和協(xié)作的國際標(biāo)準(zhǔn),是關(guān)于計算機通信系統(tǒng)結(jié)構(gòu)的最重要的框架文件。它從邏輯上把網(wǎng)絡(luò)分成七層。Apple公司的Micintoch使計算機圖形學(xué)取得極大成功。1984年微軟公司推出Windows窗口操作系統(tǒng),使PC更易操作,形成DOS操作系統(tǒng)的一個革命性的進步。AshtonTate公司dBASEⅡPlusKemeny和Kurtz對于BASIC流行速度之快、不同方言之多、標(biāo)準(zhǔn)化進展之慢感到驚訝。他們又研制了TrueBASIC,即保持初學(xué)者易用的優(yōu)點,又實現(xiàn)了程序的結(jié)構(gòu)化。ISO國際標(biāo)準(zhǔn)化組織提出軟件質(zhì)量度量模型建議。該模型分高、中、低三層,各層增均有多項評價準(zhǔn)則。1985年軟件開發(fā)大事記Oracle公司推出DistributedORACLE分布式關(guān)系數(shù)據(jù)庫。配有SQL,*PlusSQL,*FormSQL,*NetSQL,*CatePRO*C,Pro*FORTRAN等工具。出版了世界第一部電子圖書,《美國科學(xué)院百科全書》,它的3萬個圖,900萬字的內(nèi)容就存儲在一張5.25英寸的CD-ROM光盤上。在軟件工程方面,WallStreetJournal一書把計算機輔助軟件工程CASE的概念大大地推廣開來。1986年卡內(nèi)基?梅隆大學(xué)的軟件工程研究所的WattsHumphrey等人發(fā)表了“軟件過程成熟度框架”后來成為用于預(yù)測開發(fā)單位是否有能力生產(chǎn)可靠軟件的“能力成熟度模型CMM”IBM和Microsoft公司合作推出OS/2操作系統(tǒng),為PS/2個人系統(tǒng)配套。OS/2被稱為32位微機的新一代操作系統(tǒng)。1987年軟件開發(fā)大事記BarryBoehm提出了軟件系統(tǒng)開發(fā)的“螺旋模型”,后來,該模型被認(rèn)為能有效提高系統(tǒng)開發(fā)效率。ACM的一個工作組提出一份報告“ComputingasaDiscipline”(計算仍是一門科學(xué))。它把計算機學(xué)科歸納為九個主題:算法與數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)、人工智能與機器人學(xué)、數(shù)據(jù)庫與情報檢索、人機通信、數(shù)值與符號計算、操作系統(tǒng)、編程語言、軟件工程與方法學(xué)。它還包括了三種不同的處理方法:理論、抽象、設(shè)計,構(gòu)成計算機學(xué)科的3×9矩陣。UNIX的標(biāo)準(zhǔn)化過程早已啟動。通過了POSIXDraft13作為IEEE標(biāo)準(zhǔn)1003.1。POSIX的含義是“基于UNIX的可移植操作系統(tǒng)的接口與環(huán)境”。1988年美國卡內(nèi)基?梅隆大學(xué)研制了SPHINX系統(tǒng),使英語語音識別系統(tǒng)的識別率有了明顯提高。1989年軟件開發(fā)大事記TimBernersLee提出了關(guān)于WorldWideWeb原則,并同時給出了URLs、HTML和HTTP的概念。國際標(biāo)準(zhǔn)化組織接受了UNIX標(biāo)準(zhǔn)POSLX為國際標(biāo)準(zhǔn)ISO9945/1。微軟的Windows取得極大成功。1990年IBM與Microsoft分道揚鑣。DOS5.0版問世。本來,人們曾認(rèn)為DOS的歷史會到4.0版為止。因為已有了Windows,有了OS/2。但是Microsoft認(rèn)為Windows3.0的成功說明DOS的確不賴,沒有必要把它打入冷宮,如果需要,DOS6.0、DOS7.0也將會出現(xiàn)。Borland公司兼并了AshtonTate公司。Borland承諾將繼續(xù)支持和發(fā)展dBASE系列,該公司盡力樹立領(lǐng)導(dǎo)面向?qū)ο蠹夹g(shù)市場的形象。Novell公司兼并了DigitalResearch公司,于是RD的DOS和Novell產(chǎn)品配套出售。DR-DOS正是網(wǎng)絡(luò)功能見長的操作系統(tǒng)。6月13日,中國頒布了《計算機軟件保護條例》,并于同年10月1日開始實施。1991年軟件開發(fā)大事記1月,Intel公司和Microsoft公司聯(lián)合發(fā)表有關(guān)保持環(huán)境的APM標(biāo)準(zhǔn)。1992年伊利諾斯州大學(xué)的超級計算機應(yīng)用研究中心的學(xué)生和研究人員開發(fā)了第一個基于圖形界面的Internet瀏覽器,名為NCSAMasaic。美國白宮發(fā)表了一份長達46頁的報告。闡述了克林頓政府的“NationalInformationIntfrtructure”(國家信息基礎(chǔ)建設(shè))發(fā)展計劃。人們把NII常稱為“InformationSuperHighway”(信息高速公路)。由于克林頓總統(tǒng)親自掛帥,戈爾副總統(tǒng)具體組織,NII便如火如荼地展開。1993年Netscape公司首次推出它的瀏覽器。由此,在很短的時間內(nèi)就培養(yǎng)了一群Internet的愛好者(Web沖浪者)1994年SUN公司推出Java及其集成開發(fā)環(huán)境。Java語言是基于Internet的編程語言,使得應(yīng)用程序同時在不同平臺運行成為可能。Microsoft公司推出WindowS95。1995年軟件發(fā)展存在的問題硬件的發(fā)展一直超過軟件,難以發(fā)揮硬件的潛能建造程序的能力遠遠不能滿足人們對新程序的需求,不能滿足商業(yè)和市場的要求。軟件的可靠性越來越重要。軟件失敗,會造成巨大的經(jīng)濟損失,有可能帶來災(zāi)難。拙劣的設(shè)計和資源的缺乏難以支持和增強已有軟件。產(chǎn)業(yè)的觀點為什么需要長時間才能結(jié)束開發(fā)?為什么成本如此之高?為什么不能在軟件交付給客戶之前就發(fā)現(xiàn)所有的錯誤?為什么軟件開發(fā)過程中我們難以度量其進展?這種關(guān)注最終導(dǎo)致軟件工程實踐的出現(xiàn)老化的軟件工廠軟件的競爭軟件技術(shù)面臨的問題規(guī)模復(fù)雜性生產(chǎn)率

Windows95有1000萬行代碼Windows2000有5000萬行代碼Exchange2000和Windows2000開發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項目經(jīng)理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人軟件危機的主要特征軟件開發(fā)周期大大超過規(guī)定日期;

軟件開發(fā)成本嚴(yán)重超標(biāo);

軟件質(zhì)量難于保證。改正一個問題需付出的代價需求分析結(jié)構(gòu)設(shè)計詳細設(shè)計編碼集成測試系統(tǒng)測試現(xiàn)場改正一個問題的估計費用改正一個問題估計的工作量20200200010005.02.50.050.5(美元)(人天)yet,SuccessHasntComeEasily31%53%16%SuccessfullyChallengedCanceled

成功的標(biāo)準(zhǔn):用戶在用用戶可很容易做完要做的事失敗的根本原因:開發(fā)人員寫出的東西達不到用戶要求(人的問題.技術(shù)問題)處在十字路口的中國軟件產(chǎn)業(yè)主權(quán)大國必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)體系。軟件本國提供率:中國1/3左右,美國97%“印度模式”還是“中國模式”軟件人才結(jié)構(gòu)不合理,缺乏中高級軟件人才,軟件人員缺乏軟件工程化的概念。軟件工程的定義

FritzBauer在NATO會議上給出的定義:“軟件工程是為了經(jīng)濟地獲得可靠的和能在實際機器上高效運行的軟件而確立和使用的好的工程原則(方法)?!避浖こ痰亩x

IEEE【IEE83】給出的軟件工程定義:“軟件工程是開發(fā)、運行、維護和修復(fù)軟件的系統(tǒng)方法?!?/p>

IEEE【IEE93】給出了一個更加綜合的定義:“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化應(yīng)用于軟件中。”

軟件工程的定義

軟件工程是應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的。

軟件工程的定義

軟件工程是一門交叉學(xué)科軟件工程的主要研究內(nèi)容:軟件開發(fā)技術(shù):軟件開發(fā)方法學(xué)軟件開發(fā)過程軟件工具和軟件工程環(huán)境軟件工程管理:軟件管理學(xué)軟件經(jīng)濟學(xué)軟件心理學(xué)軟件工程所包含的內(nèi)容不是一成不變的,隨著人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。應(yīng)用發(fā)展的眼光看待它。軟件工程—一種層次化技術(shù)工具方法過程質(zhì)量焦點Softwareengineeringlayers軟件工程三個要素:過程、方法、工具軟件工程包括三個要素:方法、工具和過程

軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計、算法的設(shè)計、編碼、測試以及維護等。軟件工程方法常采用某種特殊的語言或圖形的表達方法及一套質(zhì)量保證標(biāo)準(zhǔn)。軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。如CASE、ISEE等。軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個階段完成的里程碑。軟件工程就是包含上述方法、工具及過程在內(nèi)的一些步驟。軟件工程過程特性易理解性可見性可支持性可接受性可靠性健壯性可維護性速度軟件工程的一般視圖

工程是對技術(shù)(或社會)實體的分析、設(shè)計、建造、驗證和管理。因此工程須回答下列問題:要解決的問題是什么?要用于解決該問題的實體具有什么特點?如何實現(xiàn)該實體(解決方案)?如何建造該實體?采用

溫馨提示

  • 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

提交評論