【正文】
過(guò)程,比較它的優(yōu)點(diǎn)和缺點(diǎn)。 原型過(guò)快地收斂于需求集合,使得某些基本方面被忽視;演化模型的缺點(diǎn)是: 演化模型使得開(kāi)發(fā)出來(lái)的最終系統(tǒng)更容易維護(hù),對(duì)用戶更友好; 演化模型能夠得到更好的軟件需求,它不僅能夠處理模糊的需求,而且開(kāi)發(fā)人員與用戶可通過(guò)原型充分進(jìn)行交流;這個(gè)過(guò)程是一個(gè)迭代的過(guò)程。軟件開(kāi)發(fā)人員與用戶一起定義待開(kāi)發(fā)軟件系統(tǒng)的總目標(biāo),定義需求,確定軟件的工作范圍。通常把第一次得到的試驗(yàn)性產(chǎn)品稱為“原型”。 答:由于在項(xiàng)目開(kāi)發(fā)的初始階段人們對(duì)軟件的需求認(rèn)識(shí)常常不夠清晰,因而使得開(kāi)發(fā)項(xiàng)目難于做到一次開(kāi)發(fā)成功,出現(xiàn)返工再開(kāi)發(fā)在所難免。但無(wú)論上述哪一種情況都必須付出高額的代價(jià),并將為軟件開(kāi)發(fā)帶來(lái)不必要的損失。這些問(wèn)題的存在對(duì)軟件開(kāi)發(fā)會(huì)帶來(lái)嚴(yán)重影響,最終可能導(dǎo)致開(kāi)發(fā)出的軟件并不是用戶真正需要的軟件,并且這一點(diǎn)在開(kāi)發(fā)過(guò)程完成后才有所察覺(jué)。根據(jù)這一圖式制定開(kāi)發(fā)計(jì)劃、進(jìn)行成本預(yù)算、組織開(kāi)發(fā)力量,以項(xiàng)目的階段評(píng)審和文檔控制為手段有效地對(duì)整個(gè)開(kāi)發(fā)過(guò)程進(jìn)行指導(dǎo),從而保證了軟件產(chǎn)品及時(shí)交付,并達(dá)到預(yù)期的質(zhì)量要求。并且規(guī)定了它們自上而下,相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。試論述瀑布模型軟件開(kāi)發(fā)方法的基本過(guò)程,比較它的優(yōu)點(diǎn)和缺點(diǎn)。 (6) 軟件維護(hù) :為改正錯(cuò)誤,適應(yīng)環(huán)境變化及功能增強(qiáng)而進(jìn)行的一系列修改活動(dòng)。確認(rèn)測(cè)試檢查所有的需求是否都得到滿足。 (5) 軟件測(cè)試 :?jiǎn)卧獪y(cè)試檢查每一單獨(dú)的模塊部件的功能和性能。 (4) 程序編碼 :在設(shè)計(jì)完成之后,用一種適當(dāng)?shù)某绦蛟O(shè)計(jì)語(yǔ)言或CASE工具生成源程序。第二步做詳細(xì)設(shè)計(jì),考慮設(shè)計(jì)每一個(gè)模塊部件的過(guò)程描述。 (3) 軟件設(shè)計(jì) :軟件的設(shè)計(jì)過(guò)程分兩步走。一種是正式的信息域分析,可用于建立信息流和信息結(jié)構(gòu)的模型,然后逐漸擴(kuò)充這些模型成為軟件的規(guī)格說(shuō)明。 (2) 軟件需求分析和定義 :在這一步詳細(xì)定義分配給軟件的系統(tǒng)元素。它分為6個(gè)階段: (1) 軟件項(xiàng)目計(jì)劃 :在這一步要確定軟件工作范圍,進(jìn)行軟件風(fēng)險(xiǎn)分析,預(yù)計(jì)軟件開(kāi)發(fā)所需要的資源,建立成本與進(jìn)度的估算。答:軟件與任何一個(gè)事物一樣,有它的孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程。為滿足客戶的變更要求,軟件必須在使用的過(guò)程中演進(jìn)。確認(rèn)軟件能夠完成客戶提出的要求; 產(chǎn)生滿足規(guī)格說(shuō)明的軟件; 規(guī)定軟件的功能及其運(yùn)行的限制; 答:軟件工程過(guò)程的基本過(guò)程活動(dòng)有4步: 過(guò)程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開(kāi)發(fā)各個(gè)階段完成的里程碑。 軟件工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。軟件工程方法為軟件開(kāi)發(fā)提供了“如何做”的技術(shù)。 答:軟件工程是開(kāi)發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)化方法,它包含哪些要素?試說(shuō)明之。 (7) 軟件成本相當(dāng)昂貴。 (6) 軟件本身是復(fù)雜的。 (4) 軟件的開(kāi)發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性。 (3) 在軟件的運(yùn)行和使用期間,沒(méi)有硬件那樣的機(jī)械磨損,老化問(wèn)題。它具有抽象性。其中,程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料。⑤實(shí)用性 ⑥模塊化 ⑦抽象 ⑧信息隱蔽 E~G:① 復(fù)用型 ② 實(shí)驗(yàn)型 ③ 廢棄型 ④ 演化型 原型法適用于開(kāi)發(fā)較復(fù)雜的系統(tǒng),原型可分為三種:(②)、(⑤)和(④)。軟件工程技術(shù)應(yīng)遵循(⑦)、(④)、(⑥)、(③)、一致性、確定性、完備性、可驗(yàn)證性、抽象和信息隱蔽。④ 設(shè)計(jì) ⑤ 需求定義 ⑥ 圖象處理從供選擇的答案中選出與下列有關(guān)軟件需求分析敘述相對(duì)應(yīng)的正確答案,將其編號(hào)填入到相應(yīng)的括內(nèi)。軟件開(kāi)發(fā)技術(shù)不再僅僅是程序設(shè)計(jì)技術(shù),而是包括了與軟件開(kāi)發(fā)的各個(gè)階段,如(⑤)、(④)、編碼、單元測(cè)試、綜合測(cè)試、(①)及其整體有關(guān)的各種管理技術(shù)。人們提出了(⑤)和(⑧)等程序設(shè)計(jì)方法,設(shè)法降低軟件的開(kāi)發(fā)費(fèi)用。第三階段(1960年代末~1970年代中期)稱為“程序設(shè)計(jì)方法時(shí)代”。出現(xiàn)了(①),并逐漸普及。 ),程序員只能用機(jī)器指令編寫(xiě)程序。 ),也沒(méi)有(有人將軟件的發(fā)展過(guò)程劃分為4個(gè)階段:第一階段(1950~1950年代末)稱為“程序設(shè)計(jì)的原始時(shí)期”,這時(shí)既沒(méi)有( 供選擇的答案:A.① 程序開(kāi)發(fā)環(huán)境②操作系統(tǒng)的資源管理功能③程序人員數(shù)量④計(jì)算機(jī)的并行處理能力B.① 需求分析②需求調(diào)查③可行性分析④問(wèn)題定義 C、D.①方案設(shè)計(jì)②代碼設(shè)計(jì)③概要設(shè)計(jì)④數(shù)據(jù)設(shè)計(jì)⑤運(yùn)行設(shè)計(jì)⑥詳細(xì)設(shè)計(jì)⑦故障處理設(shè)計(jì)開(kāi)發(fā)軟件時(shí)對(duì)提高軟件開(kāi)發(fā)人員工作效率至關(guān)重要的是(①)。(⑤)是與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的圖文材料。其中,(②)是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列。 A. 增加 B. 降低 C. 穩(wěn)定 D. 不穩(wěn)定1為保證軟件開(kāi)發(fā)的過(guò)程能夠跟上技術(shù)的進(jìn)步,必須不斷地靈活地改進(jìn)軟件工程C。 A. 可靠性B. 可使用性C. 安全性D. 可維護(hù)性1為了提高軟件開(kāi)發(fā)過(guò)程的A,有效地進(jìn)行管理,應(yīng)當(dāng)根據(jù)軟件開(kāi)發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開(kāi)發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn)。 A. 軟件定義階段B. 軟件開(kāi)發(fā)階段C. 軟件維護(hù)階段D. 整個(gè)軟件生存期過(guò)程中在軟件開(kāi)發(fā)過(guò)程中的每個(gè)階段都要進(jìn)行嚴(yán)格的D,以盡早發(fā)現(xiàn)在軟件開(kāi)發(fā)過(guò)程中產(chǎn)生的錯(cuò)誤。 A. 需求分析B. 軟件設(shè)計(jì)C. 軟件測(cè)試D. 軟件運(yùn)行/維護(hù)在軟件生存期的模型中,D適合于大型軟件的開(kāi)發(fā)它吸收了軟件工程中“演化”的概念。 A. 20 B. 30 C. 40 D. 50準(zhǔn)確地解決“軟件系統(tǒng)必須做什么”是B階段的任務(wù)。 A. 理論性 B. 原理性C. 工程性D. 心理性軟件開(kāi)發(fā)費(fèi)用只占軟件生存期全部費(fèi)用的B。 A. 制造B. 復(fù)制 C. 開(kāi)發(fā) D. 研制個(gè)體手工勞動(dòng)是B時(shí)代的軟件生產(chǎn)方式。它使開(kāi)發(fā)過(guò)程具有迭代性和無(wú)間隙性,適用于面向?qū)ο箝_(kāi)發(fā)方法。在每個(gè)螺旋周期內(nèi)分為四個(gè)工作步驟:制定計(jì)劃、風(fēng)險(xiǎn)分析、開(kāi)發(fā)實(shí)施、用戶評(píng)估。先開(kāi)發(fā)一個(gè)原型軟件,完成部分主要功能,展示給用戶并征求意見(jiàn),然后逐步完善,最終獲得滿意的產(chǎn)品。它規(guī)定了各階段的活動(dòng)由前至后,相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。軟件開(kāi)發(fā)各階段任務(wù)的劃分應(yīng)盡可能相對(duì)獨(dú)立,同一階段任務(wù)的性質(zhì)應(yīng)盡可能相同。 計(jì)算機(jī)科學(xué)的成果都可用于軟件工程,但計(jì)算機(jī)科學(xué)著重于理論和原理,軟件工程著重于建造軟件系統(tǒng)。程序設(shè)計(jì)時(shí)代的生產(chǎn)方式是個(gè)體手工藝者,程序系統(tǒng)時(shí)代的生產(chǎn)方式是手工作坊,軟件工程時(shí)代的生產(chǎn)方式是工程化。計(jì)算機(jī)系統(tǒng)由硬件、軟件、使用計(jì)算機(jī)的人、數(shù)據(jù)庫(kù)、文檔和執(zhí)行過(guò)程組成。概述一、填空題軟件由計(jì)算機(jī)程序、數(shù)據(jù)和文檔組成。軟件是一種邏輯產(chǎn)品,它與物質(zhì)產(chǎn)品有很大的區(qū)別。軟件的發(fā)展,到現(xiàn)在為止,經(jīng)歷了三個(gè)階段:程序設(shè)計(jì)、程序系統(tǒng)和軟件工程。軟件工程是一門(mén)綜合性的交叉學(xué)科,它涉及計(jì)算機(jī)學(xué)科工程學(xué)科、管理學(xué)科和數(shù)學(xué)學(xué)科。軟件工程研究的主要內(nèi)容是方法、過(guò)程和工具等三個(gè)方面。瀑布模型是將軟件生存期各個(gè)活動(dòng)規(guī)定為依線性順序連接的若干階段的模型。1演化模型是一種非整體開(kāi)發(fā)模型。1螺旋模型將開(kāi)發(fā)過(guò)程分為幾個(gè)螺旋周期。1噴泉模型是一種以用戶要求為動(dòng)力,以對(duì)象為驅(qū)動(dòng)的模型。二、單項(xiàng)選擇題軟件產(chǎn)品的生產(chǎn)主要是 C。 A. 程序系統(tǒng) B. 程序設(shè)計(jì)C. 軟件工程 D. 程序編碼軟件工程是一門(mén)C學(xué)科。 A. 1/2 B. 1/3 C. 1/4 D. 2/3在軟件開(kāi)發(fā)過(guò)程中大約要花費(fèi)C%的工作量進(jìn)行測(cè)試和調(diào)試。 A. 可行性研究 B. 需求分析C. 軟件設(shè)計(jì)D. 程序編碼軟件生存期中時(shí)間最長(zhǎng)的是D階段。 A .噴泉模型B. 基于知識(shí)的模型C. 瀑布模型D. 螺旋模型在軟件生存期中,用戶的參與主要在A。 A. 檢驗(yàn)B. 驗(yàn)證C. 度量D. 評(píng)審1在軟件開(kāi)發(fā)和維護(hù)過(guò)程中需要變更需求時(shí),為了保持軟件各個(gè)配置成分的一致性,必須實(shí)施嚴(yán)格的B A. 產(chǎn)品檢驗(yàn)B. 產(chǎn)品控制C. 產(chǎn)品標(biāo)準(zhǔn)化D. 開(kāi)發(fā)規(guī)范1實(shí)踐表明,采用先進(jìn)的開(kāi)發(fā)技術(shù)可提高軟件開(kāi)發(fā)的生產(chǎn)率,還可提高軟件的D。 A. 可見(jiàn)性B. 生產(chǎn)率 C. 安全性D. 有效性1隨著開(kāi)發(fā)小組人數(shù)的A,因交流開(kāi)發(fā)進(jìn)展情況和討論遇到的問(wèn)題而造成的通信開(kāi)銷(xiāo)也急劇增加。 A. 原則 B. 工具 C. 過(guò)程 D. 方法三、選擇填空題從供選擇的答案中選出與下列有關(guān)軟件需求分析敘述相對(duì)應(yīng)的正確答案,將其編號(hào)填入到相應(yīng)的括內(nèi)。 軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括(②)、(⑦)及(⑤)的完整集合。(⑦)是使程序能夠正確操縱信息的數(shù)據(jù)結(jié)構(gòu)。供選擇的答案: A~C. ① 軟件 ② 程序 ③ 代碼④ 硬件 ⑤ 文檔 ⑥ 外設(shè) ⑦ 數(shù)據(jù) ⑧ 圖表從供選擇的答案中選出與下列有關(guān)軟件需求分析敘述相對(duì)應(yīng)的正確答案,將其編號(hào)填入到相應(yīng)的括內(nèi)。軟件工程中描述生存周期的瀑布模型一般包括計(jì)劃、(①)、設(shè)計(jì)、編碼、測(cè)試、維護(hù)等幾個(gè)階段,其中設(shè)計(jì)階段在管理上又可以依次分成(③)和(⑥)兩步。⑧ 軟件體系結(jié)構(gòu)設(shè)計(jì)從供選擇的答案中選出與下列有關(guān)軟件需求分析敘述相對(duì)應(yīng)的正確答案,將其編號(hào)填入到相應(yīng)的括內(nèi)。 A B第二階段(1950年代末~1960年代末)稱為“基本軟件期”。隨著(④)的發(fā)展,編譯技術(shù)也有較大的發(fā)展。這一時(shí)期,與硬件費(fèi)用下降相反,軟件開(kāi)發(fā)費(fèi)急劇上升。第四階段(1970年代中期~現(xiàn)在)稱“軟件工程時(shí)期”。供選擇的答案:A~D:①匯編語(yǔ)言 ②操作系統(tǒng) ③虛擬存儲(chǔ)器概念 ④高級(jí)語(yǔ)言 ⑤結(jié)構(gòu)式程序設(shè)計(jì) ⑥數(shù)據(jù)庫(kù)概念 ⑦固件 ⑧ 模塊化程序設(shè)計(jì)E~G:① 使用和維護(hù) ② 兼容性的確認(rèn) ③ 完整性的確認(rèn)軟件工程的最終目的是以較少的投資獲得可維護(hù)的、可靠的、高效率的和可理解的軟件產(chǎn)品。供選擇的答案:A~D①有效性 ②合理性 ③局部化 ④協(xié)同性⑤ 探索型四、問(wèn)答題 什么是軟件?它的特性是什么? 答:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。 軟件的特點(diǎn)是: (1) 軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。 (2) 軟件的生產(chǎn)與硬件不同,它沒(méi)有明顯的制造過(guò)程。然而它存在退化問(wèn)題。 (5) 軟件的開(kāi)發(fā)至今尚未完全擺脫手工藝的開(kāi)發(fā)方式。軟件的復(fù)雜性可能來(lái)自它所反映的實(shí)際問(wèn)題的復(fù)雜性,也可能來(lái)自程序邏輯結(jié)構(gòu)的復(fù)雜性。試比較軟件發(fā)展的三個(gè)時(shí)期的特點(diǎn),從軟件所指、軟件工作范圍、軟件開(kāi)發(fā)組織、決定質(zhì)量的因素、開(kāi)發(fā)技術(shù)和手段等幾個(gè)方面說(shuō)明它們的差別。 答:軟件工程包括三個(gè)要素:方法、工具和過(guò)程。它包括了多方面的任務(wù),如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過(guò)程的設(shè)計(jì)、編碼、測(cè)試以及維護(hù)等。 軟件工程的過(guò)程則將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的目的。軟件工程過(guò)程有哪幾個(gè)基本過(guò)程活動(dòng)?試說(shuō)明之。 P (Plan) : 軟件規(guī)格說(shuō)明。 D (Do) : 軟件開(kāi)發(fā)。 C (Check) : 軟件確認(rèn)。 A (Action) : 軟件演進(jìn)。試說(shuō)明“軟件生存期”的概念。這就是軟件的生存期。根據(jù)有關(guān)成本與進(jìn)度的限制分析項(xiàng)目的可行性。可以用以下兩種方式中的一種對(duì)需求進(jìn)行分析和定義。另一種是軟件原型化方法,即建立軟件原型,并由用戶進(jìn)行評(píng)價(jià),從而確定軟件需求。第一步進(jìn)行概要設(shè)計(jì),以結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)開(kāi)始,建立程序的模塊結(jié)構(gòu),定義接口并建立數(shù)據(jù)結(jié)構(gòu)。經(jīng)過(guò)評(píng)審后,把每一個(gè)加細(xì)的過(guò)程性描述加到設(shè)計(jì)規(guī)格說(shuō)明中去。應(yīng)當(dāng)就風(fēng)格及清晰性對(duì)代碼進(jìn)行評(píng)審,而且反過(guò)來(lái)應(yīng)能直接追溯到詳細(xì)設(shè)計(jì)描述。組裝測(cè)試提供了構(gòu)造軟件模塊結(jié)構(gòu)的手段,同時(shí)測(cè)試其功能和接口。在每一個(gè)測(cè)試步驟之后,要進(jìn)行調(diào)試,以診斷和糾正軟件的故障。與軟件維護(hù)相關(guān)聯(lián)的那些任務(wù)依賴于所要實(shí)施的維護(hù)的類(lèi)型。答:瀑布模型規(guī)定了各項(xiàng)軟件工程活動(dòng),包括:制定軟件項(xiàng)目計(jì)劃,進(jìn)行需求分析和定義,軟件設(shè)計(jì),程序編碼,測(cè)試及運(yùn)行維護(hù)。瀑布模型為軟件開(kāi)發(fā)和軟件維護(hù)提供了一種有效的管理圖式。瀑布模型的缺點(diǎn)是缺乏靈活性,特別無(wú)法解決軟件需求本身不明確或不準(zhǔn)確的問(wèn)題。面對(duì)這些情況,無(wú)疑需要進(jìn)行返工或是不得不在維護(hù)中糾正需求的偏差。試說(shuō)明演化模型軟件開(kāi)發(fā)方法的基本過(guò)程,比較它的優(yōu)點(diǎn)和缺點(diǎn)。因此,可以先做試驗(yàn)開(kāi)發(fā),其目標(biāo)只是在于探索可行性,弄清軟件需求;然后在此基礎(chǔ)上獲得較為滿意的軟件產(chǎn)品。演化模型從需求分析開(kāi)始。然后快速設(shè)計(jì)軟件中對(duì)使用者可見(jiàn)部分的表示,進(jìn)而建造原型,再讓用戶或客戶評(píng)估原型,根據(jù)評(píng)估結(jié)果,修改和細(xì)化待開(kāi)發(fā)軟件系統(tǒng)的需求,使之滿足用戶的需求。演化模型的優(yōu)點(diǎn)是: 演化模型給用戶提供了機(jī)會(huì),以更改用戶原來(lái)設(shè)想的不盡合理的最終系統(tǒng); 演化模型可以降低總的開(kāi)發(fā)費(fèi)用,縮短開(kāi)發(fā)時(shí)間。 對(duì)于開(kāi)發(fā)人員不熟悉的領(lǐng)域,演化模型可能誤導(dǎo)開(kāi)發(fā)者把系統(tǒng)的次要部分當(dāng)作主要框架,作出不切題的原型; 長(zhǎng)期在原型環(huán)境下開(kāi)發(fā),只注意得到令人滿意的原型,容易“遺忘”用戶環(huán)境與實(shí)際客戶環(huán)境之間的差別。答:對(duì)于復(fù)雜的大型軟件,開(kāi)發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型是一種風(fēng)險(xiǎn)驅(qū)動(dòng)的模型。項(xiàng)目越復(fù)雜,設(shè)計(jì)方案、資源、成本、進(jìn)度等因素的不確定性越大,項(xiàng)目開(kāi)發(fā)的風(fēng)險(xiǎn)也就越大。螺旋模型將開(kāi)發(fā)過(guò)程分為幾個(gè)螺旋周期,每個(gè)螺旋周期大致和瀑布模型相吻合。第一,制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,明確項(xiàng)目開(kāi)發(fā)的限制條件;第二,風(fēng)險(xiǎn)分析:分析所選方案,識(shí)別風(fēng)險(xiǎn),通過(guò)原型消除風(fēng)險(xiǎn);第三,開(kāi)發(fā)實(shí)施:實(shí)施軟件開(kāi)發(fā);第四,客戶評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議,建立下一個(gè)周期的計(jì)劃。螺旋模型的優(yōu)越性比起其它模型來(lái)說(shuō)是明顯的,但并不是絕對(duì)的。如果項(xiàng)目風(fēng)險(xiǎn)較大,又未能及時(shí)發(fā)現(xiàn),勢(shì)必造成重大損失。軟件工程的基本目標(biāo)有哪些?試說(shuō)明它們之間的關(guān)系。 在具體項(xiàng)目的實(shí)際開(kāi)發(fā)中,