最新国产在线不卡AV,国产又爽又黄的视频免费看,精品综合久久久久久97,日韩欧美高清中文字幕免费一区二区

            科普

            全國計算機(jī)四級考試復(fù)習(xí)綱要-第五章 電腦知識

            電腦知識小雪供稿

              全國計算機(jī)等級考試考試采用全國統(tǒng)一命題,統(tǒng)一考試的形式。每年安排三次考試。一般安排在3月、9月和12月考試,其中3月份和9月份考試開考全部級別全部科目,12月份考試開考一、二級的全部科目。下面9252兒童網(wǎng)小編給大家到來了全國計算機(jī)四級考試第五章考試要點,希望能幫到大家!

              

              全國計算機(jī)四級考試第五章考試要點

              自從1968年首次提出軟件工程一詞以來,軟件工程已成為計算機(jī)軟件的一個重要分支和研究方向。軟件工程是指應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來解決軟件問題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、降低軟件成本。

              一、軟件工程基本概念

              早期的軟件主要指程序。程序的開發(fā)采用個體工作方式,開發(fā)工作主要依賴于開發(fā)人員的個人技能和程序設(shè)計技巧。當(dāng)時的軟件通常缺少與程序有關(guān)的文檔,軟件開發(fā)的實際成本和進(jìn)度往往與預(yù)計的相差甚遠(yuǎn),軟件的質(zhì)量得不到保證,開發(fā)出來的軟件常常不能使用戶滿意。隨著計算機(jī)應(yīng)用的需求不斷增長,軟件的規(guī)模也越來越大,然而軟件開發(fā)的生產(chǎn)率遠(yuǎn)遠(yuǎn)跟不上計算機(jī)應(yīng)用的迅速增長。此外,由于軟件開發(fā)時缺少好的方法指導(dǎo)和工具輔助,同時又缺少有關(guān)的文檔,使得大量已有的軟件難以維護(hù)。上述這些問題嚴(yán)重地阻礙了軟件的發(fā)展,20世紀(jì)60年代中期,人們把上述軟件開發(fā)和維護(hù)中的各種問題稱為“軟件危機(jī)”。1968年在德國召開的NATO會議上,首次提出了“軟件工程”一詞,希望用工程化的原則和方法來克服軟件危機(jī)。在此以后,人們開展了軟件開發(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ā)、軟件維護(hù)直至被淘汰這樣一個全過程,我們把軟件的這一全過程稱為軟件生存周期。軟件定義、軟件開發(fā)、軟件維護(hù)等階段還可分為若干個階段,每個階段相對獨立又彼此有聯(lián)系,上一階段的工作結(jié)果是下一階段工作的依據(jù),下一階段是上一階段的進(jìn)化,它更接近于問題的解。

              1.軟件定義

              軟件定義階段主要解決的問題是待開發(fā)的軟件要“做什么”,也就是要確定軟件的處理對象,軟件與外界的接口,軟件的功能和性能,界面以及有關(guān)的約束和限制。軟件定義階段通??煞殖上到y(tǒng)分析、軟件項目計劃、需求分析等階段。

              (1)系統(tǒng)分析這里講的系統(tǒng)是指計算機(jī)系統(tǒng),包括計算機(jī)硬件、軟件和使用計算機(jī)的人。系統(tǒng)分析的任務(wù)是確定待開發(fā)軟件的總體要求和適用范圍,以及與之有關(guān)的硬件、支撐軟件的要求。系統(tǒng)分析階段的參加人員有用戶、項目負(fù)責(zé)人、系統(tǒng)分析員。該階段產(chǎn)生的文檔可合并在軟件項目計劃階段的文檔(項目計劃書)中。

              (2)軟件項目計劃軟件項目計劃的任務(wù)是確定待開發(fā)軟件的目標(biāo),對其進(jìn)行可行性分析,并對資源分配、進(jìn)度安排等做出合理的計劃。軟件項目計劃階段的參加人員有用戶、項目負(fù)責(zé)人、系統(tǒng)分析員。該階段所產(chǎn)生的文檔有可行性分析報告、項目計劃書。

              (3)需求分析需求分析的任務(wù)是確定待開發(fā)軟件的功能、性能、數(shù)據(jù)、界面等要求,從而確定系統(tǒng)的邏輯模型。需求分析階段的參加人員有用戶、項目負(fù)責(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è)計和詳細(xì)設(shè)計。概要設(shè)計的任務(wù)是模塊分解,確定軟件的結(jié)構(gòu),模塊的功能和模塊間的接口,以及全局?jǐn)?shù)據(jù)結(jié)構(gòu)的設(shè)計。詳細(xì)設(shè)計的任務(wù)是設(shè)計每個模塊的實現(xiàn)細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的設(shè)計。概要設(shè)計階段的參加人員有系統(tǒng)分析員和高級程序員,詳細(xì)設(shè)計階段的參加人員有高級程序員和程序員。設(shè)計階段產(chǎn)生的文檔有設(shè)計規(guī)約(design specification),也稱為設(shè)計說明書,它也可分為概要設(shè)計說明書和詳細(xì)設(shè)計說明書。根據(jù)需要還可產(chǎn)生數(shù)據(jù)說明書和模塊開發(fā)卷宗。

              (2)編碼編碼的任務(wù)是用某種程序語言為每個模塊編寫程序。編碼階段的參加人員有高級程序員和程序員,產(chǎn)生的文檔有程序清單。

              (3)軟件測試軟件測試的任務(wù)是發(fā)現(xiàn)軟件中的錯誤,并加以糾正。軟件測試階段的參加人員通常由另一部門(或單位)的高級程序員或系統(tǒng)分析員承擔(dān),該階段產(chǎn)生的文檔有軟件測試計劃和軟件測試報告。

              3.軟件維護(hù)

              軟件開發(fā)階段結(jié)束后,軟件即可交付使用。軟件的使用通常要持續(xù)幾年甚至幾十年,在整個使用期間,都可能因為某種原因而修改軟件,這便是軟件維護(hù)。引起修改軟件的原因主要有三種:一是在軟件運(yùn)行過程中發(fā)現(xiàn)了軟件中隱藏的錯誤而修改軟件;二是為了適應(yīng)變化了的環(huán)境而修改軟件;三是為修改或擴(kuò)充原有軟件的功能而修改軟件。因此軟件維護(hù)的任務(wù)就是為使軟件適應(yīng)外界環(huán)境的變化、實現(xiàn)功能的擴(kuò)充和質(zhì)量的改善而修改軟件。軟件維護(hù)階段的參加人員是維護(hù)人員,該階段產(chǎn)生的文檔有維護(hù)計劃和維護(hù)報告。目前,軟件生存周期各階段的劃分尚不統(tǒng)一,有的分得粗些,有的分得細(xì)些。許多場合軟件開發(fā)階段都是從需求分析階段開始的。本書中,我們也將需求分析看作為軟件開發(fā)的開始階段。

              (二) 軟件開發(fā)模型

              為了指導(dǎo)軟件的開發(fā),用不同的方式將軟件生存周期中的所有開發(fā)活動組織起來,形成不同的軟件開發(fā)模型。常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型等。瀑布模型如下圖所示,它是1970年由W.Royce提出的。該模型給出了軟件生存周期各階段的固定順序,上一階段完成后才能進(jìn)入到下一階段,整個過程就像流水下瀉,故稱之為瀑布模型。圖中的虛線部分表示在某一階段發(fā)現(xiàn)錯誤時,其錯誤可能是由上一階段造成的,因此開發(fā)過程可能要反饋到上一階段。在瀑布模型中,各階段結(jié)束后,都要進(jìn)行嚴(yán)格的評審。

              (三) 軟件開發(fā)方法

              軟件開發(fā)過程模型規(guī)定軟件開發(fā)活動的組合應(yīng)用方式,要保證開發(fā)活動的高質(zhì)量,還需要有相應(yīng)的軟件開發(fā)方法作為技術(shù)支持。近10年來,軟件工作者研制出了許多工程化的軟件開發(fā)方法,例如70年代初提出的用于編寫程序的結(jié)構(gòu)化程序設(shè)計方法,確實起到了提高效率,減少錯誤的效果。但是70年代中期,軟件工作者認(rèn)識到編寫程序僅僅是軟件開發(fā)的一個環(huán)節(jié),而合理地建立系統(tǒng)結(jié)構(gòu)比編定程序更為重要。所以研究的重點前移到設(shè)計階段,出現(xiàn)了設(shè)計階段的結(jié)構(gòu)化設(shè)計(SD)方法和JACKSON等方法,到了70年代后期,人們又發(fā)現(xiàn)事先對用戶的要求進(jìn)行分析更為重要,故又把重點前移到分析階段。出現(xiàn)了用于分析階段的結(jié)構(gòu)化分析(SA)方法、結(jié)構(gòu)化分析與設(shè)計技術(shù)(SADT)等。隨著計算機(jī)技術(shù)的迅速發(fā)展,在80年代初期的實時、并發(fā)和網(wǎng)絡(luò)等軟件的開發(fā)過程中,特別是在第五代計算機(jī)研究工作中,又提出了面向?qū)ο蟮脑O(shè)計方法?,F(xiàn)在流行的方法有多種,它們的適用范圍也各不相同。有的適用于一般的數(shù)據(jù)處理系統(tǒng),如SA、SD(兩者統(tǒng)稱為結(jié)構(gòu)化分析與設(shè)計方法,即Yourdon方法)、JACKSON方法;有的適用于大型的復(fù)雜系統(tǒng),如SADT技術(shù);有的適用于實時事務(wù)處理系統(tǒng),如FSM方法;有的適用于并發(fā)軟件系統(tǒng),如PETRI網(wǎng)方法;作為90年代代表作的面向?qū)ο蠓椒?,其?yīng)用已幾乎遍布各個領(lǐng)域。這些方法除了適用范圍不同外,方法形成的基礎(chǔ)、處理規(guī)則和對所開發(fā)軟件風(fēng)格的要求等都各有側(cè)重。用什么方法來說明用戶的要求、用什么方法來設(shè)計軟件以及用什么方法對軟件進(jìn)行測試和維護(hù),直接影響所開發(fā)軟件的質(zhì)量。

              (四) 軟件開發(fā)工具

              早期的軟件開發(fā)除了一般的程序設(shè)計語言外尚缺少工具的支持,致使編程工作量大,質(zhì)量和進(jìn)度卻難以保證,導(dǎo)致人們將很多的精力和時間花費在程序的編制和調(diào)試上;相比之下,在更重要的軟件的需求和設(shè)計上反而得不到必要的精力和時間投入。軟件開發(fā)工具的發(fā)展促進(jìn)了軟件開發(fā)的高速度和高質(zhì)量。工具的發(fā)展是從單項工具的開發(fā)逐步走向集成的工具發(fā)展的。同時,軟件開發(fā)方法的有效應(yīng)用也必須得到相應(yīng)工具的支持,否則方法將難以有效的實施。工具的完善和發(fā)展將促進(jìn)軟件開發(fā)的進(jìn)步和完善。原型化方法的實施基礎(chǔ)就是得到了開發(fā)工具的支持。快速原型化之所以能夠?qū)崿F(xiàn)的基礎(chǔ)就是原型化人員在快速建模時得到了工具的支持,否則原型化方法是無法實施的。

              (五) 軟件開發(fā)環(huán)境

              軟件工程環(huán)境或稱軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的軟件工具集合。這些軟件工具按照一定的方法或模式組合起來,并能支持軟件開發(fā)生命周期的各個階段和各項任務(wù)的完成。CASE,即計算機(jī)輔助軟件工程環(huán)境是當(dāng)前軟件開發(fā)環(huán)境中富于特色的研究工作和發(fā)展方向,它的成功將最大限度地降低軟件工程的技術(shù)難度并使軟件開發(fā)的質(zhì)量得到保證。

              二、結(jié)構(gòu)化生命周期方法

              結(jié)構(gòu)化分析與設(shè)計方法在軟件工程中應(yīng)用已很普遍,并且越來越成熟。有許多大、中型項目都采用了這種方法進(jìn)行開發(fā)并取得了顯著的成果。按B.W.Boehm的描述,瀑布模型的的軟件生命周期可劃分七個階段:系統(tǒng)需求分析、軟件需求分析、概要分析、詳細(xì)設(shè)計、編碼、測試和運(yùn)行維護(hù)。

              (一) 系統(tǒng)需求

              “系統(tǒng)需求”包括:問題定義、可行性研究及軟件計劃。

              1.問題定義

              軟件開發(fā)的第一步就是進(jìn)行問題定義。問題定義階段必須回答的關(guān)鍵問題:“軟件要解決的問題是什么?”如果不知道問題是什么就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最終得出的結(jié)果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的,但是在實踐中它卻可能是最常被忽視的一個步驟。這里所說的問題,就是指用戶的基本要求。說得通俗些,問題定義實際上就是了解用戶到底要建立什么系統(tǒng),并確定分析員下一步應(yīng)該做什么。因此,問題定義的來源是用戶。通過問題定義階段的工作,系統(tǒng)分析員應(yīng)該提出關(guān)于問題性質(zhì)、工程目標(biāo)和規(guī)模的書面報告。這一階段的分析員應(yīng)盡可能站在較高的角度去抽象、概括所要干的事情,不要拘泥于問題實現(xiàn)的細(xì)節(jié)。盡管用戶可能總是習(xí)慣于這樣做,但分析員在這一階段必須超脫出來,居高臨下鳥瞰系統(tǒng)的全貌。通過對系統(tǒng)的實際用戶和使用部門負(fù)責(zé)人的訪問調(diào)查,分析員扼要地寫出他對問題的理解,并在使用部門負(fù)責(zé)人的會議上認(rèn)真討論這份書面報告,澄清含糊不清的地方,改正理解不正確的地方,最后得出一份雙方都滿意的文檔。當(dāng)用戶的要求不是很多并且不太復(fù)雜時,一兩個分析員用上一兩天就可以完成這一工作了。但當(dāng)系統(tǒng)比較大,且復(fù)雜時,恐怕就要組織一個問題定義小組,花上一兩個星期,甚至數(shù)月來定義用戶的問題。如果分析員和用戶及使用部門的負(fù)責(zé)人對所要解決的問題取得完全一致的看法,而且使用部門的負(fù)責(zé)人同意開發(fā)工程繼續(xù)進(jìn)行下去,那么開發(fā)工程將轉(zhuǎn)入生命周期的下一個階段———可行性研究。

              2.可行性研究

              并不是所有問題都有簡單明顯的解決辦法,事實上,許多問題不能在預(yù)定的系統(tǒng)規(guī)模之內(nèi)解決。如果問題沒有可行的解,那么花費在這項開發(fā)工程上的任何時間、資源、人力和經(jīng)費和都是無謂的浪費。可行性研究的目的在于用最小的代價確定在問題定義階段所確定的系統(tǒng)的目標(biāo)和規(guī)模是否現(xiàn)實,所確定的問題是否可以解決,系統(tǒng)方案在經(jīng)濟(jì)上、技術(shù)上和操作上是否可以接受??尚行匝芯恐貙θ缦戮唧w方案考慮:

              (1)經(jīng)濟(jì)可行性。估計開發(fā)費用以及新系統(tǒng)可能帶來的收益,將兩者進(jìn)行權(quán)衡,看結(jié)果是否可以接受。

              (2)技術(shù)可行性。對要求的功能、性能以及限制條件進(jìn)行分析,是否能夠做成一個可接受的系統(tǒng)。所考慮的因素通常還應(yīng)包括開發(fā)的風(fēng)險,是否能夠得到需要的軟件和硬件資源和一個熟練的有能力的開發(fā)隊伍,與系統(tǒng)開發(fā)有關(guān)的技術(shù)是否足以支持系統(tǒng)的研制。技術(shù)可行性的估計,需要有經(jīng)驗的人員去完成。

              (3)操作可行性。判斷系統(tǒng)的操作方式在該用戶組織內(nèi)是否可行。分析、設(shè)計人員應(yīng)以新系統(tǒng)的目標(biāo)和作用范圍為依據(jù)提出一種以上的設(shè)計方案,從技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性等方面進(jìn)行比較,并選擇出綜合最優(yōu)的方案。根據(jù)可行性研究結(jié)果要做出的決定是:是否繼續(xù)按預(yù)定目標(biāo)進(jìn)行這項開發(fā)工程,可行性分析人員必須清楚地表明他對這個關(guān)鍵性決定的建議。如果認(rèn)為值得繼續(xù)進(jìn)行這項開發(fā)工程,則應(yīng)提供選擇一種最好的解法并說明理由??尚行苑治鍪窃趩栴}的目標(biāo)和約束之間的一種權(quán)衡,還可能有的結(jié)果則是修改目標(biāo)或放寬約束。

              3.軟件計劃

              分析人員應(yīng)該為推薦的系統(tǒng)草擬一份軟件計劃,其中描述的是為了成功地進(jìn)行一個軟件項目,其所需要做的工作、需要的資源、需要的工作量和費用以及應(yīng)遵循的進(jìn)度安排。軟件計劃由兩項任務(wù)組成:分析和估算。分析是對系統(tǒng)內(nèi)各軟件功能的界限的劃定。估算是指根據(jù)已有的定性數(shù)據(jù)和已往的經(jīng)驗對系統(tǒng)開發(fā)的資源、費用和進(jìn)度進(jìn)行定量的估計。軟件開發(fā)項目的進(jìn)度安排可以從兩種觀點來考慮:一是項目的交付日期已定,負(fù)責(zé)開發(fā)工作的軟件機(jī)構(gòu)被限制在一個規(guī)定的時間范圍內(nèi)分配其工作量。二是項目最后的交付日期由軟件機(jī)構(gòu)自已確定,可以從最佳的利用各種資源的角度出發(fā)來分配工作量,項目最后的交付日期經(jīng)過對軟件各部分仔細(xì)分析后才確定。在多數(shù)項目中,遇到的往往是第一種情況。軟件計劃的閱讀者可以包括軟件主管部門、用戶和技術(shù)人員。所確定的成本與進(jìn)度可供主管部門復(fù)審。它同時也給出了整個軟件生命周期的基本成本預(yù)算的進(jìn)度安排。

              (二) 軟件需求分析

              軟件需求分析工作是軟件生存期中重要的一步,也是決定性的一步。只有通過軟件需求分析,才能把軟件功能和性能的總體概念描述為具體的軟件需求規(guī)格說明,從而奠定軟件開發(fā)的基礎(chǔ)。軟件需求分析工作也是一個不斷認(rèn)識和逐步細(xì)化的過程。該過程將軟件設(shè)計階段所確定的軟件范圍(工作域)逐步細(xì)化到可詳細(xì)定義的程度,并分析出各種不同的軟件元素,然后為這些元素找到可行的解決方法。制定軟件的需求規(guī)格說明不只是軟件開發(fā)人員的事,用戶也起著至關(guān)重要的作用。用戶必須對軟件功能和性能提出初步要求,并澄清一些模糊概念。而軟件分析人員則要認(rèn)真了解用戶的要求,細(xì)致地進(jìn)行調(diào)查分析,把用戶“做什么”的要求最終轉(zhuǎn)換成一個完全的、精細(xì)的軟件邏輯模型并寫出軟件的需求規(guī)格說明,準(zhǔn)確地表達(dá)用戶的要求。

              1.軟件需求分析任務(wù)

              需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié)。定義軟件的其他有效性需求。分析員通過需求分析,逐步細(xì)化對軟件的要求,描述軟件要處理的數(shù)據(jù)域,并給軟件開發(fā)提供一種可轉(zhuǎn)化為數(shù)據(jù)設(shè)計、結(jié)構(gòu)設(shè)計和過程設(shè)計的數(shù)據(jù)與功能表示。在軟件完成后,制定的軟件需求規(guī)格說明還要為評價軟件質(zhì)量提供依據(jù)。需求分析階段研究的對象是軟件項目的用戶要求。需要注意的是,必須理解用戶的各項要求,但又不能全盤接受所有的要求。因為并非所有用戶要求都是合理的。對其中模糊的要求還需要澄清,然后才能決定是否可以采納。對于那些無法實現(xiàn)的要求應(yīng)向用戶做充分的解釋,以求得諒解。準(zhǔn)確地表達(dá)所接受的用戶要求,是需求分析的另一個重要方面。只有經(jīng)過確切描述的軟件需求才能成為軟件設(shè)計基礎(chǔ)。通常軟件開發(fā)項目是要實現(xiàn)目標(biāo)系統(tǒng)的物理模型,即確定待開發(fā)軟件系統(tǒng)的系統(tǒng)元素,并將功能和數(shù)據(jù)結(jié)構(gòu)分配到這些系統(tǒng)元素中。它是軟件實現(xiàn)的基礎(chǔ)。但是目標(biāo)系統(tǒng)的具體物理模型是由它的邏輯模型經(jīng)實例化,即具體到某個業(yè)務(wù)領(lǐng)域而得到的。與物理模型不同,邏輯模型忽視實現(xiàn)機(jī)制與細(xì)節(jié),只描述系統(tǒng)要完成的功能和要處理的數(shù)據(jù)。作為目標(biāo)系統(tǒng)的參考,需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)的“做什么”的問題。

              (1)獲得當(dāng)前系統(tǒng)的物理模型。當(dāng)前系統(tǒng)可能是需要改進(jìn)的某個已在計算機(jī)運(yùn)行的數(shù)據(jù)處理系統(tǒng),也可能是一個人工的數(shù)據(jù)處理過程。在這一步首先分析、理解當(dāng)前系統(tǒng)是如何運(yùn)行的,了解當(dāng)前系統(tǒng)的組織機(jī)構(gòu)、輸入輸出、資源利用情況和日常數(shù)據(jù)處理過程,并用一個具體模型來反映自己對當(dāng)前系統(tǒng)的理解。這一模型應(yīng)客觀地反映現(xiàn)實世界的實際情況。

              (2)抽象出當(dāng)前系統(tǒng)的邏輯模型。在理解當(dāng)前系統(tǒng)“怎樣做”的基礎(chǔ)上,抽取其“做什么”的本質(zhì),從而從當(dāng)前系統(tǒng)的物理模型抽象出當(dāng)前系統(tǒng)的邏輯模型。在物理模型中有許多物理因素,隨著分析工作的深入,有些非本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對物理模型進(jìn)行分析,區(qū)分出本質(zhì)的和非本質(zhì)的因素,去掉那些非本質(zhì)的因素即可獲得反映系統(tǒng)本質(zhì)的邏輯模型。

              (3)建立目標(biāo)系統(tǒng)的邏輯模型。分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,明確目標(biāo)系統(tǒng)統(tǒng)到底要“做什么”,從當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型。(4)為了對目標(biāo)系統(tǒng)做完整的描述,還需要對得到的邏輯模型做一些補(bǔ)充。①說明目標(biāo)系統(tǒng)的用戶界面。根據(jù)目標(biāo)系統(tǒng)所處的應(yīng)用環(huán)境及它與外界環(huán)境的相互關(guān)系,研究所有可能與它發(fā)生聯(lián)系和作用的部分,從而決定人機(jī)界面。②說明至今尚未詳細(xì)考慮的細(xì)節(jié)。這些細(xì)節(jié)包括系統(tǒng)的啟動和結(jié)束、出錯處理、系統(tǒng)的輸入輸出和系統(tǒng)性能方面的需求。③其他。例如系統(tǒng)的其他必須滿足的性能和限制等等。

              2.需求分析的過程

              需求分析階段的工作,可以分成以下4個方面:對問題的識別、分析與綜合、制定規(guī)格說明和評審。

              (1)問題識別首先系統(tǒng)分析人員要研究計劃階段產(chǎn)生的可行性分析報告(如果有的話)和軟件項目實施計劃。主要是從系統(tǒng)的角度來理解軟件并評審用于產(chǎn)生計劃估算的軟件范圍是否恰當(dāng)。確定對目標(biāo)系統(tǒng)的綜合要求,即軟件的需求。并提出這些需求實現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)。也就是要求所開發(fā)軟件做什么,做到什么程度。這些需求包括:

              功能需求:列舉出所開發(fā)軟件在職能上應(yīng)做什么。這是最主要的需求。

              性能需求:給出所開發(fā)軟件的技術(shù)性能指標(biāo),包括存儲容量限制、運(yùn)行時間限制、安全保密性等。

              環(huán)境需求:這是對軟件系統(tǒng)運(yùn)行時所處環(huán)境的要求。例如在硬件方面,采用什么機(jī)型、有什么外部設(shè)備、數(shù)據(jù)通信接口等等。在軟件方面,采用什么支持系統(tǒng)運(yùn)行的系統(tǒng)軟件(指操作系統(tǒng)、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)等)。在使用方面,需要使用部門在制度上、操作人員的技術(shù)水平上應(yīng)具備什么樣的條件等等。

              可靠性需求:各種軟件在運(yùn)行時,失效的影響各不相同。在需求分析時,應(yīng)對所開發(fā)軟件在投入運(yùn)行后不發(fā)生故障的概率,按實際的運(yùn)行環(huán)境提出要求,對于那些重要的軟件,或是運(yùn)行失效會造成嚴(yán)重后果的軟件,應(yīng)當(dāng)提出較高的可靠性要求,以期在開發(fā)的過程中采取必要的措施,使軟件能夠高度可靠地穩(wěn)定運(yùn)行,避免因運(yùn)行事故而帶來的損失。

              安全保密要求:工作在不同環(huán)境的軟件對其安全,保密的要求顯然是不同的。應(yīng)當(dāng)把這方面的需求恰當(dāng)?shù)刈龀鲆?guī)定,以便對所開發(fā)的軟件給予特殊的設(shè)計,使其在運(yùn)行中其安全方面的性能得到必要的保證。

              用戶界面需求:軟件與用戶界面的友好性是用戶能夠方便、有效、愉快地使用該軟件的關(guān)鍵之一。從市場角度來看,具有友好用戶界面的軟件有很強(qiáng)的競爭力。因此,必須在需求分析時,為用戶界面細(xì)致地規(guī)定達(dá)到的要求。

              資源使用需求:這是指所開發(fā)軟件運(yùn)行時所需的數(shù)據(jù)、軟件、內(nèi)存空間等各項資源外,軟件開發(fā)時所需的人力、支撐軟件、開發(fā)設(shè)備等則屬于軟件開發(fā)的資源,需要在需求分析時加以確定。

              軟件成本消耗與開發(fā)進(jìn)度需求:在軟件項目立項后,要根據(jù)合同規(guī)定,對軟件開發(fā)的進(jìn)度和步驟的費用提出要求,作為開發(fā)管理的依據(jù)。

              預(yù)先估計以后系統(tǒng)可能達(dá)到的目標(biāo)。這樣,在開發(fā)過程中,可對系統(tǒng)將來可能擴(kuò)駐與修改做準(zhǔn)備。一旦需要時,就比較容易進(jìn)行補(bǔ)充和修改。

              功能性需求是人們普遍關(guān)注的,但常常忽視對非功能性需求的分析。其實非功能性需求并不是無關(guān)緊要的,它們涉及到的方面多而廣,因而容易被忽略。如果在進(jìn)行需求分析之前沒有做過可行性分析,那么補(bǔ)充完成這部分工作往往是必要的。從問題定義和調(diào)查研究入手,與用戶密切聯(lián)系,詳細(xì)了解問題提出的背景,弄清要解決什么問題。然后從軟件系統(tǒng)特性和用戶目標(biāo)出發(fā),做市場調(diào)查和現(xiàn)場考察。仔細(xì)收集信息之后進(jìn)行數(shù)據(jù)分析和功能分析,建立系統(tǒng)的高層邏輯模型,再進(jìn)一步做成本/效益分析。最后提交一份可行性分析報告,從技術(shù)、經(jīng)濟(jì)、社會效應(yīng)等方面論證可行性,以確認(rèn)軟件開發(fā)的目標(biāo)是否可行。問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利地對問題進(jìn)行分析。分析員必須與用戶、軟件開發(fā)機(jī)構(gòu)的管理部門、軟件開發(fā)組的人員建立聯(lián)系。項目負(fù)責(zé)人在此過程中起協(xié)調(diào)人的作用。分析員通過這種通信途徑與各方商討,以便能滿足用戶的要求。

              (2)分析與綜合需求分析的第二步工作是問題分析和方案的綜合。分析員需從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計上的限制,分析它們是否滿足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行特性和設(shè)計上的限制分析它們是否滿足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行環(huán)境需求等,剔除其不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。在這個步驟中,分析和綜合工作反復(fù)地進(jìn)行。在對現(xiàn)行問題和期望的信息(輸入和輸出)進(jìn)行分析的基礎(chǔ)上,分析員開始綜合出一個或幾個解決方案,然后檢查這些方案是否符合軟件計劃中規(guī)定的范圍等等,再進(jìn)行修改??傊瑢栴}進(jìn)行分析和綜合的過程將一直持續(xù)到分析員與用戶雙方都感到有把握正確地制定該軟件的規(guī)格說明為止。常用的分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(簡稱SA)、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(簡稱JSD)、面向?qū)ο蟮姆治龇椒?簡稱OOA)等,以及用于建立動態(tài)、模型的狀態(tài)遷移圖或Petri網(wǎng)等。這些方法都采用圖文結(jié)合的方式,可以直觀地描述軟件的邏輯模型。

              (3)編制需求分析的文檔已經(jīng)確定的需求應(yīng)當(dāng)?shù)玫角逦鷾?zhǔn)確的描述。通常把描述需求的文檔叫做軟件需求規(guī)格說明書。同時,為了確切表達(dá)用戶對軟件的輸入輸出要求,還需要制定數(shù)據(jù)要求說明書及編寫初步的用戶手冊,著重反映被開發(fā)軟件的用戶界面和用戶使用的具體要求。此外,依據(jù)在需求分析階段對系統(tǒng)的進(jìn)一步分析,從目標(biāo)系統(tǒng)的精細(xì)模型出發(fā),可以更確切地估計所開發(fā)項目的成本與進(jìn)度,從而修改、完善與確定軟件開發(fā)的實施計劃。

              (4)需求分析評審作為需求分析階段工作的復(fù)查手段,在需求分析的最后一步,應(yīng)該對功能的正確性、完整性和清晰性,以及其他需求給予評價。評審的主要內(nèi)容是:

              系統(tǒng)定義的目標(biāo)是否與用戶的要求一致;

              系統(tǒng)需求分析階段提供的文檔資料是否齊全;

              文檔中的所有描述是否完整、清晰、準(zhǔn)確所反映用戶要求;

              與所在其他系統(tǒng)成分的重要接口是否都已經(jīng)描述;

              所開發(fā)項目的數(shù)據(jù)流與數(shù)據(jù)結(jié)構(gòu)是否足夠,確定;

              所有圖表是否清楚,在不補(bǔ)充說明時能否理解;

              主要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說明;

              為你推薦