版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(完整版)軟件工程導(dǎo)論(第六版)張海藩牟永敏課后習(xí)題答案(完整版)軟件工程導(dǎo)論(第六版)張海藩牟永敏課后習(xí)題答案(完整版)軟件工程導(dǎo)論(第六版)張海藩牟永敏課后習(xí)題答案第一章一、什么是軟件危機(jī)?它有哪些典型表現(xiàn)?為什么會(huì)出現(xiàn)軟件危機(jī)?軟件危機(jī)是指在計(jì)算機(jī)軟件開(kāi)發(fā)、使用與維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題和難題.它包括兩方面:如何開(kāi)發(fā)軟件,已滿(mǎn)足對(duì)軟件日益增長(zhǎng)的需求;如何維護(hù)數(shù)量不斷增長(zhǎng)的已有軟件。軟件危機(jī)的典型表現(xiàn):(1)對(duì)軟件開(kāi)發(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ì)量.這些都降低了開(kāi)發(fā)商的信譽(yù),引起用戶(hù)不滿(mǎn)。(2)用戶(hù)對(duì)已完成的軟件不滿(mǎn)意的現(xiàn)象時(shí)有發(fā)生.(3)軟件產(chǎn)品的質(zhì)量往往是靠不住的. (4)軟件常常是不可維護(hù)的。(5)軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。文檔資料不全或不合格,必將給軟件開(kāi)發(fā)和維護(hù)工作帶來(lái)許多難以想象的困難和難以解決的問(wèn)題.(6)軟件成本、軟件維護(hù)費(fèi)在計(jì)算機(jī)系統(tǒng)總成本中所占比例逐年上升。(7)開(kāi)發(fā)生產(chǎn)率提高的速度遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用普及的需求。軟件危機(jī)出現(xiàn)的原因:(1)來(lái)自軟件自身的特點(diǎn):是邏輯部件,缺乏可見(jiàn)性;規(guī)模龐大、復(fù)雜,修改、維護(hù)困難。(2)軟件開(kāi)發(fā)與維護(hù)的方法不當(dāng):忽視需求分析;認(rèn)為軟件開(kāi)發(fā)等于程序編寫(xiě);輕視軟件維護(hù)。(3)供求矛盾將是一個(gè)永恒的主題:面對(duì)日益增長(zhǎng)的軟件需求,人們顯得力不從心。二、假設(shè)自己是一家軟件公司的總工程師,當(dāng)把圖1.1給手下的軟件工程師們觀(guān)看,告訴他們及時(shí)發(fā)現(xiàn)并改正錯(cuò)誤的重要性時(shí),有人不同意這個(gè)觀(guān)點(diǎn),認(rèn)為要求在錯(cuò)誤進(jìn)入軟件之前就清楚它們是不現(xiàn)實(shí)的,并舉例說(shuō):“如果一個(gè)故障是編碼錯(cuò)誤造成的,那么,一個(gè)人怎么能在設(shè)計(jì)階段清除它呢?”應(yīng)該怎么反駁他?答:在軟件開(kāi)發(fā)的不同階段進(jìn)行修改付出的代價(jià)是很不相同的,在早期引入變動(dòng),涉及的面較少,因而代價(jià)也比較低;在開(kāi)發(fā)的中期,軟件配置的許多成分已經(jīng)完成,引入一個(gè)變動(dòng)要對(duì)所有已完成的配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價(jià)劇增;在軟件“已經(jīng)完成"是在引入變動(dòng),當(dāng)然付出的代價(jià)更高.一個(gè)故障是代碼錯(cuò)誤造成的,有時(shí)這種錯(cuò)誤是不可避免的,但要修改的成本是很小的,因?yàn)檫@不是整體構(gòu)架的錯(cuò)誤。三、什么是軟件工程?它有哪些本質(zhì)特征?怎樣用軟件工程消除軟件危機(jī)?1993年IEEE的定義:軟件工程是:①把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用于軟件;②研究①中提到的途徑。軟件工程的本質(zhì)特征:(1)軟件工程關(guān)注于大型程序(軟件系統(tǒng))的構(gòu)造 (2)軟件工程的中心課題是分解問(wèn)題,控制復(fù)雜性 (3)軟件是經(jīng)常變化的,開(kāi)發(fā)過(guò)程中必須考慮軟件將來(lái)可能的變化(4)開(kāi)發(fā)軟件的效率非常重要,因此,軟件工程的一個(gè)重要課題就是,尋求開(kāi)發(fā)與維護(hù)軟件的更好更有效的方法和工具(5)和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵 (6)軟件必須有效地支持它的用戶(hù)(7)在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人(完成一些工作)消除軟件危機(jī)的途徑:(1)對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí)(軟件≠程序)(2)必須充分認(rèn)識(shí)到軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類(lèi)人員協(xié)同配合、共同完成的工程項(xiàng)目(3)推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功技術(shù)和方法(4)開(kāi)發(fā)和使用更好的軟件工具四、簡(jiǎn)述結(jié)構(gòu)化范型和面向?qū)ο蠓缎偷囊c(diǎn),并分析他們的優(yōu)缺點(diǎn)。1.
傳統(tǒng)方法學(xué):也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。
優(yōu)點(diǎn):把軟件生命周期劃分成基干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而且比較簡(jiǎn)單,便于不同人員分工協(xié)作,
從而降低了整個(gè)軟件開(kāi)發(fā)過(guò)程的困難程度。缺點(diǎn):當(dāng)軟件規(guī)模龐大時(shí),或者對(duì)軟件的需求是模糊的或會(huì)承受時(shí)
間而變化的時(shí)候,開(kāi)發(fā)出的軟件往往不成功;而且維護(hù)起來(lái)仍然很困難.
2。
面向?qū)ο蠓椒▽W(xué):優(yōu)點(diǎn):降低了軟件產(chǎn)品的復(fù)雜性;提高了軟件的可理解性;簡(jiǎn)化了軟件的開(kāi)發(fā)和維護(hù)工作;
促進(jìn)了軟件重用。
五、1—5根據(jù)歷史數(shù)據(jù)可以做出如下的假設(shè):對(duì)計(jì)算機(jī)存儲(chǔ)容量的需求大致按下面公式描述的趨勢(shì)逐年增加:M=4080e0。28(Y-1960)存儲(chǔ)器的價(jià)格按下面公式描述的趨勢(shì)逐年下降:P1=0.3×0。72Y-1974(美分/位)如果計(jì)算機(jī)字長(zhǎng)為16位,則存儲(chǔ)器價(jià)格下降的趨勢(shì)為:P2=0.048×0。72Y—1974(美元/字)在上列公式中Y代表年份,M是存儲(chǔ)容量(字?jǐn)?shù)),P1和P2代表價(jià)格。基于上述假設(shè)可以比較計(jì)算機(jī)硬件和軟件成本的變化趨勢(shì)。要求計(jì)算:(1)在1985年對(duì)計(jì)算機(jī)存儲(chǔ)容量的需求估計(jì)是多少?如果字長(zhǎng)為16位,這個(gè)存儲(chǔ)器的價(jià)格是多少?存儲(chǔ)容量需求M=4080e0。28(1985—1960)=4474263(字)存儲(chǔ)器價(jià)格P=0.048*0.72(1985-1974)*4474263=5789美元(2)假設(shè)在1985年一名程序員每天可開(kāi)發(fā)出10條指令,程序員的平均工資是每月4000美元。如果一條指令為一個(gè)字長(zhǎng),計(jì)算使存儲(chǔ)器裝滿(mǎn)程序所需用的成本。需要工作量4474263/200=22371(人/月)指令成本22371*4000=89484000美元(3)假設(shè)在1995年存儲(chǔ)器字長(zhǎng)為32位,一名程序員每天可開(kāi)發(fā)出30條指令,程序員的月平均工資為6000美元,重復(fù)(1)、(2)題.需求估計(jì)M=4080e0.28(1995—1960)=73577679字存儲(chǔ)器價(jià)格0.003*32*0。72(1995—1974)*73577679=7127美元工作量73577679/600=122629(人/月)成本122629*6000=735776790美元六、什么是軟件過(guò)程?它與軟件工程方法學(xué)有何關(guān)系?軟件過(guò)程是為了開(kāi)發(fā)出高質(zhì)量的軟件產(chǎn)品所需完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件工程方法學(xué):通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱(chēng)為方法學(xué),也稱(chēng)范型。軟件過(guò)程是軟件工程方法學(xué)的3個(gè)重要組成部分之一。七、什么是軟件生命周期模型?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點(diǎn),說(shuō)明每種模型的使用范圍。軟件生命周期模型是跨越整個(gè)生存期的系統(tǒng)開(kāi)發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。瀑布模型優(yōu)點(diǎn):它提供了一個(gè)模板,這個(gè)模板使得分析、設(shè)計(jì)、編碼、測(cè)試和支持的方法可以在該模板下有一個(gè)共同的指導(dǎo)。雖然有不少缺陷但比在軟件開(kāi)發(fā)中隨意的狀態(tài)要好得多。缺點(diǎn):(1)實(shí)際的項(xiàng)目大部分情況難以按照該模型給出的順序進(jìn)行,而且這種模型的迭代是間接的,這很容易由微小的變化而造成大的混亂。(2)經(jīng)常情況下客戶(hù)難以表達(dá)真正的需求,而這種模型卻要求如此,這種模型是不歡迎具有二義性問(wèn)題存在的。(3)客戶(hù)要等到開(kāi)發(fā)周期的晚期才能看到程序運(yùn)行的測(cè)試版本,而在這時(shí)發(fā)現(xiàn)大的錯(cuò)誤時(shí),可能引起客戶(hù)的驚慌,而后果也可能是災(zāi)難性的??焖僭湍P蛢?yōu)點(diǎn):使用戶(hù)能夠感受到實(shí)際的系統(tǒng),使開(kāi)發(fā)者能夠快速地構(gòu)造出系統(tǒng)的框架。缺點(diǎn):產(chǎn)品的先天性不足,因?yàn)殚_(kāi)發(fā)者常常需要做實(shí)現(xiàn)上的折中,可能采用不合適的操作系統(tǒng)或程序設(shè)計(jì)語(yǔ)言,以使原型能夠盡快工作。增量模型優(yōu)點(diǎn):(1)人員分配靈活,剛開(kāi)始不用投入大量人力資源,當(dāng)核心產(chǎn)品很受歡迎時(shí),可增加人力實(shí)現(xiàn)下一個(gè)增量.(2)當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑,這樣就可以先發(fā)布部分功能給客戶(hù),對(duì)客戶(hù)起到鎮(zhèn)靜劑的作用.缺點(diǎn):(1)至始至終開(kāi)發(fā)者和客戶(hù)糾纏在一起,直到完全版本出來(lái)。(2)適合于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。該模型具有一定的市場(chǎng)。螺旋模型優(yōu)點(diǎn):對(duì)于大型系統(tǒng)及軟件的開(kāi)發(fā),這種模型是一個(gè)很好的方法。開(kāi)發(fā)者和客戶(hù)能夠較好地對(duì)待和理解每一個(gè)演化級(jí)別上的風(fēng)險(xiǎn).缺點(diǎn):(1)需要相當(dāng)?shù)娘L(fēng)險(xiǎn)分析評(píng)估的專(zhuān)門(mén)技術(shù),且成功依賴(lài)于這種技術(shù)。(2)很明顯一個(gè)大的沒(méi)有被發(fā)現(xiàn)的風(fēng)險(xiǎn)問(wèn)題,將會(huì)導(dǎo)致問(wèn)題的發(fā)生,可能導(dǎo)致演化的方法失去控制。(3)這種模型相對(duì)比較新,應(yīng)用不廣泛,其功效需要進(jìn)一步的驗(yàn)證.該模型適合于大型軟件的開(kāi)發(fā)八、為什么說(shuō)噴泉模型較好的體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程無(wú)縫和迭代的特性?因?yàn)槭褂妹嫦驅(qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件時(shí),各個(gè)階段都使用統(tǒng)一的概念和表示符號(hào),因此,整個(gè)開(kāi)發(fā)過(guò)程都是吻合一致的,或者說(shuō)是無(wú)縫連接的,這自然就很容易實(shí)現(xiàn)各個(gè)開(kāi)發(fā)步驟的反復(fù)多次迭代,達(dá)到認(rèn)識(shí)的逐步深化,而噴泉模型則很好的體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。九、試討論Rational統(tǒng)一過(guò)程的優(yōu)缺點(diǎn)。優(yōu)點(diǎn):提高了團(tuán)隊(duì)生產(chǎn)力,在迭代的開(kāi)發(fā)過(guò)程、需求管理、基于組建的體系結(jié)構(gòu)、可視化軟件建模、驗(yàn)證軟件質(zhì)量及控制軟件變更等方面、針對(duì)所有關(guān)鍵的開(kāi)發(fā)活動(dòng)為每個(gè)開(kāi)發(fā)成員提供了必要的準(zhǔn)則、模版和工具指導(dǎo),并確保全體成員共享相同的知識(shí)基礎(chǔ)。它建立了簡(jiǎn)潔和清晰的過(guò)程結(jié)構(gòu),為開(kāi)發(fā)過(guò)程提供較大的通用性.缺點(diǎn):RUP只是一個(gè)開(kāi)發(fā)過(guò)程,并沒(méi)有涵蓋軟件過(guò)程的全部?jī)?nèi)容,例如它缺少關(guān)于軟件運(yùn)行和支持等方面的內(nèi)容,此外,他沒(méi)有支持多項(xiàng)目的開(kāi)發(fā)結(jié)構(gòu),這在一定程度上降低了在開(kāi)發(fā)組織內(nèi)大范圍實(shí)現(xiàn)重用的可能性.十.Rational統(tǒng)一過(guò)程主要適用于何種項(xiàng)目?大型的需求不斷變化的復(fù)雜軟件系統(tǒng)項(xiàng)目十一。說(shuō)明敏捷過(guò)程的適用范圍適用于商業(yè)競(jìng)爭(zhēng)環(huán)境下對(duì)小型項(xiàng)目提出的有限資源和有限開(kāi)發(fā)時(shí)間的約束十二.說(shuō)明微軟過(guò)程的適用范圍適用于商業(yè)環(huán)境下具有有限資源和有限開(kāi)發(fā)時(shí)間約束的項(xiàng)目的軟件過(guò)程模式第二章1.在軟件開(kāi)發(fā)的早期階段為什么要進(jìn)行可行性研究?應(yīng)該從哪些方面研究目標(biāo)系統(tǒng)的可行性?答:(1)開(kāi)發(fā)一個(gè)軟件時(shí),需要判斷原定的系統(tǒng)模型和目標(biāo)是否現(xiàn)實(shí),系統(tǒng)完成后所能帶來(lái)的效益是否大到值得投資開(kāi)發(fā)這個(gè)系統(tǒng)的程度,如果做不到這些,那么花費(fèi)在這些工程上的任何時(shí)間、人力、軟硬件資源和經(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)確定問(wèn)題是否能夠解決.(2)一般說(shuō)來(lái),至少應(yīng)該從以下三個(gè)方面研究每種解法的可行性:a.技術(shù)可行性。對(duì)要開(kāi)發(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)行開(kāi)發(fā)成本的估算以及了解取得效益的評(píng)估,確定要開(kāi)發(fā)的項(xiàng)目是否值得投資開(kāi)發(fā),這些即為經(jīng)濟(jì)可行性研究的內(nèi)容對(duì)于大多數(shù)系統(tǒng),一般衡量經(jīng)濟(jì)上是否合算,應(yīng)考慮一個(gè)“底線(xiàn)”,經(jīng)濟(jì)可行性研究范圍較廣,包括成本—效益分析,長(zhǎng)期公司經(jīng)營(yíng)策略,開(kāi)發(fā)所需的成本和資源,潛在的市場(chǎng)前景。c.操作可行性.有時(shí)還要研究社會(huì)可行性問(wèn)題,研究要開(kāi)發(fā)的項(xiàng)目是否存在任何侵犯、妨礙等責(zé)任問(wèn)題。社會(huì)可行性所涉及的范圍也比較廣,它包括合同、責(zé)任、侵權(quán)和其他一些技術(shù)人員常常不了解的陷阱等。必要時(shí)還應(yīng)該從法律、社會(huì)效益等更廣泛的方面研究每種解法的可行性。2。為方便儲(chǔ)戶(hù),某銀行擬開(kāi)發(fā)計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)。儲(chǔ)戶(hù)填寫(xiě)的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類(lèi)型、存款日期、利率等信息,并印出存款單給儲(chǔ)戶(hù);如果是取款,系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶(hù).請(qǐng)寫(xiě)出問(wèn)題定義并分析此系統(tǒng)的可行性。數(shù)據(jù)流程圖:取票圖:航空訂票系統(tǒng)技術(shù)在目前是一個(gè)技術(shù)上成熟的系統(tǒng),并且在航空公司內(nèi)部準(zhǔn)備采取有力措施保證資金和人員配置等。因此,分階段開(kāi)發(fā)“航空訂票系統(tǒng)”的構(gòu)想是可行的。為了使航空公司適應(yīng)現(xiàn)代化市場(chǎng)競(jìng)爭(zhēng)的需求,促進(jìn)機(jī)票預(yù)訂管理信息化,不斷滿(mǎn)足旅客預(yù)訂機(jī)票的要求,爭(zhēng)取更好的經(jīng)濟(jì)效益,可立即著手系統(tǒng)的開(kāi)發(fā)與完善。3、為方便旅客,某航空公司擬開(kāi)發(fā)一個(gè)機(jī)票預(yù)定系統(tǒng)。旅行社把預(yù)定機(jī)票的旅客信息(姓名、性別、工作單位、身份證號(hào)碼、旅行時(shí)間、旅行目的地等)輸入進(jìn)入該系統(tǒng),系統(tǒng)為旅客安排航班,印出取票通知和賬單,旅客在飛機(jī)起飛的前一天憑取票通知和賬單交款取票,系統(tǒng)校對(duì)無(wú)誤即印出機(jī)票給旅客.寫(xiě)出問(wèn)題定義并分析系統(tǒng)的可行性.1>目標(biāo):在一個(gè)月內(nèi)建立一個(gè)高效率,無(wú)差錯(cuò)的航空公司機(jī)票預(yù)定系統(tǒng)2>存在的主要問(wèn)題:人工不易管理,手續(xù)繁瑣3>建立新系統(tǒng)①經(jīng)濟(jì)可行性成本效益分析成本估算:打印機(jī)一臺(tái)(2000元)+開(kāi)發(fā)費(fèi)(3500元)=5500元可承擔(dān)效益估算:該系統(tǒng)有很好的社會(huì)效益,提高了航空公司售票效率,方便了旅客,售票方便化,科學(xué)化②技術(shù)可行性經(jīng)過(guò)調(diào)查分析,得到目前航空公司機(jī)票預(yù)定系統(tǒng)流程圖如下:
客戶(hù)開(kāi)購(gòu)票證明
客戶(hù)開(kāi)購(gòu)票證明購(gòu)票證明開(kāi)購(gòu)票發(fā)票發(fā)票收費(fèi)機(jī)票單機(jī)票
客戶(hù)系統(tǒng)管理員系統(tǒng)管理員系統(tǒng)管理員系統(tǒng)管理員航班信息的更新查詢(xún)請(qǐng)求表達(dá)申請(qǐng)機(jī)票核對(duì)事物數(shù)據(jù)庫(kù)產(chǎn)生報(bào)表產(chǎn)生報(bào)表產(chǎn)生報(bào)表產(chǎn)生報(bào)表及賬單服務(wù)終端顯示數(shù)據(jù)客戶(hù)終端顯示數(shù)據(jù)客戶(hù)終端顯示數(shù)據(jù)在客戶(hù)端打印數(shù)據(jù)和賬單目前住院病人主要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士,而且由于不能隨時(shí)觀(guān)察危重病人的病情變化,還可能會(huì)延誤搶救時(shí)機(jī)。某醫(yī)院打算開(kāi)發(fā)一個(gè)以計(jì)算機(jī)為中心的患者監(jiān)護(hù)系統(tǒng),試寫(xiě)出問(wèn)題定義,并且分析開(kāi)發(fā)這個(gè)系統(tǒng)的可行性可行性分析——原系統(tǒng)分析:護(hù)士檢查病患護(hù)士檢查病患救治結(jié)束需要救治開(kāi)始可行性分析-邏輯圖:開(kāi)始開(kāi)始醫(yī)生輸出病患標(biāo)準(zhǔn)數(shù)據(jù)服務(wù)器采集病人生理數(shù)據(jù)對(duì)比大小警報(bào)結(jié)束在預(yù)測(cè)范圍內(nèi)不在預(yù)測(cè)范圍內(nèi)醫(yī)生醫(yī)生病人端客戶(hù)機(jī)D1:標(biāo)準(zhǔn)數(shù)據(jù)服務(wù)器D2:實(shí)測(cè)數(shù)據(jù)D3:警報(bào)數(shù)據(jù)護(hù)士D4:指定打印數(shù)據(jù)技術(shù)可行性;雖然生理數(shù)據(jù)的采集需要涉及大量的專(zhuān)業(yè)精密儀器,軟件工程師并不精通,但是可以在專(zhuān)業(yè)人士的幫助下完成.經(jīng)濟(jì)可行性:支出方面由醫(yī)院方面承擔(dān),是否可行取決于醫(yī)院方面是否能支付所需的費(fèi)用。操作可行性:醫(yī)生并不具有軟件維護(hù)的能力,在數(shù)據(jù)庫(kù)的維護(hù)上需要專(zhuān)業(yè)人士來(lái)進(jìn)行,因?yàn)椴』紨?shù)目并不會(huì)太多,所以只需一個(gè)人或者幾個(gè)人定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和維護(hù)就行了。5北京某高??捎玫碾娫?huà)號(hào)碼有以下幾類(lèi):校內(nèi)電話(huà)號(hào)碼由4位數(shù)字組成,第一位數(shù)字不是0。校外電話(huà)又分為本市電話(huà)和外地電話(huà)兩類(lèi)。撥校外電話(huà)需要先撥0,若是本市電話(huà)則接著撥8位數(shù)字(第一位不是0),若是外地電話(huà)則撥3位區(qū)碼后再撥8位電話(huà)號(hào)碼(第一位不是0)。答:電話(huà)號(hào)碼=[校內(nèi)電話(huà)號(hào)碼|校外電話(huà)號(hào)碼]校內(nèi)電話(huà)號(hào)碼=非零數(shù)字+3位數(shù)字校外電話(huà)號(hào)碼=[本市號(hào)碼|外地號(hào)碼]本市號(hào)碼=數(shù)字零+8位數(shù)字外地號(hào)碼=數(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ù)字=[0|1|2|3|4|5|6|7|8|9]其中,[]意思是或,從校內(nèi)電話(huà)號(hào)碼或校外電話(huà)號(hào)碼中選擇一個(gè);{}表示重復(fù),兩邊的數(shù)字表示重復(fù)次數(shù)的下限和上限;=意思是定義為;+意思是和,連接兩個(gè)分量。第三章(1).為什么要進(jìn)行需求分析?通常對(duì)軟件系統(tǒng)有哪些要求?答:1)為了開(kāi)發(fā)出真正滿(mǎn)足用戶(hù)需求的軟件產(chǎn)品,首先必須知道用戶(hù)的需求。對(duì)軟件需求的深入理解是軟件開(kāi)發(fā)工作獲得成功的前提條件,不論我們把設(shè)計(jì)和編碼工作做得如何出色,不能真正滿(mǎn)足用戶(hù)需求的程序只會(huì)令用戶(hù)失望,給開(kāi)發(fā)者帶來(lái)煩惱。2)確定對(duì)系統(tǒng)的綜合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出錯(cuò)處理需求;5、接口需求;6、約束;7、逆向需求;8、將來(lái)可以提出的要求,分析系統(tǒng)的數(shù)據(jù)要求.(2)怎樣與用戶(hù)有效地溝通以獲取用戶(hù)的真實(shí)需求?答案:
與用戶(hù)溝通獲取需求的方法:訪(fǎng)談;面向數(shù)據(jù)流自頂向下求精;簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù);快速建立軟件原型3銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過(guò)程大致如下:儲(chǔ)戶(hù)填寫(xiě)的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址、身份證號(hào)碼等存款信息,并打印出存款存單給儲(chǔ)戶(hù);如果是取款且存款時(shí)留有密碼,則系統(tǒng)首先核對(duì)儲(chǔ)戶(hù)密碼,若密碼正確或存款時(shí)未留密碼,則系統(tǒng)計(jì)算利息并打印出利息清單給儲(chǔ)戶(hù)。答案:用ER圖描繪系統(tǒng)中的數(shù)據(jù)對(duì)象。
(5)分所析習(xí)題2中第4題的患者監(jiān)獄系統(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)沒(méi)紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿(mǎn)紙后進(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ī)的行為。答案:從問(wèn)題陳述可知,復(fù)印機(jī)的狀態(tài)主要有“閑置”、“復(fù)印”、“缺紙”和“卡紙”。引起狀態(tài)轉(zhuǎn)換的事件主要是“復(fù)印命令”、“完成復(fù)印命令”、“發(fā)現(xiàn)缺紙”、“裝滿(mǎn)紙"、“發(fā)生卡紙故障”和“排除了卡紙故障"。閑置閑置復(fù)印do/復(fù)印缺紙do/警告卡紙do/警告復(fù)印命令完成復(fù)印命令裝滿(mǎn)紙排除了卡紙故障1,舉例說(shuō)明形式化說(shuō)明技術(shù)和欠形式化方法的優(yōu)缺點(diǎn)。答:優(yōu)點(diǎn)缺點(diǎn)形式化說(shuō)明1,簡(jiǎn)潔準(zhǔn)確的描述物理現(xiàn)象,對(duì)象獲動(dòng)作的結(jié)果2,可以在不同軟件工程活動(dòng)之間平滑的過(guò)度。3,它提供了高層確認(rèn)的手段大多形式化的規(guī)格說(shuō)明主要關(guān)注系統(tǒng)的功能和數(shù)據(jù),而時(shí)序的問(wèn)題,控制和行為等方面的需求卻更難于表示非形式化說(shuō)明難度低可能存在矛盾,二義性,含糊性,不完整性級(jí)抽象層次混亂等問(wèn)題以一個(gè)簡(jiǎn)單的俄羅斯方塊游戲系統(tǒng)規(guī)格說(shuō)明為例,用自然語(yǔ)言描述如下:游戲的每個(gè)狀態(tài)對(duì)應(yīng)一個(gè)游戲界面,開(kāi)始狀態(tài)下,但變量cd_start=1是進(jìn)入正常游戲的狀態(tài),cd_start=2時(shí) 進(jìn)入讀取游戲狀態(tài),cd_start=3是進(jìn)入得分榜界面查看。在得分榜界面按任意鍵返回開(kāi)始界面,在讀取游戲界 面,當(dāng)游戲數(shù)據(jù)讀取完成后進(jìn)入正常游戲狀態(tài),正常游戲狀態(tài)下,同時(shí)按下左鍵和右鍵進(jìn)入儲(chǔ)存游戲界面,數(shù) 據(jù)儲(chǔ)存結(jié)束后返回正常游戲狀態(tài),在正常游戲狀態(tài)下,如果變量game_res=0,則游戲結(jié)束,進(jìn)入游戲結(jié)束畫(huà)面。 可見(jiàn),用自然語(yǔ)言書(shū)寫(xiě)的系統(tǒng)規(guī)格說(shuō)明書(shū),羅嗦繁雜,并且可能存在矛盾,二義性,含糊性,不完整性及抽象 層次混亂等問(wèn)題。用有窮狀態(tài)的描述如下:狀態(tài)機(jī)J:{開(kāi)始,正常游戲(游戲進(jìn)行中),得分榜,讀取游戲,儲(chǔ)存游戲,游戲結(jié)束}輸入集K:{按鍵UP,按鍵DOWN,按鍵LEFT,按鍵RIGHT,寄存器變量cd_start,寄存器變量game_res}轉(zhuǎn)換函數(shù)T:如圖4.1所示EEPROM寫(xiě)入完成后LEFT&RIGHTGame_res=0EEPROM讀取完成后Cd_start=1EEPROM寫(xiě)入完成后LEFT&RIGHTGame_res=0EEPROM讀取完成后Cd_start=1Cd_start=2按任意鍵Cd_start=3得分榜游戲結(jié)束開(kāi)始儲(chǔ)存中讀取游戲游戲進(jìn)行中圖4.1游戲狀態(tài)轉(zhuǎn)換圖終態(tài)集F:{游戲結(jié)束}可見(jiàn)用形式化語(yǔ)言描述,更加簡(jiǎn)潔,準(zhǔn)確,無(wú)歧義.2,在什么情況下應(yīng)該使用形式化說(shuō)明技術(shù)?使用形式化說(shuō)明技術(shù)應(yīng)遵守哪些規(guī)則?答:在用非形式化的方式描述時(shí),存在矛盾,二義性,含糊性,不完整性級(jí)抽象層次混亂等問(wèn)題時(shí)用形式化說(shuō)明技術(shù)。應(yīng)用形式化方法的準(zhǔn)則:A,應(yīng)該選用適當(dāng)?shù)谋硎痉椒?;B,應(yīng)該形式化,但不要過(guò)分形式化;C,應(yīng)該估算成本;D,應(yīng)該有形式化的方法顧問(wèn)隨時(shí)提供咨詢(xún);E,不應(yīng)該放棄傳統(tǒng)的開(kāi)發(fā)方式;F,應(yīng)該建立詳盡的文檔;G,不應(yīng)該放棄質(zhì)量標(biāo)準(zhǔn);H,不應(yīng)該盲目依賴(lài)形式化方法;I,應(yīng)該測(cè)試,測(cè)試再測(cè)試;J,應(yīng)該重用.3,一個(gè)浮點(diǎn)二進(jìn)制數(shù)的構(gòu)成是:一個(gè)可選的符號(hào)(+或—),后跟一個(gè)或多個(gè)二進(jìn)制位,再跟上一個(gè)字符E,再加上另一個(gè)可選符號(hào)(+或—)及一個(gè)或多個(gè)二進(jìn)制位。例如,下列的字符串都是浮點(diǎn)二進(jìn)制數(shù):110101E—101—100111E11101+1E0更形式化地,浮點(diǎn)二進(jìn)制數(shù)定義如下:<floatingpointbinary〉∷=[〈sign〉]〈bitstring>E[〈sign〉]〈bitstring〉〈sign〉∷=+|-〈bitstring〉∷=<bit〉[〈bitstring〉]〈bit〉∷=0|1其中,符號(hào)∷=表示定義為;符號(hào)[...]表示可選項(xiàng);符號(hào)a|b表示a或b。假設(shè)有這樣一個(gè)有窮狀態(tài)機(jī):以一串字符為輸入,判斷字符串中是否含有合法的浮點(diǎn)二進(jìn)制數(shù)。試對(duì)這個(gè)有窮狀態(tài)機(jī)進(jìn)行規(guī)格說(shuō)明。4,考慮下述的自動(dòng)化圖書(shū)館流通系統(tǒng):每本書(shū)都有一個(gè)條形碼,每個(gè)人都有一個(gè)帶條形碼的卡片。但一個(gè)借閱人想借一本書(shū)時(shí),圖書(shū)管理員掃描書(shū)上的條形碼和借閱人卡片的條形碼,然后在計(jì)算機(jī)終端上輸入C;當(dāng)歸還一本書(shū)時(shí),圖書(shū)管理員將再次掃描,并輸入R。圖書(shū)管理員可以把一些書(shū)加到(+)圖書(shū)集合中,也可以刪除(—)它們.借閱人可以再終端上查找到某個(gè)作者所有的書(shū)(輸入“A=”和作者名字),或具有指定標(biāo)題的所有書(shū)籍(輸入“T="和標(biāo)題),或?qū)儆谔囟ㄖ黝}范圍內(nèi)的所有圖書(shū)(輸入“S="加主題范圍)。最后,如果借閱人想借的書(shū)已被別人借走,圖書(shū)管理員將給這本書(shū)設(shè)置一個(gè)預(yù)約,以便書(shū)歸還時(shí)把書(shū)留給預(yù)約的借閱人(輸入“H=”加書(shū)號(hào)).試用有窮狀態(tài)機(jī)說(shuō)明上述的圖書(shū)流通系統(tǒng)答:圖書(shū)館流通系統(tǒng)的有窮狀態(tài)機(jī)描述如下:(一)圖書(shū)狀態(tài)的有窮狀態(tài)機(jī)描述狀態(tài)機(jī)J:{書(shū)在圖書(shū)館S1,書(shū)被借出S2,書(shū)被預(yù)約S3}輸入集K:{書(shū)上條形碼,借閱卡條形碼,終端輸入各種命令}轉(zhuǎn)換函數(shù)T:如圖4.4。1所示初始態(tài)S:{書(shū)在圖書(shū)館S1,書(shū)被借出S2}終態(tài)集F:{書(shū)被借出S2,書(shū)被預(yù)約S3}書(shū)歸還,掃描兩個(gè)條形碼,在終端輸入書(shū)歸還,掃描兩個(gè)條形碼,在終端輸入R在終端輸入“H=”加書(shū)號(hào)掃描兩個(gè)條形碼,在終端輸入R掃描兩個(gè)條形碼,在終端輸入C書(shū)在圖書(shū)館S1書(shū)被借出S2書(shū)被預(yù)約S3圖4.1.1(二)圖書(shū)館終端管理員模式的有窮狀態(tài)機(jī)描述狀態(tài)機(jī)J:{管理員設(shè)置狀態(tài),書(shū)入庫(kù),書(shū)出庫(kù)(刪除),預(yù)約}輸入集K:{終端輸入管理員命令,書(shū)的各種狀態(tài)(S1,S2,S3}轉(zhuǎn)換函數(shù)T:如圖4.4.2所示初始態(tài)S:{管理員設(shè)置狀態(tài)}管理員刪除管理員添加管理員設(shè)置狀態(tài)書(shū)入庫(kù)書(shū)出庫(kù)(刪除)預(yù)約書(shū)狀態(tài)為管理員刪除管理員添加管理員設(shè)置狀態(tài)書(shū)入庫(kù)書(shū)出庫(kù)(刪除)預(yù)約書(shū)狀態(tài)為S2&終端輸入“H=”加書(shū)名圖4.4.2(二)圖書(shū)館終端用戶(hù)模式的有窮狀態(tài)機(jī)描述狀態(tài)機(jī)J:{讀者查詢(xún)狀態(tài),查詢(xún)結(jié)果}輸入集K:{終端輸入用戶(hù)查詢(xún)命令,書(shū)的各種狀態(tài)(S1,S2,S3)}轉(zhuǎn)換函數(shù)T:如圖4。4.3所示讀者查詢(xún)狀態(tài)查詢(xún)結(jié)果終端輸入各種查詢(xún)命令圖4.4.3初始態(tài)S讀者查詢(xún)狀態(tài)查詢(xún)結(jié)果終端輸入各種查詢(xún)命令圖4.4.3終態(tài)集F:{查詢(xún)結(jié)果}5,試用Petri網(wǎng)說(shuō)明第四題所述圖書(shū)館中一本書(shū)的循環(huán)過(guò)程,在規(guī)格說(shuō)明中應(yīng)該包括操作H、C及R。答:其中P1表示書(shū)在圖書(shū)館P2表示書(shū)在讀者手上,P3書(shū)被預(yù)約P1P1.P2.P36,試用Z語(yǔ)言對(duì)第四題所描述圖書(shū)館圖書(shū)流通系統(tǒng)做一個(gè)完整的規(guī)格說(shuō)明。答:(這題真的不會(huì)!)BOOK_STATEBook_in,Book_out,Book_reserveBook_in∩Book_out∩Book_reserve=ΦBook_in∪Book_out∪Book_reserve=BOOK_STATE第五章5。1為每種類(lèi)型的模塊耦合舉一個(gè)具體的例子。答:耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。耦合強(qiáng)弱取決于接口的復(fù)雜度,進(jìn)入或訪(fǎng)問(wèn)某一模塊的點(diǎn),以及通過(guò)接口的數(shù)據(jù)。一般模塊之間的可能的連接方式有七種,構(gòu)成耦合的七種類(lèi)型,它們的關(guān)系為:低耦合性高非直接耦合數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內(nèi)容耦合強(qiáng)獨(dú)立性弱下面舉例說(shuō)明以上耦合:非直接耦合:兩個(gè)模塊沒(méi)有直接的關(guān)系(模塊1和模塊2),獨(dú)立性最強(qiáng)
模塊4模塊2模塊3模塊1B.數(shù)據(jù)耦合:即一個(gè)模塊訪(fǎng)問(wèn)另一個(gè)模塊的時(shí)候,彼此之間是通過(guò)數(shù)據(jù)參數(shù)來(lái)交換輸入、輸出信息的,這種耦合為數(shù)據(jù)耦合。這種耦合較為松散,模塊間獨(dú)立性較強(qiáng)。模塊4模塊2模塊3模塊1用戶(hù)情況用戶(hù)情況計(jì)算水電費(fèi)電費(fèi)水費(fèi)計(jì)算電費(fèi)計(jì)算水費(fèi)費(fèi)
金額單價(jià)數(shù)量交房費(fèi)開(kāi)發(fā)票C.特征耦合:即一組模塊通過(guò)參數(shù)傳遞記錄信息,用戶(hù)情況是個(gè)數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此有關(guān),“計(jì)算水費(fèi)”和“計(jì)算電費(fèi)”本沒(méi)有關(guān)系,由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生了依賴(lài)關(guān)系
D??刂岂詈?即如果一個(gè)模塊通過(guò)傳送開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合用戶(hù)情況用戶(hù)情況計(jì)算水電費(fèi)電費(fèi)水費(fèi)計(jì)算電費(fèi)計(jì)算水費(fèi)費(fèi)金額單價(jià)數(shù)量交房費(fèi)開(kāi)發(fā)票A模塊A模塊
BFn…F2F1FlagE。外部耦合:一組模塊都訪(fǎng)問(wèn)同一全局簡(jiǎn)單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過(guò)參數(shù)表傳遞該全局變量的信息,則稱(chēng)之為外部耦合.BFn…F2F1Flag
F使用使用打印機(jī)B模塊A模塊。公共耦合:若一組模塊都訪(fǎng)問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱(chēng)為公共耦合。使用使用打印機(jī)B模塊A模塊
全局?jǐn)?shù)組C模塊B模塊A模塊G。內(nèi)容耦合:如果出現(xiàn)以下情況之一,兩個(gè)模塊就發(fā)生了內(nèi)容耦合全局?jǐn)?shù)組C模塊B模塊A模塊一個(gè)模塊訪(fǎng)問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)。一個(gè)模塊不通過(guò)正常入口兒轉(zhuǎn)到另一個(gè)模塊的內(nèi)部?jī)蓚€(gè)模塊有一部分程序代碼重疊(只可能發(fā)生在匯編程序中)一個(gè)模塊有多個(gè)入口(這意味著一個(gè)模塊有幾種功能)SubAA(…。)……GotoL…EndsubSubBB(..)……L:……Endsub5.2為每種類(lèi)型的模塊內(nèi)聚舉一個(gè)例子答:內(nèi)聚標(biāo)志著一個(gè)模塊內(nèi)各個(gè)元素之間彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴(kuò)展.低內(nèi)聚:偶然內(nèi)聚:如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的.這就叫做偶然內(nèi)聚偶然內(nèi)聚的例子:在模塊T中有A,B,C三條語(yǔ)句,至少?gòu)谋砻嫔峡磥?lái)這三條語(yǔ)句沒(méi)什么聯(lián)系,只是因?yàn)镈,E,F,G中都有這三條語(yǔ)句,為了節(jié)省空間才把這三條語(yǔ)句作為一個(gè)模板放在一起。邏輯內(nèi)聚:如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類(lèi)(例如一個(gè)模塊產(chǎn)生各種類(lèi)型的全部輸出),稱(chēng)為邏輯內(nèi)聚邏輯內(nèi)聚的例子:某一個(gè)模塊將打印,年,月,日,具體打印什么,將由傳入的控制標(biāo)志所決定。時(shí)間內(nèi)聚:一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行(例如,模塊完成各種初始化工作),稱(chēng)為時(shí)間內(nèi)聚時(shí)間內(nèi)聚的例子:將多個(gè)變量的初始化放在同一個(gè)模塊中實(shí)現(xiàn)。中內(nèi)聚:過(guò)程內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,稱(chēng)為過(guò)程內(nèi)聚過(guò)程內(nèi)聚的例子:一個(gè)子程序,將開(kāi)始讀取學(xué)生的學(xué)號(hào),然后是姓名,最后將讀取分?jǐn)?shù),是由于特定的順序而將這些操作組合在一起的通訊內(nèi)聚:如果模塊中所有的元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱(chēng)為通訊內(nèi)聚通訊內(nèi)聚的例子:有一個(gè)子程序,它將打印實(shí)驗(yàn)報(bào)告,并且在完成后重新初始化傳進(jìn)來(lái)的實(shí)驗(yàn)數(shù)據(jù).這個(gè)程序具有通訊內(nèi)聚性。因?yàn)檫@兩個(gè)操作由于使用同一個(gè)數(shù)據(jù)源聯(lián)系在了一起.高內(nèi)聚:順序內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行(通常一個(gè)處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù)),則稱(chēng)為順序內(nèi)聚。順序內(nèi)聚的例子:有一個(gè)子程序,通過(guò)給出的生日,先計(jì)算出年齡。再根據(jù)年齡算出退休的時(shí)間,則這個(gè)程序具有順序內(nèi)聚性.功能內(nèi)聚:如果模塊內(nèi)所有的元素屬于一個(gè)整體完成一個(gè)單一的功能,則成為功能內(nèi)聚.功能內(nèi)聚的例子:一個(gè)程序中所有的操作都是為了算出一個(gè)人的年齡5。3用面向數(shù)據(jù)流的方法設(shè)計(jì)下列系統(tǒng)的軟件結(jié)構(gòu)①儲(chǔ)蓄系統(tǒng)②機(jī)票預(yù)訂系統(tǒng) ③患者監(jiān)護(hù)系統(tǒng)
5.4美國(guó)某大學(xué)有200名教師,校方與教師工會(huì)剛剛簽訂一項(xiàng)協(xié)議。按照協(xié)議,所有年工資超過(guò)$26000(含$26000)的教師工資將保持不變,年工資少于$26000的教師將增加工資,所增加工資數(shù)額按下述方法計(jì)算:給每位教師所贍養(yǎng)的人(包括教師本人)每年補(bǔ)助$100,此外,教師有一年工齡每年再多補(bǔ)助¥50,但是,增加后的年工資總額不能多于$26000。教師工資檔案存儲(chǔ)在行政辦公室的磁帶上,檔案中有目前的年工資、贍養(yǎng)的人數(shù)、雇傭日期等信息。需要寫(xiě)一個(gè)程序計(jì)算并印出每名教師的原工資和調(diào)整后的新工資.要求:(1)畫(huà)出此系統(tǒng)的數(shù)據(jù)流圖;(2)寫(xiě)出需求說(shuō)明;(3)設(shè)計(jì)上述的工資調(diào)整程序(要求用HIPO圖描繪設(shè)計(jì)結(jié)果),設(shè)計(jì)時(shí)分別采用兩種算法,并比較兩種算法的優(yōu)缺點(diǎn):(a)搜索工資檔案數(shù)據(jù),找出年工資少于$26000的人,計(jì)算新工資,校核是否超過(guò)$26000,存儲(chǔ)新工資,印出新舊工資對(duì)照表;(b)把工資檔案數(shù)據(jù)按工資從最低到最高的次序排序,當(dāng)工資數(shù)額超過(guò)$26000時(shí)即停止排序,計(jì)算新工資,校核是否超過(guò)限額,存儲(chǔ)新工資,印出結(jié)果。你所畫(huà)出的數(shù)據(jù)流圖適應(yīng)用那種算法?解:(1)數(shù)據(jù)流圖:
分解后:(2)需求說(shuō)明:1。功能需求:可以輸入調(diào)資的標(biāo)準(zhǔn),輸入教師檔案,經(jīng)調(diào)資給出新的教師檔案,需要存儲(chǔ)檔案2.性能需求:軟件的響應(yīng)時(shí)間應(yīng)小于0。5s,更新處理要快3.靈活需求:當(dāng)需求發(fā)生某些變化時(shí),該軟件應(yīng)該能夠適應(yīng)這些變化4.故障處理要求:出現(xiàn)錯(cuò)誤時(shí),應(yīng)給予警告或提示(3)(a)比較耗時(shí),因?yàn)樗獧z索所有的檔案,(b)從速度上看比較快,但是(b)需要排序算法,比較復(fù)雜,(a)對(duì)于設(shè)計(jì)來(lái)講比較簡(jiǎn)單。(4)畫(huà)出的數(shù)據(jù)流圖比較適合(A)的算法5。5下面將給出兩個(gè)人玩的撲克牌游戲的一種玩法,試設(shè)計(jì)一個(gè)模擬程序,它的基本功能是:
(1)發(fā)兩手牌(利用隨機(jī)數(shù)產(chǎn)生器)。
(2)確定贏者和贏牌的類(lèi)型。
(3)模擬N次游戲,計(jì)算每種類(lèi)型牌贏或平局的概率。要求用HIPO圖描繪設(shè)計(jì)結(jié)果并且畫(huà)出高層控制流程圖。
撲克牌游戲規(guī)則如下:
(1)有兩個(gè)人玩分別為A和B。
(2)一副撲克牌有52張牌,4種花色(黑桃、紅桃、梅花、方塊),每種花色的牌的點(diǎn)數(shù)按升序排列有2,3,4,.。。。。。...,10,J,Q,K,A等13種。
(3)給每個(gè)人發(fā)三張牌,牌面向上,贏者立即可以確定。
(4)最高等級(jí)的一手牌成為同花,即3張牌均為同一種花色,最大的同花是同一種花色的Q,K,A。
(6)第三等級(jí)的牌是同點(diǎn),即點(diǎn)數(shù)相同的三張牌,最大的同點(diǎn)是AAA。
(7)第四等級(jí)的牌是對(duì)子,即3張牌中有兩張點(diǎn)數(shù)相同,最大的對(duì)子是A,A,K.
(8)第五等級(jí)的牌是雜牌,即除去上列4等之外的任何一手牌,最大的雜牌是不同花色的A。K,J。
(9)若兩個(gè)人的牌類(lèi)型不同,則等級(jí)高者勝;若等級(jí)相同,則點(diǎn)數(shù)高者勝;若點(diǎn)數(shù)也相同,則為平局。程序:#include"stdio.h”intrabl(inta,intb,int*r){ intl,k,m,i,p; k=b—a+1; l=2; while(i<=1) { k=k+k+k+k+k; k=k%m; l=k/4+a; if(l〈=b){p=l;i=i+1;} } *r=k; return(p);}intmax(intT[10][10]){ intt=0; if(T[0][0]>T[1][0]) t=T[0][0]; elset=T[1][0]; if(t<T[2][0]) t=T[2][0]; returnt;}intE1(intT[10][10]){ if(T[0][1]==T[1][1]&&T[1][1]==T[2][1]) return1; elsereturn0;}intE2(intT[10][10]){ intq=0; if(((max(T[10][10])-1)==T[0][0]||(max(T[10][10])-1)==T[1][0]||(max(T[10][10]) -1)==T[2][0])&&((max(T[10][10])—2)==T[0][0]||(max(T[10][10])—2)==T[1][0]|| (max(T[10][10])-2)==T[2][0]))//if(q=max(T[][10])) return1; else return0;}intE3(intT[10][10]){ if(T[0][0]==T[1][0]==T[2][0]) return1; elsereturn0;}intE4(intT[10][10]){ if(T[0][0]==T[1][0]&&T[0][0]!=T[2][0]) return1; elseif(T[0][0]==T[2][0]&&T[0][0]!=T[1][0]) return1; elseif(T[1][0]==T[2][0]&&T[1][0]!=T[0][0]) return1; elsereturn0;}voidmain(){ inttimes=0,e1=0,e2=0,e3=0,e4=0,e5=0; intA[10][10],B[10][10]; intr1=2,r2=3; printf(”請(qǐng)輸入游戲的次數(shù)\n"); scanf("%d”,×); for(intj=0;j〈times;j++) { for(inti=0;i〈3;i++) { A[i][0]=rabl(1,13,&r1); A[i][1]=rabl(14,17,&r2); B[i][0]=rabl(1,13,&r1); B[i][1]=rabl(14,17,&r2); } if(E1(A[][10])〉E1(B[][10])){ e1++; printf(”A贏,同花順\n"); } elseif(E1(A[][10])<E1(B[][10])) { e1++; printf("B贏,同花順\n"); } elseif(E1(A[][10])==E1(B[][10])&&E1(B[][10])==1) { e1++; if(max(A[][10])>max(B[][10])) printf(”A贏,同花順\n”); else printf("B贏,同花順\n"); } elseif(E2(A[][10])〉E2(B[][10])) { e2++; printf(”A贏,順子\n"); } elseif(E2(A[][10])〈E2(B[][10])) { e2++; printf(”B贏,順子\n”); } elseif(E2(A[][10])==E2(B[][10])&&E2(B[][10])==1) { e2++; if(max(A[][10])〉max(B[][10])) printf("A贏,順子\n"); else printf(”B贏,順子\n”); } elseif(E3(A[][10])〉E3(B[][10])) { e3++; printf(”A贏,同點(diǎn)\n"); } elseif(E3(A[][10])〈E3(B[][10])) { e3++; printf(”B贏,同點(diǎn)\n”); } elseif(E3(A[][10])==E3(B[][10])&&E3(B[][10])==1) { e3++; if(max(A[][10])>max(B[][10])) printf("A贏,同點(diǎn)\n”); else printf("B贏,同點(diǎn)\n"); } elseif(E4(A[][10])>E4(B[][10])){ e4++; printf("A贏,對(duì)子\n"); } elseif(E4(A[][10])>E4(B[][10])) { e4++; printf(”B贏,對(duì)子\n”); } elseif(E4(A[][10])==E4(B[][10])&&E4(B[][10])==1); { e4++; if(max(A[][10])〉max(B[][10])) printf(”A贏,對(duì)子\n”); else printf("B贏,對(duì)子\n"); } else { if(max(A[][10])>max(B[][10])) printf("A贏,雜牌\n"); else printf(”B贏,雜牌\n”); } } printf("同花順贏牌概率為%d,順子贏牌概率為%d,同點(diǎn)贏牌概率為%d,對(duì)子贏牌概率為%d,雜牌贏牌概率為%d”,e1/times,e2/times,e3/times,e4/times,e5/times);}控制流程圖:。第六章假設(shè)只有SEQUENCE和DO_WHILE兩種控制結(jié)構(gòu),怎么利用它們完成IF_THEN_ELSE操作?解:轉(zhuǎn)化如下:K=1DOWHILE(條件。AND。K。EQ.1) 程序塊1 K=K+1ENDDODOWHILE((。NOT。條件)。AND。K。EQ.1) 程序塊2 K=K+1ENDDO假設(shè)只有SEQUENCE和IF_THEN_ELSE兩種控制結(jié)構(gòu),怎么利用它們完成DO_WHILE操作?解:轉(zhuǎn)化如下;label: IF(條件)THEN 程序塊 GOTOlabel ELSE 程序塊 ENDIF畫(huà)出下列偽代碼程序的流程圖和盒圖:STARTIFpTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP解:流程圖:盒圖:圖6。18給出的程序流程圖代表一個(gè)非結(jié)構(gòu)化的程序,問(wèn):為什么說(shuō)它是非結(jié)構(gòu)化的?設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序。在(2)題的設(shè)計(jì)中使用附加的標(biāo)識(shí)變量flag了嗎?若沒(méi)用,在設(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)化程序。 不使用flag把該程序改造為等價(jià)的結(jié)構(gòu)化程序的方法如圖所示。5、研究下面的偽碼程序:LOOP:SetIto(START+FINISH)/2IFTABLE(I)=ITMEgotoFOUNDIFTABLE(I)<ITMESetSTARTto(I+1)IFTABLE(I)〉TMESetFINSHto(I—1)IF(FINSH—START)〉1gotoLOOPIFTABLE(START)=ITEMgotoFOUNDIFTABLE(FINSH)=ITEMgotoFOUNDSetFLAGto0GotoDONEFOUND:SetFLAGto1DONE:EXIT要求:畫(huà)出流程圖。程序是結(jié)構(gòu)化的嗎?說(shuō)明理由.若此程序是非結(jié)構(gòu)化,設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序并畫(huà)出流程圖.此程序的功能是什么?它完成預(yù)定功能有什么隱含的前提條件嗎?解:(1)該程序流程圖如下:(2)該程序不是結(jié)構(gòu)化的,結(jié)構(gòu)化的程序只有一個(gè)入口和一個(gè)出口,而該程序的流程途中有兩個(gè)出口。(3)等價(jià)的結(jié)構(gòu)化程序的流程圖如下:此程序有二分查找的功能,它完成預(yù)定功能的隱含前提條件是現(xiàn)有序列為從小到大順序排好的有序序列。6.用Ashcroft_Manna技術(shù)可以將非結(jié)構(gòu)化的程序轉(zhuǎn)化為結(jié)構(gòu)化程序,圖6.19是一個(gè)轉(zhuǎn)換的例子。(1)能否從這個(gè)例子總結(jié)出Ashcroft_Manna技術(shù)的一些基本方法?(2)進(jìn)一步簡(jiǎn)化6。19(b)給出的結(jié)構(gòu)化設(shè)計(jì)。開(kāi)始開(kāi)始FTFTccABABTCCCCCCCFTFTCCCCCCCFTFdcdcDCEDCE停止停止開(kāi)始開(kāi)始I=1I=1DOCASE=1DOCASE=1FCCCCCCCFCCCCCCCFCCCCCCCTCCCCCCCTCCCCCCCTCCCCCCCFCCCCCCCFCCCCCCCFCCCCCCCTCCCCCCCTCCCCCCCTCCCCCCCcdecdeCEBDDACEBDDAI=4I=4I=4I=4I=2I=3I=4I=4I=4I=4I=2I=3FCCCCCCCI=4FCCCCCCCI=4TCCCCCCCTCCCCCCC停止停止解:(1)從這個(gè)例子中看出,Ashcroft_Manna技術(shù)的基本方法是,當(dāng)待改造的序含有嵌套的非結(jié)構(gòu)化的IF語(yǔ)句時(shí),改造后的程序中增加DO-CASE語(yǔ)句和DO—UNTIL語(yǔ)句,并增加一個(gè)輔助變量I,I的初始值為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ǔ)句之后,把I賦值為可執(zhí)行的最大標(biāo)號(hào)值加1,而DO—UNTIL循環(huán)的結(jié)束條件就是I等于這個(gè)值。進(jìn)一步簡(jiǎn)化后的結(jié)構(gòu)化程序的流程圖如下所示.某交易所規(guī)定給經(jīng)紀(jì)人的手續(xù)費(fèi)計(jì)算方法如下:總手續(xù)費(fèi)等于基本手續(xù)費(fèi)加上與交易中的每股價(jià)格和股數(shù)有關(guān)的附加手續(xù)費(fèi)。如果交易金額少于1000元,則基本手續(xù)費(fèi)為交易金額的8.4%;如果交易總金額在1000元~10000元之間,則基本手續(xù)費(fèi)為交易金額的5%,再加34元;如果金額超過(guò)10000元,則基本手續(xù)費(fèi)為交易金額的4%加上134元.當(dāng)每股售價(jià)低于14元時(shí),附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的5%,除非買(mǎi)進(jìn)、賣(mài)出的股數(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%.要求:用判定表表示手續(xù)費(fèi)的計(jì)算方法。用判定數(shù)表示手續(xù)費(fèi)的計(jì)算方法。解:令P代表交易的總金額,Q代表每股的售價(jià),n代表交易的股數(shù)。(1)表示手續(xù)費(fèi)計(jì)算方法的判定表如圖所示表示手續(xù)費(fèi)計(jì)算方法的判定樹(shù)8、畫(huà)出下列偽碼程序的流圖,計(jì)算它的環(huán)形復(fù)雜度。你覺(jué)得這個(gè)程序的邏輯有什么問(wèn)題嗎?CEXAMPLELOOP:DOWHILEX>0A=B+1IFA>10THENX=AELSEY=ZENDIFIFY<5THENPRINTX,YELSEIFY=2THENGOTOLOOPELSEC=3ENDIFENDIFG=H+RENDDOIFF〉0THENPRINTGELSEPRINTKENDIFSTOP解:流程圖:環(huán)形復(fù)雜度:V(G)=結(jié)點(diǎn)E-弧數(shù)n+1=17-11+1=7=判斷結(jié)點(diǎn)+1=6+1=7=封閉的區(qū)域數(shù)邏輯有問(wèn)題,當(dāng)Z>0時(shí),容易形成死循環(huán);條件Y<5包含條件Y=2。把統(tǒng)計(jì)空格程序的Jackson圖(圖6。13)該畫(huà)為等價(jià)的程序流程圖和盒圖。開(kāi)始解:流程圖:開(kāi)始文件尾?文件尾?NYNY讀一個(gè)字符讀一個(gè)字符換行,輸出字符串,換行換行,輸出字符串,換行統(tǒng)計(jì)空格數(shù)并輸出統(tǒng)計(jì)空格數(shù)并輸出讀取下一個(gè)字符讀取下一個(gè)字符換行,輸出空格總數(shù)換行,輸出空格總數(shù)結(jié)束結(jié)束盒圖:文件不是文件尾?讀一個(gè)字符串文件不是文件尾?讀一個(gè)字符串換行,輸出字符串,換行統(tǒng)計(jì)空格數(shù)并輸出取下一個(gè)字符串換行,輸出空格數(shù)10、人機(jī)對(duì)話(huà)由操作員信息和系統(tǒng)信息交替組成。假設(shè)一段對(duì)話(huà)總是由操作員信息開(kāi)始以系統(tǒng)信息結(jié)束,用Jackson圖描繪這樣的人機(jī)對(duì)話(huà)過(guò)程.解:系統(tǒng)文件操作員文件系統(tǒng)文件操作員文件操作員記錄*操作員記錄*操作員記錄*操作員記錄*分?jǐn)?shù)姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)姓名學(xué)號(hào)分?jǐn)?shù)姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)姓名學(xué)號(hào)新文件新文件操作員記錄*操作員記錄*專(zhuān)業(yè)班級(jí)分?jǐn)?shù)姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)分?jǐn)?shù)姓名學(xué)號(hào)產(chǎn)生新文件產(chǎn)生新文件產(chǎn)生新紀(jì)錄取系統(tǒng)記錄取操作員文件記錄產(chǎn)生新紀(jì)錄取系統(tǒng)記錄取操作員文件記錄分?jǐn)?shù)專(zhuān)業(yè)班級(jí)專(zhuān)業(yè)班級(jí)姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)姓名分?jǐn)?shù)專(zhuān)業(yè)班級(jí)專(zhuān)業(yè)班級(jí)姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)姓名學(xué)號(hào)姓名學(xué)號(hào)第七章第一題1、下面給出的偽碼中有一個(gè)錯(cuò)誤。請(qǐng)仔細(xì)閱讀這段偽碼,說(shuō)明該偽碼的語(yǔ)法特點(diǎn),找出并改正偽碼中的錯(cuò)誤.字頻統(tǒng)計(jì)程序的偽碼如下:
INITIALIZEtheProgram
READthefirsttextrecord
DOWHILEtherearemorewordsinthetextrecordDOWHILEtherearemorewordsinthetextrecordEXTRACTthenexttextwordSEARCHtheword—tablefortheextractedwordIFtheextractedwordisfoundINCREMENTtheword’soccurrencecountELSEINSERTtheextractedwordintothetableENDIFINCREMENTthewords—processedcountENDDOattheendofthetextrecordREADthenexttextrecord
ENDDOwhenalltextrecordshaveheenread
PRINTthetableandsummaryinformation
TERMINATEtheprogram答:INSERTtheextractedwordintothetable在這個(gè)后面,有沒(méi)有給這個(gè)word的occurrence/count賦值為1
第二題2、研究下面給出的偽碼程序,要求:
(1)畫(huà)出它的程序流程圖。
(2)它是結(jié)構(gòu)化的還是非結(jié)構(gòu)化的?說(shuō)明理由。
(3)若是非結(jié)構(gòu)化的,則
(a)把它改造成僅用3種控制結(jié)構(gòu)的結(jié)構(gòu)化程序;
(b)寫(xiě)出這個(gè)結(jié)構(gòu)化設(shè)計(jì)的偽碼;
(c)用盒圖表示這個(gè)結(jié)構(gòu)化程序.
(4)找出并改正程序邏輯中的錯(cuò)誤。
COMMENT:PROGRAMSEARCHESFORFIRSTNREFERENCESTOATOPICINANINFORMATIONRETRIEVALSYSTEMWITHTTOTALENTRIESINPUTNINPUTKEYWORD(S)FORTOPICI=OMATCH=0DOWHILEI≤TI=I+1IFWORD=KEYWORDTHENMATCH=MATCH+1STOREINBUFFERENDIFMATCH=NTHENGOTOOUTPUTENDENDIFN=0THENPRINT″NOMATCH″
OUTPUT:ELSECALLSUBROUTINETOPRINTBUFFERINFORMATIONEND
第三題3、在第2題的設(shè)計(jì)中若輸入的N值或KEYWORD不合理,會(huì)發(fā)生問(wèn)題。
(1)給出這些變量的不合理值的例子.
(2)將這些不合理值輸入程序會(huì)有什么后果?
(3)怎樣在程序中加入防錯(cuò)措施,以防止出現(xiàn)這些問(wèn)題?答:N=1,KEYWOED=#。答:無(wú)法打印出任何信息。答:加入循環(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ā)生接口問(wèn)題。(2)假設(shè)有一個(gè)由1000行FORTRAN語(yǔ)句構(gòu)成的程序,估計(jì)在對(duì)它進(jìn)行測(cè)試期間將發(fā)現(xiàn)多少個(gè)錯(cuò)誤?為什么?答:月25至100個(gè)錯(cuò)誤,美國(guó)的一些統(tǒng)計(jì)數(shù)字告訴我們通常這個(gè)比值在0。005~0.02之間,也就是說(shuō),測(cè)試之前每1000條指令中大約有5~20個(gè)錯(cuò)誤.假設(shè)測(cè)試之前每1000條指令中有10個(gè)錯(cuò)誤,則估計(jì)對(duì)它進(jìn)行測(cè)試期間將發(fā)現(xiàn)的錯(cuò)誤數(shù)為:5000*10/1000=50.(3)設(shè)計(jì)下列偽碼程序的語(yǔ)句覆蓋和路徑覆蓋測(cè)試用例:STARTINPUT(A,B,C)IFA>5THENX=10ELSEX=1ENDIFIFB〉10THENX=20ELSEX=2ENDIFIFC〉15THENX=30ELSEX=3ENDIFPRINT(X,Y,Z)STOP答:此程序的語(yǔ)句覆蓋用例:①A=5,B=10,C=15;②A=6,B=11,C=16條件覆蓋用例為:①A=5,B=10,C=15;②A=6,B=11,C=16。語(yǔ)句覆蓋測(cè)試用例30302010604020TTT2321111FFF1ZYXCBA321預(yù)期的輸出輸入判定序號(hào)語(yǔ)句覆蓋的含義是,選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)試程序中的每個(gè)語(yǔ)句至少執(zhí)行一次.30302010604020TTT83201014020FTT73021060120TFT632101120FFT53020160401TTF432011401FTF330216011TFF2321111FFF1ZYXCBA321預(yù)期的輸出輸入判定序號(hào)第五題5、某圖書(shū)館有一個(gè)使用CRT終端的信息檢索系統(tǒng),該系統(tǒng)有下列4個(gè)基本檢索命令要求:(1)設(shè)計(jì)測(cè)試數(shù)據(jù)以全面測(cè)試系統(tǒng)的正常操作;(2)設(shè)計(jì)測(cè)試數(shù)據(jù)以測(cè)試系統(tǒng)的非正常操作解:⑴測(cè)試系統(tǒng)正常操作的測(cè)試數(shù)據(jù)①順序執(zhí)行下列3個(gè)命令: b(KEYWORD) s(L) d(N)其中,KEYWORD是正確的關(guān)鍵字;L是執(zhí)行命令b后在屏幕上顯示的約20個(gè)行號(hào)中的一個(gè)(至少應(yīng)該使L分別為第一個(gè)、最后一個(gè)和中央一個(gè)行號(hào));N是執(zhí)行命令s后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使N分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào))。針對(duì)若干個(gè)不同的KEYWORD重復(fù)執(zhí)行上述命令序列.②順序執(zhí)行下列2個(gè)命令: f(NAME) d(N)其中,NAME是已知的作者姓名;N是執(zhí)行命令f后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使N分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào)).針對(duì)若干個(gè)不同的NAME重復(fù)執(zhí)行上述命令序列。⑵測(cè)試系統(tǒng)非正常操作的測(cè)試數(shù)據(jù)①用過(guò)長(zhǎng)的關(guān)鍵字作為命令b的參數(shù):例如,b(reliabilitysoftwareandhardwarecombined)預(yù)期的輸出:系統(tǒng)截短過(guò)長(zhǎng)的關(guān)鍵字,例如,上列命令中的關(guān)鍵字可能性被截短為reliabilitysoftware②用不正確的關(guān)鍵字作為命令b的參數(shù):例如,b(AARDVARK)預(yù)期的輸出:顯示出最接近的匹配結(jié)果,例如,執(zhí)行上列命令后可能顯示1.AARON,JULES(book)③用比執(zhí)行命令b后列出的最大行號(hào)大1的數(shù)作為命令s的參數(shù)預(yù)期的輸出:“命令s的參數(shù)不在行號(hào)列表中”④用數(shù)字和標(biāo)點(diǎn)符號(hào)作為命令b和命令f的參數(shù)預(yù)期的輸出:“參數(shù)類(lèi)型錯(cuò)”⑤用字母字符作為命令s和命令d的參數(shù)預(yù)期的輸出:“參數(shù)類(lèi)型錯(cuò)"⑥用0和負(fù)數(shù)作為命令s和命令d的參數(shù)預(yù)期的輸出:“參數(shù)數(shù)值錯(cuò)”⑦命令順序錯(cuò):例如,沒(méi)執(zhí)行命令b就執(zhí)行命令s,或沒(méi)執(zhí)行命令s就執(zhí)行命令d預(yù)期的輸出:“命令順序錯(cuò)”⑧命令語(yǔ)法錯(cuò):例如,遺漏命令名b、s、d或f;或命令參數(shù)沒(méi)用圓括號(hào)括起來(lái)預(yù)期的輸出:“命令語(yǔ)法錯(cuò)”⑨命令參數(shù)空:例如,b()、s()、d或f()預(yù)期的輸出:系統(tǒng)提供默認(rèn)參數(shù)或給出出錯(cuò)信息⑩使用拼錯(cuò)了的作者姓名作為f的參數(shù)預(yù)期的輸出:“找不到這們作者的著作”第六題6、航空公司A向軟件公司B訂購(gòu)了一個(gè)規(guī)劃飛行路線(xiàn)的程序。假設(shè)你是軟件公司C的軟件工程師,A公司已雇用你所在的公司對(duì)上述程序進(jìn)行驗(yàn)收測(cè)試。任務(wù)是,根據(jù)下述事實(shí)設(shè)計(jì)驗(yàn)收測(cè)試的輸入數(shù)據(jù),解釋你選取這些數(shù)據(jù)的理由。
領(lǐng)航員向程序輸入出發(fā)點(diǎn)和目的地,以及根據(jù)天氣和飛機(jī)型號(hào)而初步確定的飛行高度。程序讀入途中的風(fēng)向風(fēng)力等數(shù)據(jù),并且制定出3套飛行計(jì)劃(高度,速度,方向及途中的5個(gè)位置校核點(diǎn))。所制定的飛行計(jì)劃應(yīng)做到燃料消耗和飛行時(shí)間都最少。
用正常的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)
①向程序輸入常規(guī)的出發(fā)點(diǎn),目的地,飛機(jī)型號(hào),5個(gè)位置校核點(diǎn),高度和速度.
②輸入3~5組出發(fā)點(diǎn)和目的地,重復(fù)執(zhí)行步驟1
③輸入固定的出發(fā)點(diǎn)、目的地、飛機(jī)型號(hào)、5個(gè)位置校核點(diǎn)和高度,分別輸入3~5個(gè)不同的速度,重復(fù)執(zhí)行步驟1
④輸入固定的出發(fā)點(diǎn)、目的地、飛機(jī)型號(hào)、5個(gè)位置校核點(diǎn)和速度,分別輸入3~5個(gè)不同的高度,重復(fù)執(zhí)行步驟1
⑤輸入固定的出發(fā)點(diǎn)、目的地、飛機(jī)型號(hào)、速度和高度,分別輸入3~5組不同的位置校核點(diǎn),重復(fù)執(zhí)行步驟1
⑥輸入固定的出發(fā)點(diǎn)、目的地、5個(gè)位置校核點(diǎn)和高度,分別輸入3~5個(gè)不同的飛機(jī)型號(hào),重復(fù)執(zhí)行步驟1
⑦輸入固定的目的地、5個(gè)位置校核點(diǎn)和高度,分別輸入3~5個(gè)不同的飛機(jī)型號(hào),重復(fù)執(zhí)行步驟1
⑧輸入固定的出發(fā)點(diǎn)、5個(gè)位置校核點(diǎn)和高度,分別輸入3~5個(gè)不同的目的地,重復(fù)執(zhí)行步驟1
(2)用特殊的數(shù)據(jù)值作為測(cè)試數(shù)據(jù)
①分別輸入非常高和非常低的數(shù)據(jù)組合測(cè)試
②用負(fù)數(shù)測(cè)試
③輸入數(shù)字0進(jìn)行測(cè)試
④分別輸入相距非常遠(yuǎn)和非常近的出發(fā)點(diǎn)和目的地測(cè)試ay和size,size小于數(shù)組的大小,并給出需要查找的值,該值在somearray中;
預(yù)期的輸出:返回-1;
⑤首先給出某個(gè)數(shù)組somearray和size,size大于數(shù)組的大小,并給出需要查找的值,該值不在somearray中;
預(yù)期的輸出:返回—1;
⑥首先給出某個(gè)數(shù)組somearray和size,size大于數(shù)組的大小,并給出需要查找的值,該值在somearray中;
預(yù)期的輸出:返回—1;第七題7、嚴(yán)格說(shuō)來(lái),有兩種不同的路徑覆蓋測(cè)試,分別為程序路徑覆蓋和程序圖路徑覆蓋。這兩種測(cè)試可分別稱(chēng)為程序的自然執(zhí)行和強(qiáng),,迫執(zhí)行。所謂自然執(zhí)行是指測(cè)試者(人或計(jì)算機(jī))讀入程序中的條件表達(dá)式,根據(jù)程序變量的當(dāng)前值計(jì)算該條件表達(dá)式的值(真或假),并相應(yīng)地分支。強(qiáng)迫執(zhí)行是在用程序圖作為程序的抽象模型時(shí)產(chǎn)生的一個(gè)人為的概念,它可以簡(jiǎn)化測(cè)試問(wèn)題。強(qiáng)迫執(zhí)行的含義是,一旦遇到條件表達(dá)式,測(cè)試者就強(qiáng)迫程序分兩種情況(條件表達(dá)式的值為真和為假)執(zhí)行。顯然,強(qiáng)迫執(zhí)行將遍歷程序圖的所有路徑,然而由于各個(gè)條件表達(dá)式之間存在相互依賴(lài)的關(guān)系,這些路徑中的某一些在自然執(zhí)行時(shí)可能永遠(yuǎn)也不會(huì)進(jìn)入。為了使強(qiáng)迫執(zhí)行的概念在實(shí)際工作中有用,它簡(jiǎn)化測(cè)試工具的好處應(yīng)該超過(guò)它使用額外的不可能達(dá)到的測(cè)試用例所帶來(lái)的壞處。在絕大多數(shù)情況下,強(qiáng)迫執(zhí)行的測(cè)試數(shù)并不比自然執(zhí)行的測(cè)試數(shù)大很多,此外,對(duì)強(qiáng)迫執(zhí)行的定義實(shí)際上包含了一種技術(shù),能夠縮短在測(cè)試含有循環(huán)的程序時(shí)所需要的運(yùn)行時(shí)間。程序的大部分執(zhí)行時(shí)間通常用于重復(fù)執(zhí)行程序中的DO循環(huán),特別是嵌套的循環(huán)。因此必須發(fā)明一種技術(shù),使得每個(gè)DO循環(huán)只執(zhí)行一遍。這樣做并不會(huì)降低測(cè)試的功效,因?yàn)榻?jīng)驗(yàn)表明第一次或最后一次執(zhí)行循環(huán)時(shí)最容易出錯(cuò).
Laemmel教授提出的自動(dòng)測(cè)試每條路徑的技術(shù)如下:當(dāng)編寫(xiě)程序時(shí)每個(gè)DO循環(huán)應(yīng)該寫(xiě)成一種包含測(cè)試變量T和模式變量M的特殊形式,因此
DOI=1TO38應(yīng)變成DOI=1TOM*38+(1—M)*T可見(jiàn),當(dāng)M=0時(shí)處于測(cè)試模式,而M=1時(shí)處于正常運(yùn)行模式。當(dāng)處于測(cè)試模式時(shí),令T=0則該循環(huán)一次也不執(zhí)行,令T=1則該循環(huán)只執(zhí)行一次。類(lèi)似地應(yīng)該使用模式變量和測(cè)試變量改寫(xiě)IF語(yǔ)句,例如
IFX+Y>0THENZ=XELSEZ=Y應(yīng)變成
IFM*(X+Y)+T〉0THENZ=XELSEZ=Y正常運(yùn)行時(shí)令M=1和T=0,測(cè)試期間令M=0,為測(cè)試THEN部分需令T=+1,測(cè)試ELSE部分則令T=—1。要求:
(1)選取一個(gè)包含循環(huán)和IF語(yǔ)句的程序,用Laemmel技術(shù)修改這個(gè)程序,上機(jī)實(shí)際測(cè)試這個(gè)程序并解釋所得到的結(jié)果。
(2)設(shè)計(jì)一個(gè)程序按照Laemmel技術(shù)自動(dòng)修改待測(cè)試的程序。利用這個(gè)測(cè)試工具修改上一問(wèn)中人工修改的程序,兩次修改得到的結(jié)果一致嗎?
(3)怎樣把Laemmel技術(shù)推廣到包含WHILEDO和REPEATUNTIL語(yǔ)句的程序?
(4)試分析Laemmel技術(shù)的優(yōu)缺點(diǎn)并提出改進(jìn)意見(jiàn).答:if(x+y)〉2A=xElseA=y改為:ifM*(x+y)+T〉2A=xElseA=y結(jié)果一致。答:兩次結(jié)果是一致的答:WHILEDO和IFELSE修改技術(shù)類(lèi)似。答:優(yōu)點(diǎn)是可以使得結(jié)果更為精確。缺點(diǎn)是并不適用所有的程序,有時(shí)會(huì)有程序運(yùn)行變得復(fù)雜。第八題8、對(duì)一個(gè)包含10000條機(jī)器指令的程序進(jìn)行一個(gè)月集成測(cè)試后,總共改正了15個(gè)錯(cuò)誤,此時(shí)MTTF=10h;經(jīng)過(guò)兩個(gè)月測(cè)試后,總共改正了25個(gè)錯(cuò)誤(第二個(gè)月改正了10個(gè)錯(cuò)誤),MTTF=15h。要求:(1)根據(jù)上述數(shù)據(jù)確定MTTF與測(cè)試時(shí)間之間的函數(shù)關(guān)系,畫(huà)出MTTF與測(cè)試時(shí)間τ的關(guān)系曲線(xiàn)。在化這條曲線(xiàn)是做了什么假設(shè)?(2)為做到MTTF=100h,必須進(jìn)行多長(zhǎng)時(shí)間的集成測(cè)試?當(dāng)集成測(cè)試結(jié)束時(shí)總共改正了多少個(gè)錯(cuò)誤,還有多少個(gè)錯(cuò)誤潛伏在程序中?答:(1)MTTF與測(cè)試時(shí)間τ的關(guān)系曲線(xiàn)如下:假設(shè)調(diào)試過(guò)程中沒(méi)有引入新的錯(cuò)誤。(2)根據(jù)估算平均無(wú)故障時(shí)間的公式可得:1/K(Et/10000—100/10000)=101/K(Et/10000-300/10000)=15計(jì)算可得:K=333,Et=45當(dāng)MTTF=100h時(shí),有1/333(45/10000—Ec/10000)=100計(jì)算可得:Ec=42。按前兩個(gè)月測(cè)試改錯(cuò)的進(jìn)度估算,需進(jìn)行3個(gè)月的集成測(cè)試。當(dāng)測(cè)試結(jié)束時(shí),共改正了42個(gè)錯(cuò)誤,還有3個(gè)錯(cuò)誤潛伏在程序中。第九題9.如對(duì)一個(gè)長(zhǎng)度為100000條指令的程序進(jìn)行集成測(cè)試期間記錄下下面的數(shù)據(jù):(a)7月1日:集成測(cè)試開(kāi)始,沒(méi)有發(fā)現(xiàn)錯(cuò)誤。(b)8月2日:總共改正100個(gè)錯(cuò)誤,此時(shí)MTTF=0。4h(c)9月1日:總共改正300個(gè)錯(cuò)誤,此時(shí)MTTF=2h根據(jù)上列數(shù)據(jù)完成下列各題。估計(jì)程序中的錯(cuò)誤總數(shù)。為使MTTF達(dá)到10h,必須測(cè)試和調(diào)試這個(gè)程序多長(zhǎng)時(shí)間?畫(huà)出MTTF和測(cè)試時(shí)間τ之間的函數(shù)關(guān)系曲線(xiàn)。答:(1)根據(jù)估算平均無(wú)故障時(shí)間的公式可得:1/K(Et/100000—100/100000)=0.41/K(Et/100000—300/100000)=2計(jì)算可得:K=1000,Et=350即程序中的錯(cuò)誤總數(shù)為350。(2)當(dāng)MTTF=10h時(shí),有1/K(350/100000—Ec/100000)=10計(jì)算可得:Ec=340。按前兩個(gè)月測(cè)試改錯(cuò)的進(jìn)度估算,還進(jìn)行2個(gè)月的集成測(cè)試.(3)MTTF和測(cè)試時(shí)間τ之間的函數(shù)關(guān)系曲線(xiàn)如下:第十題10、在測(cè)試一個(gè)長(zhǎng)度為24000條指令的程序時(shí),第一個(gè)月由甲、乙兩名測(cè)試員各自獨(dú)立測(cè)試這個(gè)程序。經(jīng)一個(gè)月測(cè)試后,甲發(fā)現(xiàn)并改正20個(gè)錯(cuò)誤,使MTTF達(dá)到10h。與此同時(shí),乙發(fā)現(xiàn)24個(gè)錯(cuò)誤,其中6個(gè)甲也發(fā)現(xiàn)了。以后由甲一個(gè)人繼續(xù)測(cè)試這個(gè)程序.問(wèn):(1)剛開(kāi)始測(cè)試時(shí)程序中總共有多少個(gè)潛在的錯(cuò)誤?(2)為使MTTF達(dá)到60h,必須再改正多少個(gè)錯(cuò)誤?還需多長(zhǎng)測(cè)試時(shí)間?(3)畫(huà)出MTTF與集成測(cè)試時(shí)間τ之間的函數(shù)關(guān)系曲線(xiàn)。答:(1)根據(jù)公式:B0=B2B1/bc,可得:B0=20*24/6=80,即剛開(kāi)始測(cè)試時(shí)程序中總共有80個(gè)錯(cuò)誤。(2)根據(jù)估算平均無(wú)故障時(shí)間的公式可得:1/K(80/24000—20/24000)=101/K(80/24000—Ec/24000)=60計(jì)算可得:K=40,Ec=70即還需要改正50個(gè)錯(cuò)誤。根據(jù)甲的改正進(jìn)度,估計(jì)還需要3個(gè)月。(3)MTTF與集成測(cè)試時(shí)間τ之間的函數(shù)關(guān)系曲線(xiàn)如下:第八章一.答:軟件的可維護(hù)性與哪些因素有關(guān)?在軟件開(kāi)發(fā)過(guò)程中應(yīng)該采取哪些措施來(lái)提高軟件產(chǎn)品的可維護(hù)性?答:(1)、可理解性(2)、可預(yù)測(cè)性(3)、可修改性(4)、可移植性(5)、可重用性在每個(gè)階段結(jié)束前的技術(shù)審查和管理復(fù)查中,應(yīng)該著重對(duì)可維護(hù)性進(jìn)行復(fù)審過(guò)程中,應(yīng)該對(duì)將來(lái)要改進(jìn)的部分和可能要改的部分加以注意指明,應(yīng)該討論軟件的可移植性問(wèn)題,考慮可能影響軟件維護(hù)的系統(tǒng)界面。在設(shè)計(jì)和編碼過(guò)程中應(yīng)該盡量使用可重用的軟件構(gòu)件,每個(gè)測(cè)試步驟都可以暗示在軟件正式交付使用之前,程序中可能需要做預(yù)防性維護(hù)的部分。在完成每項(xiàng)維護(hù)工作之后,都應(yīng)該對(duì)軟件維護(hù)本身仔細(xì)認(rèn)真地復(fù)審。二:答:應(yīng)該選取a和c因?yàn)槲臋n是影響軟件可維護(hù)性的決定因素。因此,文檔甚至比可執(zhí)行的程序代碼更重要,文檔必須和程序代碼同時(shí)維護(hù),只有和程序代碼完全一致才能是真正有價(jià)值的代碼.文檔修改:針對(duì)系統(tǒng)中當(dāng)前正在修改的那些部分文檔建立完整的文檔。代碼重構(gòu):首先用重構(gòu)工具分析源代碼,標(biāo)注出和結(jié)構(gòu)化程序設(shè)計(jì)概念相違背的部分。然后重構(gòu)有問(wèn)題的代碼(此項(xiàng)可以工作可自動(dòng)化進(jìn)行).最后,復(fù)審和測(cè)試生成的重構(gòu)代碼(以保證沒(méi)有引入異常)并更新代碼文檔.三:答:對(duì)儲(chǔ)蓄系統(tǒng):一般大型軟件的維護(hù)成本遠(yuǎn)遠(yuǎn)高于開(kāi)發(fā)成本若干倍,所以在設(shè)計(jì)時(shí)就應(yīng)該考慮到軟件維護(hù)成本,而且在開(kāi)發(fā)過(guò)程中應(yīng)該使用標(biāo)準(zhǔn)的程序設(shè)計(jì)語(yǔ)言和標(biāo)準(zhǔn)的操作系統(tǒng)接口,可以大大提高軟件的可維護(hù)性,也可以減少軟件存在的錯(cuò)誤;對(duì)機(jī)票預(yù)訂系統(tǒng):往往人一多系統(tǒng)癱瘓幾率就大,在開(kāi)發(fā)人員不在場(chǎng)的情況下,很容易出現(xiàn)系統(tǒng)錯(cuò)誤,維護(hù)軟件也是很困難的,也會(huì)給很多人帶來(lái)不便,所以,在設(shè)計(jì)過(guò)程中應(yīng)該嚴(yán)格科學(xué)的管理規(guī)劃還有合理設(shè)計(jì)模塊,是各個(gè)模塊的獨(dú)立性越高,這樣對(duì)軟件的改進(jìn)越方便,也便于快速糾錯(cuò);對(duì)患者監(jiān)護(hù)系統(tǒng):應(yīng)該要考慮它的完善性和預(yù)防性,要能滿(mǎn)足用戶(hù)在使用過(guò)程中的增加和修改工作,還要為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《醫(yī)學(xué)生物化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東金融學(xué)院《農(nóng)業(yè)技術(shù)經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東環(huán)境保護(hù)工程職業(yè)學(xué)院《中學(xué)語(yǔ)文經(jīng)典新詩(shī)解讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東行政職業(yè)學(xué)院《護(hù)理學(xué)基礎(chǔ)實(shí)驗(yàn)(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《大數(shù)據(jù)原理與技術(shù)課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東東軟學(xué)院《儒學(xué)與傳統(tǒng)文化》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東創(chuàng)新科技職業(yè)學(xué)院《軟件工程A》2023-2024學(xué)年第一學(xué)期期末試卷
- 《口腔護(hù)理崗前培訓(xùn)》課件
- 《流程圖的排版規(guī)則》課件
- 公證書(shū) 仲裁文書(shū)
- (銀川市直部門(mén)之間交流)2022事業(yè)單位工作人員調(diào)動(dòng)表
- 七年級(jí)音樂(lè)下冊(cè) 第4單元《北京喜訊到邊寨》課件1 花城版
- 法律與社會(huì)學(xué)習(xí)通章節(jié)答案期末考試題庫(kù)2023年
- 飛行員獻(xiàn)身國(guó)防志愿書(shū)1000字
- 瓷磚采購(gòu)?fù)稑?biāo)方案
- 世界國(guó)家地區(qū)區(qū)域劃分 Excel對(duì)照表 簡(jiǎn)
- 移動(dòng)互聯(lián)網(wǎng)的實(shí)訓(xùn)報(bào)告優(yōu)秀三篇
- 在小學(xué)語(yǔ)文教學(xué)中彰顯人文情懷 人文情懷
- 急性呼吸衰竭的診斷和處理
- SH/T 0356-1996燃料油
- GB/T 36324-2018信息安全技術(shù)工業(yè)控制系統(tǒng)信息安全分級(jí)規(guī)范
評(píng)論
0/150
提交評(píng)論