




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程教程課后參考答案
第1章
一、選擇題
(1)D(2)B(3)C(4)D(5)D(6)A(7)D
二、簡答題
(1)什么是軟件危機(jī)?軟件危機(jī)表現(xiàn)在哪些方面?
答:具體來說,軟件危機(jī)出現(xiàn)的原因可以概括如下。
①忽視軟件開發(fā)前期的需求分析。
②開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論指導(dǎo)。
③文檔資料不齊全或不準(zhǔn)確。
④忽視與用戶之間、開發(fā)組成員之間的交流。
⑤忽視測試的重要性。
⑥不重視維護(hù)或由于上述原因造成維護(hù)工作的困難。
⑦從事軟件開發(fā)的專業(yè)人員對這個(gè)產(chǎn)業(yè)的認(rèn)識不充分,缺乏經(jīng)驗(yàn)。
⑧沒有完善的質(zhì)量保證體系。
具體地說,軟件危機(jī)的表現(xiàn)形式可以概括如下。
①軟件開發(fā)費(fèi)用和進(jìn)度失控。
②軟件系統(tǒng)實(shí)現(xiàn)的功能與實(shí)際需求不符。
③軟件的可靠性差。
④軟件難以維護(hù)。
⑤軟件通常沒有適當(dāng)?shù)奈臋n資料。
⑥軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例居高不下,且逐年上升。
⑦軟件生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢。
(2)簡述軟件和軟件工程的定義以及軟件工程的形成過程。
答:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相對應(yīng)的另一部分,是一系列程序、數(shù)據(jù)
及其相關(guān)的文檔集合。在這里,程序是按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令
的集合;數(shù)據(jù)是使程序能正常執(zhí)行的數(shù)據(jù)結(jié)構(gòu);文檔是是開發(fā)、使用和維護(hù)程
序所需要的圖文資料。
1
軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按預(yù)算
和進(jìn)度,實(shí)現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護(hù)的工程或進(jìn)
行研究的學(xué)科。
軟件工程的發(fā)展經(jīng)歷了以下四個(gè)階段。
①20世紀(jì)70年代。為了解決軟件項(xiàng)目失敗率高、錯誤率高以及軟件維護(hù)
任務(wù)重等問題,人們提出了軟件生產(chǎn)工程化的思想,希望使軟件生產(chǎn)走上正規(guī)
化的道路,并努力克服軟件危機(jī)。人們發(fā)現(xiàn)將傳統(tǒng)工程學(xué)的原理、技術(shù)和方法
應(yīng)用于軟件開發(fā),可以起到使軟件生產(chǎn)規(guī)范化的作用。
②20世紀(jì)80年代。面向?qū)ο蟮姆椒ㄅc技術(shù)受到了廣泛的重視,maltalk-80
的出現(xiàn)標(biāo)志著面向?qū)ο蟮某绦蛟O(shè)計(jì)進(jìn)入了實(shí)用和成熟階段。20世紀(jì)80年代末,
逐步發(fā)展起來的面向?qū)ο蟮姆治雠c設(shè)計(jì)方法,己經(jīng)形成了完整的面向?qū)ο蠹夹g(shù)
體系,使系統(tǒng)的生存周期更長,適應(yīng)更大規(guī)模、更廣泛的應(yīng)用。
③20世紀(jì)90年代末。出現(xiàn)了許多的敏捷方法,如自適應(yīng)軟件開發(fā)、水晶
項(xiàng)目開發(fā)、動態(tài)系統(tǒng)開發(fā)、極限編程、特征驅(qū)動開發(fā)和Scrum等。這些主要的
敏捷方法的創(chuàng)始人在2001年聚集一堂,并發(fā)表了敏捷開發(fā)宣言。
④21世紀(jì)。對快速應(yīng)用開發(fā)(RapidApplicationDevelopment,RAD)追
求的趨勢仍在繼續(xù),在信息技術(shù)、組織、競爭對策及環(huán)境等方面的變革步伐也
正在加快。云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能和機(jī)器學(xué)習(xí)、移動互聯(lián)網(wǎng)、三
維打印、可穿戴式技術(shù)、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、社交媒體、無人駕駛汽車和飛
機(jī)等技術(shù)不斷涌現(xiàn)?!按笠?guī)模計(jì)算”、“自治和生化計(jì)算機(jī)”、“模型驅(qū)動體
系結(jié)構(gòu)”和“構(gòu)件化軟件開發(fā)”等新領(lǐng)域都可能成為接下來軟件工程發(fā)展的主
要方向。
(3)軟件工程的目標(biāo)是什么?如何解決多目標(biāo)之間的矛盾?
答:軟件工程要達(dá)到的基本目標(biāo)包括以下六方面。
①達(dá)到要求的軟件功能。
②取得較好的軟件性能。
③開發(fā)出高質(zhì)量的軟件。
④付出較低的開發(fā)成本。
⑤需要較低的維護(hù)費(fèi)用。
⑥能按時(shí)完成開發(fā)工作,及時(shí)交付使用。
2
軟件工程的首要問題是軟件質(zhì)量。軟件工程的目的就是在以上目標(biāo)的沖突
之間取得一定程度的平衡。因此,在涉及平衡軟件工程目標(biāo)這個(gè)問題的時(shí)候,
軟件的質(zhì)量應(yīng)該擺在最重要的位置加以考慮。軟件質(zhì)量可用功能性、可靠性、
可用性、效率、可維護(hù)性和可移植性等六個(gè)特性來評價(jià)。
(4)什么是軟件生存周期?它分為幾個(gè)時(shí)期?幾個(gè)階段?
答:軟件生存周期是指從設(shè)計(jì)該產(chǎn)品的構(gòu)想開始,到軟件需求的確定、軟
件設(shè)計(jì)、軟件實(shí)現(xiàn)、產(chǎn)品測試與驗(yàn)收、投入使用,以及產(chǎn)品版本的不斷更新,
到該產(chǎn)品最終被市場淘汰的全過程。軟件生存周期由軟件定義、軟件開發(fā)和運(yùn)
行維護(hù)三個(gè)時(shí)期組成,劃分為問題定義、可行性研究、需求分析、概要設(shè)計(jì)、
詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和單元測試、綜合測試和運(yùn)行維護(hù)八個(gè)階段。
(5)什么是軟件生存周期模型?有哪些主要軟件過程模型?
答:軟件生存期模型也稱為軟件過程模型,是從軟件項(xiàng)目需求定義直至軟
件運(yùn)行維護(hù)為止,跨越整個(gè)生命周期的系統(tǒng)開發(fā)、運(yùn)行和維護(hù)所實(shí)施的全部過
程、活動和任務(wù)的結(jié)構(gòu)框架。典型的包括瀑布模型、快速原型模型、增量模型、
螺旋模型、統(tǒng)一過程、敏捷過程等。
(6)在軟件工程知識體系中,將軟件工程劃分為哪些知識域?
答:SWEBOK將軟件工程知識體系劃分為10個(gè)知識域,包含在兩類過程中。
一類過程是開發(fā)與維護(hù)過程,包括軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試
和軟件維護(hù);另一類過程是支持過程,包括軟件配置管理、軟件工程管理,軟
件工程過程、軟件工程工具寫方法、軟件質(zhì)量。每個(gè)知識域還可進(jìn)一步分解為
若干個(gè)論題,在論題描述中引用有關(guān)知識的參考文獻(xiàn),形成一個(gè)多級層次結(jié)構(gòu),
以此確定軟件工程知識體系的內(nèi)容和邊界。
3
(2)設(shè)計(jì)一個(gè)軟件的開發(fā)成本為5萬元,壽命為3年。未來3年的每年收益預(yù)
計(jì)為:2200元,24000元,26620元。銀行年利率為10%。試對此項(xiàng)目進(jìn)行成
本-效益分析,以決定其經(jīng)濟(jì)可行性。
解:進(jìn)行投入產(chǎn)出分析時(shí),未來的收益和現(xiàn)在消耗的成本不能直接進(jìn)行比
較,必須在考慮貨幣的時(shí)間價(jià)值后,才能進(jìn)行準(zhǔn)確的投入、產(chǎn)出分析。
22000/(1+10%)+24000/(1.1x1.1)+26620/(1.1x1.1x1.1)-50000=20000+1983
4.71
+20000-50000=9834.71
經(jīng)濟(jì)可行性分析投資收益為:9834.71元。
(3)某軟件公司統(tǒng)計(jì)發(fā)現(xiàn)該公司研發(fā)部門每一萬行C語言源代碼形成的源文
件(.c和.h文件)約為250K。某項(xiàng)目的源文件大小為3.75M。
①問該項(xiàng)目的規(guī)模是多少KLOC(源代碼行數(shù))?該公司研發(fā)部門的生產(chǎn)
率是0.625KLOC/人月,人工價(jià)是10000元/人月。
②問工作量和總成本是多少?
③每行代碼的價(jià)值是多少?
解:①3.75M/250K=15萬行=150KLOC
②工作量=規(guī)模/生產(chǎn)率=150KLOC/0.625KLOC=240人月
成本二工作量x人工價(jià)=240人月*10000元/人月=240萬元
③24()萬元/15萬行=16元/行
(4)某計(jì)算機(jī)系統(tǒng)投入使用后,每年可節(jié)約人民幣20000元,假設(shè)軟件生存期
為4年,系統(tǒng)投資額為50000元,若年利率為5%,試計(jì)算效益。
解:表面上看,4年共節(jié)約20000*4=80000元,扣除投資55000元可產(chǎn)生
純收入25000元。其實(shí)不然,因?yàn)橥顿Y在前,效益產(chǎn)生有一個(gè)時(shí)間過程,所以
需要把4年內(nèi)每年預(yù)計(jì)節(jié)約的錢折合成當(dāng)前價(jià)值才能比較。若按年利率5%計(jì)
算,折合到當(dāng)前值的數(shù)目如表1所示:
表1每年效益折算的當(dāng)前值
年效益(元)利率(1+0.()5尸當(dāng)前值(元)預(yù)計(jì)當(dāng)前值(元)
1200001.051904719047
2200001.10251814037187
32(X)0()1.15761727754464
42(X)()()1.21551645470918
5
根據(jù)表1可計(jì)算出以下經(jīng)濟(jì)指標(biāo):
純收入=4年累計(jì)的當(dāng)前值-系統(tǒng)投資=70918-55000=15918(元)
投資回收期=3+(55000-54464)/16454-3.033年
(5)某旅館的電話號他服務(wù)如下:
可以撥分機(jī)號和外線號碼。分機(jī)號是從7201?7299。外線號碼先撥9,然
后是市話號碼或長話號碼。長話號碼是以區(qū)號和市話號碼組成。區(qū)號是從
100?300中任意的數(shù)字串。市話號碼是以局號和分句號組成。局號可以是455、
466、888、552中任意一個(gè)號碼。分局號是是任意長度為4的數(shù)字串。
要求:寫出在數(shù)據(jù)字典中,電話號碼的數(shù)據(jù)條目的定義(即組成)
解:電話號碼二分機(jī)號|外線號碼
分機(jī)號=7201...7299
外線號碼=9+[市話號碼|長話號碼]
長話號碼=區(qū)號+市話號碼
區(qū)號=100...300
市話號碼=局號+分局號
局號=L455|466|888|552J
分局號:4{數(shù)字}4
(6)某工廠的采購部每天需要一張訂貨報(bào)表,報(bào)表按零件編號排序,表中列出
所有需要再次訂貨的零件。對于每個(gè)需要再次訂貨的零件,應(yīng)該列出下述數(shù)據(jù):
零件編號,零件名稱,訂貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件
入庫或出庫稱為事務(wù),通過存放在庫房的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)
零件庫存量少于庫存量臨界值,決定再次訂貨,畫出訂貨系統(tǒng)的數(shù)據(jù)流圖。
解:問題分析:源點(diǎn)/終點(diǎn),處理,數(shù)據(jù)存儲,數(shù)據(jù)流
1)源點(diǎn)/終點(diǎn):系統(tǒng)之外的實(shí)體(人,物,系統(tǒng))
源點(diǎn):倉庫管理員
終點(diǎn):采購員
2)處理:
需要報(bào)表一>產(chǎn)生報(bào)表
處理日常事務(wù)一>事務(wù)處理
3)數(shù)據(jù)存儲:
6
訂貨信息
庫存清單
4)數(shù)據(jù)流:
訂貨報(bào)表:零件編號、名稱、數(shù)量
事務(wù):零件編號、事務(wù)類型、數(shù)量
Stepl:頂層數(shù)據(jù)流圖系統(tǒng)級
表1訂貨系統(tǒng)頂層DFD圖
構(gòu)成:基本系統(tǒng)模型+源點(diǎn)+終點(diǎn)
一般采用自頂向下逐步細(xì)化的分層繪制方法
Step2:進(jìn)一步分解——功能級
表2訂貨系統(tǒng)。層DFD圖
Step3:進(jìn)一步分解——功能級
表3訂貨系統(tǒng)1層DFD圖
(7)開發(fā)某工程中使用的CAD系統(tǒng)需要投資20萬元,經(jīng)估算在工程中用該
CAD系統(tǒng)后將取代大部分人工設(shè)計(jì)工作,每年可節(jié)省9.6萬元。若該軟件的生
存期為5年,年利率按5%計(jì)算,試求該項(xiàng)目的凈收入。
解:若按年利率5%計(jì)算,貨幣時(shí)間價(jià)值折合到當(dāng)前值的數(shù)目如表2所示:
7
表2貨幣時(shí)間價(jià)值(萬元)
年份將來值(l+i)n現(xiàn)在值累計(jì)現(xiàn)在值
(萬元)(萬元)
19.61.059.14299.1429
29.61.10258.707517.8513
39.61.15768.292826.1432
49.61.21557.897934.0411
59.61.27637.521941.5630
純收入=5年累計(jì)的當(dāng)前值-系統(tǒng)投資=41.5630-20=21.5630(萬元)
8
第3章
一、選擇題
(1)B(2)D(3)B(4)B(5)B
二、簡答題
(1)答:需求分析需要4個(gè)步驟,分別獲取、建模、描述和驗(yàn)證。獲取需求實(shí)
質(zhì)上是一個(gè)需求收集的過程,要做充分的調(diào)查研究°通常是從分析當(dāng)前系統(tǒng)包
含的數(shù)據(jù)開始,分析當(dāng)前系統(tǒng)在處理信息時(shí)的不足,用戶希望改進(jìn)的主要問題
及迫切性等。收集需求的常用方法有問卷調(diào)查、訪談、實(shí)地操作、建立原型等,
收集的需求主要包括功能需求、性能需求、可靠性需求、可用性、人機(jī)界面需
求、約束、出錯處理等內(nèi)容。需求分析的核心任務(wù)是建立分析模型,即把來自
用戶的需求信息通過分析、提取、歸納、抽象建立起描述目標(biāo)系統(tǒng)的模型。傳
統(tǒng)的面向過程的軟件工程方法學(xué),主要采用數(shù)據(jù)流圖建立目標(biāo)系統(tǒng)的邏輯模型。
需求描述是指編制需求分析階段各類文檔。一般情況下,對于大型、復(fù)雜軟件
系統(tǒng)在需求分析階段會產(chǎn)生3個(gè)文檔:系統(tǒng)定義文檔(用于描述用戶需求的報(bào)
告)、系統(tǒng)需求規(guī)格說明書、軟件需求規(guī)格說明書,分別從不同的角度和層次
描述項(xiàng)目開發(fā)的需求。對于簡單的小規(guī)模軟件系統(tǒng),只需編制SRS即可。因?yàn)?/p>
需求分析的成果是后續(xù)開發(fā)的重要依據(jù)和基礎(chǔ),為了提高軟件產(chǎn)品的最終質(zhì)量,
降低開發(fā)成本,必須對需求分析結(jié)果從完整性、一致性、有效性和現(xiàn)實(shí)性4個(gè)
方面進(jìn)行嚴(yán)格的正確性驗(yàn)證,并且要對需求的變更實(shí)施可回溯的管理,避免無
法追蹤錯誤來源導(dǎo)致的混亂。
(2)答:包括6個(gè)方面:確定對系統(tǒng)的綜合要去;分析系統(tǒng)的數(shù)據(jù)需求;建立
系統(tǒng)的邏輯模型;修訂系統(tǒng)開發(fā)計(jì)劃;編寫軟件需求規(guī)格說明書;需求分析評
審。
(3)答:結(jié)構(gòu)化分析方法采用歸納思維和演繹思維的邏輯方法,逐步建立目標(biāo)
系統(tǒng)的邏輯模型(包括數(shù)據(jù)模型、功能模型和行為模型),進(jìn)而描繪出滿足用
戶要求的軟件系統(tǒng)。
結(jié)構(gòu)化需求分析方法基于“分解“和”抽象”的基本指導(dǎo)思想,采用面向數(shù)據(jù)流自
頂向下逐步求精的分析策略,逐步建立目標(biāo)系統(tǒng)的邏輯模型。
“分解”是面對一個(gè)復(fù)雜系統(tǒng)時(shí),為了將復(fù)雜性降低到人類認(rèn)知能力可以掌
握的程度,而把一個(gè)大系統(tǒng)(問題)分解成若干個(gè)小問題,然后分別解決。
9
需求分析的目標(biāo)之一是把數(shù)據(jù)流圖中的數(shù)據(jù)流和數(shù)據(jù)存儲分解定義到元素
級。通常做法是從數(shù)據(jù)流圖的輸出端著手分析,這是因?yàn)檩敵鰯?shù)據(jù)決定了系統(tǒng)
必須具有的最基本的組成元素(即功能)。
具體做法是,沿著數(shù)據(jù)流圖從輸出端往輸入端回溯,以確定每個(gè)數(shù)據(jù)元素
的來源,與此同時(shí)也就初步定義了有關(guān)的算法。通常把分析過程中得到的數(shù)據(jù)
元素的信息定義成數(shù)據(jù)字典,對算法的簡明描述記錄在IPO表中。通過分析而
補(bǔ)充的數(shù)據(jù)流、數(shù)據(jù)存儲和處理,應(yīng)該添加到數(shù)據(jù)流圖的適當(dāng)位置。復(fù)查的過
程是從輸入端開始,向用戶解釋輸入的數(shù)據(jù)是經(jīng)過怎樣的處理一步步變成了輸
出數(shù)據(jù)。反復(fù)經(jīng)過上述過程,把數(shù)據(jù)流圖“分解“擴(kuò)展到更低(即更詳細(xì))的層
次,從而得到更具體、更令人滿意的功能性需求的了解。
(4)答:首先進(jìn)行初步訪談,通過用戶對基本問題的回答,初步確定待解決問
題的范圍和解決方案。然后開發(fā)者和用戶分別寫出“產(chǎn)品需求
定會議的時(shí)間和地點(diǎn)以及主持會議的協(xié)調(diào)人。邀請雙方的代表出席會議,
并在會前預(yù)先把寫好的產(chǎn)品需求分發(fā)給每一位與會者。
要去每位與會者會前認(rèn)真審查產(chǎn)品需求,并列出作為系統(tǒng)環(huán)境組成的部分
對象、系統(tǒng)將產(chǎn)生的對象以及系統(tǒng)為了完成自己的功能將使用的對象。此外,
還要求每位與會者列出操作這些對象或與這些對象交互的服務(wù)(即處理或功
能)。最后還應(yīng)該列出約束條件(例如成本、規(guī)模、完成日期)和性能標(biāo)準(zhǔn)(例
如速度、容量)。并不希望每位與會者列出的內(nèi)容毫無遺漏,但求能夠獲得對
目標(biāo)系統(tǒng)準(zhǔn)確的認(rèn)識。
會議開始后,討論的第一個(gè)問題是是否需耍這個(gè)新產(chǎn)品,一旦大家都同意
確實(shí)需要這個(gè)新產(chǎn)品,每位與會者則把他們會前準(zhǔn)備好的列表展示出來供大家
討論。在這個(gè)階段,嚴(yán)格禁止批評和爭論,以免影響每位與會者深入交流的意
愿。
在討論的基礎(chǔ)上,大家一起共同創(chuàng)建一張包含各個(gè)議題的組合列表。調(diào)整
后的組合列表并不真正刪除某項(xiàng)內(nèi)容。在每個(gè)議題的組合列表都建立起來后,
在由協(xié)調(diào)人主持討論這些列表,以形成每個(gè)議題都達(dá)到意見一致的局面。
一旦得到了意見一致的列表,就把與會者分成更小的小組,針對每張列表
中的項(xiàng)目制定小型規(guī)格說明(需要對列表中包含的單詞或短語進(jìn)行準(zhǔn)確的說
明)。
10
然后,每個(gè)小組向全體與會者展示他們制定的小型規(guī)格說明,供大家討論。
意見一致后,每個(gè)與會者都制定一整套確認(rèn)標(biāo)準(zhǔn),并把自己制定的標(biāo)準(zhǔn)再次提
交會議討論,以創(chuàng)建出意見一致的確認(rèn)標(biāo)準(zhǔn)。最后,有一名或多名與會者根據(jù)
會議成果起草完整的軟件規(guī)格說明書。
三、應(yīng)用題
(1)描繪本系統(tǒng)功能的數(shù)據(jù)流圖如圖所示。
利
息
清
單
5
打印利息
清單
描繪本系統(tǒng)數(shù)據(jù)模型的E-R圖如下:
(2)描繪本系統(tǒng)的功能級數(shù)據(jù)流圖如下:
11
12
第4章
一、選擇題(多選)
(1)A(2)ABCD(3)BD(4)C(5)A
二、簡答題
(1)答:總體設(shè)計(jì)目標(biāo)是:是得到良好的軟件總體結(jié)構(gòu),即獨(dú)立性良好、
規(guī)模適中的一組模塊以及深度、寬度、扇入、扇出合適的系統(tǒng)結(jié)構(gòu)。主要任務(wù)
是把分析階段得到的數(shù)據(jù)模型映射成數(shù)據(jù)庫設(shè)計(jì),把數(shù)據(jù)流圖映射成軟件功能
結(jié)構(gòu),行為模型可以用于詳細(xì)設(shè)計(jì)階段的流程、算法設(shè)計(jì)。
(2)答:設(shè)想供選擇的方案,選取合理的方案,推薦最佳方案,功能分級,
設(shè)計(jì)軟件結(jié)構(gòu),數(shù)據(jù)庫設(shè)計(jì),制定測試計(jì)劃,編寫文檔,審查和復(fù)查。
(3)答:改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性,模塊規(guī)模應(yīng)該適中,深度、寬度、
扇入、扇出都應(yīng)當(dāng)適中,模塊的作用域應(yīng)該在控制與內(nèi),降低模塊結(jié)構(gòu)的復(fù)雜
度,設(shè)計(jì)單入口、單出口的模塊,模塊功能應(yīng)該可以預(yù)測。
(4)答:復(fù)查基本系統(tǒng)模型,復(fù)查并精化數(shù)據(jù)流圖,確定數(shù)據(jù)流圖的類型,
確定數(shù)據(jù)流的邊界,完成“第一級分解”,完成“第二級分解”,優(yōu)化。
(5)答:機(jī)械地遵循上述映射規(guī)則很可能會得出一些不必要的控制模塊,
如果它們確實(shí)用處不大,那么應(yīng)該合并它們。如果控制模塊功能過分復(fù)雜,可
以適當(dāng)?shù)卦黾又虚g層的控制模塊或者進(jìn)一步將它們分解。
何優(yōu)化過程不能違背設(shè)計(jì)原理,不能違背問題域常識、不能為了最求所謂
的“最佳設(shè)計(jì)”而優(yōu)化。
設(shè)計(jì)的優(yōu)化可能會導(dǎo)出不同的軟件結(jié)構(gòu),要從中選優(yōu),力求得到“最好”的
結(jié)構(gòu)。避免把結(jié)構(gòu)的優(yōu)化留到過程設(shè)計(jì)階段,這也是把結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)分
開的價(jià)值所在。
結(jié)構(gòu)簡單往往表明效率高。設(shè)計(jì)優(yōu)化應(yīng)該力求做到在有效模塊化的前提下
使用盡可能少的模塊數(shù),以及在能夠滿足信息要求的前提下使用最簡單的數(shù)據(jù)
結(jié)構(gòu)。
三、應(yīng)用題
(1)答:工資管理子系統(tǒng)數(shù)據(jù)流圖如下所示。
13
計(jì)算應(yīng)扣除
稅金
稅金
生成工資表
工資表信息
工資管理子系統(tǒng)層次圖如下:
工資管理系統(tǒng)
子系統(tǒng)
錄入扣除信息計(jì)算數(shù)據(jù)輸出數(shù)據(jù)
(2)頂層數(shù)據(jù)流圖
14
還書處理分支數(shù)據(jù)流圖
修改庫存
I
次
庫存
查詢處理分支數(shù)據(jù)流圖
15
借書文件庫存
借閱事務(wù)前輛事務(wù)
信息渺利
接收讀者借閱庫存
事務(wù)?
事務(wù)查詢查詢查詢
借閱處理分支數(shù)據(jù)流圖
注意事項(xiàng):必須保證登記完借書文件和修改完庫存后再出借圖書給借閱人,“登
記借書文件”和“修改庫存”誰先誰后影響不大。
事務(wù)
16
某圖書管理
系統(tǒng)
輸入信息業(yè)務(wù)辦理日常管理
借
借
借
庫
證用
用
還
書
書
閱
存
件
戶
戶
書
證
檢
查
手
查
查
注
手
錄
驗(yàn)
詢
續(xù)
詢
詢
冊
續(xù)
入
—
—
借
庫
打
書
存
印
查
查
文
量
統(tǒng)
超
超
件
量
查
期
計(jì)
錄
詢
表
入
——
「
——
——
更
新
更
新
借
庫
書
存
文
件
17
第5章
一、填空題
(1)順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)
(2)完整嵌套
(3)層次線
(4)程序流程圖
(5)表格
(6)模塊接口計(jì)
(7)數(shù)據(jù)結(jié)構(gòu)
(8)結(jié)構(gòu)化程序設(shè)計(jì)、自頂向下、逐步求精油
(9)SP、問題分析圖
(10)結(jié)構(gòu)化
(11)詳細(xì)設(shè)計(jì)說明書
二、選擇題
⑴D(2)C(3)C⑷B(5)A(6)B(7)B(8)A
⑼D(10)C(11)B(12)B(13)A(14)B(15)D
三、簡答題
(1)詳細(xì)設(shè)計(jì)的基本任務(wù)是什么?有哪兒種描述方法?
答:①為每個(gè)模塊確定采用的算法。
②確定每一模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的物理結(jié)構(gòu)。
③確定模塊接口的細(xì)節(jié)。
④要為每一個(gè)模塊設(shè)計(jì)出一組測試用例。
⑤編寫文檔,參加復(fù)審。
詳細(xì)設(shè)計(jì)的描述方法有圖形、表格和語言,其中,圖形常用結(jié)構(gòu)化程序流
程圖、盒圖和PAD(問題分析圖)為描述工具,語言常用過程設(shè)計(jì)語言(PDL)來作
為工具。
(2)答:結(jié)構(gòu)化程序設(shè)計(jì)的要點(diǎn)主要有以下三個(gè)。
①采用自頂向下、逐步求精的程序設(shè)計(jì)方法。
②使用三種基本控制結(jié)構(gòu)構(gòu)造程序。任何程序都可以由順序、選擇、重復(fù)
(循環(huán))三種基本控制結(jié)構(gòu)構(gòu)造。
18
③每個(gè)程序模塊只有一個(gè)人口和一個(gè)出口。
(3)答:詳細(xì)設(shè)計(jì)階段描述處理過程常用的三種工具:圖形、表格和語言。
詳細(xì)設(shè)計(jì)工具有結(jié)構(gòu)化程序流程圖、問題分析圖、盒圖和過程設(shè)計(jì)語言、判定
表及判定樹。
(4)答:流程圖的優(yōu)點(diǎn)是直觀清晰、易于使用,是開發(fā)者普遍采用的工具,
但是它具有自身的缺點(diǎn)。
①可隨心所欲地控制流程線的流向.容易造成非結(jié)構(gòu)化的程序結(jié)構(gòu)。
②流程圖不易反映逐步求精的過程,往往反映最后結(jié)果。
③不易表示數(shù)據(jù)結(jié)構(gòu)。
為克服流程圖的最大缺陷,要求流程圖由三種控制結(jié)構(gòu)順序組合和完全嵌
套而成,不能交叉,這樣的流程圖是結(jié)構(gòu)化的流程圖。
(5)答:PAD的特點(diǎn)如下。
①清晰反映程序的層次結(jié)構(gòu)。
②支持逐步求精的設(shè)計(jì)方法,自左至右逐步細(xì)化。
③易讀易寫,使用方便。
④支持結(jié)構(gòu)化的程序設(shè)計(jì)原理。
⑤可自動生成程序。
(6)答:PDL是在偽碼的基礎(chǔ)上,擴(kuò)充了模塊的定義與調(diào)用、數(shù)據(jù)定義和
輸入輸出而形成的。它是一種用于描述模塊算法設(shè)計(jì)和處理細(xì)節(jié)的語言。分為
內(nèi)外兩層語言,外層語法具有嚴(yán)格的規(guī)則;內(nèi)層表示實(shí)際操作和條件的自然語
言,語法自由。
PDL表示的程序結(jié)陶一般有下列幾種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、重復(fù)結(jié)構(gòu)、出
口結(jié)構(gòu)、擴(kuò)充結(jié)構(gòu)(模塊定義、模塊調(diào)用、數(shù)據(jù)定義、輸入/輸出)等。
PDL的特點(diǎn)如下:
①關(guān)鍵字應(yīng)有固定的語法,提供結(jié)構(gòu)化的控制結(jié)構(gòu)和數(shù)據(jù)說明,并在控制結(jié)
構(gòu)的頭尾都加關(guān)鍵字,體現(xiàn)模塊化的特點(diǎn)。
②用自然語言敘述系統(tǒng)處理功能。
③應(yīng)有說明各種數(shù)據(jù)結(jié)構(gòu)的手段.
④描述模塊定義和調(diào)用及模塊接口模式。
PDL的優(yōu)缺點(diǎn)如下:
19
①可以靈活地表達(dá)算法或作為注釋直接插入到原程序當(dāng)中,可用普通的文
字處理系統(tǒng)進(jìn)行書寫和編輯,并可用自動處理程序自動生成。就明的道
②不如圖形工具形象直觀,對復(fù)雜的描述不如判定表清晰。
(7)答:用方框圖來代替?zhèn)鹘y(tǒng)流程圖的方法,稱為N-S圖。N-S圖的優(yōu)點(diǎn)是
所有程序結(jié)構(gòu)均用方框表示,無論并列或嵌套,程序結(jié)構(gòu)清晰可見。而且它只能表
達(dá)結(jié)構(gòu)化的程序邏輯,使用它的人必須遵守結(jié)構(gòu)化程序設(shè)計(jì)的規(guī)定。不足是當(dāng)
程序內(nèi)嵌套的層數(shù)增多時(shí),內(nèi)層的方框會越來越小,從而增加繪圖的難度,并使
圖形清晰性受影響。
四、應(yīng)用題
(1)用Halstead度量還可以用來預(yù)測程序中可能存在的錯誤E。一個(gè)程序?qū)?/p>
75個(gè)數(shù)據(jù)庫項(xiàng)共訪問1300次,對150個(gè)運(yùn)算符共使用了1200次,預(yù)測該程序
的錯誤數(shù)是多少?
那么預(yù)測該程序的錯誤數(shù):
E=(l200+1300)*log2(75+150)/3000?6.5
即預(yù)測該程序中可能包含6?7個(gè)錯誤。
(2)假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過30kg的行李。當(dāng)行
李重量超過30kg時(shí),對頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)4元,對其他艙
的國內(nèi)乘客超重部分每公斤收費(fèi)6元,對外國乘客超重部分每公斤收費(fèi)比國內(nèi)
乘客多一倍,對殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判定樹表
示計(jì)算行李費(fèi)的算法。
20
Rules
__________________人___________________
Rulenumbers123456789
國內(nèi)乘客TTTTFFFF
Condition頭等艙TFTFTFTF
rows<
殘疾乘客FFTTFFTT
行李重量WSQ30TFFFFFFFF
免費(fèi)X
(W-30)xX
Actionrows(W-30)xX
《(W-30)xXX
(W-30)xXX
(W-30)*X
(W-30)x12X
頭等艙匚殘疾乘客(W-30)X2
正常乘客"-30)X4
國內(nèi)乘客
殘疾乘客
其他艙匚(Jr-3O)X3
行李重量正常乘客"-30)X6
[K>30kg
頭等艙匚殘疾乘客""30)X4
正常乘客(獷-30)X8
外國乘客
行李費(fèi)殘疾乘客(?z-30)X6
算法其他艙匚
正常乘客"-30)X12
行李重量
%(30kg免費(fèi)
圖1用判定樹表示計(jì)算行李費(fèi)的算法
(3)畫出下列偽碼程序的程序流程圖和盒圖
START
IFpTHEN
WHILEqDO
f
ENDDO
ELSE
BLOCK
o
n
ENDBLOCK
ENDIF
STOP
21
22
第6章
一、選擇題
(1)D(2)B(3)A(4)C(5)C(6)C(7)D(8)C(9)D(10)
B
(11)B(12)A
二、簡答題
(1)軟件測試應(yīng)該劃分為幾個(gè)階段?各個(gè)階段應(yīng)重點(diǎn)測試的內(nèi)容是什么?
答:軟件測試可分為單元測試,集成測試,系統(tǒng)測試,驗(yàn)收測試四個(gè)階段。
單元測試又稱模塊測試、邏輯測試或結(jié)構(gòu)測試,是針對軟件設(shè)計(jì)的最小單
位一一程序模塊或功能模塊,進(jìn)行正確性檢驗(yàn)的測試工作。其目的在于檢驗(yàn)每
個(gè)程序單元能夠正確實(shí)現(xiàn)詳細(xì)設(shè)計(jì)說明中的模塊功能、性能、接口和設(shè)計(jì)約束
等要求,發(fā)現(xiàn)各個(gè)模塊內(nèi)部可能存在的各種錯誤。
集成測試又稱組裝測試、綜合測試或聯(lián)合測試。通常在單元測試的基礎(chǔ)上,
將所有的程序模塊進(jìn)行有序的、遞增的測試。集成測試是檢驗(yàn)程序單元或部件
的接口關(guān)系,逐步集成為符合概要設(shè)計(jì)要求的程序部件或整個(gè)系統(tǒng)。
系統(tǒng)測試為驗(yàn)證和確認(rèn)系統(tǒng)是否達(dá)到其原始目標(biāo),而對集成的硬件和軟件
系統(tǒng)進(jìn)行的測試。系統(tǒng)測試是在真實(shí)或模擬系統(tǒng)運(yùn)行的環(huán)境下,檢查完整的程
序系統(tǒng)能否和系統(tǒng)(包括計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)和系統(tǒng)軟件、支持平臺等)
正確配置、連接,并滿足用戶需求。系統(tǒng)測試的主要依據(jù)是《系統(tǒng)需求規(guī)格說
明書》文檔。
驗(yàn)收測試又稱交付測試,是軟件在完成了單元測試、集成測試、系統(tǒng)測試
之后,產(chǎn)品發(fā)布之前進(jìn)行的軟件測試活動。驗(yàn)收測試又分為Alpha測試(。測
試)和Beta測試(B測試),Alpha測試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測
試,或者是公司內(nèi)部的月戶在模擬實(shí)際操作環(huán)境下進(jìn)行的受控測試,Beta測試
是軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測試。
(2)在軟件測試中,應(yīng)遵循哪些原則?
答:在軟件測試過程中,通常應(yīng)該遵循以下七個(gè)原則。
①所有的測試都應(yīng)追溯到用戶需求。這是因?yàn)檐浖哪康氖鞘褂脩敉瓿深A(yù)
定的任務(wù),滿足其需求。而軟件測試揭示軟件的缺陷和錯誤,一旦修正這些錯
誤,就能更好地滿足用戶需求。
23
②應(yīng)盡早地和不斷地進(jìn)行軟件測試。由于軟件的復(fù)雜性和抽象性,在軟件
生命周期各階段都可能產(chǎn)生錯誤,所以不應(yīng)把軟件測試僅僅看作是軟件開發(fā)的
一個(gè)獨(dú)立階段,而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個(gè)階段中去。在需求分析和設(shè)
計(jì)階段就應(yīng)開始進(jìn)行測試工作,編寫相應(yīng)的測試計(jì)劃及測試設(shè)計(jì)文檔,同時(shí)堅(jiān)
持在開發(fā)各階段進(jìn)行技術(shù)評審和驗(yàn)證,這樣才能盡早發(fā)現(xiàn)和預(yù)防錯誤,杜絕某
些缺陷和錯誤,提高軟件的質(zhì)量。測試工作進(jìn)行得越早,越有利于提高軟件的
質(zhì)量,這是預(yù)防性測試的基本原則。
③在有限的時(shí)間和資源下進(jìn)行完全測試并找出軟件所有的錯誤和缺陷是
不可能的,軟件測試不能無限進(jìn)行下去,應(yīng)適時(shí)終止。因?yàn)椋瑴y試輸入量大、
輸出結(jié)果多、路徑組合多、用有限的資源來達(dá)到完全測試是不現(xiàn)實(shí)的。
④測試只能證明軟件存在錯誤,而不能證明軟件沒有錯誤。測試無法顯示
潛在的錯誤和缺陷,繼續(xù)進(jìn)一步測試可能還會找到其它錯誤和缺陷。
⑤充分關(guān)注測試中的集群現(xiàn)象。在測試的程序段中,若發(fā)現(xiàn)的錯誤數(shù)目比
較多,則殘存在
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同解除與違約責(zé)任
- 2025全新版的房屋買賣合同示例
- 2025aa國際勞務(wù)合同
- 2025貸款抵押合同模板
- 《應(yīng)對突發(fā)事件案例分析》課件
- 《魯迅作品解析》課件
- 《分裂過程的區(qū)》課件
- 《女媧造人神話》課件
- 《肺癌診治進(jìn)展》課件
- 2025年恩施b2貨運(yùn)資格證全題
- 了不起的我課件完整版
- 油藏工程重點(diǎn)知識點(diǎn)
- 金屬波紋管的焊接技術(shù)
- GB/T 22235-2008液體黏度的測定
- CAD輸入文字時(shí)提示“找不到主詞典無法啟動拼寫檢查程序”怎么辦
- -活出心花怒放的生命 課件 心理健康
- 給水泵檢修方案
- 設(shè)備出入庫管理辦法
- KEGG代謝通路中文翻譯
- GB∕T 17832-2021 銀合金首飾 銀含量的測定 溴化鉀容量法(電位滴定法)
- 低成本自動化的開展與案例77頁P(yáng)PT課件
評論
0/150
提交評論