《軟件工程》作業(yè)及答案_第1頁(yè)
《軟件工程》作業(yè)及答案_第2頁(yè)
《軟件工程》作業(yè)及答案_第3頁(yè)
《軟件工程》作業(yè)及答案_第4頁(yè)
《軟件工程》作業(yè)及答案_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余30頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、軟件工程作業(yè)第一章1什么是軟件危機(jī),它有哪些典型表現(xiàn)?答: 軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系 列嚴(yán)重問題。概括地說,軟件危機(jī)包含下述兩方面的問題:如何開發(fā) 軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求; 如何維護(hù)數(shù)量不斷膨脹的已有 軟件。軟件危機(jī)典型表現(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) 率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。產(chǎn)生軟件危機(jī)的原因: 一方面與軟件本身的

2、特點(diǎn)有關(guān), 另一方面也和 軟件開發(fā)與維護(hù)的方法不正確有關(guān)。 軟件不同于硬件, 它是計(jì)算機(jī)系 統(tǒng)中的邏輯部件而不是物理部件。 管理和控制軟件開發(fā)過程相當(dāng)困難。軟件是規(guī)模龐大, 而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上 升。目前相當(dāng)多的軟件專業(yè)人員對(duì)軟件開發(fā)和維護(hù)還有不省糊涂觀念, 在實(shí)踐過程中或多或少地采用了錯(cuò)誤的方法和技術(shù), 這是使軟件問題 發(fā)展成軟件危機(jī)的主要原因。2簡(jiǎn)述產(chǎn)生軟件危機(jī)的原因和解決的思路。答:軟件危機(jī)產(chǎn)生的原因一方面與軟件本身的特點(diǎn)有關(guān),另一方面,是與已有軟件開發(fā)、維護(hù)的方法不正確有密切關(guān)系。解決軟件危機(jī),既要有技術(shù)措施 (方法和工具 ),又要有必要的組織管理措施。即采用工

3、程化的原則和方法組織軟件開發(fā)是擺脫軟件危機(jī) 的一個(gè)主要出路。3什么是軟件工程?它有哪些本質(zhì)特性?答: 軟件工程是指導(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ù)它。軟件工程本質(zhì)特性: 1、軟件工程關(guān)注于大型程序的構(gòu)造; 2、軟件工程的中心課題是控制復(fù)雜性; 3、軟件經(jīng)常變化; 4、開發(fā)軟件的效率非常重要; 5、和諧地合作是開發(fā)軟件的關(guān)鍵; 6、軟件必須有效地支持它的用戶; 7、在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景

4、的人創(chuàng)造產(chǎn)品。4軟件工程是如何用來消除軟件危機(jī)的?軟件工程是從技術(shù)和管理兩個(gè)方面來研究如何更好地開發(fā)和維護(hù)計(jì) 算機(jī)軟件,從源頭上消除軟件危機(jī)。5.假設(shè)你是某軟件開發(fā)企業(yè)的 CEO,當(dāng)你把教材P.4的圖1.1給手下的軟件工程師們看, 同時(shí)告訴他們應(yīng)及早發(fā)現(xiàn)并改正錯(cuò)誤的重要性 時(shí),有人不以為然, 認(rèn)為要求在錯(cuò)誤進(jìn)入軟件前就發(fā)現(xiàn)并清除它們是 不現(xiàn)實(shí)的,并舉例說:“如果一個(gè)故障是編碼錯(cuò)誤造成的,那么又如 何能夠在設(shè)計(jì)階段就發(fā)現(xiàn)并清除呢?”那你應(yīng)該如何說服? 關(guān)錯(cuò)誤是難免,首先要對(duì)錯(cuò)誤造成工作的延誤或一些問題表示歉意。鍵是要虛心接受, 在以后工作中要更加認(rèn)真, 避免錯(cuò)誤機(jī)率降到最低。在編碼過程中要,首先

5、要在頭腦清醒,要保持工作前有足夠的睡眠。這樣錯(cuò)誤機(jī)會(huì)也會(huì)降小。在編程結(jié)束后,首先要驗(yàn)證,是否能正常運(yùn) 行或工作。再以后的工作更要虛心,認(rèn)真,保證這種機(jī)會(huì)降到最低6簡(jiǎn)述軟件的定義。軟件=程序+數(shù)據(jù)+文檔7軟件工程的目的是什么?為高質(zhì)量的軟件開發(fā)提供一個(gè)科學(xué)的體系框架。8什么是軟件工程方法學(xué)?軟件工程是一種什么樣的技術(shù)?包括哪三大要素?分為哪三個(gè)分支? 軟件工程方法學(xué)就是指在軟件生命周期全過程中使用的一整套管理 和開發(fā)技術(shù)方法的集合。 目前,使用最廣泛的軟件工程方法學(xué)分別是 傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。軟件工程作為一種層次化的技術(shù),有方法、工具和過程三大要素, 并由于其涉及學(xué)科內(nèi)容的極為廣泛, 而

6、分為三個(gè)分支: 軟件開發(fā)技術(shù)、 軟件項(xiàng)目管理技術(shù)、軟件質(zhì)量管理技術(shù)。9簡(jiǎn)述軟件工程的基本原理。軟件工程有 7 條基本原理:1嚴(yán)格按照軟件生命周期計(jì)劃進(jìn)行管理2 堅(jiān)持進(jìn)行階段評(píng)審3 實(shí)行嚴(yán)格的產(chǎn)品控制采用先進(jìn)的程序設(shè)計(jì)技術(shù) 45結(jié)果應(yīng)能清楚的審查 6開發(fā)小組成員應(yīng)少而精 7承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 10軟件工程的基本開發(fā)原則有哪些?軟件工程的基本開發(fā)原則有:1模塊化 2 抽象和信息隱蔽3 模塊的高內(nèi)聚和低耦合4 確定性5一致性 6完備性 11構(gòu)成軟件工程的基本元素有哪些?除了前面給出的軟件工程三大要素, 還應(yīng)該包括控制和質(zhì)量保證。 這 里的控制,即規(guī)??刂?、成本控制、復(fù)雜性控制等。12什

7、么是軟件過程?它與軟件工程方法學(xué)有何關(guān)系?軟件過程是指為了獲得高質(zhì)量軟件產(chǎn)品, 在軟件工具支持下, 由軟件 人員完成的一系列軟件工程活動(dòng)。軟件過程規(guī)定了開發(fā)軟件所需完成的各項(xiàng)任務(wù)步驟。過程步驟的設(shè) 定與軟件生命周期、生命周期模型、軟件開發(fā)工具,以及參與開發(fā)的 人員等諸方面因素有關(guān)。13什么是軟件生命周期?什么是軟件生命周期模型?成熟、成長(zhǎng)、誕生、都有其孕育、軟件如同自然界任何事物一樣, : 答衰亡的生存過程。軟件的這一過程,稱為軟件生命周期。軟件生命周期模型也稱軟件開發(fā)過程模型,是為了解決產(chǎn)業(yè)環(huán)境中 的實(shí)際問題,而提出的開發(fā)策略。是反映整個(gè)軟件生命期中,系統(tǒng)開 發(fā)、運(yùn)行、維護(hù)等實(shí)施活動(dòng)的一種結(jié)

8、構(gòu)框架。14簡(jiǎn)述軟件生命周期方法學(xué)的途徑, 以及劃分階段步驟的目的和實(shí) 質(zhì)。軟件生命周期方法學(xué)是軟件工程的傳統(tǒng)途徑, 劃分階段步驟的目的和 實(shí)質(zhì)是:控制開發(fā)工作的復(fù)雜性,通過有限步驟,把抽象邏輯概念, 轉(zhuǎn)化為具體物力實(shí)現(xiàn)。15試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點(diǎn),說明它們各自的適用范圍。1瀑布模型。瀑布模型廣為人知和歷史悠久,其優(yōu)勢(shì)是規(guī)范及文檔驅(qū)動(dòng)的方法。但問題是,往往不能夠真正滿足用戶的需求。適用于傳統(tǒng)軟件工程領(lǐng)域的結(jié)構(gòu)化開發(fā)。2 原型模型。是為了克服瀑布模型的缺點(diǎn)而提出來的。通過快速構(gòu)建一個(gè)在機(jī) 器上可運(yùn)行的原型系統(tǒng),讓用戶試用原型,并收集反饋意見的辦法, 來獲取用戶真

9、實(shí)的需求。3螺旋模型。螺旋模型適用于大型軟件項(xiàng)目,比起之前的其它模型而言,有其定的優(yōu)越性, 但這些優(yōu)越性并不是絕對(duì)的。 主要體現(xiàn)在對(duì)開發(fā)人員 而開發(fā)如果項(xiàng)目風(fēng)險(xiǎn)較大, 的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí)的要求較高。人員的水平較低,不能準(zhǔn)確的識(shí)別和分析風(fēng)險(xiǎn), 則勢(shì)必造成重大損失。4增量模型。具有在軟件開發(fā)早期階段使投資獲得明顯回報(bào)和交易維護(hù)的優(yōu)點(diǎn),但是要求軟件具有開放的結(jié)構(gòu)。第二章1在軟件開發(fā)的早期階段,為什么要進(jìn)行可行性研究?其目的和任務(wù)各是什么? 可行性研究的目的是用最小的代價(jià), 在盡可能短的時(shí)間內(nèi)確定問題是 否可解決,以及是否值得解決??尚行匝芯康娜蝿?wù)不是解決問題,而是確定是否可解 /值得解。2應(yīng)該

10、從哪些方面研究目標(biāo)系統(tǒng)的可行性?主要從以下幾個(gè)方面進(jìn)行可行性研究:1. 技術(shù)可行性。以現(xiàn)有技術(shù),能否在預(yù)定時(shí)間內(nèi)完成該系統(tǒng)開發(fā)。2. 經(jīng)濟(jì)可行性。通過成本 -效益分析,估算系統(tǒng)的整體經(jīng)濟(jì)效益是否滿足要求。3. 操作可行性。分析系統(tǒng)的運(yùn)行方式、操作規(guī)程是否適應(yīng)用戶應(yīng)用需要。4. 社會(huì)可行性。分析系統(tǒng)在法律、社會(huì)、市場(chǎng)等方面的認(rèn)可度。3可行性研究有哪些工作步驟?(1) 復(fù)查定義, 確定系統(tǒng)規(guī)模和目標(biāo)。 (2) 研究老系統(tǒng) (3) 導(dǎo)出高層邏輯模型 (conceptual design) (4) 重新定義 (5) 導(dǎo)出多種解法 (6) 推薦行動(dòng)方針 (7) 開發(fā)計(jì)劃 (粗略 )(8) 審查、存檔4簡(jiǎn)

11、述系統(tǒng)流程圖在可行性研究中的作用。系統(tǒng)流程圖是概括的描述物理系統(tǒng)的傳統(tǒng)工具。 系統(tǒng)流程圖反映的是 信息在系統(tǒng)各部分間流動(dòng)的情況。 系統(tǒng)流程圖可以幫助了解和分析系統(tǒng), 以概括的方式表達(dá)對(duì)系統(tǒng)的認(rèn) 識(shí),并可以描述未來物理系統(tǒng)的概貌。5簡(jiǎn)述數(shù)據(jù)流圖在可行性研究中的作用和用途。數(shù)據(jù)流圖在可行性分析中可以幫助分析和描繪數(shù)據(jù)在軟件中流動(dòng)和 被處理的邏輯過程, 用圖形的方式描述系統(tǒng)的邏輯功能, 是系統(tǒng)分析 員和用戶之間理想的通信工具。6簡(jiǎn)單描述數(shù)據(jù)字典但內(nèi)容和定義數(shù)據(jù)的方法。數(shù)據(jù)字典主要由下列 4 種元素定義組成:1數(shù)據(jù)流 2數(shù)據(jù)流分量 3數(shù)據(jù)存儲(chǔ) 4處理除了數(shù)據(jù)定義外,數(shù)據(jù)字典還應(yīng)包含一些關(guān)于數(shù)據(jù)的其它信

12、息。定義數(shù)據(jù)的方法通常采用自頂向下分解的方式。并由順序、選擇、重 復(fù)三種基本數(shù)據(jù)元素類型組成數(shù)據(jù)。7說明軟件計(jì)劃的內(nèi)容和目標(biāo)。軟件計(jì)劃的內(nèi)容 =項(xiàng)目任務(wù)范圍+環(huán)境資源+工作量+進(jìn)度 軟件計(jì)劃的目標(biāo)是為了提供一個(gè)框架, 以便于管理者對(duì)資源、 成本和 進(jìn)度等進(jìn)行合理的估算。8什么是軟件范圍?定義軟件范圍需要哪些信息?軟件范圍就是在技術(shù)和管理層面上都是無二義性和可理解的項(xiàng)目范 圍,是軟件開發(fā)各階段的工作依據(jù)。定義軟件范圍需要以下信息:a. 與用戶、總體目標(biāo)及利益相關(guān)的問題。 b. 有利于系統(tǒng)分析員理解 集中于交流效果的問題。 c. 的問題。9簡(jiǎn)述軟件開發(fā)環(huán)境資源的三個(gè)層次。軟件開發(fā)環(huán)境資源由三個(gè)層次

13、構(gòu)成: 開發(fā)環(huán)境、 軟件構(gòu)件以及最重要 的資源10軟件環(huán)境資源的特征有哪些?它們對(duì)制定軟件計(jì)劃都有哪些意義? 每一類資源都有四個(gè)特征: 資源描述、可用性說明和資源提供的時(shí)間、 資源使用的延續(xù)時(shí)間。可以為制定軟件計(jì)劃估算軟件開發(fā)所需的資源。11軟件計(jì)劃中, 安排軟件開發(fā)進(jìn)度主要可以用哪些工具?都有哪些 優(yōu)缺點(diǎn)? 編制進(jìn)度計(jì)劃的常用工具主要有甘特圖和網(wǎng)絡(luò)計(jì)劃法。甘特圖的優(yōu)點(diǎn)是簡(jiǎn)單, 能動(dòng)態(tài)地反映開發(fā)進(jìn)展; 缺點(diǎn)是難以反映多個(gè) 任務(wù)間的邏輯關(guān)系。網(wǎng)絡(luò)計(jì)劃法則恰好彌補(bǔ)了甘特圖的缺點(diǎn), 最適合反映多個(gè)工作之間的 邏輯關(guān)系。12主要的成本估計(jì)技術(shù)有哪些?其依據(jù)的主要是什么?主要有,代碼行技術(shù)。是一種基于規(guī)

14、模的分解估算:D二?f(vi)以及基于問題的分解估算:EV = (Sopt+4Sm+Spess)/6還有功能點(diǎn)技術(shù)。這種技術(shù)以功能點(diǎn)(FP)為單位,度量軟件的規(guī)模。由于項(xiàng)目本身的復(fù)雜性,因此,成本估計(jì)技術(shù)主要采用“分而治之” 的分解技術(shù)對(duì)軟件項(xiàng)目進(jìn)行估算。13為什么說成本估計(jì)是不可能精準(zhǔn)的?復(fù)雜性等等,策略、環(huán)境、技術(shù)、那是由于太多的變化因素人員、 使得成本估算永遠(yuǎn)不可能精確。14進(jìn)行成本 /效益分析的方法主要有哪些?常用成本 /效益分析的方法主要有: (1) 貨幣的時(shí)間價(jià)值 (2) 投資回收期 (3) 純收入(4) 投資回收率15軟件計(jì)劃的主要內(nèi)容有哪些? 16如何對(duì)制定完成的軟件計(jì)劃進(jìn)行復(fù)

15、審?為什么要復(fù)審?軟件計(jì)劃的復(fù)審?fù)ǔI婕坝嘘P(guān)軟件工作范圍和軟硬件資源問題等。 復(fù) 審應(yīng)該邀請(qǐng)用戶參加, 用戶可提出建議, 并與開發(fā)人員最終商定內(nèi)容。復(fù)審內(nèi)容分為技術(shù)和管理兩個(gè)方面: 技術(shù)方面需要考慮的問題有:1.系統(tǒng)的任務(wù)是否合理; 2.系統(tǒng)的給你復(fù)雜性是否與開發(fā)成本、進(jìn)度以及風(fēng)險(xiǎn)一致;3.系統(tǒng)規(guī)格說明書是否足夠充分;4.系統(tǒng)性能要求是否恰當(dāng)管理方面需要考慮的問題有:1.計(jì)劃中描述的工作范圍是否符合用戶需求2.計(jì)劃中對(duì)資源的描述是否有效、合理?3.計(jì)劃中系統(tǒng)的開發(fā)成本與進(jìn)度要求是否合理? 4.計(jì)劃中人員的安排是否合理?5.系統(tǒng)開發(fā)存在哪些風(fēng)險(xiǎn)?復(fù)審可以盡早發(fā)現(xiàn)錯(cuò)誤,復(fù)審是軟件質(zhì)量保證的重要措施

16、。第三章1為什么要進(jìn)行需求分析?通常對(duì)軟件系統(tǒng)有哪些需求?需求問題是軟件工程項(xiàng)目失敗的主要原因。 一個(gè)高質(zhì)量的軟件, 很大 程度上取決于對(duì)要解決的問題的認(rèn)識(shí), 以及如何準(zhǔn)確的表達(dá)用戶的需 求。需求分析就是要解決這個(gè)問題。通常,對(duì)一個(gè)軟件系統(tǒng)的需求可 以有功能需求、性能需求、可靠性和可用性需求、出錯(cuò)處理需求、接 口需求等多個(gè)方面。2怎樣與用戶有效地溝通,以獲得用戶的真實(shí)需求?訪談、情景分析, 以及面向數(shù)據(jù)流的自頂向下求精等方法,編制簡(jiǎn)易 的系統(tǒng)規(guī)格說明文檔,創(chuàng)建原型等,是獲取真實(shí)需求的有效方法。3需求分析的任務(wù)是什么?確定對(duì)待開發(fā)系統(tǒng)的綜合要求。4通常系統(tǒng)的需求可以分為哪幾個(gè)層次?般可以分成 5

17、 個(gè)層次:(1) 功能需求:系統(tǒng)必須做什么?(2) 業(yè)務(wù)需求:反映客戶組織機(jī)構(gòu)對(duì)系統(tǒng)高層次的目標(biāo)要求。(3) 運(yùn)行需求:運(yùn)行環(huán)境、軟硬件配置等。(4) 屬性需求:包括用戶關(guān)心的屬性,如效率、靈活性、完整性、可 靠性等;開發(fā)者關(guān)心的屬性,如可維護(hù)性、可復(fù)用性、可移植性等。(5) 未來可能的擴(kuò)充需求:如 HDIS 各組的合并, 3 維虛擬現(xiàn)實(shí)的效 果等等。5進(jìn)行需求分析的步驟有哪些? 1確定系統(tǒng)的綜合要求 2分析系統(tǒng)的數(shù)據(jù)要求 3導(dǎo)出邏輯模型 4修正系統(tǒng)開發(fā)計(jì)劃6簡(jiǎn)述建立原型模型對(duì)軟件需求分析的作用??梢钥焖贅?gòu)建旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行程序, 幫助用戶確 定及提供更為精準(zhǔn)的需求,以利用戶和

18、開發(fā)者能夠在目標(biāo)系統(tǒng)應(yīng)該做什么”這一問題上盡快達(dá)成一致。7解釋實(shí)體 -聯(lián)系圖及其用途。實(shí)體-聯(lián)系圖是按照用戶的觀點(diǎn)對(duì)數(shù)據(jù)建立的模型。描述從用戶角度 看到的數(shù)據(jù), 反映用戶的現(xiàn)實(shí)環(huán)境, 并且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法 無關(guān)。8說明為什么需要進(jìn)行需求驗(yàn)證及驗(yàn)證的步驟有哪些?進(jìn)行需求驗(yàn)證是為了確保軟件開發(fā)的質(zhì)量, 降低開發(fā)成本。 通常對(duì)需 求進(jìn)行驗(yàn)證的步驟有:驗(yàn)證需求的一致性、驗(yàn)證需求的現(xiàn)實(shí)性、驗(yàn)證 需求的完整性和有效性。9銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過程大致如下:儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)人員鍵入系統(tǒng), 如果是存款則系統(tǒng)記錄存款人姓名、 住址 (或電話號(hào)碼 )、身份證號(hào)碼、存款類型、存款日期、到期日

19、期、利率及密碼 (可選)等信息,并印出存單給儲(chǔ)戶;如果是取款而且存款時(shí)留有密碼,則系統(tǒng)首先核對(duì)儲(chǔ)戶密碼, 若密碼正確或存款時(shí)未留密碼, 則系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶。并用實(shí)體聯(lián)系圖描繪系統(tǒng)中的數(shù)請(qǐng)用數(shù)據(jù)流圖描繪本系統(tǒng)的功能,據(jù)對(duì)象。第四章1為每種類型的模塊耦合舉一個(gè)具體的例子。耦合分別是:內(nèi)容耦合,共用耦合(公共環(huán)境耦合) ,控制耦合,印 記耦合(特征耦合),數(shù)據(jù)耦合2為每種類型的模塊內(nèi)聚舉一個(gè)具體的例子。內(nèi)聚分別是:偶然內(nèi)聚,邏輯內(nèi)聚,時(shí)間內(nèi)聚,過程內(nèi)聚,通信內(nèi)聚, 順序內(nèi)聚,功能內(nèi)聚,信息內(nèi)聚3簡(jiǎn)單說明系統(tǒng)總體設(shè)計(jì)的步驟步驟。典型的總體設(shè)計(jì)包括以下 9 個(gè)步驟:1、確定最佳方案 2、

20、選取合理方案 3、推薦最佳方案 4、功能分解 5、軟件結(jié)構(gòu)設(shè)計(jì)6、設(shè)計(jì)數(shù)據(jù)庫(kù) 7、制定測(cè)試計(jì)劃 8、書寫文檔 9、審查和復(fù)審4舉例說明模塊化原理的經(jīng)驗(yàn) 1 和經(jīng)驗(yàn) 2。5為什么要盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范 圍,完全不用內(nèi)容耦合? 減少模塊之間的關(guān)聯(lián)度,提高模塊的獨(dú)立性。因?yàn)閮?nèi)容耦合會(huì)導(dǎo)致一個(gè)模塊修改另一個(gè)模塊的內(nèi)容, 使得程序邏輯 發(fā)生嚴(yán)重問題。而公共耦合是若干模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用, 公共部分的 改動(dòng)將影響所有調(diào)用它的模塊, 公共部分的數(shù)據(jù)存取無法控制, 并且 復(fù)雜程度也會(huì)隨耦合模塊的個(gè)數(shù)增加而增加??刂岂詈鲜且粋€(gè)模塊通過傳遞開關(guān)、標(biāo)志、名字等控制信息,明顯地

21、 控制選擇另一個(gè)模塊的功能。 由于接口單一, 因此仍然會(huì)影響被控模 塊的內(nèi)部邏輯。而數(shù)據(jù)耦合只是模塊間通過數(shù)據(jù)參數(shù)來交換 I/O 信息,因此不會(huì)對(duì)其 它模塊產(chǎn)生任何等影響。6為什么模塊的規(guī)模要適中?過大不易理解;太小則接口開銷過大。7請(qǐng)說明為什么模塊控制的寬度和深度要適度。深度過大表示分工過細(xì), 而寬度過大則表示系統(tǒng)復(fù)雜度大, 所以模塊 控制的寬度和深度要適度。8簡(jiǎn)述面向數(shù)據(jù)流設(shè)計(jì)方法的基本思想。將由數(shù)據(jù)流圖描繪的信息在系統(tǒng)中加工和流動(dòng)的情況映射成軟件結(jié) 構(gòu)。9常用數(shù)據(jù)流類型有哪些?變換流和事務(wù)流。10面向數(shù)據(jù)流的設(shè)計(jì)方法主要有哪幾個(gè)步驟?主要有下面 7 個(gè)步驟:1復(fù)查基本系統(tǒng)模型 2復(fù)查并精

22、化數(shù)據(jù)流圖 3確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性4確定輸入流和輸出流動(dòng)邊界,從而孤立出變換中心5完成“第一級(jí)分解”6完成“第二級(jí)分解” 7使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化系統(tǒng)的軟件結(jié)構(gòu)。 17用面向數(shù)據(jù)流的方法設(shè)計(jì)第二章習(xí)題 11第五章1詳細(xì)設(shè)計(jì)的任務(wù)是什么?包括模塊的算法設(shè)計(jì)、模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、模塊接口設(shè)計(jì)、其它 根據(jù)軟件特點(diǎn)需要完成的設(shè)計(jì)、模塊測(cè)試用例設(shè)計(jì)、設(shè)計(jì)文檔編寫、設(shè)計(jì)評(píng)審。2在對(duì)系統(tǒng)做詳細(xì)設(shè)計(jì)時(shí),應(yīng)遵循哪些原則?模塊的邏輯描述應(yīng)清晰易讀、正確可靠;設(shè)計(jì)的處理過程應(yīng)該簡(jiǎn)明易懂;選擇恰當(dāng)?shù)拿枋龉ぞ邅砻枋瞿K算法。3簡(jiǎn)述結(jié)構(gòu)化設(shè)計(jì)的特點(diǎn)。自頂向下、逐步求

23、精;具有單入、單出的控制結(jié)構(gòu)(取消GOTO 語句)4結(jié)構(gòu)化程序設(shè)計(jì)中有哪幾種基本控制結(jié)構(gòu)?分別描繪在程序流程圖、盒圖和 PDA 圖中這些基本控制的圖例。PDA 圖中這些基本控制的圖例。(1) 順序結(jié)構(gòu) (2) 選擇結(jié)構(gòu) (3) 先判定型循環(huán)結(jié)構(gòu) (4) 后判定型循環(huán)結(jié) 構(gòu) (5) 多情況選擇5.假設(shè)只有SEQUENCE和DO_WHILE兩種控制結(jié)構(gòu),請(qǐng)問應(yīng)該如何完成 IF_THEN_ELSE 操作?6假設(shè)只有 SEQUENCE 和 IF_THEN_ELSE 兩種控制結(jié)構(gòu),請(qǐng)問應(yīng) 該如何完成 DO_WHILE 操作?PDA為什么要建議停止使用程序流程圖,而推薦使用ISO.試說明7.圖? 由于程序

24、流程圖中的GOTO語句回嚴(yán)重地?fù)p害程序結(jié)構(gòu),而無法實(shí) 行結(jié)構(gòu)化設(shè)計(jì)。 PDA 圖則既吸取了程序流程圖好學(xué)、好用、好懂, 方便、靈活的優(yōu)點(diǎn),又保留了 N-S圖結(jié)構(gòu)化設(shè)計(jì)的特點(diǎn),很好地滿足了軟結(jié)構(gòu)構(gòu)設(shè)計(jì)圖形工具的要求,以及PDA圖所具有的 結(jié)構(gòu)清晰, 層次分明,易讀; 支持逐步求精的設(shè)計(jì)思想; 容易將PAD自 動(dòng)轉(zhuǎn)換為高級(jí)語言源程序等特點(diǎn),因此,ISO要推薦使用PDA圖。8請(qǐng)畫出下列偽碼程序的程序流程圖、盒圖和PDA圖。STARTIF p THENWHILE q DOEND DOELSEBLOCKEND BLOCKEND IFSTOP 9.試說明Jackson方法是一種怎么樣的程序設(shè)計(jì)方法。它有哪

25、些工 作 步驟?Jackson方法是以數(shù)據(jù)結(jié)構(gòu)(data structure為基礎(chǔ)設(shè)計(jì)每個(gè)模塊的處理過程,將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化成程序結(jié)構(gòu)。具體工作步驟有:第 1 步:用Jacks。n圖描述10的數(shù)據(jù)結(jié)構(gòu);第2步:在兩個(gè)圖中指出有直接因果關(guān)系、可以同時(shí)處理的單元 ;第 3步:將數(shù)據(jù)結(jié)構(gòu)映射到程序結(jié)構(gòu) ;第 4步:列出所有操作條件,并分配到上幅程序結(jié)構(gòu)圖中 ;第5步:用P seudocode表示程序 10.請(qǐng)將教材P .12 4圖6.13統(tǒng)計(jì)空格程序的Jacks on圖改畫成為等價(jià)的盒圖和 PDA 圖。11 人機(jī)對(duì)話由操作員信息和系統(tǒng)信息交替組成。 假設(shè)一段對(duì)話總是由操作員信息開始,以系統(tǒng)信息結(jié)束,請(qǐng)用

26、Jackso n圖描繪這樣的一段人機(jī)對(duì)話過程。第六章1說明什么是程序編碼?為什么程序設(shè)計(jì)語言的特點(diǎn)和編碼風(fēng)格會(huì)影響到程序的可靠性、可讀性、可測(cè)試性和可維護(hù)性? 所謂“編碼”,就是將在低級(jí)抽象層次得到的詳細(xì)設(shè)計(jì)結(jié)果,翻譯成 用某種程序設(shè)計(jì)語言書寫的程序。是軟件設(shè)計(jì)的自然結(jié)果。而程序設(shè)計(jì)語言是否有理想的結(jié)構(gòu)化、 模塊化機(jī)制, 是否有可讀性好 的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)等特性, 以及程序設(shè)計(jì)語言提供的編譯、 軟件 工具等,再加上程序的設(shè)計(jì)風(fēng)格會(huì)很深刻的影響軟件的質(zhì)量和可維護(hù) 性、可測(cè)試性、可靠性等。2用戶界面設(shè)計(jì)的最一般原則,即所謂“黃金規(guī)則”是什么? 1.置用戶于控制之下; 2.減少用戶的記憶負(fù)擔(dān); 3

27、.保持界面一致。3軟件界面設(shè)計(jì)包含了哪幾個(gè)方面的基本內(nèi)容?界面設(shè)計(jì)包括三個(gè)方面: 1.軟件構(gòu)件間接口; 2.軟件與其它系統(tǒng)的接口; 3.軟件與操作者之間的接口,即用戶界面。4用戶界面提供系統(tǒng)服務(wù)的方式通常有哪兩種?命令驅(qū)動(dòng)和屏幕菜單驅(qū)動(dòng)5. WIMf界面是屏幕菜單驅(qū)動(dòng)用戶界面的一種形式,其設(shè)計(jì)準(zhǔn)則有哪些?(1) 明確的動(dòng)作:在屏幕上指點(diǎn)并操縱對(duì)象 (2) 即時(shí)反饋:操作結(jié)構(gòu) 即見(3) 增量效應(yīng):圖標(biāo)應(yīng)被拖曳連續(xù)移動(dòng), 而非跳躍 (4) 可視交互:交 互 操作與用戶概念模型匹配(5) 剝皮式學(xué)習(xí):學(xué)習(xí)系統(tǒng)功能復(fù)雜性逐層加深 (6) 可逆動(dòng)作:也即 應(yīng)有退回操作(7) 事先驗(yàn)證:只允許合法操作產(chǎn)

28、生效果6為什么說軟件界面設(shè)計(jì)的質(zhì)量會(huì)直接影響到用戶對(duì)軟件產(chǎn)品的評(píng)價(jià)? 用戶界面(User-i nteface)又稱人機(jī)界面(ma n-co mpu ter in terface),是用戶和計(jì)算機(jī)聯(lián)系的中間媒介,是系統(tǒng)中最重要、最關(guān)鍵的部分之一。用戶界面設(shè)計(jì)的好壞,直接影響到系統(tǒng)設(shè)計(jì)的成敗。這是因?yàn)? 如果一個(gè)界面設(shè)計(jì)的不好, 也即通常所說的用戶界面不友 好,可以使用戶在使用時(shí)感到不便,甚至制造麻煩,系統(tǒng)就難以發(fā)揮 應(yīng)有的效益,甚至可能被用戶棄用。7什么是系統(tǒng)響應(yīng)時(shí)間?系統(tǒng)響應(yīng)時(shí)間有哪些重要屬性?系統(tǒng)響應(yīng)時(shí)間指從用戶完成某個(gè)控制動(dòng)作, 到系統(tǒng)給出預(yù)期響應(yīng)的時(shí) 間。系統(tǒng)響應(yīng)時(shí)間有 2 個(gè)重要的屬性

29、:長(zhǎng)度和易變性。8在設(shè)計(jì)軟件系統(tǒng)的用戶幫助設(shè)施時(shí),需要注意解決哪些問題? 1在用戶與系統(tǒng)交互期間,是否任何時(shí)候都能獲得關(guān)于系統(tǒng)任何功能的幫助信息?2用戶怎樣請(qǐng)求幫助? 3怎樣顯示幫助信息? 4用戶怎樣返回到正常的交互方式中? 5怎樣組織幫助信息? 9軟件出錯(cuò)處理設(shè)計(jì), 即軟件安全性設(shè)計(jì)。 一個(gè)交互式出錯(cuò)處理程 序 應(yīng)該具備哪些功能和屬性?1信息應(yīng)該使用用戶可以理解的術(shù)語描述。 2信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意見。3信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致的后果。 4信息應(yīng)該伴隨感官提示。5信息不能帶有指責(zé)色彩。10測(cè)試的最基本目標(biāo)是什么?以盡可能小的代價(jià),發(fā)現(xiàn)盡可能多的錯(cuò)誤。11軟件測(cè)試的原則有哪些

30、? 應(yīng)當(dāng)把“盡早和不斷的測(cè)試” 作為座右銘 測(cè)試應(yīng)由獨(dú)立的專業(yè) 測(cè)試機(jī)構(gòu)來完成 測(cè)試工作要全面,但不可能實(shí)現(xiàn)“窮舉” 只能盡可能查錯(cuò),不 能證明程序中沒有錯(cuò) 軟件測(cè)試符合2-8(Pareto原理應(yīng)妥善保存測(cè)試文檔 制定嚴(yán)格、 合理的測(cè)試計(jì)劃 錯(cuò)誤經(jīng)過修改后, 相關(guān)的測(cè)試必不 可少12軟件測(cè)試的方法有哪幾種?黑盒測(cè)試和白盒測(cè)試。13簡(jiǎn)單說明什么是白盒測(cè)試,什么是黑盒測(cè)試。黑盒測(cè)試是把程序看成一個(gè)黑盒子, 完全不考慮程序的內(nèi)部結(jié)構(gòu)和處 理過程的測(cè)試方法。黑盒測(cè)試又稱功能測(cè)試。14簡(jiǎn)述軟件測(cè)試的步驟。(1) 單元測(cè)試程序設(shè)計(jì) & 代碼 bugs(2) 子系統(tǒng)測(cè)試(3) 系統(tǒng)測(cè)試需求確認(rèn) &a

31、mp; 系統(tǒng)設(shè)計(jì) (4) 驗(yàn)收測(cè)試用戶塊連接加入 (5) 平行運(yùn)行新舊系統(tǒng)比較運(yùn)行結(jié)果15舉例說明通常情況下窮盡測(cè)試是不可能的。16為什么單元測(cè)試必須由編程者自己完成?單元測(cè)試是對(duì)程序邏輯結(jié)構(gòu)的測(cè)試。 而對(duì)程序結(jié)構(gòu)最為熟悉的, 莫過 于編程者。再者, 高質(zhì)量的程序模塊是構(gòu)造系統(tǒng)的基礎(chǔ),因此編程者 必須向下一道工序提交符合質(zhì)量要求的產(chǎn)品。17單元測(cè)試的主要手段有哪些?代碼審查、計(jì)算機(jī)測(cè)試等。18單元測(cè)試主要從哪 5 個(gè)方面進(jìn)行? 主要測(cè)試以下五個(gè)方面: 1. 模塊接口 2. 局部數(shù)據(jù)結(jié)構(gòu) 3. 重要的執(zhí) 行通路 4. 出錯(cuò)處理通路 5. 邊界條件19為什么人工代碼審查十分重要?一次審查可發(fā)現(xiàn)多個(gè)

32、錯(cuò)誤,不必改一個(gè)測(cè)一個(gè)。20集成測(cè)試主要有漸增式測(cè)試、非漸增式測(cè)試兩種,試述兩種方式的異同點(diǎn)。漸增式測(cè)試: 可以較早發(fā)現(xiàn)模塊間的接口錯(cuò)誤、 出現(xiàn)的錯(cuò)誤往往跟最 新加入的模塊有關(guān)、 在不斷集成的過程中使模塊不斷在新的條件下受 到新的檢測(cè),測(cè)試更徹底,但較非漸增式測(cè)試費(fèi)時(shí)。非漸增式測(cè)試由于最后才組裝, 因此錯(cuò)誤發(fā)現(xiàn)得晚、 發(fā)現(xiàn)錯(cuò)誤后難以 診斷定位,但可以同時(shí)并行測(cè)試所有模塊,能充分利用人力。21描述集成測(cè)試的兩種策略,并比較它們的優(yōu)缺點(diǎn)。自頂向下測(cè)試和自底向上測(cè)試兩種。自頂向下測(cè)試的優(yōu)點(diǎn)是不需要測(cè)試驅(qū)動(dòng)程序, 能夠在測(cè)試階段的早期 實(shí)現(xiàn)并驗(yàn)證系統(tǒng)的主要功能, 在早期發(fā)現(xiàn)上層模塊的接口錯(cuò)誤。 主要

33、缺點(diǎn)是需要存根程序, 可能遇到與此相聯(lián)系的測(cè)試?yán)щy, 底層模塊的 錯(cuò)誤發(fā)現(xiàn)較晚,而且對(duì)人力的使用也不利。而自底向上測(cè)試的優(yōu)缺點(diǎn)與自頂向下測(cè)試的優(yōu)缺點(diǎn)正好相反。22什么是回歸測(cè)試?回歸測(cè)試的測(cè)試用例集如何確定?回歸測(cè)試是指重新執(zhí)行已經(jīng)做過的測(cè)試的某個(gè)子集, 以保證系統(tǒng)在發(fā) 生調(diào)試、功能變化等事項(xiàng)后,沒有帶來非預(yù)期的副作用?;貧w測(cè)試的 測(cè)試用例集按以下方法確定:1檢測(cè)軟件全部功能的代表性測(cè)試用例。 2專門針對(duì)可能受修改影響的軟件功能的附加測(cè)試。3針對(duì)被修改過的軟件成分的測(cè)試。23什么是確認(rèn)測(cè)試?確認(rèn)測(cè)試的任務(wù)是什么?如何確認(rèn)其范圍?驗(yàn)收軟件的有效性 (功能和性能達(dá)標(biāo) )。確認(rèn)測(cè)試的工作范圍主要有:

34、1按合同規(guī)定審查軟件配置; 2設(shè)計(jì)測(cè)試計(jì)劃,使通過測(cè)試保證軟件能滿足所有功能、性能要求;3文檔與程序一致,具有維護(hù)階段所必須的細(xì)節(jié); 4 嚴(yán)格按用戶手 冊(cè)操作,以檢查手冊(cè)的完整性和正確性。設(shè)計(jì)測(cè)試方案的任務(wù)有哪些? 24 預(yù)定要測(cè)試的功能設(shè)計(jì)輸入的測(cè)試數(shù)據(jù)列出預(yù)期結(jié)果25什么是邏輯覆蓋測(cè)試法?它主要用于什么測(cè)試?邏輯覆蓋測(cè)試是一種對(duì)程序邏輯通路進(jìn)行覆蓋的測(cè)試, 通常適用于白 盒測(cè)試。26什么是等價(jià)劃分法?它主要用于什么測(cè)試?是一種很常用的測(cè)試方法。 其對(duì)測(cè)試數(shù)據(jù)的選擇是基于對(duì)程序功能的 分析,按照程序輸入要求和輸出要求, 選擇若干數(shù)據(jù)進(jìn)行測(cè)試功能的 過程。等價(jià)劃分法主要用于黑盒測(cè)試。27什么是

35、邊值分析法?它主要用于什么測(cè)試?根據(jù)經(jīng)驗(yàn), 在程序處理的邊界最容易發(fā)生錯(cuò)誤的地方進(jìn)行測(cè)試, 主要 用于黑盒測(cè)試。28什么是錯(cuò)誤推測(cè)法?它主要用于什么測(cè)試?利用有經(jīng)驗(yàn)的測(cè)試者對(duì)程序可能發(fā)生錯(cuò)誤的位置的推測(cè)進(jìn)行測(cè)試的 方法,主要用于黑盒測(cè)試。29一個(gè)軟件的測(cè)試策略應(yīng)該是怎樣的? 在任何情況下都應(yīng)首先使用邊界值分析的方法; 必要時(shí)用等價(jià) 劃分法補(bǔ)充; 必要時(shí)再用錯(cuò)誤推測(cè)法補(bǔ)充; 對(duì)照程序邏輯,檢查測(cè)試方案。30什么是調(diào)試?調(diào)試和測(cè)試有什么不同?測(cè)試發(fā)現(xiàn)錯(cuò)誤 ;調(diào)試改正錯(cuò)誤調(diào)試與測(cè)試的區(qū)別在于, 調(diào)試作為測(cè)試的后續(xù)工作, 主要是解決和排 除測(cè)試中出現(xiàn)的錯(cuò)誤。 31簡(jiǎn)單說明調(diào)試的方法和策略。調(diào)試過程的關(guān)

36、鍵不是調(diào)試技術(shù),而是用來推斷錯(cuò)誤原因的基本策略。主要有: 試探法:憑經(jīng)驗(yàn)猜測(cè)。 回溯法:由癥狀(symptom)最先出現(xiàn)的地方,沿control flow向回檢查。適用于小型程序。 對(duì)分法:在關(guān)鍵點(diǎn)插入變量的正確值。歸納法:從錯(cuò)誤癥狀 中找出規(guī)律,推斷根源。 演繹法:普通 ? 特殊32什么是軟件的可靠性、可用性和正確性?軟件可靠性是指程序在給定的時(shí)間間隔內(nèi), 按照說明書的規(guī)定, 成功 地運(yùn)行的概率。軟件可用性是指程序在給定的時(shí)間點(diǎn), 按照說明書的規(guī)定, 成功地運(yùn) 行的概率。軟件正確性是指程序的功能正確。第七章1什么是軟件維護(hù)?在軟件已經(jīng)交付使用之后, 為了改正錯(cuò)誤或滿足新的需要而修改軟件 的過

37、程。2軟件維護(hù)有哪幾種類型?改正性維護(hù):診斷和改正錯(cuò)誤; 適應(yīng)性維護(hù):為了和變化了的環(huán)境(如軟硬件升級(jí)、新數(shù)據(jù)庫(kù)等) 適當(dāng)?shù)嘏浜隙薷能浖? 完善性維護(hù):為了增加新功能,修改已有功能,改造界面,增加HELP 等,而修改軟件; 預(yù)防性維護(hù): 為了改進(jìn)未來的可維護(hù)性或可靠性, 或?yàn)榱私o未來的 改進(jìn)奠定更好的基礎(chǔ)而修改軟件。3為什么說軟件文檔維護(hù)和代碼維護(hù)同樣重要?這是因?yàn)椋浖臋n是影響軟件可維護(hù)性的決定因素。4為什么說維護(hù)的代價(jià)很高?應(yīng)該怎樣做才能降低維護(hù)的代價(jià)?般維護(hù)的工作量占生存周期 70%以上,維護(hù)成本約為開發(fā)成本的 4倍(滿足 8-2 規(guī)則)。維護(hù)代價(jià)分為:1有形代價(jià):費(fèi)用已上升至總預(yù)算

38、的 80%; 2無形代價(jià): a 占用 資源以致延誤開發(fā);a修改不及時(shí)引起用戶不滿;a維護(hù)引入新錯(cuò)誤, 降低了軟件質(zhì)量;等等。3維護(hù)工作量的經(jīng)驗(yàn)?zāi)P停篗 = P + K*ec -d這也是軟件工程提高程序的可維護(hù)性,降低維護(hù)代價(jià)的通常認(rèn)識(shí)是: 學(xué)的主要目的。5導(dǎo)致維護(hù)成本高企的原因主要有哪些?軟件開發(fā)途徑不好, 導(dǎo)致軟件可維護(hù)性差, 原來的開發(fā)人員沒有參與 維護(hù),維護(hù)成本日益高漲等,從維護(hù)工作量的經(jīng)驗(yàn)?zāi)P涂梢钥吹剑S 護(hù)工作量和成本將呈指數(shù)增加。6什么是軟件的可維護(hù)性?軟件可維護(hù)性可定性地定義為:維護(hù)人員理解、改正、改動(dòng)和改進(jìn)這 個(gè)軟件的難易程度。7如何提高軟件的可維護(hù)性?可以從提高決定軟件可維護(hù)

39、性的因素著手,這些因素是:可理解性、 可測(cè)試性、可修改性、可移植性、可重用性、可靠性、可使用性、效 率等。9為什么說文檔是影響軟件可維護(hù)性的決定因素?由于長(zhǎng)期使用的軟件系統(tǒng)在使用過程中會(huì)有多次修改的經(jīng)歷, 而文檔 應(yīng)該記載了這些重要的修改,所以文檔比之代碼更為重要。10什么是軟件的系統(tǒng)文檔?系統(tǒng)文檔是指軟件系統(tǒng)從問題定義、需求說明、設(shè)計(jì)、實(shí)現(xiàn)到驗(yàn)收測(cè) 試計(jì)劃等一系列和系統(tǒng)實(shí)現(xiàn)密切相關(guān)的技術(shù)文檔。11什么是軟件的用戶文檔?提供用戶了解、使用、操作和安裝系統(tǒng)的文檔資料。12什么是可重用性?如何通過提高軟件的可重用性來提高軟件的可維護(hù)性? 可重用性是指同一事物不加修改或稍加修改, 就可以在不同環(huán)境多

40、次 重復(fù)使用。大量使用可重用軟件構(gòu)件,可大幅提高軟件的可維護(hù)性。主要體現(xiàn)在兩個(gè)方面:1可重用構(gòu)件通常都是組裝成功的部件,加上每次重用又都會(huì)進(jìn)步完善部件, 因此可以大幅提高軟件的可靠性, 而改正性維護(hù)要求會(huì) 降低。2很容易修改可重用的軟件構(gòu)件,使之適應(yīng)新的應(yīng)用環(huán)境,因此軟件中使用可重用構(gòu)件越多, 軟件的適應(yīng)性維護(hù)和完善性維護(hù)也越容易。13為什么要進(jìn)行軟件可維護(hù)性復(fù)審?目的是提高軟件的可維護(hù)性。可維護(hù)性復(fù)審在軟件開放的不同階段有不同的重點(diǎn)。 例如,在分析階 段的復(fù)審重點(diǎn)是: 可靠性、可移植性、可用性。而編碼階段則主要是: 可理解性、可修改性、可移植性和效率。14什么是軟件的逆向工程和再工程?軟件逆

41、向工程是指當(dāng)維護(hù)對(duì)象缺乏必要的文檔資料時(shí), 分析已有程序, 尋求比源代碼更高級(jí)的抽象表現(xiàn)形式, 恢復(fù)軟件原有設(shè)計(jì)的過程。 換 言之,是一個(gè)恢復(fù)設(shè)計(jì)的過程。軟件再工程則是以軟件工程學(xué)為指導(dǎo), 對(duì)目標(biāo)軟件進(jìn)行重新設(shè)計(jì)、 重 新編碼和測(cè)試的過程。15逆向工程與再工程與軟件的預(yù)防性維護(hù)有什么樣的關(guān)系?或?yàn)榱私o軟件預(yù)防性維護(hù)是為了改進(jìn)軟件未來的可維護(hù)性或可靠性, 未來的改進(jìn)奠定更好的基礎(chǔ)而修改軟件的過程。 預(yù)防性維護(hù)就是對(duì)軟 件將來可能需要的改動(dòng), 使用逆向工程與再工程方法對(duì)軟件進(jìn)行維護(hù)。16假設(shè)你的任務(wù)是對(duì)一個(gè)已有軟件進(jìn)行重大修改, 而且只允許你從 以下文檔中選取兩份:(a)程序的規(guī)格說明;(b)程序

42、的詳細(xì)設(shè)計(jì)結(jié)果(自 然語言描述加上某種設(shè)計(jì)工具表示);(b)源程序清單(其中有適當(dāng)數(shù)量 的注解 )。你將選取哪兩份文檔?為什么這樣選???你打算如何完成這個(gè)任務(wù)? 應(yīng)該選擇(a)程序的規(guī)格說明和(b)程序的詳細(xì)設(shè)計(jì)結(jié)果。因?yàn)槭侵卮笮薷模?所以需要從修改程序規(guī)格說明和詳細(xì)設(shè)計(jì)開始, 對(duì)開發(fā)文檔進(jìn)行重大修改,而源碼也會(huì)需要重新編制。第八章1為什么要引入面向?qū)ο蠓椒▽W(xué)? 1、瀑布模型的缺點(diǎn):僵化 2、SA - SD - SP 技術(shù)的缺點(diǎn):本質(zhì)上是基于過程的設(shè)計(jì)不易被理解; 且功能變化往往引起結(jié)構(gòu)變化較大, 穩(wěn)定性不好。 系統(tǒng)有明確的邊界 定義,且系統(tǒng)結(jié)構(gòu)依賴于系統(tǒng)邊界的定義, 這樣的系統(tǒng)不易擴(kuò)充和修

43、改。數(shù)據(jù)與操作分開處理,可能造成軟構(gòu)件對(duì)具體應(yīng)用環(huán)境的依賴, 可重用性 (reusability) 較差。2面向?qū)ο蠓椒▽W(xué)有哪 4 個(gè)基本要素?3面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)主要有哪些? 1以 object 為核心,強(qiáng)調(diào)對(duì)現(xiàn)實(shí)概念的模擬而不是算法。2以 object 模擬實(shí)體,需求變化不會(huì)引起結(jié)構(gòu)的整體變化,因?yàn)閷?shí) 體相對(duì)穩(wěn)定,故系統(tǒng)也相應(yīng)穩(wěn)定。3. 個(gè)class所有的instances都可重用它的代碼;由inheritanee派 生出的新的 class 可重用其父類的代碼, 并且可以修改、擴(kuò)充而不影 響其父類的使用。4. 從穩(wěn)定性、 Class 的獨(dú)立性強(qiáng)、繼承和多態(tài)性、容易理解、容易 測(cè)試、調(diào)試等

44、幾方面改善了可維護(hù)性。4.什么是“對(duì)象”?它與傳統(tǒng)數(shù)據(jù)有何不同?對(duì)象是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝屬性+ Method 方法+ ID 身份= Object: 體,可以表示為:對(duì)象Attribute+ 消息 Message。與傳統(tǒng)數(shù)據(jù)相比,對(duì)象有以下特點(diǎn): 以數(shù)據(jù)為中心,不設(shè)與數(shù)據(jù)無關(guān)的操作; Object 主動(dòng)處理而不 被動(dòng)地等待被處理,外部只能通過 message請(qǐng)求操作; 具有黑盒性:外部操作時(shí),無須知道該 object 內(nèi)部的數(shù)據(jù)結(jié)構(gòu)及 算法; 具有并行性:不同 object 各自獨(dú)立地處理自身數(shù)據(jù),彼此間僅通 過傳遞message完成通信; 模塊獨(dú)立性好:內(nèi)聚強(qiáng)

45、 ( ) 、耦合松 ( ) 5什么是“類”?具有相同數(shù)據(jù)和相同操作的一組對(duì)象。6什么是“繼承”?子類自動(dòng)共享父類的 attributes 和 methods , 而不必重復(fù)定義。子類自動(dòng)共享父類的 attributes 和 methods ,而不必重復(fù)定義。7什么是模型?軟件開發(fā)為什么要建立模型?模型就是為了理解事物而對(duì)事物作出的一種抽象, 是對(duì)事物的一種無 歧義的書面描述。 軟件開發(fā)建立模型是為了幫助我們思考問題、 定義 術(shù)語、作出適當(dāng)?shù)募僭O(shè),并幫助我們保持定義和假設(shè)的一致性。對(duì)于較為復(fù)雜而不能直接理解的系統(tǒng), 特別需要建立模型, 其目的是 可以減少?gòu)?fù)雜性。什么是對(duì)象模型?建立對(duì)象模型時(shí)主要

46、使用哪些圖形符號(hào)?這些8符號(hào)的含義是什么? 描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)。對(duì)象模型具體是描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。9什么是動(dòng)態(tài)模型?建立動(dòng)態(tài)模型時(shí)主要使用哪些圖形符號(hào)?這些符號(hào)的含義是什么? 描述系統(tǒng)控制結(jié)構(gòu)。動(dòng)態(tài)模型具體是表示系統(tǒng)瞬時(shí)的控制性質(zhì)。10什么是功能模型?建立功能模型時(shí)主要使用哪些圖形符號(hào)?描述系統(tǒng)功能。功能模型具體描述的是表明系統(tǒng)應(yīng)該做什么。第九章1進(jìn)行面向?qū)ο蠓治龅幕具^程是怎么樣的?需求陳述 T 快速原型 T 模型其中模型 有三個(gè):對(duì)象模型、動(dòng)態(tài)模型、功能模型。2建立對(duì)象模型有哪幾個(gè)步驟?1、確定類與對(duì)象:第 1 步:列出所有候選對(duì)象第 2 步:去粗取精2、確定關(guān)聯(lián) T 結(jié)構(gòu)層第 1 步:收集

47、第 2 步:篩選刪除第 3 步:完善3、劃分主題 4、確立屬性5、識(shí)別繼承關(guān)系及其它修改3復(fù)雜問題的對(duì)象模型有哪5 個(gè)層次?主題層、類 & 對(duì)象層、結(jié)構(gòu)層、屬性層、服務(wù)層。4建立動(dòng)態(tài)模型的步驟有哪些?1、編寫腳本,描述事件序列:事件 = 觸發(fā)器 + 接收器 + 參數(shù)2、設(shè)想用戶界面 T 修改原型 .3、畫事件跟蹤圖 4、畫狀態(tài)圖 5如何建立功能模型? 1畫出基本系統(tǒng)模型圖 2畫出功能級(jí)數(shù)據(jù)流圖 3描述處理框功能 6用面向?qū)ο蠓椒ǚ治龅诙铝?xí)題 17中描述的儲(chǔ)蓄系統(tǒng), 試建立它 的對(duì)象模型、動(dòng)態(tài)模型和功能模型。第十章1面向?qū)ο笤O(shè)計(jì)應(yīng)該遵循哪些準(zhǔn)則?簡(jiǎn)述每條準(zhǔn)則的內(nèi)容,并說明遵循該條準(zhǔn)則的

48、必要性。1模塊化 2抽象。抽出事物的本質(zhì)特性 , 暫不考慮其細(xì)節(jié),使設(shè)計(jì)從具體實(shí) 現(xiàn)方法中超脫。包括程序抽象、數(shù)據(jù)抽象、參數(shù)抽象。3信息隱蔽。對(duì)象封裝。 4弱耦合。包括交互耦合、繼承耦合。5強(qiáng)內(nèi)聚。包括服務(wù)內(nèi)聚、類內(nèi)聚、一般 -特殊內(nèi)聚。6可重用。是提高軟件開發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。2簡(jiǎn)述有助于提高面向?qū)ο笤O(shè)計(jì)質(zhì)量的每條主要啟發(fā)式規(guī)則的內(nèi)容和必要性。1、設(shè)計(jì)結(jié)果清晰易懂,應(yīng)做到: 用詞一致按習(xí)慣用法命名。不同類中相似的方法最好取同一名字。 使用已有的協(xié)議。盡量減少消息模式的數(shù)目。避免模糊定義。2、3、般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)(約 100個(gè)類,則設(shè)計(jì) 7±2 層) 設(shè)計(jì)簡(jiǎn)單的

49、類(定義不超過一頁(yè)紙或兩屏) 。應(yīng)注意:避免過多屬性;能用簡(jiǎn)單的語句描述一個(gè)類的任務(wù); 對(duì)象之間合作關(guān)系要簡(jiǎn)單; 避免過多方法(£ 7個(gè))。4、使用簡(jiǎn)單的協(xié)議,減少消息中傳遞的參數(shù)5、使用簡(jiǎn)單的方法 (CASE 可考慮用 繼承替代 )。 6、把設(shè)計(jì)變動(dòng)減至最小。3為什么說類構(gòu)件是目前較為理想的可重用軟構(gòu)件?它有哪些重用方式?具備可重用的軟構(gòu)件應(yīng)有的特點(diǎn): 獨(dú)立、可塑、接口清晰(文檔詳盡)重用方式有:實(shí)例重用、繼承重用和多態(tài)重用。4什么是繼承耦合?繼承是一般化類和特殊類之間耦合的一種形式。從本質(zhì)上看, 通過繼承關(guān)系結(jié)合起來的基類和派生類, 構(gòu)成了系統(tǒng)中粒度更大的模塊。 因此,與交互耦合相反,繼承的耦合程度會(huì)更高。5如何計(jì)算軟件重用帶來的凈成本節(jié)省?中描述的儲(chǔ)蓄系統(tǒng)。 17試用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)第二章習(xí)題 6第十一章1.面向?qū)ο髮?shí)現(xiàn)應(yīng)該選用哪種程序設(shè)計(jì)語言?為什么?應(yīng)該選擇能夠更完整、 更正確地表達(dá)問題域語義的面向?qū)ο笳Z言。 這 是由于面向?qū)ο笳Z言相對(duì)非面向?qū)ο蟮恼Z言, 其突出的優(yōu)點(diǎn): 一致的 表示方法、可重用性、可維護(hù)性。2.面向?qū)?/p>

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論