《軟件工程基礎(chǔ)》題集答案-6
《《軟件工程基礎(chǔ)》題集答案-6》由會(huì)員分享,可在線閱讀,更多相關(guān)《《軟件工程基礎(chǔ)》題集答案-6(13頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、《軟件工程基礎(chǔ)》習(xí)題集答案 第一章 概 述 1.什么是軟件危機(jī),它有哪些典型表現(xiàn)? 所謂"軟件危機(jī)"就是,在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重的問(wèn)題,概括起來(lái)歸納為:如何開(kāi)發(fā)軟件,以滿足日益增長(zhǎng)、日趨復(fù)雜的需要;如何維護(hù)數(shù)量不斷膨脹的已有軟件. 軟件危機(jī)的典型表現(xiàn)主要有: a. 開(kāi)發(fā)成本和進(jìn)度不能準(zhǔn)確估計(jì) b. 開(kāi)發(fā)出來(lái)的軟件不能滿足用戶的要求 c. 軟件的可維護(hù)性差 d. 軟件質(zhì)量不可靠 e. 軟件成本在系統(tǒng)中的比重逐年上升 f. 軟件開(kāi)發(fā)生產(chǎn)率的提高速度不夠 2.簡(jiǎn)述產(chǎn)生軟件危機(jī)的原因和解決的思路. 軟件危機(jī)產(chǎn)生的原因一方面與軟件本身的特點(diǎn)有關(guān),另一方面
2、,是與已有軟件開(kāi)發(fā)、維護(hù)的方法不正確有密切關(guān)系. 解決軟件危機(jī),既要有技術(shù)措施<方法和工具>,又要有必要的組織管理措施.即采用工程化的原則和方法組織軟件開(kāi)發(fā)是擺脫軟件危機(jī)的一個(gè)主要出路. 3.什么是軟件工程?它有哪些本質(zhì)特性? 軟件工程是一門(mén)研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法進(jìn)行軟件開(kāi)發(fā)和維護(hù)的學(xué)科. 其實(shí)質(zhì)就是用工程的概念、原理、技術(shù)和方法,結(jié)合有效的管理方法和先進(jìn)的開(kāi)發(fā)技術(shù),開(kāi)發(fā)與維護(hù)軟件,以解決軟件危機(jī). 4.軟件工程是如何用來(lái)消除軟件危機(jī)的? 軟件工程是從技術(shù)和管理兩個(gè)方面來(lái)研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件,從源頭上消除軟件危機(jī). 6.簡(jiǎn)述軟件的定義.
3、軟件 = 程序 + 數(shù)據(jù) + 文檔 7.軟件工程的目的是什么? 為高質(zhì)量的軟件開(kāi)發(fā)提供一個(gè)科學(xué)的體系框架. 8.什么是軟件工程方法學(xué)?軟件工程是一種什么樣的技術(shù)?包括哪三大要素?分為哪三個(gè)分支? 軟件工程方法學(xué)就是指在軟件生命周期全過(guò)程中使用的一整套管理和開(kāi)發(fā)技術(shù)方法的集合.目前,使用最廣泛的軟件工程方法學(xué)分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué). 軟件工程作為一種層次化的技術(shù),有方法、工具和過(guò)程三大要素,并由于其涉與學(xué)科內(nèi)容的極為廣泛,而分為三個(gè)分支:軟件開(kāi)發(fā)技術(shù)、軟件項(xiàng)目管理技術(shù)、軟件質(zhì)量管理技術(shù). 9.簡(jiǎn)述軟件工程的基本原理. 軟件工程有7條基本原理: 1.嚴(yán)格按照軟件生命周期計(jì)
4、劃進(jìn)行管理 2.堅(jiān)持進(jìn)行階段評(píng)審 3.實(shí)行嚴(yán)格的產(chǎn)品控制 4.采用先進(jìn)的程序設(shè)計(jì)技術(shù) 5.結(jié)果應(yīng)能清楚的審查 6.開(kāi)發(fā)小組成員應(yīng)少而精 7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 10.軟件工程的基本開(kāi)發(fā)原則有哪些? 軟件工程的基本開(kāi)發(fā)原則有: 1.模塊化 2.抽象和信息隱蔽 3.模塊的高內(nèi)聚和低耦合 4.確定性 5.一致性 6.完備性 11.構(gòu)成軟件工程的基本元素有哪些? 除了前面給出的軟件工程三大要素,還應(yīng)該包括控制和質(zhì)量保證.這里的控制,即規(guī)模控制、成本控制、復(fù)雜性控制等. 12.什么是軟件過(guò)程?它與軟件工程方法學(xué)有何關(guān)系? 軟件過(guò)程是指為了獲得高質(zhì)量軟件產(chǎn)
5、品,在軟件工具支持下,由軟件人員完成的一系列軟件工程活動(dòng). 軟件過(guò)程規(guī)定了開(kāi)發(fā)軟件所需完成的各項(xiàng)任務(wù)步驟.過(guò)程步驟的設(shè)定與軟件生命周期、生命周期模型、軟件開(kāi)發(fā)工具,以與參與開(kāi)發(fā)的人員等諸方面因素有關(guān). 13.什么是軟件生命周期?什么是軟件生命周期模型? 軟件如同自然界任何事物一樣,都有其孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程.軟件的這一過(guò)程,稱為軟件生命周期. 軟件生命周期模型也稱軟件開(kāi)發(fā)過(guò)程模型,是為了解決產(chǎn)業(yè)環(huán)境中的實(shí)際問(wèn)題,而提出的開(kāi)發(fā)策略.是反映整個(gè)軟件生命期中,系統(tǒng)開(kāi)發(fā)、運(yùn)行、維護(hù)等實(shí)施活動(dòng)的一種結(jié)構(gòu)框架. 14.簡(jiǎn)述軟件生命周期方法學(xué)的途徑,以與劃分階段步驟的目的和實(shí)質(zhì).
6、 軟件生命周期方法學(xué)是軟件工程的傳統(tǒng)途徑,劃分階段步驟的目的和實(shí)質(zhì)是:控制開(kāi)發(fā)工作的復(fù)雜性,通過(guò)有限步驟,把抽象邏輯概念,轉(zhuǎn)化為具體物力實(shí)現(xiàn). 15.試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點(diǎn),說(shuō)明它們各自的適用范圍. 1.瀑布模型. 瀑布模型廣為人知和歷史悠久,其優(yōu)勢(shì)是規(guī)范與文檔驅(qū)動(dòng)的方法.但問(wèn)題是,往往不能夠真正滿足用戶的需求. 適用于傳統(tǒng)軟件工程領(lǐng)域的結(jié)構(gòu)化開(kāi)發(fā). 2.原型模型. 是為了克服瀑布模型的缺點(diǎn)而提出來(lái)的.通過(guò)快速構(gòu)建一個(gè)在機(jī)器上可運(yùn)行的原型系統(tǒng),讓用戶試用原型,并收集反饋意見(jiàn)的辦法,來(lái)獲取用戶真實(shí)的需求. 3.螺旋模型. 螺旋模型適用于大型軟件
7、項(xiàng)目,比起之前的其它模型而言,有其一定的優(yōu)越性,但這些優(yōu)越性并不是絕對(duì)的.主要體現(xiàn)在對(duì)開(kāi)發(fā)人員的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門(mén)知識(shí)的要求較高.如果項(xiàng)目風(fēng)險(xiǎn)較大,而開(kāi)發(fā)人員的水平較低,不能準(zhǔn)確的識(shí)別和分析風(fēng)險(xiǎn),則勢(shì)必造成重大損失. 4.增量模型. 具有在軟件開(kāi)發(fā)早期階段使投資獲得明顯回報(bào)和交易維護(hù)的優(yōu)點(diǎn),但是要求軟件具有開(kāi)放的結(jié)構(gòu). 第二章 可行性研究 1.在軟件開(kāi)發(fā)的早期階段,為什么要進(jìn)行可行性研究?其目的和任務(wù)各是什么? 可行性研究的目的是用最小的代價(jià),在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否可解決,以與是否值得解決. 可行性研究的任務(wù)不是解決問(wèn)題,而是確定是否可解/值得解. 2.應(yīng)該從哪些方面研究
8、目標(biāo)系統(tǒng)的可行性?
主要從以下幾個(gè)方面進(jìn)行可行性研究:
1. 技術(shù)可行性.以現(xiàn)有技術(shù),能否在預(yù)定時(shí)間內(nèi)完成該系統(tǒng)開(kāi)發(fā).
2. 經(jīng)濟(jì)可行性.通過(guò)成本-效益分析,估算系統(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)出高層邏輯模型
9、 <8> 審查、存檔 4.簡(jiǎn)述系統(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í),并可以描述未來(lái)物理系統(tǒng)的概貌. 5.簡(jiǎn)述數(shù)據(jù)流圖在可行性研究中的作用和用途. 數(shù)據(jù)流圖在可行性分析中可以幫助分析和描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過(guò)程,用圖形的方式描述系統(tǒng)的邏輯功能,是系統(tǒng)分析員和用戶之間理想的通信工具. 6.簡(jiǎn)單描述數(shù)據(jù)字典的內(nèi)容和定義數(shù)據(jù)的方法. 數(shù)據(jù)字典主要由下列4種元素定義組成: 1.?dāng)?shù)據(jù)流 2.?dāng)?shù)據(jù)流分量 3.?dāng)?shù)據(jù)存儲(chǔ) 4.處
10、理 除了數(shù)據(jù)定義外,數(shù)據(jù)字典還應(yīng)包含一些關(guān)于數(shù)據(jù)的其它信息. 定義數(shù)據(jù)的方法通常采用自頂向下分解的方式.并由順序、選擇、重復(fù)三種基本數(shù)據(jù)元素類型組成數(shù)據(jù). 7.說(shuō)明軟件計(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ù)和管理層面上都是無(wú)二義性和可理解的項(xiàng)目范圍,是軟件開(kāi)發(fā)各階段的工作依據(jù). 定義軟件范圍需要以下信息: a. 與用戶、總體目標(biāo)與利益相關(guān)的問(wèn)題. b. 有利于系統(tǒng)分析員理解的
11、問(wèn)題. c. 集中于交流效果的問(wèn)題. 9.簡(jiǎn)述軟件開(kāi)發(fā)環(huán)境資源的三個(gè)層次. 軟件開(kāi)發(fā)環(huán)境資源由三個(gè)層次構(gòu)成:開(kāi)發(fā)環(huán)境、軟件構(gòu)件以與最重要的資源——人. 10.軟件環(huán)境資源的特征有哪些?它們對(duì)制定軟件計(jì)劃都有哪些意義? 每一類資源都有四個(gè)特征:資源描述、可用性說(shuō)明和資源提供的時(shí)間、資源使用的延續(xù)時(shí)間. 可以為制定軟件計(jì)劃估算軟件開(kāi)發(fā)所需的資源. 11.軟件計(jì)劃中,安排軟件開(kāi)發(fā)進(jìn)度主要可以用哪些工具?都有哪些優(yōu)缺點(diǎn)? 編制進(jìn)度計(jì)劃的常用工具主要有甘特圖和網(wǎng)絡(luò)計(jì)劃法. 甘特圖的優(yōu)點(diǎn)是簡(jiǎn)單,能動(dòng)態(tài)地反映開(kāi)發(fā)進(jìn)展;缺點(diǎn)是難以反映多個(gè)任務(wù)間的邏輯關(guān)系. 網(wǎng)絡(luò)計(jì)劃法則恰好彌補(bǔ)了甘特圖的缺
12、點(diǎn),最適合反映多個(gè)工作之間的邏輯關(guān)系.
12.主要的成本估計(jì)技術(shù)有哪些?其依據(jù)的主要是什么?
主要有,代碼行技術(shù).
是一種基于規(guī)模的分解估算:
D=?f
13、效益分析的方法主要有: <1> 貨幣的時(shí)間價(jià)值 <2> 投資回收期 <3> 純收入 <4> 投資回收率 16.如何對(duì)制定完成的軟件計(jì)劃進(jìn)行復(fù)審?為什么要復(fù)審? 軟件計(jì)劃的復(fù)審?fù)ǔI媾c有關(guān)軟件工作范圍和軟硬件資源問(wèn)題等.復(fù)審應(yīng)該邀請(qǐng)用戶參加,用戶可提出建議,并與開(kāi)發(fā)人員最終商定內(nèi)容.復(fù)審內(nèi)容分為技術(shù)和管理兩個(gè)方面: 技術(shù)方面需要考慮的問(wèn)題有: 系統(tǒng)的任務(wù)是否合理; 系統(tǒng)的給你復(fù)雜性是否與開(kāi)發(fā)成本、進(jìn)度以與風(fēng)險(xiǎn)一致; 系統(tǒng)規(guī)格說(shuō)明書(shū)是否足夠充分; 系統(tǒng)性能要求是否恰當(dāng) 管理方面需要考慮的問(wèn)題有: 計(jì)劃中描述的工作范圍是否符合用戶需求
14、? 計(jì)劃中對(duì)資源的描述是否有效、合理? 計(jì)劃中系統(tǒng)的開(kāi)發(fā)成本與進(jìn)度要求是否合理? 計(jì)劃中人員的安排是否合理? 系統(tǒng)開(kāi)發(fā)存在哪些風(fēng)險(xiǎn)? 復(fù)審可以盡早發(fā)現(xiàn)錯(cuò)誤,復(fù)審是軟件質(zhì)量保證的重要措施. 第三章 需求分析 1.為什么要進(jìn)行需求分析?通常對(duì)軟件系統(tǒng)有哪些需求? 需求問(wèn)題是軟件工程項(xiàng)目失敗的主要原因.一個(gè)高質(zhì)量的軟件,很大程度上取決于對(duì)要解決的問(wèn)題的認(rèn)識(shí),以與如何準(zhǔn)確的表達(dá)用戶的需求.需求分析就是要解決這個(gè)問(wèn)題. 通常,對(duì)一個(gè)軟件系統(tǒng)的需求可以有功能需求、性能需求、可靠性和可用性需求、出錯(cuò)處理需求、接口需求等多個(gè)方面. 2.怎樣與用戶有效地溝通,
15、以獲得用戶的真實(shí)需求? 訪談、情景分析,以與面向數(shù)據(jù)流的自頂向下求精等方法,編制簡(jiǎn)易的系統(tǒng)規(guī)格說(shuō)明文檔,創(chuàng)建原型等,是獲取真實(shí)需求的有效方法. 3.需求分析的任務(wù)是什么? 確定對(duì)待開(kāi)發(fā)系統(tǒng)的綜合要求. 4.通常系統(tǒng)的需求可以分為哪幾個(gè)層次? 一般可以分成5個(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)心的屬性,如效率、靈活性、完整性、可靠性等;開(kāi)發(fā)者關(guān)心的屬性,如可維護(hù)性、可復(fù)用性、可移植性等. <5> 未來(lái)可能的擴(kuò)充需求:如HDIS各組的合并
16、,3維虛擬現(xiàn)實(shí)的效果等等. 5.進(jìn)行需求分析的步驟有哪些? 1.確定系統(tǒng)的綜合要求 2.分析系統(tǒng)的數(shù)據(jù)要求 3.導(dǎo)出邏輯模型 4.修正系統(tǒng)開(kāi)發(fā)計(jì)劃 6.簡(jiǎn)述建立原型模型對(duì)軟件需求分析的作用. 可以快速構(gòu)建旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行程序,幫助用戶確定與提供更為精準(zhǔn)的需求,以利用戶和開(kāi)發(fā)者能夠在目標(biāo)系統(tǒng)應(yīng)該"做什么"這一問(wèn)題上盡快達(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)方法無(wú)關(guān). 8.說(shuō)明為什么需要進(jìn)行需求驗(yàn)證與驗(yàn)證的步驟有哪些? 進(jìn)行需求驗(yàn)證是為了確
17、保軟件開(kāi)發(fā)的質(zhì)量,降低開(kāi)發(fā)成本.通常對(duì)需求進(jìn)行驗(yàn)證的步驟有:驗(yàn)證需求的一致性、驗(yàn)證需求的現(xiàn)實(shí)性、驗(yàn)證需求的完整性和有效性. 第四章 總體設(shè)計(jì) 3.簡(jiǎn)單說(shuō)明系統(tǒng)總體設(shè)計(jì)的步驟. 典型的總體設(shè)計(jì)包括以下9個(gè)步驟: 1、確定最佳方案 2、選取合理方案 3、推薦最佳方案 4、功能分解 5、軟件結(jié)構(gòu)設(shè)計(jì) 6、設(shè)計(jì)數(shù)據(jù)庫(kù) 7、制定測(cè)試計(jì)劃 8、書(shū)寫(xiě)文檔 9、審查和復(fù)審 5.為什么要盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合? 減少模塊之間的關(guān)聯(lián)度,提高模塊的獨(dú)立性. 因?yàn)閮?nèi)容耦合會(huì)導(dǎo)致一個(gè)模塊修改另一個(gè)模塊的內(nèi)容,使得程序邏輯發(fā)生嚴(yán)重問(wèn)題. 而公共
18、耦合是若干模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用,公共部分的改動(dòng)將影響所有調(diào)用它的模塊,公共部分的數(shù)據(jù)存取無(wú)法控制,并且復(fù)雜程度也會(huì)隨耦合模塊的個(gè)數(shù)增加而增加. 控制耦合是一個(gè)模塊通過(guò)傳遞開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一個(gè)模塊的功能.由于接口單一,因此仍然會(huì)影響被控模塊的內(nèi)部邏輯. 而數(shù)據(jù)耦合只是模塊間通過(guò)數(shù)據(jù)參數(shù)來(lái)交換I/O信息,因此不會(huì)對(duì)其它模塊產(chǎn)生任何等影響. 6.為什么模塊的規(guī)模要適中? 過(guò)大不易理解;太小則接口開(kāi)銷(xiāo)過(guò)大. 7.請(qǐng)說(shuō)明為什么模塊控制的寬度和深度要適度. 深度過(guò)大表示分工過(guò)細(xì),而寬度過(guò)大則表示系統(tǒng)復(fù)雜度大,所以模塊控制的寬度和深度要適度. 8.簡(jiǎn)述面
19、向數(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ù)查并精化數(shù)據(jù)流圖 3.確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性 4.確定輸入流和輸出流動(dòng)邊界,從而孤立出變換中心 5.完成"第一級(jí)分解" 6.完成"第二級(jí)分解" 7.使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化 第五章 詳細(xì)設(shè)計(jì) 1.詳細(xì)設(shè)計(jì)的任務(wù)是什么? 包括模塊的算法設(shè)計(jì)、模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、模塊接口設(shè)計(jì)、其它根據(jù)
20、軟件特點(diǎn)需要完成的設(shè)計(jì)、模塊測(cè)試用例設(shè)計(jì)、設(shè)計(jì)文檔編寫(xiě)、設(shè)計(jì)評(píng)審. 2.在對(duì)系統(tǒng)做詳細(xì)設(shè)計(jì)時(shí),應(yīng)遵循哪些原則? ① 模塊的邏輯描述應(yīng)清晰易讀、正確可靠; ② 設(shè)計(jì)的處理過(guò)程應(yīng)該簡(jiǎn)明易懂; ③ 選擇恰當(dāng)?shù)拿枋龉ぞ邅?lái)描述模塊算法. 3.簡(jiǎn)述結(jié)構(gòu)化設(shè)計(jì)的特點(diǎn). ① 自頂向下、逐步求精; ② 具有單入、單出的控制結(jié)構(gòu)〔取消GOTO語(yǔ)句〕 4.結(jié)構(gòu)化程序設(shè)計(jì)中有哪幾種基本控制結(jié)構(gòu)?分別描繪在程序流程圖、盒圖和PDA圖中這些基本控制的圖例. <1> 順序結(jié)構(gòu) <2> 選擇結(jié)構(gòu) <3> 先判定型循環(huán)結(jié)構(gòu) <4> 后判定型循環(huán)結(jié)構(gòu) <5> 多情況選擇 7.試說(shuō)明ISO為什么要建議停
21、止使用程序流程圖,而推薦使用PDA圖? 由于程序流程圖中的GOTO語(yǔ)句回嚴(yán)重地?fù)p害程序結(jié)構(gòu),而無(wú)法實(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í)語(yǔ)言源程序等特點(diǎn),因此,ISO要推薦使用PDA圖. 9.試說(shuō)明Jackson方法是一種怎么樣的程序設(shè)計(jì)方法.它有哪些工作步驟? Jackson方法是以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)設(shè)計(jì)每個(gè)模塊的處理過(guò)程,將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化成程序
22、結(jié)構(gòu).具體工作步驟有: 第1步:用Jackson圖描述 I\O 的數(shù)據(jù)結(jié)構(gòu) 第2步:在兩個(gè)圖中指出有直接因果關(guān)系、可以同時(shí)處理的單元 第3步:將數(shù)據(jù)結(jié)構(gòu)映射到程序結(jié)構(gòu) 第4步:列出所有操作條件,并分配到上幅程序結(jié)構(gòu)圖中 第5步:用Pseudocode 表示程序 第六章 實(shí)現(xiàn) 1.說(shuō)明什么是程序編碼?為什么程序設(shè)計(jì)語(yǔ)言的特點(diǎn)和編碼風(fēng)格會(huì)影響到程序的可靠性、可讀性、可測(cè)試性和可維護(hù)性? 所謂"編碼",就是將在低級(jí)抽象層次得到的詳細(xì)設(shè)計(jì)結(jié)果,翻譯成用某種程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的程序.是軟件設(shè)計(jì)的自然結(jié)果. 而程序設(shè)計(jì)語(yǔ)言是否有理想的結(jié)構(gòu)化、模塊化機(jī)制,是否有可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)等
23、特性,以與程序設(shè)計(jì)語(yǔ)言提供的編譯、軟件工具等,再加上程序的設(shè)計(jì)風(fēng)格會(huì)很深刻的影響軟件的質(zhì)量和可維護(hù)性、可測(cè)試性、可靠性等. 2.用戶界面設(shè)計(jì)的最一般原則,即所謂"黃金規(guī)則"是什么? 1.置用戶于控制之下;2.減少用戶的記憶負(fù)擔(dān);3.保持界面一致. 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.WIMP界面是屏幕菜單驅(qū)動(dòng)用戶界面的一種形式,其設(shè)計(jì)準(zhǔn)則有哪些? <1> 明確的動(dòng)作:在屏幕上指點(diǎn)并操縱對(duì)
24、象
<2> 即時(shí)反饋:操作結(jié)構(gòu)即見(jiàn)
<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)生效果
6.為什么說(shuō)軟件界面設(shè)計(jì)的質(zhì)量會(huì)直接影響到用戶對(duì)軟件產(chǎn)品的評(píng)價(jià)?
用戶界面
25、戶界面不友好,可以使用戶在使用時(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è)重要的屬性:長(zhǎng)度和易變性. 8.在設(shè)計(jì)軟件系統(tǒng)的用戶幫助設(shè)施時(shí),需要注意解決哪些問(wèn)題? 1.在用戶與系統(tǒng)交互期間,是否任何時(shí)候都能獲得關(guān)于系統(tǒng)任何功能的幫助信息? 2.用戶怎樣請(qǐng)求幫助? 3.怎樣顯示幫助信息? 4.用戶怎樣返回到正常的交互方式中? 5.怎樣組織幫助信息? 9.軟件出錯(cuò)處理設(shè)計(jì),即軟件安全性設(shè)計(jì).一個(gè)交互式出錯(cuò)處理程序應(yīng)
26、該具備哪些功能和屬性?
1.信息應(yīng)該使用用戶可以理解的術(shù)語(yǔ)描述.
2.信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意見(jiàn).
3.信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致的后果.
4.信息應(yīng)該伴隨感官提示.
5.信息不能帶有指責(zé)色彩.
10.測(cè)試的最基本目標(biāo)是什么?
以盡可能小的代價(jià),發(fā)現(xiàn)盡可能多的錯(cuò)誤.
11.軟件測(cè)試的原則有哪些?
① 應(yīng)當(dāng)把"盡早和不斷的測(cè)試"作為座右銘
② 測(cè)試應(yīng)由獨(dú)立的專業(yè)測(cè)試機(jī)構(gòu)來(lái)完成
③ 測(cè)試工作要全面,但不可能實(shí)現(xiàn)"窮舉"
④ 只能盡可能查錯(cuò),不能證明程序中沒(méi)有錯(cuò)
⑤ 軟件測(cè)試符合2-8
27、劃 ⑧ 錯(cuò)誤經(jīng)過(guò)修改后,相關(guān)的測(cè)試必不可少 12.軟件測(cè)試的方法有哪幾種? 黑盒測(cè)試和白盒測(cè)試. 13.簡(jiǎn)單說(shuō)明什么是白盒測(cè)試,什么是黑盒測(cè)試. 黑盒測(cè)試是把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程的測(cè)試方法.黑盒測(cè)試又稱功能測(cè)試. 白盒測(cè)試是對(duì)程序的執(zhí)行細(xì)節(jié)進(jìn)行測(cè)試,通過(guò)設(shè)計(jì)測(cè)試數(shù)據(jù),驗(yàn)證程序模塊的每個(gè)路徑的執(zhí)行情況.白盒測(cè)試又稱結(jié)構(gòu)測(cè)試. 14.簡(jiǎn)述軟件測(cè)試的步驟. <1> 單元測(cè)試 —— 程序設(shè)計(jì) & 代碼bugs <2> 子系統(tǒng)測(cè)試 —— 模塊連接 <3> 系統(tǒng)測(cè)試 —— 需求確認(rèn) & 系統(tǒng)設(shè)計(jì) <4> 驗(yàn)收測(cè)試 —— 用戶加入 <5> 平行運(yùn)行
28、—— 新舊系統(tǒng)比較運(yùn)行結(jié)果 16.為什么單元測(cè)試必須由編程者自己完成? 單元測(cè)試是對(duì)程序邏輯結(jié)構(gòu)的測(cè)試.而對(duì)程序結(jié)構(gòu)最為熟悉的,莫過(guò)于編程者.再者,高質(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è)錯(cuò)誤,不必改一個(gè)測(cè)一個(gè). 20.集成測(cè)試主要有漸增式測(cè)試、非漸增式
29、測(cè)試兩種,試述兩種方式的異同點(diǎn). 漸增式測(cè)試:可以較早發(fā)現(xiàn)模塊間的接口錯(cuò)誤、出現(xiàn)的錯(cuò)誤往往跟最新加入的模塊有關(guān)、在不斷集成的過(guò)程中使模塊不斷在新的條件下受到新的檢測(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ò)誤.主要缺點(diǎn)是需要存根程序,可能遇到與此相聯(lián)系的測(cè)試?yán)щy,底層模塊的錯(cuò)誤發(fā)
30、現(xiàn)較晚,而且對(duì)人力的使用也不利. 而自底向上測(cè)試的優(yōu)缺點(diǎn)與自頂向下測(cè)試的優(yōu)缺點(diǎn)正好相反. 22.什么是回歸測(cè)試?回歸測(cè)試的測(cè)試用例集如何確定? 回歸測(cè)試是指重新執(zhí)行已經(jīng)做過(guò)的測(cè)試的某個(gè)子集,以保證系統(tǒng)在發(fā)生調(diào)試、功能變化等事項(xiàng)后,沒(méi)有帶來(lái)非預(yù)期的副作用. 回歸測(cè)試的測(cè)試用例集按以下方法確定: 1.檢測(cè)軟件全部功能的代表性測(cè)試用例. 2.專門(mén)針對(duì)可能受修改影響的軟件功能的附加測(cè)試. 3.針對(duì)被修改過(guò)的軟件成分的測(cè)試. 23.什么是確認(rèn)測(cè)試?確認(rèn)測(cè)試的任務(wù)是什么?如何確認(rèn)其范圍? 驗(yàn)收軟件的有效性<功能和性能達(dá)標(biāo)>. 確認(rèn)測(cè)試的工作范圍主要有: 1.按合同規(guī)定審查軟件配置;
31、 2.設(shè)計(jì)測(cè)試計(jì)劃,使通過(guò)測(cè)試保證軟件能滿足所有功能、性能要求; 3.文檔與程序一致,具有維護(hù)階段所必須的細(xì)節(jié); 4.嚴(yán)格按用戶手冊(cè)操作,以檢查手冊(cè)的完整性和正確性. 24.設(shè)計(jì)測(cè)試方案的任務(wù)有哪些? ①預(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è)試功能的過(guò)程. 等價(jià)劃分法主要用于黑盒測(cè)
32、試. 27.什么是邊值分析法?它主要用于什么測(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)該是怎樣的? 黑盒設(shè)計(jì) ? 白盒補(bǔ)充 ① 在任何情況下都應(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ū)別在于
33、,調(diào)試作為測(cè)試的后續(xù)工作,主要是解決和排除測(cè)試中出現(xiàn)的錯(cuò)誤.
31.簡(jiǎn)單說(shuō)明調(diào)試的方法和策略.
調(diào)試過(guò)程的關(guān)鍵不是調(diào)試技術(shù),而是用來(lái)推斷錯(cuò)誤原因的基本策略.主要有:
① 試探法:憑經(jīng)驗(yàn)猜測(cè).
② 回溯法:由癥狀
34、成功地運(yùn)行的概率. 軟件正確性是指程序的功能正確. 第七章 維護(hù) 1.什么是軟件維護(hù)? 在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程. 2.軟件維護(hù)有哪幾種類型? ①改正性維護(hù):診斷和改正錯(cuò)誤; ②適應(yīng)性維護(hù):為了和變化了的環(huán)境<如軟\硬件升級(jí)、新數(shù)據(jù)庫(kù)等>適當(dāng)?shù)嘏浜隙薷能浖? ③完善性維護(hù):為了增加新功能,修改已有功能,改造界面,增加HELP等,而修改軟件; ④預(yù)防性維護(hù):為了改進(jìn)未來(lái)的可維護(hù)性或可靠性,或?yàn)榱私o未來(lái)的改進(jìn)奠定更好的基礎(chǔ)而修改軟件. 3.為什么說(shuō)軟件文檔維護(hù)和代碼維護(hù)同樣重要? 這是因?yàn)?軟件文檔是影響軟件可維護(hù)性的決定因素.
35、 4.為什么說(shuō)維護(hù)的代價(jià)很高?應(yīng)該怎樣做才能降低維護(hù)的代價(jià)? 一般維護(hù)的工作量占生存周期70%以上,維護(hù)成本約為開(kāi)發(fā)成本的4倍<滿足8-2規(guī)則>.維護(hù)代價(jià)分為: 1.有形代價(jià):費(fèi)用已上升至總預(yù)算的80%; 2.無(wú)形代價(jià): a 占用資源以致延誤開(kāi)發(fā); a修改不與時(shí)引起用戶不滿; a 維護(hù)引入新錯(cuò)誤,降低了軟件質(zhì)量;等等. 3.維護(hù)工作量的經(jīng)驗(yàn)?zāi)P停篗 = P + K*ec-d 降低維護(hù)代價(jià)的通常認(rèn)識(shí)是:提高程序的可維護(hù)性,這也是軟件工程學(xué)的主要目的. 5.導(dǎo)致維護(hù)成本高企的原因主要有哪些? 軟件開(kāi)發(fā)途徑不好,導(dǎo)致軟件可維護(hù)性差,原來(lái)的開(kāi)發(fā)人員沒(méi)有參與維護(hù),維護(hù)成本日益高漲等
36、,從維護(hù)工作量的經(jīng)驗(yàn)?zāi)P涂梢钥吹?維護(hù)工作量和成本將呈指數(shù)增加. 6.什么是軟件的可維護(hù)性? 軟件可維護(hù)性可定性地定義為:維護(hù)人員理解、改正、改動(dòng)和改進(jìn)這個(gè)軟件的難易程度. 7.如何提高軟件的可維護(hù)性? 可以從提高決定軟件可維護(hù)性的因素著手,這些因素是:可理解性、可測(cè)試性、可修改性、可移植性、可重用性、可靠性、可使用性、效率等. 9.為什么說(shuō)文檔是影響軟件可維護(hù)性的決定因素? 由于長(zhǎng)期使用的軟件系統(tǒng)在使用過(guò)程中會(huì)有多次修改的經(jīng)歷,而文檔應(yīng)該記載了這些重要的修改,所以文檔比之代碼更為重要. 10.什么是軟件的系統(tǒng)文檔? 系統(tǒng)文檔是指軟件系統(tǒng)從問(wèn)題定義、需求說(shuō)明、設(shè)計(jì)、實(shí)現(xiàn)到驗(yàn)收測(cè)
37、試計(jì)劃等一系列和系統(tǒng)實(shí)現(xiàn)密切相關(guān)的技術(shù)文檔. 11.什么是軟件的用戶文檔? 提供用戶了解、使用、操作和安裝系統(tǒng)的文檔資料. 12.什么是可重用性?如何通過(guò)提高軟件的可重用性來(lái)提高軟件的可維護(hù)性? 可重用性是指同一事物不加修改或稍加修改,就可以在不同環(huán)境多次重復(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ù)也越容易.
38、 13.為什么要進(jìn)行軟件可維護(hù)性復(fù)審? 目的是提高軟件的可維護(hù)性. 可維護(hù)性復(fù)審在軟件開(kāi)放的不同階段有不同的重點(diǎn).例如,在分析階段的復(fù)審重點(diǎn)是:可靠性、可移植性、可用性.而編碼階段則主要是:可理解性、可修改性、可移植性和效率. 14.什么是軟件的逆向工程和再工程? 軟件逆向工程是指當(dāng)維護(hù)對(duì)象缺乏必要的文檔資料時(shí),分析已有程序,尋求比源代碼更高級(jí)的抽象表現(xiàn)形式,恢復(fù)軟件原有設(shè)計(jì)的過(guò)程.換言之,是一個(gè)恢復(fù)設(shè)計(jì)的過(guò)程. 軟件再工程則是以軟件工程學(xué)為指導(dǎo),對(duì)目標(biāo)軟件進(jìn)行重新設(shè)計(jì)、重新編碼和測(cè)試的過(guò)程. 15.逆向工程與再工程與軟件的預(yù)防性維護(hù)有什么樣的關(guān)系? 預(yù)防性維護(hù)是為了改進(jìn)軟件未
39、來(lái)的可維護(hù)性或可靠性,或?yàn)榱私o軟件未來(lái)的改進(jìn)奠定更好的基礎(chǔ)而修改軟件的過(guò)程. 預(yù)防性維護(hù)就是對(duì)軟件將來(lái)可能需要的改動(dòng),使用逆向工程與再工程方法對(duì)軟件進(jìn)行維護(hù). 16.假設(shè)你的任務(wù)是對(duì)一個(gè)已有軟件進(jìn)行重大修改,而且只允許你從以下文檔中選取兩份:程序的規(guī)格說(shuō)明;程序的詳細(xì)設(shè)計(jì)結(jié)果<自然語(yǔ)言描述加上某種設(shè)計(jì)工具表示>;源程序清單<其中有適當(dāng)數(shù)量的注解>. 你將選取哪兩份文檔?為什么這樣選取?你打算如何完成這個(gè)任務(wù)? 應(yīng)該選擇程序的規(guī)格說(shuō)明和程序的詳細(xì)設(shè)計(jì)結(jié)果. 因?yàn)槭侵卮笮薷?所以需要從修改程序規(guī)格說(shuō)明和詳細(xì)設(shè)計(jì)開(kāi)始,對(duì)開(kāi)發(fā)文檔進(jìn)行重大修改,而源碼也會(huì)需要重新
40、編制.
第八章 面向?qū)ο蠓椒▽W(xué)引論
1.為什么要引入面向?qū)ο蠓椒▽W(xué)?
1、瀑布模型的缺點(diǎn):僵化
2、SA - SD - SP 技術(shù)的缺點(diǎn):本質(zhì)上是基于過(guò)程的設(shè)計(jì)不易被理解;且功能變化往往引起結(jié)構(gòu)變化較大,穩(wěn)定性不好.系統(tǒng)有明確的邊界定義,且系統(tǒng)結(jié)構(gòu)依賴于系統(tǒng)邊界的定義,這樣的系統(tǒng)不易擴(kuò)充和修改.數(shù)據(jù)與操作分開(kāi)處理,可能造成軟構(gòu)件對(duì)具體應(yīng)用環(huán)境的依賴,可重用性
41、求變化不會(huì)引起結(jié)構(gòu)的整體變化,因?yàn)閷?shí)體相對(duì)穩(wěn)定,故系統(tǒng)也相應(yīng)穩(wěn)定. 3.一個(gè)class所有的 instances 都可重用它的代碼;由 inheritance 派生出的新的 class 可重用其父類的代碼,并且可以修改、擴(kuò)充而不影響其父類的使用. 4.從穩(wěn)定性、Class 的獨(dú)立性強(qiáng)、繼承和多態(tài)性、容易理解、容易測(cè)試、調(diào)試等幾方面改善了可維護(hù)性. 4.什么是"對(duì)象"?它與傳統(tǒng)數(shù)據(jù)有何不同? 對(duì)象是封裝了數(shù)據(jù)結(jié)構(gòu)與可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,可以表示為:對(duì)象Object: = 身份ID + 方法Method + 屬性Attribute+ 消息Message. 與傳統(tǒng)數(shù)據(jù)相比
42、,對(duì)象有以下特點(diǎn): ①以數(shù)據(jù)為中心,不設(shè)與數(shù)據(jù)無(wú)關(guān)的操作; ② Object主動(dòng)處理而不被動(dòng)地等待被處理,外部只能通過(guò)message請(qǐng)求操作; ③具有黑盒性:外部操作時(shí),無(wú)須知道該object內(nèi)部的數(shù)據(jù)結(jié)構(gòu)與算法; ④具有并行性:不同object各自獨(dú)立地處理自身數(shù)據(jù),彼此間僅通過(guò)傳遞message完成通信; ⑤模塊獨(dú)立性好:內(nèi)聚強(qiáng)< ① >、耦合松< ③④ > 5.什么是"類"? 具有相同數(shù)據(jù)和相同操作的一組對(duì)象. 6.什么是"繼承"? 子類自動(dòng)共享父類的attributes 和methods ,而不必重復(fù)定義. 7.什么是模型?軟件開(kāi)發(fā)為什么要建立模型? 模型就是為
43、了理解事物而對(duì)事物作出的一種抽象,是對(duì)事物的一種無(wú)歧義的書(shū)面描述. 軟件開(kāi)發(fā)建立模型是為了幫助我們思考問(wèn)題、定義術(shù)語(yǔ)、作出適當(dāng)?shù)募僭O(shè),并幫助我們保持定義和假設(shè)的一致性. 對(duì)于較為復(fù)雜而不能直接理解的系統(tǒng),特別需要建立模型,其目的是可以減少?gòu)?fù)雜性. 8.什么是對(duì)象模型?建立對(duì)象模型時(shí)主要使用哪些圖形符號(hào)?這些符號(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)?
44、 描述系統(tǒng)功能. 功能模型具體描述的是表明系統(tǒng)應(yīng)該做什么. 第九章 面向?qū)ο蠓治? 1.進(jìn)行面向?qū)ο蠓治龅幕具^(guò)程是怎么樣的? 需求陳述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步:收集 第2步:篩選刪除 第3步:完善 3、劃分主題 4、確立屬性 5、識(shí)別繼承關(guān)系與其它修改 3.復(fù)雜問(wèn)題的對(duì)象模型有哪5個(gè)層次? 主題層、類&對(duì)象層、結(jié)構(gòu)層、屬性層、服務(wù)層. 4.建立動(dòng)態(tài)模型的步驟有哪些? 1、編寫(xiě)腳本,描述事件
45、序列: 事件 = 觸發(fā)器 + 接收器 + 參數(shù) 2、設(shè)想用戶界面T修改原型. 3、畫(huà)事件跟蹤圖 4、畫(huà)狀態(tài)圖 5.如何建立功能模型? 1.畫(huà)出基本系統(tǒng)模型圖 2.畫(huà)出功能級(jí)數(shù)據(jù)流圖 3.描述處理框功能 第十章 面向?qū)ο笤O(shè)計(jì) 1.面向?qū)ο笤O(shè)計(jì)應(yīng)該遵循哪些準(zhǔn)則?簡(jiǎn)述每條準(zhǔn)則的內(nèi)容,并說(shuō)明遵循該條準(zhǔn)則的必要性. 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.可重用.是提高軟
46、件開(kāi)發(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、一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)〔約100個(gè)類,則設(shè)計(jì)7±2層〕 3、設(shè)計(jì)簡(jiǎn)單的類〔定義不超過(guò)一頁(yè)紙或兩屏〕.應(yīng)注意: ①避免過(guò)多屬性; ②能用簡(jiǎn)單的語(yǔ)句描述一個(gè)類的任務(wù); ③對(duì)象之間合作關(guān)系要簡(jiǎn)單; ④避免過(guò)多方法<£ 7個(gè)>. 4、使用簡(jiǎn)單的協(xié)議,減少消息中傳遞的參數(shù) 5、使用簡(jiǎn)單的方法<
47、CASE 可考慮用繼承替代>. 6、把設(shè)計(jì)變動(dòng)減至最小. 3.為什么說(shuō)類構(gòu)件是目前較為理想的可重用軟構(gòu)件?它有哪些重用方式? 具備可重用的軟構(gòu)件應(yīng)有的特點(diǎn):獨(dú)立、可塑、接口清晰〔文檔詳盡〕 重用方式有:實(shí)例重用、繼承重用和多態(tài)重用. 4.什么是繼承耦合? 繼承是一般化類和特殊類之間耦合的一種形式.從本質(zhì)上看,通過(guò)繼承關(guān)系結(jié)合起來(lái)的基類和派生類,構(gòu)成了系統(tǒng)中粒度更大的模塊.因此,與交互耦合相反,繼承的耦合程度會(huì)更高. 第十一章 面向?qū)ο髮?shí)現(xiàn) 1. 面向?qū)ο髮?shí)現(xiàn)應(yīng)該選用哪種程序設(shè)計(jì)語(yǔ)言?為什么? 應(yīng)該選擇能夠更完整、更正確地表達(dá)問(wèn)題域語(yǔ)義的面向?qū)ο笳Z(yǔ)言.這是由于面向?qū)ο笳Z(yǔ)言相對(duì)非
48、面向?qū)ο蟮恼Z(yǔ)言,其突出的優(yōu)點(diǎn):一致的表示方法、可重用性、可維護(hù)性. 2. 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言主要有哪些技術(shù)特點(diǎn)? 面向?qū)ο笳Z(yǔ)言的技術(shù)特點(diǎn)主要有: a) 支持類與對(duì)象概念的機(jī)制 b) 實(shí)現(xiàn)整體—部分結(jié)構(gòu)的機(jī)制 c) 實(shí)現(xiàn)一般—特殊結(jié)構(gòu)的機(jī)制 d) 實(shí)現(xiàn)屬性和服務(wù)的機(jī)制 e) 類型檢查 f) 類庫(kù) g) 效率 h) 持久保存對(duì)象 i) 參數(shù)化類 j) 開(kāi)發(fā)環(huán)境 3. 選擇面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言時(shí)主要應(yīng)該考慮哪些因素? 主要應(yīng)該著重考慮以下因素:將來(lái)能否占主導(dǎo)地位、可重用性、類庫(kù)和開(kāi)發(fā)環(huán)境、其他因素等. 4. 良好的面向?qū)ο蟪绦蛟O(shè)計(jì)風(fēng)格主要有哪些準(zhǔn)則? 提高可重用性、
49、提高可擴(kuò)充性、提高健壯性. 5. 測(cè)試面向?qū)ο筌浖r(shí),單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試各有哪些新特點(diǎn)? 單元測(cè)試是在類層面上的測(cè)試.由于繼承和復(fù)合,類<或?qū)ο?在很多情況下已不再是單純意義上的單個(gè)操作了.因此,具體的測(cè)試將在所有與該操作有關(guān)的每個(gè)子類語(yǔ)境中進(jìn)行. 集成測(cè)試由于面向?qū)ο筌浖蓄惖某煞值闹苯雍烷g接交互,使得傳統(tǒng)測(cè)試方法已經(jīng)失去意義.因此有兩種策略可供選擇:基于線程的測(cè)試和基于使用的測(cè)試. 確認(rèn)測(cè)試與傳統(tǒng)確認(rèn)測(cè)試一樣,仍然關(guān)注于用戶可見(jiàn)的動(dòng)作和用戶可識(shí)別的系統(tǒng)輸出,但是,基于場(chǎng)景的測(cè)試總是主宰面向?qū)ο笙到y(tǒng)的確認(rèn)測(cè)試. 6. 測(cè)試面向?qū)ο筌浖r(shí),主要有哪些設(shè)計(jì)單元測(cè)試用例的方法?
50、 隨機(jī)測(cè)試、劃分測(cè)試和基于故障的測(cè)試. 7. 測(cè)試面向?qū)ο筌浖r(shí),主要有哪些設(shè)計(jì)集成測(cè)試用例的方法? 多類測(cè)試、從動(dòng)態(tài)模型中導(dǎo)出測(cè)試用例.也可以采用隨機(jī)測(cè)試、劃分測(cè)試的方法. 8. 測(cè)試面向?qū)ο筌浖r(shí),主要有哪些設(shè)計(jì)確認(rèn)測(cè)試用例的方法? 可以采用傳統(tǒng)的黑盒方法,也可以采用基于情景的方法. 第十二章 項(xiàng)目管理 1. 請(qǐng)簡(jiǎn)單描述有哪些進(jìn)行軟件規(guī)模估算的方法. 代碼行技術(shù)和功能點(diǎn)技術(shù). 2. 在工作量估算技術(shù)中,動(dòng)態(tài)多變量模型比靜態(tài)單變量模型有哪些優(yōu)點(diǎn)? 可以更精確地進(jìn)行估算,估算結(jié)果更切合被估算對(duì)象的實(shí)際. 3. 簡(jiǎn)述Gantt圖的用途和優(yōu)缺點(diǎn). 優(yōu)點(diǎn):簡(jiǎn)單,能動(dòng)態(tài)地反映開(kāi)
51、發(fā)進(jìn)展.
缺點(diǎn):難以反映多個(gè)任務(wù)間的邏輯關(guān)系.
4. 簡(jiǎn)述關(guān)鍵路徑法CPM工作步驟
<1> 標(biāo)出持續(xù)時(shí)間 Lasting Time
<2> 標(biāo)出最早開(kāi)始時(shí)間EST: = 從起點(diǎn)始,所有進(jìn)入事件的 EST+LT 中最大的
<3> 標(biāo)出最遲開(kāi)始時(shí)間 LST: = 從終點(diǎn)
52、. 6. 簡(jiǎn)述主程序員組的優(yōu)缺點(diǎn). 優(yōu)點(diǎn)主要有:主程序員廣播式發(fā)布工作要求,組織管理好、效率高、質(zhì)量容易保證、成本相對(duì)較低. 缺點(diǎn)主要有:人員完整配備較難、不利人才脫穎而出.并且,能夠在技術(shù)和管理兩方面都能同時(shí)具備優(yōu)秀品質(zhì)的主程序員更不多見(jiàn). 7. 什么是軟件質(zhì)量? 軟件質(zhì)量就是軟件與明確與隱含的需求相一致的程度. 8. 軟件質(zhì)量保證的措施主要有哪些? ⑴審查:由組長(zhǎng)、作者、2位評(píng)審員〔與評(píng)審結(jié)果有利害關(guān)系的〕組成審查小組,進(jìn)行發(fā)現(xiàn)、記錄錯(cuò)誤的工作,并復(fù)查返工結(jié)果. ⑵復(fù)查和管理復(fù)審:從技術(shù)、管理兩方面進(jìn)行的復(fù)查工作. ⑶測(cè)試 9. 參加軟件質(zhì)量保證活動(dòng)的人員有哪兩類?
53、可以分為兩類:參與軟件開(kāi)發(fā)的技術(shù)人員,以與負(fù)責(zé)任軟件質(zhì)量保證活動(dòng)的SQA小組成員. 10. 簡(jiǎn)述技術(shù)復(fù)審的必要性. 技術(shù)復(fù)審能夠較早發(fā)現(xiàn)軟件錯(cuò)誤,防止錯(cuò)誤被帶入到軟件過(guò)程的后期階段,從而大大降低后續(xù)開(kāi)發(fā)和維護(hù)的成本. 11. 什么是軟件能力成熟度模型?其基本思想是什么? 軟件能力成熟度模型是用于評(píng)價(jià)軟件開(kāi)發(fā)機(jī)構(gòu)的軟件過(guò)程能力成熟度的模型,其基本思想是,采用能力成熟度模型來(lái)幫助軟件開(kāi)發(fā)機(jī)構(gòu)建立一個(gè)有規(guī)律的、成熟的軟件過(guò)程,以開(kāi)發(fā)出質(zhì)量更好的軟件,免受時(shí)間和成本超支之苦. 12. 簡(jiǎn)述軟件能力成熟度模型的5個(gè)等級(jí). <1>初始級(jí) <2>可重復(fù)級(jí) <3>已定義級(jí) <4>已管理級(jí) <5>優(yōu)化級(jí) 13 / 13
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備采購(gòu)常用的四種評(píng)標(biāo)方法
- 車(chē)間員工管理須知(應(yīng)知應(yīng)會(huì))
- 某公司設(shè)備維護(hù)保養(yǎng)工作規(guī)程
- 某企業(yè)潔凈車(chē)間人員進(jìn)出管理規(guī)程
- 企業(yè)管理制度之5S管理的八個(gè)口訣
- 標(biāo)準(zhǔn)化班前會(huì)的探索及意義
- 某企業(yè)內(nèi)審員考試試題含答案
- 某公司環(huán)境保護(hù)考核管理制度
- 現(xiàn)場(chǎng)管理的定義
- 員工培訓(xùn)程序
- 管理制度之生產(chǎn)廠長(zhǎng)的職責(zé)與工作標(biāo)準(zhǔn)
- 某公司各級(jí)專業(yè)人員環(huán)保職責(zé)
- 企業(yè)管理制度:5S推進(jìn)與改善工具
- XXX公司環(huán)境風(fēng)險(xiǎn)排查及隱患整改制度
- 生產(chǎn)車(chē)間基層管理要點(diǎn)及建議