第1章 軟件工程基礎(chǔ)_第1頁(yè)
第1章 軟件工程基礎(chǔ)_第2頁(yè)
第1章 軟件工程基礎(chǔ)_第3頁(yè)
第1章 軟件工程基礎(chǔ)_第4頁(yè)
第1章 軟件工程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩110頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

浙江省高等教育重點(diǎn)教材

軟件工程基礎(chǔ)周蘇教授QQ:81505050zhousu@/zhousu58《軟件工程》課程說(shuō)明上課時(shí)間:共16周周課時(shí):3(理論課)+2(課外實(shí)驗(yàn))考試課程《軟件工程》教材與教參教材(含實(shí)驗(yàn))《軟件工程導(dǎo)論》張海藩編著,清華大學(xué)出版社,2008《軟件工程學(xué)實(shí)驗(yàn)》周蘇等編著,科學(xué)出版社,2008教學(xué)參考書《軟件工程基礎(chǔ)》周蘇等編著,浙江科學(xué)技術(shù)出版社,2008GB/T8566-2001《信息技術(shù)軟件生存周期過(guò)程》GB/T8567-1988《計(jì)算機(jī)軟件產(chǎn)品開(kāi)發(fā)文件編制指南》《軟件工程實(shí)驗(yàn)》課程說(shuō)明本課程實(shí)驗(yàn)課的主要內(nèi)容是以指定或自選開(kāi)發(fā)項(xiàng)目為基礎(chǔ)全面了解軟件工程學(xué)科的計(jì)算環(huán)境依據(jù)國(guó)家標(biāo)準(zhǔn)的有關(guān)規(guī)定,編制軟件生存周期各階段的軟件文檔,其中《需求分析說(shuō)明書》、《概要設(shè)計(jì)說(shuō)明書》文檔作為期中考核內(nèi)容學(xué)習(xí)和初步掌握豐富的軟件工程工具,包括MSVisio、SybasePowerDesigner、MIWinrunner、MSProject等教材各章后面的“習(xí)題”請(qǐng)自習(xí)每周實(shí)驗(yàn)成績(jī)綜合50%課程設(shè)計(jì)(需求分析與概要設(shè)計(jì))10%期末閉卷考試40%《軟件工程》作業(yè)與考試主要內(nèi)容第一節(jié)計(jì)算機(jī)系統(tǒng)及其軟件的發(fā)展第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程第三節(jié)軟件生存周期模型第四節(jié)軟件工程定義第五節(jié)軟件工具與環(huán)境第六節(jié)軟件工程的發(fā)展>>隨著計(jì)算機(jī)系統(tǒng)的迅速發(fā)展和應(yīng)用范圍的日益廣泛,計(jì)算機(jī)軟件的規(guī)模越來(lái)越大,其復(fù)雜程度也不斷增加。進(jìn)入20世紀(jì)60年代以來(lái),人們開(kāi)始逐漸認(rèn)識(shí)到了確實(shí)存在著“軟件危機(jī)”這樣一個(gè)事實(shí)。例如:1)軟件生產(chǎn)不能滿足日益增長(zhǎng)的需要。2)軟件開(kāi)發(fā)成本和開(kāi)發(fā)進(jìn)度的估計(jì)往往不準(zhǔn)確。實(shí)際成本有時(shí)高出預(yù)計(jì)成本好幾倍,預(yù)計(jì)完工的時(shí)間往往推遲幾個(gè)月,甚至更長(zhǎng)時(shí)間。3)軟件開(kāi)發(fā)人員和用戶之間信息交流不充分,用戶對(duì)完成的軟件滿意度很低。4)軟件價(jià)格昂貴,軟件成本在整個(gè)計(jì)算機(jī)系統(tǒng)中所占的比例急劇上升,軟件已成為許多計(jì)算機(jī)系統(tǒng)中花錢最多的項(xiàng)目。5)軟件質(zhì)量難以保證,質(zhì)量保證技術(shù)還沒(méi)有真正應(yīng)用到軟件開(kāi)發(fā)的全過(guò)程。6)軟件可維護(hù)性差,程序中的錯(cuò)誤很難改正,或者當(dāng)硬件環(huán)境發(fā)生變化時(shí),想要進(jìn)行適應(yīng)性或完善性維護(hù)卻極其困難。導(dǎo)致這一系列問(wèn)題的一個(gè)重要原因,就是由于軟件的研制和維護(hù)本身是工程性的任務(wù),但軟件人員所采取的方式卻未能工程化。為了克服軟件危機(jī),促使人們開(kāi)始考慮采用工程化方法和工程途徑來(lái)研制和維護(hù)軟件。20世紀(jì)60年代末至70年代初開(kāi)始,逐漸發(fā)展起一組總稱為“軟件工程”的技術(shù)。這些技術(shù)把軟件作為一個(gè)工程產(chǎn)品來(lái)處理:它需要計(jì)劃、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試以及維護(hù)。第一節(jié)計(jì)算機(jī)系統(tǒng)及其軟件的發(fā)展一、計(jì)算機(jī)系統(tǒng)工程二、計(jì)算機(jī)軟件的發(fā)展>第一節(jié)計(jì)算機(jī)系統(tǒng)及其軟件的發(fā)展硬件工程和軟件工程都可以看成是一門更廣義的學(xué)科——計(jì)算機(jī)系統(tǒng)工程的一部分。一、計(jì)算機(jī)系統(tǒng)工程用于計(jì)算機(jī)硬件的工程技術(shù)是由電子設(shè)計(jì)技術(shù)發(fā)展起來(lái)的,今天,硬件設(shè)計(jì)技術(shù)已經(jīng)達(dá)到比較成熟的水平。雖然制造方法仍在不斷地改進(jìn),可靠性則已是一種可以期待的現(xiàn)實(shí)而不再是一種愿望了。一、計(jì)算機(jī)系統(tǒng)工程但是,計(jì)算機(jī)軟件工程卻還處于某種困境之中。在以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)中,軟件已經(jīng)取代硬件成為系統(tǒng)中設(shè)計(jì)起來(lái)最困難、最不容易成功(按時(shí)完成和不超過(guò)預(yù)計(jì)的成本),而且是最不易管理的部分。另一方面,隨著以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)在數(shù)量、復(fù)雜程度和應(yīng)用范圍上的不斷增長(zhǎng),對(duì)軟件的需求卻仍然有增無(wú)減。一、計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)工程的主要內(nèi)容是對(duì)系統(tǒng)所要求的功能加以揭示、分析,并把它們分配給系統(tǒng)的各個(gè)部分,如圖1.1所示。圖1.1計(jì)算機(jī)系統(tǒng)工程一、計(jì)算機(jī)系統(tǒng)工程在大多數(shù)新系統(tǒng)創(chuàng)建時(shí),對(duì)系統(tǒng)所要求的功能往往只有模糊的概念。系統(tǒng)分析和定義的目的在于項(xiàng)目的范圍,這就要對(duì)需要進(jìn)行處理的信息、所要求的功能、所期望的性能以及設(shè)計(jì)的約束和檢驗(yàn)的標(biāo)準(zhǔn)等進(jìn)行系統(tǒng)、詳細(xì)的分析。一、計(jì)算機(jī)系統(tǒng)工程在范圍確定之后,計(jì)算機(jī)系統(tǒng)工程師必須考慮多種能潛在地滿足項(xiàng)目范圍的、可供選擇的配置。在綜合考慮各項(xiàng)因素之后,選擇其中的一種配置,并將系統(tǒng)的功能分配給系統(tǒng)的各個(gè)部分(例如硬件和軟件)。二、計(jì)算機(jī)軟件的發(fā)展軟件發(fā)展的歷史是與計(jì)算機(jī)系統(tǒng)發(fā)展緊密相關(guān)的。在計(jì)算機(jī)系統(tǒng)發(fā)展的初期(20世紀(jì)50、60年代),硬件經(jīng)歷了不斷的變化,而軟件則被多數(shù)人作為一種事后的工作來(lái)看待,幾乎沒(méi)有什么系統(tǒng)的方法可以遵循。在此期間,多數(shù)系統(tǒng)采用批處理工作方式,硬件通常僅用來(lái)執(zhí)行一個(gè)單一的為某個(gè)特定的應(yīng)用目的而編制的程序。二、計(jì)算機(jī)軟件的發(fā)展當(dāng)通用硬件已經(jīng)成為平常的事情時(shí),軟件則仍然是為每一種用途而分別設(shè)計(jì)的,它們的通用性有限。大多數(shù)軟件是由使用該軟件的人或機(jī)構(gòu)研制的,軟件設(shè)計(jì)是在某個(gè)人的頭腦中完成的一種隱含的過(guò)程。二、計(jì)算機(jī)軟件的發(fā)展計(jì)算機(jī)系統(tǒng)發(fā)展的第二個(gè)時(shí)期跨越了從20世紀(jì)60年代中期到70年代中期這10年,這個(gè)時(shí)期以產(chǎn)品化軟件的使用和“軟件車間”的出現(xiàn)為特征。多道程序設(shè)計(jì)、多用戶系統(tǒng)引入了人機(jī)對(duì)話的新概念。二、計(jì)算機(jī)軟件的發(fā)展人機(jī)對(duì)話技術(shù)為計(jì)算機(jī)的應(yīng)用開(kāi)辟了新的天地,并使硬件和軟件提高到新的水平;實(shí)時(shí)系統(tǒng)能夠在幾毫秒內(nèi)收集、分析和變換來(lái)自多個(gè)信息源的數(shù)據(jù),進(jìn)而控制處理過(guò)程并產(chǎn)生輸出;聯(lián)機(jī)輔助存儲(chǔ)設(shè)備的發(fā)展導(dǎo)致了數(shù)據(jù)庫(kù)管理系統(tǒng)的出現(xiàn)。人們開(kāi)發(fā)軟件以廣泛銷售為目的。二、計(jì)算機(jī)軟件的發(fā)展隨著以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)日益增多,計(jì)算機(jī)軟件庫(kù)開(kāi)始膨脹。所有這些程序,當(dāng)檢測(cè)出故障時(shí),當(dāng)用戶要求改變時(shí),或者要使軟件在新的硬件上運(yùn)行時(shí),都必須加以維護(hù)和修改。軟件維護(hù)開(kāi)銷越來(lái)越大,更壞的是,許多軟件所帶有的個(gè)人色彩使得它們實(shí)際上是不可維護(hù)的?!败浖C(jī)”開(kāi)始了。二、計(jì)算機(jī)軟件的發(fā)展計(jì)算機(jī)系統(tǒng)發(fā)展的第三個(gè)時(shí)期從20世紀(jì)70年代初期開(kāi)始。分布式系統(tǒng)(多個(gè)計(jì)算機(jī)、各機(jī)器并行執(zhí)行和相互通信)極大地增加了以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)的復(fù)雜性。由于微處理機(jī)和有關(guān)部件的功能越來(lái)越強(qiáng)而價(jià)格越來(lái)越低,因此,在最常用的計(jì)算機(jī)應(yīng)用領(lǐng)域中,具有“嵌入智能”的產(chǎn)品取代了較大的計(jì)算機(jī)。此外,微處理機(jī)的出現(xiàn)也使得人們可能以極低的成本實(shí)現(xiàn)復(fù)雜的邏輯功能。二、計(jì)算機(jī)軟件的發(fā)展硬件的迅速發(fā)展超過(guò)了人們提供支持軟件的能力。在第三個(gè)發(fā)展時(shí)期,軟件危機(jī)日益嚴(yán)重。維護(hù)軟件的費(fèi)用迅速增長(zhǎng),而軟件開(kāi)發(fā)的生產(chǎn)率又跟不上對(duì)軟件需求的步伐。為了對(duì)付不斷增長(zhǎng)的軟件危機(jī),軟件工程開(kāi)始得到認(rèn)真的對(duì)待。如表1.1所示。如今,計(jì)算機(jī)系統(tǒng)的發(fā)展正在向第四個(gè)時(shí)期過(guò)渡。即從技術(shù)性應(yīng)用向消費(fèi)性市場(chǎng)過(guò)渡。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程2006年版《中國(guó)大百科全書》給軟件下的定義是:軟件是“計(jì)算機(jī)系統(tǒng)中的程序和有關(guān)的文件。程序是計(jì)算任務(wù)的處理對(duì)象和處理規(guī)則的描述;文件是為了便于了解程序所需的資料說(shuō)明。程序必須裝入機(jī)器內(nèi)部才能工作,文件一般是給人看的,不一定裝入機(jī)器。程序作為一種具有邏輯結(jié)構(gòu)的信息,精確而完整地描述計(jì)算任務(wù)中的處理對(duì)象和處理規(guī)則。這一描述還必須通過(guò)相應(yīng)的實(shí)體才能體現(xiàn)?!?gt;第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程也就是說(shuō),“軟件”不僅僅是指程序,在軟件研制過(guò)程中按一定規(guī)格產(chǎn)生的各種文件也是軟件不可缺少的組成部分。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程《軟件工程術(shù)語(yǔ)》(GB/T11457-1995)定義了軟件生存周期,即:從設(shè)計(jì)軟件產(chǎn)品開(kāi)始到產(chǎn)品不能再使用時(shí)為止的時(shí)間周期。亦即:一個(gè)計(jì)算機(jī)軟件,從出現(xiàn)一個(gè)構(gòu)思之日起,經(jīng)過(guò)開(kāi)發(fā)成功投入使用,在使用中不斷增補(bǔ)修訂,直到最后決定停止使用,并被另一項(xiàng)軟件代替之時(shí)止,被認(rèn)為是該軟件的一個(gè)生存周期(或稱生命周期、生存期,lifecycle)。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程一個(gè)軟件產(chǎn)品的生存周期可以劃分成若干個(gè)互相區(qū)別而又有聯(lián)系的階段,每個(gè)階段中的工作均以上一階段工作的結(jié)果為依據(jù),并為下一階段的工作提供了前提。經(jīng)驗(yàn)表明,失誤造成的差錯(cuò)越是發(fā)生在生存周期的前期,在系統(tǒng)交付使用時(shí)造成的影響和損失就越大,要糾正它所花費(fèi)的代價(jià)也越高。因而在前一階段工作沒(méi)有做好之前,決不要草率地進(jìn)入下一階段。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程《軟件生存周期過(guò)程》(GB/T8566-2001)則根據(jù)軟件工程的實(shí)踐和軟件工程學(xué)科的發(fā)展,進(jìn)一步完善了軟件生存周期的定義,即:從概念形成直到退役,并且由獲取和供應(yīng)軟件產(chǎn)品及服務(wù)的各個(gè)過(guò)程組成。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程該標(biāo)準(zhǔn)把軟件生存周期中可以開(kāi)展的活動(dòng)分為5個(gè)基本過(guò)程(獲取過(guò)程、供應(yīng)過(guò)程、開(kāi)發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程)、8個(gè)支持過(guò)程(文檔編制過(guò)程、配置管理過(guò)程、質(zhì)量保證過(guò)程、驗(yàn)證過(guò)程、確認(rèn)過(guò)程、聯(lián)合評(píng)審過(guò)程、審核過(guò)程、問(wèn)題解決過(guò)程)和4個(gè)組織過(guò)程(管理過(guò)程、基礎(chǔ)設(shè)施過(guò)程、改進(jìn)過(guò)程、培訓(xùn)過(guò)程)。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程軟件生存周期過(guò)程中階段的劃分,有助于軟件研制管理人員借用傳統(tǒng)工程的管理方法(重視工程性文件的編制,采用專業(yè)化分工方法,在不同階段使用不同的人員等),從而有利于明顯提高軟件質(zhì)量、降低成本、合理使用人才、進(jìn)而提高軟件開(kāi)發(fā)的勞動(dòng)生產(chǎn)率。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程由于工作的對(duì)象和范圍的不同以及經(jīng)驗(yàn)的不同,對(duì)軟件生存周期過(guò)程中各階段的劃分也不盡相同。但是,這些不同劃分中有許多相同之處。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程《計(jì)算機(jī)軟件開(kāi)發(fā)規(guī)范》(GB/T8566-1988)(《軟件生存周期過(guò)程》GB/T8566-2001的前身)將軟件生存周期劃分為以下8個(gè)階段,即:可行性研究與計(jì)劃、需求分析、概要設(shè)計(jì)(即結(jié)構(gòu)設(shè)計(jì))、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)(包括單元測(cè)試)、組裝測(cè)試(即集成測(cè)試)、確認(rèn)測(cè)試、使用和維護(hù)。如圖1.2所示,給出了軟件生存周期的瀑布模型。圖1.2軟件生存周期的瀑布模型

第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程“軟件生存周期”是對(duì)軟件的一種長(zhǎng)遠(yuǎn)發(fā)展的看法,這種看法把軟件開(kāi)始開(kāi)發(fā)之前和軟件交付使用之后的一些活動(dòng)都包括在軟件生存周期之內(nèi)。應(yīng)當(dāng)注意的是,軟件系統(tǒng)的實(shí)際開(kāi)發(fā)工作不可能直線地通過(guò)分析、設(shè)計(jì)、編程和測(cè)試等階段,出現(xiàn)各階段間的回復(fù)是不可避免的。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程軟件生存周期的每個(gè)階段都要產(chǎn)生一定規(guī)格的軟件文件移交給下一階段,使下一階段在所提供的軟件文件的基礎(chǔ)上繼續(xù)開(kāi)展工作?!队?jì)算機(jī)軟件產(chǎn)品開(kāi)發(fā)文件編制指南》(GB/T8567-1988,已升級(jí)為GB/T8567-2006《計(jì)算機(jī)軟件文檔編制規(guī)范》)建議在軟件的開(kāi)發(fā)過(guò)程中編制下述14種文件,即:第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程可行性研究報(bào)告、項(xiàng)目開(kāi)發(fā)計(jì)劃、軟件需求說(shuō)明書、數(shù)據(jù)要求說(shuō)明書、概要設(shè)計(jì)說(shuō)明書、詳細(xì)設(shè)計(jì)說(shuō)明書、數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書、用戶手冊(cè)、操作手冊(cè)、模塊開(kāi)發(fā)卷宗、測(cè)試計(jì)劃、測(cè)試分析報(bào)告、開(kāi)發(fā)進(jìn)度月報(bào)以及項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程而《計(jì)算機(jī)軟件需求說(shuō)明編制指南》(GB/T9385-1988)、《計(jì)算機(jī)軟件測(cè)試文件編制規(guī)范》(GB/T9386-1988)等有關(guān)軟件工程的國(guó)家標(biāo)準(zhǔn)對(duì)軟件文件的編制提出了更為詳盡的要求,《軟件文檔管理指南》(GB/T16680-1996)則明確了對(duì)軟件文件的管理要求。第二節(jié)軟件、軟件生存周期和軟件生存周期過(guò)程圖1.3和圖1.4分別說(shuō)明了在典型的情況下,軟件生存周期各階段的工作量所占的比重。圖1.3說(shuō)明運(yùn)行維護(hù)工作量要占整個(gè)生存周期工作量的一半以上,圖1.4則說(shuō)明了測(cè)試階段(組裝測(cè)試和確認(rèn)測(cè)試)的工作量約占整個(gè)開(kāi)發(fā)期工作量的近一半。

圖1.3軟件生存周期工作量分配圖1.4開(kāi)發(fā)階段工作量分配第三節(jié)軟件生存周期模型一、瀑布模型二、漸增模型三、演化模型>第三節(jié)軟件生存周期模型軟件生存周期模型(又稱軟件開(kāi)發(fā)模型)是軟件工程的一個(gè)重要的概念,它可以定義為:一個(gè)框架,它含有遍歷系統(tǒng)從確定需求到終止使用這一生存周期的軟件產(chǎn)品的開(kāi)發(fā)、運(yùn)行和維護(hù)中需實(shí)施的過(guò)程、活動(dòng)和任務(wù)。第三節(jié)軟件生存周期模型軟件生存周期模型能清晰、直觀地表達(dá)軟件開(kāi)發(fā)全過(guò)程,明確規(guī)定了開(kāi)發(fā)工作各階段所要完成的主要活動(dòng)和任務(wù),以作為軟件項(xiàng)目開(kāi)發(fā)工作的基礎(chǔ)。對(duì)于不同的軟件系統(tǒng),可以采用不同的開(kāi)發(fā)方法、使用不同的程序設(shè)計(jì)語(yǔ)言以及各種不同技能的人員參與工作、運(yùn)用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。軟件生存周期模型是穩(wěn)定有效和普遍適用的。第三節(jié)軟件生存周期模型在軟件生存周期過(guò)程中,軟件生存周期模型僅對(duì)軟件的開(kāi)發(fā)、運(yùn)作和維護(hù)過(guò)程有意義,在信息技術(shù)國(guó)際標(biāo)準(zhǔn)ISO12207和ISO9000-3中都提到軟件生存周期模型,包括瀑布模型、漸增模型、演化模型、螺旋模型、噴泉模型和智能模型等。一、瀑布模型瀑布模型(waterfallmodel)是1970年W.Royce提出的最早的軟件開(kāi)發(fā)模型(如圖1.2所示),它將軟件開(kāi)發(fā)過(guò)程中的各項(xiàng)活動(dòng)規(guī)定為依固定順序連接的若干階段工作,形如瀑布流水,最終得到軟件系統(tǒng)或軟件產(chǎn)品。換句話說(shuō),它將軟件開(kāi)發(fā)過(guò)程劃分成若干個(gè)互相區(qū)別而又彼此聯(lián)系的階段,每個(gè)階段中的工作都以上一個(gè)階段工作的結(jié)果為依據(jù),同時(shí)為下一個(gè)階段的工作提供了前提。一、瀑布模型瀑布模型之所以能廣泛流行,一方面由于它在支持開(kāi)發(fā)結(jié)構(gòu)化軟件、控制軟件開(kāi)發(fā)復(fù)雜度、促進(jìn)軟件開(kāi)發(fā)工程化方面起了顯著作用,另一方面是它為軟件開(kāi)發(fā)和維護(hù)提供了一種當(dāng)時(shí)較為有效的管理模式,根據(jù)這一模式制訂開(kāi)發(fā)計(jì)劃、進(jìn)行成本預(yù)算、組織開(kāi)發(fā)人員以階段評(píng)審和文檔控制為手段,有效地對(duì)軟件開(kāi)發(fā)過(guò)程進(jìn)行指導(dǎo),從而使軟件質(zhì)量有一定程度的保證。一、瀑布模型1988年曾依據(jù)該開(kāi)發(fā)模型制定并公布了《軟件開(kāi)發(fā)規(guī)范》(GB8567-1988),對(duì)我國(guó)軟件開(kāi)發(fā)起到了較大的促進(jìn)作用。一、瀑布模型瀑布模型在大量的實(shí)踐中也暴露了不足和問(wèn)題。例如,由于固定順序,前期階段工作中所造成的差錯(cuò),越到后期階段所造成的損失和影響也越大,為了糾正它而花費(fèi)的代價(jià)也越高,盡管技術(shù)人員小心翼翼,但這種情況還是會(huì)經(jīng)常發(fā)生。一、瀑布模型因此,在評(píng)價(jià)瀑布模型時(shí),應(yīng)考慮相關(guān)風(fēng)險(xiǎn),例如:需求未被充分理解。系統(tǒng)太大而一次不能做完所有的事。事先打算采用的技術(shù)迅速發(fā)生變化。需求迅速發(fā)生變化。有限的資源。無(wú)法利用某一中間產(chǎn)品。二、漸增模型漸增模型(incrementalmodel)是指從一組給定的需求開(kāi)始,通過(guò)構(gòu)造一系列可執(zhí)行的中間版本來(lái)實(shí)施開(kāi)發(fā)活動(dòng)。第一個(gè)中間版本納入一部分需求,下一個(gè)中間版本納入更多的需求,依此類推,直到系統(tǒng)完成。每個(gè)中間版本都要執(zhí)行必要的過(guò)程、活動(dòng)和任務(wù),如:需求分析和體系結(jié)構(gòu)設(shè)計(jì)需要執(zhí)行一次,而詳細(xì)設(shè)計(jì)、編碼和測(cè)試、軟件組裝和驗(yàn)收測(cè)試在每個(gè)中間版本構(gòu)造過(guò)程中都執(zhí)行。如圖1.5所示。圖1.5漸增模型示意二、漸增模型在開(kāi)發(fā)每個(gè)中間版本時(shí),開(kāi)發(fā)過(guò)程中的活動(dòng)和任務(wù)順序地或部分平行地使用。當(dāng)相繼的中間版本在部分并行開(kāi)發(fā)時(shí),開(kāi)發(fā)過(guò)程中的活動(dòng)和任務(wù)可以在各中間版本間平行地采用。二、漸增模型在評(píng)價(jià)該模型時(shí),需要考慮的風(fēng)險(xiǎn)因素是:需求未被很好地理解。突然提出一些功能。事先打算采用的技術(shù)迅速發(fā)生變化。需求迅速發(fā)生變化。長(zhǎng)時(shí)期內(nèi)僅有有限的資源保證(工作人員/資金)。三、演化模型演化模型(evolutionarymodel,又稱進(jìn)化模型)主要針對(duì)事先不能完整定義需求的軟件項(xiàng)目開(kāi)發(fā)。由于人們對(duì)軟件需求的認(rèn)識(shí)模糊,許多軟件開(kāi)發(fā)項(xiàng)目很難一次開(kāi)發(fā)成功,返工再開(kāi)發(fā)難以避免。因此,人們對(duì)需要開(kāi)發(fā)的軟件給出基本需求,作第一次試驗(yàn)開(kāi)發(fā),其目標(biāo)僅在于探索可行性和弄清需求,取得有效的反饋信息,以支持軟件的最終設(shè)計(jì)和實(shí)現(xiàn)。三、演化模型通常,我們把第一次試驗(yàn)性開(kāi)發(fā)出來(lái)的軟件稱為原型(prototype)。這種開(kāi)發(fā)模型可以減少由于需求不明給開(kāi)發(fā)工作帶來(lái)的風(fēng)險(xiǎn)。三、演化模型演化模型也有多種形式,例如:丟棄型:原型開(kāi)發(fā)后,已獲得了更為清晰的需求反饋信息,原型無(wú)需保留而被丟棄,開(kāi)發(fā)的原型僅以演示為目的,這往往用在軟件的用戶界面的開(kāi)發(fā)上。樣品型:原型規(guī)模與最終產(chǎn)品相似,只是原型僅供研究用。三、演化模型漸增式演化型:原型作為最終產(chǎn)品的一部分,它可滿足用戶的部分需求,經(jīng)用戶試用后提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求,開(kāi)發(fā)人員根據(jù)反饋信息,實(shí)施開(kāi)發(fā)的迭代過(guò)程。如果一次迭代過(guò)程中有些需求還不能滿足用戶的要求,可在下一迭代中予以修正,整個(gè)實(shí)現(xiàn)后軟件才可最終交付使用。三、演化模型演化模型(如圖1.6所示)也是通過(guò)構(gòu)造系統(tǒng)的各個(gè)可執(zhí)行的中間版本來(lái)開(kāi)發(fā)系統(tǒng)的,但是,與漸增模型的區(qū)別是承認(rèn)需求不能被完全了解,且不能在初始時(shí)就確定。在該模型中,需求一部分被預(yù)先定義,然后在每個(gè)相繼的中間版本中逐步完善。該模型中,每個(gè)中間版本在開(kāi)發(fā)時(shí),開(kāi)發(fā)過(guò)程中的活動(dòng)和任務(wù)順序地或部分重疊平行地被采用。圖1.6演化模型示意三、演化模型對(duì)所有的中間版本,開(kāi)發(fā)過(guò)程中的活動(dòng)和任務(wù)通常接同一順序被重復(fù)使用。維護(hù)過(guò)程和運(yùn)作過(guò)程可以與開(kāi)發(fā)過(guò)程平行地使用。獲取過(guò)程、供應(yīng)過(guò)程、支持過(guò)程和組織過(guò)程通常與開(kāi)發(fā)過(guò)程平行地使用。第四節(jié)軟件工程定義一、軟件工程學(xué)的內(nèi)容二、軟件工程學(xué)的基本目標(biāo)和原則三、軟件工程與一般工程的差異>第四節(jié)軟件工程定義人們對(duì)軟件工程的定義和內(nèi)涵有一個(gè)廣泛討論、研究和認(rèn)識(shí)的過(guò)程,從而對(duì)軟件工程有了各種各樣的定義,例如:P.Wegner和B.Boehm認(rèn)為軟件工程可定義為:科學(xué)知識(shí)在設(shè)計(jì)和構(gòu)造計(jì)算機(jī)程序,以及開(kāi)發(fā)、運(yùn)作和維護(hù)這些程序所要求的有關(guān)文檔編制中的實(shí)際應(yīng)用。第四節(jié)軟件工程定義F.L.Bauer認(rèn)為是:為了經(jīng)濟(jì)地獲得軟件,這個(gè)軟件是可靠的并且能在實(shí)在的計(jì)算機(jī)上工作,所需要的健全的工程原理(方法)的確立和使用。1983年IEEE(國(guó)際電氣與電子工程師協(xié)會(huì))的軟件工程術(shù)語(yǔ)匯編中,將軟件工程定義為:對(duì)軟件開(kāi)發(fā)、運(yùn)作、維護(hù)、退役的系統(tǒng)研究方法。1990年新版的IEEE軟件工程術(shù)語(yǔ)匯編,又將定義更改為:對(duì)軟件開(kāi)發(fā)、運(yùn)作、維護(hù)的系統(tǒng)化的、有紀(jì)律的、可定量的方法之應(yīng)用,即是對(duì)軟件的工程化應(yīng)用。第四節(jié)軟件工程定義《軟件工程術(shù)語(yǔ)》(GB/T11457-1995)則把軟件工程定義為:軟件開(kāi)發(fā)、運(yùn)行、維護(hù)和引退的系統(tǒng)方法。第四節(jié)軟件工程定義從以上對(duì)軟件工程的不同定義中,我們可以看到對(duì)其內(nèi)容的理解是逐步深入的,發(fā)展到今天,軟件工程已是一門交叉性學(xué)科,它是解決軟件問(wèn)題的工程,對(duì)它的理解不應(yīng)是靜止的和孤立的。軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法來(lái)創(chuàng)建軟件,從而達(dá)到提高質(zhì)量、降低成本的目的。第四節(jié)軟件工程定義其中,計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型、分析算法,工程科學(xué)用于制定規(guī)范、明確風(fēng)格、評(píng)估成本、確定權(quán)衡,管理科學(xué)用于進(jìn)度、資源、質(zhì)量、成本等的管理。對(duì)于軟件工程所包含的內(nèi)容也不是一成不變的。隨著人們對(duì)于軟件系統(tǒng)的研制開(kāi)發(fā)和生產(chǎn)的理解,也應(yīng)該用發(fā)展的眼光來(lái)看待它。只有這樣才能客觀、公正地反映出它的內(nèi)涵和外延。第四節(jié)軟件工程定義軟件工程的目標(biāo)是明確的,就是研制開(kāi)發(fā)與生產(chǎn)出具有良好的軟件質(zhì)量和費(fèi)用合算的產(chǎn)品。費(fèi)用合算是指軟件開(kāi)發(fā)運(yùn)行的整個(gè)開(kāi)銷能滿足用戶要求的程度,軟件質(zhì)量是指該軟件能滿足明確的和隱含的需求能力的有關(guān)特征和特性的總和。第四節(jié)軟件工程定義軟件工程的基礎(chǔ)是一些指導(dǎo)性的原則,例如:必須認(rèn)識(shí)軟件需求的變動(dòng)性,并采取適當(dāng)措施來(lái)保證結(jié)果產(chǎn)品能忠實(shí)地滿足用戶要求。在軟件設(shè)計(jì)中,通常要考慮模塊化、抽象與信息隱蔽、局部化、一致性等原則。穩(wěn)妥的設(shè)計(jì)方法大大地方便軟件開(kāi)發(fā),為達(dá)到軟件工程的目標(biāo),軟件工具與環(huán)境對(duì)軟件設(shè)計(jì)的支持來(lái)說(shuō),頗為重要。第四節(jié)軟件工程定義軟件工程項(xiàng)目的質(zhì)量與經(jīng)濟(jì)開(kāi)銷直接取決于對(duì)它所提供的支撐的質(zhì)量與效用。有效的軟件工程只有在對(duì)軟件過(guò)程進(jìn)行有效管理的情況下才能實(shí)現(xiàn)。一、軟件工程學(xué)的內(nèi)容對(duì)軟件應(yīng)用的各個(gè)領(lǐng)域,認(rèn)識(shí)問(wèn)題與解決問(wèn)題的技巧和手段大不相同。然而,可以使用一些與具體應(yīng)用無(wú)關(guān)的技術(shù)來(lái)研究如何設(shè)計(jì)軟件。這些技術(shù)就構(gòu)成了軟件工程學(xué)的基礎(chǔ)。一、軟件工程學(xué)的內(nèi)容從軟件的生產(chǎn)管理技術(shù)來(lái)看,軟件工程學(xué)大致可分為:軟件的需求定義和分析技術(shù);軟件設(shè)計(jì)技術(shù)和設(shè)計(jì)審查技術(shù);軟件設(shè)計(jì)表現(xiàn)技術(shù);軟件測(cè)試技術(shù);軟件可靠性的理論及其評(píng)價(jià)方法;軟件擴(kuò)充和維護(hù);軟件成本估算等。一、軟件工程學(xué)的內(nèi)容從內(nèi)容上劃分,軟件工程學(xué)可分為理論、結(jié)構(gòu)、方法、工具等部分。理論與結(jié)構(gòu)是方法論與工具的基礎(chǔ)及前提。在方法論與工具方面存在著這樣的關(guān)系:為了找出行之有效的方法就應(yīng)該具備合適的工具;反之,為了制造、改進(jìn)軟件工具,也應(yīng)先有合適的方法。一、軟件工程學(xué)的內(nèi)容軟件工程學(xué)主要研究如何以較少的代價(jià)獲得高質(zhì)量的軟件。要達(dá)到這個(gè)目的就必須研究軟件開(kāi)發(fā)方法和軟件開(kāi)發(fā)工具。一、軟件工程學(xué)的內(nèi)容軟件開(kāi)發(fā)方法就是開(kāi)發(fā)軟件的規(guī)范化方法。一般說(shuō)來(lái),一個(gè)軟件開(kāi)發(fā)方法必須在以下三個(gè)方面做出規(guī)定:1)工作步驟,即明確軟件系統(tǒng)的基本開(kāi)發(fā)步驟及每一步的條件、目的、結(jié)果等。2)軟件文件格式。3)評(píng)價(jià)標(biāo)準(zhǔn),即確定對(duì)各種不同的軟件開(kāi)發(fā)方案的評(píng)價(jià)標(biāo)準(zhǔn)。二、軟件工程學(xué)的基本目標(biāo)和原則軟件工程學(xué)研究的基本目標(biāo)是:1)一種定義良好的方法學(xué),該方法學(xué)是面向包括計(jì)劃、開(kāi)發(fā)和維護(hù)等階段的軟件生存周期的。2)一組確定的軟件成分,它對(duì)軟件生存周期的每一步記錄軟件文件資料,并且具有按步顯示軌跡的能力。3)一組可以預(yù)測(cè)的里程碑,在整個(gè)軟件生存周期中,每隔一定時(shí)間可以對(duì)它們進(jìn)行復(fù)審。二、軟件工程學(xué)的基本目標(biāo)和原則為了達(dá)到“以較少的投資獲得易維護(hù)、可靠、高效率和易理解的軟件產(chǎn)品”這個(gè)最終目的,各種軟件工程技術(shù)所遵循的基本原則是:1)分解:分解是分析解決復(fù)雜問(wèn)題的重要手段,它的基本思想是將一個(gè)復(fù)雜的問(wèn)題分成若干個(gè)較小的、相對(duì)獨(dú)立的、較易解決的子問(wèn)題,然后分別加以解決。將軟件開(kāi)發(fā)過(guò)程劃分成幾個(gè)階段、結(jié)構(gòu)化分析方法的分解、結(jié)構(gòu)化設(shè)計(jì)方法和Jackson方法的模塊化等都體現(xiàn)了“分解”的原則。二、軟件工程學(xué)的基本目標(biāo)和原則2)抽象和信息隱蔽:抽象和信息隱蔽也是解決復(fù)雜問(wèn)題的重要手段,它的基本思想是在將復(fù)雜問(wèn)題逐層分解時(shí),將“怎么做”等大量細(xì)節(jié)隱蔽在下一層,從而使上一層突出“做什么”而得到簡(jiǎn)化。我們稱上一層為下一層的抽象。軟件設(shè)計(jì)中常用的“模塊化”和“局部性”方法就體現(xiàn)了這種抽象和信息隱蔽的原則。二、軟件工程學(xué)的基本目標(biāo)和原則3)一致性:一致性強(qiáng)調(diào)軟件開(kāi)發(fā)過(guò)程的標(biāo)準(zhǔn)化、統(tǒng)一化,包括軟件文件格式的一致,工作流程的一致等。研究軟件方法的目的之一,就是使開(kāi)發(fā)過(guò)程走上標(biāo)準(zhǔn)化的軌道。4)確定性:確定性要求軟件開(kāi)發(fā)過(guò)程中用確定的形式將一些較含糊的概念表達(dá)出來(lái)。如用數(shù)據(jù)流程圖來(lái)精確地表達(dá)用戶需求,用易維護(hù)性、可靠性、易理解性、高效率等指標(biāo)來(lái)具體度量軟件的質(zhì)量等。確定性也是保證軟件質(zhì)量的前提。三、軟件工程與一般工程的差異軟件工程是一門交叉性學(xué)科,又是工程學(xué)科家族中的新成員,在幾十年的發(fā)展過(guò)程中,已經(jīng)形成了其特有的形態(tài)。雖然軟件產(chǎn)品在某些方面相似于其他工程中的有形產(chǎn)品,如橋梁、建筑物、機(jī)床、計(jì)算機(jī)等,但其間也確有一些重要的差別,不能簡(jiǎn)單地把一般工程方面的知識(shí)、方法和技術(shù)直接應(yīng)用到軟件工程上來(lái)。三、軟件工程與一般工程的差異軟件工程與一般工程的差別主要表現(xiàn)在以下五個(gè)方面:1)軟件是邏輯產(chǎn)品而不是實(shí)物產(chǎn)品,磁盤、集成電路塊只是軟件的載體,這就意味著費(fèi)用集中在研制開(kāi)發(fā)上而不在生產(chǎn)上。當(dāng)然,由于是邏輯產(chǎn)品,軟件就不會(huì)用壞、磨損、老化,而且可以不斷地改進(jìn)、優(yōu)化,其可靠性由邏輯性所確定。開(kāi)發(fā)軟件在許多方面更像進(jìn)行數(shù)學(xué)證明,可是,軟件產(chǎn)品的評(píng)價(jià)卻主要決定于它們?cè)趩?wèn)題求解中是否有用,而不是決定于抽象的正確性判定標(biāo)準(zhǔn)。三、軟件工程與一般工程的差異換句話說(shuō),開(kāi)發(fā)軟件產(chǎn)品時(shí)主要使用的是工程標(biāo)準(zhǔn),而不是數(shù)學(xué)標(biāo)準(zhǔn)。2)由于軟件是邏輯產(chǎn)品,使得它的功能只能依賴于硬件和軟件的運(yùn)行環(huán)境以及人們對(duì)它的操作才能得以體現(xiàn)。沒(méi)有計(jì)算機(jī)及其相關(guān)硬件的支持,軟件難以實(shí)現(xiàn)其實(shí)用價(jià)值。同樣,沒(méi)有軟件支持的計(jì)算機(jī)硬件,也只是毫無(wú)使用價(jià)值的機(jī)器。軟件與硬件的密切相關(guān)的程度是一般工程所沒(méi)有的。三、軟件工程與一般工程的差異3)對(duì)軟件產(chǎn)品的要求比一般有形產(chǎn)品來(lái)得復(fù)雜。其一,軟件產(chǎn)品要完成的多種多樣功能,用戶難以清晰、準(zhǔn)確地表達(dá)。僅此一項(xiàng),軟件系統(tǒng)的復(fù)雜性可以比得上任何一個(gè)工程項(xiàng)目;其二,對(duì)軟件產(chǎn)品的要求,如可靠性、易移植性、易使用性等是隱含的,也是難以表達(dá)的,而且也缺少度量的具體標(biāo)準(zhǔn),和有形產(chǎn)品的質(zhì)量檢驗(yàn)的精度相距甚遠(yuǎn);其三,軟件設(shè)計(jì)不僅僅涉及到技術(shù)復(fù)雜性,也還涉及到管理復(fù)雜性。即使在今天軟件工程已有很大進(jìn)展的情況下,領(lǐng)導(dǎo)一個(gè)龐大的項(xiàng)目組,能像其他工程項(xiàng)目那樣進(jìn)行規(guī)?;a(chǎn)絕非易事。三、軟件工程與一般工程的差異4)在軟件設(shè)計(jì)中存在的復(fù)雜性,使得軟件特征包括以下四方面:功能的多樣性。軟件提供的功能比一般工程產(chǎn)品提供的功能更加多種多樣,以致用戶一時(shí)難以掌握。因此,使用軟件產(chǎn)品,往往還會(huì)伴隨一個(gè)培訓(xùn)任務(wù),而且軟件產(chǎn)品的用戶手冊(cè)還不一定能全面描述其功能;三、軟件工程與一般工程的差異實(shí)現(xiàn)的多樣性。對(duì)軟件產(chǎn)品的要求不僅包括功能和性能要求,還必須包括在符合功能和性能要求的各種實(shí)現(xiàn)中做出選擇,更有實(shí)現(xiàn)算法上的優(yōu)化帶來(lái)的不同,所以實(shí)現(xiàn)上的差異會(huì)帶來(lái)使用上的差異;能見(jiàn)度低。要看到軟件進(jìn)度比看到有形產(chǎn)品的進(jìn)度難得多,這里涉及到如何使用文檔表示的概念能見(jiàn)度,這又為軟件管理復(fù)雜性增加了難度;三、軟件工程與一般工程的差異軟件結(jié)構(gòu)的合理性差。結(jié)構(gòu)不合理使軟件管理復(fù)雜性隨著軟件規(guī)模增大而呈指數(shù)地增長(zhǎng),換句話說(shuō),軟件規(guī)模的增長(zhǎng)所引起的管理復(fù)雜性成了軟件設(shè)計(jì)的難題。前二方面屬于技術(shù)復(fù)雜性,后二方面屬于管理復(fù)雜性。為了控制軟件復(fù)雜性,人們進(jìn)行了各種研究,這在一般工程中是前所未有的。5)軟件工程是智力密集型產(chǎn)業(yè),因此,它的知識(shí)產(chǎn)權(quán)保護(hù)就顯得極為重要。第五節(jié)軟件工具與環(huán)境一、軟件工具二、軟件開(kāi)發(fā)環(huán)境三、計(jì)算機(jī)輔助軟件工程(CASE)>第五節(jié)軟件工具與環(huán)境軟件工程學(xué)主要研究如何以較少的代價(jià)獲得高質(zhì)量的軟件,而要達(dá)到這個(gè)目的,就必須研究軟件開(kāi)發(fā)方法和軟件開(kāi)發(fā)工具。第五節(jié)軟件工具與環(huán)境軟件工具是指能支持軟件生存周期中某一階段(如系統(tǒng)定義、需求分析、設(shè)計(jì)、編碼、測(cè)試或維護(hù)等)的需要而使用的軟件系統(tǒng);軟件開(kāi)發(fā)環(huán)境則是面向軟件整個(gè)生存周期,為支持各個(gè)階段的需要,在基本硬件和宿主軟件的基礎(chǔ)上使用的一組軟件系統(tǒng)。軟件工具和軟件開(kāi)發(fā)環(huán)境都是軟件工程的重要支柱,對(duì)于提高軟件生產(chǎn)率,改進(jìn)軟件質(zhì)量,以及適應(yīng)計(jì)算機(jī)技術(shù)的迅速發(fā)展有著越來(lái)越大的作用。第五節(jié)軟件工具與環(huán)境從20世紀(jì)70年代末開(kāi)始,專家們就致力于軟件開(kāi)發(fā)自動(dòng)化工具的研究,并逐步形成了應(yīng)用于軟件過(guò)程的集成的項(xiàng)目支撐環(huán)境(integratedprojectsupportenvironment)和計(jì)算機(jī)輔助軟件工程(CASE,computer-aidedsoftwareengineering)工具。在此基礎(chǔ)上建立集成式軟件開(kāi)發(fā)環(huán)境,全面支持軟件開(kāi)發(fā)過(guò)程,以期實(shí)現(xiàn)軟件設(shè)計(jì)過(guò)程的自動(dòng)化或半自動(dòng)化。第五節(jié)軟件工具與環(huán)境軟件工程的主要目標(biāo)是提高軟件生產(chǎn)率,改善軟件質(zhì)量和降低軟件成本,而這些目標(biāo)的實(shí)現(xiàn)只能依靠軟件工具、軟件開(kāi)發(fā)環(huán)境和計(jì)算機(jī)輔助軟件工程(CASE)的廣泛應(yīng)用。一、軟件工具軟件工具是“可用來(lái)幫助和支持軟件需求分析、軟件開(kāi)發(fā)、測(cè)試、維護(hù)、模擬、移植或管理等目的而編制的計(jì)算機(jī)程序或軟件?!彼话闶菫閷iT應(yīng)用而開(kāi)發(fā),其主要目的是為了提高軟件生產(chǎn)率和改善軟件的質(zhì)量。如今,軟件工具重視用戶界面的設(shè)計(jì),不斷地采取新理論和新技術(shù),正由單個(gè)工具向多個(gè)工具集成方向發(fā)展,且注重工具間的平滑過(guò)渡和互操作性。一、軟件工具軟件工具的商品化推動(dòng)著軟件產(chǎn)業(yè)的發(fā)展.而軟件產(chǎn)業(yè)的發(fā)展,又增加了對(duì)軟件工具的需求,促進(jìn)了軟件工具的商品化進(jìn)程。軟件工具的范圍很廣,它既包括比較成熟的傳統(tǒng)工具,如操作系統(tǒng)、編譯程序、解釋程序和匯編程序等,又包括支持軟件生存周期各階段,如需求分析、設(shè)計(jì)、編碼、測(cè)試、維護(hù)等的開(kāi)發(fā)和管理工具。一、軟件工具例如,一項(xiàng)分類標(biāo)準(zhǔn)把軟件工具分為13類,它們是:系統(tǒng)模擬和模型工具;需求追蹤工具;需求分析工具;設(shè)計(jì)工具;編碼和單元測(cè)試工具;測(cè)試和集成工具;文檔工具;項(xiàng)目管理工具;配置管理工具;質(zhì)量保證工具;度量工具;軟件再用工具;其他工具。二、軟件開(kāi)發(fā)環(huán)境軟件開(kāi)發(fā)環(huán)境是指在計(jì)算機(jī)基本軟件的基礎(chǔ)上,為了支持軟件的開(kāi)發(fā)而提供的一組工具軟件系統(tǒng)。1985年第八屆國(guó)際軟件工程會(huì)議提出的關(guān)于“軟件開(kāi)發(fā)環(huán)境”的定義是:“軟件開(kāi)發(fā)環(huán)境是相關(guān)的一組軟件工具集合,它支持一定的軟件開(kāi)發(fā)方法或按照一定的軟件開(kāi)發(fā)模型組織而成?!倍④浖_(kāi)發(fā)環(huán)境一般說(shuō)來(lái),軟件開(kāi)發(fā)環(huán)境都具有層次式的結(jié)構(gòu),例如可區(qū)分為四層:1)宿主層:它包括基本宿主硬件和基本宿主軟件。2)核心層:包括工具組、環(huán)境數(shù)據(jù)庫(kù)、通信設(shè)施和運(yùn)行時(shí)刻支援設(shè)施。3)基本層:包括一組工具,如編譯程序、編輯程序、調(diào)試程序、連接程序和裝配程序等。這些工具都是由核心層來(lái)支援的。4)應(yīng)用層:以特定的基本層為基礎(chǔ),包括一些補(bǔ)充工具,借以更好地支援各種應(yīng)用軟件的研制。二、軟件開(kāi)發(fā)環(huán)境按內(nèi)容分,軟件開(kāi)發(fā)環(huán)境一般由環(huán)境數(shù)據(jù)庫(kù)、接口軟件和工具組等構(gòu)成。1)環(huán)境數(shù)據(jù)庫(kù)。這是軟件開(kāi)發(fā)環(huán)境的核心,其中存放的信息有:被研制軟件在其生存周期中所必須的信息和軟件研制工具的有關(guān)信息等。例如,它把經(jīng)過(guò)各種軟件工具加工后的軟件產(chǎn)品和半成品(如各種文件、源代碼及測(cè)試數(shù)據(jù))存入庫(kù)內(nèi),以便根據(jù)需要進(jìn)行查詢、修改或輸出等。二、軟件開(kāi)發(fā)環(huán)境在環(huán)境數(shù)據(jù)庫(kù)中,可以分別標(biāo)識(shí)的信息組稱為對(duì)象;作為一組相關(guān)的版本而存在的一組對(duì)象稱為版本組。把一個(gè)項(xiàng)目中各個(gè)不同的“對(duì)象組”組合起來(lái),就可以構(gòu)成各種不同的軟件配置。2)接口軟件。包括系統(tǒng)與用戶的接口、子系統(tǒng)和子系統(tǒng)之間的接口。開(kāi)發(fā)環(huán)境要求所有的接口都具有統(tǒng)一性。例如,為了實(shí)現(xiàn)用戶和各種系統(tǒng)的通信,要求有統(tǒng)一調(diào)用方式。二、軟件開(kāi)發(fā)環(huán)境3)工具組。軟件開(kāi)發(fā)環(huán)境中的工具彼此有交互作用。工具組中的各個(gè)工具被設(shè)計(jì)成由一些基本功能成分組成。這些成分可以組合,供用戶選用,并且可通過(guò)環(huán)境數(shù)據(jù)庫(kù)進(jìn)行通信。語(yǔ)言工具。它一般提供編譯(或解釋)程序、連接裝配程序、調(diào)試程序、靜態(tài)及動(dòng)態(tài)分析程序等一系列語(yǔ)言支撐工具。也有的系統(tǒng)支持非過(guò)程語(yǔ)言的運(yùn)行。質(zhì)量保證工具。目前大量使用的仍是靜態(tài)、動(dòng)態(tài)測(cè)試技術(shù)以及各種形式的評(píng)審技術(shù)。與形式方法相聯(lián)系的程序證明和驗(yàn)證技術(shù)已為許多專家所重視。二、軟件開(kāi)發(fā)環(huán)境需求分析及設(shè)計(jì)工具。主要由文本編輯工具、圖形工具及一致性檢驗(yàn)工具等支持。配置管理工具。對(duì)于不同用戶或不同的硬件配置,一個(gè)系統(tǒng)往往需不同的軟件配置;即使同一軟件也有不同的版本;加上軟件產(chǎn)品的修改需要進(jìn)行嚴(yán)格的管理等原因,軟件的配置管理已成為軟件生產(chǎn)管理的重要課題。二、軟件開(kāi)發(fā)環(huán)境軟件開(kāi)發(fā)環(huán)境的發(fā)展方向是集成化的軟件工程環(huán)境,即軟件生存周期中各個(gè)階段的開(kāi)發(fā)環(huán)境(工具與支持系統(tǒng))集成為一致的用戶接口,包括制定各種標(biāo)準(zhǔn)接口。以下一些名稱具有相同或類似的含義:軟件開(kāi)發(fā)環(huán)境(SDE)、軟件工程環(huán)境(SEE)、軟件支持環(huán)境(SSE)、項(xiàng)目支持環(huán)境(PSE)、自動(dòng)開(kāi)發(fā)環(huán)境(ADE)、集成化程序設(shè)計(jì)環(huán)境(IPE)、工具盒(Toolbox)、工具箱(Toolkit)。三、計(jì)算機(jī)輔助軟件工程(CASE)CASE是一組工具和方法的集合,用來(lái)輔助軟件開(kāi)發(fā)生命周期各階段進(jìn)行軟件開(kāi)發(fā),它是軟件開(kāi)發(fā)管理、軟件開(kāi)發(fā)方法、軟件開(kāi)發(fā)環(huán)境和軟件工具等方面研究和發(fā)展的產(chǎn)物,CASE把軟件開(kāi)發(fā)技術(shù)、軟件工具和軟件開(kāi)發(fā)方法集成到一個(gè)統(tǒng)一的框架中,并且吸取了計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、軟件工程、操作系統(tǒng)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)和許多其他計(jì)算機(jī)領(lǐng)域的原理和技術(shù)。三、計(jì)算機(jī)輔助軟件工程(CASE)因而,從產(chǎn)業(yè)角度講,CASE是種類繁多的軟件開(kāi)發(fā)和系統(tǒng)集成的產(chǎn)品及軟件工具的集合。CASE可以簡(jiǎn)單到單個(gè)工具,它支持某個(gè)特定的軟件工程活動(dòng),或者復(fù)雜到一個(gè)完整的環(huán)境,包含了工具、數(shù)據(jù)庫(kù)、人員、硬件、網(wǎng)絡(luò)、操作系統(tǒng)、標(biāo)準(zhǔn)以及許多其他部件。CASE的構(gòu)造積木塊如圖1.7所示。圖1.7CASE構(gòu)造積木塊三、計(jì)算機(jī)輔助軟件工程(CASE)每個(gè)構(gòu)造積木塊是形成其上一層的基礎(chǔ),而CASE工具位于構(gòu)造積木塊的頂部。環(huán)境體系結(jié)構(gòu)由硬件平臺(tái)和操作系統(tǒng)支持(包括網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)管理軟件)構(gòu)成,鋪設(shè)了CASE的基石。但是,CASE環(huán)境本身要求其他的構(gòu)造積木塊。一組可移植服務(wù)提供了CASE工具及其集成框架與環(huán)境體系結(jié)構(gòu)間的連接橋梁。三、計(jì)算機(jī)輔助

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論