版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章軟件與軟件工程的概念1.1舉出你所知道的應(yīng)用軟件的例子。辦公軟件、游戲軟件、財(cái)務(wù)軟件、銀行軟件、人事管理軟件、工資管理軟件、學(xué)籍管理軟件等。1.2認(rèn)為“軟件就是程序,軟件開發(fā)就是編程序。”這種觀點(diǎn)是否正確?為什么?認(rèn)為“軟件就是程序,軟件開發(fā)就是編程序。”這種觀點(diǎn)是錯(cuò)誤的。首先,軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合,程序只是軟件的組成部分之一;其次,在軟件開發(fā)中,編程只是軟件開發(fā)過程的一個(gè)階段。1.3如果將軟件開發(fā)比作高樓大廈的建造,可以將軟件的設(shè)計(jì)比作什么?可以將軟件的設(shè)計(jì)比作建筑設(shè)計(jì),軟件設(shè)計(jì)的成果相當(dāng)于建筑設(shè)計(jì)的設(shè)計(jì)圖紙。1.4什么是軟件危機(jī)?它有哪些典型表現(xiàn)?為什么會(huì)出現(xiàn)軟件危機(jī)?軟件危機(jī):軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。典型表現(xiàn):對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住。軟件常常是不可維護(hù)的。軟件通常沒有適當(dāng)?shù)奈臋n資料。軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。產(chǎn)生軟件危機(jī)的原因:除了軟件本身的特點(diǎn),其原因主要有以下幾個(gè)方面:(1)缺乏軟件開發(fā)的經(jīng)驗(yàn)和有關(guān)軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作計(jì)劃很難制定。(2)軟件人員與用戶的交流存在障礙,使得獲取的需求不充分或存在錯(cuò)誤。(3)軟件開發(fā)過程不規(guī)范。如,沒有真正了解用戶的需求就開始編程序。(4)隨著軟件規(guī)模的增大,其復(fù)雜性往往會(huì)呈指數(shù)級(jí)升高。需要很多人分工協(xié)作,不僅涉及技術(shù)問題,更重要的是必須有科學(xué)嚴(yán)格的管理。(5)缺少有效的軟件評(píng)測(cè)手段,提交給用戶的軟件的質(zhì)量不能完全保證。1.5什么是軟件工程?軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。1.6簡(jiǎn)述軟件生存期由哪些主要的階段組成,每一階段的主要任務(wù)是什么?問題定義與可行性研究:?jiǎn)栴}定義必須回答的關(guān)鍵問題是:“要解決的問題是什么”。可行性研究要回答的關(guān)鍵問題是:“在成本和時(shí)間的限制條件下能否解決問題?是否值得做?”。需求分析:這個(gè)階段的任務(wù)仍然不是具體地解決客戶的問題,而是準(zhǔn)確地回答“目標(biāo)系統(tǒng)必須做什么”這個(gè)問題。軟件設(shè)計(jì):本階段要回答的關(guān)鍵問題是“目標(biāo)系統(tǒng)如何做?”為此,必須在設(shè)計(jì)階段中制定設(shè)計(jì)方案,把已確定的各項(xiàng)需求轉(zhuǎn)換成相應(yīng)的軟件體系結(jié)構(gòu)。結(jié)構(gòu)中的每一組成部分都是意義明確的構(gòu)件,此即所謂概要設(shè)計(jì)。進(jìn)而具體描述每個(gè)構(gòu)件所要完成的工作,為源程序編寫打下基礎(chǔ),此即所謂詳細(xì)設(shè)計(jì)。程序編碼和單元測(cè)試:本階段要解決的問題是“正確地實(shí)現(xiàn)已做的設(shè)計(jì)”,為此,需要選擇合適的編程語言,把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,并對(duì)程序結(jié)構(gòu)中的各個(gè)模塊進(jìn)行單元測(cè)試,然后運(yùn)用調(diào)試的手段排除測(cè)試中發(fā)現(xiàn)的錯(cuò)誤。要求編寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的。集成測(cè)試和系統(tǒng)測(cè)試:集成測(cè)試的任務(wù)是將已測(cè)試過的模塊按設(shè)計(jì)規(guī)定的順序組裝起來,在組裝的過程中檢查程序連接的問題。系統(tǒng)測(cè)試的任務(wù)是根據(jù)需求規(guī)格說明的要求,對(duì)必須實(shí)現(xiàn)的各項(xiàng)需求,逐項(xiàng)進(jìn)行確認(rèn),判定已開發(fā)的軟件是否符合用戶需求,能否交付用戶使用。為了更有效地發(fā)現(xiàn)系統(tǒng)中的問題,通常這個(gè)階段的工作由開發(fā)人員、用戶之外的第三者承擔(dān)。運(yùn)行維護(hù):已交付的軟件投入正式使用,便進(jìn)入運(yùn)行維護(hù)階段。這一階段可能持續(xù)若干年。軟件在運(yùn)行中可能由于多方面的原因,需要對(duì)它進(jìn)行維護(hù)。通常有四種類型的維護(hù):改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。1.7常見的軟件生存期模型主要有哪些?每種模型的優(yōu)缺點(diǎn)是什么?常見的軟件生存期模型主要有瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型和統(tǒng)一過程。瀑布模型優(yōu)點(diǎn):可強(qiáng)迫開發(fā)人員采用規(guī)范化的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證。缺點(diǎn):由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要;用戶往往需要等待很長(zhǎng)時(shí)間才能看到可以運(yùn)行的程序;適應(yīng)需求變更的能力比較差。適用范圍:瀑布模型只適用于項(xiàng)目開始時(shí)需求已確定的情況。(2)快速原型模型優(yōu)點(diǎn):有助于滿足用戶的真實(shí)需求;原型系統(tǒng)已經(jīng)通過與用戶的交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說明文檔能夠正確地描述用戶需求。缺點(diǎn):要求開發(fā)人員快速建立原型。適用范圍:適用于需求不明確的軟件項(xiàng)目。(3)增量模型優(yōu)點(diǎn):能在較短時(shí)間內(nèi)向用戶提交可完成一些基本功能的產(chǎn)品,即從第一個(gè)構(gòu)件交付之日起,用戶就能做一些有用的工作。逐步增加產(chǎn)品的功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給用戶組織帶來的沖擊。項(xiàng)目失敗的風(fēng)險(xiǎn)較低,雖然在某些增量構(gòu)件中可能遇到一些問題,但其他增量構(gòu)件將能夠成功地交付給客戶。優(yōu)先級(jí)最高的服務(wù)首先交付,然后再將其他增量構(gòu)件逐次集成進(jìn)來。因此,最重要的系統(tǒng)服務(wù)將接受最多的測(cè)試。缺點(diǎn):在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。軟件體系結(jié)構(gòu)必須是開放的,即向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過程必須簡(jiǎn)單、方便。適用范圍:適用于工期緊張、功能可以劃分、比較復(fù)雜的軟件項(xiàng)目。軟件工程師必須有較高的技術(shù)水平,能夠設(shè)計(jì)出開放的軟件體系結(jié)構(gòu)。(4)螺旋模型優(yōu)點(diǎn):對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo);減少了過多測(cè)試或測(cè)試不足所帶來的風(fēng)險(xiǎn);在螺旋模型中維護(hù)只是模型的另一個(gè)周期,在維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。缺點(diǎn):螺旋模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的,因此要求軟件開發(fā)人員必須具有豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和這方面的專門知識(shí),否則將出現(xiàn)真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際上正在走向?yàn)?zāi)難時(shí),開發(fā)人員可能還以為一切正常。適用范圍:適用于內(nèi)部開發(fā)的大型軟件(開發(fā)周期長(zhǎng)、比較容易受到社會(huì)因素影響的軟件項(xiàng)目),軟件開發(fā)人員具有豐富的風(fēng)險(xiǎn)評(píng)估知識(shí)和經(jīng)驗(yàn)。(5)噴泉模型優(yōu)點(diǎn):在開發(fā)過程中使用統(tǒng)一的概念和方法,各階段之間沒有明顯的界限,容易實(shí)現(xiàn)各個(gè)開發(fā)過程的多次反復(fù)迭代,達(dá)到了認(rèn)識(shí)的逐步深化,降低了出錯(cuò)的可能性。缺點(diǎn):由于各個(gè)階段之間的界線不明確,容易造成軟件開發(fā)過程的無序。適用范圍:適用于面向?qū)ο蟮能浖_發(fā)。(6)統(tǒng)一過程優(yōu)點(diǎn):提高了團(tuán)隊(duì)生產(chǎn)力,在迭代的開發(fā)過程、需求管理、基于組件的體系結(jié)構(gòu)、可視化軟件建模、驗(yàn)證軟件質(zhì)量及控制軟件變更等方面,針對(duì)所有關(guān)鍵的開發(fā)活動(dòng)為每個(gè)開發(fā)成員提供了必要的準(zhǔn)則、模板和工具指導(dǎo),并確保全體成員共享相同的知識(shí)基礎(chǔ)。它建立了簡(jiǎn)潔和清晰的過程結(jié)構(gòu),為開發(fā)過程提供了較大的通用性。缺點(diǎn):RUP只是一個(gè)開發(fā)過程,并沒有涵蓋軟件過程的全部?jī)?nèi)容,例如它缺少關(guān)于軟件運(yùn)行和支持等方面的內(nèi)容;此外,它沒有支持多項(xiàng)目的開發(fā)結(jié)構(gòu),這在一定程度上降低了在開發(fā)組織內(nèi)大范圍實(shí)現(xiàn)重用的可能性。適用范圍:適用于基于構(gòu)件的軟件開發(fā)。第2章軟件工程方法與工具2.1軟件工程的三種基本要素是什么,各自的作用是什么?軟件工程的三種基本要素是方法、工具和過程。(1)軟件工程方法(method)為建造軟件提供技術(shù)上的解決方法(“如何做”)。目前使用得最廣泛的方法是傳統(tǒng)方法(結(jié)構(gòu)化方法)和面向?qū)ο蠓椒ā?2)工具為方法的運(yùn)用提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。(3)過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。2.2簡(jiǎn)述傳統(tǒng)方法和面向?qū)ο蠓椒ǖ奶攸c(diǎn)。(1)傳統(tǒng)方法的特點(diǎn)傳統(tǒng)方法也稱為生命周期方法或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項(xiàng)任務(wù)。這種方法學(xué)把軟件生命周期的全過程依次劃分為若干個(gè)階段,然后順序地逐步完成每個(gè)階段的任務(wù)。每一個(gè)階段的開始和結(jié)束都有嚴(yán)格的標(biāo)準(zhǔn),對(duì)于任何兩個(gè)相鄰的階段而言,前一個(gè)階段的結(jié)束標(biāo)準(zhǔn)就是后一階段的開始標(biāo)準(zhǔn)。傳統(tǒng)方法的主要缺點(diǎn)是在適應(yīng)需求變化方面不夠靈活,另外,結(jié)構(gòu)化方法要么面向行為,要么面向數(shù)據(jù),缺乏使兩者有機(jī)結(jié)合的機(jī)制。(2)面向?qū)ο蠓椒ǖ奶攸c(diǎn)面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,是將數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來的方法,這也是面向?qū)ο蠓椒ㄅc傳統(tǒng)方法的重要區(qū)別。面向?qū)ο蠓椒ǖ某霭l(fā)點(diǎn)和基本原則,是盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法和過程盡可能接近人類認(rèn)識(shí)問題和解決問題的方法與過程,從而使描述問題的問題空間與其解空間在結(jié)構(gòu)上盡可能一致。對(duì)于大型、復(fù)雜及交互性比較強(qiáng)的系統(tǒng),使用面向?qū)ο蠓椒ǜ袃?yōu)勢(shì)。2.3形式化方法的特點(diǎn)是什么?形式化方法的主要特點(diǎn)是:(1)軟件需求規(guī)格說明被細(xì)化為用數(shù)學(xué)記號(hào)表達(dá)的詳細(xì)的形式化規(guī)格說明;(2)設(shè)計(jì)、實(shí)現(xiàn)和單元測(cè)試等開發(fā)過程由一個(gè)變換開發(fā)過程代替。通過一系列變換將形式的規(guī)格說明細(xì)化成為程序。2.5安裝RationalRose2000/2002/2003,并練習(xí)基本操作。略。第3章軟件需求獲取與結(jié)構(gòu)化分析方法3.1為什么結(jié)構(gòu)化分析要叫“結(jié)構(gòu)化”?有其他可替代的術(shù)語嗎?“結(jié)構(gòu)化”一詞應(yīng)來源于“結(jié)構(gòu)化程序設(shè)計(jì)”,先有“結(jié)構(gòu)化程序設(shè)計(jì)”的思想,后有結(jié)構(gòu)化設(shè)計(jì)及結(jié)構(gòu)化分析。有時(shí)稱傳統(tǒng)的分析方法,指的就是結(jié)構(gòu)化分析方法。3.2頂層數(shù)據(jù)流圖或稱環(huán)境圖的作用是什么?頂層數(shù)據(jù)流圖(或稱環(huán)境圖)僅包括一個(gè)數(shù)據(jù)處理過程,也就是要開發(fā)的目標(biāo)系統(tǒng)。其作用如下:(1)確定系統(tǒng)在其環(huán)境中的位置,與系統(tǒng)有聯(lián)系的外部實(shí)體(包括硬件、軟件、組織機(jī)構(gòu)及人)有哪些。(2)通過確定系統(tǒng)的輸入和輸出與外部實(shí)體的關(guān)系確定系統(tǒng)的邊界,也就是要確定哪些功能或處理屬于系統(tǒng)范圍之內(nèi),哪些屬于系統(tǒng)范圍之外,需要由其他系統(tǒng)處理或人工處理。3.3在對(duì)數(shù)據(jù)流圖進(jìn)行分解時(shí)需要注意哪些問題?在對(duì)數(shù)據(jù)流圖進(jìn)行分解時(shí),需要注意以下兩個(gè)問題:(1)當(dāng)對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性,也就是說,當(dāng)把一個(gè)處理分解為一系列處理時(shí),分解前和分解后的輸入/輸出數(shù)據(jù)流必須相同。(2)注意分層細(xì)化時(shí)對(duì)編號(hào)的處理方法。3.4銀行存款業(yè)務(wù)如下:客戶到銀行柜臺(tái)存款時(shí),首先填寫存款單(包括帳號(hào)、姓名、存款金額、存款類型),如果還沒有開戶,則需要先開戶,填寫開戶單(包括姓名、身份證號(hào)、地址、電話、是否留密碼)。填寫完存款單或開戶單后,交給營(yíng)業(yè)員,營(yíng)業(yè)員將存款單或開戶單信息輸入計(jì)算機(jī),系統(tǒng)記錄開戶信息或存款單信息,如果是開戶并選擇留密碼,則需要客戶輸入密碼。最后印出開戶單或存款單給用戶。請(qǐng)畫出銀行存款業(yè)務(wù)的分層數(shù)據(jù)流圖(至少畫出兩層)。(1)識(shí)別外部實(shí)體及輸入輸出數(shù)據(jù)流外部實(shí)體:儲(chǔ)戶、業(yè)務(wù)員。輸入數(shù)據(jù)流:存款單,開戶單,密碼??梢詫⒋婵顔魏烷_戶單抽象為事務(wù)。輸出數(shù)據(jù)流:存款單,開戶單。(2)頂層數(shù)據(jù)流圖(3)一層數(shù)據(jù)流圖對(duì)銀行儲(chǔ)蓄系統(tǒng)進(jìn)行分解,從大的方面分解為接收事務(wù)、處理開戶、處理存款三部分,得到一層數(shù)據(jù)流圖。(4)二層數(shù)據(jù)流圖對(duì)“處理存款”及“處理開戶”進(jìn)行進(jìn)一步分解,得到二層數(shù)據(jù)流圖,即處理存款的數(shù)據(jù)流圖和處理開戶的數(shù)據(jù)流圖。處理存款的數(shù)據(jù)流圖處理開戶的數(shù)據(jù)流圖3.5按照以下描述,畫出ER圖。一本教材由許多章組成,每一章包含許多節(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)你“編寫”程序時(shí)你設(shè)計(jì)軟件嗎?軟件設(shè)計(jì)和編碼有什么不同嗎?在“編寫”程序時(shí)并沒有設(shè)計(jì)軟件。軟件設(shè)計(jì)包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),編碼是將詳細(xì)設(shè)計(jì)中的過程描述轉(zhuǎn)換成用程序設(shè)計(jì)語言來描述。4.4是否存在一種情況:復(fù)雜問題需要較少的工作去解決?這樣的情況對(duì)模塊化觀點(diǎn)有什么影響?通過對(duì)復(fù)雜的問題進(jìn)行合理分解,分解為若干個(gè)相對(duì)簡(jiǎn)單及獨(dú)立的子問題,就可以用較少的工作去解決。這種情況能夠較好地支持模塊化的觀點(diǎn),每個(gè)子問題用單獨(dú)的模塊去解決,模塊之間應(yīng)該是高內(nèi)聚、低耦合的,這樣才能減少工作量,否則,雖然每個(gè)模塊的工作簡(jiǎn)單了,但模塊之間的聯(lián)系很復(fù)雜,也增加了問題解決的難度和工作量。4.8用面向數(shù)據(jù)流的方法設(shè)計(jì)第3章習(xí)題3.4所描述的銀行存款業(yè)務(wù)的軟件結(jié)構(gòu),并使用改進(jìn)方法對(duì)模塊結(jié)構(gòu)進(jìn)行精化。(1)對(duì)第3章習(xí)題3.4給出的數(shù)據(jù)流圖進(jìn)行精化,確定其邊界,如下圖所示。(2)對(duì)上圖按事務(wù)型數(shù)據(jù)流進(jìn)行處理,完成第一級(jí)分解,得到頂層和一層模塊結(jié)構(gòu)圖。存款業(yè)務(wù)存款業(yè)務(wù)輸入數(shù)據(jù)調(diào)度輸出數(shù)據(jù)第一級(jí)分解后的結(jié)構(gòu)圖(3)完成第二級(jí)分解。對(duì)上圖所示的“輸入數(shù)據(jù)”、“輸出數(shù)據(jù)”和“調(diào)度”模塊進(jìn)行分解,得到未經(jīng)精化的輸入結(jié)構(gòu)、輸出結(jié)構(gòu)和事務(wù)結(jié)構(gòu)。輸入數(shù)據(jù)輸入數(shù)據(jù)輸入事務(wù)輸入密碼未經(jīng)精化的輸入結(jié)構(gòu)輸出數(shù)據(jù)輸出數(shù)據(jù)打印存款單打印開戶單未經(jīng)精化的輸出結(jié)構(gòu)調(diào)度調(diào)度處理存款處理開戶記錄存款信息記錄開戶信息記錄密碼未經(jīng)精化的事務(wù)結(jié)構(gòu)將上面的三部分合在一起,得到初始的軟件結(jié)構(gòu),如下圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入數(shù)據(jù)調(diào)度輸出數(shù)據(jù)輸入事務(wù)輸入密碼打印存款單打印開戶單處理存款處理開戶記錄存款信息記錄開戶信息記錄密碼初始軟件結(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ù)輸入密碼打印存款單打印開戶單處理存款處理開戶記錄存款信息記錄開戶信息記錄密碼將調(diào)度模塊合并到上級(jí)模塊后的軟件結(jié)構(gòu)2)“記錄密碼”模塊的作用范圍不在其控制范圍之內(nèi)(即“輸入密碼”模塊不在“記錄密碼”模塊的控制范圍之內(nèi)),需對(duì)其進(jìn)行調(diào)整,如圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入事務(wù)輸出數(shù)據(jù)輸入密碼打印存款單打印開戶單處理存款處理開戶記錄存款信息記錄開戶信息記錄密碼3)提高模塊獨(dú)立性,對(duì)模塊結(jié)構(gòu)進(jìn)行調(diào)整,如下圖所示。存款業(yè)務(wù)存款業(yè)務(wù)輸入事務(wù)輸入密碼打印存款單打印開戶單處理存款處理開戶記錄存款信息記錄開戶信息記錄密碼調(diào)整后的模塊結(jié)構(gòu)圖4.9將大的軟件劃分成模塊有什么好處?是不是模塊劃分得越小越好?劃分模塊的依據(jù)是什么?將大的軟件劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,不同的模塊通常具有不同的功能或職責(zé)。這種方法有利于將復(fù)雜的問題簡(jiǎn)單化,是分而治之策略的具體表現(xiàn)。盡管模塊分解可以簡(jiǎn)化要解決的問題,但模塊分解并不是越小越好。當(dāng)模塊數(shù)目增加時(shí),每個(gè)模塊的規(guī)模將減小,開發(fā)單個(gè)模塊的成本確實(shí)減少了;但是,隨著模塊數(shù)目增加,模塊之間關(guān)系的復(fù)雜程度也會(huì)增加,設(shè)計(jì)模塊間接口所需要的工作量也將增加。劃分模塊的依據(jù)是,模塊只具有單一的功能且與其他模塊沒有太多的聯(lián)系。4.11結(jié)構(gòu)化程序設(shè)計(jì)禁止使用goto語句嗎?如果程序中使用了goto語句,是否就可以斷定它是非結(jié)構(gòu)化的?結(jié)構(gòu)化程序設(shè)計(jì)并不禁止使用goto語句。如果程序中使用了goto語句,并不能斷定它是非結(jié)構(gòu)化的。4.12對(duì)于給定的算法,如何判斷它是否是結(jié)構(gòu)化的?對(duì)于給定的算法,如果符合以下三條原則,就可以判斷它是結(jié)構(gòu)化的。(1)使用語言中的順序、選擇、重復(fù)等有限的基本控制結(jié)構(gòu)表示程序邏輯。
(2)選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口。
(3)程序語句組成容易識(shí)別的塊(Block),每塊只有一個(gè)入口和一個(gè)出口。4.13對(duì)于圖4-49所示的流程圖,試分別用N-S圖和PAD表示之。FFSTARTABQENDTFTP圖4-49流程圖對(duì)應(yīng)的N-S圖如下:對(duì)應(yīng)的PAD如下:whilePwhilePAuntil!QBwhilePABuntil!Q4.14圖4-50所示的流程圖完成的功能是使用二分查找方法在table數(shù)組中找出值為item的數(shù)是否存在。(1)判斷此算法是否是結(jié)構(gòu)化的,說明理由。(2)若算法是非結(jié)構(gòu)化的,設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化算法,并用N-S圖表示。FFFFTFFtable(i)>item(finish-start)>1table(start)=itemtable(finish)=itemflag=0flag=1i=(start+finish)/2table(i)=itemtable(I)<itemfinish=i-1start=i+1TTTFTT開始結(jié)束圖4-50二分查找算法的流程圖(1)不是結(jié)構(gòu)化的,最上面的循環(huán)有兩個(gè)出口,最下面的分支有三個(gè)入口。(2)等價(jià)的結(jié)構(gòu)化算法如下:(FINISH-START)>1&&(FINISH-START)>1&&TABLE(I)!=ITEMI=(START+FINISH)/2TABLE(I)<ITEMI=(START+FINISH)/2TFSTART=I+1FINISH=I-1TABLE(START)==ITEM||TABLE(FINISH)==ITEM||TABLE(I)==ITEMTFFLAG=1FLAG=0或者(FINISH-START)>1&&FLAG==0(FINISH-START)>1&&FLAG==0I=(START+FINISH)/2TABLE(I)==ITEMFLAG=0TFFLAG=1TABLE(I)<ITEMTFTABLE(START)==ITEM||TABLE(FINISH)==ITEMTFFLAG=1START=I+1FINISH=I-1或者FLAGFLAG=0(FINISH-START)>=0&&FLAG==0(FINISH-START)>=0&&FLAG==0I=I=(START+FINISH)/2FTTABLE(I)==ITEMFTTABLE(I)==ITEMTABLE(I)<ITEMTFFLAG=1TABLE(I)<ITEMTFFLAG=1FINISH=I-1START=I+1FINISH=I-1START=I+14.15使用自頂向下、逐步細(xì)化方法設(shè)計(jì)算法,完成下列任務(wù):產(chǎn)生一個(gè)10?10的二維隨機(jī)整數(shù)方陣,先求出每一行的最大值和每一列的最小值;然后求10個(gè)最大值中的最小者,10個(gè)最小值中的最大者;最后求這兩個(gè)數(shù)之差的平方。(1)首先寫出下面的程序框架:main(){
定義10?10的二維整數(shù)數(shù)組A,長(zhǎng)度為10的一維數(shù)組B,C;建立10?10的二維隨機(jī)整數(shù)數(shù)組A;---------------------1
求A中每一行的最大值?數(shù)組B;---------------------2求A中每一列的最小值?數(shù)組C;---------------------3求數(shù)組B中的最小值?minOfB;---------------------4求數(shù)組C中的最大值?maxOfC;---------------------5(minOfB-maxOfC)^2?result;}
(2)對(duì)后面加標(biāo)記的部分進(jìn)行細(xì)化main(){
定義10?10的二維整數(shù)數(shù)組A,長(zhǎng)度為10的一維數(shù)組B,C;/*建立10?10的二維隨機(jī)整數(shù)數(shù)組A*/--------------------1for(i=0;i<=9;i++)for(j=0;j<=9;j++)產(chǎn)生隨機(jī)整數(shù)?A[i,j];
/*求A中每一行的最大值?數(shù)組B*/---------------------2for(i=0;i<=9;i++){求數(shù)組A第i行的最大值?B[i];--------------------------------------2.1}/*求A中每一列的最小值?數(shù)組C*/---------------------3for(j=0;j<=9;j++){求數(shù)組A第j列的最小值?C[j];--------------------------------------3.1}/*求數(shù)組B中的最小值?minOfB*/---------------------4minOfB=B[0];for(i=1;i<=9;i++){if(minOfB<B[i]){minOfB=B[i];}}/*求數(shù)組C中的最大值?maxOfC*/---------------------5maxOfC=C[0];for(i=1;i<=9;i++){if(maxOfC>C[i]){maxOfC=C[i];}}(minOfB-maxOfC)^2?result;}
(3)下一步可以繼續(xù)對(duì)2.1和3.1進(jìn)行細(xì)化。具體略。4.16設(shè)計(jì)算法完成下列任務(wù):輸入一段英文后,無論輸入的文字都是大寫,還是小寫,或大小寫任意混合,都能將其整理成除每個(gè)句子開頭字母是大寫外,其他都是小寫的文字。假設(shè)在輸入的文字中,兩個(gè)單詞間只允許是空格、,、.、?、!,則在輸出的文字中,大寫的情況有以下幾種:整段文字的第一個(gè)字母是大寫;“.”后的第一個(gè)字母是大寫;“?”后的第一個(gè)字母是大寫;“!”后的第一個(gè)字母是大寫;設(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)成大寫。b[0]=a[0]for(i=1;i<n;i++)c=a[i],e=a[i-1]c是字母TFe屬于?.?!?TFc改大寫c改小寫b[i]=c給b加字符串結(jié)束標(biāo)志輸出字符串b第5章編碼5.1有人說程序編好后能上機(jī)運(yùn)行就可以了,為什么還要講究風(fēng)格和可讀性呢?你覺得對(duì)嗎?為什么?對(duì)于學(xué)生的練習(xí)題和作業(yè)題,程序編好后能上機(jī)運(yùn)行,一般認(rèn)為任務(wù)就完成了。但對(duì)于實(shí)際開發(fā)的項(xiàng)目來說,任務(wù)并沒有結(jié)束。編碼人員編寫完程序后,要對(duì)自己的程序進(jìn)行單元測(cè)試,測(cè)試人員要進(jìn)行集成測(cè)試和系統(tǒng)測(cè)試,提交用戶使用后,還需要對(duì)軟件進(jìn)行持續(xù)的維護(hù)修改工作。在軟件開發(fā)和維護(hù)過程中,都需要閱讀程序。道理很簡(jiǎn)單,如果需要對(duì)某段程序進(jìn)行修改,首先要讀懂,閱讀程序是軟件開發(fā)和維護(hù)過程中的一個(gè)重要組成部分,而且讀程序的時(shí)間比寫程序的時(shí)間還要多。所以,程序的風(fēng)格和可讀性很重要,具有良好的程序風(fēng)格和可讀性的程序,有助于對(duì)程序的正確理解,可以大大減少閱讀理解程序的時(shí)間,從而提高維護(hù)工作的效率。5.2一般情況下,程序的效率和清晰性相比哪一個(gè)更重要?在計(jì)算機(jī)發(fā)展的早期,由于CPU效率低,內(nèi)存小,程序在運(yùn)行時(shí)容易出現(xiàn)運(yùn)行時(shí)間太長(zhǎng)或內(nèi)存溢出問題。因此,人們?cè)诰帉懗绦驎r(shí),很注重程序的時(shí)間效率和空間效率,而不太注重程序的清晰性。隨著計(jì)算機(jī)硬件性能的飛速發(fā)展以及軟件規(guī)模和復(fù)雜性的急劇增加,這種情況已經(jīng)發(fā)生了根本的轉(zhuǎn)變,程序的清晰性越來越受到重視,程序的清晰性不好會(huì)給測(cè)試、維護(hù)修改帶來困難,這對(duì)于規(guī)模龐大和復(fù)雜的軟件尤其明顯。軟件運(yùn)行的效率主要取決于軟件的體系結(jié)構(gòu)及算法,編碼階段雖然也有機(jī)會(huì)提高效率,但效果并不明顯。對(duì)于效率沒有特殊嚴(yán)格要求的系統(tǒng)來說,要將程序的清晰性放在第一位,在不影響清晰性的情況下,去改進(jìn)效率。5.6在一行內(nèi)只寫一條語句,并且采取適當(dāng)?shù)囊菩懈袷?,使程序的邏輯和功能變得更加明確。許多程序設(shè)計(jì)語言允許在一行內(nèi)寫多個(gè)語句。但這種方式會(huì)使程序可讀性變差。下面是一段排序程序,請(qǐng)對(duì)其編碼風(fēng)格進(jìn)行改進(jìn),以增加其可讀性。for(i=1;i<=n-1;i++)for(j=1;j<=n-i;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}改進(jìn)后的代碼如下:for(i=1;i<=n-1;i++)for(j=1;j<=n-i;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}5.7請(qǐng)對(duì)下面代碼的布局進(jìn)行改進(jìn),使其符合規(guī)范其更容易理解。for(i=1;i<=n-1;i++){t=i;for(j=i+1;j<=n;j++)if(a[j]<a[t])t=j;if(t!=i){temp=a[t];a[t]=a[i];a[i]=temp}}改進(jìn)后的代碼如下:for(i=1;i<=n-1;i++){t=i;for(j=i+1;j<=n;j++){if(a[j]<a[t])t=j;}if(t!=i){temp=a[t];a[t]=a[i];a[i]=temp}}5.8使用你熟悉的語言編寫出習(xí)題4.15的程序,注意編碼風(fēng)格。下面為使用C語言編寫的習(xí)題4.15的程序:#include"math.h"#include"stdio.h"#include"stdlib.h"#include"time.h"/*求10?10的二維數(shù)組a的每一行的最大值存入一維數(shù)組b,每一列的最小值存入一維數(shù)組c,minOfB存儲(chǔ)數(shù)組b的最小值,maxOfC存儲(chǔ)數(shù)組c的最大值,result存儲(chǔ)minOfB與maxOfC之差的平方。*/intmain(){ inta[10][10],b[10],c[10]; inti,j,minOfB,maxOfC,result; /*產(chǎn)生隨機(jī)數(shù)種子*/ srand((unsignedint)time(NULL)); /*建立10?10的二維隨機(jī)整數(shù)數(shù)組a*/ for(i=0;i<=9;i++) for(j=0;j<=9;j++) a[i][j]=rand()%100+1;//產(chǎn)生1-100之間的隨機(jī)數(shù)/*求a中每一行的最大值?數(shù)組b*/ for(i=0;i<=9;i++) { /*求數(shù)組a第i行的最大值?b[i]*/ b[i]=a[i][0]; for(j=1;j<=9;j++) if(a[i][j]>b[i])b[i]=a[i][j]; } /*求a中每一列的最小值?數(shù)組c*/ for(j=0;j<=9;j++) { /*求數(shù)組a第j列的最小值?c[j];*/ c[j]=a[0][j]; for(i=1;i<=9;i++) if(a[i][j]<c[j])c[j]=a[i][j]; } /*求數(shù)組b中的最小值?minOfB*/ minOfB=b[0]; for(i=1;i<=9;i++) if(minOfB>b[i])minOfB=b[i]; /*求數(shù)組c中的最大值?maxOfC*/ maxOfC=c[0]; for(i=1;i<=9;i++) if(maxOfC<c[i])maxOfC=c[i];result=pow(minOfB-maxOfC,2);printf("結(jié)果是:%d",result);return(result);}5.9使用你熟悉的語言編寫出習(xí)題4.16的程序,注意編碼風(fēng)格。下面為使用C語言編寫的習(xí)題4.16的程序:#include"stdio.h"#include"string.h"#include"ctype.h"/*將一段英文輸入變量a(假設(shè)兩個(gè)單詞間只允許是空格、,、.、?、!),將其整理成每個(gè)句子開頭字母是大寫、其他都是小寫的字符串存儲(chǔ)在變量b中。變量c存儲(chǔ)當(dāng)前處理的字符,變量e存儲(chǔ)c之前字符。*/voidmain(){ chara[1000],b[1000],c,e; inti,n; gets(a); n=strlen(a);//將整段的第一個(gè)字母轉(zhuǎn)成大寫。 if(isalpha(a[0])) { a[0]=toupper(a[0]); b[0]=a[0]; }//處理第一個(gè)字符之后的每個(gè)字符,將.?!后面的字母改為大寫,其他改為小寫。 for(i=1;i<n;i++){ c=a[i]; e=a[i-1]; if(isalpha(c)){ if(strchr(".?!",e)) c=toupper(c); else c=tolower(c);} b[i]=c; } b[n]='\0';puts(b);}第6章軟件測(cè)試方法6.5假設(shè)汽車的車牌號(hào)可由車主人在規(guī)定范圍內(nèi)自選,若其規(guī)定為:(1)車牌上應(yīng)有7個(gè)字符;(2)為首的字符限定為漢字“京”;(3)第2個(gè)字符可任選一字母(A~Z);(4)第3~7個(gè)字符可選任意數(shù)字。請(qǐng)為相關(guān)的處理程序采用等價(jià)類劃分方法設(shè)計(jì)等價(jià)類表及相應(yīng)的測(cè)試用例。等價(jià)類表輸入數(shù)據(jù)有效等價(jià)類無效等價(jià)類字符個(gè)數(shù)7個(gè)(1)0~6個(gè)(2),>7個(gè)(3)首字符“京”(4)非“京”(5)第2個(gè)字符字母(6)非字母(7)第3~7個(gè)字符數(shù)字(8)非數(shù)字(9)測(cè)試用例如下:1)京H87774}(1),(4),(6),(8)2)京H8777}(2)3)京H877745}(3)4)冀H87774}(5)5)京987774}(7)6)京BA7774}(9)6.6比較?測(cè)試與?測(cè)試,說明其異同。?測(cè)試與?測(cè)試都是集成測(cè)試之后所進(jìn)行的測(cè)試,都屬于系統(tǒng)測(cè)試。所不同的是,?測(cè)試是在開發(fā)環(huán)境中所做的測(cè)試,主要由開發(fā)方人員進(jìn)行。而?測(cè)試則是在用戶實(shí)際工作環(huán)境中所做的測(cè)試,不受開發(fā)人員的干預(yù)。補(bǔ)充題:設(shè)計(jì)下列偽碼程序的語句覆蓋和路徑覆蓋測(cè)試用例:INPUT(A,B,C)INPUT(A,B,C)A>5X=10X=1B>10Y=20Y=2YNYNC>15Z=30Z=3YNPRINT(X,Y,Z)INPUT(A,B,C)IFA>5 THENX=10 ELSEX=1ENDIFIFB>10 THENY=20 ELSEY=2ENDIFIFC>15 THENZ=30 ELSEZ=3ENDIFPRINT(X,Y,Z)STOP設(shè)輸入數(shù)據(jù)為<A,B,C>,輸出數(shù)據(jù)為<X,Y,Z>。語句覆蓋測(cè)試用例:【<6,12,20>,<10,20,30>】,【<4,8,10>,<1,2,3>】路徑覆蓋測(cè)試用例:【<6,12,20>,<10,20,30>】【<6,12,10>,<10,20,3>】【<6,8,20>,<10,2,30>】【<6,8,10>,<10,2,3>】【<4,12,20>,<1,20,30>】【<4,12,10>,<1,20,3>】【<4,8,20>,<1,2,30>】【<4,8,10>,<1,2,3>】第7章統(tǒng)一建模語言UML概述7.2UML中有哪些關(guān)系?解釋類圖中聚合和關(guān)聯(lián)的相同點(diǎn)和不同點(diǎn)。在UML中,常見的關(guān)系有泛化、聚合、關(guān)聯(lián)、依賴和實(shí)現(xiàn)。在類圖中,關(guān)聯(lián)是一種結(jié)構(gòu)關(guān)系,它描述了兩個(gè)或多個(gè)類的實(shí)例之間的連接關(guān)系。聚合描述了整體和部分之間的結(jié)構(gòu)關(guān)系。按照關(guān)聯(lián)關(guān)系的定義,聚合屬于一種特殊的關(guān)聯(lián)關(guān)系,只不過這種關(guān)聯(lián)關(guān)系具有明確的整體-部分含義而已。從耦合度的角度看,聚合關(guān)系要強(qiáng)于關(guān)聯(lián)關(guān)系。7.4討論順序圖與協(xié)作圖的關(guān)系,何時(shí)用順序圖建模優(yōu)于協(xié)作圖建模,以及相反的情況。順序圖和協(xié)作圖都能描述對(duì)象間的交互關(guān)系,但兩者的側(cè)重點(diǎn)不同,順序圖著重表現(xiàn)交互的時(shí)間順序,協(xié)作圖則著重表現(xiàn)交互對(duì)象的靜態(tài)鏈接關(guān)系。但即使他們各有側(cè)重,但從語義上來說是等價(jià)的,可從一種圖自動(dòng)轉(zhuǎn)換為另一種圖。一般情況下,當(dāng)需要強(qiáng)調(diào)消息傳遞的時(shí)間順序時(shí),采用順序圖;當(dāng)表示涉及很多對(duì)象的模型時(shí),協(xié)作圖比順序圖更形象。順序圖在分析中更常用,而協(xié)作圖則在設(shè)計(jì)中更常用。7.5考慮銀行系統(tǒng)中的帳戶會(huì)有哪幾種狀態(tài),畫出帳戶對(duì)象的狀態(tài)圖。賬戶的狀態(tài)包括開戶、正常使用、透支、休眠、凍結(jié)和注銷。賬戶對(duì)象的狀態(tài)圖如下圖所示。第8章面向?qū)ο蠓治?.1比較面向?qū)ο蟮姆治龇椒ê兔嫦驍?shù)據(jù)流的分析方法,闡述它們各自的特點(diǎn)。面向?qū)ο蟮姆治龇椒ㄊ褂糜美P蛠肀硎居脩舻墓δ苄枨?,用例模型相?dāng)于功能模型,在對(duì)用例模型進(jìn)行細(xì)化的過程中,也伴隨著對(duì)功能的分解。但面向?qū)ο蟮姆治龇椒ú⒉皇且怨δ芊纸鉃楹诵?,在獲取并分析用戶的功能需求之后,重點(diǎn)以類和對(duì)象為核心,建立對(duì)象模型,交互模型也是圍繞對(duì)象模型進(jìn)行的。面向數(shù)據(jù)流的分析方法是從建立頂層數(shù)據(jù)流圖(環(huán)境圖)開始,之后逐層對(duì)加工進(jìn)行分解。面向數(shù)據(jù)流的分析方法是以功能分解為核心的。8.2面向?qū)ο蠓治鲂枰⒌娜齻€(gè)模型是什么?面向?qū)ο蠓治鲂枰⒌?個(gè)模型是:由用例和場(chǎng)景表示的功能模型(用例模型);用類和對(duì)象表示的靜態(tài)模型(對(duì)象模型);由狀態(tài)圖和順序圖表示的動(dòng)態(tài)模型(交互模型)。8.3用例建模的主要步驟是什么?用例建模的主要步驟如下:確定業(yè)務(wù)參與者──可以是與系統(tǒng)有交互的外部硬件、軟件、組織、人等。確定業(yè)務(wù)需求用例──參與者需要系統(tǒng)提供的完整功能。創(chuàng)建用例圖──標(biāo)識(shí)參與者與用例之間、用例與用例之間的關(guān)系。8.5用例與用例之間的關(guān)系主要有哪兩種?其區(qū)別是什么?用例之間的關(guān)系主要有《包含》(也稱《使用》)和《擴(kuò)展》?!栋繁硎疽粋€(gè)用例所執(zhí)行的功能中總是包括被包含用例的功能;《擴(kuò)展》是指一個(gè)用例的執(zhí)行可能需要由其他用例的功能來擴(kuò)展,《擴(kuò)展》聯(lián)系可用于對(duì)期望或可選的行為建模,但其主要用途是使基本用例的功能不依賴于擴(kuò)展用例。8.6對(duì)于復(fù)雜的系統(tǒng),其對(duì)象模型應(yīng)該由哪五個(gè)層次組成?對(duì)于復(fù)雜的系統(tǒng),對(duì)象模型應(yīng)該由下述5個(gè)層次組成:主題層(也稱為范疇層)、類-對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層,如圖所示。對(duì)象模型的五個(gè)層次8.7解釋關(guān)聯(lián)類的作用,在什么時(shí)候需要使用關(guān)聯(lián)類?關(guān)聯(lián)類的作用是描述關(guān)聯(lián)的屬性。在關(guān)聯(lián)關(guān)系比較簡(jiǎn)單的情況下,關(guān)聯(lián)關(guān)系的語義用關(guān)聯(lián)關(guān)系的名字來概括。但在某些情況下,需要對(duì)關(guān)聯(lián)關(guān)系的語義做詳細(xì)的定義、存儲(chǔ)和訪問,為此可以建立關(guān)聯(lián)類(associationclass)。8.8按照以下描述,畫出UML類圖:一本教材由許多章組成,每一章包含許多節(jié)、小結(jié)和習(xí)題組成,章和節(jié)都具有標(biāo)題和序號(hào)屬性。UML類圖如下:8.9考慮一個(gè)計(jì)算機(jī)超市,出售硬件、外設(shè)和軟件。分析誰是這個(gè)系統(tǒng)的參與者?這個(gè)系統(tǒng)有哪些主要用例?畫出用例圖。系統(tǒng)的參與者:系統(tǒng)管理員(administrator),售貨員(salesperson),客戶(customer)。主要用例編號(hào)參與者用例說明1administratorMaintainproductinformation(維護(hù)商品信息)增加、修改、刪除商品信息(商品編號(hào)、名稱、型號(hào)、價(jià)格)2Maintainmembershipinformation(維護(hù)會(huì)員信息)增加、修改、刪除會(huì)員信息(會(huì)員編號(hào)、姓名、身份證號(hào)、辦卡日期)3salespersonScanmembershipcard(掃描會(huì)員卡)在商品出售之前,系統(tǒng)通過掃描儀刷卡(會(huì)員卡)來確認(rèn)顧客的會(huì)員身份4Scanproductcode(掃描商品的條形碼)通過掃描商品的條形碼,自動(dòng)識(shí)別商品的名稱和價(jià)格5Inputamountofproduct(輸入商品數(shù)量)對(duì)于已經(jīng)掃描的條形碼,手工輸入購(gòu)買的此件商品的數(shù)量6salesperson,customerAcceptpayment(接收現(xiàn)金付款)Chargepaymenttocard(使用銀行卡付款)7salespersonPrintreceipt(打印收據(jù))用例圖如下:第10章面向?qū)ο笤O(shè)計(jì)10.1軟件模塊之間的依賴性可以從哪些角度和抽象層次進(jìn)行分析?在面向?qū)ο筌浖校R姷能浖K有類、接口、包、構(gòu)件。因此,分析軟件模塊之間的依賴性就可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安裝工程綜合險(xiǎn)種2024年保險(xiǎn)協(xié)議
- 2024跨國(guó)勞務(wù)輸出協(xié)議范例
- 2024食堂運(yùn)營(yíng)管理承包協(xié)議條款細(xì)則
- 2024年協(xié)議執(zhí)行保證金協(xié)議格式指南
- 2024屆THUSSAT北京市清華大學(xué)中學(xué)高三下學(xué)期領(lǐng)軍考試數(shù)學(xué)試題
- 保姆服務(wù)協(xié)議:老年照護(hù)專項(xiàng)
- 2024年專業(yè)接駁車配件訂購(gòu)協(xié)議格式
- DB11∕T 1650-2019 工業(yè)開發(fā)區(qū)循環(huán)化技術(shù)規(guī)范
- 2024年工程現(xiàn)場(chǎng)工長(zhǎng)職務(wù)聘用協(xié)議
- 2024年財(cái)務(wù)總監(jiān)職業(yè)協(xié)議范本
- 經(jīng)期延長(zhǎng)1課件
- 生物醫(yī)學(xué)傳感-生物傳感器課件
- 安全警示標(biāo)示牌整方案
- 三年級(jí)數(shù)學(xué)單位換算練習(xí)題
- 同仁堂-老字號(hào)的營(yíng)銷典范案例分析課件
- 質(zhì)量員培訓(xùn)教程(質(zhì)量標(biāo)準(zhǔn))課件
- 護(hù)理對(duì)講系統(tǒng)施工技術(shù)方案
- STCW公約馬尼拉修正案(中文譯稿草稿)
- 園林空間設(shè)計(jì)課件
- 醫(yī)院手術(shù)室進(jìn)修匯報(bào)課件
- 提灌站施工組織設(shè)計(jì)方案word版
評(píng)論
0/150
提交評(píng)論