




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 作業(yè)參考答案 PAGE 47第1章 軟件與軟件工程的概念1.1 舉出你所知道的應(yīng)用軟件的例子。辦公軟件、游戲軟件、財(cái)務(wù)軟件、銀行軟件、人事管理軟件、工資管理軟件、學(xué)籍管理軟件等。1.2 認(rèn)為“軟軟件就是程序序,軟件開(kāi)發(fā)發(fā)就是編程序序。”這種觀觀點(diǎn)是否正確確?為什么?認(rèn)為“軟件就是是程序,軟件件開(kāi)發(fā)就是編編程序?!边@這種觀點(diǎn)是錯(cuò)錯(cuò)誤的。首先,軟件是計(jì)計(jì)算機(jī)系統(tǒng)中中與硬件相互互依存的另一一部分,它是是包括程序,數(shù)數(shù)據(jù)及其相關(guān)關(guān)文檔的完整整集合,程序序只是軟件的組組成部分之一一;其次,在在軟件開(kāi)發(fā)中中,編程只是是軟件開(kāi)發(fā)過(guò)過(guò)程的一個(gè)階階段。1.3 如果將將軟件開(kāi)發(fā)比比作高樓大廈廈的建造,可可
2、以將軟件的的設(shè)計(jì)比作什什么?可以將軟件的設(shè)設(shè)計(jì)比作建筑筑設(shè)計(jì),軟件件設(shè)計(jì)的成果果相當(dāng)于建筑設(shè)設(shè)計(jì)的設(shè)計(jì)圖圖紙。1.4 什么是是軟件危機(jī)?它有哪些典典型表現(xiàn)?為為什么會(huì)出現(xiàn)現(xiàn)軟件危機(jī)?軟件危機(jī):軟件件危機(jī)是指在在計(jì)算機(jī)軟件件的開(kāi)發(fā)和維維護(hù)過(guò)程中所所遇到的一系系列嚴(yán)重問(wèn)題題。典型表現(xiàn):對(duì)軟件開(kāi)發(fā)成本本和進(jìn)度的估估計(jì)常常很不不準(zhǔn)確。用戶(hù)對(duì)“已完成成的”軟件系統(tǒng)不不滿(mǎn)意的現(xiàn)象象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量量往往靠不住住。軟件常常是不可可維護(hù)的。軟件通常沒(méi)有適適當(dāng)?shù)奈臋n資資料。軟件成本在計(jì)算算機(jī)系統(tǒng)總成成本中所占的的比例逐年上上升。軟件開(kāi)發(fā)生產(chǎn)率率提高的速度度,既跟不上上硬件的發(fā)展展速度,也遠(yuǎn)遠(yuǎn)遠(yuǎn)跟不上計(jì)計(jì)
3、算機(jī)應(yīng)用迅迅速普及深入入的趨勢(shì)。 產(chǎn)生軟件危機(jī)的的原因: 除了軟件本本身的特點(diǎn),其其原因主要有有以下幾個(gè)方方面: (1) 缺乏軟軟件開(kāi)發(fā)的經(jīng)經(jīng)驗(yàn)和有關(guān)軟軟件開(kāi)發(fā)數(shù)據(jù)據(jù)的積累,使使得開(kāi)發(fā)工作作計(jì)劃很難制制定。(2) 軟件人人員與用戶(hù)的的交流存在障障礙,使得獲獲取的需求不不充分或存在在錯(cuò)誤。(3) 軟件開(kāi)開(kāi)發(fā)過(guò)程不規(guī)規(guī)范。如,沒(méi)沒(méi)有真正了解解用戶(hù)的需求求就開(kāi)始編程程序。(4) 隨著軟軟件規(guī)模的增增大,其復(fù)雜雜性往往會(huì)呈呈指數(shù)級(jí)升高。需需要很多人分分工協(xié)作,不不僅涉及技術(shù)術(shù)問(wèn)題,更重重要的是必須須有科學(xué)嚴(yán)格格的管理。(5) 缺少有有效的軟件評(píng)評(píng)測(cè)手段,提提交給用戶(hù)的軟件件的質(zhì)量不能完完全保證。1.5
4、 什么是是軟件工程?軟件工程是指導(dǎo)導(dǎo)計(jì)算機(jī)軟件件開(kāi)發(fā)和維護(hù)護(hù)的工程學(xué)科科。采用工程程的概念、原原理、技術(shù)和和方法來(lái)開(kāi)發(fā)發(fā)和維護(hù)軟件件,把經(jīng)過(guò)時(shí)時(shí)間考驗(yàn)而證證明正確的管管理技術(shù)和當(dāng)當(dāng)前能夠得到到的最好的技技術(shù)方法結(jié)合合起來(lái),以經(jīng)經(jīng)濟(jì)地開(kāi)發(fā)出出高質(zhì)量的軟軟件并有效地地維護(hù)它,這這就是軟件工工程。1.6 簡(jiǎn)述軟軟件生存期由由哪些主要的的階段組成,每每一階段的主主要任務(wù)是什什么?問(wèn)題定義與可行行性研究:?jiǎn)枂?wèn)題定義必須須回答的關(guān)鍵鍵問(wèn)題是:“要解決的問(wèn)問(wèn)題是什么”??尚行匝醒芯恳卮鸬牡年P(guān)鍵問(wèn)題是是:“在成本和時(shí)時(shí)間的限制條條件下能否解解決問(wèn)題?是是否值得做?”。需求分析:這個(gè)個(gè)階段的任務(wù)務(wù)仍然不是具具
5、體地解決客客戶(hù)的問(wèn)題,而而是準(zhǔn)確地回回答“目標(biāo)系統(tǒng)必必須做什么”這個(gè)問(wèn)題。軟件設(shè)計(jì):本階階段要回答的的關(guān)鍵問(wèn)題是是“目標(biāo)系統(tǒng)統(tǒng)如何做?”為為此,必須在在設(shè)計(jì)階段中中制定設(shè)計(jì)方方案,把已確確定的各項(xiàng)需需求轉(zhuǎn)換成相相應(yīng)的軟件體體系結(jié)構(gòu)。結(jié)結(jié)構(gòu)中的每一一組成部分都都是意義明確確的構(gòu)件,此此即所謂概要要設(shè)計(jì)。進(jìn)而而具體描述每每個(gè)構(gòu)件所要要完成的工作作,為源程序序編寫(xiě)打下基基礎(chǔ),此即所所謂詳細(xì)設(shè)計(jì)計(jì)。程序編碼和單元元測(cè)試:本階階段要解決的的問(wèn)題是“正正確地實(shí)現(xiàn)已已做的設(shè)計(jì)”,為此,需要選擇合適的編程語(yǔ)言,把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,并對(duì)程序結(jié)構(gòu)中的各個(gè)模塊進(jìn)行單元測(cè)試,然后運(yùn)用調(diào)試的手段排
6、除測(cè)試中發(fā)現(xiàn)的錯(cuò)誤。要求編寫(xiě)出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的。集成測(cè)試和系統(tǒng)統(tǒng)測(cè)試:集成測(cè)測(cè)試的任務(wù)是是將已測(cè)試過(guò)過(guò)的模塊按設(shè)設(shè)計(jì)規(guī)定的順順序組裝起來(lái)來(lái),在組裝的的過(guò)程中檢查查程序連接的的問(wèn)題。系統(tǒng)統(tǒng)測(cè)試的任務(wù)務(wù)是根據(jù)需求求規(guī)格說(shuō)明的的要求,對(duì)必必須實(shí)現(xiàn)的各各項(xiàng)需求,逐逐項(xiàng)進(jìn)行確認(rèn)認(rèn),判定已開(kāi)開(kāi)發(fā)的軟件是是否符合用戶(hù)戶(hù)需求,能否否交付用戶(hù)使使用。為了更更有效地發(fā)現(xiàn)現(xiàn)系統(tǒng)中的問(wèn)問(wèn)題,通常這這個(gè)階段的工工作由開(kāi)發(fā)人人員、用戶(hù)之之外的第三者者承擔(dān)。運(yùn)行維護(hù):已交交付的軟件投投入正式使用用,便進(jìn)入運(yùn)運(yùn)行維護(hù)階段。這這一階段可能能持續(xù)若干年年。軟件在運(yùn)運(yùn)行中可能由由于多方面的的原因,
7、需要要對(duì)它進(jìn)行維維護(hù)。通常有有四種類(lèi)型的的維護(hù):改正正性維護(hù)、適適應(yīng)性維護(hù)、完完善性維護(hù)和和預(yù)防性維護(hù)護(hù)。1.7 常見(jiàn)的的軟件生存期期模型主要有有哪些?每種種模型的優(yōu)缺缺點(diǎn)是什么?常見(jiàn)的軟件生存存期模型主要要有瀑布模型型、快速原型型模型、增量量模型、螺旋旋模型、噴泉泉模型和統(tǒng)一一過(guò)程。瀑布模型優(yōu)點(diǎn):可強(qiáng)迫開(kāi)開(kāi)發(fā)人員采用用規(guī)范化的方方法;嚴(yán)格地地規(guī)定了每個(gè)個(gè)階段必須提提交的文檔;要求每個(gè)階階段交出的所所有產(chǎn)品都必必須經(jīng)過(guò)質(zhì)量量保證小組的的仔細(xì)驗(yàn)證。缺點(diǎn):由于瀑布布模型幾乎完完全依賴(lài)于書(shū)書(shū)面的規(guī)格說(shuō)說(shuō)明,很可能能導(dǎo)致最終開(kāi)開(kāi)發(fā)出的軟件件產(chǎn)品不能真真正滿(mǎn)足用戶(hù)戶(hù)的需要;用用戶(hù)往往需要要等待很長(zhǎng)時(shí)時(shí)間
8、才能看到到可以運(yùn)行的的程序;適應(yīng)應(yīng)需求變更的的能力比較差差。適用范圍:瀑布布模型只適用用于項(xiàng)目開(kāi)始始時(shí)需求已確定定的情況。 (2) 快速原原型模型優(yōu)點(diǎn):有助于滿(mǎn)滿(mǎn)足用戶(hù)的真真實(shí)需求;原原型系統(tǒng)已經(jīng)經(jīng)通過(guò)與用戶(hù)戶(hù)的交互而得得到驗(yàn)證,據(jù)據(jù)此產(chǎn)生的規(guī)規(guī)格說(shuō)明文檔檔能夠正確地地描述用戶(hù)需需求。缺點(diǎn):要求開(kāi)發(fā)發(fā)人員快速建建立原型。適用范圍:適用用于需求不明明確的軟件項(xiàng)項(xiàng)目。(3) 增量模模型優(yōu)點(diǎn): 能在較短時(shí)間內(nèi)內(nèi)向用戶(hù)提交交可完成一些些基本功能的的產(chǎn)品,即從從第一個(gè)構(gòu)件件交付之日起起,用戶(hù)就能能做一些有用用的工作。逐步增加產(chǎn)品的的功能可以使使用戶(hù)有較充充裕的時(shí)間學(xué)學(xué)習(xí)和適應(yīng)新新產(chǎn)品,從而而減少一個(gè)全全
9、新的軟件可可能給用戶(hù)組組織帶來(lái)的沖沖擊。項(xiàng)目失敗的風(fēng)險(xiǎn)險(xiǎn)較低,雖然然在某些增量量構(gòu)件中可能能遇到一些問(wèn)問(wèn)題,但其他他增量構(gòu)件將將能夠成功地地交付給客戶(hù)戶(hù)。優(yōu)先級(jí)最高的服服務(wù)首先交付付,然后再將將其他增量構(gòu)構(gòu)件逐次集成成進(jìn)來(lái)。因此此,最重要的的系統(tǒng)服務(wù)將將接受最多的的測(cè)試。缺點(diǎn):在把每個(gè)新的增增量構(gòu)件集成成到現(xiàn)有軟件件體系結(jié)構(gòu)中中時(shí),必須不不破壞原來(lái)已已經(jīng)開(kāi)發(fā)出的的產(chǎn)品。軟件體系結(jié)構(gòu)必必須是開(kāi)放的的,即向現(xiàn)有有產(chǎn)品中加入入新構(gòu)件的過(guò)過(guò)程必須簡(jiǎn)單單、方便。適用范圍:適用用于工期緊張張、功能可以以劃分、比較較復(fù)雜的軟件件項(xiàng)目。軟件件工程師必須須有較高的技技術(shù)水平,能能夠設(shè)計(jì)出開(kāi)開(kāi)放的軟件體體系結(jié)構(gòu)。
10、(4) 螺旋模模型優(yōu)點(diǎn): 對(duì)可選方案和約約束條件的強(qiáng)強(qiáng)調(diào)有利于已已有軟件的重重用,也有助助于把軟件質(zhì)質(zhì)量作為軟件件開(kāi)發(fā)的一個(gè)個(gè)重要目標(biāo);減少了過(guò)多測(cè)試試或測(cè)試不足足所帶來(lái)的風(fēng)風(fēng)險(xiǎn);在螺旋模型中維維護(hù)只是模型型的另一個(gè)周周期,在維護(hù)護(hù)和開(kāi)發(fā)之間間并沒(méi)有本質(zhì)質(zhì)區(qū)別。缺點(diǎn):螺旋模型型是風(fēng)險(xiǎn)驅(qū)動(dòng)動(dòng)的,因此要要求軟件開(kāi)發(fā)發(fā)人員必須具具有豐富的風(fēng)風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)驗(yàn)和這方面的的專(zhuān)門(mén)知識(shí),否否則將出現(xiàn)真真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際際上正在走向向?yàn)?zāi)難時(shí),開(kāi)開(kāi)發(fā)人員可能能還以為一切切正常。 適用范圍:適用用于內(nèi)部開(kāi)發(fā)發(fā)的大型軟件件(開(kāi)發(fā)周期期長(zhǎng)、比較容容易受到社會(huì)會(huì)因素影響的的軟件項(xiàng)目),軟軟件開(kāi)發(fā)人員員具有豐富的的風(fēng)險(xiǎn)評(píng)
11、估知知識(shí)和經(jīng)驗(yàn)。(5) 噴泉模模型優(yōu)點(diǎn):在開(kāi)發(fā)過(guò)過(guò)程中使用統(tǒng)統(tǒng)一的概念和和方法,各階階段之間沒(méi)有有明顯的界限限,容易實(shí)現(xiàn)現(xiàn)各個(gè)開(kāi)發(fā)過(guò)過(guò)程的多次反反復(fù)迭代,達(dá)達(dá)到了認(rèn)識(shí)的的逐步深化,降降低了出錯(cuò)的的可能性。缺點(diǎn):由于各個(gè)個(gè)階段之間的的界線不明確確,容易造成成軟件開(kāi)發(fā)過(guò)過(guò)程的無(wú)序。適用范圍:適用用于面向?qū)ο笙蟮能浖_(kāi)發(fā)發(fā)。 (6) 統(tǒng)一過(guò)過(guò)程優(yōu)點(diǎn):提高了團(tuán)團(tuán)隊(duì)生產(chǎn)力,在在迭代的開(kāi)發(fā)發(fā)過(guò)程、需求求管理、基于于組件的體系系結(jié)構(gòu)、可視視化軟件建模模、驗(yàn)證軟件件質(zhì)量及控制制軟件變更等等方面,針對(duì)對(duì)所有關(guān)鍵的的開(kāi)發(fā)活動(dòng)為為每個(gè)開(kāi)發(fā)成成員提供了必必要的準(zhǔn)則、模模板和工具指指導(dǎo),并確保保全體成員共共享相同的知知
12、識(shí)基礎(chǔ)。它它建立了簡(jiǎn)潔潔和清晰的過(guò)過(guò)程結(jié)構(gòu),為為開(kāi)發(fā)過(guò)程提提供了較大的通用用性。缺點(diǎn):RUP只只是一個(gè)開(kāi)發(fā)發(fā)過(guò)程,并沒(méi)沒(méi)有涵蓋軟件件過(guò)程的全部部?jī)?nèi)容,例如如它缺少關(guān)于于軟件運(yùn)行和和支持等方面面的內(nèi)容;此此外,它沒(méi)有有支持多項(xiàng)目目的開(kāi)發(fā)結(jié)構(gòu)構(gòu),這在一定定程度上降低低了在開(kāi)發(fā)組組織內(nèi)大范圍圍實(shí)現(xiàn)重用的的可能性。適用范圍:適用用于基于構(gòu)件件的軟件開(kāi)發(fā)發(fā)。第2章 軟件工工程方法與工工具2.1 軟件工工程的三種基基本要素是什什么,各自的的作用是什么么?軟件工程的三種種基本要素是方法、工具具和過(guò)程。(1) 軟件工工程方法(mmethodd)為建造軟軟件提供技術(shù)術(shù)上的解決方方法(“如何何做”)。目目前使用得
13、最最廣泛的方法法是傳統(tǒng)方法法(結(jié)構(gòu)化方方法)和面向向?qū)ο蠓椒ā?2) 工具為為方法的運(yùn)用用提供自動(dòng)的的或半自動(dòng)的的軟件支撐環(huán)環(huán)境。(3) 過(guò)程是是為了獲得高高質(zhì)量的軟件件所需要完成成的一系列任任務(wù)的框架,它它規(guī)定了完成成各項(xiàng)任務(wù)的的工作步驟。2.2 簡(jiǎn)述傳傳統(tǒng)方法和面面向?qū)ο蠓椒ǚǖ奶攸c(diǎn)。(1) 傳統(tǒng)方方法的特點(diǎn)傳統(tǒng)方法也稱(chēng)為為生命周期方方法或結(jié)構(gòu)化化范型。它采用用結(jié)構(gòu)化技術(shù)術(shù)來(lái)完成軟件件開(kāi)發(fā)的各項(xiàng)項(xiàng)任務(wù)。這種種方法學(xué)把軟軟件生命周期期的全過(guò)程依依次劃分為若若干個(gè)階段,然然后順序地逐逐步完成每個(gè)個(gè)階段的任務(wù)務(wù)。每一個(gè)階階段的開(kāi)始和和結(jié)束都有嚴(yán)嚴(yán)格的標(biāo)準(zhǔn),對(duì)對(duì)于任何兩個(gè)個(gè)相鄰的階段段而言,前一一
14、個(gè)階段的結(jié)結(jié)束標(biāo)準(zhǔn)就是是后一階段的的開(kāi)始標(biāo)準(zhǔn)。 傳統(tǒng)方法的主要要缺點(diǎn)是在適適應(yīng)需求變化化方面不夠靈靈活,另外,結(jié)構(gòu)化方法要么面向行為,要么面向數(shù)據(jù),缺乏使兩者有機(jī)結(jié)合的機(jī)制。(2)面向?qū)ο笙蠓椒ǖ奶攸c(diǎn)點(diǎn)面向?qū)ο蠓椒ò寻褦?shù)據(jù)和行為為看成同等重重要,是將數(shù)據(jù)和和對(duì)數(shù)據(jù)的操操作緊密地結(jié)結(jié)合起來(lái)的方方法,這也是是面向?qū)ο蠓椒椒ㄅc傳統(tǒng)方方法的重要區(qū)區(qū)別。面向?qū)ο蠓椒ǖ牡某霭l(fā)點(diǎn)和基基本原則,是是盡量模擬人人類(lèi)習(xí)慣的思思維方式,使使開(kāi)發(fā)軟件的的方法和過(guò)程程盡可能接近近人類(lèi)認(rèn)識(shí)問(wèn)問(wèn)題和解決問(wèn)問(wèn)題的方法與與過(guò)程,從而而使描述問(wèn)題題的問(wèn)題空間間與其解空間間在結(jié)構(gòu)上盡盡可能一致。對(duì)于大型、復(fù)雜及交互性比較強(qiáng)的系統(tǒng),
15、使用面向?qū)ο蠓椒ǜ袃?yōu)勢(shì)。2.3 形式化化方法的特點(diǎn)點(diǎn)是什么?形式化方法的主主要特點(diǎn)是:(1) 軟件需需求規(guī)格說(shuō)明明被細(xì)化為用用數(shù)學(xué)記號(hào)表表達(dá)的詳細(xì)的的形式化規(guī)格格說(shuō)明;(2) 設(shè)計(jì)、實(shí)實(shí)現(xiàn)和單元測(cè)測(cè)試等開(kāi)發(fā)過(guò)過(guò)程由一個(gè)變變換開(kāi)發(fā)過(guò)程程代替。通過(guò)過(guò)一系列變換換將形式的規(guī)格格說(shuō)明細(xì)化成成為程序。 2.5 安裝RRationnal Roose20000/20002/20003,并練習(xí)習(xí)基本操作。略。第3章 軟件需需求獲取與結(jié)結(jié)構(gòu)化分析方方法3.1 為什么么結(jié)構(gòu)化分析析要叫“結(jié)構(gòu)構(gòu)化”?有其其他可替代的的術(shù)語(yǔ)嗎?“結(jié)構(gòu)化”一詞詞應(yīng)來(lái)源于“結(jié)結(jié)構(gòu)化程序設(shè)設(shè)計(jì)”,先有有“結(jié)構(gòu)化程程序設(shè)計(jì)”的的思想,后有
16、有結(jié)構(gòu)化設(shè)計(jì)計(jì)及結(jié)構(gòu)化分分析。有時(shí)稱(chēng)稱(chēng)傳統(tǒng)的分析析方法,指的的就是結(jié)構(gòu)化化分析方法。3.2頂層數(shù)據(jù)據(jù)流圖或稱(chēng)環(huán)環(huán)境圖的作用用是什么?頂層數(shù)據(jù)流圖(或稱(chēng)環(huán)境圖)僅包括一個(gè)數(shù)據(jù)處理過(guò)程,也就是要開(kāi)發(fā)的目標(biāo)系統(tǒng)。其作用如下:(1) 確定系系統(tǒng)在其環(huán)境境中的位置,與系統(tǒng)有聯(lián)系的外部實(shí)體(包括硬件、軟件、組織機(jī)構(gòu)及人)有哪些。(2) 通過(guò)確確定系統(tǒng)的輸輸入和輸出與與外部實(shí)體的的關(guān)系確定系系統(tǒng)的邊界,也就是是要確定哪些些功能或處理理屬于系統(tǒng)范范圍之內(nèi),哪哪些屬于系統(tǒng)統(tǒng)范圍之外,需需要由其他系系統(tǒng)處理或人人工處理。3.3 在對(duì)數(shù)數(shù)據(jù)流圖進(jìn)行行分解時(shí)需要要注意哪些問(wèn)問(wèn)題?在對(duì)數(shù)據(jù)流圖進(jìn)進(jìn)行分解時(shí),需需要注意以
17、下下兩個(gè)問(wèn)題:(1) 當(dāng)對(duì)數(shù)數(shù)據(jù)流圖分層層細(xì)化時(shí)必須須保持信息連連續(xù)性,也就就是說(shuō),當(dāng)把把一個(gè)處理分分解為一系列列處理時(shí),分分解前和分解解后的輸入/輸出數(shù)據(jù)流必必須相同。(2) 注意分分層細(xì)化時(shí)對(duì)對(duì)編號(hào)的處理理方法。3.4 銀行存存款業(yè)務(wù)如下下:客戶(hù)到銀銀行柜臺(tái)存款款時(shí),首先填填寫(xiě)存款單(包包括帳號(hào)、姓名、存存款金額、存存款類(lèi)型),如如果還沒(méi)有開(kāi)開(kāi)戶(hù),則需要要先開(kāi)戶(hù),填填寫(xiě)開(kāi)戶(hù)單(包包括姓名、身身份證號(hào)、地地址、電話(huà)、是是否留密碼)。填填寫(xiě)完存款單單或開(kāi)戶(hù)單后后,交給營(yíng)業(yè)業(yè)員,營(yíng)業(yè)員員將存款單或或開(kāi)戶(hù)單信息息輸入計(jì)算機(jī)機(jī),系統(tǒng)記錄錄開(kāi)戶(hù)信息或或存款單信息息,如果是開(kāi)開(kāi)戶(hù)并選擇留留密碼,則需需要
18、客戶(hù)輸入入密碼。最后后印出開(kāi)戶(hù)單單或存款單給用戶(hù)。請(qǐng)請(qǐng)畫(huà)出銀行存存款業(yè)務(wù)的分分層數(shù)據(jù)流圖圖(至少畫(huà)出出兩層)。(1) 識(shí)別外外部實(shí)體及輸輸入輸出數(shù)據(jù)據(jù)流 外部實(shí)體:儲(chǔ)戶(hù)戶(hù)、業(yè)務(wù)員。輸入數(shù)據(jù)流:存存款單,開(kāi)戶(hù)戶(hù)單,密碼??煽梢詫⒋婵顔螁魏烷_(kāi)戶(hù)單抽抽象為事務(wù)。輸出數(shù)據(jù)流:存存款單,開(kāi)戶(hù)戶(hù)單。(2) 頂層數(shù)數(shù)據(jù)流圖(3) 一層數(shù)數(shù)據(jù)流圖對(duì)銀行儲(chǔ)蓄系統(tǒng)統(tǒng)進(jìn)行分解,從從大的方面分分解為接收事事務(wù)、處理開(kāi)開(kāi)戶(hù)、處理存存款三部分,得得到一層數(shù)據(jù)據(jù)流圖。 (4) 二層數(shù)數(shù)據(jù)流圖對(duì) “處理存款款”及“處理開(kāi)戶(hù)”進(jìn)行進(jìn)一步步分解,得到到二層數(shù)據(jù)流流圖,即處理理存款的數(shù)據(jù)據(jù)流圖和處理理開(kāi)戶(hù)的數(shù)據(jù)據(jù)流圖。 處理存款的
19、數(shù)據(jù)據(jù)流圖處理開(kāi)戶(hù)的數(shù)據(jù)據(jù)流圖3.5 按照以以下描述,畫(huà)畫(huà)出ER圖。一本教材由許多多章組成,每每一章包含許許多節(jié)、小結(jié)結(jié)和習(xí)題組成成,章和節(jié)都都具有標(biāo)題和和序號(hào)屬性。ER圖如下:教材教材章節(jié)小結(jié)習(xí)題序號(hào)標(biāo)題序號(hào)標(biāo)題第4章 結(jié)構(gòu)化化設(shè)計(jì)方法4.1 當(dāng)你“編編寫(xiě)”程序時(shí)時(shí)你設(shè)計(jì)軟件件嗎?軟件設(shè)設(shè)計(jì)和編碼有有什么不同嗎嗎?在“編寫(xiě)”程序序時(shí)并沒(méi)有設(shè)設(shè)計(jì)軟件。軟軟件設(shè)計(jì)包括括概要設(shè)計(jì)和和詳細(xì)設(shè)計(jì),編編碼是將詳細(xì)細(xì)設(shè)計(jì)中的過(guò)過(guò)程描述轉(zhuǎn)換換成用程序設(shè)設(shè)計(jì)語(yǔ)言來(lái)描描述。4.4 是否存存在一種情況況:復(fù)雜問(wèn)題題需要較少的的工作去解決決?這樣的情情況對(duì)模塊化化觀點(diǎn)有什么么影響?通過(guò)對(duì)復(fù)雜的問(wèn)問(wèn)題進(jìn)行合理理分解,
20、分解解為若干個(gè)相相對(duì)簡(jiǎn)單及獨(dú)獨(dú)立的子問(wèn)題題,就可以用用較少的工作作去解決。這這種情況能夠夠較好地支持持模塊化的觀觀點(diǎn),每個(gè)子子問(wèn)題用單獨(dú)獨(dú)的模塊去解解決,模塊之之間應(yīng)該是高高內(nèi)聚、低耦耦合的,這樣樣才能減少工工作量,否則則,雖然每個(gè)個(gè)模塊的工作作簡(jiǎn)單了,但但模塊之間的的聯(lián)系很復(fù)雜雜,也增加了了問(wèn)題解決的的難度和工作作量。4.8 用面向向數(shù)據(jù)流的方方法設(shè)計(jì)第33章習(xí)題3.44所描述的銀銀行存款業(yè)務(wù)務(wù)的軟件結(jié)構(gòu)構(gòu),并使用改改進(jìn)方法對(duì)模模塊結(jié)構(gòu)進(jìn)行行精化。(1) 對(duì)第33章習(xí)題3.44給出的數(shù)據(jù)據(jù)流圖進(jìn)行精精化,確定其其邊界,如下下圖所示。(2) 對(duì)上圖圖按事務(wù)型數(shù)數(shù)據(jù)流進(jìn)行處處理,完成第第一級(jí)分解
21、,得得到頂層和一一層模塊結(jié)構(gòu)構(gòu)圖。存款業(yè)務(wù)存款業(yè)務(wù)輸入數(shù)據(jù)調(diào)度輸出數(shù)據(jù)第一級(jí)分解后的的結(jié)構(gòu)圖(3) 完成第第二級(jí)分解。對(duì)對(duì)上圖所示的“輸輸入數(shù)據(jù)”、“輸輸出數(shù)據(jù)”和和“調(diào)度”模模塊進(jìn)行分解解,得到未經(jīng)經(jīng)精化的輸入入結(jié)構(gòu)、輸出出結(jié)構(gòu)和事務(wù)務(wù)結(jié)構(gòu)。輸入數(shù)據(jù)輸入數(shù)據(jù)輸入事務(wù)輸入密碼未經(jīng)精化的輸入入結(jié)構(gòu)輸出數(shù)據(jù)輸出數(shù)據(jù)打印存款單打印開(kāi)戶(hù)單 未經(jīng)精化的輸輸出結(jié)構(gòu)調(diào)度調(diào)度處理存款處理開(kāi)戶(hù)記錄存款信息記錄開(kāi)戶(hù)信息記錄密碼未經(jīng)精化的事務(wù)務(wù)結(jié)構(gòu)將上面的三部分分合在一起,得得到初始的軟軟件結(jié)構(gòu),如如下圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入數(shù)據(jù)調(diào)度輸出數(shù)據(jù)輸入事務(wù)輸入密碼打印存款單打印開(kāi)戶(hù)單處理存款處理開(kāi)戶(hù)記錄存款信息記錄開(kāi)
22、戶(hù)信息記錄密碼初始軟件結(jié)構(gòu)圖圖(4) 對(duì)軟件件結(jié)構(gòu)進(jìn)行精精化。1) 由于調(diào)度度模塊下只有有兩種事務(wù),因因此,可以將將調(diào)度模塊合合并到上級(jí)模模塊中,如圖圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入數(shù)據(jù)輸出數(shù)據(jù)輸入事務(wù)輸入密碼打印存款單打印開(kāi)戶(hù)單處理存款處理開(kāi)戶(hù)記錄存款信息記錄開(kāi)戶(hù)信息記錄密碼將調(diào)度模塊合并并到上級(jí)模塊塊后的軟件結(jié)結(jié)構(gòu)2) “記錄密密碼”模塊的的作用范圍不不在其控制范范圍之內(nèi)(即即“輸入密碼碼”模塊不在在“記錄密碼”模模塊的控制范范圍之內(nèi)),需需對(duì)其進(jìn)行調(diào)調(diào)整,如圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入事務(wù)輸出數(shù)據(jù)輸入密碼打印存款單打印開(kāi)戶(hù)單處理存款處理開(kāi)戶(hù)記錄存款信息記錄開(kāi)戶(hù)信息記錄密碼 3) 提高模塊獨(dú)獨(dú)
23、立性,對(duì)模模塊結(jié)構(gòu)進(jìn)行行調(diào)整,如下下圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入事務(wù)輸入密碼打印存款單打印開(kāi)戶(hù)單處理存款處理開(kāi)戶(hù)記錄存款信息記錄開(kāi)戶(hù)信息記錄密碼調(diào)整后的模塊結(jié)結(jié)構(gòu)圖4.9 將大的的軟件劃分成成模塊有什么么好處?是不不是模塊劃分分得越小越好好?劃分模塊塊的依據(jù)是什什么?將大的軟件劃分分成獨(dú)立命名名且可獨(dú)立訪訪問(wèn)的模塊,不不同的模塊通通常具有不同同的功能或職職責(zé)。這種方方法有利于將將復(fù)雜的問(wèn)題題簡(jiǎn)單化,是是分而治之策策略的具體表表現(xiàn)。盡管模塊分解可可以簡(jiǎn)化要解解決的問(wèn)題,但但模塊分解并并不是越小越越好。當(dāng)模塊塊數(shù)目增加時(shí)時(shí),每個(gè)模塊塊的規(guī)模將減減小,開(kāi)發(fā)單單個(gè)模塊的成成本確實(shí)減少少了;但是,隨隨著
24、模塊數(shù)目目增加,模塊塊之間關(guān)系的的復(fù)雜程度也也會(huì)增加,設(shè)設(shè)計(jì)模塊間接接口所需要的的工作量也將將增加。 劃分模塊的依據(jù)據(jù)是,模塊只只具有單一的的功能且與其其他模塊沒(méi)有有太多的聯(lián)系系。4.11 結(jié)構(gòu)構(gòu)化程序設(shè)計(jì)計(jì)禁止使用ggoto語(yǔ)句句嗎?如果程程序中使用了了goto語(yǔ)句句,是否就可可以斷定它是是非結(jié)構(gòu)化的的? 結(jié)構(gòu)化化程序設(shè)計(jì)并并不禁止使用用goto語(yǔ)句句。如果程序序中使用了ggoto語(yǔ)句句,并不能斷斷定它是非結(jié)結(jié)構(gòu)化的。4.12 對(duì)于于給定的算法法,如何判斷斷它是否是結(jié)結(jié)構(gòu)化的? 對(duì)于給給定的算法,如如果符合以下下三條原則,就就可以判斷它它是結(jié)構(gòu)化的的。 (1) 使用用語(yǔ)言中的順順序、選擇、重
25、重復(fù)等有限的的基本控制結(jié)結(jié)構(gòu)表示程序序邏輯。 (2) 選用的控制制結(jié)構(gòu)只準(zhǔn)許許有一個(gè)入口口和一個(gè)出口口。 (3) 程序語(yǔ)句組組成容易識(shí)別別的塊(Bllock),每每塊只有一個(gè)個(gè)入口和一個(gè)個(gè)出口。4.13 對(duì)于于圖4-499所示的流程程圖,試分別別用N-S圖和PAD表示之之。 FFSTARTABQENDTFTP 圖4-49 流流程圖對(duì)應(yīng)的N-S圖圖如下: 對(duì)應(yīng)的PADD如下:while Pwhile PAuntil !QBwhile PABuntil !Q4.14 圖44-50所示示的流程圖完完成的功能是是使用二分查查找方法在ttable數(shù)數(shù)組中找出值值為item的數(shù)數(shù)是否存在。(1) 判斷此此
26、算法是否是是結(jié)構(gòu)化的,說(shuō)說(shuō)明理由。(2) 若算法法是非結(jié)構(gòu)化化的,設(shè)計(jì)一一個(gè)等價(jià)的結(jié)結(jié)構(gòu)化算法,并并用N-S圖表示示。FFFFTFFtable(i)item(finish-start)1table(start)=itemtable(finish)=itemflag=0flag=1i(startfinish)/2table(i)=itemtable(I)1 & (FINISH-START)1 & TABLE(I)!=ITEMI(STARTFINISH)/2TABLE(I)1 & FLAG=0(FINISH-START)1 & FLAG=0I(STARTFINISH)/2TABLE(I)=ITEM
27、FLAG0TFFLAG=1TABLE(I)=0 & FLAG=0(FINISH-START)=0 & FLAG=0II(STARTFINISH)/2FTTABLE(I)=ITEMFTTABLE(I)=ITEMTABLE(I)ITEMT FFLAG=1TABLE(I)ITEMT FFLAG=1FINISH=I-1START=I+1FINISH=I-1START=I+14.15 使用用自頂向下、逐逐步細(xì)化方法法設(shè)計(jì)算法,完完成下列任務(wù)務(wù):產(chǎn)生一個(gè)個(gè)1010的二維隨隨機(jī)整數(shù)方陣陣,先求出每每一行的最大大值和每一列列的最小值;然后求100個(gè)最大值中中的最小者,10個(gè)最小值中的最大者;最后求這兩個(gè)數(shù)之差
28、的平方。(1) 首先寫(xiě)寫(xiě)出下面的程程序框架: main () 定義1010的二維整整數(shù)數(shù)組A,長(zhǎng)度為100的一維數(shù)組組B, C;建立1010的的二維隨機(jī)整整數(shù)數(shù)組A;- - - - - - - - - - - - - - - - - - - 1 求A中每一行的的最大值數(shù)組組B; - - - - - - - - - - - - - - - - - - - - 2求A中每一列的的最小值數(shù)組組C; - - - - - - - - - - - - - - - - - - - - 3求數(shù)組B中的最最小值minnOfB; - - - - - - - - - - - - - - - - - - - 44求數(shù)
29、組C中的最最大值maxxOfC; - - - - - - - - - - - - - - - - - - - 55(minOfBB- maxOffC)2 resullt; (2) 對(duì)后后面加標(biāo)記的的部分進(jìn)行細(xì)細(xì)化main () 定義1010的二維整整數(shù)數(shù)組A,長(zhǎng)度為100的一維數(shù)組組B, C;/*建立10110的二維隨機(jī)整整數(shù)數(shù)組A*/ - - - - - - - - - - - - - - - - - - 1for (i=0; i=9; ii+)for (j=0; j=9; jj+)產(chǎn)生隨機(jī)整數(shù) Ai,j; /*求A中每一行的的最大值數(shù)組組B*/ - - - - - - - - - - -
30、- - - - - - - - 22for (i=0; i=9; ii+) 求數(shù)組A第第i行的最大值值Bi; 22.1/*求A中每一一列的最小值值數(shù)組C*/ - - - - - - - - - - - - - - - - - - - - 3for (j=0; j=9; jj+) 求數(shù)組A第第j列的最小值值Cj; 33.1/*求數(shù)組B中中的最小值mminOfBB*/ - - - - - - - - - - - - - - - - - - - 44minOfB = B00;for (i=1; i=9; ii+) if (mminOfBB Bi) miinOfB = Bii; /*求數(shù)組C中中的最大
31、值mmaxOfCC*/ - - - - - - - - - - - - - - - - - - - 55maxOfC = C00;for ( ii=1; iiCi) maaxOfC = Cii; (minOfBB- maxOffC)2 resullt; (3) 下一步可以以繼續(xù)對(duì)2.1和3.1進(jìn)行細(xì)細(xì)化。具體略略。4.16 設(shè)計(jì)計(jì)算法完成下下列任務(wù):輸輸入一段英文文后,無(wú)論輸輸入的文字都都是大寫(xiě),還還是小寫(xiě),或或大小寫(xiě)任意意混合,都能能將其整理成成除每個(gè)句子子開(kāi)頭字母是是大寫(xiě)外,其其他都是小寫(xiě)寫(xiě)的文字。假設(shè)在輸入的文文字中,兩個(gè)個(gè)單詞間只允允許是空格、,、.、?、!,則在輸出的文字中,大寫(xiě)的情
32、況有以下幾種:整段文字的第一一個(gè)字母是大大寫(xiě);“.”后的第一一個(gè)字母是大大寫(xiě);“?”后的第一一個(gè)字母是大大寫(xiě);“!”后的第一一個(gè)字母是大大寫(xiě);設(shè)變量a存儲(chǔ)輸輸入的字符串串,變量b存儲(chǔ)結(jié)果字字符串,變量量c存儲(chǔ)當(dāng)前處處理的字符,變變量e存儲(chǔ)c之前的字符符(當(dāng)c為第一個(gè)字字符時(shí)除外)。算算法如下:輸入字符串輸入字符串a(chǎn), n = strlen(a)如果a的第一個(gè)字符是字母,則轉(zhuǎn)成大寫(xiě)。b0=a0for ( i=1; in; i+) c = ai, e=ai-1 c是字母T F e屬于.?! T F c改大寫(xiě) c改小寫(xiě) bi=c給b加字符串結(jié)束標(biāo)志 輸出字符串b第5章 編碼5.1 有人說(shuō)說(shuō)程序編好后
33、后能上機(jī)運(yùn)行行就可以了,為為什么還要講講究風(fēng)格和可可讀性呢?你你覺(jué)得對(duì)嗎?為什么? 對(duì)于學(xué)學(xué)生的練習(xí)題題和作業(yè)題,程程序編好后能能上機(jī)運(yùn)行,一一般認(rèn)為任務(wù)務(wù)就完成了。但但對(duì)于實(shí)際開(kāi)開(kāi)發(fā)的項(xiàng)目來(lái)來(lái)說(shuō),任務(wù)并并沒(méi)有結(jié)束。編編碼人員編寫(xiě)寫(xiě)完程序后,要要對(duì)自己的程程序進(jìn)行單元元測(cè)試,測(cè)試試人員要進(jìn)行行集成測(cè)試和和系統(tǒng)測(cè)試,提提交用戶(hù)使用用后,還需要要對(duì)軟件進(jìn)行行持續(xù)的維護(hù)護(hù)修改工作。在在軟件開(kāi)發(fā)和和維護(hù)過(guò)程中中,都需要閱閱讀程序。道道理很簡(jiǎn)單,如如果需要對(duì)某某段程序進(jìn)行行修改,首先先要讀懂,閱閱讀程序是軟軟件開(kāi)發(fā)和維維護(hù)過(guò)程中的的一個(gè)重要組組成部分,而而且讀程序的的時(shí)間比寫(xiě)程程序的時(shí)間還還要多。所以以
34、,程序的風(fēng)風(fēng)格和可讀性性很重要,具具有良好的程程序風(fēng)格和可可讀性的程序序,有助于對(duì)對(duì)程序的正確確理解,可以以大大減少閱閱讀理解程序序的時(shí)間,從從而提高維護(hù)護(hù)工作的效率率。5.2 一般情情況下,程序序的效率和清清晰性相比哪哪一個(gè)更重要要?在計(jì)算機(jī)發(fā)展的的早期,由于于CPU效率低低,內(nèi)存小,程程序在運(yùn)行時(shí)時(shí)容易出現(xiàn)運(yùn)運(yùn)行時(shí)間太長(zhǎng)長(zhǎng)或內(nèi)存溢出出問(wèn)題。因此此,人們?cè)诰幘帉?xiě)程序時(shí),很很注重程序的的時(shí)間效率和和空間效率,而而不太注重程程序的清晰性性。隨著計(jì)算機(jī)硬件件性能的飛速速發(fā)展以及軟軟件規(guī)模和復(fù)復(fù)雜性的急劇劇增加,這種種情況已經(jīng)發(fā)發(fā)生了根本的的轉(zhuǎn)變,程序序的清晰性越越來(lái)越受到重重視,程序的的清晰性不好
35、好會(huì)給測(cè)試、維維護(hù)修改帶來(lái)來(lái)困難,這對(duì)對(duì)于規(guī)模龐大大和復(fù)雜的軟軟件尤其明顯顯。軟件運(yùn)行的效率率主要取決于于軟件的體系系結(jié)構(gòu)及算法法,編碼階段段雖然也有機(jī)機(jī)會(huì)提高效率率,但效果并并不明顯。對(duì)對(duì)于效率沒(méi)有有特殊嚴(yán)格要要求的系統(tǒng)來(lái)來(lái)說(shuō),要將程程序的清晰性性放在第一位位,在不影響響清晰性的情情況下,去改改進(jìn)效率。5.6 在一行行內(nèi)只寫(xiě)一條條語(yǔ)句,并且且采取適當(dāng)?shù)牡囊菩懈袷?,使使程序的邏輯輯和功能變得得更加明確。許許多程序設(shè)計(jì)計(jì)語(yǔ)言允許在在一行內(nèi)寫(xiě)多多個(gè)語(yǔ)句。但但這種方式會(huì)會(huì)使程序可讀讀性變差。下下面是一段排排序程序,請(qǐng)請(qǐng)對(duì)其編碼風(fēng)風(fēng)格進(jìn)行改進(jìn)進(jìn),以增加其其可讀性。for (i=1; i=n-1; i+
36、) forr (j=11; jaaj+1) ttemp=aaj; aj=aj+11; aj+1=temp;改進(jìn)后的代碼如如下:for (i=1; i=n-1; i+) for (j=1; jajj+1) temp=aj; aj=aj+1; aj+1=temp;5.7 請(qǐng)對(duì)下下面代碼的布布局進(jìn)行改進(jìn)進(jìn),使其符合合規(guī)范其更容容易理解。for (i=1; i=n-1; i+)t=i; for (j=i+1; j=n; j+) if (ajjatt) tt=j; if (t!=i) temp=at; at=ai; ai=teemp改進(jìn)后的代碼如如下:for (i=1; i=n-1; i+)t=i; f
37、or (j=i+1; j=n; j+) if (ajjatt) t=j; if (tt!=i) temp=at; at=ai; ai=teemp5.8使用你熟熟悉的語(yǔ)言編編寫(xiě)出習(xí)題44.15的程程序,注意編碼風(fēng)風(fēng)格。下面為使用C語(yǔ)語(yǔ)言編寫(xiě)的習(xí)習(xí)題4.155的程序:#includde maath.h#includde sttdio.hh#includde sttdlib.h#includde tiime.h/* 求10110的二維數(shù)數(shù)組a的每一行的的最大值存入入一維數(shù)組bb,每一列的的最小值存入入一維數(shù)組cc,minOffB存儲(chǔ)數(shù)組組b的最小值,mmaxOfCC存儲(chǔ)數(shù)組c的最大值,rresult
38、t存儲(chǔ)minOOfB與maxOffC之差的平平方。*/int maiin()int a10110, bb10,c10;int i,j,minnOfB, maxOffC, reesult;/*產(chǎn)生隨機(jī)機(jī)數(shù)種子 */srand(unsiigned int)tiime(NUULL); /*建立100 10的二維隨隨機(jī)整數(shù)數(shù)組組a*/for(i=0;i=9;i+)for (j=0; j=9; j+)aij=rrand()%100+1; /產(chǎn)生1-1000之間的隨隨機(jī)數(shù) /*求求a中每一行的的最大值數(shù)組組b*/ for (ii=0; ii=9; i+)/*求數(shù)數(shù)組a第i行的最大值值bi */bi=ai0
39、;for (j=1; jbi) bbi = aij; /*求a中每每一列的最小小值數(shù)組c*/ for (jj=0; jj=9; j+)/*求數(shù)數(shù)組a第j列的最小值值cj; */cj=a0j;for (i=1; i=9; i+)if (aaijjcjj) cj = aij;/*求數(shù)組bb中的最小值值minOffB*/ minOfBB = b0;for (ii=1; ii bi) minOffB = bbi;/*求數(shù)組cc中的最大值值maxOffC*/ maxOfCC = c0;for (ii=1; ii=9; i+)if (mmaxOfCCci) maaxOfC = cii; ressult =
40、 pow(minOffB- maxOOfC, 22); priintf(結(jié)果是:%d,reesult); retturn(rresultt); 5.9使用你熟熟悉的語(yǔ)言編編寫(xiě)出習(xí)題44.16的程程序,注意編編碼風(fēng)格。下面為使用C語(yǔ)語(yǔ)言編寫(xiě)的習(xí)習(xí)題4.166的程序:#includde sttdio.hh #includde sttring.h #includde cctype.h /*將一段英文文輸入變量aa(假設(shè)兩個(gè)單單詞間只允許許是空格、,、.、?、!),將其整理成成每個(gè)句子開(kāi)開(kāi)頭字母是大大寫(xiě)、其他都都是小寫(xiě)的字字符串存儲(chǔ)在在變量b中。變量c存儲(chǔ)當(dāng)前處處理的字符,變變量e存儲(chǔ)c之前字符。*/
41、void maain()char a10000, bb10000, c,e;int i,n;gets(aa);n=strllen(a); /將將整段的第一一個(gè)字母轉(zhuǎn)成成大寫(xiě)。if(isaalpha(a0) a0=touppper(aa0);b0=a0; /處處理第一個(gè)字字符之后的每每個(gè)字符,將將.?!后面的的字母改為大大寫(xiě),其他改改為小寫(xiě)。for (ii=1; ii7個(gè)(3)首字符“京”(4)非“京”(5)第2個(gè)字符字母(6)非字母(7)第37個(gè)字符符數(shù)字(8)非數(shù)字(9)測(cè)試用例如下:1)京H877774 (1),(4),(6),(8)2)京H87777 (2)3)京H8777745 (3)
42、 4)冀H877774 (5)5)京9877774 (7)6)京BA77774 (9) 6.6 比較測(cè)測(cè)試與測(cè)試,說(shuō)說(shuō)明其異同。測(cè)試與測(cè)試都是是集成測(cè)試之之后所進(jìn)行的的測(cè)試,都屬屬于系統(tǒng)測(cè)試試。所不同的的是,測(cè)試是在開(kāi)發(fā)發(fā)環(huán)境中所做做的測(cè)試,主主要由開(kāi)發(fā)方方人員進(jìn)行。而而測(cè)試則是在用用戶(hù)實(shí)際工作作環(huán)境中所做做的測(cè)試,不不受開(kāi)發(fā)人員員的干預(yù)。補(bǔ)充題:設(shè)計(jì)下下列偽碼程序序的語(yǔ)句覆蓋蓋和路徑覆蓋蓋測(cè)試用例:INPUT(A,B,C)INPUT(A,B,C)A5X=10X=1B10Y=20Y=2YNYNC15Z=30Z=3YNPRINT(X,Y,Z)INPUT(AA,B,C)IF A5THEN XX=1
43、0ELSE XX=1END IFIF B100THEN YY=20ELSE YY=2END IFIF C155THEN ZZ=30ELSE ZZ=3END IFPRINT(XX,Y,Z)STOP設(shè)輸入數(shù)據(jù)為,輸出數(shù)數(shù)據(jù)為。語(yǔ)句覆蓋測(cè)試用用例:【,】, 【,】路徑覆蓋測(cè)試用用例:【,】【,】【,】【,】【,】【,】【,】【,】第7章 統(tǒng)一建建模語(yǔ)言UMML概述7.2 UMLL中有哪些關(guān)關(guān)系?解釋類(lèi)類(lèi)圖中聚合和和關(guān)聯(lián)的相同同點(diǎn)和不同點(diǎn)點(diǎn)。在UML中,常常見(jiàn)的關(guān)系有有泛化、聚合合、關(guān)聯(lián)、依依賴(lài)和實(shí)現(xiàn)。在類(lèi)圖中,關(guān)聯(lián)聯(lián)是一種結(jié)構(gòu)構(gòu)關(guān)系,它描描述了兩個(gè)或或多個(gè)類(lèi)的實(shí)實(shí)例之間的連連接關(guān)系。聚聚合描述了整整
44、體和部分之之間的結(jié)構(gòu)關(guān)關(guān)系。按照關(guān)關(guān)聯(lián)關(guān)系的定定義,聚合屬屬于一種特殊殊的關(guān)聯(lián)關(guān)系系,只不過(guò)這這種關(guān)聯(lián)關(guān)系系具有明確的的整體-部分含義而而已。從耦合合度的角度看看,聚合關(guān)系系要強(qiáng)于關(guān)聯(lián)聯(lián)關(guān)系。7.4 討論順順序圖與協(xié)作作圖的關(guān)系,何何時(shí)用順序圖圖建模優(yōu)于協(xié)協(xié)作圖建模,以以及相反的情情況。順序圖和協(xié)作圖圖都能描述對(duì)對(duì)象間的交互互關(guān)系,但兩兩者的側(cè)重點(diǎn)點(diǎn)不同,順序序圖著重表現(xiàn)現(xiàn)交互的時(shí)間間順序,協(xié)作作圖則著重表表現(xiàn)交互對(duì)象象的靜態(tài)鏈接接關(guān)系。但即即使他們各有有側(cè)重,但從從語(yǔ)義上來(lái)說(shuō)說(shuō)是等價(jià)的,可可從一種圖自自動(dòng)轉(zhuǎn)換為另另一種圖。一般情況下,當(dāng)當(dāng)需要強(qiáng)調(diào)消消息傳遞的時(shí)時(shí)間順序時(shí),采采用順序圖;當(dāng)表示
45、涉及及很多對(duì)象的的模型時(shí),協(xié)協(xié)作圖比順序序圖更形象。順順序圖在分析析中更常用,而而協(xié)作圖則在在設(shè)計(jì)中更常常用。7.5 考慮銀銀行系統(tǒng)中的的帳戶(hù)會(huì)有哪幾幾種狀態(tài),畫(huà)畫(huà)出帳戶(hù)對(duì)象的的狀態(tài)圖。賬戶(hù)的狀態(tài)包括括開(kāi)戶(hù)、正常使使用、透支、休休眠、凍結(jié)和和注銷(xiāo)。賬戶(hù)戶(hù)對(duì)象的狀態(tài)態(tài)圖如下圖所所示。第8章 面向?qū)?duì)象分析8.1比較面向向?qū)ο蟮姆治鑫龇椒ê兔嫦蛳驍?shù)據(jù)流的分分析方法,闡闡述它們各自自的特點(diǎn)。面向?qū)ο蟮姆治鑫龇椒ㄊ褂糜糜美P蛠?lái)表表示用戶(hù)的功功能需求,用用例模型相當(dāng)當(dāng)于功能模型型,在對(duì)用例例模型進(jìn)行細(xì)細(xì)化的過(guò)程中中,也伴隨著著對(duì)功能的分分解。但面向向?qū)ο蟮姆治鑫龇椒ú⒉皇鞘且怨δ芊纸饨鉃楹诵?,在在獲取
46、并分析析用戶(hù)的功能能需求之后,重重點(diǎn)以類(lèi)和對(duì)對(duì)象為核心,建建立對(duì)象模型型,交互模型型也是圍繞對(duì)對(duì)象模型進(jìn)行行的。面向數(shù)數(shù)據(jù)流的分析析方法是從建建立頂層數(shù)據(jù)據(jù)流圖(環(huán)境境圖)開(kāi)始,之之后逐層對(duì)加加工進(jìn)行分解解。面向數(shù)據(jù)據(jù)流的分析方方法是以功能能分解為核心心的。8.2 面向?qū)?duì)象分析需要要建立的三個(gè)個(gè)模型是什么么?面向?qū)ο蠓治鲂栊枰⒌?3個(gè)模型是:由用例和和場(chǎng)景表示的的功能模型(用用例模型);用類(lèi)和對(duì)象象表示的靜態(tài)態(tài)模型(對(duì)象象模型);由由狀態(tài)圖和順順序圖表示的的動(dòng)態(tài)模型(交交互模型)。8.3 用例建建模的主要步步驟是什么? 用例建建模的主要步步驟如下:確定業(yè)務(wù)參與者者可以是與系統(tǒng)統(tǒng)有交互的外
47、外部硬件、軟軟件、組織、人人等。確定業(yè)務(wù)需求用用例參與者需需要系統(tǒng)提供供的完整功能能。創(chuàng)建用例圖標(biāo)識(shí)參與者者與用例之間間、用例與用用例之間的關(guān)關(guān)系。8.5 用例與與用例之間的的關(guān)系主要有有哪兩種?其其區(qū)別是什么么? 用例之之間的關(guān)系主主要有包含含(也稱(chēng)使使用)和擴(kuò)擴(kuò)展。包含表示一一個(gè)用例所執(zhí)執(zhí)行的功能中中總是包括被被包含用例的的功能;擴(kuò)展是指一一個(gè)用例的執(zhí)執(zhí)行可能需要要由其他用例例的功能來(lái)擴(kuò)擴(kuò)展,擴(kuò)展聯(lián)系可可用于對(duì)期望望或可選的行行為建模,但但其主要用途途是使基本用用例的功能不不依賴(lài)于擴(kuò)展展用例。8.6 對(duì)于復(fù)復(fù)雜的系統(tǒng),其其對(duì)象模型應(yīng)應(yīng)該由哪五個(gè)個(gè)層次組成?對(duì)于復(fù)雜的系統(tǒng)統(tǒng),對(duì)象模型型應(yīng)該由
48、下述5個(gè)層次組成成:主題層(也稱(chēng)為范疇疇層)、類(lèi)-對(duì)象層、結(jié)結(jié)構(gòu)層、屬性性層和服務(wù)層層,如圖所示示。對(duì)象模型的五個(gè)個(gè)層次8.7 解釋關(guān)關(guān)聯(lián)類(lèi)的作用用,在什么時(shí)時(shí)候需要使用用關(guān)聯(lián)類(lèi)?關(guān)聯(lián)類(lèi)的作用是是描述關(guān)聯(lián)的的屬性。在關(guān)聯(lián)關(guān)系比較較簡(jiǎn)單的情況況下,關(guān)聯(lián)關(guān)關(guān)系的語(yǔ)義用用關(guān)聯(lián)關(guān)系的的名字來(lái)概括括。但在某些些情況下,需需要對(duì)關(guān)聯(lián)關(guān)關(guān)系的語(yǔ)義做做詳細(xì)的定義義、存儲(chǔ)和訪訪問(wèn),為此可可以建立關(guān)聯(lián)聯(lián)類(lèi)(assocciatioon claass)。8.8 按照以以下描述,畫(huà)畫(huà)出UML類(lèi)圖:一本教材由許多多章組成,每每一章包含許許多節(jié)、小結(jié)結(jié)和習(xí)題組成成,章和節(jié)都都具有標(biāo)題和和序號(hào)屬性。UML類(lèi)圖如下下:8.9
49、考慮一一個(gè)計(jì)算機(jī)超超市,出售硬硬件、外設(shè)和和軟件。分析析誰(shuí)是這個(gè)系系統(tǒng)的參與者者?這個(gè)系統(tǒng)統(tǒng)有哪些主要要用例?畫(huà)出出用例圖。系統(tǒng)的參與者:系統(tǒng)管理員員(admiinistrrator),售售貨員(saalespeerson),客客戶(hù)(cusstomerr)。主要用例編號(hào)參與者用例說(shuō)明1adminisstratoorMaintaiin prooduct inforrmatioon(維護(hù)商商品信息)增加、修改、刪刪除商品信息息(商品編號(hào)號(hào)、名稱(chēng)、型型號(hào)、價(jià)格)2Maintaiin memmbershhip innformaation(維維護(hù)會(huì)員信息息) 增加、修改、刪刪除會(huì)員信息息(會(huì)員編號(hào)號(hào)、姓
50、名、身身份證號(hào)、辦辦卡日期)3salespeersonScan meembersship ccard(掃描會(huì)員卡卡)在商品出售之前前,系統(tǒng)通過(guò)過(guò)掃描儀刷卡卡(會(huì)員卡)來(lái)來(lái)確認(rèn)顧客的的會(huì)員身份4Scan prroductt codee(掃描商品品的條形碼)通過(guò)掃描商品的的條形碼,自自動(dòng)識(shí)別商品品的名稱(chēng)和價(jià)價(jià)格5Input aamountt of pproducct(輸入商商品數(shù)量)對(duì)于已經(jīng)掃描的的條形碼,手手工輸入購(gòu)買(mǎi)買(mǎi)的此件商品品的數(shù)量6salespeerson,custoomerAccept paymeent(接收收現(xiàn)金付款)Charge paymeent too cardd(使用銀行行卡付
51、款)7salespeersonPrint rreceippt(打印收收據(jù))用例圖如下:第10章 面向向?qū)ο笤O(shè)計(jì)10.1 軟件件模塊之間的的依賴(lài)性可以以從哪些角度度和抽象層次次進(jìn)行分析?在面向?qū)ο筌浖校R?jiàn)的的軟件模塊有有類(lèi)、接口、包包、構(gòu)件。因因此,分析軟軟件模塊之間間的依賴(lài)性就就可以從類(lèi)、接接口、包和構(gòu)構(gòu)件的角度和和層次進(jìn)行分分析。 10.2 消除除包之間循環(huán)依依賴(lài)性的方法法是什么? 本質(zhì)上,兩個(gè)包包之間的依賴(lài)賴(lài)性來(lái)自于兩兩個(gè)包中類(lèi)之之間的依賴(lài)性性。類(lèi)之間的的循環(huán)依賴(lài)性性是個(gè)特別棘棘手的問(wèn)題,好好在大多數(shù)情情況下可以通通過(guò)重新設(shè)計(jì)計(jì)避免循環(huán)依依賴(lài)性。具體體方法是增加加新包。舉例例說(shuō)明如下:在下圖中,包AA依賴(lài)于包B,反過(guò)來(lái)包包B又依賴(lài)包A,構(gòu)成了循循環(huán)依賴(lài)。具具體解決辦法法是:將包B依賴(lài)的包A中的元素從包包A中分離出來(lái)來(lái),組成包CC,使得包B不再依賴(lài)包包A,而是依賴(lài)賴(lài)包C。10.3 請(qǐng)給給出構(gòu)件的一一般
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 磚廠供貨工地合同范本
- 湖北2025年02月湖北省宣恩縣事業(yè)單位第二次公開(kāi)選聘14名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 肅寧鐵路施工合同范本
- 小型工程報(bào)價(jià)合同范本
- 浙江國(guó)企招聘2024浙江嘉興國(guó)有資本投資運(yùn)營(yíng)有限公司招聘37人筆試參考題庫(kù)附帶答案詳解
- 嬰幼兒心肺復(fù)蘇術(shù)關(guān)愛(ài)生命救在身邊課件
- 2025至2030年中國(guó)原味多層蒸汽鍋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 上市知識(shí)的分享
- 糖尿病足的評(píng)估與護(hù)理
- 2025至2030年中國(guó)不銹鋼對(duì)講門(mén)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年基金應(yīng)知應(yīng)會(huì)考試題庫(kù)
- 2024年河北省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 科學(xué)四年級(jí)下冊(cè)第一單元第4課《車(chē)來(lái)了》課件
- 陶瓷制品產(chǎn)業(yè)鏈優(yōu)化與協(xié)同創(chuàng)新
- 骨骼肌損傷的再生修復(fù)
- 全國(guó)職業(yè)院校技能大賽高職組(建筑信息模型建模與應(yīng)用賽項(xiàng))備賽試題庫(kù)(含答案)
- 《增廣賢文》全文及解釋(珍藏版)
- 中小學(xué)美術(shù)教學(xué)論
- 新編建筑裝飾設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)
- 托班藝術(shù)活動(dòng)《小小茶樹(shù)》教案
- 中國(guó)急性缺血性卒中診治指南(2023)解讀
評(píng)論
0/150
提交評(píng)論