第一章 軟件工程概述_第1頁(yè)
第一章 軟件工程概述_第2頁(yè)
第一章 軟件工程概述_第3頁(yè)
第一章 軟件工程概述_第4頁(yè)
第一章 軟件工程概述_第5頁(yè)
已閱讀5頁(yè),還剩46頁(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)介

軟件工程基礎(chǔ)

主講:章順京

蘭州城市學(xué)院

2016年3月課程概述課程性質(zhì)本課程為專業(yè)必修課課程目標(biāo)通過(guò)本課程的學(xué)習(xí),使學(xué)生初步建立工程化意識(shí),學(xué)會(huì)在軟件開發(fā)中應(yīng)用工程化思想(包括技術(shù)、方法與環(huán)境),為今后實(shí)際工程中能夠進(jìn)行系統(tǒng)分析與設(shè)計(jì)奠定良好的基礎(chǔ)。重點(diǎn)要求學(xué)生學(xué)會(huì)分析問(wèn)題的思想和方法。教學(xué)計(jì)劃及考核形式72學(xué)時(shí);考試課,實(shí)行期末考試。主要參考書[1]胡飛等,軟件工程基礎(chǔ)(第二版),北京,高等教育出版社,2008年。

[2]張海藩,軟件工程導(dǎo)論(第四版),北京,清華大學(xué)出版社,2003年。[3]鄭人杰、殷人昆、陶永雷,實(shí)用軟件工程(第二版),北京:清華大學(xué)出版社,1997年。[4]PfleegershariLawrence,軟件工程—理論與實(shí)踐(第二版、影印版)高等教育出版社,2001年。[5](美)JoeyF.George,DineshBatra,Joseph、S.Valacich,JeffreyA.Hoffer,梁金昆譯,面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),北京:清華大學(xué)出版社,2003年。

計(jì)算機(jī)軟件學(xué)科程序設(shè)計(jì)語(yǔ)言數(shù)據(jù)結(jié)構(gòu)人機(jī)交互程序設(shè)計(jì)方法論軟件工程計(jì)算機(jī)理論計(jì)算機(jī)軟件計(jì)算機(jī)體系結(jié)構(gòu)計(jì)算機(jī)硬件計(jì)算機(jī)應(yīng)用計(jì)算機(jī)科學(xué)與技術(shù)基礎(chǔ)高級(jí)第一章軟件工程技術(shù)概述什么是軟件?一段可以運(yùn)行的程序代碼?能完成特定功能的一段可以運(yùn)行的程序代碼?軟件=程序+數(shù)據(jù)+文檔程序=?軟件發(fā)展簡(jiǎn)史軟件的特點(diǎn)軟件是被開發(fā)或設(shè)計(jì)的,而不是傳統(tǒng)意義上被制造的,設(shè)計(jì)和維護(hù)費(fèi)用大,但生產(chǎn)容易軟件不會(huì)”磨損”,但會(huì)被淘汰,設(shè)計(jì)和修改該容易,但測(cè)試難軟件產(chǎn)業(yè)逐步走向基于構(gòu)件的組裝,但還是定制的一般產(chǎn)品的時(shí)間與質(zhì)量軟件產(chǎn)品的時(shí)間與質(zhì)量軟件危機(jī)軟件危機(jī)爆發(fā)于20世紀(jì)60年代末期,雖然人們一直致力于發(fā)現(xiàn)解決危機(jī)的方法,但是軟件危機(jī)至今依然困繞著我們,并沒有一種靈丹妙藥可以完全治愈這種病痛。軟件危機(jī)的主要表現(xiàn)軟件開發(fā)的進(jìn)度難以控制,經(jīng)常出現(xiàn)經(jīng)費(fèi)超預(yù)算、完成期限一再拖延的現(xiàn)象軟件需求在開發(fā)初期不明確,導(dǎo)致矛盾在后期集中暴露,從而對(duì)整個(gè)開發(fā)過(guò)程帶來(lái)災(zāi)難性的后果由于缺乏完整規(guī)范的資料,加之軟件測(cè)試不充分,從而造成軟件質(zhì)量低下,運(yùn)行中出現(xiàn)大量問(wèn)題軟件危機(jī)的危害在1985年到1987年之間,至少有2個(gè)病人是死于醫(yī)療線性加速器的過(guò)量輻射,其原因是控制軟件中的一個(gè)故障。1965年至1970年,美國(guó)范登堡基地發(fā)射火箭多次失敗,絕大部分出于控制系統(tǒng)的故障,一個(gè)小小的疏漏往往會(huì)造成上千萬(wàn)美元的損失。由此可見,軟件錯(cuò)誤的后果是十分嚴(yán)重的,醫(yī)療軟件的錯(cuò)誤可能造成病人的生命危險(xiǎn),銀行系統(tǒng)的錯(cuò)誤會(huì)使金融混亂,航管系統(tǒng)的錯(cuò)誤會(huì)造成飛機(jī)失事等等。軟件工程的定義軟件工程(SoftwareEngineering)是在克服

“軟件危機(jī)”的過(guò)程中逐漸形成與發(fā)展的。

1983年,IEEE(InstituteofElectrical&ElectronicEngineers,電氣與電子工程師協(xié)會(huì))給出的定義:

軟件工程是研究和應(yīng)用如何以系統(tǒng)化的、規(guī)范的、可度量的方法去開發(fā)、運(yùn)行和維護(hù)軟件,即把工程化應(yīng)用到軟件上。軟件工程的目標(biāo)組織實(shí)施軟件工程項(xiàng)目是為了獲得項(xiàng)目的成功,即達(dá)到以下幾個(gè)主要的目標(biāo):付出較低的開發(fā)成本達(dá)到預(yù)期的軟件功能取得較好的軟件性能使開發(fā)的軟件易于移植需要較低的維護(hù)費(fèi)用能按時(shí)完成開發(fā)工作,及時(shí)交付使用概括地說(shuō):優(yōu)質(zhì)、高效。即質(zhì)量高、效率高軟件工程的三要素軟件的生命周期一個(gè)軟件從設(shè)計(jì)、生產(chǎn)、使用、維護(hù)到淘汰的過(guò)程,也就是從問(wèn)世的滅亡的過(guò)程,稱為該軟件的生命周期軟件生存周期是指軟件產(chǎn)品從考慮其概念開始到該軟件產(chǎn)品交付使用,直至最終退役為止的整個(gè)過(guò)程,一般包括計(jì)劃、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、集成、交付、維護(hù)等階段軟件的發(fā)展階段需求分析階段描述和定義階段設(shè)計(jì)階段實(shí)現(xiàn)階段測(cè)試階段維護(hù)階段產(chǎn)品淘汰其他軟件工程技術(shù)程序設(shè)計(jì)語(yǔ)言機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言、面向?qū)ο蟮恼Z(yǔ)言、面向代理的語(yǔ)言過(guò)程管理風(fēng)險(xiǎn)評(píng)估團(tuán)隊(duì)管理文檔標(biāo)準(zhǔn)人機(jī)界面軟件結(jié)構(gòu)軟件生命周期模型1——構(gòu)造-修復(fù)模型軟件生命周期模型1——構(gòu)造-修復(fù)模型構(gòu)造-修復(fù)模型對(duì)任何規(guī)模的開發(fā)來(lái)說(shuō)都是不能令人滿意的,其主要問(wèn)題在于:(1)缺少規(guī)劃和設(shè)計(jì)環(huán)節(jié),軟件的結(jié)構(gòu)隨著不斷的修改越來(lái)越糟,導(dǎo)致無(wú)法繼續(xù)修改;(2)忽略需求環(huán)節(jié),給軟件開發(fā)帶來(lái)很大的風(fēng)險(xiǎn);(3)沒有考慮測(cè)試和程序的可維護(hù)性,也沒有任何文檔,軟件的維護(hù)十分困難軟件生命周期模型2——瀑布模型每個(gè)開發(fā)階段均應(yīng)具有以下特征:從上一階段接受本階段工作的對(duì)象,作為輸入;對(duì)上述輸入實(shí)施本階段的活動(dòng);給出本階段的工作成果,作為輸出傳入下一階段;對(duì)本階段工作進(jìn)行評(píng)審,若本階段工作得到確認(rèn),則繼續(xù)下階段工作,否則返回前一階段,甚至更前階段。軟件生命周期模型2——瀑布模型瀑布模型的優(yōu)點(diǎn)采用規(guī)范的方法嚴(yán)格規(guī)定每個(gè)階段提交的文檔要求每個(gè)階段交出的產(chǎn)品必須經(jīng)過(guò)驗(yàn)證。瀑布模型存在的問(wèn)題各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量;由于開發(fā)模型是線性的,用戶只有等到整個(gè)過(guò)程的末期才能見到開發(fā)成果,從而增加了開發(fā)的風(fēng)險(xiǎn);早期的錯(cuò)誤可能要等到開發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),進(jìn)而帶來(lái)嚴(yán)重的后果。

軟件生命周期模型3——快速原型模型快速原型模型的特點(diǎn)快速原型方法可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來(lái)的開發(fā)風(fēng)險(xiǎn),具有顯著的效果??焖僭偷年P(guān)鍵在于盡可能快速地建造出軟件原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。軟件生命周期模型4——增量模型增量模型2增量模型的優(yōu)點(diǎn)增量模型在各個(gè)階段并不交付一個(gè)可運(yùn)行的完整產(chǎn)品,而是交付滿足客戶需求的一個(gè)子集的可運(yùn)行產(chǎn)品。整個(gè)產(chǎn)品被分解成若干個(gè)構(gòu)件,開發(fā)人員逐個(gè)構(gòu)件地交付產(chǎn)品,這樣做的好處是軟件開發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險(xiǎn)增量模型的缺陷(1)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開放式的體系結(jié)構(gòu)。

(2)在開發(fā)過(guò)程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型(構(gòu)建-修復(fù)模型),從而使軟件過(guò)程的控制失去整體性。軟件生命周期模型5——螺旋模型1988年,BarryBoehm正式發(fā)表了軟件系統(tǒng)開發(fā)的"螺旋模型",它將瀑布模型和快速原型模型結(jié)合起來(lái),強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。完整的螺旋模型螺旋模型沿著螺線進(jìn)行若干次迭代,圖中的四個(gè)象限代表了以下活動(dòng):(1)制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件;(2)風(fēng)險(xiǎn)分析:分析評(píng)估所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);(3)實(shí)施工程:實(shí)施軟件開發(fā)和驗(yàn)證;(4)客戶評(píng)估:評(píng)價(jià)開發(fā)工作,提出修正建議,制定下一步計(jì)劃螺旋模型的優(yōu)點(diǎn)支持軟件重用更加廣泛的測(cè)試無(wú)縫地過(guò)渡到維護(hù)階段螺旋模型的不足螺旋模型由風(fēng)險(xiǎn)驅(qū)動(dòng),強(qiáng)調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質(zhì)量作為特殊目標(biāo)融入產(chǎn)品開發(fā)之中。但是,螺旋模型也有一定的限制條件,具體如下:(1)螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求客戶接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的,因此,這種模型往往適應(yīng)于內(nèi)部的大型軟件開發(fā)。(2)如果執(zhí)行風(fēng)險(xiǎn)分析將大大影響項(xiàng)目的利潤(rùn),那么進(jìn)行風(fēng)險(xiǎn)分析毫無(wú)意義,因此,螺旋模型只適合于大規(guī)模軟件項(xiàng)目。(3)軟件開發(fā)人員應(yīng)該擅長(zhǎng)尋找可能的風(fēng)險(xiǎn),準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會(huì)帶來(lái)更大的風(fēng)險(xiǎn)。軟件生命周期模型6——噴泉模型主要用于支持面向?qū)ο箝_發(fā)過(guò)程體現(xiàn)了軟件創(chuàng)建所固有的迭代和無(wú)間隙的特征。各種模型的比較參見教材p38,表2-1軟件開發(fā)過(guò)程1——制定計(jì)劃確定要開發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求完成該軟件任務(wù)的可行性研究估計(jì)可利用的資源(計(jì)算機(jī)硬件,軟件,人力等)、成本、效益、開發(fā)進(jìn)度制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃,連同可行性研究報(bào)告,提交管理部門審查軟件開發(fā)過(guò)程2——需求分析和定義對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義編寫軟件需求說(shuō)明書或系統(tǒng)功能說(shuō)明書及初步的系統(tǒng)用戶手冊(cè)提交管理機(jī)構(gòu)評(píng)審軟件開發(fā)過(guò)程3——軟件設(shè)計(jì)概要設(shè)計(jì)把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對(duì)應(yīng)詳細(xì)設(shè)計(jì)對(duì)每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)編寫設(shè)計(jì)說(shuō)明書,提交評(píng)審軟件開發(fā)過(guò)程4——程序編寫(編碼實(shí)現(xiàn))把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的軟件開發(fā)過(guò)程5——測(cè)試與交付單元測(cè)試查找各模塊在功能和結(jié)構(gòu)上存在的問(wèn)題并加以糾正組裝測(cè)試(集成測(cè)試)將已測(cè)試過(guò)的模塊按一定順序組裝起來(lái)按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測(cè)試,決定已開發(fā)的軟件是否合格,能否交付用戶使用軟件開發(fā)過(guò)程6——維護(hù)改正性維護(hù)運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正適應(yīng)性維護(hù)為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護(hù)為了增強(qiáng)軟件的功能需做變更軟件的典型錯(cuò)誤觀點(diǎn)(一)我們擁有一套講述如何開發(fā)軟件的書籍,書中充滿了標(biāo)準(zhǔn)與示例,可以幫助我們解決軟件開發(fā)中遇到的任何問(wèn)題。

客觀事實(shí)好的參考書無(wú)疑能指導(dǎo)我們的工作,充分利用書籍中的方法、技術(shù)和技巧,可以有效地解決軟件開發(fā)中大量常見的問(wèn)題。但實(shí)踐者并不能依賴于書籍,因?yàn)樵诂F(xiàn)實(shí)工作中,由于條件千差萬(wàn)別,即使是相當(dāng)成熟的軟件工程規(guī)范,常常也無(wú)法套用。另外,軟件技術(shù)日新月異,沒有哪一種軟件標(biāo)準(zhǔn)能長(zhǎng)盛不衰。軟件的典型錯(cuò)誤觀點(diǎn)(二)如果我們已經(jīng)落后于計(jì)劃,可以增加更多的程序員來(lái)趕上進(jìn)度。

客觀事實(shí)軟件開發(fā)不同于傳統(tǒng)的機(jī)械制造,人多不見得力量大。如果給落后于計(jì)劃的項(xiàng)目增添新人,可能會(huì)更加延誤項(xiàng)目。因?yàn)樾氯藭?huì)產(chǎn)生很多新的錯(cuò)誤,使項(xiàng)目混亂,并且原有的開發(fā)人員向新人解釋工作和交流思想都要花費(fèi)時(shí)間,使實(shí)際的開發(fā)時(shí)間更少,所以制定恰如其分的項(xiàng)目計(jì)劃是很重要的。軟件的典型錯(cuò)誤觀點(diǎn)(三)項(xiàng)目需求總是在不斷變化,但這些變化能夠很容易地滿足,因?yàn)檐浖庆`活的。

客觀事實(shí)軟件需求確實(shí)是經(jīng)常變化的,但這些變化產(chǎn)生的影響會(huì)隨著其引入時(shí)間的不同而不同。對(duì)需求把握得越準(zhǔn)確,軟件的修修補(bǔ)補(bǔ)就越少。有些需求在一開始時(shí)很難確定,在開發(fā)過(guò)程中要不斷地加以改正。軟件修改越早代價(jià)越少,修改越晚代價(jià)越大,就跟治病一樣道理。軟件的典型錯(cuò)誤觀點(diǎn)(四)有了對(duì)目標(biāo)的一般描述就足以開始寫程序了,我們以后可以再補(bǔ)充細(xì)節(jié)。

客觀事實(shí)不完善的系統(tǒng)定義是軟件項(xiàng)目失敗的主要原因。關(guān)于待開發(fā)軟件的應(yīng)用領(lǐng)域、功能、性能、接口、設(shè)計(jì)約束和標(biāo)準(zhǔn)等需要詳細(xì)的描述,而這些只有通過(guò)用戶和開發(fā)人員之間的通信交流才能確定。越早開始寫程序,就要花越長(zhǎng)時(shí)間才能完成它。軟件的典型錯(cuò)誤觀點(diǎn)(五)一旦我們寫出了程序并使其正常運(yùn)行,我們的工作就結(jié)束了。人們有時(shí)認(rèn)為,只有差的軟件產(chǎn)品才需要維護(hù)。

客觀事實(shí)從如圖1.12所示的統(tǒng)計(jì)數(shù)據(jù)來(lái)看,軟件投入的50%~70%是花費(fèi)在交付給用戶之后。品質(zhì)差的

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論