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