軟件工程簡答題1_第1頁
軟件工程簡答題1_第2頁
軟件工程簡答題1_第3頁
軟件工程簡答題1_第4頁
軟件工程簡答題1_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1. 簡述你對軟件工程的理解?(包括起源,定義,目標,內(nèi)容,作用等)起源:為了解決軟件危機發(fā)展:第一代軟件工程,即傳統(tǒng)軟件工程:結(jié)構化分析、結(jié)構化設計和結(jié)構化編程方法是這個時期的代表;從80年代中到90年代中,研究的重點轉(zhuǎn)移到面向?qū)ο蠓治龊驮O計上來,從而演化成軟件工程的第二代,稱之為對象工程;組件技術的研究和發(fā)展形成了新一代軟件工程,即第三代軟件工程定義:軟件工程是采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理方法和先進軟件開發(fā)技術結(jié)合起來,運用到軟件開發(fā)和維護過程中,來解決軟件危機;軟件工程是將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護過程,

2、即將工程化應用于軟件開發(fā)和管理之中,對中所選方法的研究。目標:旨在開發(fā)滿足用戶需要、及時交付、不超過預算和無故障的軟件。主要目標是:實現(xiàn)預期的軟件功能,達到較好的軟件性能,滿足用戶的需求;增強軟件過程可見性和可控性,保證軟件的質(zhì)量;提高軟件的可維護性,降低維護費用;提高軟件開發(fā)生產(chǎn)率,及時交付使用;合理預算開發(fā)成本,付出較低的開發(fā)費用內(nèi)容:軟件開發(fā)技術和軟件開發(fā)管理兩個方面。軟件開發(fā)技術方面主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。軟件開發(fā)管理方面主要研究軟件工程管理學、軟件工程經(jīng)濟學、軟件工程心理學。 作用:在一定程度上解決了軟件危機的問題2. 什么是軟件危機?定義:計算機軟件

3、開發(fā)和維護過程中所遇到的一系列嚴重問題。表現(xiàn):“已完成”的軟件不滿足用戶的需求;開發(fā)進度不能保障;軟件開發(fā)成本難以準確估算;軟件產(chǎn)品的質(zhì)量沒有保證。3. 什么是瀑布模型? 瀑布模型規(guī)定了軟件生命周期的各項活動:問題定義、可行性研究、需求分析、軟件設計、編碼、測試、運行和維護。各項活動自頂向下、相互銜接如同瀑布一樣。這里的修飾詞“瀑布”非常貼切,明確了一個活動結(jié)束,進入到下一個活動后,很難再回到前一個活動中去,也就是工作不可逆轉(zhuǎn)。4. 什么是需求分析?需求分析階段的基本任務是什么?答:開發(fā)人員準確地理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到

4、相應的需求規(guī)格說明的過程基本任務:確定對系統(tǒng)的綜合要求,分析系統(tǒng)的數(shù)據(jù)要求,導出系統(tǒng)的邏輯模型,修正系統(tǒng)的開發(fā)計劃1.定義系統(tǒng)邊界2.建立軟件原型3.分析需求可行性4.確定需求優(yōu)先級5.建立需求分析模型6.創(chuàng)建數(shù)據(jù)字典7.制定符合要求的系統(tǒng)開發(fā)計劃5. 什么是數(shù)據(jù)流程圖?有幾種圖形元素,分別起什么作用?答:數(shù)據(jù)流圖:簡稱DFD,就是采用圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。數(shù)據(jù)流圖的基本符號的意思: 1.矩形表示數(shù)據(jù)的外部實體;2.圓角的矩形表示變換數(shù)據(jù)的處理邏輯; 3.少右面的邊矩形表示數(shù)據(jù)的

5、存儲; 4.箭頭表示數(shù)據(jù)流。6. 什么是數(shù)據(jù)字典?在數(shù)據(jù)字典中定義數(shù)據(jù)時用的幾種符號是什么?數(shù)據(jù)字典:主要用來描述數(shù)據(jù)流程圖中的數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程和外部實體。數(shù)據(jù)字典中所有的定義必須是嚴密的、精確的、無二義性的。數(shù)據(jù)字典把數(shù)據(jù)的最小組成單位看成是數(shù)據(jù)元素或者叫做基本數(shù)據(jù)項,若干個數(shù)據(jù)元素可以組成一個數(shù)據(jù)結(jié)構也叫做組合數(shù)據(jù)項。7. 詳細設計的基本任務是什么?結(jié)構化設計有那幾種描述方法?答:從軟件開發(fā)的工程化觀點來看,在使用程序設計語言編制程序以前,需要對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。這就是過程設計的任務。在過程設計階段,要決定各個模塊的實現(xiàn)算法

6、,并精確地表達這些算法。表達過程規(guī)格說明的工具叫做詳細設計工具,它可以分為以下三類:圖形工具、表格工具、語言工具結(jié)構化程序的特征:程序模塊只有一個入口和一個出口;程序中只包含順序、條件和循環(huán)三種控制結(jié)構。詳細設計主要方法有設計程序流程圖、判定樹、PDL(是一種用于描述功能模塊的算法設計和加工細節(jié)的語言)、N-S圖(盒圖)、問題分析圖(PAD)、判定表、8. 模塊的內(nèi)聚有哪幾種?模塊間的耦合有哪幾種?答:內(nèi)聚分為七種類型:a. 功能內(nèi)聚 :一個模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚

7、模塊。b. 順序內(nèi)聚:模塊中處理元素和同一個功能密切相關;一個成分的輸出作為另一個成分的輸入;處理元素必須是順序執(zhí)行的c. 通信內(nèi)聚:一個模塊內(nèi)各功能部分都針對相同輸入/輸出數(shù)據(jù)進行處理。d. 過程內(nèi)聚:模塊內(nèi)各處理成分相關;必須以特定次序執(zhí)行e. 時間內(nèi)聚:模塊完成的功能必須在同一時間內(nèi)執(zhí)行,這些功能只因時間因素關聯(lián)在一起。f. 邏輯內(nèi)聚:把幾種相關功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。g. 巧合內(nèi)聚:模塊內(nèi)各部分間無聯(lián)系耦合分為七類:1. 非直接耦合:模塊之間沒有消息傳遞2. 數(shù)據(jù)耦合:一模塊調(diào)用另一模塊時,被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)(

8、若干參數(shù))3. 特征耦合:如兩個模塊通過傳遞數(shù)據(jù)結(jié)構(不是簡單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個數(shù)據(jù)結(jié)構有關系, 則稱這兩個模塊間存在特征偶合。4. 控制耦合:在模塊間傳遞的信息是用作控制信號的開關值或標志量。控制模塊必須知道被控制模塊的內(nèi)部邏輯,從而增強了模塊間的相互依賴。5. 外部耦合:允許一組模塊訪問同一個全局變量6. 公共耦合:多個模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則稱它們是公共耦合。7. 內(nèi)容耦合:一個模塊直接使用另一個模塊的內(nèi)部數(shù)據(jù)9. 面向?qū)ο蠓治龅年P鍵步驟有哪些?應建立哪幾個模型?答:面向?qū)ο蠓治鍪浅槿『驼碛脩粜枨蟛⒔栴}域精確模型的過程。關鍵步驟是識別問題域的對象并

9、分析它們相互之間的關系,建立簡潔、精確、可理解的正確模型;1. 功能模型:表達系統(tǒng)的詳細需求,由用例圖和場景描述組成2. 對象模型:表示靜態(tài)的、結(jié)構化的系統(tǒng)“數(shù)據(jù)”性質(zhì)。描述現(xiàn)實世界中實體的對象以及它們之間的關系,表示目標系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構。在面向?qū)ο蠓椒ㄖ?類圖是構件對象模型的核心工具。3. 動態(tài)模型:描述系統(tǒng)的動態(tài)結(jié)構和對象之間的交互,表示瞬時的、行為化的系統(tǒng)的“控制”特性。面向?qū)ο蠓椒ㄖ?常用狀態(tài)圖、順序圖、合作圖、活動圖構件系統(tǒng)的動態(tài)模型。10. 面向?qū)ο笤O計的主要活動有哪些的? 面向?qū)ο蟮脑O計活動主要有:系統(tǒng)構架設計、用例設計、類設計、數(shù)據(jù)庫設計和用戶界面設計。11. 面向?qū)ο笤O計的

10、原則是什么?開閉原則、替換原則、依賴倒轉(zhuǎn)原則、單一職責原則、接口分離原則1. 開閉原則:擴展性開放,更改性封閉;與高內(nèi)聚低耦合原則對應;抽象化是開閉原則的關鍵。 面向?qū)ο笤O計的目標2. 里氏代換原則:所有引用基類(父類)的地方必須能透明地使用其子類的對象。 面向?qū)ο笤O計的基礎3. 替換原則:子類可以替換父類,但不能改變父類的行為4. 依賴倒轉(zhuǎn)原則:高層模塊不應該依賴低層模塊,它們都應該依賴抽象。抽象不應該依賴于細節(jié),細節(jié)應該依賴于抽象。要針對接口編程,不要針對實現(xiàn)編程 面向?qū)ο笤O計的主要手段5. 單一職責原則:一個類應該有且僅有一個職責6. 接口隔離原則:采用多個與特定客戶類有關的接口比采用一

11、個通用的涵蓋多個業(yè)務方法的接口要好。客戶端不應該依賴那些它不需要的接口。12. 什么是開閉原則?為滿足開閉原則,類結(jié)構有什么特點?開閉原則:一個軟件實體應當對擴展開放,對修改關閉。也就是說在設計一個模塊的時候,應當使這個模塊可以在不被修改的前提下被擴展,即實現(xiàn)在不修改源代碼的情況下改變這個模塊的行為。13. UML中有哪幾圖,它們的作用分別是什么?用例圖、類圖、對象圖、狀態(tài)圖、時序圖、協(xié)作圖、活動圖、組件圖、配置圖) 用例圖:用于描述一組用例、角色以及它們之間的關系?;驹兀河美?、角色和關系 ;用例是軟件開發(fā)的核心元素) 活動圖:描述從一個活動到另一個活動的流程,用于對系統(tǒng)的動態(tài)特

12、性建模,反映控制流程。一張活動圖只能有一個開始狀態(tài)(UML2.0可以有多個),但可以有多個結(jié)束狀態(tài)。) 狀態(tài)圖:用來描述一個對象在其生命周期中所表現(xiàn)出來的狀態(tài)和行為。主要是幫助理解較復雜對象的行為變化。對象的各種狀態(tài);引起狀態(tài)變化的事件;每個狀態(tài)改變時所發(fā)生的動作。) 交互圖:根據(jù)獲得的用例圖、活動圖和狀態(tài)圖來細化系統(tǒng)的需求,找出系統(tǒng)中對象和對象之間的關系,反映對象之間關系的工具。一種是按時間順序反映對象之間相互關系的順序圖;另一種是集中反映各個對象之間通訊關系的合作圖。) 順序圖:順序圖是按時間順序反映對象之間傳遞的消息。順序圖的頂部放置相關的對象,沿對象向下的虛線表示對象的生命線,兩個對象

13、生命線之間的橫線表示對象之間傳遞消息,消息線的箭頭形狀表示消息的類型。) 協(xié)作圖:反映用例中各個對象之間消息傳遞,協(xié)作圖強調(diào)參與交互的對象的組織關系。) 類圖:反映類的結(jié)構(屬性、操作)以及類之間的關系為主要目的,描述了軟件系統(tǒng)的結(jié)構,是一種靜態(tài)建模方法。描述包括兩個部分類和類間關系:關聯(lián)(表示事物之間的一種固有聯(lián)系,描述類的結(jié)構之間的關系)、聚集和組成(表示類之間一種松散的整體與部分的組成關系|表示類之間一種緊密的整體與部分的組成關系)、泛化(先從一個一個具體的對象分析出類,再把一個一個具體類的共性抽取出來得到更抽象的類的過程。得到的更抽象的類稱為泛化類,泛化類和具體類之間的關系稱為泛化關系

14、)、依賴(描述兩個類或多個類之間的連接關系,其中一個類是獨立的,另一個類是非獨立的,依賴于獨立的類) 類圖都是最核心技術 ü 邊界類位于系統(tǒng)與外界的交界處,承擔系統(tǒng)與外界的信息功能.ü 實體類對應著現(xiàn)實中的客觀實物,用來保存信息,一般對應著數(shù)據(jù)表、文件等。ü 控制類承擔著事務處理,控制調(diào)控的控制作用。) 配置圖:反映了系統(tǒng)的物理模型,表示系統(tǒng)運行時的處理節(jié)點以及節(jié)點中組件的配置。用來描述系統(tǒng)中計算結(jié)點的拓撲結(jié)構和通信路徑與結(jié)點上運行的軟件構件等。一般一個系統(tǒng)僅有一個部署圖) 組件圖:描述組件以及它們之間的關系,用于表示系統(tǒng)的靜態(tài)實現(xiàn)視圖。14. 測試的目的是什么?

15、測試的核心問題是什么?為什么?測試階段的根本目的是盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。測試的目的是為了發(fā)現(xiàn)盡可能多的缺陷,不是為了說明軟件中沒有缺陷。成功的測試在于發(fā)現(xiàn)了迄今尚未發(fā)現(xiàn)的缺陷。所以測試人員的職責是設計這樣的測試用例,它能有效地揭示潛伏在軟件里的缺陷。15. 什么是白盒測試?有哪些覆蓋標準?它適應哪些測試?白盒測試在測試過程的早期階段進行,而黑盒測試主要用于測試過程的后期答:白盒測試把測試對象看做一個透明的盒子,它允許測試人員依據(jù)詳細設計說明書,利用程序內(nèi)部的邏輯結(jié)構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。覆蓋標準:語句

16、覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋 白盒測試適用與單元測試、集成測試、系統(tǒng)測試局限:對一個具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字黑盒測試又叫做功能測試或數(shù)據(jù)驅(qū)動測試。用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出,但這是不可能的。等價類劃分、邊值分析、因果分析、猜測錯誤驗證(Verification):通過檢查和提供客觀證據(jù),表明規(guī)定要求已經(jīng)滿足的認可。有效性確認(Validation):通過檢查和提供客觀證據(jù),表明一些針對某一特定預期用途的要求已經(jīng)滿足的認可。簡述簡單工廠模式及其

17、類圖結(jié)構.簡單工廠模式(Simple Factory Pattern):又稱為靜態(tài)工廠方法(Static Factory Method)模式,它屬于類創(chuàng)建型模式。在簡單工廠模式中,可以根據(jù)自變量的不同返回不同類的實例。簡單工廠模式專門定義一個類來負責創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類。 即將一個具體類的實例化交給一個靜態(tài)工廠方法來執(zhí)行16. 簡述工廠方法模式及其類圖結(jié)構.工廠方法模式又稱為工廠模式,也叫虛擬構造器(Virtual Constructor)模式或者多態(tài)工廠(Polymorphic Factory)模式,它屬于對象創(chuàng)建型模式。在工廠方法模式中,工廠父類負責定義創(chuàng)建產(chǎn)品對象的公共接口,而工廠子類則負責生成具體的產(chǎn)品對象,這樣做的目的是將產(chǎn)品

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論