軟件工程導(dǎo)論_第1頁
軟件工程導(dǎo)論_第2頁
軟件工程導(dǎo)論_第3頁
軟件工程導(dǎo)論_第4頁
軟件工程導(dǎo)論_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

第1章軟件工程引論1.1軟件產(chǎn)品的概念與特征1.2軟件危機(jī)1.3軟件工程的產(chǎn)生及其發(fā)展1.1軟件產(chǎn)品的概念與特征1.1.1軟件產(chǎn)品的概念與分類就本質(zhì)而言,軟件就是一個(gè)信息轉(zhuǎn)換器,它的功能不外是產(chǎn)生、管理、獲取、修改、顯示或轉(zhuǎn)換信息。它擔(dān)任著雙重角色,首先,它是一種產(chǎn)品,表達(dá)了由計(jì)算機(jī)硬件體現(xiàn)的計(jì)算潛能;其次,它又是開發(fā)和運(yùn)行產(chǎn)品的載體,是計(jì)算機(jī)控制(操作系統(tǒng))、信息通信(網(wǎng)絡(luò))的基礎(chǔ),也是創(chuàng)建和控制其他軟件(軟件工具和開發(fā)環(huán)境)的基礎(chǔ)。對(duì)于軟件的一種公認(rèn)的解釋是:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。其中,程序是為實(shí)現(xiàn)設(shè)計(jì)的功能和性能要求而編寫的指令序列;數(shù)據(jù)是使指令能夠正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。根據(jù)用途劃分,軟件可以大致劃分成如下類別:(1)系統(tǒng)軟件:就一般情況來說,系統(tǒng)軟件是為其他軟件服務(wù)的軟件。系統(tǒng)軟件與計(jì)算機(jī)硬件交互頻繁,處理大量的確定或不確定的復(fù)雜數(shù)據(jù),往往需要具有多用戶支持、資源精細(xì)調(diào)度、并發(fā)操作管理、多種外部設(shè)備接口支持等項(xiàng)功能。(2)實(shí)時(shí)軟件:管理、分析、控制現(xiàn)實(shí)世界中所發(fā)生的事件的軟件稱為實(shí)時(shí)軟件。它一般有數(shù)據(jù)采集、數(shù)據(jù)分析、輸出控制等三方面的功能。實(shí)時(shí)軟件需要保持一個(gè)現(xiàn)實(shí)任務(wù)可以接受的響應(yīng)時(shí)間,即必須保證能夠在嚴(yán)格限定的時(shí)間范圍內(nèi)對(duì)輸入做出響應(yīng)。(3)商業(yè)管理軟件:商業(yè)信息處理是最大的軟件應(yīng)用領(lǐng)域,包括常規(guī)的數(shù)據(jù)處理軟件和一些交互式的計(jì)算處理(如POS軟件)軟件。它的基本功能是將已有的數(shù)據(jù)重新構(gòu)造,變換成一種可以輔助商業(yè)操作和管理決策的形式。在這個(gè)過程中,幾乎都要涉及到對(duì)于大型數(shù)據(jù)庫的訪問。各類管理信息系統(tǒng)(MIS)、企業(yè)資源計(jì)劃(ERP)、客戶關(guān)系管理(CRM)等都是典型的商業(yè)管理軟件。(4)工程與科學(xué)計(jì)算軟件:此類軟件的特征是要實(shí)現(xiàn)特定的“數(shù)值分析”算法。例如離散傅立葉變換、有限元分析、演化計(jì)算等等。CAD/CAM軟件一般也可以歸屬到這一類型中來。(5)嵌入式軟件:駐留在專用智能產(chǎn)品的內(nèi)存中,用于控制這些產(chǎn)品進(jìn)行正常工作,完成很有限、很專業(yè)的功能的軟件。例如各類智能檢測(cè)儀表、數(shù)碼相機(jī)、移動(dòng)電話、微波爐等智能產(chǎn)品都必須在嵌入式軟件的支持下才能正常工作。(6)人工智能軟件:利用非數(shù)值算法去解決復(fù)雜問題的軟件。各類專家系統(tǒng)、模式識(shí)別軟件、人工神經(jīng)網(wǎng)絡(luò)軟件都屬于人工智能軟件。(7)個(gè)人計(jì)算機(jī)軟件:文字處理系統(tǒng)、電子表格、游戲娛樂軟件等等。此外,還可以根據(jù)軟件的規(guī)模(代碼行及開發(fā)工作量,如表1.1)、軟件的工作方式、使用頻度、失效后造成的影響等對(duì)軟件產(chǎn)品進(jìn)行分類。表1.1根據(jù)規(guī)模進(jìn)行軟件分類軟件規(guī)模類別參加人員數(shù)開發(fā)期限產(chǎn)品規(guī)模(源代碼行數(shù))微型11~4周0.5?k小型11~6月1~2?k中型2~51~2年5~50?k大型5~202~3年50~100?k甚大型100~10004~5年1?M極大型2000~50005~10年1~10?M1.1.2軟件產(chǎn)品的特征在制造硬件時(shí),人的創(chuàng)造性的勞動(dòng)過程(分析、設(shè)計(jì)、建造、測(cè)試)能夠完全轉(zhuǎn)換成物理的形式,但軟件是邏輯的而不是物理的產(chǎn)品,因此軟件具有和硬件完全不同的特征:(1)軟件是一種邏輯實(shí)體,具有抽象性。我們可以把軟件保存在媒體介質(zhì)上,但卻無法直接看到軟件的形態(tài),因而必須通過運(yùn)行、觀察、分析、思考、判斷才能夠了解軟件的功能、性能及其他特性。換句話說,軟件產(chǎn)品具有明顯的非可視特征。(2)軟件的生產(chǎn)與硬件不同。軟件是由開發(fā)或工程化而形成的,不是由傳統(tǒng)意義上的制造過程生產(chǎn)的。雖然軟件開發(fā)和硬件制造之間有一些相似之處,可是兩者在本質(zhì)上是不同的。這兩者都能夠通過良好的設(shè)計(jì)獲得高質(zhì)量的產(chǎn)品,但即使有了良好的設(shè)計(jì)和優(yōu)秀的樣品,硬件在批量制造過程中仍然可能引入質(zhì)量問題,這種情況對(duì)于軟件而言幾乎不存在。軟件在開發(fā)完畢,形成為產(chǎn)品之后,其批量制造過程只是簡單的拷貝/復(fù)制;軟件的開發(fā)和硬件的制造都依賴于人,但參與者和他們完成的工作之間的關(guān)系不同;兩者的終極目的都是建造產(chǎn)品,但方法不同;軟件的成本集中在開發(fā)過程上,而硬件生產(chǎn)的成本更多地表現(xiàn)在原材料消耗上。因此,軟件項(xiàng)目開發(fā)過程不能完全像硬件制造過程那樣來管理。(3)軟軟件件產(chǎn)產(chǎn)品品不不會(huì)會(huì)““磨磨損損””。。和和硬硬件件產(chǎn)產(chǎn)品品類類似似,,軟軟件件產(chǎn)產(chǎn)品品也也會(huì)會(huì)出出現(xiàn)現(xiàn)故故障障。。所所不不同同的的是是,,硬硬件件產(chǎn)產(chǎn)品品的的故故障障多多來來自自外外在在條條件件導(dǎo)導(dǎo)致致的的““磨磨損損””或或““老老化化””,,而而軟軟件件產(chǎn)產(chǎn)品品如如果果發(fā)發(fā)生生故故障障,,無無一一例例外外的的是是在在設(shè)設(shè)計(jì)計(jì)開開發(fā)發(fā)過過程程中中留留有有隱隱患患。。因因此此,,硬硬件件的的故故障障可可以以通通過過簡簡單單的的更更換換部部件件解解決決,,而而軟軟件件的的故故障障必必須須通通過過全全面面的的軟軟件件維維護(hù)護(hù)活活動(dòng)動(dòng)才才有有望望克克服服。。同同時(shí)時(shí),,不不完完善善的的維維護(hù)護(hù)活活動(dòng)動(dòng)又又可可能能在在軟軟件件中中注注入入新新的的故故障障,,導(dǎo)導(dǎo)致致軟軟件件質(zhì)質(zhì)量量的的““退退化化””。。也也就就是是說說,,軟軟件件故故障障的的修修復(fù)復(fù)要要比比硬硬件件故故障障的的修修復(fù)復(fù)復(fù)復(fù)雜雜得得多多。。因因此此,,衡衡量量軟軟件件產(chǎn)產(chǎn)品品質(zhì)質(zhì)量量的的一一個(gè)個(gè)重重要要指指標(biāo)標(biāo)就就是是它它的的““可可維維護(hù)護(hù)性性””。。圖圖1.1是是軟軟、、硬硬件件產(chǎn)產(chǎn)品品的的失失效效率率曲曲線線。。圖1.1軟軟件/硬硬件產(chǎn)品品失效率率曲線軟軟件發(fā)發(fā)展的階階段劃分分自從20世紀(jì)40年代代第一臺(tái)臺(tái)計(jì)算機(jī)機(jī)問世以以來,就就有了““程序””的概念念,可以以認(rèn)為它它是軟件件的前身身。經(jīng)過過了幾十十年的發(fā)發(fā)展,人人們對(duì)軟軟件有了了更為深深刻的認(rèn)認(rèn)識(shí),在在這幾十十年中,,軟件開開發(fā)經(jīng)歷歷了三個(gè)個(gè)發(fā)展階階段:20世紀(jì)紀(jì)50~~60年年代屬于于程序設(shè)設(shè)計(jì)階段段;20世紀(jì)60~70年代代為程序序系統(tǒng)階階段;20世紀(jì)紀(jì)70年年代之后后進(jìn)入軟軟件工程程階段。。各階段段的特點(diǎn)點(diǎn)與區(qū)別別見表1.2。。表1.2計(jì)計(jì)算機(jī)軟軟件發(fā)展展的三個(gè)個(gè)階段及及其特點(diǎn)點(diǎn)階段特點(diǎn)程序設(shè)計(jì)程序系統(tǒng)軟件工程軟件所指程序程序及說明書程序、文檔、數(shù)據(jù)主要程序設(shè)計(jì)語言匯編及機(jī)器語言高級(jí)語言軟件語言*軟件工作范圍程序編寫設(shè)計(jì)和測(cè)試整個(gè)軟件生命周期需求者程序設(shè)計(jì)者本人少數(shù)用戶市場(chǎng)用戶開發(fā)軟件的組織個(gè)人開發(fā)小組開發(fā)小組及大、中型開發(fā)機(jī)構(gòu)軟件規(guī)模小型中、小型大、中、小型階段特點(diǎn)程序設(shè)計(jì)程序系統(tǒng)軟件工程決定質(zhì)量的因素個(gè)人技術(shù)小組技術(shù)水平技術(shù)與管理水平開發(fā)技術(shù)和手段子程序、程序庫結(jié)構(gòu)化程序設(shè)計(jì)數(shù)據(jù)庫、開發(fā)工具、集成開發(fā)環(huán)境、工程化開發(fā)方法、標(biāo)準(zhǔn)和規(guī)范、網(wǎng)絡(luò)及分布式開發(fā)、面向?qū)ο蠹夹g(shù)、計(jì)算機(jī)輔助軟件工程維護(hù)責(zé)任者程序設(shè)計(jì)者開發(fā)小組專職維護(hù)人員硬件的特征高價(jià)、存儲(chǔ)量小、可靠性差降價(jià),速度、容量和可靠性明顯提高向超高速、大容量、網(wǎng)絡(luò)化、微型化方向發(fā)展軟件的特征完全不受重視軟件的技術(shù)發(fā)展不能滿足需求,出現(xiàn)軟件危機(jī)開發(fā)技術(shù)有進(jìn)步,但仍未完全擺脫軟件危機(jī)表1.2計(jì)計(jì)算機(jī)軟軟件發(fā)展展的三個(gè)個(gè)階段及及其特點(diǎn)點(diǎn)1.2軟軟件件危危機(jī)軟軟件危危機(jī)及其其表現(xiàn)現(xiàn)代計(jì)算算機(jī)應(yīng)用用系統(tǒng)中中,軟件件的地位位日益重重要和突突出。如如何滿足足日益增增長的軟軟件需求求,如何何維護(hù)應(yīng)應(yīng)用中的的大量已已有軟件件,已經(jīng)經(jīng)成為了了計(jì)算機(jī)機(jī)應(yīng)用系系統(tǒng)進(jìn)一一步發(fā)展展的瓶頸頸。1968年年,北大大西洋公公約組織織的計(jì)算算機(jī)科學(xué)學(xué)家們?cè)谠诼?lián)邦德德國召開開的國際際會(huì)議上上討論了了軟件危危機(jī)問題題,同時(shí)時(shí)也是在在這個(gè)會(huì)會(huì)議上提提出了““軟件工工程”這這個(gè)名詞詞,導(dǎo)致致了一門門新的工工程學(xué)科科的正式式誕生。。簡單地地說,,所謂謂軟件件危機(jī)機(jī),就就是指指在軟軟件開開發(fā)和和軟件件維護(hù)護(hù)過程程中所所存在在的一一系列列嚴(yán)重重問題題。具具體地地說,,軟件件危機(jī)機(jī)具有有如下下一些些表現(xiàn)現(xiàn):(1)軟軟件開開發(fā)沒沒有真真正的的計(jì)劃劃性,,對(duì)軟軟件開開發(fā)進(jìn)進(jìn)度和和軟件件開發(fā)發(fā)成本本的估估計(jì)常常常很很不準(zhǔn)準(zhǔn)確,,計(jì)劃劃的制制定帶帶有很很大的的盲目目因素素,因因此工工期超超出、、成本本失控控的現(xiàn)現(xiàn)象經(jīng)經(jīng)常困困擾著著軟件件開發(fā)發(fā)者。。(2)對(duì)對(duì)于軟軟件需需求信信息的的獲取取常常常不充充分,,軟件件產(chǎn)品品往往往不能能真正正地滿滿足用用戶的的實(shí)際際需求求。(3)缺缺乏良良好的的軟件件質(zhì)量量評(píng)測(cè)測(cè)手段段,從從而導(dǎo)導(dǎo)致軟軟件產(chǎn)產(chǎn)品的的質(zhì)量量常常常得不不到保保證。。(4)對(duì)對(duì)于軟軟件的的可理理解性性、可可維護(hù)護(hù)性認(rèn)認(rèn)識(shí)不不夠;;軟件件的可可復(fù)用用性、、可維維護(hù)性性不如如人意意。有些軟軟件因因?yàn)檫^過于““個(gè)性性化””,甚甚至是是難以以理解解的,,更談?wù)劜簧仙线M(jìn)行行維護(hù)護(hù)。缺缺乏可可復(fù)用用性引引起的的大量量重復(fù)復(fù)性勞勞動(dòng)極極大地地降低低了軟軟件的的開發(fā)發(fā)效率率。(5)軟軟件開開發(fā)過過程沒沒有實(shí)實(shí)現(xiàn)““規(guī)范范化””,缺缺乏必必要的的文檔檔資料料或者者文檔檔資料料不合合格、、不準(zhǔn)準(zhǔn)確,,難以以進(jìn)行行專業(yè)業(yè)維護(hù)護(hù)。(6)軟軟件開開發(fā)的的人力力成本本持續(xù)續(xù)上升升,如如美國國在1995年年的軟軟件開開發(fā)成成本已已經(jīng)占占到了了計(jì)算算機(jī)系系統(tǒng)成成本的的90%(如圖圖1.2所所示)。(7)缺缺乏自自動(dòng)化化的軟軟件開開發(fā)技技術(shù),,軟件件開發(fā)發(fā)的生生產(chǎn)率率依然然低下下,遠(yuǎn)遠(yuǎn)遠(yuǎn)滿滿足不不了急急劇增增長的的軟件件需求求(如如圖1.3所示示)。。圖1.2計(jì)計(jì)算機(jī)機(jī)系統(tǒng)統(tǒng)硬件件、軟軟件成成本比比例變變化圖1.3軟件技術(shù)的的發(fā)展落后后于需求軟件危機(jī)曾曾經(jīng)是歷史史上的陰影影,目前軟軟件工程界界也仍然在在一定程度度上受到它它的影響。。軟件工程程概念的提提出,正是是為了克服服軟件危機(jī)機(jī)。自1968年以以來,隨著著軟件工程程學(xué)的不斷斷發(fā)展,軟軟件危機(jī)得得到了一定定程度的遏遏制,但還還遠(yuǎn)遠(yuǎn)沒有有被徹底解解決?!禩heStandishGroup.Chaos.1995.》》一文報(bào)告告了20世世紀(jì)90年年代中期美美國商用軟軟件產(chǎn)業(yè)的的情況:1995年年美國公司司取消了810億美美元的軟件件項(xiàng)目;在在所考察的的軟件項(xiàng)目目中,在完完成前就取取消了其中中的31%;53%的軟件項(xiàng)項(xiàng)目進(jìn)度拖拖延,通常常拖延的時(shí)時(shí)間超過預(yù)預(yù)定工期50%以上上;只有9%的大型型軟件項(xiàng)目目能夠及時(shí)時(shí)交付且費(fèi)費(fèi)用不超支支(對(duì)中型型和小型軟軟件公司來來說這一數(shù)數(shù)據(jù)為16%)。1.2.2產(chǎn)生生軟件危機(jī)機(jī)的原因軟件危機(jī)的的存在是不不爭的事實(shí)實(shí)。產(chǎn)生軟軟件危機(jī)的的原因可以以歸納為主主、客觀兩兩個(gè)方面。。從客觀上來來看,軟件件不同于硬硬件,它的的生產(chǎn)過程程和產(chǎn)品都都具有明顯顯的“不可可視”特征征,這就導(dǎo)導(dǎo)致在完成成編碼并且且上機(jī)運(yùn)行行之前,對(duì)對(duì)于軟件開開發(fā)過程的的進(jìn)展情況況較難衡量量,軟件產(chǎn)產(chǎn)品的質(zhì)量量也較難進(jìn)進(jìn)行先期評(píng)評(píng)價(jià),因此此,對(duì)于開開發(fā)軟件的的過程進(jìn)行行管理和控控制比較困困難。在軟軟件工程的的早期,制制定詳細(xì)的的開發(fā)計(jì)劃劃并且進(jìn)行行全程跟蹤蹤調(diào)控,對(duì)對(duì)于所有的的階段產(chǎn)品品和階段工工作進(jìn)展進(jìn)進(jìn)行技術(shù)審審查和管理理復(fù)審,可可望在一定定程度上克克服“開發(fā)發(fā)過程不可可視”造成成的消極影影響。此外,軟件件運(yùn)行過程程中如果發(fā)發(fā)現(xiàn)了錯(cuò)誤誤,那么必必然是遇到到了在開發(fā)發(fā)時(shí)期(分分析、設(shè)計(jì)計(jì)、編碼過過程)引入入的,在檢檢測(cè)過程中中沒有能夠夠檢查出來來的故障。。對(duì)于此類類故障的維維護(hù),通常常意味著要要修改早期期的分析結(jié)結(jié)果、設(shè)計(jì)計(jì)結(jié)果并調(diào)調(diào)整編碼。。由于軟件件產(chǎn)品的不不可視特征征,維護(hù)過過程不像硬硬件產(chǎn)品維維護(hù)時(shí)只要要簡單的更更換損壞部部件那樣容容易,這在在客觀上造造成了軟件件難以維護(hù)護(hù)的結(jié)果。。利用足夠夠的文檔資資料使不可可視的產(chǎn)品品可視化,,有助于提提升軟件產(chǎn)產(chǎn)品的可理理解性和可可維護(hù)性。。從主觀上分分析,導(dǎo)致致軟件危機(jī)機(jī)發(fā)生的另另一大原因因,可以歸歸于在計(jì)算算機(jī)系統(tǒng)發(fā)發(fā)展的早期期,軟件開開發(fā)的“個(gè)個(gè)體化”特特點(diǎn),主要要表現(xiàn)為忽忽視軟件需需求分析的的重要性、、忽視軟件件的可理解解性、文檔檔不完備、、輕視軟件件的可維護(hù)護(hù)性、過分分強(qiáng)調(diào)編碼碼技巧等等等方面。只有軟件的的用戶才真真正了解他他們自己的的需求。而而且應(yīng)當(dāng)承承認(rèn),用戶戶一開始并并不見得能能夠清晰、、準(zhǔn)確、無無二意地表表達(dá)自己的的需求。軟軟件開發(fā)人人員需要做做大量的、、深入細(xì)致致的調(diào)研工工作,引導(dǎo)導(dǎo)用戶逐步步準(zhǔn)確、具具體地描述述軟件的需需求,才能能夠得到對(duì)對(duì)問題、目目標(biāo)的正確確認(rèn)識(shí),從從而獲得解解決問題的的恰當(dāng)出發(fā)發(fā)點(diǎn),有望望開發(fā)出真真正能夠滿滿足用戶需需求的軟件件產(chǎn)品。在在對(duì)用戶的的需求沒有有清楚的認(rèn)認(rèn)識(shí)時(shí)就倉倉促進(jìn)行程程序編寫,,最終必然然會(huì)導(dǎo)致開開發(fā)工作的的失敗。一般來說說,軟件件產(chǎn)品從從策劃、、定義、、開發(fā)、、使用與與維護(hù)直直到最后后廢棄,,要經(jīng)過過一個(gè)漫漫長的時(shí)時(shí)期,通通常把這這個(gè)時(shí)期期稱為軟軟件的““生命周周期”。。可以以將生命命周期分分作“軟軟件定義義”、““軟件開開發(fā)”和和“運(yùn)行行與維護(hù)護(hù)”三個(gè)個(gè)階段。。在軟件定定義階段段中,主主要進(jìn)行行軟件目目標(biāo)的策策劃、可可行性研研究和軟軟件的需需求分析析工作,,通過和和用戶多多次交流流,在所所要開發(fā)發(fā)的軟件件必須““作什么么”方面面和用戶戶達(dá)成一一致(當(dāng)當(dāng)然在開開發(fā)過程程中也允允許在嚴(yán)嚴(yán)格的控控制下進(jìn)進(jìn)行需求求變更)。軟件被定定義之后后,進(jìn)入入開發(fā)階階段,主主要對(duì)軟軟件的體體系架構(gòu)構(gòu)、數(shù)據(jù)據(jù)結(jié)構(gòu)和和主要算算法進(jìn)行行設(shè)計(jì)和和編碼實(shí)實(shí)現(xiàn)。對(duì)對(duì)于編碼碼結(jié)果,,還要按按照規(guī)范范進(jìn)行測(cè)測(cè)試后,,才能最最終交付付使用。。如前所所述,在在開發(fā)階階段也可可能對(duì)于于此前不不夠準(zhǔn)確確的軟件件定義結(jié)結(jié)果進(jìn)行行調(diào)整。。統(tǒng)計(jì)數(shù)數(shù)據(jù)表明明,在典典型的軟軟件工程程過程中中,編碼碼工作量量大約只只占軟件件開發(fā)全全部工作作量的15%~~20%。軟件的運(yùn)運(yùn)行與維維護(hù)階段段在軟件件生命周周期中占占據(jù)的比比例最大大。在軟軟件運(yùn)行行過程中中,分析析和設(shè)計(jì)計(jì)階段的的一些遺遺留缺陷陷可能會(huì)會(huì)逐步暴暴露;運(yùn)運(yùn)行環(huán)境境的演變變也會(huì)對(duì)對(duì)運(yùn)行中中的軟件件提出變變更要求求;用戶戶新需求求的提出出則常常常要求擴(kuò)擴(kuò)充現(xiàn)有有軟件的的功能或或者改進(jìn)進(jìn)其性能能,所有有這些要要求與問問題都必必須通過過“軟件件維護(hù)””工作去去解決。。在維護(hù)護(hù)過程中中,必須須注意保保持所有有軟件工工作產(chǎn)品品之間的的一致性性。針對(duì)對(duì)不同的的需求,,維護(hù)工工作一般般可以分分為糾錯(cuò)錯(cuò)性維護(hù)護(hù)、適應(yīng)應(yīng)性維護(hù)護(hù)、擴(kuò)充充性維護(hù)護(hù)和預(yù)防防性維護(hù)護(hù)等不同同類型。。作為軟件件,應(yīng)當(dāng)當(dāng)有一個(gè)個(gè)完整的的配置。。Boehm(美國著著名的軟軟件工程程專家,,加州州州立大學(xué)學(xué)教授)指出,,“軟件件是程序序以及開開發(fā)、使使用、維維護(hù)程序序所需要要的所有有文檔””。所所以,軟軟件產(chǎn)品品除包括括程序之之外,應(yīng)應(yīng)當(dāng)包括括完整、、準(zhǔn)確、、翔實(shí)的的文檔資資料。主主要的文文檔應(yīng)當(dāng)當(dāng)包括““需求規(guī)規(guī)格說明明書”、、“體系系結(jié)構(gòu)設(shè)設(shè)計(jì)說明明書”、、“詳細(xì)細(xì)設(shè)計(jì)說說明書””、“安安裝手冊(cè)冊(cè)”、““操作手手冊(cè)”、、“系統(tǒng)統(tǒng)管理員員手冊(cè)””等。缺缺乏必要要的配置置文檔,,將嚴(yán)重重影響軟軟件的可可理解性性,從而而給軟件件的維護(hù)護(hù)造成嚴(yán)嚴(yán)重障礙礙。做好包括括項(xiàng)目策策劃、可可行性研研究、需需求分析析三項(xiàng)內(nèi)內(nèi)容的軟軟件定義義工作,,是提高高軟件質(zhì)質(zhì)量、降降低軟件件成本、、保證開開發(fā)進(jìn)度度的關(guān)鍵鍵環(huán)節(jié)。。值得注意意的嚴(yán)重重問題是是,在軟軟件開發(fā)發(fā)的不同同階段進(jìn)進(jìn)行修改改所付出出的代價(jià)價(jià)是極其其不同的的。在早早期引入入變動(dòng),,涉及的的面比較較小,因因而代價(jià)價(jià)也比較較低;在在開發(fā)的的中期,,因?yàn)樵S許多配置置項(xiàng)(被被標(biāo)識(shí)的的工作產(chǎn)產(chǎn)品)已已經(jīng)完成成,所以以引入一一個(gè)變動(dòng)動(dòng),就要要對(duì)它所所涉及的的所有已已經(jīng)完成成的配置置項(xiàng)進(jìn)行行變更,,不僅工工作量大大,而且且邏輯上上也更復(fù)復(fù)雜,因因此付出出的代價(jià)價(jià)劇增;;如果在在軟件““已經(jīng)完完成”時(shí)時(shí)再引入入變更,,更是要要付出高高得多的的代價(jià)。。根據(jù)美美國一些些軟件公公司的統(tǒng)統(tǒng)計(jì)資料料,軟件件開發(fā)后后期引入入一個(gè)變變動(dòng)比在在早期引引入相同同變動(dòng)所所需付出出的代價(jià)價(jià)高2~~3個(gè)數(shù)數(shù)量級(jí)。。圖1.4定定性地描描繪了在在不同時(shí)時(shí)期引入入一個(gè)變變動(dòng)需要要付出的的代價(jià)的的變動(dòng)趨趨勢(shì)。圖圖1.5是美國國貝爾實(shí)實(shí)驗(yàn)室統(tǒng)統(tǒng)計(jì)得出出的定量量結(jié)果。。圖1.4變變更代價(jià)隨隨時(shí)間變化的的趨勢(shì)示意圖1.5改改正一個(gè)問問題需要付出出的代價(jià)解解決軟件件危機(jī)的途徑徑可以借鑒其他他工程領(lǐng)域的的成功經(jīng)驗(yàn),,基于軟件危危機(jī)產(chǎn)生的主主、客觀原因因,從軟件工工程技術(shù)和軟軟件工程管理理兩方面來采采取措施,防防范軟件危機(jī)機(jī)的發(fā)生。軟件開發(fā)不是是某種個(gè)體勞勞動(dòng)的神秘技技巧,而應(yīng)當(dāng)當(dāng)是一種組織織良好、管理理嚴(yán)密,分析析、設(shè)計(jì)、編編碼、測(cè)試、、品保等各類類人員協(xié)同配配合、共同完完成的工程項(xiàng)項(xiàng)目。在軟件件開發(fā)過程中中,必須充分分吸收和借鑒鑒人類長期以以來從事各種種工程項(xiàng)目所所積累的行之之有效的原理理、概念、技技術(shù)和方法,,特別要注意意吸收幾十年年來在計(jì)算機(jī)機(jī)硬件研究和和開發(fā)中積累累的經(jīng)驗(yàn)、教教訓(xùn)。從管理層面上上考慮,應(yīng)當(dāng)當(dāng)注意推廣和和使用在實(shí)踐踐中總結(jié)出來來的開發(fā)軟件件的成功的技技術(shù)和方法,,并且探索更更好的、更有有效的技術(shù)和和方法,注意意積累軟件開開發(fā)過程中的的經(jīng)驗(yàn)數(shù)據(jù)財(cái)財(cái)富,逐步消消除在計(jì)算機(jī)機(jī)系統(tǒng)早期發(fā)發(fā)展階段形成成的一些錯(cuò)誤誤概念和做法法。建立適合合于本組織的的軟件工程規(guī)規(guī)范;制定軟軟件開發(fā)中各各個(gè)工作環(huán)節(jié)節(jié)的流程文件件、工作指南南和階段工作作產(chǎn)品模板;;實(shí)施針對(duì)軟軟件開發(fā)全過過程的計(jì)劃跟跟蹤和品質(zhì)管管理活動(dòng);為為每一項(xiàng)工程程開發(fā)活動(dòng)建建立配置管理理庫;實(shí)施嚴(yán)嚴(yán)格的產(chǎn)品基基線管理并建建立組織的軟軟件過程數(shù)據(jù)據(jù)庫和軟件財(cái)財(cái)富庫;為各各類員工及時(shí)時(shí)提供必要的的培訓(xùn)等等都都是加強(qiáng)軟件件開發(fā)活動(dòng)管管理工作的有有效手段。從技術(shù)角度考考慮,應(yīng)當(dāng)開開發(fā)和使用更更好的軟件開開發(fā)工具,提提高軟件開發(fā)發(fā)效率和開發(fā)發(fā)工作過程的的規(guī)范化程度度。在計(jì)算機(jī)機(jī)軟件開發(fā)的的各個(gè)階段,,都有大量的的繁瑣重復(fù)的的工作要做,,在適當(dāng)?shù)能涇浖ぞ叩妮o輔助下,開發(fā)發(fā)人員可以把把這類工作做做的既快又好好。目前廣為為使用的統(tǒng)一一建模語言(UML)、、各種配置管管理工具、缺缺陷管理工具具和自動(dòng)測(cè)試試工具都在軟軟件工程活動(dòng)動(dòng)中發(fā)揮了很很好的作用。。計(jì)算機(jī)輔助助軟件工程(CASE)更是目前備備受重視的一一個(gè)旨在實(shí)現(xiàn)現(xiàn)軟件開發(fā)自自動(dòng)化的新的的領(lǐng)域。1.3軟軟件工程的產(chǎn)產(chǎn)生及其發(fā)展展1968年,,北大西洋公公約組織的計(jì)計(jì)算機(jī)科學(xué)家家們?cè)谠?lián)邦邦德國召開的的國際會(huì)議上上,針對(duì)軟件件危機(jī)的嚴(yán)峻峻形勢(shì),提出出了把在其他他工程領(lǐng)域中中行之有效的的一些工程學(xué)學(xué)知識(shí)運(yùn)用到到軟件開發(fā)過過程中來,從從管理和技術(shù)術(shù)兩個(gè)方面研研究如何更好好地開發(fā)和維維護(hù)計(jì)算機(jī)軟軟件的設(shè)想。。這也就是軟軟件工程的基基本思路。在在這次會(huì)議上上首次提出并并使用了“軟軟件工程”這這一術(shù)語。簡單地說,軟軟件工程是指指導(dǎo)軟件開發(fā)發(fā)和維護(hù)的工工程學(xué)科。它它的核心思想想是采用工程程的概念、原原理、技術(shù)和和方法來開發(fā)發(fā)和維護(hù)軟件件,把經(jīng)過實(shí)實(shí)踐考驗(yàn)而證證明是正確的的管理技術(shù)和和當(dāng)前能夠得得到的最好的的技術(shù)方法結(jié)結(jié)合起來,從從而大大提高高軟件開發(fā)的的成功率和生生產(chǎn)率。許多多計(jì)算機(jī)專家家都曾經(jīng)描述述過“軟件工工程”的定義義。Boehm曾曾為軟件工程程下過定義::“運(yùn)用現(xiàn)代代科學(xué)技術(shù)知知識(shí)來設(shè)計(jì)并并構(gòu)造計(jì)算機(jī)機(jī)程序及為開開發(fā)、運(yùn)行和和維護(hù)這些程程序所必需的的相關(guān)文件資資料”。1983年,,IEEE(電氣和電子子工程師協(xié)會(huì)會(huì))給出的軟軟件工程定義義為:“軟件件工程是開發(fā)發(fā)、運(yùn)行、維維護(hù)和修復(fù)軟軟件的系統(tǒng)方方法”。FritzBauer(美國著名名的軟件工程程專家)則給給出了另一個(gè)個(gè)關(guān)于軟件工工程學(xué)的定義義:“建立并并使用完善的的工程化原則則,以較經(jīng)濟(jì)濟(jì)的手段獲得得能在實(shí)際機(jī)機(jī)器上有效運(yùn)運(yùn)行的可靠軟軟件的一系列列方法”。后來又有一些些從事軟件工工程方法學(xué)研研究的人陸續(xù)續(xù)提出了許多多更為完善的的軟件工程的的定義,但主主要思想都是是強(qiáng)調(diào)軟件開開發(fā)過程中需需要應(yīng)用工程程化原則的重重要性。IEEE給出出了關(guān)于軟件件工程的一個(gè)個(gè)更加綜合的的定義:(1)將系系統(tǒng)化的、規(guī)規(guī)范的、可度度量的方法應(yīng)應(yīng)用于軟件的的開發(fā)、運(yùn)行行和維護(hù)過程程。即將工程程化方法應(yīng)用用于軟件開發(fā)發(fā)與維護(hù)過程程中。(2)對(duì)上上述方法的研研究。就內(nèi)容來看,,軟件工程應(yīng)應(yīng)當(dāng)包括三個(gè)個(gè)要素:方法法、工具和過過程。軟件工工程方法為軟軟件開發(fā)提供供了“如何做做某項(xiàng)工作””的技術(shù)指南南。它包括了了多方面的任任務(wù)。例如項(xiàng)項(xiàng)目策劃和估估算方法、軟軟件需求分析析方法、體系系結(jié)構(gòu)的設(shè)計(jì)計(jì)方法、詳細(xì)細(xì)設(shè)計(jì)方法、、軟件測(cè)試方方法等等。使使得整個(gè)開發(fā)發(fā)過程的每一一種階段任務(wù)務(wù)都能夠“有有章可循”。。軟件工程工具具為軟件工程程方法提供了了自動(dòng)的或半半自動(dòng)的軟件件支撐環(huán)境。。目前這樣的的工具已經(jīng)有有許多種,而而且已經(jīng)有人人把諸多軟件件工程工具集集成起來,使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論