![軟件工程導(dǎo)論簡答習(xí)題參考資料——課后習(xí)題答案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/5dae4b60-67ae-4f12-98f1-258bfbfbeef8/5dae4b60-67ae-4f12-98f1-258bfbfbeef81.gif)
![軟件工程導(dǎo)論簡答習(xí)題參考資料——課后習(xí)題答案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/5dae4b60-67ae-4f12-98f1-258bfbfbeef8/5dae4b60-67ae-4f12-98f1-258bfbfbeef82.gif)
![軟件工程導(dǎo)論簡答習(xí)題參考資料——課后習(xí)題答案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/5dae4b60-67ae-4f12-98f1-258bfbfbeef8/5dae4b60-67ae-4f12-98f1-258bfbfbeef83.gif)
![軟件工程導(dǎo)論簡答習(xí)題參考資料——課后習(xí)題答案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/5dae4b60-67ae-4f12-98f1-258bfbfbeef8/5dae4b60-67ae-4f12-98f1-258bfbfbeef84.gif)
![軟件工程導(dǎo)論簡答習(xí)題參考資料——課后習(xí)題答案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/27/5dae4b60-67ae-4f12-98f1-258bfbfbeef8/5dae4b60-67ae-4f12-98f1-258bfbfbeef85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章一、什么是軟件危機(jī)它有哪些典型表現(xiàn)為什么會出現(xiàn)軟件危機(jī)軟件危機(jī)是指在計算機(jī)軟件開發(fā)、使用與維護(hù)過程中遇到的一系列嚴(yán)重問題和難題。它包括兩方面:如何開發(fā)軟件,已滿足對軟件日益增長的需求;如何維護(hù)數(shù)量不斷增長的已有軟件。軟件危機(jī)的典型表現(xiàn):(1) 對軟件開發(fā)成本和進(jìn)度的估計常常很不準(zhǔn)確。常常出現(xiàn)實際成本比估算成本高出一個數(shù)量級、實際進(jìn)度比計劃進(jìn)度拖延幾個月甚至幾年的現(xiàn)象。而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計又往往損害了軟件產(chǎn)品的質(zhì)量。這些都降低了開發(fā)商的信譽(yù),引起用戶不滿。(2) 用戶對已完成的軟件不滿意的現(xiàn)象時有發(fā)生。(3) 軟件產(chǎn)品的質(zhì)量往往是靠不住的。(4) 軟件常常是不可維護(hù)的
2、。(5) 軟件通常沒有適當(dāng)?shù)奈臋n資料。文檔資料不全或不合格,必將給軟件開發(fā)和維護(hù)工作帶來許多難以想象的困難和難以解決的問題。(6) 軟件成本、軟件維護(hù)費在計算機(jī)系統(tǒng)總成本中所占比例逐年上升。(7) 開發(fā)生產(chǎn)率提高的速度遠(yuǎn)跟不上計算機(jī)應(yīng)用普及的需求。軟件危機(jī)出現(xiàn)的原因:(1) 來自軟件自身的特點:是邏輯部件,缺乏可見性;規(guī)模龐大、復(fù)雜,修改、維護(hù)困難。(2) 軟件開發(fā)與維護(hù)的方法不當(dāng):忽視需求分析;認(rèn)為軟件開發(fā)等于程序編寫;輕視軟件維護(hù)。(3) 供求矛盾將是一個永恒的主題:面對日益增長的軟件需求,人們顯得力不從心。二、什么是軟件工程它有哪些本質(zhì)特征怎樣用軟件工程消除軟件危機(jī)1993年IEEE的定
3、義:軟件工程是: 把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件; 研究中提到的途徑。軟件工程的本質(zhì)特征:(1) 軟件工程關(guān)注于大型程序(軟件系統(tǒng))的構(gòu)造(2) 軟件工程的中心課題是分解問題,控制復(fù)雜性(3) 軟件是經(jīng)常變化的,開發(fā)過程中必須考慮軟件將來可能的變化(4) 開發(fā)軟件的效率非常重要,因此,軟件工程的一個重要課題就是,尋求開發(fā)與維護(hù)軟件的更好更有效的方法和工具(5) 和諧地合作是開發(fā)軟件的關(guān)鍵(6) 軟件必須有效地支持它的用戶(7) 在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人(完成一些工作)消除軟件危機(jī)的途徑:(1) 對計算
4、機(jī)軟件有一個正確的認(rèn)識(軟件程序)(2) 必須充分認(rèn)識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項目(3) 推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法(4) 開發(fā)和使用更好的軟件工具三、簡述結(jié)構(gòu)化范型和面向?qū)ο蠓缎偷囊c,并分析他們的優(yōu)缺點。七、什么是軟件生命周期模型試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點,說明每種模型的使用范圍。軟件生命周期模型是跨越整個生存期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架。l 瀑布模型 優(yōu)點:它提供了一個模板,這個模板使得分析、設(shè)計、編碼、測試和支持的方法可以
5、在該模板下有一個共同的指導(dǎo)。雖然有不少缺陷但比在軟件開發(fā)中隨意的狀態(tài)要好得多。缺點:(1) 實際的項目大部分情況難以按照該模型給出的順序進(jìn)行,而且這種模型的迭代是間接的,這很容易由微小的變化而造成大的混亂。(2) 經(jīng)常情況下客戶難以表達(dá)真正的需求,而這種模型卻要求如此,這種模型是不歡迎具有二義性問題存在的。(3) 客戶要等到開發(fā)周期的晚期才能看到程序運(yùn)行的測試版本,而在這時發(fā)現(xiàn)大的錯誤時,可能引起客戶的驚慌,而后果也可能是災(zāi)難性的。(4) 會經(jīng)常在過程的開始和結(jié)束時碰到等待其他成員完成其所依賴的任務(wù)才能進(jìn)行下去,有可能花在等待的時間比開發(fā)的時間要長。稱之為“堵塞狀態(tài)”。它是軟件工程中應(yīng)用最廣泛
6、的過程模型,在軟件工程中占有肯定和重要的位置。l 快速原型模型在進(jìn)行了基本需求分析之后,快速開發(fā)出產(chǎn)品的原型,然后基于這個原型,同客戶溝通、交流,更好地了解客戶需求,不斷修改這個原型,到了雙方認(rèn)可的程度,再做詳細(xì)地分析、設(shè)計和編程,最終開發(fā)出令客戶滿意的產(chǎn)品。 優(yōu)點:使用戶能夠感受到實際的系統(tǒng),使開發(fā)者能夠快速地構(gòu)造出系統(tǒng)的框架。缺點:產(chǎn)品的先天性不足,因為開發(fā)者常常需要做實現(xiàn)上的折中,可能采用不合適的操作系統(tǒng)或程序設(shè)計語言,以使原型能夠盡快工作。 l 增量模型優(yōu)點:(1) 人員分配靈活,剛開始不用投入大量人力資源,當(dāng)核心產(chǎn)品很受歡迎時,可增加人力實現(xiàn)下一個增量。(2) 當(dāng)配備的人員不能在設(shè)定
7、的期限內(nèi)完成產(chǎn)品時,它提供了一種先推出核心產(chǎn)品的途徑,這樣就可以先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用。缺點:(1) 至始至終開發(fā)者和客戶糾纏在一起,直到完全版本出來。(2) 適合于軟件需求不明確、設(shè)計方案有一定風(fēng)險的軟件項目。該模型具有一定的市場。l 螺旋模型優(yōu)點:對于大型系統(tǒng)及軟件的開發(fā),這種模型是一個很好的方法。開發(fā)者和客戶能夠較好地對待和理解每一個演化級別上的風(fēng)險。缺點:(1) 需要相當(dāng)?shù)娘L(fēng)險分析評估的專門技術(shù),且成功依賴于這種技術(shù)。(2) 很明顯一個大的沒有被發(fā)現(xiàn)的風(fēng)險問題,將會導(dǎo)致問題的發(fā)生,可能導(dǎo)致演化 的方法失去控制。(3) 這種模型相對比較新,應(yīng)用不廣泛,其功效需要進(jìn)一
8、步的驗證。該模型適合于大型軟件的開發(fā)第二章4目前住院病人主要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士,而且由于不能隨時觀察危重病人的病情變化,還會延誤搶救時機(jī)。某醫(yī)院打算開發(fā)一個以計算機(jī)為中心的患者監(jiān)護(hù)系統(tǒng),請寫出問題定義,并且分析開發(fā)這個系統(tǒng)的可行性。 醫(yī)院對患者監(jiān)護(hù)系統(tǒng)的基本要求是隨時接收每個病人的生理信號(脈搏、體溫、血壓、心電圖等),定時記錄病人情況以形成患者日志,當(dāng)某個病人的生理信號超出醫(yī)生規(guī)定的安全范圍時向值班護(hù)士發(fā)出警告信息,此外,護(hù)士在需要時還可以要求系統(tǒng)印出某個指定病人的病情報告。問題定義:從問題陳述可知,本系統(tǒng)的數(shù)據(jù)源點是“病人”和“護(hù)士”,他們分別提供生理信號和要求病情報告的信
9、息。進(jìn)一步分析問題陳述,從系統(tǒng)應(yīng)該“定時記錄病人情況以形成患者日志”這項要求可以想到,還應(yīng)該有一個提供日期和時間信息的“時鐘”作為數(shù)據(jù)源點。從問題陳述容易看出,本系統(tǒng)的數(shù)據(jù)終點是接收警告信息和病情報告的護(hù)士。系統(tǒng)對病人生理信號的處理功能主要是“接收信號”、“分析信號”和“產(chǎn)生警告信息”。此外,系統(tǒng)還應(yīng)該具有“定時取樣生理信號”、“更新日志”和“產(chǎn)生病情報告"的功能。 為了分析病人生理信號是否超出了醫(yī)生規(guī)定的安全范圍,應(yīng)該存儲“患者安全范圍”信息。此外,定時記錄病人生理信號所形成的“患者日志”,顯然也是一個數(shù)據(jù)存儲??尚行詳⑹雎?。5北京某高??捎玫碾娫捥柎a有以下幾類:校內(nèi)電話號碼由4位
10、數(shù)字組成,第1位數(shù)字不是0;校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0,若是本市電話則再接著撥8位數(shù)字(第1位不是0),若是外地電話則撥3位區(qū)碼,再撥8位電話號碼(第1位不是0)。請用小節(jié)講述的定義數(shù)據(jù)的方法,定義上述的電話號碼。電話號碼 = 校內(nèi)電話號碼 | 校外電話號碼校內(nèi)電話號碼 = 非零數(shù)字 + 3位數(shù)字校外電話號碼 = 本市號碼 | 外地號碼本市號碼 = 數(shù)字零 + 8位數(shù)字外地號碼 = 數(shù)字零 + 3位數(shù)字 + 8位數(shù)字非零數(shù)字 = 1|2|3|4|5|6|7|8|9數(shù)字零 = 03位數(shù)字 = 3數(shù)字38位數(shù)字 = 非零數(shù)字 + 7位數(shù)字7位數(shù)字 = 7數(shù)字7數(shù)字 =
11、 0|l|2|3|4|5|6|7|8|9第三章1、 為什么要進(jìn)行需求分析通常對軟件系統(tǒng)有哪些需求通過需求分析,明確用戶對目標(biāo)軟件系統(tǒng)在功能、性能、行為、設(shè)計約束等方面的期望,回答軟件系統(tǒng)“必須做什么”。通常對軟件系統(tǒng)的需求是以下幾方面的綜合:(1) 功能需求;(2) 性能需求;(3) 可靠性和可用性需求;(4) 出錯處理需求;(5) 接口需求;(6) 約束;(7) 逆向需求;(8) 將來可能提出的要求。2、怎樣與用戶有效的溝通以獲取用戶的真實需求(1) 初步需求獲取,通過訪談與會議、問卷調(diào)查、觀察用戶工作流程等方法;(2) 面向數(shù)據(jù)流,自頂向下求精(3) 簡易的應(yīng)用規(guī)格說明(4) 快速建立軟件
12、原型6、復(fù)印機(jī)的工作過程大致如下:未接到復(fù)印命令時處于閑置狀態(tài),一旦接到復(fù)印命令則進(jìn)入復(fù)印狀態(tài),完成一個復(fù)印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個復(fù)印命令;如果執(zhí)行復(fù)印命令時發(fā)現(xiàn)沒紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進(jìn)入閑置狀態(tài),準(zhǔn)備接收復(fù)印命令;如果復(fù)印時發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告,等待維修人員來排除故障,故障排除后回到閑置狀態(tài)。請用狀態(tài)轉(zhuǎn)換圖描繪復(fù)印機(jī)的行為。從問題陳述可知,復(fù)印機(jī)的狀態(tài)主要有“閑置”、“復(fù)印”、“缺紙”和“卡紙”。引起狀態(tài)轉(zhuǎn)換的事件主要是“復(fù)印命令”、“完成復(fù)印命令”、“發(fā)現(xiàn)缺紙”、“裝滿紙”、“發(fā)生卡紙故障”和“排除了卡紙故障”。狀態(tài)轉(zhuǎn)換圖如
13、下:1、為每種類型的模塊耦合舉一個具體的例子。(1) 非直接耦合例如,兩個模塊沒有直接關(guān)系(模塊1和模塊2),模塊獨立性最強(qiáng)。(2) 數(shù)據(jù)耦合例如,下左圖 數(shù)據(jù)耦合 特征耦合(3) 特征耦合例如,上右圖“住戶情況”是一個數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān)。“計算水費”和“計算電費”本無關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶合。(4) 控制耦合-模塊A通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇模塊B的功能,例如下圖(5) 外部耦合例如,下左圖,模塊A、B均需使用共享打印機(jī) 外部耦合 公共環(huán)境耦合(6) 公共環(huán)境耦合例如,上右圖,模塊A、B、C共享全局變量數(shù)組(7) 內(nèi)
14、容耦合例如,一個過程非正常地進(jìn)入另一個過程Sub AA()goto LEnd subSub BB()L: End sub2、用面向數(shù)據(jù)流的方法設(shè)計下列系統(tǒng)的軟件結(jié)構(gòu):(3)患者監(jiān)護(hù)系統(tǒng)(需求見習(xí)題2-4)功能級數(shù)據(jù)流圖:軟件結(jié)構(gòu)圖:3、 從偽碼轉(zhuǎn)換成的數(shù)據(jù)流程圖 從偽碼轉(zhuǎn)換成的盒圖4、(1)通常所說的結(jié)構(gòu)化程序,是按照狹義的結(jié)構(gòu)程序的定義衡量,符合定義規(guī)定的程序。本題圖6-18所示的程序的循環(huán)控制結(jié)構(gòu)有兩個出口,顯然不符合狹義的結(jié)構(gòu)程序的定義,因此是非結(jié)構(gòu)化的程序。(2)使用附加的標(biāo)志變量flag,至少有兩種方法可以把該程序改造為等價的結(jié)構(gòu)化程序,下圖所示盒圖描繪了兩個等價的結(jié)構(gòu)化程序。(3)
15、不使用flag把該程序改造為等價的結(jié)構(gòu)化程序的方法如下圖所示。7、令P代表交易的總金額,Q代表每股的售價,n代表交易的股數(shù)。判定表的每一列是一條計算規(guī)則。例如,第1列(規(guī)則l)規(guī)定,當(dāng)交易總金額P少于1,000元,且每股售價Q低于l4元,且交易的股數(shù)n是l00的倍數(shù)時,給經(jīng)紀(jì)人的手續(xù)費為:(1+005)×0084P第16列(規(guī)則l6)表明,當(dāng)交易總金額P超過l0,000元,且每股售價Q在14元到25元之間,且交易的股數(shù)n不是l00的倍數(shù)時,手續(xù)費為:(1+006)X(004P+134)表示手續(xù)費計算方法的判定表和判定樹如下圖所示。判定表判定樹4(3) 答:(1)語句覆蓋的測試用例 因
16、為每個判定表達(dá)式為真或為假時均有賦值語句,為了使每個語句都至少執(zhí)行一次,總共需要兩組測試數(shù)據(jù),以便使得每個判定表達(dá)式取值為真或為假各一次。下面是實現(xiàn)語句覆蓋的典型測試用例: 使3個判定表達(dá)式之值全為假 輸入:A=1,B=1,C=1預(yù)期的輸出:X=1,Y=2,Z=3 使3個判定表達(dá)式之值全為真 輸入:A=20,B=40,C=60預(yù)期的輸出:X=10,Y=20,Z=30 (2)路徑覆蓋的測試用例 本程序共有8條可能的執(zhí)行通路,為做到路徑覆蓋總共需要8組測試數(shù)據(jù)。下面是實現(xiàn)路徑覆蓋的典型測試用例: 3個判定表達(dá)式之值全為假 輸入:A=1,B=1,C=1預(yù)期的輸出:X=1,Y=2,Z=3 3個判定表達(dá)
17、式依次為假、假、真 輸入:A=1,B=1,C=60預(yù)期的輸出:X=1,Y=2,Z=30 3個判定表達(dá)式依次為假、真、假 輸入:A=1,B=40,C=1預(yù)期的輸出:X=1,Y=20,Z=33個判定表達(dá)式依次為假、真、真輸入:A=1,B=40,C=60預(yù)期的輸出:X=1,y=20,Z=303個判定表達(dá)式依次為真、假、假輸入:A=20,B=1,C=1預(yù)期的輸出:X=10,y=2,Z=33個判定表達(dá)式依次為真、假、真輸入:A=20,B=1,C=60預(yù)期的輸出:X=10,y=2,Z=303個判定表達(dá)式依次為真、真、假輸入:A=20,B=40,C=1預(yù)期的輸出:X=10,y=20,Z=33個判定表達(dá)式全為
18、真輸入:A=20,B=40,C=60預(yù)期的輸出:X=10,y=20,Z=306、答:應(yīng)該分別使用正常的輸入數(shù)據(jù)和異常的輸入數(shù)據(jù),作為驗收測試數(shù)據(jù)。( 1 )用正常的輸人數(shù)據(jù)作為測試數(shù)據(jù) 輸入常規(guī)的出發(fā)點、目的地、5個位置校核點、高度、速度及飛機(jī)型號。 針對5對不同的出發(fā)點和目的地,重復(fù)執(zhí)行測試。 固定出發(fā)點、目的地、位置校核點、高度和速度,分別輸入35種不同的飛機(jī)型號,重復(fù)執(zhí)行測試。 固定出發(fā)點、目的地、位置校核點、高度和飛機(jī)型號,分別輸入35個不同的速度,重復(fù)執(zhí)行測試。 固定出發(fā)點、目的地、位置校核點、速度和飛機(jī)型號,分別輸入35個不同的高度,重復(fù)執(zhí)行測試。 固定出發(fā)點、目的地、高度、速度和
19、飛機(jī)型號,分別輸入35組不同的位置校核點,重復(fù)執(zhí)行測試。 固定出發(fā)點、位置校核點、高度、速度和飛機(jī)型號,分別輸入35個不同的目的地,重復(fù)執(zhí)行測試。 固定目的地、位置校核點、高度、速度和飛機(jī)型號,分別輸入35個不同的出發(fā)點,重復(fù)執(zhí)行測試。 同時改變一對參數(shù)的值,其他參數(shù)的值固定,重復(fù)執(zhí)行測試。 同時改變3個參數(shù)的值,其他參數(shù)的值固定,重復(fù)執(zhí)行測試。 (11)以適當(dāng)?shù)姆绞礁淖兠枋鎏鞖鉅顩r的數(shù)據(jù),重復(fù)執(zhí)行測試。( 2 )用邊界數(shù)據(jù)值作為測試數(shù)據(jù) 分別使用距離非常近和距離非常遠(yuǎn)的兩個地點作為出發(fā)點和目的地。 輸入位置校核點的非常規(guī)組合。 分別輸入非常高和非常低的高度值。 分別輸入非常高和非常低的速度值
20、。 輸入極其少見的飛機(jī)型號。( 3 )用無效的數(shù)據(jù)作為測試數(shù) 用由字母數(shù)字字符和控制字符混合在一起組成的字符串作為出發(fā)點或目的地。 用數(shù)字0作為所有參數(shù)的值。 用負(fù)數(shù)作為高度和速度的值。補(bǔ)充作業(yè):答:題中并沒有給出實現(xiàn)函數(shù)SEARCH的算法,僅僅描述了它的功能,因此,只能用黑盒測試技術(shù)設(shè)計測試它的測試方案。為了用等價劃分法設(shè)計測試方案,首先需要劃分輸入數(shù)據(jù)的等價類。根據(jù)該函數(shù)的功能,可以把它的輸入數(shù)據(jù)劃分成以下等價類:(1)有效輸入的等價類 ·數(shù)組有偶數(shù)個元素,第1個元素是所要找的數(shù)。 ·數(shù)組有偶數(shù)個元素,最后一個元素是所要找的數(shù)。 ·數(shù)組有偶數(shù)個元素,數(shù)組中沒有
21、所要找的數(shù)。 ·數(shù)組有奇數(shù)個元素,第1個元素是所要找的數(shù)。 ·數(shù)組有奇數(shù)個元素,最后一個元素是所要找的數(shù)。 ·數(shù)組有奇數(shù)個元素,數(shù)組中沒有所要找的數(shù)。 ·數(shù)組有多個元素,其中一個正整數(shù)是所要找的數(shù)。 ·數(shù)組有多個元素,其中一個負(fù)整數(shù)是所要找的數(shù)。 ·數(shù)組有多個元素,其中一個0是所要找的數(shù)。(2)無效輸入的等價類數(shù)組實際長度不等于變元size的值。為了使用邊界值分析法設(shè)計測試方案,應(yīng)該再考慮下述幾種邊界情況: ·數(shù)組長度為l,其元素是所要找的數(shù)。 ·數(shù)組長度為l,其元素不是所要找的數(shù)。 ·數(shù)組為空(長度為0
22、)。根據(jù)上面劃分出的等價類及邊界情況,可以設(shè)計出下述測試方案:數(shù)組長度為l,其正整數(shù)元素是所要找的數(shù)輸入:somearray=6,size=1,value=6預(yù)期的輸出:l數(shù)組長度為l,其負(fù)整數(shù)元素是所要找的數(shù)輸入:somearray=-20),size=1,value=20預(yù)期的輸出:l數(shù)組長度為l,其元素0是所要找的數(shù)輸入:somearray=0,size=1,value=0預(yù)期的輸出:l數(shù)組長度為l,其元素不是所要找的數(shù)輸入:somearray=6,size=1,value=8預(yù)期的輸出:-1數(shù)組為空輸入:somearray=,size=0,value=6預(yù)期的輸出:-1數(shù)組有偶數(shù)個元素
23、,第1個元素是正整數(shù)且是所要找的數(shù)輸入:somearray=1,2,3,4,size=4,value=1預(yù)期的輸出:l數(shù)組有偶數(shù)個元素,最后一個元素是負(fù)整數(shù)且是所要找的數(shù)輸入:somearray=1,2,3,一4,size=4,value=4預(yù)期的輸出:4數(shù)組有偶數(shù)個元素,其中一個元素0是所要找的數(shù)輸入:somearray=1,2,0,3,size=4,value=0預(yù)期的輸出:3數(shù)組有偶數(shù)個元素,元素中沒有所要找的數(shù)輸入:somearray=1,2,3,4,size=4,value=5預(yù)期的輸入:-1,數(shù)組有奇數(shù)個元素,第1個元素是0且是要找的數(shù)輸入:somearray=0,1,2),siz
24、e=3,value=0預(yù)期的輸出:l(11)數(shù)組有奇數(shù)個元素,最后一個元素是負(fù)整數(shù)且是所要找的數(shù)輸入:somearray=1,2,一3,size=3,value=3預(yù)期的輸入:3(12)數(shù)組有奇數(shù)個元素,沒有要找的數(shù)輸入:somearray=1,2,3,size=3,value=3預(yù)期的輸出:-1(13)數(shù)組實際長度不等于size輸入:somearray=1,2,3,size=2,value=1預(yù)期的輸出:“無效的size值”第九章作業(yè)2、答:對象是面向?qū)ο蠓椒▽W(xué)開發(fā)軟件時對客觀世界實體的抽象,它是由描述實體屬性的數(shù)據(jù)和可以對這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體。傳統(tǒng)的數(shù)據(jù)是傳統(tǒng)方法學(xué)
25、開發(fā)軟件時對客觀世界實體的抽象,但是,這種抽象是不全面的:數(shù)據(jù)只能描述實體的靜態(tài)屬性,不能描述實體的動態(tài)行為。必須從外界對數(shù)據(jù)施加操作,才能改變數(shù)據(jù)、實現(xiàn)相應(yīng)的行為。對象與傳統(tǒng)數(shù)據(jù)有本質(zhì)的區(qū)別,它不是被動地等待外界對它施加操作,相反,它是進(jìn)行處理的主體。必須發(fā)消息請求對象主動地執(zhí)行它的某些操作,處理它的私有數(shù)據(jù),而不能直接從外界對它的私有數(shù)據(jù)進(jìn)行操作。5、答:所謂模型,就是為了理解事物而對事物進(jìn)行的一種抽象,是對事物的一種無歧義的書面描述。通常,模型由一組圖形符號和組織這些符號的規(guī)則組成,利用它們來定義和描述問題域中的術(shù)語和概念。更進(jìn)一步地講,模型是一種思維工具,利用這種工具可以把知識規(guī)范地表
26、示出來。眾所周知,在解決問題之前必須理解所要解決的問題。對問題理解得越透徹,就越容易解決它。在軟件開發(fā)的過程中,為了更好地理解客戶要求解決的問題,往往需要建立問題域的模型。為了開發(fā)復(fù)雜的軟件系統(tǒng),系統(tǒng)分析員應(yīng)該從不同角度抽象出目標(biāo)系統(tǒng)的特征,使用精確地表示方法構(gòu)造系統(tǒng)的模型,驗證模型是否滿足用戶對目標(biāo)系統(tǒng)的需求,并在設(shè)計過程中逐步把和實現(xiàn)有關(guān)的細(xì)節(jié)加進(jìn)模型中來,直到最終實現(xiàn)這個模型。對于那些過分復(fù)雜而不能直接理解的系統(tǒng),特別需要建立模型。建立模型的目的主要是為了降低復(fù)雜性。人的頭腦每次只能處理少量信息,模型通過把系統(tǒng)的重要部分分解成人的頭腦一次能處理的若干個子部分,從而減少了系統(tǒng)的復(fù)雜度。10
27、、答:訂貨系統(tǒng)用例圖作業(yè)題:有如下用戶需求:王大夫在小鎮(zhèn)上開了一家牙科診所。他有一個牙科助手、一個牙科保健員和一個接待員。王大夫需要一個軟件系統(tǒng)來管理預(yù)約。當(dāng)病人打電話預(yù)約時,接待員將查閱預(yù)約登記表,如果病人申請的就診時間與已定下的預(yù)約時間沖突,則接待員建議一個就診時間以安排病人盡早得到診治。如果病人同意建議的就診時間,接待員將輸入約定時間和病人的名字。系統(tǒng)將核實病人的名字并提供記錄的病人數(shù)據(jù),數(shù)據(jù)包括病人的病歷號等。在每次治療或清洗后,助手或保健員將標(biāo)記相應(yīng)的預(yù)約診治已經(jīng)完成,如果必要的話會安排病人下一次再來。系統(tǒng)能夠按病人姓名和按日期進(jìn)行查詢,能夠顯示記錄的病人數(shù)據(jù)和預(yù)約信息。接待員可以取
28、消預(yù)約,可以打印出前兩天預(yù)約尚未接診的病人清單。系統(tǒng)可以從病人記錄中獲知病人的電話號碼。接待員還可以打印出關(guān)于所有病人的每天和每周的工作安排。(1)建立牙科診所管理系統(tǒng)的對象模型;(2)建立牙科診所管理系統(tǒng)的用例模型;(3)用數(shù)據(jù)流圖建立牙科診所管理系統(tǒng)的功能模型;(4)寫出牙科診所管理系統(tǒng)的腳本;(5)畫出牙科診所管理系統(tǒng)的狀態(tài)圖。解答:(1)從對牙科診所問題的陳述中,可以找出下列名詞作為對象的候選者:王大夫,小鎮(zhèn),牙科診所,牙科助手,牙科保健員,接待員,軟件系統(tǒng),預(yù)約,病人,預(yù)約登記表,就診時間,預(yù)約時間,約定時間,系統(tǒng),名字,記錄的病人數(shù)據(jù),病歷號,姓名,日期,預(yù)約信息,病人清單,病人記
29、錄,電話號碼,每天工作安排,每周工作安排。通常,通過詞法分析找到的候選對象中有許多并不是問題域中真正有意義的對象,因此,必須對這些候選對象進(jìn)行嚴(yán)格的篩選,從中刪去不正確的或不必要的,只保留確實應(yīng)該記錄其信息或需要其提供服務(wù)的那些對象。具體說到牙科診所問題,“王大夫”只不過是牙醫(yī)的一個實例,實際上,本軟件系統(tǒng)的主要功能是管理病人的預(yù)約,并不關(guān)心診所內(nèi)每名工作人員的分工,因此,牙醫(yī)、牙科助手、牙科保健員和接待員都不是問題域中的對象;“小鎮(zhèn)”是牙科診所的地址屬性,不是獨立的對象;“軟件系統(tǒng)”和“系統(tǒng)”是同義詞,指的是將要開發(fā)的軟件產(chǎn)品,不是問題域中的對象;“就診時間”、“預(yù)約時間”和“約定時間”在本
30、問題陳述中的含義相同,指的都是預(yù)約的就診時間,實際上,預(yù)約的就診時間既包括日期又包括時間,但是,它們是預(yù)約登記表包含的屬性,不是問題域中獨立的對象;“名字”和“姓名”是同義詞,應(yīng)該作為病人和預(yù)約登記表的屬性;“記錄的病人數(shù)據(jù)”實際上就是“病人記錄”,可以統(tǒng)一使用“病人記錄”作為對象名;“病歷號”和“電話號碼”是病人記錄的屬性,不是獨立的對象;從問題陳知,“病人清單”是已預(yù)約但尚未就診的病人名單,應(yīng)該包含病人姓名、預(yù)約的就診時間等內(nèi)容,它和“預(yù)約信息”包含的內(nèi)容基本相同,可以只保留“病人清單”作為問題域中的對象。接下來分析確定問題域中對象彼此之間的關(guān)系?!懊刻旃ぷ靼才拧焙汀懊恐芄ぷ靼才拧庇性S多共同點,可以從它們泛化出一個父類“工作安排”。此外,問題域的對象之間還有下述關(guān)聯(lián)關(guān)系:牙科診所診治多名病人;一位病人有一份病人記錄;一位病人可能預(yù)約多次也可能一次也沒預(yù)約;牙科診所在一段時間內(nèi)將打印出多份病人清單;牙科診所開業(yè)以來已經(jīng)建立了多份預(yù)約登記表;預(yù)約登記表中記錄了多位病人的預(yù)約;根據(jù)預(yù)約登記表在不同時問可以制定出不同的工作安排。綜上所述,可以畫出圖所示的牙科診所管理系統(tǒng)的對象模型。(2)用例圖從用戶角度描述系統(tǒng)的功能,它必須包含用戶關(guān)心的所有關(guān)鍵功能。用戶通常就是用例圖中的行為者。為了畫出系統(tǒng)的用例圖,首先應(yīng)該找出系統(tǒng)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家居裝飾物流配送合同》
- 親子樂園主題裝修設(shè)計合同
- IT項目規(guī)劃與實施指南
- 企業(yè)法律合規(guī)風(fēng)險防范指南
- 淘寶代理合同協(xié)議書
- 三農(nóng)村特色產(chǎn)業(yè)培育手冊
- 股份制企業(yè)的合作與管理文書
- 房地產(chǎn)開發(fā)合同標(biāo)準(zhǔn)協(xié)議
- 醫(yī)療設(shè)備智能制造與管理平臺開發(fā)
- 企業(yè)人力資源數(shù)字化管理與服務(wù)支持平臺方案設(shè)計
- 裝修工程延期協(xié)議
- 2025-2030全球21700圓柱形鋰離子電池行業(yè)調(diào)研及趨勢分析報告
- 2025-2025年教科版小學(xué)科學(xué)三年級下冊科學(xué)教學(xué)計劃
- 2025年云南中煙工業(yè)限責(zé)任公司招聘24人歷年高頻重點提升(共500題)附帶答案詳解
- 2025云南昆明空港投資開發(fā)集團(tuán)招聘7人歷年高頻重點提升(共500題)附帶答案詳解
- 《大健康解讀》課件
- 2024-2025學(xué)年成都市樹德東馬棚七年級上英語期末考試題(含答案)
- 2025年度交通運(yùn)輸規(guī)劃外聘專家咨詢協(xié)議3篇
- 2024年04月北京中信銀行北京分行社會招考(429)筆試歷年參考題庫附帶答案詳解
- 專項債券培訓(xùn)課件
- 中央企業(yè)人工智能應(yīng)用場景案例白皮書(2024年版)-中央企業(yè)人工智能協(xié)同創(chuàng)新平臺
評論
0/150
提交評論