第五章考試要點
自從1968年首次提出軟件工程一詞以來,軟件工程已成為計算機軟件的一個重要分支和研究方向。軟件工程是指應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、降低軟件成本。
一、軟件工程基本概念
早期的軟件主要指程序。程序的開發(fā)采用個體工作方式,開發(fā)工作主要依賴于開發(fā)人員的個人技能和程序設(shè)計技巧。當(dāng)時的軟件通常缺少與程序有關(guān)的文檔,軟件開發(fā)的實際成本和進度往往與預(yù)計的相差甚遠,軟件的質(zhì)量得不到保證,開發(fā)出來的軟件常常不能使用戶滿意。隨著計算機應(yīng)用的需求不斷增長,軟件的規(guī)模也越來越大,然而軟件開發(fā)的生產(chǎn)率遠遠跟不上計算機應(yīng)用的迅速增長。此外,由于軟件開發(fā)時缺少好的方法指導(dǎo)和工具輔助,同時又缺少有關(guān)的文檔,使得大量已有的軟件難以維護。上述這些問題嚴重地阻礙了軟件的發(fā)展,20世紀60年代中期,人們把上述軟件開發(fā)和維護中的各種問題稱為“軟件危機”。1968年在德國召開的NATO會議上,首次提出了“軟件工程”一詞,希望用工程化的原則和方法來克服軟件危機。在此以后,人們開展了軟件開發(fā)模型、開發(fā)方法、工具與環(huán)境的研究,提出了瀑布模型、演化模型、螺旋模型、噴泉模型等開發(fā)模型,出現(xiàn)了面向數(shù)據(jù)流方法、面向數(shù)據(jù)結(jié)構(gòu)的方法、面向?qū)ο蠓椒ǖ乳_發(fā)方法,以及一批CASE(computer aided software engineering)工具和環(huán)境。
(一) 軟件生存周期
如同人的一生要經(jīng)歷嬰兒期、少年期、老年期直至死亡這樣一個全過程一樣,任何一個軟件產(chǎn)品或軟件系統(tǒng)也都要經(jīng)歷軟件定義、軟件開發(fā)、軟件維護直至被淘汰這樣一個全過程,我們把軟件的這一全過程稱為軟件生存周期。軟件定義、軟件開發(fā)、軟件維護等階段還可分為若干個階段,每個階段相對獨立又彼此有聯(lián)系,上一階段的工作結(jié)果是下一階段工作的依據(jù),下一階段是上一階段的進化,它更接近于問題的解。
1.軟件定義
軟件定義階段主要解決的問題是待開發(fā)的軟件要“做什么”,也就是要確定軟件的處理對象,軟件與外界的接口,軟件的功能和性能,界面以及有關(guān)的約束和限制。軟件定義階段通常可分成系統(tǒng)分析、軟件項目計劃、需求分析等階段。
。1)系統(tǒng)分析這里講的系統(tǒng)是指計算機系統(tǒng),包括計算機硬件、軟件和使用計算機的人。系統(tǒng)分析的任務(wù)是確定待開發(fā)軟件的總體要求和適用范圍,以及與之有關(guān)的硬件、支撐軟件的要求。系統(tǒng)分析階段的參加人員有用戶、項目負責(zé)人、系統(tǒng)分析員。該階段產(chǎn)生的文檔可合并在軟件項目計劃階段的文檔(項目計劃書)中。
。2)軟件項目計劃軟件項目計劃的任務(wù)是確定待開發(fā)軟件的目標,對其進行可行性分析,并對資源分配、進度安排等做出合理的計劃。軟件項目計劃階段的參加人員有用戶、項目負責(zé)人、系統(tǒng)分析員。該階段所產(chǎn)生的文檔有可行性分析報告、項目計劃書。
。3)需求分析需求分析的任務(wù)是確定待開發(fā)軟件的功能、性能、數(shù)據(jù)、界面等要求,從而確定系統(tǒng)的邏輯模型。需求分析階段的參加人員有用戶、項目負責(zé)人系統(tǒng)分析員。該階段產(chǎn)生的文檔有需求規(guī)約(requirements specification),習(xí)慣上稱它為需求規(guī)格說明書。
2.軟件開發(fā)
軟件開發(fā)階段主要解決的問題是該軟件“怎么做”,包括數(shù)據(jù)結(jié)構(gòu)和軟件結(jié)構(gòu)的設(shè)計,算法設(shè)計,編寫程序,測試,最后得到可交付使用的軟件。軟件開發(fā)階段通常可分成軟件設(shè)計、編碼、軟件測試等階段。
。1)軟件設(shè)計軟件設(shè)計通常還可分成概要設(shè)計和詳細設(shè)計。概要設(shè)計的任務(wù)是模塊分解,確定軟件的結(jié)構(gòu),模塊的功能和模塊間的接口,以及全局數(shù)據(jù)結(jié)構(gòu)的設(shè)計。詳細設(shè)計的任務(wù)是設(shè)計每個模塊的實現(xiàn)細節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的設(shè)計。概要設(shè)計階段的參加人員有系統(tǒng)分析員和高級程序員,詳細設(shè)計階段的參加人員有高級程序員和程序員。設(shè)計階段產(chǎn)生的文檔有設(shè)計規(guī)約(design specification),也稱為設(shè)計說明書,它也可分為概要設(shè)計說明書和詳細設(shè)計說明書。根據(jù)需要還可產(chǎn)生數(shù)據(jù)說明書和模塊開發(fā)卷宗。
(2)編碼編碼的任務(wù)是用某種程序語言為每個模塊編寫程序。編碼階段的參加人員有高級程序員和程序員,產(chǎn)生的文檔有程序清單。
。3)軟件測試軟件測試的任務(wù)是發(fā)現(xiàn)軟件中的錯誤,并加以糾正。軟件測試階段的參加人員通常由另一部門(或單位)的高級程序員或系統(tǒng)分析員承擔(dān),該階段產(chǎn)生的文檔有軟件測試計劃和軟件測試報告。
3.軟件維護
軟件開發(fā)階段結(jié)束后,軟件即可交付使用。軟件的使用通常要持續(xù)幾年甚至幾十年,在整個使用期間,都可能因為某種原因而修改軟件,這便是軟件維護。引起修改軟件的原因主要有三種:一是在軟件運行過程中發(fā)現(xiàn)了軟件中隱藏的錯誤而修改軟件;二是為了適應(yīng)變化了的環(huán)境而修改軟件;三是為修改或擴充原有軟件的功能而修改軟件。因此軟件維護的任務(wù)就是為使軟件適應(yīng)外界環(huán)境的變化、實現(xiàn)功能的擴充和質(zhì)量的改善而修改軟件。軟件維護階段的參加人員是維護人員,該階段產(chǎn)生的文檔有維護計劃和維護報告。目前,軟件生存周期各階段的劃分尚不統(tǒng)一,有的分得粗些,有的分得細些。許多場合軟件開發(fā)階段都是從需求分析階段開始的。本書中,我們也將需求分析看作為軟件開發(fā)的開始階段。
希望與更多計算機等級考試的網(wǎng)友交流,請進入計算機等級考試論壇
更多信息請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |