軟件工程的基本理論.doc_第1頁
軟件工程的基本理論.doc_第2頁
軟件工程的基本理論.doc_第3頁
軟件工程的基本理論.doc_第4頁
軟件工程的基本理論.doc_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

45第2章 軟件工程的基本理論 第二章 軟件工程的基本理論 本章內(nèi)容主要包含:軟件工程過程,軟件生存周期,軟件周期模型,軟件開發(fā)的增量模型,軟件開發(fā)方法等。 2.1基礎(chǔ)知識 2.1.1軟件工程過程 軟件工程規(guī)定了獲取,供應,開發(fā),操作和維護軟件時要實施的過程,活動和任務 軟件過程包含如下七個過程: (1)獲取過程。定義需要按合同或取一個系統(tǒng),軟件產(chǎn)品或服務的活動。 (2)供應過程。定義供方向需方提供合同中的系統(tǒng),軟件產(chǎn)品或服務所需的活動。 (3)開發(fā)過程。定義開發(fā)者和機構(gòu)為了在規(guī)定的運行環(huán)境中為其用戶運行一個計算機系統(tǒng)所需要的活動。 (4)操作過程。定義操作者和機構(gòu)為了修改和管理軟件,使它次在良好的運行狀態(tài)所需要的活動。 (5)維護過程。丁以維護者和機構(gòu)為了修改的管理軟件,使它處在良好的運行狀態(tài)所需要的活動。 (6)管理過程。定義軟件工程過程中各項管理活動,包括:項目開始和范圍定義,項目管理計劃,實施和控制 ,評審和評價和項目完成。 (7) 支持過程。支持過程對項目的生存周期過程給與支持,它有助于項目的成功并能提供項目的質(zhì)量。 2.12 軟件生存周期 軟件生存周期是指一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個周期。把整個生存周期劃分為若干階段,使得每個階段有明確的任務,是規(guī)模大,結(jié)構(gòu)復雜和管理復雜的軟件開發(fā)變的容易控制和管理。 軟件生存周期的各個階段有不同的劃分,在劃分軟件生存周期階段時,應遵循的一條基本原則是個階段的任務應盡可能縣對獨立,統(tǒng)一階段各項任務的性質(zhì)盡可能相同。通常,軟件生岑周期包含可行性分析和項目開發(fā)計劃,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試,維護等活動,可以將這些活動以適當方式分配到不同階段去完成。 2.13 軟件生存周期模型 軟件生存周期模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型 。軟件生存周期模型確立了軟件開發(fā)和演繹中各階段的次序限制以及各階段活動的準則,確立開發(fā)過程所遵守的規(guī)定和閑置,便于各種活動的協(xié)調(diào),便于各種人員的有效通訊,有利于活動重用,有利于活動管理。目前由若種軟件生存周期模型。例如瀑布模型,增量模型,螺旋模型,噴泉模型變換模型和基于知識的模型等 。 2.14 軟件開發(fā)的增量模型 1.瀑布模型的局限性 盡管傳統(tǒng)的瀑布模型曾經(jīng)給軟件產(chǎn)業(yè)帶來巨大的進步,部分的緩解了軟件危機,但這種模型本質(zhì)上是一種線性的順序模型,因此存在著比較明顯的缺陷,各階段之間存在著嚴重的順序性和依賴性,特別強調(diào)預先定義需求的重要性,但是世界項目很少是遵循這種線性順序順序性和依賴性的。雖然瀑布模型也允許迭代,但這種改變往往對項目開發(fā)帶來混亂。在系統(tǒng)建立之前很難只依靠分析就確定出一套完整,準確,一致,有效的用戶需求,這種預先定義需求的方法更不能適應用戶需求不斷變化的情況。 傳統(tǒng)的瀑布模型很難適應可變,模糊不清的軟件系統(tǒng)的開發(fā),而且在開發(fā)過程中,用戶很難參與進去,只有到開發(fā)結(jié)束才能看到整個軟件系統(tǒng)。這種理想的,線性的開發(fā)過程,缺乏靈活性,不適應世界的開發(fā)過程。 為了克服瀑布模型的不足,提出了軟件開發(fā)的增量模型,根據(jù)增量的方式和形式的不同,增量模型分為漸增模型和原型模型。 2.增量模型的提出 增量模型是在瀑布模型的基礎(chǔ)上加以修改而形成的。 增量模型是在項目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。增量方式包括增量開發(fā)和增量提交。增量開發(fā)是指在項目開發(fā)周期內(nèi),以一定的時間間隔開發(fā)部分工作軟件:增量提交是指在項目開發(fā)周期內(nèi),以一定的時間間隔更亮方式向用戶提交工作軟件及相關(guān)文檔。兩者可以同時使用也可以單獨使用。 根據(jù)增量的方式和形式的不同,增量模型分為漸增模型和原型模型。 3.漸增模型 這種模型是瀑布模型的變種。有兩種漸增模型: 1)增量構(gòu)造模型 他在瀑布模型基礎(chǔ)上,對一些階段進行整體開發(fā),對另一些階段進行增量開發(fā)。也就是說在前面的開發(fā)階段按瀑布模型模型進行整體開發(fā),后面的開發(fā)階段按增量方式開發(fā)。 2)演化提交模型 他在瀑布模型的基礎(chǔ)上,所有階段都進行增量開發(fā),也就是說不僅是增量開發(fā),也是增量提交。 在該模型種。項目開發(fā)的各個階段都是增量方式。先對部分功能進行需求分析。在順序進行設(shè)計,編碼,測試,把該功能的軟件交付給用戶,然后再對另一部分功能進行開發(fā),提交用戶,直到所有功能全部增量開發(fā)完畢。它不僅是增量開發(fā)也是增量提交,用戶將最早受到部分工作軟件交付給用戶,然后再對另一部分功能進行開發(fā),提交用戶,直到所有功能全部增量開發(fā)完畢。他不僅是增量開發(fā)也是增量提交,用戶將最早受到部分工作軟件,及早發(fā)現(xiàn)問題,更徹底,西褲該擴充更容易。 4. 原型模型 中開發(fā)模型又是快速原型模型,它是增量模型的另一種形式。他是在開發(fā)真實系統(tǒng)之前,構(gòu)造一個模型,在該模型的基礎(chǔ)上,逐漸完成整個系統(tǒng)的開發(fā)工作。根據(jù)原型的德不同作用,有三類原型模型: 1)探索性原型 這種類型的原型模型是把原型用于開發(fā)的需求分析階段,目標是要弄清楚用戶的需求,確定所期望的特征,并探索各種方案的可行性.他主要針對開發(fā)目標模糊,用戶與開發(fā)者對項目都缺乏經(jīng)驗的情況,通過對原型的開發(fā)來明確用戶的需求.2)實驗型原型這種原型主要用與設(shè)計階段,考核方案是否合適,能否實現(xiàn).對于一個大型系統(tǒng),若對設(shè)計方案沒有把握時,可通過這種原型來實現(xiàn)方案的正確性.3)演化性原型這種原型主要用于及時向用戶提交一個原型系統(tǒng),該原型系統(tǒng)或者包含系統(tǒng)的框架,或者包含系統(tǒng)的主要功能,在得到用戶的認可后,將原型系統(tǒng)不斷擴充演變?yōu)樽罱K的軟件系統(tǒng).它將原型的思想擴展到軟件開發(fā)的全過程.5.原型開發(fā)過程1)原型構(gòu)造要求原型不同于最終系統(tǒng),最終系統(tǒng)對每個軟件要求都要求詳細實現(xiàn),而原型僅僅是為了試驗和演示用的,部分功能需求可以忽略或者模擬實現(xiàn).因此,在構(gòu)造原型時,必須注意功能性能的取舍,忽略一切暫時不關(guān)心的部分以加速原型的實現(xiàn),同時又要充分體現(xiàn)原型的作用,滿足評價原型的要求.2)原型的特征分類根據(jù)原型的目的和方式不同,構(gòu)造原型的內(nèi)容的取舍不同,體現(xiàn)出原型特征有如下類別:(1) 系統(tǒng)的界面形式,用原型來解決系統(tǒng)的人機交互界面的結(jié)構(gòu).(2) 系統(tǒng)的總體結(jié)構(gòu),用原型來確定系統(tǒng)的體系結(jié)構(gòu);(3) 系統(tǒng)的主要處理功能和性能,用原型來實現(xiàn)系統(tǒng)的主要功能和性能.(4) 數(shù)據(jù)庫模式,用原型來確定系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu).3)原型開發(fā)步驟(1)快速分析.在分析人員與用戶緊密配合下,迅速確定系統(tǒng)的基本需求,根據(jù)原型所要體現(xiàn)的特征描述基本需求以滿足開發(fā)原型的需要.(2)構(gòu)造原型.在快速分析的基礎(chǔ)上,根據(jù)基本需求說明盡快實現(xiàn)一個可運行的系統(tǒng).(3)運行原型.這是發(fā)現(xiàn)問題,消除誤解,開發(fā)者與用戶充分協(xié)調(diào)的一個步驟.各類人員在共同運用原型的過程中進一步加深對系統(tǒng)的了解及相互之間的理解.(4)評價原型.在運行的基礎(chǔ)上,考核評價原型的特性,分析運行效果是否滿足用戶的愿望,糾正過去交互中的誤解與分析中的錯誤,增添新的要求,并滿足因環(huán)境變化或用戶新想法引起的系統(tǒng)要求變動,提出全面的修改意見.(5)修改.根據(jù)評價原型的活動結(jié)果進行修改.修改過程代替了初始的快速分析,從而形成原型開發(fā)的循環(huán)過程.用戶與開發(fā)者在這種循環(huán)過程中不斷接近系統(tǒng)的最終要求.6構(gòu)造原型的技術(shù)(1) 可執(zhí)行的規(guī)格說明.通過可執(zhí)行的規(guī)格說明語言來描述預期的行為”做什么”,人們可以從直接觀察中用規(guī)格說明語言來規(guī)定任何系統(tǒng)行為.(2) 基于腳本的設(shè)計.一個腳本將模擬在系統(tǒng)運行期間用戶經(jīng)歷的事件,他提供了輸入-處理-輸出的屏幕,以及有關(guān)對話的一個模型,開發(fā)者能構(gòu)給用戶顯示一個系統(tǒng)的逼真視圖.(3) 采用高級語言或?qū)iT語言.(4) 能重用成分.能重用成分是一些具體應用中共同出現(xiàn)的一些程序設(shè)計模式,包括輸入,輸出規(guī)格說明,控制結(jié)構(gòu),一般問題解法描述等.2.1.5軟件開發(fā)方法 軟件開發(fā)方法是一種使用早已定義好的技術(shù)集及符號表示習慣來組織軟件生產(chǎn)的過程.方法一般表述成一系列的步驟,每一步驟都與相應的技術(shù)符號相關(guān). 軟件開發(fā)的目標是在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶需求的高質(zhì)量的軟件.為了達到次目的,需要成功的開發(fā)方法.軟件開發(fā)方法是克服軟件危機的重要方面之一.從軟件工程誕生以來,已經(jīng)提出了許多種軟件開發(fā)方法和技術(shù),結(jié)構(gòu)化方法,Jackson方法,VDM維也納開方法,面向?qū)ο蟮拈_發(fā)方法等對軟件工程及軟件產(chǎn)業(yè)的發(fā)展起了不可估量的作用.2.2單元練習2.2.1填空題1.軟件工程過程包含了_,_,_,_,_,_,_七個過程.2.描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型稱為_模型.3.從軟件工程誕生以來,已經(jīng)提出了多種軟件開發(fā)方法,如_,_,_,_,它們對軟件工程及軟件產(chǎn)業(yè)的發(fā)展起到了不可估量的作用.4.結(jié)構(gòu)化方法由_,_,_,構(gòu)成.它是一種面向_的開發(fā)方法.5. _模型是一種非整體開發(fā)的模型.軟件在該模型中是逐漸開發(fā)出來的,開發(fā)出來一部分,向用戶展示一部分,可以讓用戶及早看到部分軟件,及早發(fā)現(xiàn)問題.或者先開發(fā)一個原型軟件,完成部分主要功能展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品.6.噴泉模型是一種以_為動力,以_為驅(qū)動的模型,適合于_的開發(fā)方法.它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性.噴泉模型使開發(fā)過程具有_和_.7.變換模型是一種適合于_方法的模型.從_開始,經(jīng)過一系列_,最終得到系統(tǒng)的目標程序.8.結(jié)構(gòu)化方法總的指導思想是_.它的基本原則是功能的_與_.它是軟件工程中最早出現(xiàn)的開發(fā)方法,特別適合于_的問題.9.維也納開發(fā)方法(VDM)是一種形式化的開發(fā)方法,軟件的需求用嚴格的_描述,然后把描述模型逐步變換成目標系統(tǒng).10.螺旋模型將_模型和_模型結(jié)合起來,加入了兩種模型均忽略了的風險分析,彌補了這兩種模型的不足.11.螺旋模型將開發(fā)過程分為幾個螺旋周期,在每個螺旋周期內(nèi)分為四個工作步驟.第一步_,確定目標,選定方案,明確開發(fā)限制條件.第二步_,分析所選方案,識別風險,通過原型消除風險.第三步_,實施軟件開發(fā).第四步_,評價開發(fā)工作,提出修改意見,建立下一個周期的計劃.12.面向?qū)ο箝_發(fā)方法包括_,_,_三部分13.Jackson方法是一種面向_的開發(fā)方法.14.面向?qū)ο蟮拈_發(fā)方法有_方法, _方法, _方法.15. _一般是指為了支持軟件開發(fā)人員和維護活動而使用的軟件.例如項目估算工具,需求分析工具,設(shè)計工具,編碼工具,測試工具和維護工具等16.目前有若干種軟件生存周期模型,例如_模型, _模型, _模型, _模型, _模型, 和_模型.17.瀑布模型是將軟件生存周期各個活動規(guī)定為依線性順序連接的若干階段的模型.它包括_,_,_,_,_,_,_,_,它規(guī)定了由前至后,相互銜接的固定次序,如瀑布流水逐級下落.18.CASE技術(shù)是_,和_,的結(jié)合,它不同于以前的軟件技術(shù),因為它強調(diào)了解決整個軟件開發(fā)過程度效率問題,而不是解決個別階段的問題.由于跨越了軟件生存周期各個階段,著眼于軟件分析和設(shè)計以及實現(xiàn)和維護的自動化,從軟件生存周期的兩端解決了生產(chǎn)率問題.19.JSP方法首先描述問題的輸入輸出數(shù)據(jù)結(jié)構(gòu),分析其對應性,然后推出相應的程序結(jié)構(gòu),從而給出問題的_,20.簡單實用,應用廣泛,技術(shù)成熟的方法是_,21.增量構(gòu)造模型是指,在前面的開發(fā)階段按_,進行_,后面的開發(fā)階段按_,開發(fā)22.增量模型是在項目的開發(fā)過程中以一系列的_,開發(fā)系統(tǒng).增量方式包括_,和_,23.演化提交模型中,項目開發(fā)各階段都是用_,開發(fā)的24.構(gòu)造原型的技術(shù)主要有_,_,_,_,25.根據(jù)原型的目的,方式及內(nèi)容的取舍不同,原型特征可分為_,_,_,_,四類26.增量構(gòu)造模型是在瀑布模型基礎(chǔ)上對一些階段進行_,對另一階段進行_,27.增量開發(fā)是指在項目開發(fā)周期內(nèi),以一定的時間間隔_,增量提交是指在項目開發(fā)周期內(nèi),以一定的時間間隔_,向用戶提交_,及_,28.原型模型又稱_,它是_,的另一種形式29.對于試驗型,用原型過程來代替_,階段,即在_,階段引入原型,快速分析_,快速構(gòu)造原型,通過運行,考察設(shè)計方案的_,原型成為設(shè)計的_,或_,的一部分.30.原型開發(fā)步驟包括_,_,_,_,_,31.快速原型的思想是在研究_,的方法和技術(shù)中產(chǎn)生的32.瀑布模型本質(zhì)上是一種_,順序模型.33.對于演化型,用原型過程代替_階段。這是典型的演化提交模型的形式,它是在強有力的_支持下,通過原型過程的_,直接得到_。34.快速原型是利用原型輔助軟件開發(fā)的一種新思想。經(jīng)過簡單_,_一個原型,用戶與開發(fā)者在_的過程中加強通信與反饋,通過_,減少誤解,彌補漏洞,適應變化,最終提高軟件的質(zhì)量。35.探索型類型的原型模型是把原型用于開發(fā)的_階段,目的是要弄清楚_,確定_,并探索各種方案的_。36.構(gòu)造原型時,必須注意_取舍,忽略一切暫時不關(guān)心的部分。37.用原型過程代替設(shè)計階段,考察設(shè)計方案的可行性與合理性,這是快速原型的_原型。38.探索型類型的原型模型主要針對開發(fā)_、_的情況,通過對原型的開發(fā)來明確_。39.事件可以看成是信息從一個對象到另一個對象的單向傳遞,各事件將信息從一個對象傳遞到另一個對象中去,因此要確定各事件的_和_。_用來表示事件、事件的接收對象、和發(fā)送對象。40.操作指的是類中對象所使用的一種_。類中的各對象可以_操作,方法是類的操作的_。41.屬性指的是類中對象所具有的_。不同對象的同一屬性可以具有相同或不同的_。42.用原型過程代替全部開發(fā)階段,這種快速原型是_原型。43.快速原型模型是在_基礎(chǔ)上,逐漸完成整個系統(tǒng)的開發(fā)工作。44.狀態(tài)圖反映了_與_的關(guān)系。狀態(tài)圖確定了由事件序列引起的_。45.狀態(tài)是_的抽象。狀態(tài)指明了對象對_的響應。46.實驗型原型主要用于_階段,考驗_是否合適和_。47.在同一個應用中的共享是指同一應用的類層次結(jié)構(gòu)中,存在繼承關(guān)系的各相似子類中,存在數(shù)據(jù)結(jié)構(gòu)和行為的_,使各相似子類共享共同的_。使用繼承來實現(xiàn)_。48.快速原型模型根據(jù)原型的不同作用,有_原型、_原型、_原型三類原型模型。49.軟件開發(fā)中的原型是軟件的一個_,它反映了最終系統(tǒng)的_。50.由于運用原型的目的和方式和形式不同,在使用原型時也采用不同的策略,有_和_。51.增量模型根據(jù)增量的方式不同,分為_模型和_模型。52.若原型不滿足需要說明,則根據(jù)明確的要求修改_,若原型不滿足用戶需求,則修改和規(guī)定_,重新構(gòu)造原型。53.瀑布模型_適應需求可變的軟件開發(fā),只有到_才能見到整個軟件系統(tǒng)。54.用原型過程來代替需求分析,使需求說明完整、一致、準確,這種快速原型是_原型。55.瀑布模型屬于_開發(fā)模型,增量模型屬于_開發(fā)模型。56.增量模型在開發(fā)過程種以一系列_開發(fā)系統(tǒng),推遲某階段的_,從而_產(chǎn)生工作軟件。57.演化提交模型在_的基礎(chǔ)上,所有階段都進行_,也就是說不僅是_,也是_。58.軟件原型是軟件的_可運行版本,反映最終系統(tǒng)的_。59.對于探索型,用原型過程來代替_階段,把原型作為_的補充形式,運用原型盡可能使需求說明完整、一致、準確、無二義性,但在整體上仍采用_。60.增量構(gòu)造模型在_階段按整體方式開發(fā),但是在_階段按增量的方式開發(fā)。2.2.2 選擇題1.軟件生存周期模型有多種,下列選項中,()不是軟機生存周期模型。 A螺旋模型 B增量模型 C功能模型 D瀑布模型2.結(jié)構(gòu)化方法和原型化方法使軟機開發(fā)中常用的兩種方法,在實際應用中,它們之間的關(guān)系表現(xiàn)為(); A相互排斥 B相互補充 C交替使用 D獨立使用3.軟機生存周期包括可行性分析和項目計劃、需求分析、概要設(shè)計、詳細設(shè)計、編碼、()、維護等活動。 A應用 B測試 C檢測 D以上答案都不對4.軟件開發(fā)的瀑布模型,一般都將開發(fā)過程劃分為:分析、設(shè)計、編碼和測試等階段,一般認為可能占用人員最多的階段是()。 A分析階段 B設(shè)計階段 C編碼階段 D測試階段5.準確地解決“軟件系統(tǒng)必須做什么”是()階段地任務。 A可行性研究 B詳細設(shè)計 C需求分析 D編碼6.瀑布模型中軟件生命周期劃分為八個階段:問題的定義、可行性研究、軟件需求分析、系統(tǒng)總統(tǒng)設(shè)計、詳細設(shè)計、編碼、測試和運行、維護。八個階段又分為可歸納為三個大的階段:計劃階段,開發(fā)階段和()。 A運行階段 B可行性研究 C詳細研究 D測試與排錯7.從結(jié)構(gòu)化的瀑布性模型看,在軟件生命周期中的八個階段中,下面的幾個選項中,()出錯,對軟件的影響最大。 A詳細設(shè)計階段 B概要設(shè)計階段 C需求分析階段 D測試和運行階段8.在結(jié)構(gòu)性的瀑布模型中,()階段定義的標準將成為軟件測試中的系統(tǒng)測試中的系統(tǒng)測試階段的目標。 A需求分析階段 B概要設(shè)計階段 C詳細設(shè)計階段 D可行性研究階段9.軟機生存期中時間最長的階段是() A需求分析階段 B概要設(shè)計階段 C測試階段 D維護階段10.檢查軟件產(chǎn)品是否符合需求定義的過程為() A集成測試 B確認測試 C驗證測試 D驗收測試11.UML是軟件開發(fā)中的一個重要工具,它主要應用于下列哪種軟件開發(fā)方法()。 A基于瀑布模型的結(jié)構(gòu)化方法 B基于需求動態(tài)定義的原型化方法 C基于對象的面向?qū)ο蠓椒?D基于數(shù)據(jù)的數(shù)據(jù)流開發(fā)方法12.在軟件生存期中,用戶主要是在()參與軟件開發(fā)。 A軟件定義期 B軟件開發(fā)期 C軟件維護期 D整個軟件生存期13.下面的軟件開發(fā)方法中,()對軟件設(shè)計和開發(fā)人員的要求最高。 A控制流方法 B原型化方法 C面向?qū)ο蠓欧椒?D結(jié)構(gòu)化方法14.軟機工程中最普遍應用的方法之一是結(jié)構(gòu)化生命周期方法(slc方法),下述()論述不具有scl方法的主要特征。 A嚴格定義需求 B規(guī)范化文檔格式 C劃分開發(fā)階段 D分析控制流程15.結(jié)構(gòu)化分析方法是一種預先嚴格定義需求的方法,它在實施時強調(diào)的是分析對象的() A程序流 B數(shù)據(jù)流 C指令流 D控制流16.目前存在若干種軟件生存周期模型。例如瀑布型、增量型、螺旋型、噴泉模型、變換模型和基于知識的模型等。其中規(guī)定了由前至后、相互銜接的固定次序的模型是()。 A瀑布模型 B增量模型 C噴泉模型 D螺旋模型17.在軟件生存周期的模型中,( )吸收了軟件工程“演化”的概念,適合于大型軟件的開。發(fā)。 A瀑布模型 B.基于知識的模型 C. 變換模型 D. 螺旋模型 18.Which of the following statement is correct? A. The definition plase result in the Software Requirement Specification B.Testing is optional in software life cycleC.CASE tools can only aid in the design phase of a sofeware lifecycleD.A change during alter phase does not require the documentation19.瀑布模型是一種( )A.軟件開發(fā)方法B.軟件生存周期C.程序設(shè)計方法學D.軟件生存周期模型20目前有若干種軟件生存周期模型。例如瀑布模型,增量模型,螺旋模型等。其中基于知識的模型也稱為( )A. 演化模型B. 智能模型C. 變換模型D. 噴泉模型21Software engineering economy is an effectinve part of software engineering,which of the following contents is the research content of software engineering economy( ).1.estimation of software development cost2.earn & cost analysis of software development3.adjustment of software development progressA. 1 onlyB. 2 and 3C. 1 and 2D.all 22.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期分成( )A.計劃階段,開發(fā)階段,運行階段B.計劃階段,編程階段,測試階段C.總體設(shè)計,詳細設(shè)計,編程調(diào)試D.需求分析,功能定義,系統(tǒng)設(shè)計23軟件工程中描述生存周期模型的瀑布模型一般包括計劃,( ),設(shè)計,編碼,測試,維護等幾個階段。A需求分析B需求調(diào)查C可行性分析D問題定義24.The task og the general design in structured life cycle,is to build what kind of software system structure( ).A.program structureB.general structureC.module structureD.function structure25.軟件開發(fā)中常采用的結(jié)構(gòu)化生命周期方法,由于其特征而一般稱其為( )。A.瀑布模型B.對象模型C.螺旋模型D.層次模型26.軟件開發(fā)模型是指軟件開發(fā)的全部過程,活動和任務的結(jié)果框架。主要的 開發(fā)模型有瀑布模型,演化模型,螺旋模型,噴泉模型和智能模型。螺旋模型將瀑布模型和演化模型相結(jié)合,并增加了( ),它建立在( )的基礎(chǔ)上,沿著螺線自內(nèi)向外每旋轉(zhuǎn)一圈,就得到( )的一個新版本。噴泉模型描述了( )的開發(fā)模型,它體現(xiàn)了這種開發(fā)方法創(chuàng)建軟件的過程所固有的( )和( )的特征。A.1.系統(tǒng)工程 2.風險分析 3.設(shè)計評審 4.進度控制B.1.模塊劃分 2.子程序分解 3.設(shè)計 4 .原型C.1.面向?qū)ο?2.面向數(shù)據(jù)流 3.面向數(shù)據(jù)結(jié)構(gòu) 4.面向數(shù)據(jù)驅(qū)動D.1.歸納 2.推理 3.迭代 4.遞歸E:1.開發(fā)各階段之間無“間隙” 2.開發(fā)各階段分界明顯 3.部分開發(fā)階段分界明顯 4.開發(fā)過程不分段27.在軟件工程中,軟件生存期(life cycle)可分為計劃、開發(fā)以及運行三個時期,每個時期又分為若干更小的階段。通常,計劃時期包括問題定義和( ),開發(fā)時期包括( ),概要設(shè)計,詳細設(shè)計,編碼以及( )。 A:1.需求分析 2.可行性研究 3.經(jīng)費預算 4.質(zhì)量保證 B:1.需求分析 2.可行性研究 3.總體設(shè)計 4.模塊化設(shè)計 C:1.文檔編制 2.運行維護 3.測試 4.驗收28.在結(jié)構(gòu)性的瀑布模型中,( )階段定義的標準將成為軟件測試中的系統(tǒng)測試階段的目標。 A:詳細設(shè)計階段 B.概要設(shè)計階段 C:可行性設(shè)計階段 D.需求分析階段29:增量模型是一種( )模型。 A:整體開發(fā) B:非整體開發(fā) C:靈活性差 D:較晚產(chǎn)生工作軟件30:漸增模型是( )。 A:與瀑布模型無關(guān) B:與變化模型有關(guān) C.瀑布模型的改進 D.變化模型的變種31.( )是指模擬某種產(chǎn)品的原始模型。 A.模型 B.最初模型 C.原型 D.進化模型32.構(gòu)造原型時,主要考慮( )。 A.全部功能 B.原型要體現(xiàn)的特征 C.全部細節(jié) D.全部需求33.建立原型的目的不同,實現(xiàn)原型的途徑也有所不同,下列不正確的類型是( )。 A.用于驗證軟件需求的原型 B.垂直原型 C.用于驗證設(shè)計方案的原型 D.用于演化出目標系統(tǒng)的原型34.瀑布模型本質(zhì)上是一種( )模型。 A.線性順序 B.順序迭代 C.線性迭代 D.及早見產(chǎn)品35.原型的使用和開發(fā)過程,叫做( )。 A.原型期 B.原型生存期 C.原型周期 D.以上說法都不對36.原型化方法是一種( )型的設(shè)計過程。 A.自外向內(nèi) B.自頂向下 C.自內(nèi)向外 D.自底向上37.對于原型的使用建議,以下說法不正確的是( )。 A.開發(fā)周期很長的項目,能夠使用原型 B.在系統(tǒng)的使用可能變化較大,不能相對穩(wěn)定時,能夠使用原型 C.缺乏開發(fā)工具,或?qū)υ偷目捎霉ぞ卟涣私獾臅r候,能夠使用原型 D.開發(fā)者對系統(tǒng)的某種設(shè)計方案的實現(xiàn)無信心或無十分的把握,能夠使用原型38.使用原型化方法,可以容易地確定系統(tǒng)的性能,確認各項主要系統(tǒng)服務的可應用性,確認( ),確認系統(tǒng)作為產(chǎn)品的結(jié)果。 A.系統(tǒng)設(shè)計的可行性 B.開發(fā)環(huán)境 C.需求說明 數(shù)據(jù)流圖39.以下說法錯誤的是( )。 A.增量模型是在瀑布模型的基礎(chǔ)上加以修改而形成的 B.增量模型推遲某些階段或所有階段中的細節(jié),從而較早的產(chǎn)生工作軟件 C.瀑布模型和增量模型都屬于整體開發(fā)模型 D.瀑布模型規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)40.快速原型模型的主要特點之一是( )。A.開發(fā)完畢才見到產(chǎn)品 B.及早提供工作軟件C.及早提供全部完整軟件 D.開發(fā)完畢才見到工作軟件41.對于構(gòu)造原型的建議,以下說法不正確的是( )。 A.暫不考慮速度、空間等性能效率方面的要求 B.暫不考慮錯誤恢復和處理 C.可降低可靠性和軟件質(zhì)量標準 D.對于原型界面部分的設(shè)計,暫不考慮與最終系統(tǒng)的界面內(nèi)容 E.根據(jù)不同的軟件類型和應用領(lǐng)域,可使用不同風格的高級語言來構(gòu)造原型42.以下說法不正確的是( )。 A.快速原型思想是在研究概要設(shè)計階段的方法和技術(shù)中產(chǎn)生的 B.探索型和試驗型快速原型采用的是拋棄策略 C.演化型快速原型采用附加策略 D.快速原型是利用原型輔助軟件開發(fā)的一種新思想43.以下說法正確的是( )。 A.對于探索型,用原型過程來代替全部開發(fā)階段 B.對于試驗型,用原型過程來代替設(shè)計階段 C.對于演化型,用原型過程來代替需求分析階段44.通常用于構(gòu)造原型的技術(shù)包括可執(zhí)行規(guī)格說明、( )、自動程序設(shè)計、專用語言、可重用的軟件和簡化假設(shè)等。 A.代數(shù)規(guī)格說明 B.基于腳本的設(shè)計 C.數(shù)據(jù)流圖 D.原型語言45.在原型法中稱( )為用戶/設(shè)計者,開發(fā)人員根據(jù)用戶要求不斷修改原型,直到滿足用戶要求為止。 A.用戶 B.開發(fā)人員 C.系統(tǒng)分析員 D.程序員46.對于原型的作用,以下說法不正確的是( )。 A.原型為軟件系統(tǒng)提供明確的需求說明 B.原型可作為新穎設(shè)計思想的實現(xiàn)工具及高風險開發(fā)的安全因素,證實設(shè)計的可行性 C.原型模型對開發(fā)過程中的問題和錯誤具有應付變化的機制 D.原型模型在用戶不愿意參與開發(fā)過程的情況下,能充分地鼓勵開發(fā)者地積極性47.對于不宜使用原型的情況,以下說法錯誤的是( )。 A.用戶對系統(tǒng)的需求較為模糊,對某種需求缺乏信心時,不宜使用原型 B.用戶不愿意參與開發(fā)的時候,不宜使用原型 C.用戶的數(shù)據(jù)資源沒有很好地組織和管理的時候,不宜使用原型 D.用戶的軟件資源沒有被組織和管理起來的時候,不宜使用原型48.以下說法錯誤的是( )。 A .對于探索型,把原型作為需求說明的補充形式 B.對于試驗型,通過原型過程的反復循環(huán),直接得到軟件系統(tǒng) C.對于演化型,原型成為設(shè)計的總體框架或設(shè)計結(jié)果的一部分49.原型化方法是用戶和設(shè)計者之間執(zhí)行的一種交互過程,適用于( )系統(tǒng)。 A.需求不確定性高的 B.需求確定的 C.管理信息 D.實時50.由于軟件項目的特點和運行原型的目的不同,原型有三種不同的作用類型: 探索型、( )和演化型。 A.實驗型 B.經(jīng)濟型 C.追加型 D.廢棄型51.用于設(shè)計階段,考察實現(xiàn)方案是否可行的是( )。 A.探索型 B.演化型 C.實驗型 D.增量型52.瀑布模型的問題是( )。 A.用戶容易參與開發(fā) B.缺乏靈活性 C.用戶與開發(fā)者容易溝通 D.適用可變需求2.2.3 簡答題 1.什么是軟件工程過程?它包含哪些過程? 2.什么是軟件生存周期模型?有哪些主要模型? 3.什么是軟件生存周期?它有哪些活動? 4.什么是軟件開發(fā)方法?有哪些主要方法? 5.結(jié)構(gòu)化方法總的指導思想是什么? 6.軟件開發(fā)的目標是什么? 7.原型的作用是什么? 8.瀑布模型有哪些局限性? 9.漸增模型有哪幾種?它們各有何特點? 10.增量模型的基本思想是什么? 11.快速原型模型的基本思想是什么? 12.使用快速原型方法構(gòu)造原型時,對原型有什么樣的要求? 13.快速原型模型的開發(fā)步驟是什么? 14.運用原型的策略有哪幾種? 15.構(gòu)造原型的技術(shù)有哪些?16.快速原型模型有哪幾種?各有何特點?17.試述快速原型模型有哪些優(yōu)缺點。18.在那些情況下適宜使用原型?哪些情況下不適宜使用原型?19.原型的開發(fā)環(huán)境是什么?20.什么是實驗型原型模型?21.原型特征分為幾種類型?22.什么是探索型原型模型?23.什么是演化型原型模型?2.3 參考答案 一、填空題1.獲取過程、供應過程、開發(fā)過程、操作過程、維護過程、管理過程、支持過程2.周期3.結(jié)構(gòu)化方法、Jackson方法、維也納開發(fā)方法(VDM)、面向?qū)ο蟮拈_發(fā)方法4.結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計、結(jié)構(gòu)化程序設(shè)計、數(shù)據(jù)流5.增量6.用戶需求、對象、面相對象、迭代性、無間隙性7.形式化分析、軟件需求形式化說明、變換8.自頂向下逐步求精、分解、抽象、數(shù)據(jù)處理領(lǐng)域9.形式語言10.瀑布、增量11.制定計劃、風險分析、開發(fā)實施、用戶評估12.面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計、面相對象實現(xiàn)13.數(shù)據(jù)結(jié)構(gòu)14.Booch、Coad、OMT15.軟件工具16.瀑布、增量、螺旋、噴泉、變換、基于知識的17.可行性分析、項目開發(fā)計劃、需求分析、概要設(shè)計、詳細設(shè)計、編碼、測試、維護18.軟件工具、軟件開發(fā)方法19.軟件過程描述20.結(jié)構(gòu)化方法21.瀑布模型、整體開發(fā)、增量分析22.增量方式、增量開發(fā)、增量提交23.增量方式24.可執(zhí)行的規(guī)格說明、基于腳本的設(shè)計、采用非常高級語言或?qū)iT語言、能重用軟件25.系統(tǒng)的界面設(shè)計、系統(tǒng)的總體結(jié)構(gòu)、系統(tǒng)的主要處理和性能、數(shù)據(jù)庫設(shè)計26.整體開發(fā)、增量開發(fā)27.開發(fā)部分工作軟件、增量方式、工作軟件、相應文檔28.快速原型模型、增量模型29.設(shè)計、設(shè)計、實現(xiàn)方案、可行性與合理性、總體框架、設(shè)計結(jié)果30.快速分析、構(gòu)造原型、運行原型、評價原型、修改31.需求分析32.線性33.全部開發(fā)、軟件工具和環(huán)境、反復循環(huán)、軟件系統(tǒng)34.快速分析、快速實現(xiàn)、試用原型、反復評價和改進原型35.需求分析、用戶的需求、所期望的特性、可行性36.功能性能37.實驗型38.目標模糊、用戶與開發(fā)者對項目都缺乏經(jīng)驗、用戶的需求39.發(fā)送對象、接受對象、事件跟蹤圖40.功能或變換、共享、實現(xiàn)步驟41.性質(zhì)(數(shù)據(jù)值)、屬性值42.演化型43.原型44.狀態(tài)、事件、狀態(tài)序列45.對象屬性值、輸入事件46.設(shè)計、實現(xiàn)方案、能否實現(xiàn)47.繼承、結(jié)構(gòu)和行為、代碼的共享48.探索型、實驗型、演化型49.早期可運行的版本、重要特性50.拋棄策略、附加策略51.漸增、原型52.原型、需求說明53.不、開發(fā)結(jié)束54.探索型55. 整體、非整體56. 增量方式,細節(jié),盡早57. 瀑布模型,增量開發(fā),增量開發(fā),增量提交58. 早起,重要特性59. 需求分析,需求說明,瀑布模型60. 需求分析和設(shè)計,編碼和測試二. 選擇題1. C2. B 【解析】:軟件開發(fā)的結(jié)構(gòu)化方法死基于瀑布模型的,而原型化方法是基于動態(tài)定義的需求。結(jié)構(gòu)化方法是在開發(fā)的每個階段都有的目標的,即在軟件的需求分析階段已經(jīng)將要開發(fā)的軟件的目標和功能確定,而原型化方法是再軟件開發(fā)過程中逐步明確軟件的需求,即動態(tài)地定義軟件地需求。顯然兩個開發(fā)方法地不同。但是,兩個方法地目的都是實現(xiàn)軟件生產(chǎn)地工程化,因此它們有互相借鑒的部分。所以,答案是B。 3 B 4 C【解析】:在結(jié)構(gòu)化的軟件開發(fā)中,一般情況下,可能需要占用的人數(shù)最大的階段是在軟件編程的階段,但從工作量上來說,在軟件的需求分析,定義及軟件的測試和維護階段需要的工作量更多,用軟件開發(fā)計劃中的402040原則,即可說明這一點,在軟件需求分析和定義階段,雖然工作量比軟件編程多,但因為軟件的需求分析和定義對開發(fā)人員的素質(zhì)要求比較高,所以占用的人員并不需要太多;同時由于軟件維護的周期比較長,所以其耗的工作量比軟件編程多,但一般來說它占用的人員并不比編程階段占用的對,所以答案為C。5 C6 A7. C【解析】:在軟件開發(fā)中,軟件的生命周期的各個階段的正確分析和設(shè)計是極為重要的。如果在這些階段出錯,將嚴重影響后期的開發(fā),因為它們的錯誤將以放射式的擴展造成更多的錯誤。所以答案是C。8 A 【解析】:在瀑布模型中需求分析階段指導概要設(shè)計階段,概要設(shè)計階段指導詳細設(shè)計階段,并且測試階段的系統(tǒng)測試以需求分析階段的定義為目標,集成測試以概要設(shè)計階段的定義為目標,單元測試以詳細階段的定義為目標。9 D10 B 【解析】:系統(tǒng)測試又稱確認測試,它包括功能測試和驗收測試兩種,它按軟件需求說明書上的功能逐項進行。11 C 【解析】:面向?qū)ο蟮募夹g(shù)首先在SmallTalk語言中得到應用,后來隨著C,JAVA等面向?qū)ο蟮恼Z言的出現(xiàn),面向?qū)ο蟮募夹g(shù)的廣泛的開發(fā)工具的支持,UML是在面向?qū)ο蟮能浖_發(fā)中在設(shè)計解毒常用的一個工具,因此應選C。12A13B【解析】:結(jié)構(gòu)化開發(fā)方法是指在軟件開發(fā)初期明確地定義軟件地功能和軟件開發(fā)地標準,作為軟件開發(fā)地后期實施依據(jù);原型化方法是指在軟件開發(fā)的過程中動態(tài)地定義軟件地需求和軟件的功能,標準,面向?qū)ο蟮拈_發(fā)方法,強調(diào)以對象作為在軟件設(shè)計中的基本元素,并以類和繼承來表達是事物具有的共性和他們之間存在的關(guān)系;控制流方法事實上是在軟件概要設(shè)計中常用的一種方法。由上述對各個方法的定義可知在原型化的開發(fā)中,需要能及時發(fā)現(xiàn)問題,建立更明確的軟件開發(fā)需求的高素質(zhì)軟件設(shè)計和開發(fā)人員。所以答案是B。14D 【解析】:在軟件開發(fā)的結(jié)構(gòu)化生命周期方法中,在軟件的定義階段就需要嚴格定義出軟件的需求說明書,以便以后的開發(fā)中遵照執(zhí)行,相對原型化開發(fā)中動態(tài)地定義軟件的需求來說,它需要在軟件開發(fā)的前期嚴格定義軟件的需求分析,并且在軟件開發(fā)的后期執(zhí)行中盡量少改動軟件的需求分析,而原型化方法在軟件的開發(fā)中頻繁地改動軟件地需求分析,也就是說,它地需求分析并不是很嚴格地。 結(jié)構(gòu)化生命周期方法是以軟件開發(fā)地瀑布面向為基礎(chǔ)地,所以它在開發(fā)中要劃分開發(fā)階段。 在軟件開發(fā)的結(jié)構(gòu)化生命周期方法中,在不同的階段生成不同的文件文檔,并且不同的文檔有不同的文檔格式,這是由在不同階段生成的文檔要完成的任務決定的,在可行性分析階段生成的可行性分析報告,在軟件的需求分析階段生成軟件需求規(guī)格說明書,在軟件概要設(shè)計,詳細設(shè)計階段生成軟件設(shè)計規(guī)格說明書等。 事實上,結(jié)構(gòu)化生命周期方法主要以分析數(shù)據(jù)流來設(shè)計軟件的,僅僅在軟件的詳細設(shè)計中,常常用到控制流的分析方法設(shè)計程序,所以答案是D。15 B 【解析】:軟件工程中的軟件工程技術(shù)主要是從軟件的系統(tǒng)結(jié)構(gòu),軟件得數(shù)據(jù)結(jié)構(gòu),軟件的數(shù)據(jù)流,軟件的控制流等角度來研究軟件是如何開發(fā)的,而指令流和程序流在軟件工程中事實上描述的不夠精確,相對地,它們在計算機的操作系統(tǒng)和編譯器,計算機系統(tǒng)結(jié)構(gòu)中有比較嚴格的定義。所以答案為B。16 A17 D18 A 【解析】:軟件測試可以發(fā)現(xiàn)軟件的錯誤,但缺點是不能證明沒有錯誤,然而軟件測試在軟件的生命周期中是必不可少的,良好的軟件測試是保證軟件的質(zhì)量的方法之一。 CASE是Computer Aid Software Engineering的縮寫,即計算機輔助軟件工程,CASEtools在軟件開發(fā)的各個工程中得到了廣泛的應用,按照CASE工具的使用功能標準來劃分,可分為:信息工程工具,過程建模與管理工具,項目計劃工具,風險分析工具,項目管理工具,需求跟蹤工具,度量和管理工具,文檔工具,系統(tǒng)軟件工具,數(shù)據(jù)管理工具,質(zhì)量保證工具,集成和軟件測試工具,靜態(tài)分析工具,動態(tài)分析工具,測試管理工具,客戶服務器測試工具,再工程工具等,還可以作進一步的劃分。 在軟件的開發(fā)中,一般;來說 系統(tǒng)設(shè)計的文檔,不能頻繁的改動。即使在軟件開發(fā)中由于技術(shù)等原因造成文檔的改動,也必須將改動造成的影響反應到所有相關(guān)的文檔中,以便該軟件系統(tǒng)的測試,維護,升級,保持一定的一致行性等。 軟件需求規(guī)格說明書中是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一,它把 軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述,詳細的功能說明,恰當?shù)臋z驗標準以及其他的于要求有關(guān)的數(shù)據(jù),它是在軟件的定義階段產(chǎn)生的,所以答案是A,19D20B21B 解析:軟件工程經(jīng)濟學是研究軟件開發(fā)中軟件開發(fā)成本的估算,成本效益分析的方法和技術(shù),用經(jīng)濟學的基本原理來研究軟件工程開發(fā)中的經(jīng)濟效益問題,而軟件開發(fā)進度的調(diào)整是軟件管理工程學研究的內(nèi)容之一,所以答案是B,22:A 解析:軟件開發(fā)生命周期方法是以瀑布模型為基礎(chǔ)的,瀑布模型將軟件的生命周期劃分成三個大的階段,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論