軟件工程期末考試總復習題_第1頁
軟件工程期末考試總復習題_第2頁
軟件工程期末考試總復習題_第3頁
軟件工程期末考試總復習題_第4頁
軟件工程期末考試總復習題_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE58【例1】由于軟件工程有如下的特點,使軟件管理比其它工程的管理更為困難。軟件產品(A)。(B)標準的過程。大型軟件項目往往是(C)項目。(D)的作用是為有效地定量地進行管理,把握軟件工程過程的實際情況和它所產生的產品質量。在制定計劃時,應當對人力、項目持續(xù)時間、成本作出(E);(H)實際上就是貫穿于軟件工程過程中一系列風險管理步驟。最后,每一個軟件項目都要制定一個(F),一旦(G)制定出來,就可以開始著手(H)。供選擇的答案:AC.①可見的 ②不可見的 ③“一次性” ④“多次”⑤存在 ⑥不存在DH.①進度安排 ②度量 ③風險分析 ④估算⑤追蹤和控制 ⑥開發(fā)計劃答案:A.②,B.⑥,C.③,D.②,E.④,F.①,G.⑥,H.⑤。分析:由于軟件工程有如下的特點:軟件產品不可見;不存在標準的軟件過程;大型軟件項目往往是“一次性”的項目,使得軟件得管理比其它工程的管理更為困難;通常,軟件人員和用戶確定了軟件項目的目標和范圍之后,度量的作用就是為了有效地定量地進行管理。對開發(fā)過程進行度量的目的是為了改進開發(fā)過程,而對產品進行度量的目的是為了提高產品的質量。在軟件項目管理過程中一個關鍵的活動是制定計劃。在做計劃時,必須就需要的人力、項目持續(xù)時間、成本作出估算;風險分析對于軟件項目管理是決定性的,它實際上就是貫穿于軟件工程過程中一系列風險管理步驟,其中包括風險識別、風險估計、風險評價和風險駕馭等步驟。每一個軟件項目都要制定一個進度安排,但不是所有的進度都要一樣地安排。一旦制定了開發(fā)計劃,就可以開始著手追蹤和控制活動?!纠?】在軟件項目估算時,將代碼行LOC和功能點FP數據在兩個方面使用:一是作為一個估算變量,度量軟件每一個(A)的大?。灰皇锹摵鲜褂脧倪^去的項目中收集到的(B)和其它估算變量,進行成本和(C)估算。LOC和FP是兩種不同的估算技術,但兩者有許多共同的特征,只是LOC和FP技術對于分解所需要的(D)不同。當用(E)作為估算變量時,功能分解是絕對必要且應達到很詳細的程度,而用(F)作為估算變量時,分解程度可以不很詳細。(E)是直接估算,(F)是間接估算。若計劃人員對每個功能分別按最佳的、可能的、悲觀的三種情況給出LOC或FP估計值,記作a,m,b,則LOC或FP的期望值E的公式為(G),m是加權的最可能的估計值,遵循(H)。供選擇的答案:AC. ①模塊 ②軟件項目 ③分量 ④持續(xù)時間 ⑤工作量 ⑥進度 ⑦基線數據 ⑧改進數據 D. ①詳細程度 ②分解要求 ③改進過程 ④使用方法E,F. ①FP ②LOCG. ①E=(a+m+b)/3 ②E=(a+4m+b)/6 ③E=(2a+3m+4b)/3 ④H. ①χ概率 ②γ概率 ③β概率 ④泊松答案:A.③,B.⑦,C.⑤,D.①,E.②,F.①,G.②,H.③。分析:在軟件項目估算時,將代碼行LOC和功能點FP數據在兩個方面使用:一是作為一個估算變量,度量軟件每一個分量的大?。灰皇锹摵鲜褂脧倪^去的項目中收集到的基線數據(即對以往項目所做的估算值,保留下來作為后續(xù)項目的估算參考)和其它估算變量,進行成本和工作量估算。 LOC和FP是兩種不同的估算技術,但兩者有許多共同的特征,項目計劃人員首先給出一個有界的軟件范圍的敘述,再由此敘述嘗試著把軟件分解成一些小的可分別獨立進行估算的子功能。然后對每一個子功能估算其LOC或FP(即估算變量)。接著,把基線生產率度量(如,LOC/PM或FP/PM)用做特定的估算變量,導出子功能的成本或工作量。將子功能的估算進行綜合后就能得到整個項目的總估算。 LOC或FP估算技術對于分解所需要的詳細程度是不同的。當用LOC做為估算變量時,功能分解是絕對必要的且需要達到很詳細的程度。而估算功能點所需要的數據是宏觀的量,當把FP當做估算變量時所需要的分解程度不很詳細。我們還應注意,LOC是直接估算的,而FP是通過估計輸入、輸出、數據文件、查詢和外部接口的數目,以及14種復雜性校正值間接地確定的。避開所用到的估算變量,項目計劃人員可對每一個分解的功能提出一個有代表性的估算值范圍。利用歷史數據或憑實際經驗(當其它的方法失效時),項目計劃人員對每個功能分別按最佳的、可能的、悲觀的三種情況給出LOC或FP估計值。記作a、m、b。當這些值的范圍被確定之后,也就隱含地指明了估計值的不確定程度。

接著計算LOC或FP的期望值E。 E=(a+4m+b)/6. (加權平均)

其中,可能的估計值m是加權最重的最可能的估算值且遵循β概率分布?!纠?】定義一個人參加勞動時間的長短為(A),其度量單位為PM(人月)或PY(人年)。而定義完成一個軟件項目(或軟件任務)所需的(A)為(B),其度量單位是人月/項目(任務),記作PM(人月)。進一步地,定義單位(A)所能完成的軟件(C)的數量為軟件(D),其度量單位為LOC/PM。它表明一般指(E)的一個平均值。例如,一個軟件的開發(fā)工作量如下表所示。該軟件共有源代碼2900行,其中,500行用于測試,2400行是執(zhí)行(F)的源代碼。則勞動生產率是(G)(LOC/PM)。表軟件開發(fā)所需工作量例階段軟件計劃需求分析設計編碼測試總計需要工作量(人月)1.01.53.01.03.510.0供選擇的答案:A,B,D.①生產率 ②工作量 ③成本 ④勞動量E.①開發(fā)全過程 ②某開發(fā)階段 ③軟件生存期 ④某開發(fā)任務F,C.①軟件 ②程序 ③進程 ④產品G.①520 ②120 ③320 ④240答案:A.④,B.②,C.④,D.①,E.①,F.②,G.④。分析:定義一個人參加勞動時間的長短為勞動量,其度量單位為PM(人月),PY(人年)。它不同于工作量。而定義完成一個軟件項目(或軟件任務)所需的勞動量為工作量,其度量單位是人月/項目(任務),記作PM(人月)。進一步地,定義單位勞動量所能完成的軟件產品的數量為軟件生產率,其度量單位為LOC/PM。它表明一般指開發(fā)全過程的一個平均值。題例所示的軟件共有源代碼2900行,其中,500行用于測試,2400行是執(zhí)行程序的源代碼。則勞動生產率是(2900-500)/10=240(LOC/PM)。

【例4】對于一個大型的軟件項目,由于項目的復雜性,需要進行一系列的估算處理。主要按(A)和(B)手段進行。估算的方法分為三類:從項目的整體出發(fā),進行(B)的方法稱為(C)估算法。把待開發(fā)的軟件細分,直到每一個子任務都已經明確所需要的開發(fā)工作量,然后把它們加起來,得到軟件開發(fā)總工作量的方法稱為(D)估算法。而把待開發(fā)的軟件項目與過去已完成的軟件項目做類比,區(qū)分出類似部分和不同部分分別處理的方法稱為(E)估算法。(F)是由多位專家進行成本估算的方法。供選擇的答案:A,B.①類推 ②類比 ③分解 ④綜合CF.①差別 ②自頂向下 ③自底向上 ④專家判定技術⑤循序漸進 ⑥比較答案:A.③,B.①,C.②,D.③,E.①,F.④。分析:對于一個大型的軟件項目,由于項目的復雜性,開發(fā)成本的估算不是一件簡單的事,要進行一系列的估算處理。主要靠分解和類推的手段進行。基本估算方法分為三類。 ①自頂向下的估算方法:這種方法的主要思想是從項目的整體出發(fā),進行類推。即估算人員根據以前已完成項目所消耗的總成本(或總工作量),來推算將要開發(fā)的軟件的總成本(或總工作量),然后按比例將它分配到各開發(fā)任務單元中去,再來檢驗它是否能滿足要求。這種方法的優(yōu)點是估算工作量小,速度快。缺點是對項目中的特殊困難估計不足,估算出來的成本盲目性大,有時會遺漏被開發(fā)軟件的某些部分。 ②自底向上的估計法:這種方法的主要思想是把待開發(fā)的軟件細分,直到每一個子任務都已經明確所需要的開發(fā)工作量,然后把它們加起來,得到軟件開發(fā)的總工作量。這是一種常見的估算方法。它的優(yōu)點是估算各個部分的準確性高。缺點是缺少各項子任務之間相互聯系所需要的工作量,還缺少許多與軟件開發(fā)有關的系統(tǒng)級工作量(配置管理、質量管理、項目管理)。所以往往估算值偏低,必須用其它方法進行檢驗和校正。 ③差別估計法:這種方法綜合了上述兩種方法的優(yōu)點,其主要思想是把待開發(fā)的軟件項目與過去已完成的軟件項目進行類比,從其開發(fā)的各個子任務中區(qū)分出類似的部分和不同的部分。類似的部分按實際量進行計算,不同的部分則采用相應的方法進行估算。這種的方法的優(yōu)點是可以提高估算的準確程度,缺點是不容易明確“類似”的界限。 專家判定技術是由多位專家進行成本估算。由于單獨一位專家可能會有種種偏見,最好由多位專家進行估算,取得多個估算值。E【例5】Putnam模型是一種(A)模型。需要建立一條連續(xù)的(B),稱為Rayleigh-Norden曲線??梢杂纱藢С鲆粋€(C),把已交付的源代碼(源語句)行數與工作量和開發(fā)時間聯系起來。請選擇合適的答案完成下面大型軟件項目的開發(fā)工作量分布圖。E(E)(H)(G)(F)(D)D(E)(H)(G)(F)(D)D供選擇的答案:A.①單值 ②多值 ③靜態(tài)多變量 ④動態(tài)多變量⑤靜態(tài)單變量B,C.①軟件方程 ②函數曲線 ③資源需求曲線 ④工作量分布DH.①安裝 ②系統(tǒng)定義 ③測試與確認 ④設計與編碼⑤功能設計∕規(guī)格說明答案:A.④,B.④,C.①,D.②,E.⑤,F.④,G.③,H.①。分析:Putnam模型是1978年Putnam提出的模型,是一種動態(tài)多變量模型。它假定在軟件開發(fā)的整個生存期中工作量有特定的分布。這種模型是依據在一些大型項目(總工作量達到或超過30個人年)中收集到的工作量分布情況而推導出來的,但也可以應用在一些較小的軟件項目中。大型軟件項目的開發(fā)工作量分布可以用下圖所示的Rayleigh-Norden曲線表示。該曲線的典型形狀由LordRayleigh最早有分析地導出,并由Norden使用收集到的軟件開發(fā)中的經驗數據證實了這條曲線。用Rayleigh-Norden曲線可以導出一個“軟件方程”,把已交付的源代碼(源語句)行數與工作量和開發(fā)時間聯系起來。

其中,td是開發(fā)持續(xù)時間(以年計),K是軟件開發(fā)與維護在內的整個生存期所花費的工作量(以人年計),L是源代碼行數(以LOC計),Ck是技術狀態(tài)常數,它反映出“妨礙程序員進展的限制”,并因開發(fā)環(huán)境而異?!纠?】一個規(guī)模為10KDSI的商用微機遠程通信的嵌入型軟件,使用中間COCOMO模型進行軟件成本估算。程序的名義工作量MM=(A);程序實際工作量MM=(B);開發(fā)所用的時間TDEV=(C);如果軟件開發(fā)人員的工資都按每月6000美元計算,則該軟件項目的開發(fā)人員的工資總額=(D)。表1中間COCOMO模型的名義工作量與進度公式總體類型工作量進度組織型MM=3.2(KDSI)1.05TDEV=2.5(MM)0.38半獨立型MM=3.0(KDSI)1.12TDEV=2.5(MM)0.35嵌入型MM=2.8(KDSI)1.20TDEV=2.5(MM)0.32表2影響工作量的因素fi的取值影響工作量因素fi情況取值1軟件可靠性只用于局部地區(qū),恢復問題不嚴重1.00(正常)2數據庫規(guī)模20000字節(jié)0.94(低)3產品復雜性用于遠程通信處理1.30(很高)4時間限制使用70%的CPU時間1.10(高)5存儲限制64K中使用45K1.06(高)6機器使用商用微處理機1.00(額定值)7周轉時間平均2小時1.00(額定值)8分析員能力優(yōu)秀人才0.86(高)9工作經驗遠程通信工作3年1.10(低)10程序員能力優(yōu)秀人才0.86(高)11工作經驗微型機工作6個月1.00(正常)12語言使用經驗12個月1.00(正常)13使用現代程序設計技術1年以上0.91(高)14使用軟件工具基本的微型機軟件1.10(低)15工期9個月1.00(正常)供選擇的答案:A,B.①45.8 ②51.5 ③44.38 ④54.2C.①8.9月 ②9.8月 ③7.8月 ④10.9月D.①26.4萬美元 ②36萬美元 ③20.96萬美元 ④30.9萬美元答案:A.③,B.②,C.①,D.④。分析:考慮如題中表2的15種影響軟件工作量的因素,通過定下乘法因子,修正COCOMO工作量公式和進度公式,可更合理地估算軟件(各階段)的工作量和進度。此時,實際工作量計算公式改成:

由此得到程序名義工作量MM=2.8*(10)1.20=44.38(MM)開發(fā)所用時間TDEV=2.5*(51.5)0.32=8.9(月)如果分析員與程序員的工資都按每月6,000美元計算,則該項目的開發(fā)人員的工資總額為51.5*6000=(美元)

【例7】在特定情況下,是否必須進行風險分析,是對項目開發(fā)的形勢進行(A)后確定的。(A)可以按如下步驟進行:明確項目的目標、總策略、具體策略和為完成所標識的目標而使用的方法和資源;保證該目標是(B),項目成功的標準也是(B);考慮采用某些條目作為項目成功的(C);根據估計的結果來確定是否要進行風險分析。一般來說,風險分析的方法要依賴于特定問題的需求和有關部門所關心的方面。具體分3步進行。第一步識別潛在的風險項,首先進行(D)過程;第二步估計每個風險的大小及其出現的可能性,選擇一種(E),它可以估計各種風險項的值;第三步進行風險評估。風險評估也有三個步驟:確定(F),確定(G),把風險與“參照風險”做比較。供選擇的答案:A.①風險管理 ②風險估計 ③風險評價 ④風險測試B.①可度量的 ②不可度量的 ③準確的 ④不確定的C.①規(guī)范 ②標準 ③過程模型 ④設計要求D,E.①信息分類 ②信息收集 ③度量尺度 ④標準 ⑤度量工具 ⑥信息獲取F,G.①風險的范圍 ②風險的特性 ③風險的級別 ④風險的評價標準 ⑤風險的排除策略答案:A.②,B.①,C.②,D.②,E.③,F.④,G.③。

分析:在特定的情況下,是否必須進行風險分析,是對項目的開發(fā)形勢進行風險估計后確定的。因為風險分析需要相當大的費用。只有在軟件的費用、軟件的作用、軟件的性能及軟件與系統(tǒng)的關系等各方面對系統(tǒng)有比較大的影響時,即軟件的風險對于整個系統(tǒng)的成敗,或對系統(tǒng)的風險有關鍵的影響時,才有必要進行軟件的風險分析和管理。風險估計的步驟如下: 明確項目的目標、總策略、具體策略和為完成所標識的目標而使用的方法和資源;保證該目標是可度量的,項目成功的標準也是可度量的;考慮采用以下的某些條目作為項目成功的標準:①最大限度的收益,②最小的費用,③最小的風險損失,④最大限度的市場,⑤最小的周期性的波動,⑥形成有益的形象,⑦最佳的服務質量,⑧最高的增長率,⑨員工的滿意度最高,⑩公司聲望最高;根據估計的結果來確定是否要進行風險分析。一般來說,風險分析的方法要依賴于特定問題的需求和有關部門所關心的方面。下面給出一種結構化的、一致的方法來進行風險分析。具體分3步進行。第一步識別潛在的風險項。當確定要進行風險分析之后,就要收集信息,表明相關的風險。這就需要觀察風險的征兆,理解其產生的原因,并列出所有的風險項。首先進行信息收集??梢詮倪^去完成的項目中收集已有的經驗和收集來自群眾的經驗;可以模擬著名的事例;可以考慮類似的因素和進行常識性的判斷;可以進行試驗或測試以得到有關的結果,可以用各種方式來獲得可能忽略的情況;此外,還可以針對經常發(fā)生的錯誤進行普查統(tǒng)計等。一般來說,通過過去的歷史來認識軟件項目的風險也許時一種最好的辦法。例如,一些數字表明修復一個需求或設計階段的錯誤的費用可能比修復一個測試階段的錯誤的費用高100倍到1000倍。因此,可以把需求階段標識為一個軟件開發(fā)各階段的風險區(qū)域。然后進行信息分類。必須將收集到的信息以某種方式進行分類。一種簡單而有用的方法是把風險項分為三類:有風險、可預見的風險、不可預見的風險?!坝酗L險”是指經常發(fā)生的情況;“可預見的風險”是指以較高概率出現的情況;“不可預見的風險”是指不能識別的、未知的、不能觀察的風險,是可能發(fā)生但事前很難預料的風險。對于每一種類型,還可以按其原因分成三種子類型:缺乏信息、缺乏管理及缺乏時間。其它分類方法可以按直接或間接分類,按運行性或策略性分類,按技術、進度、成本、支持分類。第二步估計每個風險的大小及其出現的可能性,風險估計要度量所標識的各個風險可能造成的損失,即各種風險項的值(后果及程度),用以減少度量的不確定性??梢园匆韵虏襟E進行:選擇某一種度量尺度,用以估計計算各種風險項的值,并具有合適的精度。由于要估計的風險信息可能有3種形式:敘述性、定性或定量,所以可選的尺度可以是命名尺度、序次尺度、坐標尺度或比例尺度。待估計的信息與度量尺度之間要建立對應關系,不同類型的信息有不同的度量尺度。例如,敘述性信息需要有命名尺度或序次尺度,定量的信息需要坐標或比例性的尺度。下表列出定量的風險等級:風險等級失效概率說明極高0.990.81超過當前的技術水平,肯定是技術問題。很高0.800.61超過當前的技術水平,極像是技術問題。高0.600.50最新的、尚未充分成熟的技術,好像是技術問題。中等0.490.24最佳技術,只會有很小的技術問題。低0.240.10使用的技術,沒有技術問題。很低0.090.01在使用中的系統(tǒng)。在使用不同的方法和技術進行風險估計時常常會出現偏差,這是由于缺少可用來進行判斷的信息,從而限制了風險估計的精度。由于信息分散,各人的理解和解釋不同,造成“信息可用性偏差”。其次,選擇的觀念不同、專家的偏愛、采樣規(guī)模的影響、樣本相關的影響,以及修正的偏差等,都會產生估計的偏差。特別要注意的是:對于連續(xù)發(fā)生的事件和間斷的不連續(xù)發(fā)生事件,這些偏差會造成什么樣的影響。必須采用一些技術來克服或消減風險估計中的不確定性。風險一般可以看成屬于以下三種過程之一:行為型、自然型和隨機型。過程種類克服和消減敘述型的不確定性克服和消減度量型的不確定性行為型受定義人類行為的能力的限制受理性的人類行為的限制自然型理論上無限制,但實際上有一定范圍受度量系統(tǒng)的精度的限制隨機型理論上無限制,但實際上有一定范圍無法消減不確定性第三步進行風險評估。因為軟件項目所面臨的是風險的一個較大的集合及其相互之間的影響,因此,必須針對這一點進行風險評估,以達到以下的目的:首先,考慮各種風險的綜合影響后,對已識別風險發(fā)生的可能性及其后果給出最終的量值(如果情況發(fā)生變化,也許要重新分析風險發(fā)生的可能性和可能的后果);其次,提供某種機制,對各個風險標明優(yōu)先次序,以便予以適當安排;最后,通過考慮其它可替代的方案,尋找避免風險的基本方法,即為高層決策人員提供全部必要的信息,以作出合理的有依據的決策。進行風險評估有三個步驟:①確定風險評估的標準。其目的是可用以衡量每個風險的后果,即判定在項目的生存期中各個階段的風險的后果是否可以接受。此標準應與項目成功的標準相關。②確定風險的級別。其目的是把項目作為整體來評估。就是說,人們必須理解各種風險之間的相互作用,以及修改某些因素會如何影響它們之間的相互作用。為了說明可被評估的風險,引入“參照風險”?!皡⒄诊L險”可以是一組單個風險的集合,或對項目會造成最大損害的一個或多個風險。必須仔細認清各風險間可能發(fā)生的耦合或復合情況。說明在把系統(tǒng)視為一個整體時,風險將導致系統(tǒng)失敗的概率。③把風險與“參照風險”做比較。把已評定的風險與在早期確定的“參照風險”相比較,結果可能是以下3種情況之一:可接受(評定的風險低于“參照風險”);不可能接受(評定的風險大大高于“參照風險”);不適合接受(評定的風險大于,但幾乎等于“參照風險”)?!纠?】假設開發(fā)某個計算機應用系統(tǒng)的投資額為3000元,該計算機應用系統(tǒng)投入使用后,每年可以節(jié)約1000元,5年內可能節(jié)約5000元。3000元是現在投資的錢,5000元是5年內節(jié)省的錢,兩者不能簡單地比較。 假定年利率為12%,利用計算貨幣現在價值的公式,可以算出該計算機應用系統(tǒng)投入使用后每年預計節(jié)省的金額的現在價值。年節(jié)省(元)利率(1+0.12)n現在價值(元)累計現在價值(元)110001.12892.86892.86210001.25800.001692.86310001.40714.292407.15410001.57636.943044.09510001.76568.183612.27 則該系統(tǒng)的純收入是(A),投資回收期是(B),投資回收率為(C)。供選擇的答案:A.①512.3元 ②729.28元 ③602.4元 ④612.27元B.①2.4年 ②3.93年 ③4.25年 ④2.78元C.①25% ②30% ③20% ④15%答案:A.④,B.②,C.③。分析:效益包括經濟效益,也包括社會效益。前者是有形的,后者是無形的。系統(tǒng)的經濟效益等于因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可以節(jié)省的運行費用。運行費用包括操作員人數、工作時間、消耗的物資等。在計算系統(tǒng)的經濟效益時,應按照貨幣的時間價值來計算,這是因為對項目的投資在前,而系統(tǒng)效益的產生在后,且常常有一個較長的過程。通常,用利率表示貨幣的時間價值。若設年利率為i,現已存入P元,則n年后可得到的錢數為:F=(1+i)n,F就是P元錢在n年后的價值。反之,若n年后能收入F元,那么這些錢現在的價值是:P=F∕(1+i)n。由此,可從題意得:該計算機應用系統(tǒng)在5年中的純收入為:3612.27-3000=612.27(元)。投資回收期約為:3+(3000-2407.15)/(3044.09-2407.15)≈3.93(年)。投資回收率設為r,由下列方程式: 3000=1000/(1+r)+1000/(1+r)2+1000/(1+r)3+……+1000/(1+r)5解得r=20%。純收入就是在整個生存期之內系統(tǒng)的累計經濟效益(折合成現在值)與投資之差。投資回收期就是使累計的經濟效益等于最初的投資所需的時間。投資回收率時投入資金所獲得的利率?!纠?】軟件項目管理的主要職能包括:(A),建立組織,配備人員,(B)和(C)。由于軟件項目的特有性質,使得項目管理存在一定困難。第一、(D),軟件工程過程充滿了大量高強度的腦力勞動;第二、(E),在特定機型上,利用特定的硬件配置,由特定的系統(tǒng)軟件和支撐軟件支持,形成了特定的開發(fā)環(huán)境;第三、(F),軟件項目經歷的各個階段都深透了大量的手工勞動,遠未達到自動化的程度;第四、(G),用戶要經過專門的培訓,才能掌握操作步驟,且需要配備專職維護人員進行售后服務;第五、(H),為高質量地完成軟件項目,充分發(fā)掘人員的智力才能和創(chuàng)造精神。 在總結和分析足夠數量失誤的軟件項目之后可知,造成軟件失誤的原因大多與(I)工作有關。在軟件項目開始執(zhí)行時,執(zhí)行的過程中及項目進行的最后階段都會遇到種種問題。供選擇的答案:AC.①編碼 ②制定計劃 ③開發(fā) ④指導⑤測試 ⑥檢驗DH.①軟件工作滲透了人的因素 ②智力密集,可見性差 ③單件生產 ④使用方法繁瑣,維護困難 ⑤勞動密集,自動化程度低I. ①設計 ②維護 ③測試 ④管理⑤實踐 ⑥指導 ⑦審核 ⑧分析答案:A.②,B.④,C.⑥,D.②,E.③,F.⑤,G.④,H.①,I.④。分析:軟件管理的主要職能包括:制定計劃:規(guī)定待完成的任務、要求、資源、人力和進度等。建立組織:為實施計劃,保證任務的完成,需要建立分工明確的責任制機構。配備人員:任用各種層次的技術人員和管理人員。指導:鼓勵和動員軟件人員完成所分配的工作。檢驗:對照計劃或標準,監(jiān)督和檢查實施的情況。軟件項目管理上的困難主要有:①智力密集,可見性差:軟件工程過程充滿了大量高強度的腦力勞動。軟件開發(fā)的成果是不可見的邏輯實體,軟件產品的質量難以用簡單的尺度加以度量。對于不深入掌握軟件知識或缺乏軟件開發(fā)實踐經驗的人員,是不可能領導做好軟件管理工作。軟件開發(fā)任務完成得好也看不見,完成得不好有時也能制造假象,欺騙外行的領導。②單件生產:在特定機型上,利用特定的硬件配置,由特定的系統(tǒng)軟件或支撐軟件的支持,形成了特定的開發(fā)環(huán)境。再加上軟件項目特定的目標,采用特定的開發(fā)方法、工具和語言,使得軟件具有獨一無二的特色,幾乎找不到與之完全相同的軟件產品。這種建立在內容、形式各異的基礎上的研制或生產方式,與其它領域中大規(guī)?,F代化生產有著很大的差別,也自然會給管理工作造成許多實際困難。③勞動密集,自動化程度低:軟件項目經歷的各個階段都滲透了大量的手工勞動,這些勞動又十分細致、復雜和容易出錯。盡管近年來開展了軟件工具和CASE的研究,但總體來說,仍遠未達到自動化的程度。軟件產業(yè)所處的這一狀態(tài),加上軟件本身的復雜性,使得軟件的開發(fā)和維護難于避免多種錯誤,軟件的正確性難于保證,軟件產品質量的提高自然受到了很大的影響。④使用方法繁瑣,維護困難:用戶使用軟件需要掌握計算機的基本知識,或者接受專門的培訓,否則面對多種使用手冊、說明和繁瑣的操作步驟,學會使用要花費很大力氣。另一方面,如果遇到軟件運行出了問題,且沒有配備專職維護人員,又得不到開發(fā)部門及時的售后服務,軟件的使用者更是徒喚奈何。⑤軟件工作滲透了人的因素:為高質量地完成軟件項目,充分發(fā)掘人員的智力才能和創(chuàng)造精神,不僅要求軟件人員具有一定的技術水平和工作經驗,而且還要求他們具有良好的心理素質。軟件人員的情緒和他們的工作環(huán)境,對他們工作有很大的影響。與其它行業(yè)相比,它的這一特點十分突出,必須給予足夠的重視。造成軟件失誤的原因:在總結和分析足夠數量失誤的軟件項目之后,看出其原因大多與管理工作有關。在軟件項目開始執(zhí)行時,遇到的問題往往是:可供利用的資料太少;項目負責人的責任不明確;項目的定義模糊;沒有計劃或計劃過分粗糙;資源要求未按時做出安排而落空;沒有明確規(guī)定子項目完成的標準;缺乏使用工具的知識;項目已有更動,但預算未隨之改變。在軟件項目執(zhí)行的過程中可能會發(fā)生:項目審查只注意瑣事而走過場;人員變動造成對工作的干擾;項目進行情況未能定期匯報;對階段評審和評審中發(fā)現的問題如何處置未做出明確規(guī)定;資源要求并不像原來預計的那樣大;未能做到嚴格遵循需求說明書;項目管理人員不足。項目進行到最后階段可能會發(fā)生:未做質量評價;取得的知識和經驗很少交流;未對人員工作情況做出評定;未做嚴格的移交;擴充性建議未寫入文檔資料??傊瑔栴}涉及到軟件項目研制中的計劃制定、進度估計、資源使用、人員配備、組織機構和管理方法等軟件管理的許多側面。四、習題保護傘活動(E)過程框架(C)框架(B)【9-1】任務集合SQA點(D)、交付物軟件過程是軟件(A)中的一系列相關軟件工程(B)的集合。每一個軟件過程又是由一組(C)、項目(D)、軟件工程產品和交付物以及質量保證(SQA)點等組成。一個軟件過程可以用右圖的形式來表示。首先建立一個(E)過程框架,其中定義了少量可適用于所有軟件項目的框架(B),再給出各個框架(B)的任務集合,最后是保護傘活動,如軟件質量保證、軟件配置管理以及測量等。軟件過程模型的選擇基于項目和應用的特點、采用的(F)和工具、要求的控制和需交付的產品。保護傘活動(E)過程框架(C)框架(B)任務集合SQA點(D)、交付物供選擇的答案:AF.①工程 ②公共 ③活動 ④生存期 ⑤方法 ⑥工作任務 ⑦功能 ⑧里程碑(E)度量(C)度量(D)度量面向(H)度量面向(F)度量面向(G)度量【9-2】軟件的度量包括(A)和(B)。軟件產品的(A)包括產生的代碼行數、執(zhí)行速度等。軟件產品的(B)則包括若干質量特性。我們還可進一步將軟件度量如右圖所示那樣分類。軟件(C)度量主要關注軟件工程過程的結果;(D)度量則指明了軟件適應明確和不明確的用戶要求到什么程度;(E)度量主要關注軟件的一些特性而不是軟件開發(fā)的全過程。從圖中還可看到另一種分類方法:面向(F)的度量用于收集與直接度量有關軟件工程輸出的信息和質量信息。面向(G)的度量提供直接度量的尺度。面向(H)的度量則收集有關人們開發(fā)軟件所用方式的信息和人們理解有關工具和方法的效率的信息。(E)度量(C)度量(D)度量面向(H)度量面向(F)度量面向(G)度量供選擇的答案:AB.①直接度量 ②尺度度量 ③二元度量 ④間接度量CE.①質量 ②技術 ③成本 ④生產率FH.①過程 ②對象 ③人 ④存?、菀?guī)模 ⑥進程 ⑦功能 ⑧數據【9-3】估算資源、成本和進度時需要經驗、有用的歷史信息、足夠的定量數據和作定量度量的勇氣。通常估算本身帶有(A)。項目的復雜性越高,規(guī)模越大,開發(fā)工作量(B),估算的(A)就(C)。項目的結構化程度提高,進行精確估算的能力就能(D),而風險將(E)。有用的歷史信息(F),總的風險會減少。供選擇的答案:A.①風范(范型) ②風格 ③風險 ④度量BF.①增加 ②越多 ③降低 ④不變 ⑤越少 ⑥越高 ⑦越大【9-4】在考慮各種軟件開發(fā)資源時,(A)是最重要的資源。如果把軟件開發(fā)所需的資源畫成一個金字塔形:在塔的上層是最基本的資源(A),在底部為(B)。(B)包括硬件資源和軟件資源。(C)、(D)和其它硬件設備屬于硬件資源。IPSE工具屬于軟件資源中的(E)。為了提高軟件的生產率和軟件產品的質量,可建立(F)。供選擇的答案:A,B.①方法 ②人力 ③工具 ④上下文環(huán)境C,D.①虛擬機 ②目標機 ③自動機 ④宿主機E,F.①維護工具 ②分析設計工具 ③支持工具 ④編程工具 ⑤可復用構件庫 ⑥框架工具 ⑦原型化模擬工具【9-5】任何軟件項目都必須做好項目管理工作,最常使用的進度管理工具是(A),當某一開發(fā)項目的進度有可能拖延時,應該(B)。對于一個典型的軟件開發(fā)項目,各開發(fā)階段需投入的工作量的百分比大致是(C)。各階段所需不同層次的技術人員大致是(D),而管理人員在各階段所需數量也不同,相對而言大致是(E)。供選擇的答案:A.①數據流圖 ②程序結構圖 ③因果圖 ④PERT圖B.①增加新的開發(fā)人員 ②分析拖期原因加以補救③從別的小組抽調人員臨時幫忙 ④推遲預定完成時間需求分析設計編碼測試投入工作量①25252525C.②10203040③15301540④5106530技術人員水平①初級高級高級高級D.②中級中級高級中級③高級中高級初級中高級④中級中高級中級初級管理人員數量①多中少中E.②中中中中③多少多多④少多少多【9-6】一個32KDSI的聲音輸入系統(tǒng)是一個輸入原型,或是一個可行性表演模型。所需可靠性非常低,因為它不打算投入生產性使用。把此模型看做半獨立型軟件。試問該軟件的名義工作量和實際工作量?!?-7】風險分析實際上是4個不同的活動,按順序依次為(A)、(B)、風險評價和(C)。在風險評價時,應當建立一個三元組:[ri,li,xi],ri是風險描述,li是(D),而xi是風險的影響。一個對風險評價很有用的技術是定義(E)。(F)、(G)、(H)是三種典型的(E)。在做風險分析的上下文環(huán)境中一個(E)就存在一個單獨的點,叫做參照點或(I)。在這個點上要公正底給出判斷。實際上,參照點能在圖上表示成一條平滑的曲線的情況很少,多數情況它是一個(J)。供選擇的答案:AC.①風險駕馭和監(jiān)控 ②風險識別 ③風險估計 ④風險消除

D.①風險的大小 ②風險的概率 ③風險的時間 ④風險的范圍E.①風險參照水準 ②風險度量 ③風險監(jiān)控 ④風險工具FH.①生產率 ②功能 ③成本 ④進度 ⑤范圍 ⑥性能I,J.①凹點 ②崩潰點 ③終點 ④區(qū)域 ⑤拐點 ⑥原點【9-8】對于一個小型的軟件開發(fā)項目,一個人就可以完成需求分析、設計、編碼和測試工作。但隨著軟件項目規(guī)模增大,需要有多人共同參與同一軟件項目的工作。當幾個人共同承擔軟件開發(fā)項目中的某一任務時,人與人之間必須通過交流來解決各自承擔任務之間的(A)問題,即通信問題。通信需花費時間和代價,會引起軟件錯誤(B),(C)軟件生產率。如果一個軟件開發(fā)小組有n個人,每兩人之間都需要通信,則共有(D)條通信路徑。假設一個人單獨開發(fā)軟件,生產率是5000行/人年,且在每條通信路徑上耗費的工作量是250行/人年。若4個人組成一個小組共同開發(fā)這個軟件,則小組中每個人的軟件生產率為(E)。若小組有6名成員,則小組中每個成員的軟件生產率為(F)。因此,有人提出,軟件開發(fā)小組的規(guī)模不能太大,人數不能太多,一般在(G)人左右為宜。供選擇的答案:A.①分配 ②管理 ③接口 ④協作B,C.①降低 ②增加 ③不變D.①n(n+1)/2 ②n(n-1)/2 ③n(n-1)(n-2)/6 ④n2/2E,F.①4875 ②4375 ③4625 ④5735G.①8~15 ②1~2 ③2~5 ④2~8【9-9】軟件項目的進度管理有許多方法,但(A)不是常用的進度控制圖示方法。在幾種進度控制圖示方法中,(B)難以表達多個子任務之間的邏輯關系,使用(C)不僅能表達子任務之間的邏輯關系,而且可以找出關鍵子任務。在(C)中,用帶箭頭的邊表示(D),用圓圈結點表示(E),它標明(D)的(F)。供選擇的答案:AC.①甘特圖 ②IPO ③PERT ④時標網狀圖DF.①數據流 ②控制流 ③事件 ④處理 ⑤起點或終點 ⑥任務【9-10】軟件項目組織的原則是(A)、(B)和(C)。一般有(D)、(E)、(F)三種組織結構的模式。(F)實際上是(D)和(E)兩種模式的復合。(E)這種模式在小組之間的聯系形成的接口較多,但便于軟件人員熟悉小組的工作,進而成為這方面的專家。供選擇的答案:AC.①推遲責任的落實 ②盡早落實責任 ③減少接口 ④增加聯系 ⑤責權分離 ⑥責權均衡DF.①矩陣形模式 ②主程序員小組模式 ③按課題劃分的模式 ④按職能劃分的模式 ⑤民主制小組模式 【9-11】軟件開發(fā)小組的目的是發(fā)揮集體的力量進行軟件研制。因此,小組從培養(yǎng)(A)的觀點出發(fā)進行程序設計消除軟件的(B)的性質。通常,程序設計小組的組織形式有三種,如下圖所示的a屬于(C),b屬于(D),c屬于(E)。(a)(b)(c)(a)(b)(c)供選擇的答案:A,B.①“局部” ②“全局” ③“集體” ④“個人”CE.①層次式小組 ②民主制小組 ③主程序員制小組五、習題解答【9-1】A.④,B.③,C.⑥,D.⑧,E.②,F.⑤。工作任務里程碑、交付物SQA點保護傘活動任務集合框架活動公共過程框架軟件過程是軟件生存期中的一系列相關軟件工程活動的集合。每一個軟件過程又是由一組工作任務、項目里程碑、軟件工程產品和交付物以及質量保證(SQA)點等組成。一個軟件過程可以用右圖的形式來表示。首先建立一個公共過程框架,其中定義了少量可適用于所有軟件項目的框架活動,而不考慮它們的規(guī)模和復雜性。再給出各個框架活動的任務集合,使得框架活動能夠適合于項目的特點和項目組的需求。最后是保護傘活動,如軟件質量保證、軟件配置管理以及測量等,它們獨立于任何一個框架活動并將貫穿于整個過程。軟件過程模型的選擇基于項目和應用的特點、采用的方法和工具、要求的控制和需交付的產品。工作任務里程碑、交付物SQA點保護傘活動任務集合框架活動公共過程框架【9-2】A.①,B.④,C.④,D.①,E.②,F.⑤,G.⑦,H.③。生產率度量質量度量面向功能的度量面向人的度量面向規(guī)模的度量技術度量軟件的度量包括直接度量和間接度量。軟件產品的直接度量包括產生的代碼行數、執(zhí)行速度、存儲量大小、在某種時間周期中所報告的差錯數。軟件產品的間接度量則包括功能性、復雜性、效率、可靠性、可維護性和許多其它的質量特性。只要事先建立特定的度量規(guī)程,很容易做到直接度量開發(fā)軟件所產生的代碼行數等。但是,軟件的功能性、效率、可維護性等質量特性卻很難用直接度量判明,只有通過間接度量才能推斷。我們還可進一步將軟件度量如圖所示那樣分類。軟件生產率度量主要關注軟件工程過程的結果;軟件質量度量則指明了軟件適應明確和不明確的用戶要求(軟件使用合理性)到什么程度;技術度量主要關注軟件的一些特性(如邏輯復雜性、模塊化程度)而不是軟件開發(fā)的全過程。從圖中還可以看到另一種分類方法:面向規(guī)模的度量用于收集與直接度量有關的軟件工程輸出的信息和質量信息。面向功能的度量提供直接度量的尺度。面向人的度量則收集有關人們開發(fā)軟件所用方式的信息和人們理解有關工具和方法的效率的信息。生產率度量質量度量面向功能的度量面向人的度量面向規(guī)模的度量技術度量估算資源、成本和進度時需要經驗、有用的歷史信息、足夠的定量數據和作定量度量的勇氣。通常估算本身帶有(A)。項目的復雜性越高,規(guī)模越大,開發(fā)工作量(C),估算的(A)就(D)。項目的結構化程度的提高,進行精確估算的能力就能(E),而風險將(F)。有用的歷史信息(G),總的風險會減少。供選擇的答案:A.①風范(范型) ②風格 ③風險 ④度量BG.①增加 ②越大 ③降低 ④不變 ⑤減少 ⑥越高【9-3】A.③,B.②,C.⑦,D.①,E.③,F.②。 估算資源、成本和進度時需要經驗、有用的歷史信息、足夠的定量數據和作定量度量的勇氣。估算本身帶有風險。增加風險的各種因素如圖所示。項目的復雜性對于增加軟件估算的不確定性影響很大。復雜性越高,估算的風險就越高。但是,復雜性是相對度量,它與項目參加人員的經驗有關。項目的規(guī)模對于軟件估算的精確性和功效影響也比較大。因為隨著軟件規(guī)模的擴大,軟件元素之間的相互依賴、相互影響程度迅速增加,因而估算的一個重要方法──問題分解會變得更加困難。由此可知,項目的規(guī)模越大,開發(fā)工作量越大,估算的風險越高。項目的結構化程度也影響項目估算的風險。所謂結構性是指功能分解的簡便性和處理信息的層次性。結構化程度的提高,進行精確估算的能力就能提高,而風險將減少。歷史信息的有效性也影響估算的風險?;仡欉^去,就能夠仿效做過的事,且改進出現問題的地方。在對過去的項目進行綜合的軟件度量之后,就可以借用來比較準確地進行估算,安排進度以避免重走過去的彎路,而總的風險也減少了。人風險靠對不確定性程度定量地進行估算來度量,此外,如果對軟件項目的作用范圍還不十分清楚,或者用戶的要求經常變更,都會導致對軟件項目所需資源、成本、進度的估算頻頻變動,增加估算的風險。人【9-4】A.②,B.③,C.②,D.④,E.⑥,F.⑤。其中,C、D的答案順序可互換。工具軟件項目計劃的第二個任務是對完成該軟件項目所需的資源進行估算。若把軟件開發(fā)所需的資源畫成一個金字塔,在塔的底部必須有現成的用以支持軟件開發(fā)的工具──硬件工具及軟件工具,在塔的高層是最基本的資源──人。在考慮各種軟件開發(fā)資源時,人是最重要的資源。在安排開發(fā)活動時必須考慮人員的技術水平、專業(yè)、人數、以及在開發(fā)過程各階段中對各種人員的需要。工具硬件是作為軟件開發(fā)項目的一種工具而投入的。在軟件項目計劃期間,考慮三種硬件資源:宿主機(軟件開發(fā)時使用的計算機及外圍設備);目標機(運行已開發(fā)成功軟件的計算機及外圍設備);其它硬件設備(專用軟件開發(fā)時需要的特殊硬件資源)。宿主機連同必要的軟件工具構成一個軟件開發(fā)系統(tǒng)。通常這樣的開發(fā)系統(tǒng)能夠支持多種用戶的需要,且能保持大量的由軟件開發(fā)小組成員共享的信息。但在許多情況下,除了那些很大的系統(tǒng)之外,不一定非要配備專門的開發(fā)系統(tǒng)。因此,所謂硬件資源,可以認為是對現存計算機系統(tǒng)的使用,而不是去購買一臺新的計算機。宿主機與目標機可以是同一種機型。軟件在開發(fā)期間使用了許多軟件工具來幫助軟件的開發(fā)。這些軟件工具叫做計算機輔助軟件工程(CASE)。主要的軟件工具分類為:業(yè)務系統(tǒng)計劃工具集;項目管理工具集;支持工具;分析和設計工具;編程工具;組裝和測試工具;原型化和模擬工具;維護工具;框架工具。這些框架工具能夠提供一個建立集成項目支撐環(huán)境(IPSE)的框架。在多數情況,框架工具實際提供了數據庫管理和配置管理的能力與一些實用工具,能夠把各種工具集成到IPSE中。為了促成軟件的復用,以提高軟件的生產率和軟件產品的質量,可建立可復用的軟件構件庫。根據需要,對軟件構件稍做加工,就可以構成一些大的軟件包。這要求這些軟件構件應加以編目,以利引用,并進行標準化和確認,以利于應用和集成?!?-5】A.④,B.②,C.③,D.③,E.①。 PERT技術叫做計劃評審技術,是安排開發(fā)進度,制定軟件開發(fā)計劃的最常用的方法。它采用網絡圖來描述一個項目的任務網絡。通常用兩張表來定義網絡圖。一張表給出與一特定軟件項目有關的所有任務(也稱為任務分解結構),另一張表給出應當按照什么樣的次序來完成這些任務(有時稱為限制表)。 當某一開發(fā)項目的進度有可能拖延時,應該分析拖期原因加以補救,切忌中途加人,否則反而會降低軟件生產率。對于一個典型的軟件開發(fā)項目,各開發(fā)階段需投入的工作量的百分比大致遵循40-20-40規(guī)則。即在整個軟件開發(fā)過程中,編碼的工作量占20%,編碼前的工作量占40%,編碼后的工作量占40%。 對于一些規(guī)模較小的項目(1個人年或者更少),只要向專家做些咨詢,也許一個人就可以完成所有的軟件工程步驟。而對一些規(guī)模較大的項目,在整個軟件生存期中,各種人員的參與情況是不一樣的。如圖所示。在軟件計劃和需求分析階段,對軟件系統(tǒng)進行定義,主要工作是由管理人員和高級技術人員在做,初級技術人員參與較少。待到對軟件進行具體設計、編碼及測試時,管理人員逐漸減少對開發(fā)工作的參與,高級技術人員主要在設計方面把關,具體編碼及調試參與較少,大量的工作將由初級技術人員去做。到了軟件開發(fā)的后期,需要對軟件進行檢驗、評價和驗收,管理人員和高級技術人員又將投入很多的精力。【9-6】對于這樣一個規(guī)模為10KDSI的商用微機遠程通信的嵌入式軟件,使用中間COCOMO模型進行軟件成本估算。名義工作量為MM=3.0*(10)1.12=146(人月)。又查表知f1=0.75,其它fi=1.00,則最終計算出的實際工作量為MM=146*0.75=110(人月)。【9-7】A.②,B.③,C.①,D.②,E.①,F.③,G.④,H.⑥,I.②,J.④。其中,F、G、H的答案順序可互換。風險分析實際上是4個不同的活動:風險識別,風險估計,風險評價和風險駕馭與監(jiān)控。 在進行風險評價時,可建立一系列三元組:[ri,li,xi],其中,ri是風險,li是風險出現的可能性(概率),而xi是風險產生的影響。在做風險評價時,應進一步審查在風險估計時所得到的估計的準確性,嘗試對已發(fā)現的風險進行優(yōu)先排隊,并著手考慮控制和∕或消除可能出現風險的方法。在做風險評價時常采用的一個非常有效的方法就是定義風險參照水準。對于大多數軟件項目來說,性能、支持、成本、進度就是典型的風險參照水準。就是說,對于成本超支、進度延期、性能降低、支持困難,或它們的某種組合,都有一個水準值,超出它就會導致項目被迫終止。在軟件風險分析的上下文中,一個風險參照水準就有一個點,叫做參照點或崩潰點。在這個點上,要公平地給出可接受的判斷,看是繼續(xù)執(zhí)行項目工作,還是終止它們(出的問題太大)。實際上,參照點能在圖上被表示成一條平滑的曲線的情況很少。在多數情況中,它是一個區(qū)域,在此區(qū)域中存在許多不確定性的范圍?!?-8】A.③,B.②,C.①,D.②,E.③,F.②,G.④。對于一個小型的軟件開發(fā)項目,一個人就可以完成需求分析、設計、編碼和測試工作。但是,隨著軟件開發(fā)項目規(guī)模的增大,就會有更多的人共同參與同一軟件項目的工作。例如10個人1年可以完成的項目,若讓1個人干10年是不行的。因此,需要多人組成開發(fā)小組共同參加一個項目的開發(fā)。但是,當幾個人共同承擔軟件開發(fā)項目中的某一任務時,人與人之間必須通過交流來解決各自承擔任務之間的接口問題,即所謂通信問題。通信需花費時間和代價,會引起軟件錯誤增加,降低軟件生產率。若兩個人之間需要通信,則稱在這兩個人之間存在一條通信路徑。如果一個軟件開發(fā)小組有n個人,每兩人之間都需要通信,則總的通信路徑有n(n-1)/2條。假設一個人單獨開發(fā)軟件,生產率是5000行/人年。若4個人組成一個小組共同開發(fā)這個軟件,則需要6條通信路徑(圖(a))。若在每條通信路徑上耗費的工作量是250行/人年。則小組中每個人的軟件生產率降低為 5000-6×250/4=5000-375=4625行/人年。如果小組有6名成員,通信路徑增加到15條(圖(b))。每條通信路徑消耗的工作量不變,則小組中每個成員的軟件生產率降低為 5000-15×250/6=5000-625=4375行/人年。從上述簡單分析可知,一個軟件任務由一個人單獨開發(fā),生產率最高;而對于一個稍大型的軟件項目,一個人單獨開發(fā),時間太長。因此軟件開發(fā)小組是必要的。有人提出,軟件開發(fā)小組的規(guī)模不能太大,人數不能太多,一般在2~8人左右為宜。【9-9】A.②,B.①,C.③,D.⑥,E.③,F.⑤。軟件項目的進度計劃和工作的實際進展情況,對于較大的項目來說,難以用語言敘述清楚。特別是表現各項任務之間進度的相互依賴關系,需要采用圖示的方法。常用的圖示方法有甘特圖、時標網狀圖、PERT等,IPO圖是用于在結構化設計中描述程序結構中輸入―處理―輸出的,不是進度控制的圖示工具。甘特圖以水平線段表示任務的工作階段;線段的起點和終點分別對應著任務的開工時間和完成時間;線段的長度表示完成任務所需的時間。從甘特圖上可以很清楚地看出各子任務在時間上的對比關系,并以文檔編制與評審作為軟件開發(fā)進度的里程碑。甘特圖的優(yōu)點是標明了各任務的計劃進度和當前進度,能動態(tài)地反映軟件開發(fā)進展情況。缺點是難以反映多個任務之間存在的復雜的邏輯關系。時標網狀圖克服了甘特圖的缺點,用具有時標的網狀圖來表示各個任務的分解情況,以及各個子任務之間在進度上的邏輯依賴關系(參看下圖)。時標網狀圖中的箭頭(直線、折線)表示各任務間的(先決)依賴關系;箭頭上的名字表示任務代號;箭頭的水平長度表示完成該任務的時間;而圓圈表示一個任務結束、另一個任務開始的事件。PERT圖也叫做計劃評審技術,它采用網絡圖來描述一個項目的任務網絡。不僅可以表達子任務的計劃安排,還可以在任務計劃執(zhí)行過程中估計任務完成的情況,分析某些子任務完成情況對全局的影響,找出影響全局的區(qū)域和關鍵子任務,以便及時采取措施,確保整個項目的完成。在PERT圖中,用箭頭表示任務或子任務,箭頭上附帶的數字表示完成任務所需的時間;圓形結點表示事件,每一事件標明某些任務都已完成,下面另外一些任務將要開始?!?-10】A.②,B.③,C.⑥,D.③,E.④,F.①。其中,A、B、C答案順序可互換。 在建立項目組織時應注意到以下原則:盡早落實責任:在軟件項目工作的開始,要盡早指定專人負責。使他有權進行管理,并對任務的完成負全責。減少接口:在開發(fā)過程中,人與人之間的聯系是必不可少的,存在著通信路徑。一個組織的生產率是和完成任務中存在的通信路徑數目是相互抵觸的。因此,要有合理的人員分工、好的組織結構、有效的通信,減少不必要的生產率的損失。責權均衡:軟件經理人員所負的責任不應比委任給他的權力還大。通常有三種組織結構的模式可供選擇:按課題劃分的模式:把軟件開發(fā)人員按課題組成小組,小組成員自始至終參加所承擔課題的各項任務。他們應負責完成軟件產品的定義、設計、實現、測試、復查、文檔編制、甚至包括維護在內的全過程。按職能劃分的模式:把參加開發(fā)項目的軟件人員按任務的工作階段劃分成若干個專業(yè)小組。要開發(fā)的軟件產品在每個專業(yè)小組完成階段加工(即工序)以后,沿工序流水線向下傳遞。例如,分別建立計劃組、需求分析組、設計組、實現組、系統(tǒng)測試組、質量保證組、維護組等。各種文檔資料按工序在各組之間傳遞。這種模式在小組之間的聯系形成的接口較多,但便于軟件人員熟悉小組的工作,進而變成這方面的專家。矩陣形模式:這種模式實際上是以上兩種模式的復合。一方面,按工作性質,成立一些專門組,如開發(fā)組、業(yè)務組、測試組等;另一方面,每一個項目又有它的經理人員負責管理。每個軟件人員屬于某一個專門組,又參加某一項目的工作?!?-11】A.②,B.④,C.③,D.②,E.①。 軟件開發(fā)小組的主要目的是發(fā)揮集體的力量進行軟件研制。因此,小組培養(yǎng)從“全局”的觀點出發(fā)進行程序設計,消除軟件的“個人”性質,并促進更充分的復審,小組提倡在共同工作中互相學習從而改善軟件的質量。小組內部人員的組織形式對生產率也有影響。現有的組織形式有三種。①主程序員制小組:突出了主程序員的領導,強調主程序員與其他技術人員的直接聯系,簡化了人際通信。這種集中領導的組織形式能否取得好的效果,很大程度上取決于主程序員的技術水平和管理才能。美國的軟件產業(yè)中大多是主程序員制的工作方式。②民主制小組:組內成員之間可以平等地交換意見,工作目標的制定及做出決定都由全體成員參加。這種組織形式強調發(fā)揮小組每個成員的積極性,要求每個成員充分發(fā)揮主動精神和協作精神。有人認為這種組織形式適合于研制時間長、開發(fā)難度大的項目。日本在發(fā)展計算機事業(yè)中,組織軟件開發(fā)大多采用這種形式的開發(fā)小組,取得了很好的效果。③層次式小組:這種結構比較適合項目本身就是層次結構狀的課題。因為這樣可以把項目按功能劃分成若干個子項目,把子項目分配給基層小組,由基層小組完成。基層小組的領導與項目負責人直接聯系。這種組織方式比較適合于大型軟件項目的開發(fā)。以上三種組織形式可以根據實際情況,組合起來靈活運用。例如,較大的軟件項目也許是把主程序員小組組織成層次式結構;也許基層小組的領導又是一個民主制小組的成員。【例1】軟件產品質量是生產者和用戶都十分關心的問題,早期的質量管理只看到產品的質量,近年來質量管理向(A)發(fā)展,一個重要的基本假設是(B)直接影響(C)。這一假設最初是根據制造業(yè)情況作出的。(D)自然就會得到高質量的產品。(D)的思想是美國工程師戴明(W.E.Deming)提出來的,戴明等人在質量管理中引入統(tǒng)計質量控制的概念,以降低軟件產品缺陷數作為(D)的目標,請選擇合適的答案完成下面有關軟件質量與過程的關系的示意圖。HE評價產品質量HE評價產品質量FF質量是否合格質量是否合格GG供選擇的答案:AD. ①過程的質量 ②產品的質量 ③產品質量的控制 ④過程質量的控制 ⑤過程的改進 ⑥產品的改進⑦技術的革新EH. ①定義過程 ②將過程標準化 ③開發(fā)產品④改進過程 ⑤質量控制答案:A.④, B.①, C.②, D.⑤ E.③F.④G.②H.①分析:軟件產品質量是生產者和用戶都十分關心的問題,早期的質量管理只看到產品的質量,實行的是最終產品檢驗的方法,對質量進行控制。把不合格的產品挑揀出來報廢或返工后,得到的產品就是合格的。近年來質量管理向過程質量的控制方向發(fā)展,一個重要的基本假設是開發(fā)過程的質量直接影響交付產品的質量。這一假設最初是根據制造業(yè)情況作出的。因為在制造業(yè)中,產品的質量與生產過程有著十分密切的關系,過程的改進自然就會得到高質量的產品。過程改進的思想是美國工程師戴明(W.E.Deming)提出來的。二次大戰(zhàn)后他到日本工作,在他的指導下,日本產業(yè)界一直堅持不斷地改進過程,取得了很好的效果。戴明等人在質量管理中引入統(tǒng)計質量控制的概念。這一概念的基礎是在產品缺陷數和過程之間建立聯系,以降低產品缺陷數作為過程改進的目標。過程改進直到過程成為可以重復的為止,就是說,直到過程的結果成為預期的為止。這時,產品的缺陷數就降下來了,然后再將過程標準化,這時下一步的改進又開始了。產品質量與過程的關系的示意圖如下。評價產品質量評價產品質量定義過程質量是否合格定義過程質量是否合格開發(fā)產品開發(fā)產品改進過程改進過程將過程標準化將過程標準化【例2】國際標準化組織和國際電工委員會于1991年發(fā)布了關于軟件質量的標準ISO∕IEC9126―1991。我國于1996年將其等同采用,成為國家標準GB∕T16260―1996《軟件產品評價、質量特性及其使用指南》。在此標準中規(guī)定了6個質量特性及相關的(A)個質量子特性。質量特性包括(B)、(C)、(D)、效率、可維護性和可移植性等。準確性屬于(B),容錯性屬于(C),易學習性屬于(D)。供選擇的答案:A. ①12 ②16 ③21 ④22BD.①可靠性 ②適應性 ③可使用性 ④安全性 ⑤一致性 ⑥功能性 ⑦依從性 ⑧互操作性⑨時間特性 ⑩資源特性答案:A.③,B.⑥,C.①,D.③分析:在ISO∕IEC9126―1991中規(guī)定了6個質量特性及相關的21個質量子特性。如下表所示。這些特性的規(guī)定是基于用戶的觀點的。功能性與一組功能及其指定的性質的存在有關的一組屬性。功能是指能滿足規(guī)定或隱含需求的那些功能。適合性與對規(guī)定任務能否提供一組功能以及這組功能能否適合有關的軟件屬性。準確性與能否得到正確的或相符的結果或效果有關的軟件屬性?;ゲ僮餍耘c同其它指定系統(tǒng)進行交互操作的能力有關的軟件屬性。依從性使軟件服從有關的標準、約定、法規(guī)及類似規(guī)定的軟件屬性。安全性與避免對程序及數據的非授權故意或意外訪問的能力有關的軟件屬性。可靠性與在規(guī)定的一段時間內和規(guī)定的條件下,軟件維持其性能水平有關的能力。成熟性與由軟件故障引起失效的頻度有關的軟件屬性。容錯性與在軟件錯誤或違反指定接口情況下,維持指定的性能水平的能力有關的軟件屬性。易恢復性與在故障發(fā)生后重新建立其性能水平并恢復直接受影響數據的能力,以及為達此目的所需的時間和有關的軟件屬性??墒褂眯耘c為使用所需的努力和由一組規(guī)定的或隱含的用戶對如此使用所做的評價有關的一組屬性。易理解性與用戶為理解邏輯概念及其應用性所需努力有關的軟件屬性。易學習性與用戶為學習其應用(例如操作控制、輸入、輸出)所需努力有關的軟件屬性。易操作性與用戶為進行操作或操作控制所需努力有關的軟件屬性。效率與在規(guī)定條件下,軟件的性能水平與所用資源量之間的關系有關的一組屬性。時間特性與響應和處理時間以及軟件執(zhí)行其功能時的吞吐量有關的軟件屬性。資源特性與軟件執(zhí)行其功能時所使用的資源量以及使用資源的持續(xù)時間有關的軟件屬性??删S護性與進行規(guī)定的修改所需努力有關的一組屬性。易分析性與為診斷缺陷或失效原因,或為判定待修改的部分所需努力有關的軟件屬性。易變更性與進行修改、調試或適應環(huán)境變化所需努力有關的軟件屬性。穩(wěn)定性與修改造成未預料后果的風險有關的軟件屬性。易測試性為確認經修改軟件所需努力有關的軟件屬性??梢浦残耘c軟件從一種環(huán)境轉移到另一環(huán)境的能力有關的一組屬性。適應性與一軟件無需采用有別于為該軟件準備的處理和手段就能適應規(guī)定的環(huán)境有關的軟件屬性。易安裝性與在指定環(huán)境下安裝軟件所需努力有關的軟件屬性。遵循性使軟件服從與可移植性有關的標準或約定的軟件屬性。易替換性與一軟件在該軟件環(huán)境中用來替代指定的其它軟件的可能和努力有關的軟件屬性。【例3】一個軟件產品開發(fā)完成投入使用后,常常由于各種原因需要對它做適當的變更。在軟件的使用過程中,軟件原來的(A)可能不再適應用戶的要求,需要進行變更;軟件的工作環(huán)境也可能發(fā)生變化,最常見的是配合軟件工作的(B)有變動;還有一種情況是在軟件使用過程中發(fā)現錯誤,需要進行修正。通常把軟件交付使用后做的變更稱為(C)。軟件投入使用后的另一項工作是(D),針對這類軟件實施的軟件工程活動,主要是對其重新實現,使其具有更好的(E),包括軟件重構、重寫文檔等。(D)和新的軟件開發(fā)工作的主要差別在于(H)。我們把常規(guī)的軟件開發(fā)稱為(F),而(G)是從代碼開始推導出設計或是規(guī)格說明來。供選擇的答案:A,B.①環(huán)境 ②軟件 ③硬件 ④功能和性能 ⑤要求C,D,F,G.①逆向工程 ②正向工程 ③軟件再工程 ④維護 ⑤設計E. ①可靠性 ②可維護性 ③可移植性 ④可修改性H. ①使用的工具不同 ②開發(fā)的過程不同 ③開發(fā)的起點不同 ④要求不同答案:A.④,B.③,C.④,D.③,E.②,F②,G①,H③分析:一個軟件產品開發(fā)完成投入使用后,常常由于各種原因需要對它做適當的變更。在軟件的使用過程中,軟件原來的功能和性能可能不再適應用戶的要求,需要進行變更;軟件的工作環(huán)境也可能發(fā)生變化,最常見的是配合軟件工作的硬件有變動;還有一種情況是在軟件使用過程中發(fā)現錯誤,需要進行修正。通常把軟件交付使用后做的變更稱為維護。軟件維護是軟件生存期中的一個重要階段。軟件投入使用后的另一項工作是軟件再工程,它和上述的軟件維護很有關系,但不是一回事,只是近年來才受到重視。近年來,隨著計算機的普及,各產業(yè)部門、政府機構等在軟件方面的投資迅速增長。幾乎所有的部門、機構的活動都采用了計算機。但大量軟件的維護不是輕松的事,需要維護的軟件越來越多,而維護工作的開銷又大得驚人,這就使得許多機構不可能在開發(fā)新的軟件上再投資來提高自己的工作能力。另一方面,待維護的軟件又常常是一些單位業(yè)務工作的關鍵,其中滲入了許多業(yè)務知識和工作經驗,這些知識和經驗除在軟件中體現外并沒有其它記載。如果這些軟件是早期開發(fā)的,當時沒有采用軟件工程技術,程序結構很差,甚至使用的是陳舊的程序設計語言,或者這些軟件的文檔已經過時,也可能原來就極不完整,當時的開發(fā)人員早已不知去向,使用單位沒有人能夠了解和看懂軟件內部的細節(jié),這樣的軟件不可能對他們做維護工作。針對這類軟件實施的軟件工程活動,主要是對其重新實現,使其具有更好的可維護性,包括軟件重構、重寫文檔,或是改用新的編程語言,或是將其數據轉移到現行的數據庫管理系統(tǒng)中,或是在分布式平臺上實現等。軟件再工程和新的軟件開發(fā)工作的主要差別在于開發(fā)的起點不同。再工程工作并不是從編寫需求規(guī)格說明開始,而是將原有的軟件作為規(guī)格說明。正因為如此,我們把常規(guī)的軟件開發(fā)稱為正向工程,而逆向工程是從代碼開始推導出設計或是規(guī)格說明來。再工程的最終目標仍然是產生新的、更容易維護的新系統(tǒng)。軟件代碼KGH維護要求配置【例4】軟件維護是軟件生存期的最后一個階段。軟件工程學針對維護工作的主要目標是提高(A),降低(B)。軟件的(C)、(D)、(E)是決定軟件可維護性的基本因素。軟件生存期(F)的工作與軟件可維護性有密切的關系。軟件代碼KGH維護要求配置IL? 右圖為結構化維護和非結構化維護的對比,請選擇合適的答案填入圖中。IL?JIJ供選擇的答案:JIJA,B.①軟件的生產率 ②文檔 ③軟件的可靠性 交付使用 ④軟件的可維護性 ⑤維護的代價交付使用 ⑥維護的效率 C,D,E. ①可測試性 ②互操作性 ③可理解性 ④可修改性 ⑤可復用性 ⑥可管理性F. ①編碼階段 ②設計階段 ③測試階段 ④每個階段GL.①

溫馨提示

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

評論

0/150

提交評論