版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、后習(xí)題答案SANY 標(biāo)準(zhǔn)化小組 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#第一章一、什么是軟件危機(jī)它有哪些典型表現(xiàn)為什么會(huì)出現(xiàn)軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件開發(fā)、使用與維護(hù)過(guò)程中遇到的一系列嚴(yán)重問題和難題.它包括兩方面:如何開發(fā)軟件,已滿足對(duì)軟 件日益增長(zhǎng)的需求;如何維護(hù)數(shù)量不斷增長(zhǎng)的已有軟件。軟件危機(jī)的典型表現(xiàn):(1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。常常出現(xiàn)實(shí)際成本比估算成本高出一個(gè)數(shù)量級(jí)、實(shí)際進(jìn)度比計(jì)劃進(jìn)度拖延幾個(gè) 月甚至幾年的現(xiàn)象。而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計(jì)又往往損害了軟件產(chǎn)品的質(zhì)繪。這些都降低了開發(fā)商的信 餐,引起用戶不滿。(2)用戶對(duì)已完成
2、的軟件不満意的現(xiàn)彖時(shí)有發(fā)生。(S)軟件產(chǎn)品的質(zhì)最往往是靠不住的.(4)軟件常常是不可維護(hù)的.(5)軟件通常沒有適當(dāng)?shù)奈臋n資料。文檔資料不全或不合格,必將給軟件開發(fā)和維護(hù)工作帶來(lái)許多難以想象的困難和難以解決的 問題。(6)軟件成本、軟件維護(hù)費(fèi)在計(jì)算機(jī)系統(tǒng)總成本中所占比例逐年上升。(7)開發(fā)生產(chǎn)率提高的速度遠(yuǎn)跟不上計(jì)算機(jī)竝用普及的需求。軟件危機(jī)出現(xiàn)的原因:(1)來(lái)自軟件自身的特點(diǎn):是邏輯部件,缺乏可見性;規(guī)模龐大、復(fù)雜,修改、維護(hù)困難。(2)軟件開發(fā)與維護(hù)的方法不當(dāng):忽視需求分析;認(rèn)為軟件開發(fā)等于程序編寫;輕視軟件維護(hù)。(S)供求矛盾將是一個(gè)永恒的主題:面對(duì)日益增長(zhǎng)的軟件需求,人們顯得力不從心.二
3、、假設(shè)自己是一家軟件公司的總工程師,當(dāng)把圖給手下的軟件工程師們觀看,告訴他們及時(shí)發(fā)現(xiàn)并改正錯(cuò)誤的重要性時(shí),有人 不同意這個(gè)觀點(diǎn),認(rèn)為要求在錯(cuò)誤進(jìn)入軟件之前就清楚它們是不現(xiàn)實(shí)的,并舉例說(shuō):“如果一個(gè)故障是編碼錯(cuò)誤造成的,那么, 一個(gè)人怎么能在設(shè)計(jì)階段淸除它呢”應(yīng)該怎么反駁他答:在軟件開發(fā)的不同階段進(jìn)行修改付出的代價(jià)是很不相同的,在早期引入變動(dòng),涉及的面較少,因而代價(jià)也比較低;在開發(fā)的 中期,軟件配置的許多成分己經(jīng)完成,引入一個(gè)變動(dòng)要對(duì)所有已完成的配置成分都做相應(yīng)的修改,不僅工作世大,而且邏輯上也更復(fù)雜,因此付出的代價(jià)劇増;在軟件“已經(jīng)完成”是在引入變動(dòng),當(dāng)然付出的代價(jià)更高.一個(gè)故 障是代碼錯(cuò)誤造
4、成的,有時(shí)這種錯(cuò)洪是不可避免的,但要修改的成本是很小的,因?yàn)檫@不是 整體構(gòu)架的錯(cuò)誤。三、什么是軟件工程它有哪些本質(zhì)特征怎樣用軟件工程消除軟件危機(jī)1993年IEEE的定義:軟件工程是:把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用 于軟件;研憲中提到的途徑。軟件工程的本質(zhì)特征:(1)軟件工程關(guān)注于大型程序(軟件系統(tǒng))的構(gòu)造(2)軟件工程的中心課題是分解問題,控制復(fù)雜性(3)軟件是經(jīng)常變化的,開發(fā)過(guò)程中必須考慮軟件將來(lái)可能的變化(4)開發(fā)軟件的效率非常重要,因此,軟件工程的一個(gè)舉要課題就是,尋求開發(fā)與維護(hù)軟件的更好更有效的方法和工具(5)和諧地合作是開發(fā)軟件的關(guān)鍵(
5、6)軟件必須有效地支持它的用戶(7)在軟件工程領(lǐng)域中是由只有一種文化背象的人普具冇另一種文化背最的人(完成一些工作)消除軟件危機(jī)的途徑,(1)對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí)(軟件H程序)(2)必須充分認(rèn)識(shí)到軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成 的工程項(xiàng)目(3)推廣使用在實(shí)踐中總結(jié)出來(lái)的開發(fā)軟件的成功技術(shù)和方法(4)開發(fā)和使用更好的軟件工具四、簡(jiǎn)述結(jié)構(gòu)化范型和面向?qū)ο蠓缎偷囊c(diǎn),并分析他們的優(yōu)缺點(diǎn)1. 傳統(tǒng)方法學(xué):也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。優(yōu)點(diǎn):把軟件生命周期劃分成基干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而 且比較簡(jiǎn)單,便于不同人員分工
6、協(xié)作,從而降低了整個(gè)軟件開發(fā)過(guò)程的困難程度。缺點(diǎn):當(dāng)軟件規(guī)模龐大時(shí),或者對(duì)軟件的需求 是模糊的或會(huì)承受時(shí)間而變化的時(shí)候,開發(fā)出的軟件往往不成功;而且維護(hù)起來(lái)仍然很困難。2面向?qū)ο蠓椒▽W(xué):優(yōu)點(diǎn):降低了軟件產(chǎn)品的復(fù)雜性:提高了軟件的可理解性;簡(jiǎn)化了軟件的開發(fā)和維護(hù)工作;促進(jìn)了軟件重 用.五、1-5根據(jù)歷史數(shù)據(jù)可以做出如下的假設(shè):對(duì)計(jì)算機(jī)存儲(chǔ)容址的需求大致按下面公式描述的趨勢(shì)逐年增加:M=(Y-1960)存儲(chǔ)器的價(jià)格按下面公式描述的趨勢(shì)逐年下降:Pl=X (美分/位)如果計(jì)算機(jī)字長(zhǎng)為16位,則存儲(chǔ)器價(jià)格下降的趨勢(shì)為:P2=X(美元/字)在上列公式中Y代表年份,M是存儲(chǔ)容雖(字?jǐn)?shù)),Pl和P2代表價(jià)格
7、.基于上述假設(shè)可以比較計(jì)算機(jī)硬件和軟件成本的變化趨勢(shì).要求計(jì)算:(1)在1985年對(duì)計(jì)算機(jī)存儲(chǔ)容瑩的需求估計(jì)是多少如果字長(zhǎng)為16位,這個(gè)存儲(chǔ)器的價(jià)格是多少存儲(chǔ)容St需求 M= (1985-1960) =4474263 (字)存儲(chǔ)器價(jià)格 P=* (1985-1974) *4474263=5789 美元(2)假設(shè)在1985年一名程序員每天可開發(fā)出10條捋令,程序員的平均工資是每月4000美元。如果一條指令為一個(gè)字長(zhǎng),計(jì)算 使存儲(chǔ)器裝滿程序所需用的成本.需要工作瑩4474263/200=22371 (人/月)指令成本22371*4OOO=美元(S)假設(shè)在1995年存儲(chǔ)器字長(zhǎng)為32位,一名程序員每天可
8、開發(fā)出30條指令,程序員的月平均工資為6000美元,重復(fù)(1)、(2) 題.需求估計(jì)M= (1995-1960)=字存儲(chǔ)器價(jià)格*32* (1995-1974) *=7127美元工作總:/600=122629(人/月)成本 122629*6000=0 美元六、什么是軟件過(guò)程它與軟件工程方法學(xué)有何關(guān)系軟件過(guò)程是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟.軟件工程方法學(xué):通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱為方法學(xué),也稱范型。軟件過(guò)程是軟件工程方法學(xué)的3個(gè)重要組成部分之一.七、什么是軟件生命周期模型試比較瀑布模型、快速原型模型、増量模型和
9、螺旋模型的優(yōu)缺點(diǎn),說(shuō)明每種模型的使用范圍。軟件生命周期模型是跨越整個(gè)生存期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。瀑布模型優(yōu)點(diǎn):它提供了一個(gè)模板,這個(gè)模板使得分析、設(shè)計(jì)、編碼、測(cè)試和支持的方法可以在該模板下有一個(gè)共同的指導(dǎo)。 雖然有不少缺陷但比在軟件開發(fā)中隨意的狀態(tài)要好得多。缺點(diǎn):(1)實(shí)際的項(xiàng)目大部分情況難以按照該模型給出的順序進(jìn)行,而且這種模型的迭代是間接的,這很容易由微小的變化而造 成大的混亂.(2)經(jīng)常情況下客戶難以表達(dá)真正的需求,而這種模型卻要求如此,這種模型是不歡迎具有二義性問題存在的。(S)客戶要等到開發(fā)周期的晚期才能看到程序運(yùn)行的測(cè)試版本,而在這時(shí)發(fā)現(xiàn)大的
10、錯(cuò)誤時(shí),可能引起客戶的驚慌,而后果也可能 是災(zāi)難性的.快速原型模型優(yōu)點(diǎn):使用戶能夠感受到實(shí)際的系統(tǒng),使開發(fā)者能夠快速地構(gòu)造出系統(tǒng)的框架.缺點(diǎn):產(chǎn)品的先天性不足,因?yàn)殚_發(fā)者常常需要做實(shí)現(xiàn)上的折中,可能采用不合適的操作系統(tǒng)或程序設(shè)計(jì)語(yǔ)言,以使原型能夠盡 快工作。增量模型優(yōu)點(diǎn):(1)人員分配靈活,剛開始不用投入大量人力資源,當(dāng)核心產(chǎn)品很受歡迎時(shí),可增加人力實(shí)現(xiàn)下一個(gè)增量(2)當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑,這樣就可以先發(fā)布部分功能給客戶, 對(duì)客戶起到鎮(zhèn)靜劑的作用.缺點(diǎn):(1)至始至終開發(fā)者和客戶糾編在一起,直到完全版本出來(lái).(2)適合于軟件甜求不明確、設(shè)計(jì)
11、方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目.該模型具有一定的市場(chǎng)。螺旋模型優(yōu)點(diǎn):對(duì)于大型系統(tǒng)及軟件的開發(fā),這種模型是一個(gè)很好的方法.開發(fā)者和客戶能夠較好地對(duì)待和理解每一個(gè)演化級(jí)別上的風(fēng) 險(xiǎn)。缺點(diǎn):(1)需要相當(dāng)?shù)娘L(fēng)險(xiǎn)分析評(píng)估的專門技術(shù),且成功依賴于這種技術(shù)。(2)很明顯一個(gè)大的沒有被發(fā)現(xiàn)的風(fēng)險(xiǎn)問題,將會(huì)導(dǎo)致問題的發(fā)生,可能導(dǎo)致演化的方法失去控制。(3)這種模型相對(duì)比較新,應(yīng)用不廣泛,其功效需要進(jìn)一步的驗(yàn)證.該模型適合于大型軟件的開發(fā)八、為什么說(shuō)噴泉模型較好的體現(xiàn)了面向?qū)ο筌浖_發(fā)過(guò)程無(wú)縫和迭代的特性因?yàn)槭褂妹嫦驅(qū)ο蠓椒▽W(xué)開發(fā)軟件時(shí),各個(gè)階段都使用統(tǒng)一的概念和表示符號(hào),因此,整個(gè)開發(fā)過(guò)程都是吻合一致的,或者說(shuō)是
12、無(wú)縫連接的,這自然就很容易實(shí)現(xiàn)各個(gè)開發(fā)步驟的反復(fù)多次迭代,達(dá)到認(rèn)識(shí)的逐步深化,而噴泉模型則很好的體現(xiàn)了面向?qū)ο筌?件開發(fā)過(guò)程迭代和無(wú)縫的特性.九、試討論RationaI統(tǒng)一過(guò)程的優(yōu)缺點(diǎn)。優(yōu)點(diǎn):提高了團(tuán)隊(duì)生產(chǎn)力,在迭代的開發(fā)過(guò)程、需求管理、基于組建的體系結(jié)構(gòu)、可視化軟件建模、驗(yàn)證軟件質(zhì)厳及控制軟件變 更等方面、針對(duì)所有關(guān)鍵的開發(fā)活動(dòng)為每個(gè)開發(fā)成員提供了必要的準(zhǔn)則、模版和工具指導(dǎo),并確保全體成員共享相同的知識(shí)基 礎(chǔ).它建立了簡(jiǎn)潔和清晰的過(guò)程結(jié)構(gòu),為開發(fā)過(guò)程提供較大的通用性。缺點(diǎn):RUP只是一個(gè)開發(fā)過(guò)程,并沒有涵蓋軟件過(guò)程的全部?jī)?nèi)容,例如它缺少關(guān)于軟件運(yùn)行和支持等方面的內(nèi)容,此外,他沒有 支持多項(xiàng)目
13、的開發(fā)結(jié)構(gòu),這在一定程度上降低了在開發(fā)組織內(nèi)大范圍實(shí)現(xiàn)重用的可能性.十.RatiOnaI統(tǒng)一過(guò)程主要適用于何種項(xiàng)目大型的需求不斷變化的復(fù)雜軟件系統(tǒng)項(xiàng)目十一.說(shuō)明敏捷過(guò)程的適用范圍適用于商業(yè)競(jìng)爭(zhēng)環(huán)境下對(duì)小型項(xiàng)目提出的有限資源和有限開發(fā)時(shí)間的約束十二.說(shuō)明微軟過(guò)程的適用范圍適用于商業(yè)環(huán)境下具冇冇限資源和冇限開發(fā)時(shí)間約束的項(xiàng)目的軟件過(guò)程模式第二章1. 在軟件開發(fā)的早期階段為什么要進(jìn)行可行性研憲應(yīng)該從哪些方面研憲目標(biāo)系統(tǒng)的可行性答:(1)開發(fā)一個(gè)軟件時(shí),需要判斷原定的系統(tǒng)模型和目標(biāo)是否現(xiàn)實(shí),系統(tǒng)完成后所能帶來(lái)的效益是否大到值得投資開發(fā)這個(gè) 系統(tǒng)的程度,如果做不到這些,那么花費(fèi)在這些工程上的任何時(shí)間、人
14、力、軟碘件資源和經(jīng)費(fèi),都是無(wú)謂的浪費(fèi).可行性研究的 實(shí)質(zhì)是要進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)過(guò)程,就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過(guò)程.可 行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決.(2) 一般說(shuō)來(lái),至少應(yīng)該從以下三個(gè)方面研憲每種解法的可行性:a技術(shù)可行性。對(duì)要開發(fā)項(xiàng)目的功能、性能和限制條件進(jìn)行分析,確定在現(xiàn)有的資源條件下,技術(shù)風(fēng)險(xiǎn)有多大,項(xiàng)目是否能實(shí) 現(xiàn),這些即為技術(shù)可行性研宛的內(nèi)容。這里的資源包括已有的或可以搞到的硬件、軟件資源,現(xiàn)有技術(shù)人員的技術(shù)水平和已有的 工作基礎(chǔ).b. 經(jīng)濟(jì)可行性。進(jìn)行開發(fā)成本的估算以及了解取得效益的評(píng)估,確定要
15、開發(fā)的項(xiàng)目是否值得投資開發(fā),這些即為經(jīng)濟(jì)可行性研 究的內(nèi)容對(duì)于大多數(shù)系統(tǒng),一般衡盤經(jīng)濟(jì)上是否合算,應(yīng)考慮一個(gè)“底線",經(jīng)濟(jì)可行性研究范圍較廣,包括成本一效益分析, 長(zhǎng)期公司經(jīng)營(yíng)策略,開發(fā)所需的成本和資源,潛在的市場(chǎng)前最.c. 操作可行性。有時(shí)還要研宛社會(huì)可行性問題,研尤要開發(fā)的項(xiàng)目是否存在任何侵犯、妨礙等責(zé)任問題。社會(huì)可行性所涉及的范 圍也比較廣,它包括合同、責(zé)任、侵權(quán)和其他一些技術(shù)人員常常不了解的陷阱竽.必要時(shí)還應(yīng)該從法律、社會(huì)效益等更廣泛的方面研究每種解法的可行性。2. 為方便儲(chǔ)戶,某銀行擬開發(fā)計(jì)算機(jī)儲(chǔ)蕃系統(tǒng)。儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓
16、 名、住址、存款類型、存款日期、利率等伯息,并印出存款單給儲(chǔ)戶;如果是取款,系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶。請(qǐng) 寫出問題定義并分析此系統(tǒng)的可行性。數(shù)據(jù)流程圖:取票圖:航空訂票系統(tǒng)技術(shù)在目前是一個(gè)技術(shù)上成熟的系統(tǒng),并且在航空公司內(nèi)部準(zhǔn)備采取有力措施保證資金和人員配置等。因此,分階 段開發(fā)“航空訂票系統(tǒng)”的構(gòu)想是可行的.為了使航空公司適應(yīng)現(xiàn)代化市場(chǎng)競(jìng)爭(zhēng)的需求,促進(jìn)機(jī)票預(yù)訂管理宿息化,不斷滿足旅 客預(yù)訂機(jī)票的要求,爭(zhēng)取更好的經(jīng)濟(jì)效益,可立即著手系統(tǒng)的開發(fā)與完善。3、為方便旅客,某航空公可擬開發(fā)一個(gè)機(jī)票預(yù)定系統(tǒng)。旅行社把預(yù)定機(jī)票的旅客信息(姓名、性別、工作單位、身份證號(hào)碼、 旅行時(shí)間、旅行目的地等)
17、輸入進(jìn)入該系統(tǒng),系統(tǒng)為旅客安排航班,印出取票通知和賬單,旅客在飛機(jī)起飛的前一天憑取票通知 和賬單交款取票,系統(tǒng)校對(duì)無(wú)誤即印出機(jī)票給旅客.寫出問題定義并分析系統(tǒng)的可行性。1目標(biāo):在一個(gè)月內(nèi)建立一個(gè)高效率,無(wú)筮錯(cuò)的航空公司機(jī)票預(yù)定系統(tǒng)2存在的主要問題:人工不易管理,手續(xù)繁瑣3建立新系統(tǒng)(D經(jīng)濟(jì)可行性本效益分析成本估算:打印機(jī)一臺(tái)(2000元)+開發(fā)費(fèi)(3500元)=5500元 可承擔(dān)效益估算:該系統(tǒng)有很好的社會(huì)效益,提高了航空公司皆票效率,方便了旅客, 票方便化,科學(xué)化技術(shù)可行性經(jīng)過(guò)調(diào)査分析得到目前航空公司機(jī)票預(yù)定系統(tǒng)流程圖如下:4目前住院病人主要由護(hù)士護(hù)理,這樣做不僅需要大址護(hù)士,而且由于不能隨
18、時(shí)觀察危審病人的病情變化,還可能會(huì)延課搶救時(shí)機(jī)某醫(yī)院打算開發(fā)一個(gè)以計(jì)算機(jī)為中心的患者監(jiān)護(hù)系統(tǒng),試寫出問題定義,并 且分析開發(fā)這個(gè)系統(tǒng)的可行性可行性分析一原系統(tǒng)分析:可行性分析-邏輯圖:開始開始醫(yī)生I蟲爪土埋狽惦則采集襦D1:標(biāo)準(zhǔn)數(shù)據(jù)'程 軟件工程師并不精通,但是可以在專業(yè)人士的幫助下完成。經(jīng)濟(jì)可行性:護(hù)士檢查病患醫(yī)生輸岀病 患標(biāo)準(zhǔn)數(shù)據(jù)服務(wù)器D4:指定打印¼r÷R支出方面由醫(yī)院方面承擔(dān),是否可行取決于醫(yī)院方面是否能支付所需的費(fèi)用操作可行性:醫(yī)生并不具有軟件維護(hù)的能力,在數(shù)據(jù)庫(kù)的維護(hù)上需要專業(yè)人士來(lái)進(jìn)行,因?yàn)椴』紨?shù)目并不會(huì)太多,所以只需一個(gè)人或 者幾個(gè)人定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行
19、管理和維護(hù)就行了.5北京某高??捎玫碾娫捥?hào)碼有以下幾類:校內(nèi)電話號(hào)碼由4位數(shù)字組成,第一位數(shù)字不是0.校外電話又分為本市電話和外地電 話兩類。撥校外電話需要先撥0,若是本市電話則接著撥8位數(shù)字(第一位不是0),若是外地電話則撥3位區(qū)碼后再撥8位電 話號(hào)碼(第一位不是0)答:電話號(hào)碼=校內(nèi)電話號(hào)碼I校外電話號(hào)碼校內(nèi)電話號(hào)碼=非零數(shù)字+ 3位數(shù)字校外電話號(hào)碼=本市號(hào)碼I外地號(hào)碼本市號(hào)碼=數(shù)字零+ 8位數(shù)字外地號(hào)碼=數(shù)字牢+ 3位數(shù)字+ 8位數(shù)字非翹字=1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9數(shù)字零=03位數(shù)字=3 數(shù)字 38位數(shù)字=非饕數(shù)字+ 7位數(shù)字7位數(shù)字=7 數(shù)字
20、7數(shù)字=0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9其中,意思是或,從校內(nèi)電話號(hào)碼或校外電話號(hào)碼中選擇一個(gè); 表示重復(fù),兩邊的數(shù)字表示重復(fù)次數(shù)的下限和上限;=意 思是定義為;+意思是和,連接兩個(gè)分量Il第三章(1).為什么要進(jìn)行需求分析通常對(duì)軟件系統(tǒng)有哪些要求答:D為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,首先必須知道用戶的需求。對(duì)軟件需求的深入理解是軟件開發(fā)工作獲得 成功的前提條件,不論我們把設(shè)計(jì)和編碼工作做得如何出色.不能真正滿足用戶需求的程序只會(huì)令用戶失望,給開發(fā)者帯來(lái)煩 惱。2)確定對(duì)系統(tǒng)的綜合要求:1、功能需求:2、性能需求:3、可靠性和可用性需求:4、出錯(cuò)
21、處理需求:5、接口需求:6、約 束;7、逆向需求;8、將來(lái)可以提出的要求,分析系統(tǒng)的數(shù)據(jù)要求。(2)怎樣與用戶有效地溝通以獲取用戶的真實(shí)需求答案:與用戶溝通獲取需求的方法:訪談:面向數(shù)據(jù)流自頂向下求精:簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù):快速建立軟件原型3銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過(guò)程大致如下:儲(chǔ)戶填寫的存款的或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓 名、住址、身份證號(hào)碼等存款信息,并打印出存款存單給儲(chǔ)戶:如果是取款且存款時(shí)留有密碼.則系統(tǒng)首先核對(duì)儲(chǔ)戶密碼,若密 碼正確或存款時(shí)未留密碼,則系統(tǒng)訃算利息并打印出利息清矗給儲(chǔ)戶。答案:用ER圖描繪系統(tǒng)中的數(shù)據(jù)對(duì)彖。(5)分所析習(xí)題2中第1題的患者監(jiān)
22、獄系統(tǒng)。試用實(shí)體-聯(lián)系圖描述本系統(tǒng)中的數(shù)據(jù)對(duì)線并用數(shù)據(jù)流程描繪木系統(tǒng)的功能。(6 )復(fù)印機(jī)的工作過(guò)程大致如下:未接到復(fù)印命令時(shí)處于閑置狀態(tài),一旦接到復(fù)印命令則進(jìn)入復(fù)印狀態(tài),完成一個(gè)復(fù)印命令規(guī)定的 工作后又回到閑置狀態(tài),等待下一個(gè)復(fù)印命令;如果執(zhí)行復(fù)印命令時(shí)發(fā)現(xiàn)沒紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進(jìn) 入閑置狀態(tài),準(zhǔn)備接收復(fù)印命令;如果復(fù)印時(shí)發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告等待維修人員來(lái)排除故障,故障排除后回到 閑置狀態(tài).請(qǐng)用狀態(tài)轉(zhuǎn)換圖描繪復(fù)印機(jī)的行為.答案: 從問題陳述可知,復(fù)印機(jī)的狀態(tài)主要有“閑置”、“復(fù)印”、“缺紙”和“卡紙”引起狀態(tài)轉(zhuǎn)換的事件主要是“復(fù) 印命令”、“完成
23、復(fù)印命令”.“發(fā)現(xiàn)缺紙”、“裝滿紙” X “發(fā)生卡紙故障”和“排除了卡紙故障”。1.舉例說(shuō)明形式化卑明技術(shù)和 答:排除了卡紙故障形式化說(shuō)明非形式化說(shuō)砂優(yōu)點(diǎn)1,簡(jiǎn)潔準(zhǔn)確的描述物理現(xiàn)辣. 對(duì)彖獲動(dòng)作的結(jié)果0TI?Hli>h I理汪辿之窟印命令PTTI - J M 4 "-X-L完成復(fù)印命缺點(diǎn)天衣形式化的戈 和數(shù)據(jù)do /復(fù)印I仃人寺Trnn缺紙do /警告在矛盾,二義性,含糊性,不完整性 屠次逼亂等問題以一個(gè)簡(jiǎn)單的俄羅斯方塊游戲系游戲的每個(gè)狀態(tài)對(duì)應(yīng)一個(gè)游戲界Ifth開始狀態(tài)下.但變S cd.start=l是進(jìn)入正常 Start=S是進(jìn)入得分榜界面犬態(tài)下同時(shí)按下左健和右健進(jìn)入儲(chǔ)存游戲
24、!I游戲結(jié)束畫面。;次混亂等問題?;诳?。在得分榜界血撈杯嗇健仮冋開始界而.存讀取游戲界裝滿紙游戲狀態(tài),在正常i可見.用自然語(yǔ)言書寫的系統(tǒng)規(guī)格說(shuō)明書,羅嗦繁朵.并且可能存在矛皋卡紙辱入讀取游戲狀態(tài), 入正常游戲狀態(tài),正常游ame-res=0.則游戲結(jié)束,不完整性及抽象用有窮狀態(tài)的描述如下:狀態(tài)機(jī)j: 開始正常游戲(游戲進(jìn)行中).得分榜讀取游戲,儲(chǔ)存游戲,游戲結(jié)束輸入集K: 按鍵UP,按tDOWN.按鍵LEFT.按鍵RIGHT.寄存器變§ cd.start .寄存器變S ge.res 轉(zhuǎn)換函數(shù)T:如圖所示初始態(tài)S: 開始J,應(yīng)該重用。.3, 個(gè)浮點(diǎn)二進(jìn)制數(shù)的構(gòu)成是:一個(gè)可j圖游戲狀態(tài)轉(zhuǎn)換
25、圖二進(jìn)制位,再跟上一個(gè)字符E,再加上另一個(gè)可選符號(hào)(+或T及一個(gè)或女個(gè)二進(jìn)制位。例如.下列的字符串都是浮點(diǎn)二進(jìn)制數(shù):IIOIoIE-IOl-IOOllIEllIoI+1EO更形式化地,浮點(diǎn)二進(jìn)制數(shù)定義如下floating POint binary) := sign (btstring> E sign (bitstring)sign :=+ 丨<bitstnng> := (bit) <bitstnng) J<bit) :=0 I 1其中,符號(hào)::=表示定義為:符號(hào).表示可選項(xiàng):符號(hào)a I b表示a或be假設(shè)有這樣一個(gè)有窮狀態(tài)機(jī):以一串字符為輸入.判斷字符串中是否含有
26、合法的浮點(diǎn)二進(jìn)制數(shù)。試對(duì)這個(gè)有窮狀態(tài)機(jī)進(jìn)行規(guī)格說(shuō)明C4, 考慮下述的自動(dòng)化圖書館流通系統(tǒng):每木書都有一個(gè)條形碼,每個(gè)人都有一個(gè)帶條形碼的卡片。但一個(gè)借閱人想借一木書時(shí)圖書管 理員掃描書上的條形碼和借閱人卡片的條形碼.然后在計(jì)算機(jī)終端上輸入G、"|歸還一木書時(shí)圖書管理員將再次掃描.并輸入R。圖書 管理員可以把一些書加到")圖書集合中.也可以刪除(一)它們。借閱人可以再終端上査找到某個(gè)作者所有的書(輸入WA=M和作者 名字)或具有指定標(biāo)題的所有書籍(輸入和標(biāo)題),或?qū)儆谔囟ㄖ黝}范碉內(nèi)的所有圖書(輸入“S=”加主題范開。最后.如果 借閱人想借的書已被別人借走.圖書管理員將給這木書
27、設(shè)匱一個(gè)預(yù)約,以便書歸還時(shí)把書留給預(yù)約的借閱人(輸入“H=”加書號(hào))。 試用有窮狀態(tài)機(jī)說(shuō)明上述的圖書流通系統(tǒng)圖書館流通系統(tǒng)的有窮狀態(tài)機(jī)描述如下:-圖書狀態(tài)的有窮狀態(tài)機(jī)描述事機(jī)J: 書在圖書館Sl,書被借出S2,書被預(yù)約S3I集K: 書上條形碼,借閱卡條形碼終端輸入備種命令?yuàn)J函數(shù)T:如圖4. 4. 1所示惟態(tài)S: 書在圖書館Sl,書彼借出S2底集F: 書被借出S2,書被預(yù)約S3在終端輸入“H二”加書號(hào)書被預(yù)約書被借出書在圖書館 奐函數(shù)T:如圖442所方掃描兩個(gè)條形' 啟態(tài)s: 管理員設(shè)宜狀態(tài):碼,在終端輸 岳集F: 書入庫(kù),書出庫(kù)(刪除),預(yù)約, 圖4 ,)圖書館終端用戶模式的有窮狀態(tài)機(jī)
28、描述、ElJ: 讀者查詢狀態(tài),査詢結(jié)果書狀今為,S2&終端3K: 終端輸入用戶查詢命令,書的各種輸入申FH書名 奐函數(shù)T:如圖4管理員設(shè)置狀 命態(tài)S 讀者查懇集F: 查詢結(jié)果I5試用 Pety 答:其書歸還,掃描兩個(gè) 條形碼,在終端輸預(yù)約讀者查詢狀 態(tài)f終端輸入各扌館中一;和喳詢命令 翅格說(shuō)叨中應(yīng)該何括側(cè)乩C及RC 2表示書查詢結(jié) 果Book-in, BOOk-Out, Book-reserveBook-,in BOOk-OUt Book-reser,BOOk InUBOOk OUtUBOOk reserv “=P3P2書館圖6, 試用 P 答:(這題真的不卸BOOK STATE第五章
29、為每種類型的模塊耦合舉一個(gè)具體的例子。答:耦合式對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度址。耦合強(qiáng)弱取決于接口的復(fù)雜度.進(jìn)入或訪問 某一模塊的點(diǎn)以及通過(guò)接口的數(shù)據(jù)。一般模塊之間的可能的連接方式有七種構(gòu)成耦合的七種類型.它 們的關(guān)系為:低耦合性f非直接耦合數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共輜合內(nèi)容耦合強(qiáng)獨(dú)立性弱下而舉例說(shuō)明以上耦合:A. 非直接耦合:兩個(gè)模塊沒有直接的關(guān)系(模塊1和模塊2).獨(dú)立性昴強(qiáng)卒間獨(dú)立性較強(qiáng)。 模塊2B數(shù)據(jù)耦合:少個(gè)模塊訪問另一個(gè)模塊的時(shí)候.彼此之間是通過(guò)數(shù)據(jù)參數(shù)來(lái)交換輸入、輸出信息的.這 種耦勺為數(shù)據(jù)怡合這種輜合較獨(dú)模塊1c.模塊3模塊4圖中模塊都與此有關(guān)D控制耦合:
30、即如果個(gè)模塊通過(guò)傳送開關(guān).標(biāo)總:、名字等控制信息明顯地控制選擇另模塊的功能. 就是控制耦合A模塊E.外部耦合 一組模塊都訪問同一全局簡(jiǎn)小變雖而不是同一全局?jǐn)?shù)抑:結(jié)構(gòu),而且不是通過(guò)參數(shù)表傳遞該全局變雖:的信息,則稱之為外部耦合。FiagFIF2的耦合就稱為公共耦合。G內(nèi)容耦合:如果出現(xiàn)以下悄況之一,兩個(gè)模塊就發(fā)生r內(nèi)容耦合SUbA模塊數(shù)瞅B模塊一個(gè)模塊訪問另一個(gè)模塊不通過(guò)比肚人口兩個(gè)模塊有一部分程序代碼一個(gè)模塊有箏個(gè)入口(這慰味著f模塊有JAA(.)另TT>J->ru IT :?。ㄖ豢赡馨l(fā)生在匯編程序中種功能)全局?jǐn)?shù)C模塊GOtO LEnd SUbSUb BB(.)L: End SU
31、b為每種類型的模塊內(nèi)聚舉一個(gè)例子答:內(nèi)聚標(biāo)總著一個(gè)模塊內(nèi)各個(gè)元素之間彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展C 低內(nèi)聚:A. 偶然內(nèi)聚:如果一個(gè)模塊完成一組任務(wù)這些任務(wù)彼此間即使有關(guān)系關(guān)系也是很松散的。這就叫做 偶然內(nèi)聚偶然內(nèi)聚的例子:在模塊T中有A,B,C三條語(yǔ)句,至少?gòu)谋矶峡磥?lái)這三條語(yǔ)句沒什么聯(lián)系.只是因?yàn)镈, E, F, G中都有這三條語(yǔ)句為了節(jié)省空間才把這三條語(yǔ)句作為一個(gè)模板放在一起。B. 邏輯內(nèi)聚:如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類(例如一個(gè)模塊產(chǎn)生各種類型的 全部輸岀)稱為邏輯內(nèi)聚邏輯內(nèi)聚的例子:某一個(gè)模塊將打印.年,丿J日具體打印什么,將由傳入的控
32、制標(biāo)吉所決定。C. 時(shí)間內(nèi)聚:一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行(例如模塊完成幹種初始化工作),稱為 時(shí)間內(nèi)聚時(shí)間內(nèi)聚的例子:將箏個(gè)變雖的初始化放在同一個(gè)模塊中實(shí)現(xiàn)。中內(nèi)聚:A. 過(guò)程內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,稱為過(guò)程內(nèi)聚過(guò)程內(nèi)聚的例子:一個(gè)子程序,將開始讀取學(xué)生的學(xué)號(hào).然后是姓名,昴后將讀取分?jǐn)?shù).是由于特定的順 序而將這些操作組合在一起的B. 通訊內(nèi)聚:如果模塊中所有的元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱為通訊 內(nèi)聚通訊內(nèi)聚的例子:有一個(gè)子程序,它將打印實(shí)驗(yàn)報(bào)告,并且在完成后重新初始化傳進(jìn)來(lái)的實(shí)驗(yàn)數(shù)據(jù)。這個(gè) 程序具有通訊內(nèi)聚性。
33、因?yàn)檫@兩個(gè)操作由于使用同一個(gè)數(shù)據(jù)源聯(lián)系在了一起。高內(nèi)聚:A. 順序內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行(通常一 個(gè)處埋元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù)),則稱為順序內(nèi)聚C順序內(nèi)聚的例子:有一個(gè)子程序通過(guò)給出的生日先汁算出年齡C再根據(jù)年齡算出退休的時(shí)間則這個(gè) 程序具有順序內(nèi)聚性。B. 功能內(nèi)聚:如果模塊內(nèi)所有的元素屬于一個(gè)整體完成一個(gè)爪一的功能.則成為功能內(nèi)聚。功能內(nèi)聚的例子:一個(gè)程序中所有的操作都是為了算岀一個(gè)人的年齡用面向數(shù)據(jù)流的方法設(shè)訃下列系統(tǒng)的軟件結(jié)構(gòu) 儲(chǔ)蓄系統(tǒng) 機(jī)票預(yù)訂系統(tǒng) 患者監(jiān)護(hù)系統(tǒng)茨國(guó)某大學(xué)有200名教師校方與教師匸會(huì)剛剛簽訂一項(xiàng)
34、協(xié)議。按照協(xié)議, 所有年工資超過(guò)$26000 (含$26000 )的教師工資將保持不變.年工資少于$26000 的教師將増加匚資.所増加匸資數(shù)額按下述方法計(jì)算:給每位教師所嗨養(yǎng)的人(包 括教師本人)每年補(bǔ)助$100,此外,教師有一年工齡每年再多補(bǔ)助¥50.但是,増加后的年工資總額不能箏于$260Oon教師匸資檔案存儲(chǔ)在行政辦公室的磁帯上,檔案中有目前的年:資、贈(zèng)養(yǎng)的人數(shù).雇傭日期等信息C需要寫一個(gè)程序計(jì)算并印出每名教師的原匸資和調(diào)整后的新工資。要求:(1)畫出此系統(tǒng)的數(shù)據(jù)流圖:(2)寫出需求說(shuō)明:(3)設(shè)訃上述的工資調(diào)整程序(要求用HlPO圖描繪設(shè)訃結(jié)果),設(shè)計(jì)時(shí)分別采用兩種算法,并
35、比較兩種算法的優(yōu)缺點(diǎn):(a)捜索工資檔案數(shù)據(jù),找出年工資少于$26000的人,計(jì)算新工資,校核是否超過(guò)$26000,存儲(chǔ)新工資.印出新舊工資對(duì)照表:(b)把匸資檔案數(shù)據(jù)按匸資從最低到最商的次序排序.為工資數(shù)額超過(guò)$26000時(shí)即停止排序,計(jì)算新工資,校核是否超過(guò)限額,存儲(chǔ)新工資,印出結(jié)果。(4)你所畫出的數(shù)據(jù)流圖適應(yīng)用那種算法解:(1)數(shù)據(jù)流圖:分解后:(2)需求說(shuō)明:1. 功能需求:可以輸入調(diào)資的標(biāo)準(zhǔn)輸入教師檔案,經(jīng)涮資給出新的教師檔案.需要存儲(chǔ)檔案2. 性能需求:軟件的響應(yīng)時(shí)間應(yīng)小于,更新處理婆快3. 靈活需求:十需求發(fā)生某些變化時(shí),該軟件應(yīng)該能夠適應(yīng)這些變化4故障處理要求:出現(xiàn)錯(cuò)誤時(shí).應(yīng)
36、給予警告或提示(3)(a)比較耗時(shí),因?yàn)樗獧z索所有的檔案 (b)從速度上看比較快,但是(b)需要排序算法比較復(fù)雜,(a)對(duì)于設(shè)汁來(lái)講比較簡(jiǎn)収(4)畫出的數(shù)據(jù)流圖比較適合(A)的算法下面將給出兩個(gè)人玩的撲克牌游戲的一種玩法,試設(shè)計(jì)一個(gè)模擬程序它的基木功能是:(1)發(fā)兩于牌(利用隨機(jī)數(shù)產(chǎn)生器)。(2)確定贏者和羸牌的類型。(3)模擬N次游戲汁算每種類型牌贏或平局的概率。要求川HIPo圖描繪設(shè)汁結(jié)果并且畫出高層控制流程圖。撲克牌游戲規(guī)則如下:(1)有兩個(gè)人玩分別為A和B(2)一副撲克牌有52張牌.4種花色(黑桃、紅桃、梅花、方塊),每種花色的牌的點(diǎn)數(shù)按升序排列有2、3,4, 10, J,Q,K,A
37、 等 13種。(3)給每個(gè)人發(fā)三張牌牌面向上,贏者立即可以確定。(4)最島等級(jí)的一于牌成為同花.即3張牌均為同一種花色,最大的同花是同一種花色的Q,K,A°(6)第三等級(jí)的牌是同點(diǎn),即點(diǎn)數(shù)相同的三張牌舅大的同點(diǎn)是AAAC(7)第四等級(jí)的牌是對(duì)子,即3張牌中有兩張點(diǎn)數(shù)相同,最大的對(duì)子是AfA,Ko(8)第五等級(jí)的牌是朵牌,即除去上列4等之外的任何一于牌.最大的朵牌是不同花色的,JL (9)若兩個(gè)人的牌類型不同,則等級(jí)商者勝:若等級(jí)相同,則點(diǎn)數(shù)r者勝:若點(diǎn)數(shù)也相同則為平局。程序:Uinclude ""int rabl (int a, int b,Int *r)int
38、1, k, m, i,p;k=b-a÷l;1=2;WhiIe(i<=l)(k=kk+kk+k;k=k%m;l=k,4+a;if(l<=b) (P=l;i=i+l; *r=k;return(p);int max(int Tll)int t=0;f(T0 0>Tl0)t=0O;else t=Tl;if(t<T20)t=T20;return t;int EI(int TIIOl 110)if(T0l=TllT 11=T 21)return 1;else return 0;int E2(int Tll)int q=0;if (max(T10 10)-I)=T (Jna
39、X(T10 1O)-1)=T1 (max(T10 10)-1)T0)&&(max(Tl 10)-2) =T (InaX(T10 10)-2)=Tl (max(T1010)-2)=T) OTe 條件程序塊2K=K+1END DOK假設(shè)只有SEQUENCE和IF_THEN_ELSE兩種控制結(jié)構(gòu),怎么利用它們完成DOeWHILE操作解:轉(zhuǎn)化如下;label: IF (條件)THEN程序塊GOTO IabeIELSE程序塊END IF2、畫出下列偽代碼程序的流程圖和盒圖:STARTIF P THENWHlLE q DOEND DOELSEBLoCKgnEND BLoCKEND IFST
40、OP解:流程圖:盒圖:4、圖給出的程序流程圖代表一個(gè)非結(jié)構(gòu)化的程序,問:(1) 為什么說(shuō)它是非結(jié)構(gòu)化的(2) 設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序。(3) 在(2)題的設(shè)計(jì)中使用附加的標(biāo)識(shí)變* flag T嗎若沒用,在設(shè)計(jì)一個(gè)使用flag的程序;若用了,在設(shè)計(jì)一個(gè)不用flag的程序。解:(1)通常所說(shuō)的結(jié)構(gòu)化程序,是按照狹義的結(jié)構(gòu)程序的定義衡量,符合定義規(guī)定的程序,每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口.圖示的程序的循環(huán)控制結(jié)構(gòu)有兩個(gè)出口,顯然 不符合狹義的結(jié)構(gòu)程序的定義,因此是非結(jié)構(gòu)化的程序。(2) 使用附加的標(biāo)志 flag,至少有兩種方法可以把該程序改造為等價(jià)的結(jié)構(gòu)化程序,圖示盒圖描繪了等價(jià)的結(jié)構(gòu)化程序.(
41、3) 不使用flag把該程序改造為尊價(jià)的結(jié)構(gòu)化程序的方法如圖所示.5、研究下面的偽碼程序:LOOPrSet I to(START+FINISH)2IF TABLE(I)=ITME goto FOUNDIF TABLE(IXlTME Set START to (l+l)IF TABLE(I) >TME Set FlNSH to (I-I)IF (FlNSH-START)>1 goto LOOPIF TABLE(START)=ITEM goto FOuNDIF TABLE(FlNSH)=ITEM goto FOUNDSet FLAG to 0GOtO DONEFOUND: Set FL
42、AG to 1DONE: EXlT要求:(1) 畫出流程圖。(2) 程序是結(jié)構(gòu)化的嗎說(shuō)明理由.(3) 若此程序是非結(jié)構(gòu)化,設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序并畫出流程圖。(4) 此程序的功能是什么它完成預(yù)定功能有什么隱含的前提條件嗎解:(1)該程序流程圖如下:(2) 該程序不是結(jié)構(gòu)化的,結(jié)構(gòu)化的程序只有一個(gè)入口和一個(gè)出口,而該程序的流程途中有兩個(gè)出口。(3) 等價(jià)的結(jié)構(gòu)化程序的流程圖如下:(4) 此程序有二分査找的功能,它完成預(yù)定功能的隱含前提條件是現(xiàn)有序列為從小到大順序排好的有序 序列.6. 用Ashcroft-Manna技術(shù)可以將非結(jié)構(gòu)化的程序轉(zhuǎn)化為結(jié)構(gòu)化程序,圖是一個(gè)轉(zhuǎn)換的例子.(1) 能否從這個(gè)
43、例子總結(jié)出Ashcroft-Manna技術(shù)的一些基本方法進(jìn)一步簡(jiǎn)化(b)給出的結(jié)構(gòu)化設(shè)計(jì)。1最外層的IF語(yǔ)句在I= 1時(shí)執(zhí)行,執(zhí)行完這個(gè)IF語(yǔ)句后把I賦值為隨后應(yīng)該執(zhí)行的內(nèi)層IF語(yǔ)句所對(duì)應(yīng)的 CASE標(biāo)號(hào)值.DO-CASE語(yǔ)句的最大分支數(shù)(可執(zhí)行的最大標(biāo)號(hào)值)等于IF語(yǔ)句的個(gè)數(shù)。當(dāng)執(zhí)行完最內(nèi)層的 IF語(yǔ)句之后,科1賦值為可執(zhí)行的最大標(biāo)號(hào)值加1 ,而DO-UNTIL循環(huán)的結(jié)束條件就是I等于這個(gè)值(2) 進(jìn)_步簡(jiǎn)7、某交易所規(guī)定給經(jīng)紀(jì)人的手續(xù)費(fèi)計(jì)算方法如下:總手續(xù)費(fèi)等于基本手續(xù)費(fèi)加上與交易中的每股價(jià)格籾 股數(shù)有關(guān)的附加手續(xù)費(fèi)。如果交易金額少于IOOo元,則基本手續(xù)費(fèi)為交易金額的;如果交易總金額在
44、1000 7C10000元之間,則基本手續(xù)費(fèi)為交易金額的琳,再加34元;如果金額超過(guò)IooOO元,則基本手 續(xù)費(fèi)為交易金額的4%加上134元。當(dāng)每股售價(jià)低于14元時(shí),附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的5%,除非買 進(jìn)、賣出的股數(shù)不繪100的倍數(shù),在這種情況下附加手續(xù)費(fèi)的9%。當(dāng)每股售價(jià)在14元到25元之間時(shí), 附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的2%,除非交易的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費(fèi)的6%。當(dāng)每 股售價(jià)超過(guò)25元時(shí),如果交易的股數(shù)(即不是100的倍數(shù)),則附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的4%,否則附 加手續(xù)費(fèi)為基本手續(xù)費(fèi)的1%.要求:(1) 用判定表表示手續(xù)費(fèi)的計(jì)算方法.(2) 用判定數(shù)表示手續(xù)費(fèi)的計(jì)
45、算方法.解:令P代表交易的總金額,Q代表每股的售價(jià),n代表交易的股數(shù)。(1) 表示手續(xù)費(fèi)計(jì)算方法的判定表如圖所示(2) 表示手續(xù)費(fèi)計(jì)算方法的判定樹8.畫出下列偽碼程序的流圖,計(jì)算它的環(huán)形復(fù)雜度。你覺得這個(gè)程序的邏輯有什么問題嗎C EXAMPLELoOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X, YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRlNT GELSE PRlNT KEND IFST
46、OP解:流程圖:環(huán)形復(fù)雜度:V(=結(jié)點(diǎn)E弧數(shù)+1=17-11+1=7J斷結(jié)點(diǎn)+1=6 +J=T=封閉的區(qū)域數(shù) 邏輯有問題,當(dāng)Z>0時(shí),容易形成死循環(huán);條件Y<5包含條件Y=29、把統(tǒng)計(jì)空格程序的JaCkSOn圖(圖)該畫為等價(jià)的程序流程圖和盒圖。 解:流程圖:開始文件尾讀一個(gè)字符盒圖:SS: : I .六 M 蚣-H-> ij讀取下一個(gè)字換行銃山牢格總 結(jié)束:始以系統(tǒng)信息結(jié)塞結(jié)立件操作員記錄學(xué)姓名專業(yè)班姓名分10.人機(jī)對(duì)話由操作員信息和 束,用JaCkSOn圖描繪這樣的 解:操作員記錄文件不是文件尾讀一個(gè)字符串換行,輸出字符串,換行統(tǒng)汁空格數(shù)并輸出取下一個(gè)字符串換行,輸出空格
47、數(shù)操作員ii專業(yè)班級(jí)產(chǎn)生新文件血堀化后W件j己 L-第題I1、下面給出的偽碼錯(cuò)誤。字頻統(tǒng)計(jì)程戶there are more WOrdS in心'-個(gè)錯(cuò)誤請(qǐng)仔細(xì)閱讀這段偽INITIALIZE the Fthe text record專業(yè)班級(jí)1明該偽碼的語(yǔ)法特點(diǎn)找出IREAD the first text rec<業(yè)班級(jí)偽碼中的HILEDO WHILE there are more WOrdS In the text recordEXTRAcT the next text IrOrdSEARCH the WOrd"tabIe for the extracted WOrdIF
48、 the extracted WOrd is foundINCREMENT the word, S OCCUrrenCe COUntELSEINSERT the extracted WOrd into the tableEND IFINCREMENT the WOrdS-PrOCeSSed COUntEND DO at the end Of the text recordREAD the next text recordEND DO When all text records have heen readPRINT the table and SUamary InfOrmatiOnTERMlN
49、ATE the PrOgram答:INSERT the extracted WOrd into the table 在這個(gè)后面,有沒有給這個(gè) word 的 occurrence/COunt 賦值為 1第二題2、研丸下面給出的偽碼程序,要求:(1)畫出它的程序流程圖。(2)它是結(jié)構(gòu)化的還是非結(jié)構(gòu)化的說(shuō)明理由.(3)若是非結(jié)構(gòu)化的,則(a)把它改造成僅用3種控制 結(jié)構(gòu)的結(jié)構(gòu)化程序;(b)寫出這個(gè)結(jié)構(gòu)化設(shè)計(jì)的偽碼;(C)用盒圖表示這個(gè)結(jié)構(gòu)化程序.(4)找出并 改正程序邏輯中的錯(cuò)誤。COMMENT:PRoGRAM SEARCHES FOR FlRST N REFERENCESTO A TOPIC IN
50、 AN INFORMATlON RETRIEVALSYSTEM IITH T TOTAL ENTRlESINPUT NINPUT KEYWORD(S)FOR TOPlCI=OMATCH=ODO WHlLE ITI=I÷1IF WORD=KEYWORDTHEN MATCH=MATCH+1STORE IN BUFFERENDIF MATCH=NTHEN GoTO OUTPUTENDENDIF N=OTHEN PRlNT z, NO MATar OuTPuT: ELSE CALL SUBRoUTINE TO PRlNT BUFFERINFORMATIONEND第三題3、在第2題的設(shè)計(jì)中若輸
51、入的N值或KEYWoRD不合理,會(huì)發(fā)生問題。(1) 給出這些變量的不合理值的例子.(2) 將這些不合理值輸入程序會(huì)有什么后果怎樣在程序中加入防錯(cuò)措施,以防止出現(xiàn)這些問題(1) 答:N=b KEYWOED=#O(2) 答:無(wú)法打印出任何信息。(3) 答:加入循環(huán)笫四題4、(1)什么是模塊測(cè)試和集成測(cè)試它們各有什么特點(diǎn)答:模塊測(cè)試是對(duì)每個(gè)單獨(dú)的模塊,分別用然盒和白盒測(cè)試技術(shù),測(cè)試它的功能是否正確,檢査模塊控制結(jié)構(gòu)中的特定路徑并發(fā)現(xiàn)最大數(shù)量的錯(cuò)誤。其特點(diǎn)是:主要應(yīng)用白盒測(cè)試的技術(shù),對(duì)多個(gè)模塊的測(cè)試可以并發(fā)的進(jìn)行集成測(cè)試是把模塊裝配在一起形成完整的軟件包,在裝配的同時(shí)進(jìn)行測(cè)試.特點(diǎn)是:可能發(fā)生接口問題
52、.(2) 假設(shè)有一個(gè)由IooO行FoRTRAN語(yǔ)句構(gòu)成的程序,估計(jì)在對(duì)它進(jìn)行測(cè)試期間將發(fā)現(xiàn)多少個(gè)銷誤為什 么答:月25至100個(gè)錯(cuò)誤,美國(guó)的一些統(tǒng)計(jì)數(shù)字告訴我們通常這個(gè)比值在之間,也就是說(shuō),測(cè)試之前每 IOoO條抬令中大約有520個(gè)錯(cuò)誤。假設(shè)測(cè)試之前每IOoo條抬令中有10個(gè)錯(cuò)誤,則估計(jì)對(duì)它進(jìn)行測(cè)試期 間將發(fā)現(xiàn)的錯(cuò)課數(shù)為:5000*101000=50>(3) 設(shè)計(jì)下列偽碼程序的語(yǔ)句覆蓋和路徑覆逍測(cè)試用例:STARTINPUT (A, B,C)IF A>5THEN X=IOELSE X=IEND IFIF B>10THEN X=20ELSE X=2END IFIF 015THE
53、N X=30ELSE X=SEND IFPRINT(X, Y, Z)選擇足夠多帥使被測(cè)試程序是便用CRT終塚旳信該糸絡(luò)?9tE6¾型闊疸Ki Ht¾Qi麗Htfc黑職¾!(1) I(2) 解:設(shè)計(jì)蟄數(shù)帕耳測(cè)齬統(tǒng)的鶴 (曲n試棗絡(luò)F”操試*,的fr列S卜命*p bEYFOU) Jr申的每個(gè)一次。A卜則4個(gè)岸本檢索命!令M-Jy7m止2腹TF T204060102BOi中央 ii-÷ 重復(fù)執(zhí)EnrBtnr列2f (NAM<)fid (N)是執(zhí)仃命令b后社辟幕上顯不的約N是執(zhí)廳命令行上述曽序列甲列出的20個(gè)行弓中的一彳 鑽引號(hào)甲一個(gè)(41(至少應(yīng)該像L分m至冊(cè)22024124111STOP賓 ¾ *"1m1T":BROWSE(O)b(關(guān)犍字)系統(tǒng)搜索給出的關(guān)謹(jǐn)字,找岀字母排列與此關(guān)鍵字最相近的 字。然后在屏幕上顯示約20個(gè)加了行號(hào)的字,與給出的關(guān)鍵 字完全相同的字約在中央SELECT(選取3(屏幕 上的行號(hào))系統(tǒng)創(chuàng)建一個(gè)文件保存含有由行號(hào)指定的關(guān)謹(jǐn)字的全部圖書 的索引,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江宇翔職業(yè)技術(shù)學(xué)院《公路工程定額原理與計(jì)價(jià)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江工業(yè)職業(yè)技術(shù)學(xué)院《采購(gòu)過(guò)程演練》2023-2024學(xué)年第一學(xué)期期末試卷
- 反諧振阻抗比較小的原因
- 中國(guó)傳媒大學(xué)《計(jì)算機(jī)電子電路基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長(zhǎng)治醫(yī)學(xué)院《劇場(chǎng)品牌管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南司法警官職業(yè)學(xué)院《體育-臺(tái)球》2023-2024學(xué)年第一學(xué)期期末試卷
- 企業(yè)內(nèi)部知識(shí)分享平臺(tái)構(gòu)建方案
- 保險(xiǎn)行業(yè)數(shù)字營(yíng)銷模板
- 拿破侖歷史名人人物介紹
- 中考誓師大會(huì)學(xué)生發(fā)言稿
- 小學(xué)數(shù)學(xué)二年級(jí)100以內(nèi)連加連減口算題
- 建設(shè)單位如何做好項(xiàng)目管理
- 三年級(jí)上遞等式計(jì)算400題
- 一次性餐具配送投標(biāo)方案
- 2024年原發(fā)性肝癌中醫(yī)診療指南
- 2024醫(yī)療建筑韌性設(shè)計(jì)導(dǎo)則
- 軍隊(duì)文職半年述職報(bào)告
- 鑄牢中華民族共同體意識(shí)-考試復(fù)習(xí)題庫(kù)(含答案)
- 2024年浙江首考高考選考生物試卷試題真題(含答案詳解)
- 天津市紅橋區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末地理試題
- 西門子數(shù)字化工廠-數(shù)字化車間-先進(jìn)制造技術(shù)
評(píng)論
0/150
提交評(píng)論