軟件工程基礎(chǔ)知識_第1頁
軟件工程基礎(chǔ)知識_第2頁
軟件工程基礎(chǔ)知識_第3頁
軟件工程基礎(chǔ)知識_第4頁
軟件工程基礎(chǔ)知識_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程基礎(chǔ)知識軟件工程基礎(chǔ)知識軟件工程基礎(chǔ)知識xxx公司軟件工程基礎(chǔ)知識文件編號:文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計,管理制度軟件工程基礎(chǔ)知識考點(diǎn)指導(dǎo)考點(diǎn)1:軟件工程和項(xiàng)目管理基礎(chǔ)★★★本考點(diǎn)考查軟件工程和軟件生成周期的概念,常用的軟件開發(fā)模型,以及軟件開發(fā)項(xiàng)目管理基礎(chǔ)知識。軟件工程三要素是______。A)技術(shù)、方法和工具B)方法、工具和過程C)方法、對象和類D)過程、模型、方法答案:B分析:軟件工程三要素:方法、工具和過程。軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。軟件工程過程定義了:方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和適應(yīng)變化所需要的管理以及軟件開發(fā)各個階段完成的工作。軟件工程概述1.軟件危機(jī)軟件危機(jī)是指計算機(jī)軟件開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。概括的說即為:能否滿足對軟件日益增長的需求能否維護(hù)數(shù)量日益增長的現(xiàn)有軟件2.軟件工程軟件工程是一類求解軟件的工程,它應(yīng)用計算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法,創(chuàng)建軟件以達(dá)到提高質(zhì)量、降低成本的目的。其中,計算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計范型、評估成本及確定權(quán)衡,管理科學(xué)用于計劃、資源、質(zhì)量、成本等管理。軟件工程是一門指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。軟件工程準(zhǔn)則可以概括為六條基本原理:(1)用分階段的生存周期計劃嚴(yán)格管理;(2)堅持進(jìn)行階段評審;(3)實(shí)行嚴(yán)格的產(chǎn)品控制;(4)采用現(xiàn)代程序設(shè)計技術(shù);(5)應(yīng)能清楚地審查結(jié)果;(6)合理安排軟件開發(fā)小組的人員。軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成______。A)計劃階段、開發(fā)階段、運(yùn)行階段

B)計劃階段、編程階段、測試階段C)總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試D)需求分析、功能定義、系統(tǒng)設(shè)計答案:A軟件生命周期的最后的一個階段是______。

A)書寫軟件文檔B)軟件維護(hù)C)穩(wěn)定性測試D)書寫詳細(xì)用戶說明答案:B軟件生存(生命)周期軟件生存周期:軟件的產(chǎn)生直到報廢的生命周期。從時間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生命的漫長周期依次劃分為若干階段,每個階段有相對獨(dú)立的任務(wù),然后逐步完成每個階段的任務(wù)。軟件生存周期受軟件規(guī)模、種類、開發(fā)方式、開發(fā)環(huán)境、方法論的影響有多種劃分方法:一種劃分方法為:軟件定義(又稱系統(tǒng)分析,包括問題定義,可行性研究,需求分析),軟件開發(fā)(包括總體設(shè)計,詳細(xì)設(shè)計,編碼和單元測試,綜合測試),軟件使用與維護(hù)等三個時期。各階段的關(guān)鍵問題和階段性成果如表7-1所示:表7-1軟件生存周期各階段描述階段關(guān)鍵問題階段性成果問題定義問題是什么關(guān)于規(guī)模和目標(biāo)的報告書可行性研究有可行的解嗎系統(tǒng)的高層邏輯模型:數(shù)據(jù)流圖成本/效益分析需求分析系統(tǒng)必須做什么系統(tǒng)的邏輯模型:數(shù)據(jù)流圖(MSC圖)數(shù)據(jù)字典(類清單、對象間關(guān)系)算法描述總體設(shè)計概括地說,應(yīng)如何解決這個問題可能的解法:系統(tǒng)流程圖成本/效益分析推薦的系統(tǒng)結(jié)構(gòu):層次圖,結(jié)構(gòu)圖(SDL)詳細(xì)設(shè)計怎樣具體地實(shí)現(xiàn)這個系統(tǒng)編碼規(guī)格說明(SDL)綜合測試符合要求的軟件綜合測試方案和結(jié)果完整性一致的軟件配置維護(hù)持久地滿足用戶需求的軟件完整準(zhǔn)確的維護(hù)記錄另一種劃分是把軟件生命周期劃分為6個階段:即制定計劃、需求分析、軟件設(shè)計、程序編寫、軟件測試和運(yùn)行維護(hù)。瀑布模型(WaterfallModel)突出的缺點(diǎn)是不適應(yīng)______的變動。(2002年上午填空22)A)算法B)平臺C)程序語言D)用戶需求答案:D分析:瀑布模型最為突出的缺點(diǎn)是缺乏靈活性,不能適應(yīng)用戶需求的動態(tài)變更。在編制程序時,應(yīng)采納的原則之一是__A__。開發(fā)軟件時對提高開發(fā)人員工作效率至關(guān)重要的是__B__。軟件工程中描述生命周期的瀑布模型一般包括計劃、__C__、設(shè)計、編碼、測試、維護(hù)等幾個階段,其中設(shè)計階段通常又可依次分成__D__和__E__兩步。(1994年上半年題6)A;①不限制goto語句的使用 ②減少或取消注解行③程序越短越好 ④程序結(jié)構(gòu)應(yīng)有助于讀者理解B;①操作系統(tǒng)的資源管理功能 ②程序開發(fā)環(huán)境③程序人員數(shù)量 ④計算機(jī)的并行處理能力C:①需求分析 ②需求調(diào)查 ③可行性分析 ④問題定義D,E:①數(shù)據(jù)結(jié)構(gòu)設(shè)計 ②詳細(xì)設(shè)計 ③概要設(shè)計 ④數(shù)據(jù)庫設(shè)計⑤方案設(shè)計 ⑥代碼設(shè)計 答案:A) ④B)②C)①D) ③E)②包含風(fēng)險分析的軟件工程模型是_____。

A)螺旋模型B)瀑布模型

C)增量模型D)噴泉模型答案:A軟件開發(fā)模型軟件開發(fā)模型是軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架。常用的軟件開發(fā)模型有:瀑布模型、演化模型、螺旋模型、噴泉模型等。1.瀑布模型瀑布模型將軟件生存周期的各項(xiàng)活動規(guī)定為依固定順序連接的若干階段工作,是一種線性模型。各個階段自頂向下,如瀑布流水,逐級下落。各階段活動為:可行性研究與計劃、需求分析、設(shè)計(概要設(shè)計和詳細(xì)設(shè)計)、編碼、測試、運(yùn)行和維護(hù)。每個開發(fā)階段具有以下特征,從上一階段接受本階段工作的對象作為輸入,對上述輸入實(shí)施本階段的活動,給出本階段的工作成果作為輸出傳入下一階段,對本階段工作進(jìn)行評審,若本階段工作得到確認(rèn),則繼續(xù)下階段工作,否則返回前一階段甚至更前階段。瀑布模型最為突出的缺點(diǎn)是該模型缺乏靈活性。它的特點(diǎn)如下:1)階段間具有順序性和依賴性:前一階段工作完成之后,才能開始后一階段的工作;前一階段的輸出文檔就是后一階段的輸入文檔;2)推遲實(shí)現(xiàn)的觀點(diǎn):區(qū)分邏輯設(shè)計與物理設(shè)計,盡可能推遲物理實(shí)現(xiàn);3)質(zhì)量保證的觀點(diǎn):每個階段必須完成規(guī)定的文檔。每個階段結(jié)束前都需對所完成的文檔進(jìn)行評審,以盡早發(fā)現(xiàn)問題;2.演化模型演化模型主要針對事先不能完整定義需求的軟件開發(fā),其開發(fā)過程一般是首先開發(fā)核心系統(tǒng),當(dāng)核心系統(tǒng)投入運(yùn)行后,軟件開發(fā)人員根據(jù)用戶的反饋,實(shí)施開發(fā)的迭代過程,每一迭代過程均由需求、設(shè)計、編碼、測試、集成等階段組成,直到軟件開發(fā)結(jié)束。演化模型在一定程度上減少了軟件開發(fā)活動的盲目性。3.螺旋模型它是在瀑布模型和演化模型的基礎(chǔ)上,加入兩者所忽略的風(fēng)險分析所建立的一種軟件開發(fā)模型。沿螺旋模型順時針方向,依次表達(dá)了四個方面的活動,制定計劃、風(fēng)險分析、實(shí)施工程、客戶評估。4.噴泉模型它體現(xiàn)了軟件創(chuàng)建所固有的迭代和無間隙特征,噴泉模型主要用于支持面向?qū)ο箝_發(fā)過程。5.瀑布模型、演化模型、螺旋模型比較相同點(diǎn)是這三個模型都分為多個階段。但瀑布模型一次完成軟件;演化模型分為多次完成,每次迭代完成軟件的一個部分;螺旋模型也分為多次完成,每次完成軟件的一個新原型,并考慮風(fēng)險分析。軟件項(xiàng)目管理所涉及的范圍覆蓋了整個軟件的_____。A)開發(fā)過程B)運(yùn)行與維護(hù)過程C)定義過程 D)生存期答案:D

為使軟件開發(fā)獲得成功,一個關(guān)鍵問題是必須對軟件范圍、風(fēng)險、資源、任務(wù)、里程碑、成本,進(jìn)度等做到心中有數(shù),而______可以提供這些信息。A)計算機(jī)輔助工程B)軟件開發(fā)工具C)軟件項(xiàng)目管理D)軟件估算答案:CPutnam提出的模型,是一種______模型。它是假定在軟件開發(fā)的整個生存期中工作量有特定的分布。A)模塊化成本B)結(jié)構(gòu)化成本C)動態(tài)單變量成本D)動態(tài)多變量成本答案:D軟件開發(fā)成本主要是指軟件開發(fā)過程中所花費(fèi)的______及相應(yīng)的代價。A)勞動力B)工作量C)資源D)持續(xù)時間答案:B對于一個大型的軟件項(xiàng)目,由于項(xiàng)目的復(fù)雜性,需要進(jìn)行一系列的估算處理。主要按__(1)__和__(2)__手段進(jìn)行。估算的方法分為3類:從項(xiàng)目的整體出發(fā),進(jìn)行(2)的方法稱為__(3)__估算法。把待開發(fā)的軟件細(xì)分,直到每個子任務(wù)都已明確所需要的開發(fā)工作量,然后把它們加起來,得到軟件開發(fā)總工作量的方法稱為__(4)__估算法。而把待開發(fā)的軟件項(xiàng)目與過去已完成的軟件項(xiàng)目做類比,區(qū)分出類似部分和不同部分分別處理的方法稱為__(5)__估算法。__(6)__是由多位專家進(jìn)行成本估算的方法。1、2:A)類推B)類比C)分解D)綜合3~6:A)差別B)自頂向下C)自底向上D)專家判定技術(shù)E.循序漸進(jìn)F.比較答案:1)C2)A3)B4)C5)A6)D分析:成本估算通常按類推(根據(jù)以往開發(fā)類似軟件的經(jīng)驗(yàn)估算)和分解(按軟件生存周期的各個階段花費(fèi)的代價估算)手段進(jìn)行。注意,這里答題(1)和(2)的答案不能互換,因?yàn)轭}目后面用到了(2)的答案。根據(jù)題意:“從項(xiàng)目的整體出發(fā),進(jìn)行(2)的方法稱為__(3)__估算法。”顯然,答題(3)的答案應(yīng)為B,因此(2)的答案為A,(1)的答案為C。把待開發(fā)的軟件細(xì)分,直到每個子任務(wù)都已明確所需要的開發(fā)工作量,然后把它們加起來,得到軟件開發(fā)總工作量的方法稱為自底向上估算法。而把待開發(fā)的軟件項(xiàng)目與過去已完成的軟件項(xiàng)目做類比,區(qū)分出類似部分和不同部分分別處理的方法稱為差別估算法。由多位專家進(jìn)行成本估算的方法稱為專家判定技術(shù)。軟件開發(fā)項(xiàng)目管理基礎(chǔ)知識軟件開發(fā)項(xiàng)目管理,就是對軟件生存期的一切活動進(jìn)行管理。具體內(nèi)容包括對開發(fā)人員、組織機(jī)構(gòu)、用戶、文檔資料等方面的管理。1.成本估算成本估算主要指軟件開發(fā)過程中所花費(fèi)的工作量及相應(yīng)的代價。通常可以根據(jù)以往開發(fā)類似軟件的經(jīng)驗(yàn)估算,也可以按軟件生存周期的各個階段所花費(fèi)的代價分別估算。有二種估算方法:開發(fā)費(fèi)用=人月數(shù)×每個人月的代價開發(fā)費(fèi)用=源代碼行數(shù)×每行平均費(fèi)用現(xiàn)常用的幾種估算模型如下:1)IBM模型1977年,IBM的Walston和Felix提出了如下的估算公式:E=×,L是源代碼行數(shù)(以KLOC計,LOC:代碼行),E是工作量(以PM計,PM:人月) D=×,D是項(xiàng)目持續(xù)時間(以月計) S=×,S是人員需要量(以人計) DOC=49×。DOC是文檔數(shù)量(以頁計)在此模型中,一般指一條機(jī)器指令為一行源代碼。一個軟件的源代碼行數(shù)不包括程序注釋、作業(yè)命令、調(diào)試程序在內(nèi)。對于非機(jī)器指令編寫的源程序,如匯編語言或高級語言程序,應(yīng)轉(zhuǎn)換成機(jī)器指令源代碼行數(shù)來考慮。2)Putnam模型這是1978年P(guān)utnam提出的模型,是一種動態(tài)多變量模型。它是假定在軟件開發(fā)的整個生存期中工作量有特定的分布。這種模型是依據(jù)在一些大型項(xiàng)目(總工作量達(dá)到或超過30個人年)中收集到的工作量分布情況而推導(dǎo)出來的,但也可以應(yīng)用在一些較小的軟件項(xiàng)目中。Putnam模型可以導(dǎo)出一個“軟件方程”,把已交付的源代碼(源語句)行數(shù)與工作量和開發(fā)時間聯(lián)系起來。其中,td是開發(fā)持續(xù)時間(以年計),K是軟件開發(fā)與維護(hù)在內(nèi)的整個生存期所花費(fèi)的工作量(以人年計),L是源代碼行數(shù)(以LOC計),Ck是技術(shù)狀態(tài)常數(shù),它反映出“妨礙程序員進(jìn)展的限制”,并因開發(fā)環(huán)境而異。其典型值的選取如下所示: L=Ck*K1/3*td4/3其中:L-----------源代碼行數(shù)(以LOC計)K-----------整個開發(fā)過程所花費(fèi)的工作量(以人年計)td-----------開發(fā)持續(xù)時間(以年計)Ck----------技術(shù)狀態(tài)常數(shù),它反映“妨礙開發(fā)進(jìn)展的限制”,取值因開發(fā)環(huán)境而異,見表7-2。表7-2Ck的典型值開發(fā)環(huán)境開發(fā)環(huán)境舉例2000差沒有系統(tǒng)的開發(fā)方法,缺乏文檔和復(fù)審8000好有合適的系統(tǒng)的開發(fā)方法,有充分的文檔和復(fù)審11000優(yōu)有自動的開發(fā)工具和技術(shù)從上述方程加以變換,可以得到估算工作量的公式:K=L3/(Ck3*td4)還可以估算開發(fā)時間:td=[L3/(Ck3*K)]1/43)COCOMO模型(COnstructiveCOstMOdel)這是由TRW公司開發(fā)。Boehm提出的結(jié)構(gòu)型成本估算模型,是一種精確、易于使用的成本估算方法。該模型還分為:基本COCOMO模型,是一個靜態(tài)單變量模型,它是對整個軟件系統(tǒng)進(jìn)行估算;中級COCOMO模型,是一個靜態(tài)多變量模型,中級COCOMO模型將軟件系統(tǒng)型分為系統(tǒng)和部件兩個層次,它用于部件級的估算更精確些;詳細(xì)COCOMO模型,將軟件系統(tǒng)模型分為系統(tǒng)、子系統(tǒng)和模塊三個層次。2.風(fēng)險分析與任何其他工程項(xiàng)目一樣,軟件工程項(xiàng)目的開發(fā)也存在各種各樣的風(fēng)險,有些風(fēng)險甚至是災(zāi)難性的。認(rèn)為,風(fēng)險與下面三個方面有關(guān):1)關(guān)心未來,風(fēng)險是否會導(dǎo)致失敗;2)關(guān)系變化,用戶需求、開發(fā)技術(shù)、及所有與項(xiàng)目有關(guān)的實(shí)體會發(fā)生什么變化;3)解決選擇,采用什么方法和工具,配備多少人力,質(zhì)量如何。軟件工程的風(fēng)險分析包括:風(fēng)險標(biāo)識、風(fēng)險估算、風(fēng)險評價和風(fēng)險管理四部分。1)風(fēng)險標(biāo)識從宏觀上看,風(fēng)險可以分為項(xiàng)目風(fēng)險、技術(shù)風(fēng)險和商業(yè)風(fēng)險三類。由于項(xiàng)目在預(yù)算、進(jìn)度、人力、資源、顧客和需求等方面的原因?qū)浖?xiàng)目產(chǎn)生的不良影響稱為項(xiàng)目風(fēng)險。軟件在設(shè)計、實(shí)現(xiàn)、接口、驗(yàn)證和維護(hù)過程中可能發(fā)生的潛在問題,如規(guī)格說明的二義性、采用陳舊或尚不成熟的技術(shù)等等,對軟件項(xiàng)目帶來的危害稱技術(shù)風(fēng)險。開發(fā)了一個沒人需要的優(yōu)質(zhì)軟件,或推銷部門不知如何銷售這一軟件產(chǎn)品,或開發(fā)的產(chǎn)品不符合公司的產(chǎn)品銷售戰(zhàn)略,等等,稱為商業(yè)風(fēng)險。這些風(fēng)險有些是可以預(yù)料的,有些是很難預(yù)料的。2)風(fēng)險估算估算造成或影響風(fēng)險的因素,以及風(fēng)險所造成的損失。3)風(fēng)險評價和管理盡可能地估計各種風(fēng)險,然后逐一列出并評價風(fēng)險的程度,對這些風(fēng)險進(jìn)行密切關(guān)注和嚴(yán)格管理。3.進(jìn)度管理對軟件的開發(fā)進(jìn)度進(jìn)行管理,制定開發(fā)進(jìn)度表。制定進(jìn)度表有2種方法:1)系統(tǒng)最終交付日期已確定,軟件開發(fā)部門必須在規(guī)定期限內(nèi)完成;2)系統(tǒng)最終交付日期只確定了大致的時限,最后交付日期由軟件開發(fā)部門確定。進(jìn)度安排的常用圖形描述方法有:Gantt圖(甘特圖)和PERT圖(計劃評審技術(shù)圖)4.人員管理可按項(xiàng)目進(jìn)度對軟件人員分組,如需求分析組、設(shè)計組、編碼組、測試組、維護(hù)組、質(zhì)量保證等。程序設(shè)計小組的組織形式可有多種形式分類。如主程序員組、無主程序員組、層次式程序員組等。軟件開發(fā)環(huán)境是支持軟件產(chǎn)品開發(fā)的軟件系統(tǒng),它由____和環(huán)境集成機(jī)制構(gòu)成,環(huán)境集成機(jī)制包括數(shù)據(jù)集成、控制集成和界面集成。(2004年下半年上午題49)A)軟件工具集B)軟件測試工具集C)軟件管理工具集D)軟件設(shè)計工具集答案:A分析:軟件開發(fā)環(huán)境是由軟件開發(fā)工具集和環(huán)境集成機(jī)制構(gòu)成的。前者用于支持軟件開發(fā)的相關(guān)過程、活動和任務(wù);后者為工具集成、軟件開發(fā)、維護(hù)和管理提供統(tǒng)一的支持。軟件工具與軟件開發(fā)環(huán)境1.軟件工具可用來幫助和支持軟件需求分析、軟件開發(fā)、測試、維護(hù)、模擬、移植或管理而編制的計算機(jī)程序或軟件。軟件工具是一個程序系統(tǒng)。軟件工具通常由工具、工具接口和工具用戶接口三部分構(gòu)成。工具通過工具接口與其他工具、操作系統(tǒng)或網(wǎng)絡(luò)操作系統(tǒng),以及通信接口、環(huán)境信息庫接口等進(jìn)行交互作用。當(dāng)工具需要與用戶進(jìn)行交互作用時則通過工具的用戶接口。軟件工具可以分為:1)軟件開發(fā)工具:對應(yīng)軟件開發(fā)過程中的各種活動,通常有需求分析工具、設(shè)計工具、編碼與排錯工具等2)軟件維護(hù)工具:對應(yīng)軟件維護(hù)過程中的各種活動,主要有版本控制工具、文檔分析工具、開發(fā)信息庫工具、逆向工程工具、再工程工具等。3)軟件管理和軟件支持工具:用來輔助管理人員和軟件支持人員的管理和軟件支持活動,以確保軟件高質(zhì)量完成。通常有項(xiàng)目管理工具、配置管理工具、軟件評價工具等2.軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境是指在計算機(jī)的基本軟件的基礎(chǔ)上,為支持軟件的開發(fā)而提供的一組工具軟件系統(tǒng)。軟件開發(fā)環(huán)境的定義可從三方面理解:(1)軟件開發(fā)環(huán)境是一組相關(guān)工具的集合。(2)這些相關(guān)工具按一定的開發(fā)方法或一定開發(fā)處理模型組織起來的。(3)這些相關(guān)工具支持整個軟件生存期的各階段或部分階段。軟件開發(fā)環(huán)境按解決的問題可分為:程序設(shè)計環(huán)境、系統(tǒng)合成環(huán)境、項(xiàng)目管理環(huán)境三類;按軟件開發(fā)環(huán)境的演變趨向可分為:以語言為中心的環(huán)境、工具箱環(huán)境和基于方法的環(huán)境三類;按集成化程度有第一代、第二代、第三代的開發(fā)環(huán)境。CASE是一組______的集合。

A)工具

B)工具和方法

C)方法

D)程序答案:BCASE系統(tǒng)所涉及到的技術(shù)有兩類:一類是支持軟件開發(fā)過程本身的技術(shù);另一類是支持軟件_____的技術(shù)。

A)開發(fā)過程本身

B)開發(fā)方法管理C)開發(fā)方法本身D)開發(fā)過程管理答案:D平臺集成是指工具運(yùn)行在相同的______平臺上。

A)硬件

B)軟件

C)硬件/操作系統(tǒng)

D)硬件/軟件答案:CCASE工具CASE是一組工具和方法的集合,可以輔助軟件開發(fā)生命周期各階段進(jìn)行軟件開發(fā)。CASE把軟件開發(fā)技術(shù)、軟件工具和軟件開發(fā)方法集成到一個統(tǒng)一而一致的框架中,并且吸收了CAD(計算機(jī)輔助設(shè)計)、軟件工程、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)和許多其他計算機(jī)領(lǐng)域的原理和技術(shù)。因而,CASE領(lǐng)域是一個應(yīng)用、集成和綜合的領(lǐng)域。根據(jù)CASE系統(tǒng)對軟件過程的支持范圍,CASE可分為三類:(1)支持單個過程任務(wù)的工具。(2)支持某一過程所有活動或某些活動的工作臺。(3)環(huán)境支持軟件過程大部分乃至所有活動,一般包括幾個不同工作臺的集合。集成化CASE包括五級模型:(1)平臺集成:工具運(yùn)行在相同的硬件/操作系統(tǒng)平臺上(2)數(shù)據(jù)集成:工具使用共享數(shù)據(jù)模型來操作(3)表示集成:工具使用相同的用戶界面(4)控制集成:工具激活后能控制其他操作(5)過程集成:工具在一個過程模型和"過程機(jī)"的指導(dǎo)下使用CASE工具臺是一組工具集,支持像設(shè)計、實(shí)現(xiàn)或測試等特定的軟件開發(fā)階段。CASE工具組裝成一個工具臺后工具能協(xié)同工作,可提供比單一工具更好的支持。CASE工作臺包括:(1)程序設(shè)計工作臺。由支持程序設(shè)計的一組工具組成。(2)分析和設(shè)計工作臺。支持軟件過程的分析和設(shè)計階段。(3)測試工作臺。(4)交叉開發(fā)工作臺。這些工作臺支持在一種機(jī)器上開發(fā)軟件,而在其他的系統(tǒng)上運(yùn)行所開發(fā)的軟件。(5)配置管理(CM)工作臺。這些工作臺支持配置管理。(6)文檔工作臺。這些工具支持高質(zhì)量文檔的制作。(7)項(xiàng)目管理工作臺。支持項(xiàng)目管理活動。______是指在開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品時,遵循某個軟件過程所能達(dá)到的期望效果。A)軟件過程能力B)軟件過程性能C)編程能力D)CMM答案:A軟件過程能力評估1.軟件過程:人們在開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品時所涉及的各種活動、方法、實(shí)踐和改革等。其中軟件相關(guān)產(chǎn)品包括軟件項(xiàng)目計劃、設(shè)計文檔、程序代碼、測試用例和用戶手冊等。2.軟件過程能力:當(dāng)遵循某個軟件過程時所能達(dá)到的期望效果,它可以有效預(yù)測企業(yè)接收新的軟件項(xiàng)目時可能得到的結(jié)果。3.軟件過程性能:當(dāng)遵循某個軟件過程時所達(dá)到的實(shí)際效果。它可以用于驗(yàn)證軟件過程能力。4.軟件過程評估的意義:1)軟件過程改進(jìn)的需要(1)軟件過程不斷改進(jìn)是軟件工程的基本原理之一。軟件過程的基本原理有以下七條:按軟件生成周期分階段指定計劃并認(rèn)真實(shí)施逐階段進(jìn)行確認(rèn)堅持嚴(yán)格的產(chǎn)品控制使用現(xiàn)代程序設(shè)計技術(shù)明確責(zé)任用人少而精不斷改進(jìn)開發(fā)過程)(2)軟件過程改進(jìn)是軟件生存周期的基本過程之一。2)減低軟件風(fēng)險的需要減低軟件風(fēng)險包括減低軟件采購者的風(fēng)險和軟件研制者的風(fēng)險。CMM描述了______個級別的軟件過程成熟度,成熟度反映了軟件過程能力(SoftwareProcessCapability)的大小,任何一個軟件機(jī)構(gòu)的軟件過程必定屬于其中某個級別。A)3B)5C)7D)9答案:B軟件過程能力成熟度(CMM)模型簡介軟件過程成熟度:指一個特定的軟件過程被顯式定義、管理、度量、控制和能行的程度。成熟度可以用于指示企業(yè)加強(qiáng)其軟件過程能力的潛力。當(dāng)一個企業(yè)達(dá)到了一定的軟件過程成熟級別后,它將通過制定策略、建立標(biāo)準(zhǔn)和確立機(jī)構(gòu)結(jié)構(gòu)使它的軟件過程制度化。而制度化又促使企業(yè)通過建立基礎(chǔ)設(shè)施和公司文化來支持相關(guān)的方法、實(shí)踐和過程。從而使之可以持續(xù)并維持一個良性循環(huán)。CMM描述了五個級別的軟件過程成熟度(初始級可重復(fù)級已定義級已管理級優(yōu)化級),成熟度反映了軟件過程能力(SoftwareProcessCapability)的大小,任何一個軟件機(jī)構(gòu)的軟件過程必定屬于其中某個級別。除了第一級以外,每級成熟度又由若干關(guān)鍵過程域(KeyProcessArea)構(gòu)成。五個成熟度及其關(guān)鍵過程領(lǐng)域如圖所示:需要提出的是,任何一個成熟度級別的關(guān)鍵過程域集都是本級描述的關(guān)鍵過程域集和所有下級的關(guān)鍵過程域集的并集。如3級的關(guān)鍵過程域就應(yīng)有13個不同的域,其中7個是3級自己包含的,6個屬于2級成熟度,而4級應(yīng)有15個域。 五個成熟度級別:初始級、可重復(fù)級(有規(guī)章的過程)、定義級(標(biāo)準(zhǔn)化、一致的過程)、管理級(可預(yù)測過程)、優(yōu)化級(可持續(xù)改進(jìn)的過程)分別描述如下:第一級:初始級成功來源于個人英雄主義而非機(jī)構(gòu)行為,因此它不可重復(fù),更換人員后成功便難以維持。第二級:可重復(fù)級主要特點(diǎn)是項(xiàng)目計劃和跟蹤是確定且有效的,項(xiàng)目的軟件過程是可控的,以及已有的成功經(jīng)驗(yàn)是可重復(fù)的。第三級:定義級主要特征在于軟件過程已被提升成標(biāo)準(zhǔn)化過程,從而更加具有穩(wěn)定性、重復(fù)性和可控性。第四級:管理級主要特征是定量化、可預(yù)測、異常控制和高質(zhì)量。對于軟件的過程和產(chǎn)品有定量的質(zhì)量指標(biāo)。重要的軟件過程活動均配有生產(chǎn)率和質(zhì)量方面的度量指標(biāo);第五級:優(yōu)化級主要特征是新技術(shù)的采用和軟件過程的改進(jìn)被作為日常的業(yè)務(wù)活動來加以計劃和管理??键c(diǎn)2:面向?qū)ο蠹夹g(shù)基礎(chǔ)★★★★★本考點(diǎn)考查面向?qū)ο蟮幕靖拍詈兔嫦驅(qū)ο蠓治雠c設(shè)計的基本知識?;靖拍畎ǎ簩ο?、類、消息、繼承、多態(tài)等。在面向?qū)ο蟪绦蛟O(shè)計語言中,__(1)__是利用可重用成分構(gòu)造軟件系統(tǒng)的最有效的特性,它不僅支持系統(tǒng)的可重用性,而且還有利于提高系統(tǒng)的可擴(kuò)充性;__(2)__可以實(shí)現(xiàn)發(fā)送一個通用的消息而調(diào)用不同的方法;__(3)__是實(shí)現(xiàn)信息隱蔽的一種技術(shù),其目的是使類的__(4)__相互分離。(2004年下半年上午填空31-34)(1)A)封裝B)消息傳遞C)引用D)繼承(2)A)封裝B)多態(tài)C)引用D)繼承(3)A)引用B)繼承C)封裝D)多態(tài)(4)A)定義與實(shí)現(xiàn)B)分析與測試C分析與設(shè)計D)實(shí)現(xiàn)與測試答案:(1)D(2)B(3)C(4)A分析:面向?qū)ο蟮闹饕匦杂欣^承性、多態(tài)性和封裝性。繼承是在已有類的基礎(chǔ)上增量構(gòu)造新的類,它是利用可重用成分構(gòu)造軟件系統(tǒng)的最有效的特性;多態(tài)可以實(shí)現(xiàn)發(fā)送一個通用的消息而調(diào)用不同的方法;封裝指將一個數(shù)據(jù)和與這個數(shù)據(jù)有關(guān)的操作集合放在一起,形成一個獨(dú)立的實(shí)體,它是實(shí)現(xiàn)信息隱蔽的一種技術(shù),其目的是使類的定義與實(shí)現(xiàn)相互分離。采用面向?qū)ο蠹夹g(shù)開發(fā)的應(yīng)用系統(tǒng)的特點(diǎn)是______。(2003年上午填空2)A)重用性更強(qiáng) B)運(yùn)行速度更快 C)占用存儲量小 D)維護(hù)更復(fù)雜答案:A分析:采用面向?qū)ο蠹夹g(shù)開發(fā)的應(yīng)用系統(tǒng)的特點(diǎn)有:重用性更強(qiáng)、維護(hù)更簡單等。在面向?qū)ο蠓椒ㄖ?,對象可看成是屬性(?shù)據(jù))以及這些屬性上的專用操作的封裝體。封裝是一種___A___技術(shù),封裝的目的是使對象的___B___分離。 類是一組具有相同屬性和相同操作的對象的集合,類中的每個對象都是這個類的一個___C___。類之間共享屬性和操作的機(jī)制稱為___D___。一個對象通過發(fā)送___E___來請求另一對象為其服務(wù)。(1999年上午題5)A:(1)組裝 (2)產(chǎn)品化 (3)固化 (4)信息屏蔽B:(1)定義和實(shí)現(xiàn) (2)設(shè)計和測試 (3)設(shè)計和實(shí)現(xiàn) (4)分析和定義C:(1)例證(illustration) (2)用例(use-case)

(3)實(shí)例(instance) (4)例外(exception)D:(1)多態(tài)型 (2)動態(tài)綁定 (3)靜態(tài)綁定 (4)繼承E:(1)調(diào)用語句 (2)消息 (3)命令 (4)口令答案:A)4B)1C)3D)4E)2面向?qū)ο蟮幕靖拍?.基本術(shù)語(1)對象:是對客觀世界事務(wù)的一種抽象,是由數(shù)據(jù)(屬性)及其上操作(行為)組成的封裝體。(2)類:是一組具有相同屬性和相同操作的對象的集合。(3)屬性:每一對象的屬性是一些有著確定值的、用于描述對象狀態(tài)信息的數(shù)據(jù)。(4)方法:為了完成某一任務(wù),一個對象所提供的、并體現(xiàn)其責(zé)任的操作。(5)消息:一個對象為實(shí)現(xiàn)其責(zé)任而與其他對象的通信,在面向?qū)ο蠓椒ㄖ?,對象之間只能通過消息進(jìn)行通信。(6)繼承:表達(dá)類之間相似性的一種機(jī)制,即在已有的類的基礎(chǔ)之上增量構(gòu)造新的類,前者稱為父類(或超類),后者稱為子類,如果子類只從一個父類繼承,則稱為單繼承,如果子類從一個以上父類繼承,則稱為多繼承。(7)封裝:指將一個數(shù)據(jù)和與這個數(shù)據(jù)有關(guān)的操作集合放在一起,形成一個獨(dú)立的實(shí)體——對象,用戶不必知道對象行為的實(shí)現(xiàn)細(xì)節(jié),只需根據(jù)對象提供的外部特性接口訪問對象即可。因此,從用戶的觀點(diǎn)來看,這些對象的行為就像包含在一個“黑匣子”里,是隱蔽的、看不見的。(8)多態(tài):描述的是同一個消息可以根據(jù)發(fā)送消息對象的不同采用多種不同的行為方式。(9)依賴:一個依賴規(guī)約了兩個模型元素(或兩個模型元素集合)之間的一種語義關(guān)系。(10)狀態(tài):一個狀態(tài)是在對象的生命期內(nèi)的一個條件,或在對象滿足某個條件,進(jìn)行某個動作或等待某個事件的期間內(nèi)的一個交互。(11)事件:指可以引發(fā)狀態(tài)轉(zhuǎn)換的所發(fā)生的事情。2.對象的特點(diǎn):自治性,對象具有一定的獨(dú)立計算能力;封閉性,對象具有信息隱蔽的能力;通信性,對象具有與其他對象通信的能力。3.面向?qū)ο蟮闹饕匦裕悍庋b性、繼承性和多態(tài)性。4.面向?qū)ο蟮哪P停ê唵螒?yīng)用):包括三個,它們分別是:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型、描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型和和描述系統(tǒng)功能的功能模型。______是用面向?qū)ο蟮姆椒▽δ繕?biāo)系統(tǒng)的問題空間進(jìn)行理解,分析和反映。通過對象層次結(jié)構(gòu)的組織確定解空間中應(yīng)存在的對象和對象層次結(jié)構(gòu)。A)面向?qū)ο蠓治鯞)面向?qū)ο笤O(shè)計C)抽象性D)對象圖答案:A面向?qū)ο蠓治雠c設(shè)計概述1.面向?qū)ο蠓治雒嫦驅(qū)ο蠓治觯∣bject-OrientedAnalysis,OOA)強(qiáng)調(diào)直接對問題論域中的各種事物建立OOA模型中的對象,用對象的屬性和服務(wù)分別描述對象的靜態(tài)特征和動態(tài)行為。同時,在OOA模型中保存了問題論域中各個事物之間的關(guān)系,把具有相同屬性和相同服務(wù)的對象歸于一類,用一般化∕特殊化關(guān)系(分類結(jié)構(gòu))和整體∕部分關(guān)系(組裝結(jié)構(gòu))描述事物間的結(jié)構(gòu)關(guān)系,用實(shí)例連接和消息連接描述事物之間的靜態(tài)聯(lián)系和動態(tài)聯(lián)系,從而忠實(shí)地反映了問題論域的原貌。2.面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計OOD(Object-OrientedDesign)通過對象的認(rèn)定和對象層次結(jié)構(gòu)的組織,確定解空間中應(yīng)存在的對象和對象層次結(jié)構(gòu),并確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。面向?qū)ο蟮脑O(shè)計準(zhǔn)則有:模塊化、抽象、信息隱藏、弱耦合、強(qiáng)內(nèi)聚、可重用。OOD分為四部分:1)問題域部分,保持系統(tǒng)總體結(jié)構(gòu)的穩(wěn)定性;2)人機(jī)交互部分;3)任務(wù)管理部分,簡化總體設(shè)計和編碼;4)數(shù)據(jù)管理部分,包括數(shù)據(jù)存放方法的設(shè)計和相應(yīng)服務(wù)的設(shè)計。3.面向?qū)ο蠓椒ㄍY(jié)構(gòu)化方法的比較:結(jié)構(gòu)化方法強(qiáng)調(diào)過程抽象和模塊化,將現(xiàn)實(shí)世界映射為數(shù)據(jù)流和加工,加工之間通過數(shù)據(jù)流進(jìn)行通信,數(shù)據(jù)作為被動的實(shí)體被主動地操作所加工,是以過程(或操作)為中心來構(gòu)造系統(tǒng)和設(shè)計程序的;面向?qū)ο蠓椒ò咽澜缈闯墒仟?dú)立對象的集合,對象將數(shù)據(jù)和操作封裝在一起,提供有限的接口,其內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)、數(shù)據(jù)結(jié)構(gòu)及對它們的操作是外部不可見的,對象之間通過消息相互通信,面向?qū)ο蠓椒ň哂械睦^承性和封裝性支持軟件復(fù)用,并易于擴(kuò)充,能較好的適應(yīng)復(fù)雜大系統(tǒng)不斷發(fā)展和變化的要求。4.Coad-Yourdon方法:該方法認(rèn)為,人類在認(rèn)識和理解現(xiàn)實(shí)世界的過程中,普遍運(yùn)用著下面三個構(gòu)造法則,區(qū)分對象及其屬性,區(qū)分整體對象及其組成部分,不同對象類的形成及區(qū)分。______是用來對軟件密集系統(tǒng)進(jìn)行描述、構(gòu)造、視化和文檔編制的一種語言A)UMLB)CMMC)Coad-YourdonD)Booch答案:A統(tǒng)一建模語言(UML)概述統(tǒng)一建模語言(UML)是用來對軟件密集系統(tǒng)進(jìn)行描述、構(gòu)造、視化和文檔編制的一種語言。UML不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。其內(nèi)容如下:作為一種建模語言,UML的定義包括UML語義和UML表示法兩個部分。(1)

UML語義:描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達(dá)方法所造成的影響。此外UML還支持對元模型的擴(kuò)展定義。(2)

UML表示法:定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號和文字所表達(dá)的是應(yīng)用級的模型,在語義上它是UML元模型的實(shí)例。標(biāo)準(zhǔn)建模語言UML的重要內(nèi)容可以由下列五類圖(共9種圖形)來定義:第一類是用例圖,從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。第二類是靜態(tài)圖(Static

diagram),包括類圖、對象圖和包圖。其中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。對象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識。他們的不同點(diǎn)在于對象圖顯示類的多個對象實(shí)例,而不是實(shí)際的類。一個對象圖是類圖的一個實(shí)例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。包由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。第三類是行為圖(Behavior

diagram),描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。其中狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補(bǔ)充。在實(shí)用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。而活動圖描述滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系,有利于識別并行活動。第四類是交互圖(Interactive

diagram),描述對象間的交互關(guān)系。其中順序圖顯示對象之間的動態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互;合作圖描述對象間的協(xié)作關(guān)系,合作圖跟順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時間和順序,則使用順序圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇合作圖。這兩種圖合稱為交互圖。第五類是實(shí)現(xiàn)圖(

Implementation

diagram

)。其中構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。一個部件可能是一個資源代碼部件、一個二進(jìn)制部件或一個可執(zhí)行部件。它包含邏輯類或?qū)崿F(xiàn)類的有關(guān)信息。部件圖有助于分析和理解部件之間的相互影響程度。配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實(shí)際的計算機(jī)和設(shè)備(用節(jié)點(diǎn)表示)以及它們之間的連接關(guān)系,也可顯示連接的類型及部件之間的依賴性。在節(jié)點(diǎn)內(nèi)部,放置可執(zhí)行部件和對象以顯示節(jié)點(diǎn)跟可執(zhí)行軟件單元的對應(yīng)關(guān)系。從應(yīng)用的角度看,當(dāng)采用面向?qū)ο蠹夹g(shù)設(shè)計系統(tǒng)時,首先是描述需求;其次根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);第三步是描述系統(tǒng)的行為。其中在第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類圖(包含包)、對象圖、組件圖和配置圖等五個圖形,是標(biāo)準(zhǔn)建模語言UML的靜態(tài)建模機(jī)制。其中第三步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時的時序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動圖、順序圖和合作圖等四個圖形,是標(biāo)準(zhǔn)建模語言UML的動態(tài)建模機(jī)制。因此,標(biāo)準(zhǔn)建模語言UML的主要內(nèi)容也可以歸納為靜態(tài)建模機(jī)制和動態(tài)建模機(jī)制兩大類??键c(diǎn)3:系統(tǒng)分析基礎(chǔ)知識★★★★本考點(diǎn)考查系統(tǒng)分析的主要任務(wù)、過程,結(jié)構(gòu)化分析方法以及系統(tǒng)分析報告的基本組成。需求分析中,開發(fā)人員要從用戶那里解決的最重要的問題是______。

A)要讓軟件做什么

B)要給該軟件提供哪些信息

C)要求軟件工作效率怎樣

D)要讓該軟件具有何種結(jié)構(gòu)答案:A系統(tǒng)分析概述系統(tǒng)分析是以系統(tǒng)的整體最優(yōu)為目標(biāo),對系統(tǒng)的各個主要方面進(jìn)行定性和定量的分析,是一個有目的、有步驟的探索和分析過程。在此過程中,盡量收集相關(guān)資料、整理、分析、形成能體現(xiàn)整個系統(tǒng)靈魂的文檔。實(shí)際上它就是將客戶的需求從具體到抽象的一個過程,并制定編碼人員可實(shí)施的規(guī)范和標(biāo)準(zhǔn)。系統(tǒng)分析是信息系統(tǒng)開發(fā)工作中最重要的一環(huán)。系統(tǒng)分析的內(nèi)容主要包括對組織內(nèi)部整體管理狀況和信息處理過程(側(cè)重于具體業(yè)務(wù)全過程角度)進(jìn)行分析。在系統(tǒng)分析中扎扎實(shí)實(shí)地了解實(shí)際工作部門的業(yè)務(wù)情況是基礎(chǔ),只有在對業(yè)務(wù)了解得非常透徹的前提之下才有可能提出新的改進(jìn)方案。系統(tǒng)分析階段的工作步驟有:1.詳細(xì)調(diào)查、收集和分析用戶需求

在總體規(guī)劃時所做的初步調(diào)查只是為了總體規(guī)劃和進(jìn)行可行性分析的需要,相對來說是比較粗糙的?,F(xiàn)在,則應(yīng)在初步調(diào)查的基礎(chǔ)上,進(jìn)一步收集和了解、分析用戶需求,調(diào)查用戶的有關(guān)詳細(xì)情況。2.確定初步的邏輯模型

邏輯模型是指僅在邏輯上確定的目標(biāo)系統(tǒng)模型,而不涉及具體的物理實(shí)現(xiàn),也就是要解決系統(tǒng)“干什么”,而不是“如何干”。邏輯模型由一組圖表工具進(jìn)行描述。用戶可通過邏輯模型了解未來目標(biāo)系統(tǒng),并進(jìn)行討論和改進(jìn)。3.編制系統(tǒng)說明書

對上述采用圖表描述的邏輯模型進(jìn)行適當(dāng)?shù)奈淖终f明,就組成了系統(tǒng)說明書。它是系統(tǒng)分析階段的主要成果。系統(tǒng)說明書既是用戶與開發(fā)人員達(dá)成的書面協(xié)議或合同,也是管理信息系統(tǒng)生命周期中的重要文檔。目前常用的系統(tǒng)開發(fā)方法有:結(jié)構(gòu)化系統(tǒng)分析與設(shè)計方法、原型方法、目標(biāo)導(dǎo)向(或稱為面向?qū)ο螅┓椒ā⒂嬎銠C(jī)輔助軟件工程方法等等。結(jié)構(gòu)化分析方法(SA)的一個重要指導(dǎo)思想是______。(2002年上午填空25) A)自頂向下,逐步抽象 B)自底向上,逐步抽象 C)自頂向下,逐步分解 D)自底向上,逐步分解答案:C分析:結(jié)構(gòu)化分析方法基于模塊化的思想,采用自頂向下,逐步分解的指導(dǎo)思想對系統(tǒng)進(jìn)行分析。在數(shù)據(jù)流圖中,圓圈表示______。兩條平行線表示______。(2002年上午填空23、24)(1)A)加工B)外部實(shí)體C)數(shù)據(jù)流D)存儲(2)A)加工B)外部實(shí)體C)數(shù)據(jù)流D)存儲答案:分析:數(shù)據(jù)流圖是一種描述數(shù)據(jù)變換的圖形工具,有四個基本成分組成:加工(用圓圈表示)、數(shù)據(jù)流(用箭頭表示)、數(shù)據(jù)存儲(用兩條平行線表示)、數(shù)據(jù)源和數(shù)據(jù)潭(用矩形表示)。結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法(SA)是一種以數(shù)據(jù)、數(shù)據(jù)的封閉性為基礎(chǔ),從問題空間到某種表示的映射方法,由數(shù)據(jù)流圖(DFD圖)表示。結(jié)構(gòu)化分析方法是結(jié)構(gòu)化開發(fā)方法的一部分。結(jié)構(gòu)化開發(fā)方法是一種系統(tǒng)化開發(fā)軟件的方法,該方法基于模塊化的思想,采用“自頂向下,逐步求精”的技術(shù)對系統(tǒng)進(jìn)行劃分,分解和抽象是它的兩個基本手段,結(jié)構(gòu)化開發(fā)方法是結(jié)構(gòu)化分析(SA)、結(jié)構(gòu)化設(shè)計(SD)和結(jié)構(gòu)化編程(SP)的總稱。1.結(jié)構(gòu)化分析模型的組成及詳細(xì)內(nèi)容:(1)結(jié)構(gòu)化分析模型及內(nèi)容:數(shù)據(jù)流圖(DFD)是一種描述數(shù)據(jù)變換的圖形工具,是結(jié)構(gòu)化分析方法最普遍采用的表示手段,數(shù)據(jù)字典和小說明為數(shù)據(jù)流圖提供了補(bǔ)充,并用以驗(yàn)證圖形表示的正確性、一致性和完整性,以上三者構(gòu)成了結(jié)構(gòu)化分析的模型。(2)結(jié)構(gòu)化分析方法的基本內(nèi)容:數(shù)據(jù)流圖是一種描述數(shù)據(jù)變換的圖形工具,系統(tǒng)接受輸入的數(shù)據(jù),經(jīng)過一系列的變換(或稱加工),最后輸出結(jié)果數(shù)據(jù),數(shù)據(jù)流圖由以下四個基本成分組成:加工、數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)源和數(shù)據(jù)潭,這四個基本成分是結(jié)構(gòu)化設(shè)計方法為表達(dá)系統(tǒng)模型的基本概念,這些符號可以覆蓋客觀世界的一切事物。加工是對數(shù)據(jù)進(jìn)行處理的單元,用圓圈表示;數(shù)據(jù)流表示數(shù)據(jù)和數(shù)據(jù)流向,用箭頭表示;數(shù)據(jù)存儲用于表示信息的靜態(tài)存儲,用兩條平行線表示;數(shù)據(jù)源和數(shù)據(jù)潭表示系統(tǒng)和環(huán)境的接口,是系統(tǒng)之外的實(shí)體,數(shù)據(jù)潭是數(shù)據(jù)流的最終目的地,數(shù)據(jù)源和數(shù)據(jù)潭用矩形表示。(3)數(shù)據(jù)字典和小說明:數(shù)據(jù)字典以一種準(zhǔn)確的和無二義的方式定義所有被加工引用的數(shù)據(jù)流和數(shù)據(jù)存儲,通常包括三類內(nèi)容,數(shù)據(jù)流條目、數(shù)據(jù)存儲條目、數(shù)據(jù)項(xiàng)條目。小說明是用來描述底層加工的,小說明集中描述一個加工的輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯關(guān)系,即加工邏輯,小說明并不描述具體的加工過程,小說明一般用自然語言、結(jié)構(gòu)化自然語言、判定表和判定樹等來描述。(4)建立系統(tǒng)模型的步驟:結(jié)構(gòu)化分析從本質(zhì)上說是一種運(yùn)用抽象和分解技術(shù),“自頂向下,逐步求精”的過程,首先確定系統(tǒng)邊界,畫出系統(tǒng)環(huán)境圖,自頂向下,再畫出各層數(shù)據(jù)流圖,定義數(shù)據(jù)字典和小說明,最后匯總前面各步驟的結(jié)果。(5)建立系統(tǒng)模型的模型平衡規(guī)則:數(shù)據(jù)流圖中所有的圖形元素必須根據(jù)它們的用法規(guī)則正確使用,每個數(shù)據(jù)流和數(shù)據(jù)存儲都要在數(shù)據(jù)字典中有定義,數(shù)據(jù)字典將包括各層數(shù)據(jù)流圖中數(shù)據(jù)元素的定義,數(shù)據(jù)字典中的定義使用合法的邏輯構(gòu)造符號,數(shù)據(jù)流圖中最底層的加工必須在小說明中有定義,父圖和子圖必須平衡,小說明和數(shù)據(jù)流圖的圖形表示必須一致。(6)建立系統(tǒng)模型控制復(fù)雜性的一些規(guī)則:上層數(shù)據(jù)流可以打包,上、下層數(shù)據(jù)流的對應(yīng)關(guān)系用數(shù)據(jù)字典描述,同層的數(shù)據(jù)流也可以編號對應(yīng),包內(nèi)流的性質(zhì)(輸入/輸出)必須一致,為了便于人的理解,把一幅圖中的圖元個數(shù)控制在7±2以內(nèi),檢查同每個加工相關(guān)的數(shù)據(jù)流,并尋找是否有其他可降低界面復(fù)雜性的劃分方法,分析數(shù)據(jù)內(nèi)容,確定是否所有的輸入信息都用于產(chǎn)生輸出信息,相應(yīng)的,有一個加工產(chǎn)生的所有信息是否都能由進(jìn)入該加工的信息導(dǎo)出。(7)結(jié)構(gòu)化分析的基本步驟:通過對現(xiàn)實(shí)系統(tǒng)的了解和分析,或基于需求陳述,建立該系統(tǒng)的數(shù)據(jù)流圖,基于得到的數(shù)據(jù)流圖,建立該系統(tǒng)的數(shù)據(jù)字典,基于得到的數(shù)據(jù)流圖,對最底層的加工給出其控制結(jié)構(gòu)描述,依據(jù)需求陳述,建立人機(jī)接口和其他性能描述,通過分析和驗(yàn)證,建立系統(tǒng)完整的需求規(guī)約。原型化方法是一種動態(tài)定義需求的方法,______不具有原型化方法的特征。(2003年上午填空32) A)簡化項(xiàng)目管理 B)盡快建立初步需求 C)加強(qiáng)用戶參與和決策 D)提供嚴(yán)格定義的文檔答案:D分析:原型化方法強(qiáng)調(diào)的是軟件開發(fā)人員與用戶的不斷交互,通過原型的演進(jìn)不斷適應(yīng)用戶任務(wù)改變的需求。不具備提供嚴(yán)格定義的文檔。原型化方法原型是軟件開發(fā)過程中,軟件的一個早期可運(yùn)行的版本,它反映了最終系統(tǒng)的部分重要特性。原型化方法的基本思想是花費(fèi)少量代價建立一個可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會,原型化方法又稱速成原型法(RapidPrototyping)。強(qiáng)調(diào)的是軟件開發(fā)人員與用戶的不斷交互,通過原型的演進(jìn)不斷適應(yīng)用戶任務(wù)改變的需求。將維護(hù)和修改階段的工作盡早進(jìn)行,使用戶驗(yàn)收提前,從而使軟件產(chǎn)品更加適用。系統(tǒng)分析報告的主要作用是______。A)系統(tǒng)規(guī)劃的依據(jù)B)系統(tǒng)實(shí)施的依據(jù)C)系統(tǒng)設(shè)計的依據(jù)D)系統(tǒng)評價的依據(jù)答案:C系統(tǒng)分析報告系統(tǒng)分析報告是系統(tǒng)分析階段的成果。系統(tǒng)分析報告一經(jīng)確認(rèn),就成為具有約束力的指導(dǎo)性文件,成為下一階段系統(tǒng)設(shè)計工作的依據(jù)和今后驗(yàn)收目標(biāo)系統(tǒng)的檢驗(yàn)標(biāo)準(zhǔn)。系統(tǒng)分析報告必須簡明扼要,抓住本質(zhì)。至少要包括數(shù)據(jù)流圖、數(shù)據(jù)字典和加工說明這3個主體??键c(diǎn)4:系統(tǒng)設(shè)計知識★★★★本考點(diǎn)考查系統(tǒng)設(shè)計(總體結(jié)構(gòu)設(shè)計和詳細(xì)設(shè)計)的基本知識;結(jié)構(gòu)化設(shè)計方法的基本思想。系統(tǒng)設(shè)計可以分為兩個階段。其中,把系統(tǒng)分為許多基本的、具體的任務(wù)是在______階段完成的。A)總體設(shè)計B)詳細(xì)設(shè)計C)A和BD)都不是答案:A7.4.1

系統(tǒng)設(shè)計概述分析階段的主要任務(wù)是確定系統(tǒng)必須“做什么”,形成系統(tǒng)分析報告(軟件的需求規(guī)格說明書),設(shè)計階段的主要任務(wù)是確定系統(tǒng)“怎么做”,從軟件需求規(guī)格說明書出發(fā),形成系統(tǒng)(軟件)的具體設(shè)計方案,軟件設(shè)計可以采用多種方法,如結(jié)構(gòu)化設(shè)計方法、面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法、面向?qū)ο蟮脑O(shè)計方法等。軟件設(shè)計可以分為總體(概要)設(shè)計和詳細(xì)(過程)設(shè)計兩個階段。在結(jié)構(gòu)化分析與設(shè)計方法中,為了在需求改變時對軟件的影響較小,應(yīng)該使______。(2004年上半年填空33) A)程序結(jié)構(gòu)與問題結(jié)構(gòu)相對應(yīng)B)程序結(jié)構(gòu)與問題結(jié)構(gòu)相獨(dú)立

C)程序結(jié)構(gòu)與用戶界面相對應(yīng)D)程序結(jié)構(gòu)與用戶界面相獨(dú)立答案:A分析:在結(jié)構(gòu)化分析與設(shè)計方法中,為了在需求改變時對軟件的影響較小,應(yīng)該使程序結(jié)構(gòu)與問題結(jié)構(gòu)相對應(yīng)。7.4.2

結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法(SD)是一種面向數(shù)據(jù)流的設(shè)計方法,將系統(tǒng)設(shè)計成由相對獨(dú)立、單一功能的模塊組成的結(jié)構(gòu)。SD法與結(jié)構(gòu)化分析(SA)和結(jié)構(gòu)化編程(SP)法前后銜接,是結(jié)構(gòu)化開發(fā)方法的核心。結(jié)構(gòu)化設(shè)計的總則是:“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”。由于軟件具有兩類特征:1)層次性:反映軟件整體的性質(zhì)(結(jié)構(gòu)圖)。2)過程性:反映局部的性質(zhì)(框圖)。因此SD法也分為總體設(shè)計和詳細(xì)設(shè)計兩個階段:1)總體設(shè)計總體設(shè)計是軟件設(shè)計過程中的關(guān)鍵,它決定了系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及軟件的質(zhì)量,反映了系統(tǒng)的概貌??傮w設(shè)計的主要任務(wù)是解決系統(tǒng)的模塊結(jié)構(gòu),即分解模塊,確定系統(tǒng)模塊的層次結(jié)構(gòu)。具體步驟為:①劃分模塊、②確定模塊功能、③確定模塊間調(diào)用關(guān)系、④確定模塊間界面。此階段形成的文檔是模塊結(jié)構(gòu)圖及其模塊功能說明。2)詳細(xì)設(shè)計對模塊圖中每個模塊的過程進(jìn)行描述,常用的描述的方式有:偽代碼,流程圖,N-S圖,PAD圖等。模塊的控制范圍包括它本身及它所有的從屬模塊,模塊的作用范圍是指模塊內(nèi)一個判定的作用范圍,凡是受到這個判定影響的所有模塊都屬于這個判定的作用范圍,理想的情況是______。(2003年上午題20填空27)A)模塊的作用范圍應(yīng)在控制范圍之內(nèi) B)模塊的控制范圍應(yīng)在作用范圍之內(nèi)C)模塊的作用范圍與控制范圍交叉D)模塊的作用范圍與控制范圍分離答案:A關(guān)于模塊設(shè)計的原則,以下敘述中正確的是______。(2003年上午題21填空28)。 A)模塊的內(nèi)聚性高,模塊之間的耦合度高B)模塊的內(nèi)聚性高,模塊之間的耦合度低C)模塊的內(nèi)聚性低,模塊之間的耦合度高D)模塊的內(nèi)聚性低,模塊之間的耦合度低答案:B分析:耦合性是指軟件結(jié)構(gòu)中模塊相互連接的緊密程度,是模塊間相互連接性的度量。內(nèi)聚性表示一個模塊內(nèi)部各種數(shù)據(jù)和各種處理之間聯(lián)系的緊密程度,它是從功能的角度來度量模塊間的聯(lián)系。顯然,塊內(nèi)聯(lián)系愈緊,即內(nèi)聚性愈強(qiáng),模塊獨(dú)立性愈好。模塊分解的一個目標(biāo)是使塊間聯(lián)系盡可能小。結(jié)構(gòu)圖中,不是其主要成分的是______。

A)模塊B)模塊間傳遞的數(shù)據(jù)C)模塊內(nèi)部數(shù)據(jù)D)模塊的控制關(guān)系答案:C數(shù)據(jù)數(shù)據(jù)方式作用少多數(shù)量控制混合直接調(diào)用過程調(diào)用7.4.3

系統(tǒng)總體結(jié)構(gòu)設(shè)計1.幾個術(shù)語1)模塊模塊是執(zhí)行一個特殊任務(wù)或?qū)崿F(xiàn)一個特殊的抽象數(shù)據(jù)類型的一組例程和數(shù)據(jù)結(jié)構(gòu),模塊由兩部分組成,接口和實(shí)現(xiàn)模塊功能的執(zhí)行機(jī)制。模塊的基本屬性有:(1)接口:指模塊的輸入與輸出;(2)功能:指模塊實(shí)現(xiàn)什么功能;(3)邏輯:描述內(nèi)部如何實(shí)現(xiàn)要求的功能及所需的數(shù)據(jù);(4)狀態(tài):指該模塊的運(yùn)行環(huán)境,即模塊的調(diào)用與被調(diào)用關(guān)系。功能、狀態(tài)與接口反映模塊的外部特性,邏輯反映它的內(nèi)部特性。2)結(jié)構(gòu)圖結(jié)構(gòu)圖(StructureChart簡稱SC)是精確表達(dá)程序結(jié)構(gòu)的圖形表示方法。它清楚地反映出程序中模塊目的層次調(diào)用關(guān)系和聯(lián)系:不僅嚴(yán)格地定義了各個模塊的名字、功能和接口,而且還反映了設(shè)計思想。即它以特定的符號表示模塊、模塊目的調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的主要內(nèi)容有:(1)模塊:在結(jié)構(gòu)圖中,模塊用矩形框表示,并用模塊的名字標(biāo)記它。模塊的名字應(yīng)當(dāng)能夠表明該模塊的功能。對于現(xiàn)成的模塊,則以雙縱邊矩形框表示。(2)模塊的調(diào)用關(guān)系和接口:在結(jié)構(gòu)圖中,兩個模塊之間用單向箭頭聯(lián)結(jié)。箭頭從調(diào)用模塊指向所調(diào)用模塊,表示調(diào)用模塊調(diào)用了所調(diào)用模塊。但其中隱含了一層意思,就是執(zhí)行所調(diào)用模塊完成之后,控制又返回到調(diào)用模塊。(3)模塊間的信息傳遞:當(dāng)一個模塊調(diào)用另一個模塊時,調(diào)用模塊把數(shù)據(jù)或控制信息傳送給所調(diào)用模塊,以使所調(diào)用模塊能夠運(yùn)行。而在執(zhí)行所調(diào)用模塊的過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊。為了表示在模塊之間傳遞的數(shù)據(jù)或控制信息,在聯(lián)結(jié)模塊的箭頭旁邊另給出短箭頭,并且用尾端帶有空心圓的短箭頭表示數(shù)據(jù)信息,用尾端帶有實(shí)心圓的短箭頭表示控制信息。通常在短箭頭附近應(yīng)注有信息的名字。(4)輔助符號:當(dāng)模塊A有條件地調(diào)用另一個模塊B時,在模塊A的箭頭尾部標(biāo)以一個菱形符號。當(dāng)一個模塊A反復(fù)地調(diào)用模塊C和模塊D時,在調(diào)用箭頭尾部則標(biāo)以一個弧形符號。2.總體設(shè)計的主要任務(wù)及其內(nèi)容總體設(shè)計階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的模塊結(jié)構(gòu)圖(MSD),在結(jié)構(gòu)圖中矩形表示功能單元,稱為“模塊”,連接上下層模塊的線段表示它們之間的調(diào)用關(guān)系,在總體設(shè)計階段,每個模塊還處于黑盒子級,模塊通過外部特征標(biāo)識,名字、輸入、輸出。3.總體設(shè)計的表示形式1)層次圖:用來描繪軟件的層次結(jié)構(gòu),圖中的每個方框代表一個模塊,方框間的連線表示模塊的調(diào)用關(guān)系,層次圖很適合于在自頂向下設(shè)計軟件的過程中使用;2)HIPO圖:是由美國IBM公司發(fā)明的“層次圖+輸入/處理/輸出圖”的英文縮寫,HIPO圖實(shí)際上由H圖和IPO圖兩部分組成,H圖就是上面提到的層次圖,為了能使HIPO圖具有可跟蹤性,在H圖里除了最頂層的方框之外,每個方框都加了編號;3)結(jié)構(gòu)圖:和層次圖類似,圖中每個方框代表一個模塊,方框之間的箭頭(或直線)表示模塊的調(diào)用關(guān)系,在結(jié)構(gòu)圖中通常還用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息,尾部是空心圓表示傳遞的是數(shù)據(jù),實(shí)心圓表示傳遞的是控制信息。Jackson設(shè)計方法是由英國的提出的,它是一種面向______的軟件設(shè)計方法。(2002上午填空28)A)對象B)數(shù)據(jù)流C)數(shù)據(jù)結(jié)構(gòu)D)控制結(jié)構(gòu)答案:C分析:結(jié)構(gòu)化開發(fā)方法是一種面向數(shù)據(jù)流、數(shù)據(jù)封閉性的開發(fā)方法,而JACKSON系統(tǒng)開發(fā)方法則是面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法。其基本思想是先建立輸入輸出的數(shù)據(jù)結(jié)構(gòu),再將其轉(zhuǎn)換為軟件結(jié)構(gòu)。軟件的用戶界面作為人機(jī)接口起著越來越重要的作用,用戶界面的______是用戶界面設(shè)計中最重要的也是最基本的目標(biāo)。(2003年上午填空29) A)靈活性B)風(fēng)格多樣性C)美觀性D)易操作性答案:D分析:軟件的用戶界面是面向用戶的。開發(fā)者應(yīng)盡力遵循用戶界面設(shè)計標(biāo)準(zhǔn),花精力使得產(chǎn)品好用,不要錯誤地認(rèn)為編寫更靈巧的代碼或是使用一套風(fēng)格多樣的顏色方案才是重要的事。Constantine(1995)指出,好的用戶界面使得人們不用閱讀用戶手冊或接受培訓(xùn)就能使用應(yīng)用軟件。

用戶界面的易操作性是界面設(shè)計最重要的也是最基本的目標(biāo)。越易操作,不但培訓(xùn)用戶越容易,可以降低培訓(xùn)成本;而且用戶求助越少,也降低了客戶支持成本。7.4.4

系統(tǒng)詳細(xì)設(shè)計詳細(xì)設(shè)計的任務(wù)是為每個模塊進(jìn)行詳細(xì)的算法設(shè)計、為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計、對數(shù)據(jù)庫(如果有的話)進(jìn)行物理設(shè)計以及一些其他設(shè)計(代碼設(shè)計、輸入輸出格式設(shè)計、人機(jī)對話設(shè)計、編寫詳細(xì)設(shè)計說明書、評審等)。詳細(xì)設(shè)計的工具可以分為圖形、表格、語言三種,包括程序流程圖、盒圖(N-S圖)、PAD圖、類程序設(shè)計語言(PDL,又稱偽碼)??键c(diǎn)5:程序設(shè)計和測試★★★★★本考點(diǎn)考查程序設(shè)計和測試。包括程序設(shè)計語言、程序設(shè)計方法、程序質(zhì)量及系統(tǒng)測試和調(diào)試。擴(kuò)展名為DLL的動態(tài)鏈接文件的特點(diǎn)是______。(2003年上午題3)A)可以自由地插入到其他的源程序中使用B)本身是一個數(shù)據(jù)文件,可以與其他程序動態(tài)地鏈接使用C)本身可以獨(dú)立運(yùn)行,也可以供其他程序在運(yùn)行時調(diào)用D)本身不能獨(dú)立運(yùn)行,但可以供其他程序在運(yùn)行時調(diào)用答案:D分析:動態(tài)鏈接庫(dynamic

link

library,縮寫為dll)是一個可以被其它應(yīng)用程序共享的程序模塊,其中封裝了一些可以被共享的例程和資源。動態(tài)鏈接庫文件的擴(kuò)展名一般是dll,也有可能是drv、sys和fon,它和可執(zhí)行文件(exe)非常類似,區(qū)別在于dll中雖然包含了可執(zhí)行代碼卻不能單獨(dú)執(zhí)行,而應(yīng)由windows應(yīng)用程序直接或間接調(diào)用。動態(tài)鏈接庫的優(yōu)點(diǎn)有:1.共享代碼、資源和數(shù)據(jù):使用dll的主要目的就是為了共享代碼,dll的代碼可以被所有的windows應(yīng)用程序共享。2.隱藏實(shí)現(xiàn)的細(xì)節(jié):dll中的例程可以被應(yīng)用程序訪問,而應(yīng)用程序并不知道這些例程的細(xì)節(jié)。3.拓展開發(fā)工具如VB、VC、delphi的功能:由于dll是與語言無關(guān)的,因此可以創(chuàng)建一個dll,被c++、vb或任何支持動態(tài)鏈接庫的語言調(diào)用。這樣如果一種語言存在不足,就可以通過訪問另一種語言創(chuàng)建的dll來彌補(bǔ)。源程序清單是在軟件生存周期的______階段產(chǎn)生的文檔。(2004年下半年上午填空50)A)軟件概要設(shè)計B)編碼C)軟件詳細(xì)設(shè)計D)測試答案:B分析:編碼階段是將詳細(xì)設(shè)計得到的處理過程的描述轉(zhuǎn)換為基于某種計算機(jī)語言的程序,即源程序代碼。軟件語言是用于書寫計算機(jī)軟件的語言。它主要包括需求定義語言、___A___、___B___、程序設(shè)計語言以及___C___等,適用于軟件開發(fā)的各個階段。程序設(shè)計語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分以及___D___。程序設(shè)計語言有多種分類法,例如,按成分性質(zhì)分,有順序語言,并發(fā)語言,并行語言,___E___。(2000年上午題3)A:(1)數(shù)據(jù)定義語言(2)功能性語言(3)面向?qū)ο笳Z言(4)函數(shù)式語言B:(1)設(shè)計性語言(2)結(jié)構(gòu)性語言(3)命令式語言(4)申述式語言C:(1)過程語言(2)非過程語言(3)邏輯式語言(4)文檔語言D:(1)對象成分(2)變量成分(3)語句成分(4)傳輸成分E:(1)交互式語言(2)分布語言(3)面向?qū)ο笳Z言(4)高級語言答案:A)2B)1C)4D)4分析:軟件語言是用于書寫計算機(jī)軟件的語言。它主要包括需求定義語言、功能性語言、設(shè)計性語言、程序設(shè)計語言以及文檔語言等。程序設(shè)計語言可從不同角度分類,根據(jù)成分性質(zhì)的不同,可分為:順序語言、并發(fā)語言和分布式語言。程序設(shè)計程序設(shè)計是將詳細(xì)設(shè)計得到的處理過程的描述轉(zhuǎn)換為基于某種計算機(jī)語言的程序,即源程序代碼。在軟件生命期中,程序經(jīng)常需要被人閱讀和理解。一個邏輯上正確但雜亂無章的程序是沒有什么價值的,因?yàn)樗鼰o法供人閱讀,導(dǎo)致難以測試、排錯和維護(hù),因此,要提高程序的可讀性。提高程序可讀性的關(guān)鍵是使程序結(jié)構(gòu)簡單清晰,結(jié)構(gòu)化程序設(shè)計(SP)方法是達(dá)到這一目標(biāo)的有效手段。1.程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計是一種典型的面向數(shù)據(jù)流的軟件總體設(shè)計方法,它采用采用自頂向下、逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu),且只包含順序、選擇和重復(fù)3種結(jié)構(gòu)。不用或少用goto方式。2.程序設(shè)計語言程序設(shè)計語言是人機(jī)對話的媒介。用程序設(shè)計語言編寫程序的過程是一項(xiàng)人類特定的智力活動。對軟件開發(fā)項(xiàng)目的成功與否有重要的影響。此外,語言的技術(shù)特性會影響設(shè)計的質(zhì)量,它既關(guān)系到人也關(guān)系到軟件項(xiàng)目。1)程序設(shè)計語言的分類程序設(shè)計語言可以從不同角度進(jìn)行分類。根據(jù)程序設(shè)計語言的發(fā)展及抽象層次,可分:機(jī)器語言、匯編語言、面向過程語言、面向?qū)ο蟮恼Z言、面向問題的語言和自然語言;根據(jù)成分性質(zhì)的不同,可分為:順序語言、并發(fā)語言和分布式語言等;根據(jù)程序設(shè)計的方式,可分為:命令式語言、面向?qū)ο蟮某绦蛟O(shè)計語言、函數(shù)式程序設(shè)計語言和邏輯型程序設(shè)計語言。2)程序設(shè)計語言的選擇為開發(fā)一個特定項(xiàng)目選擇程序設(shè)計語言時,必須從技術(shù)角度、工程角度、心理學(xué)角度評價和比較各種語言的適用程度,又必須考慮現(xiàn)實(shí)可能性。在選擇與評價語言時,首先要從問題入手,確定它的要求是什么這些要求的相對重要性如何再根據(jù)這些要求和相對重要性來衡量能采用的語言。通??紤]的因素有:項(xiàng)目的應(yīng)用范圍、算法和計算復(fù)雜性、軟件執(zhí)行的環(huán)境、性能上的考慮與實(shí)現(xiàn)的條件、數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性、軟件開發(fā)人員的知識水平和心理因素等。其中,項(xiàng)目的應(yīng)用范圍是最關(guān)鍵的因素。新的更強(qiáng)有力的語言,雖然對于應(yīng)用有很強(qiáng)的吸引力,但是因?yàn)橐延械恼Z言已經(jīng)積累了大量的久經(jīng)使用的程序,具有完整的資料、支撐軟件和軟件開發(fā)工具,程序設(shè)計人員比較熟悉,而且有過類似項(xiàng)目的開發(fā)經(jīng)驗(yàn)和成功的先例,由于心理因素,人們往往寧愿選用原有的語種。所以應(yīng)當(dāng)徹底地分析、評價、介紹新的語言,以便從原有語言過渡到新的語言。3.對源程序的質(zhì)量要求對源程序的質(zhì)量要求,不僅僅是源程序語法、邏輯上的正確,此外還要求源程序具有良好的結(jié)構(gòu)和良好的程序設(shè)計風(fēng)格。使其易維護(hù)和易移植。易維護(hù)是指寫出的源程序便于閱讀,便于測試和排除所發(fā)現(xiàn)的程序故障,能根據(jù)用戶的需要很容易擴(kuò)充其功能及改善其性能。移植性指程序從一種系統(tǒng)環(huán)境轉(zhuǎn)移到另一種不同系統(tǒng)環(huán)境運(yùn)行的能力。通常,在軟件的輸入輸出設(shè)計中,合理的要求是:______。(2004年下半年上午填空52)A)數(shù)據(jù)盡量由用戶來輸入,以便給用戶提供更大的自主性B)輸入過程應(yīng)盡量容易,以減少錯誤的發(fā)生C)不能在輸入過程中檢驗(yàn)數(shù)據(jù)的正確性D)在輸入過程中,為了不干擾用戶,應(yīng)盡量避免提示信息答案:B分析:軟件的輸入和輸出是與用戶的使用直接相關(guān)的。輸入和輸出的方式和格式應(yīng)當(dāng)盡可能方便用戶的使用,使輸入過程應(yīng)盡量容易,以減少錯誤的發(fā)生。編制一個好的程序首先要確保它的正確性和可靠性,除此以外,通常更注重源程序的___A___。此外,還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)格,例如,選擇標(biāo)識符的名字時應(yīng)考慮___B___;在書寫語句時應(yīng)考慮___C___;在書寫功能性注解時應(yīng)考慮___D___。源程序中應(yīng)包含一些內(nèi)部文檔,以幫助閱讀和理解源程序,源程序的內(nèi)部文檔通常包括選擇合適的標(biāo)識符、注解和___E___。(2000年上午題5)A:(1)易使用性、易維護(hù)性和效率 (2)易使用性、易維護(hù)性和易移植性(3)易理解性、易測試性和易修改性 (4)易理解性、安全性和效率B:(1)名字長度越短越好,以減少源程序的輸入量(2)多個變量共用一個名字,以減少變量名的數(shù)目(3)選擇含義明確的名字,以正確提示所代表的實(shí)體(4)盡量用關(guān)鍵字作名字,以使名字標(biāo)準(zhǔn)化C:(1)把多個短的語句寫在同一行中,以減少源程序的行數(shù)(2)盡量使用標(biāo)準(zhǔn)文本以外的有特殊功效的語句,以提高程序的功效(3)盡量消除表達(dá)式中的括號,以簡化表達(dá)式(4)避免使用測試條件"非",以提高程序的可讀性D:(1)僅為整個程序作注解 (2)僅為每個模塊作注解(3)為程序段作注解 (4)為每個語句作注解E:(1)程序的視覺組織 (2)盡量不用或少用GOTO語句(3)檢查輸入數(shù)據(jù)的有效性 (4)設(shè)計良好的輸出報表答案:A)2B)3C)4D)3E)1分析:編制一個好的程序首先要確保它的正確性和可靠性,除此以外,通常更注重源程序的易使用性、易維護(hù)性和易移植性。一個好的程序還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)格,例如,選擇標(biāo)識符的名字時應(yīng)考慮“按意取名”;在書寫語句時應(yīng)考慮避免使用測試條件"非",以提高程序的可讀性;在書寫功能性注解時應(yīng)考慮為程序段作注解。源程序中應(yīng)包含一些內(nèi)部文檔,以幫助閱讀和理解源程序,源程序的內(nèi)部文檔通常包括選擇合適的標(biāo)識符、注解和程序的視覺組織。從下列敘述中選出五條關(guān)于好的編程風(fēng)格的正確敘述,它們是______。(1990年上午題3)①使用括號以改善表達(dá)式的清晰性。②對遞歸定義的數(shù)據(jù)結(jié)構(gòu)不要使用遞歸過程。⑧盡可能對程序代碼進(jìn)行優(yōu)化。④不要修補(bǔ)不好的程序,要重新寫。⑤不要進(jìn)行浮點(diǎn)數(shù)的相等比較。⑥應(yīng)盡可能多輸出中間結(jié)果。⑦利用數(shù)據(jù)類型對數(shù)據(jù)值進(jìn)行防范。⑧用計數(shù)方法而不是用文件結(jié)束符來判別輸入的結(jié)束。⑨程序中的注釋是可有可無的。⑩使用有意義的標(biāo)識符。答案:①、④、⑤、⑦、⑩編碼風(fēng)格編碼風(fēng)格指一個編制程序時所表現(xiàn)出來的特點(diǎn)、習(xí)慣、邏輯思想等。一個好的編碼風(fēng)格應(yīng)能提高程序的可讀性、容易改善程序的質(zhì)量。有以下幾個方面:1.程序內(nèi)部文檔早期的程序基本上沒有說明,這種程序難以閱讀,因此也就難以維護(hù)。大型軟件系統(tǒng)的程序內(nèi)部必須帶有說明性材料——程序內(nèi)部文檔。內(nèi)部文檔可用注釋語句書寫。這樣,可以使程序成為一篇“自我解釋”的文章,在讀程序時可以少翻閱、甚至不翻閱其他說明材料。它是提高程序可讀性的有力手段。編寫程序內(nèi)部文檔的原則為:1)標(biāo)識符應(yīng)按意取名;2)程序應(yīng)加注釋(序言性注釋和功能性注釋)。2.?dāng)?shù)據(jù)說明程序中的數(shù)據(jù)加上數(shù)據(jù)說明。為使程序中數(shù)據(jù)說明更易于理解和維護(hù),可遵循以下原則:1)數(shù)據(jù)說明的次序應(yīng)當(dāng)規(guī)范化。使數(shù)據(jù)的屬性更易于查找,從而有利于測試、糾錯與維護(hù)。如:常量說明簡單變量類型說明數(shù)組說明公用數(shù)據(jù)塊說明所有的文件說明2)一個語句說明多個變量時,各變量名按字母順序排列。3)對于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),要加注釋,說明在程序?qū)崿F(xiàn)時的特點(diǎn)。如:對C鏈表結(jié)構(gòu)和PASCAL中用戶自定義的數(shù)據(jù)類型,都應(yīng)當(dāng)在注釋中作必要的補(bǔ)充說明。3.語句結(jié)構(gòu)在設(shè)計階段確定了軟件的邏輯結(jié)構(gòu),但構(gòu)造單個語句則是編碼階段的任務(wù)。語句構(gòu)造的原則是:簡單直接,不能為了片面追求效率而使代碼復(fù)雜化。常用的書寫原則有:1)在一行內(nèi)只寫一條語句,并采取適當(dāng)?shù)目s進(jìn)格式,使程序的邏輯和功能變得更加明確。2)程序編寫首先應(yīng)當(dāng)考慮清晰性,不要刻意追求技巧性,使程序編寫得過于緊湊。3)除非對效率有特殊的要求,程序編寫要做到清晰第一,效率第二。4)盡量用公共過程或子程序去代替重復(fù)的功能代碼段。要注意,這段代碼應(yīng)具有一個獨(dú)立的功能,不要只因代碼形式一樣便將其抽出組成一個公共過程或子程序。5)使用括號來清晰地表達(dá)算術(shù)表達(dá)式和邏輯表達(dá)式的運(yùn)算順序。6)盡量只采用三種基本的控制結(jié)構(gòu)來編寫程序。7)盡量減少使用“否定”條件的條件語句。8)避免不必要的轉(zhuǎn)移。同時如果能保持程序的可讀性,則不必用GOTO語句。9)避免過多的循環(huán)嵌套和條件嵌套;10)要模塊化,使模塊功能盡可能單一化,模塊間的耦合能夠清晰可見。利用信息隱蔽,確保每一個模塊的獨(dú)立性。11)對遞歸定義的數(shù)據(jù)結(jié)構(gòu)盡量使用遞歸過程。12)不要修補(bǔ)不好的程序,要重新編寫。也不要一味地追求代碼的復(fù)用,要重新組織。13)注意計算機(jī)浮點(diǎn)數(shù)運(yùn)算的特點(diǎn),不要單獨(dú)進(jìn)行浮點(diǎn)數(shù)的比較。4.輸人和輸出(I/O)輸入和輸出信息是與用戶的使用直接相關(guān)的。輸入和輸出的方式和格式應(yīng)當(dāng)盡可能方便用戶的使用。一定要避免因設(shè)計不當(dāng)給用戶帶來的麻煩。因此,在軟件需求分析階段和設(shè)計階段,就應(yīng)基本確定輸入和輸出的風(fēng)格。系統(tǒng)能否為用戶接受,有時就取決于輸入和輸出的風(fēng)格。輸入/輸出的風(fēng)格隨著人工干預(yù)程度的不同而有所不同??傊獜某绦蚓幋a的實(shí)踐中,積累編制程序的經(jīng)驗(yàn),培養(yǎng)和學(xué)習(xí)良好的程序設(shè)計風(fēng)格,使編寫出來的程序清晰易懂,易于測試和維護(hù)。在程序編碼階段改善和提高軟件的質(zhì)量。黑盒測試也稱為功能測試。黑盒測試不能發(fā)現(xiàn)______。(2004年下半年上午填空51)A)終止性錯誤B)輸入是否正確接收C)界面是否有誤D)是否存在冗余代碼答案:D分析:黑盒測試把被測試對象看成一個黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)、處理過程以及是否存在冗余代碼等,只在軟件的接口處進(jìn)行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。軟件測試的目的是__(1)__。在進(jìn)行單元測試時,常用的方法是__(2)__。(2003年上午填空30、31) (1)A)證明軟件系統(tǒng)中存在錯誤B)找出軟件系統(tǒng)中存在的所有錯誤 C)盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中的錯誤和缺陷 D)證明軟件的正確性 (2)A)采用白盒測試,輔之以黑盒測試 B)采用黑盒測試,輔之以白盒測試 C)只使用白盒測試 D)只使用黑盒測試答案:(1)C (2)A分析:軟件測試是為了盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中的錯誤和缺陷。但是,軟件測試并不能發(fā)現(xiàn)系統(tǒng)中的所有錯誤。因此也無法通過測試來證明軟件的正確性。軟件測試的目的是__(1)__,通常可分為白盒測試和黑盒測試。白盒測試是根據(jù)程序的__(2)__來設(shè)計測試用例,黑盒測試是根據(jù)軟件的規(guī)格說明來設(shè)計測試用例。常用的黑盒測試方法有邊值分析、等價類劃分、錯誤猜測、因果圖等。其中,__(3)__經(jīng)常與其它方法結(jié)合起來使用。軟件測試的步驟主要有單元測試、集成測試和確認(rèn)測試。如果一個軟件作為產(chǎn)品被許多客戶使用的話,在確認(rèn)測試時通常要經(jīng)過α測試和β測試的過程。其中,α測試是__(4)__進(jìn)行的一種測試。在軟件設(shè)計和編碼時,采取__(5)__等措施都有利于提高軟件的可測試性。(2001年上午題4,填空16-20)(1):A)發(fā)現(xiàn)程序中的所有錯誤

B)盡可能多地發(fā)現(xiàn)程序中的錯誤

C)證明程序是正確的

D)證明程序做了應(yīng)做的事(2):A)功能

B)性能

C)內(nèi)部邏輯

D)內(nèi)部數(shù)據(jù)(3):A)邊值分析

B)等價類劃分

C)錯誤猜測

D)因果圖(4):A)在開發(fā)者現(xiàn)場由開發(fā)方的非本項(xiàng)目開發(fā)人員

B)在開發(fā)者現(xiàn)場由用戶

C)在用戶現(xiàn)場由開發(fā)方的非本項(xiàng)目開發(fā)人員

D)在用戶現(xiàn)場由用戶使(5):A)不使用標(biāo)準(zhǔn)文本以外的語句,書寫詳細(xì)正確的文檔

B)不使用標(biāo)準(zhǔn)文本以外的語句,采用良好的程序結(jié)構(gòu)

C)書寫詳細(xì)正確的文檔,信息隱蔽

D)書寫詳細(xì)正確的文檔,采用良好的程序結(jié)構(gòu)答案:(1)B(2)C(3)A(4)B(5)D下列各方法中,______不是軟件測試方法。A)白盒法B)黑盒法C)動態(tài)測試D)盒法答案:D系統(tǒng)測試系統(tǒng)(軟件)測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。測試階段的基本任務(wù)是根據(jù)軟件開發(fā)各階段的文檔資料和程序的內(nèi)部結(jié)構(gòu),精心設(shè)計一組“高產(chǎn)”的測試用例,利用這些實(shí)例執(zhí)行程序,找出軟件中潛在的各種錯誤和缺陷。1.軟件測試原則軟件測試中,應(yīng)注意以下指導(dǎo)原則:1)應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測試”作為軟件開發(fā)者的座右銘。2)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。3)程序員應(yīng)避免檢查自己的程序。4)在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。5)充分注意測試中的群集現(xiàn)象。在所測程序段中,若發(fā)現(xiàn)錯誤數(shù)目多,則殘存錯誤數(shù)目也比較多。這種錯誤群集性現(xiàn)象,己為許多程序的測試實(shí)踐所證實(shí)。如果發(fā)現(xiàn)某一程序模塊似乎比其他程序模塊有更多的錯誤傾向時,則應(yīng)當(dāng)花費(fèi)較多的時間和代價測試這個程序模塊。6)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。7)應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。8)妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。2.測試過程一個測試過程通常包括以下基本測試活動:擬定測

溫馨提示

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

評論

0/150

提交評論