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

下載本文檔

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

文檔簡介

/*****************************簡答題********************************************/1.什么是軟件工程?軟件工程的目標是什么?答:軟件工程是①將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護過程,即將工程化應用于軟件開發和管理之中,②對①中所選方法的研究。目標:1合理預算開發成本,付出較低的開發費用。2實現預期的軟件功能,達到較好的軟件性能,滿足用戶的需求。3提高軟件的可維護性,降低維護費用。4提高軟件開發生產率,及時交付使用2.指出瀑布模型中下列任務的順序:驗收測試,項目計劃,單元測試,需求評審,成本估計,概要設計,詳細設計,系統測試,設計評審,編碼,需求規格說明書。答:項目計劃,成本估計,需求規格說明書,需求評審,概要設計,詳細設計,設計評審,編碼,單元測試,系統測試,驗收測試3.可行性研究報告的主要內容是什么?答:可行性研究主要包括以下幾個部分:(1)概述(2)技術可行性(3)項目成熟程度(4)市場需求情況和風險分析(5)投資估算及資金籌措(6)經濟與社會效益(7)綜合實力和產業基礎(8)項目實施進度計劃(9)其它尚需要說明的必要的方面(10)結論4.什么是需求分析?需求分析階段的基本任務是什么?答:所謂"需求分析",是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數據,要得到什么結果,最后應輸出什么。可以說,"需求分析"就是確定要計算機"做什么"。任務:確定軟件項目的目標和范圍。調查使用者的要求,分析軟件必須做什么,編寫需求規格說明書等它相關文檔,并進行必要的需求審查。除此之外,還包括需求變更控制,需求風險控制,需求版本控制等對需求的管理工作5.什么是結構化分析方法?該方法使用什么描述工具?答:結構化的分析方法是面向數據流的方法,因此,此方法研究的核心是數據的組成和數據流向和對數據的加工處理。結構化分析方法用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直至找到滿足功能要求的所有可實現的軟件元素為止描述工具:1系統流程圖2數據流程圖3數據字典4IPO圖5層次方框圖6實體-關系圖7狀態-變遷圖6.結構化分析方法通過哪些步驟來實現?答:1)確定系統的功能要求2)確定系統的數據要求3)確定系統的操作要求和界面要求4)確定系統的性能要求5)確定系統的運行要求6)獲得當前系統的物理模型7)抽象出當前系統的邏輯模型8)建立目標系統的邏輯模型。9)修正開發計劃10)如果需要則開發系統原型7.什么是數據流圖?其作用是什么?其中的基本符號各表示什么含義?答:數據流圖:簡稱DFD,就是采用圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。數據流圖的基本符號的意思:1.矩形表示數據的外部實體;2.圓角的矩形表示變換數據的處理邏輯;3.少右面的邊矩形表示數據的存儲;4.箭頭表示數據流。8.什么是數據字典?其作用是什么?它有哪些條目?答:數據字典,主要用來描述數據流程圖中的數據流、數據存儲、處理過程和和數據源點/終點。作用:數據流程圖描述了系統的邏輯結構,其中的四個基本圖形元素的含義無法在數據流程圖中詳細說明,因此數據流程圖需要與其他工具配合使用,數據字典就是這樣的工具之一。包括的條目:數據流詞條數據元素詞條數據存儲詞條數據加工處理詞條數據源點及終點詞條9.什么是概要設計?有哪些基本任務?答:概要設計:根據用戶的需求先確定軟件系統的總體結構和總的設計原則基本的任務:設想供選擇的方案。推薦最佳方案。功能分解,確定軟件結構。設計軟件結構。制定測試計劃。數據設計。書寫文檔。包括總體設計規格說明書。用戶手冊。測試計劃。設計審查和復審。10.詳細設計的基本任務是什么?有那幾種描述方法?答:詳細設計階段的任務是要為編寫程序代碼設計"圖紙",由程序員按"圖紙"用某種高級程序設計語言編寫程序代碼。主要方法有設計程序流程圖,表格設計符號以及過程設計語言。11.什么是變換流?什么是事物流?答:變換型數據流可以劃分為明顯的三部分:邏輯輸入,中心變換,邏輯輸出。事務流的特點是數據沿某個輸入路徑流動,該路徑將外部信息轉換成事務,其中發射出多條事務處理路徑的中心處理被稱為中心事務12.模塊的內聚有哪幾種?模塊間的耦合有哪幾種?答:內聚分為七種類型:巧合內聚:一個模塊執行多個完全互不相關的動作,那么這個模塊就有巧合內聚邏輯內聚:當一個模塊執行一系列相關的動作時,稱其有邏輯內聚。時間性內聚:當一個模塊內的多個任務是與時間有關時,這個模塊具有時間性內聚。過程內聚:模塊執行的若干動作之間有順序關系。通信內聚:模塊執行的若干動作之間有順序關系,并且所有動作是在相同的數據上執行。信息內聚:一個模塊中執行一系列動作,每個動作都有自己的入口點和處理代碼,所有的動作都作用在相同的數據結構上,這樣的模塊叫做信息內聚。功能性內聚:一個模塊中各個部分都是完成某一具體功能必不可少的組成部分耦合分為七類:內容耦合:如果一個模塊直接參考另一個模塊的內容,則這兩個模塊是內容耦合。公共耦合:如果多個模塊都訪問同一個公共數據環境,則稱它們是公共耦合。外部耦合:如果兩個模塊都訪問同一個全局簡單變量而不是同一全局數據結構,而且,不是通過參數表傳遞該全局變量的信息,則這兩個模塊屬于外部耦合。控制耦合:如果模塊A向模塊B傳遞一個控制信息,則稱這兩個模塊是控制耦合的。數據結構耦合:當一個模塊調用另一個模塊時傳遞了整個數據結構,這兩個模塊之間具有數據結構耦合。數據耦合:如果兩個模塊傳遞的是數據項,則這兩個模塊是數據耦合。非直接耦合:如果兩個模塊之間沒有直接關系,它們之間的聯系完全通過主模塊的控制和調用來實現的,這就是非直接耦合。1.舉例說明類和對象的關系。答:學生可作為一個類---學生類,每個學生就是這個學生類的一個實例,例如,學生張三就是學生類的一個實例。2.面向對象分析的關鍵步驟有哪些?應建立哪幾個模型?答:關鍵步驟有識別問題域的對象并分析它們相互之間的關系,建立簡潔、精確、可理解的正確模型;應建立的模型有功能模型,對象模型,動態模型。3.什么是實體類、邊界類和控制類?為什么將分析類劃分成這三種類型?答:(1)實體類保存要存入永久存儲體的信息。實體類通常在事件流或交互圖中,是對用戶最有意義的類。邊界類位于系統與外界的交界處,包括所有的窗體、報表、系統硬件接口、與其他系統的接口。控制類負責協調其他類的工作。每個用例中至少應該有一個控制類,它控制用況中的事件順序。(2)分為三種類型是因為它們各自的功能不同。界面類--描述系統8)測試程序時不僅要檢查程序是否做了它應該做的事情,還要檢查它是否做了不該做的事情。例如,工資軟件中,軟件只完成在編職工的工資計算和輸出,不在編人員的工資是不進行計算和輸出的。如果軟件將不在編人員的工資信息也輸出顯然是不合適的。9)嚴格執行測試計劃。在測試之前應該有明確的測試計劃,內容包括:要測試的軟件功能和內容、測試用例和預期結果、測試的進度安排、需要的工具和資源、測試控制方式和過程等。10)做好測試記錄,為統計和維護提供基礎數據。4.請說明集成測試、系統測試和驗收測試有什么不同?答:集成測試界于單元測試和系統測試之間,起到"橋梁作用",一般由開發小組采用白盒加黑盒的方式來測試,既驗證"設計",又驗證"需求"。系統測試的粒度最大,一般由獨立測試小組采用黑盒方式來測試,主要測試系統是否符合"需求規格說明書"。驗收測試與系統測試相似,主要區別是測試人員不同,驗收測試由用戶執行。5.簡述單元測試的內容。答:單元測試的內容有1)模塊接口測試:對通過被測模塊的數據流進行測試。為此,對模塊接口,包括參數表、調用子模塊的參數、全程數據、文件輸入/輸出操作都必須檢查。2)局部數據結構測試:設計測試用例檢查數據類型說明、初始化、缺省值等方面的問題,還要查清全程數據對模塊的影響。 3)路徑測試:選擇適當的測試用例,對模塊中重要的執行路徑進行測試。對基本執行路徑和循環進行測試可以發現大量路徑錯誤。4)錯誤處理測試:檢查模塊的錯誤處理功能是否包含有錯誤或缺陷。例如,是否拒絕不合理的輸入;出錯的描述是否難以理解、是否對錯誤定位有誤、是否出錯原因報告有誤、是否對錯誤條件的處理不正確;在對錯誤處理之前錯誤條件是否已經引起系統的干預等。5)邊界測試:要特別注意數據流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細地選擇測試用例,認真加以測試。此外,如果對模塊運行時間有要求的話,還要專門進行關鍵路徑測試,以確定最壞情況下和平均意義下影響模塊運行時間的因素。這類信息對進行性能評價是十分有用的。6.什么是白盒測試?它適應哪些測試?答:白盒測試也叫結構測試,測試者需要了解被測程序的內部結構。白盒測試通常根據覆蓋準則設計測試用例,有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋和條件組合覆蓋。白盒測試適用與單元測試、集成測試、系統測試7.非漸增式測試與漸增式測試有什么區別?漸增式測試如何組裝模塊?答:1)漸增式可以較早地發現模塊界面之間的錯誤,非漸增式則要到最后將所有模塊連接起來時才能發現此類錯誤。2)非漸增式需要較多的人工3)漸增式有利于排錯。如果模塊界面間有錯,如果用非漸增式,這類錯誤到最后聯合測試時才能發現,此時很難判斷錯誤發生在哪一部分,但如果用漸增式,這類錯誤就較容易定位,它通常與最新加上去的模塊有關。4)漸增式比較徹底。5)漸增式需要較多的機器時間。6)非漸增式方式,開始時允許幾個測試人員并行工作,對大型系統來說,是很有意義的。8.采用黑盒技術設計測試用例有哪幾種方法?這些方法各有什么特點?答:黑盒測試設計測試用例的方法有1)等價類劃分法特點是:a、測試的內容相同b、一個等價類中的某個測試可以發現缺陷,那么這個等價類的其他測試也能發現缺陷c、一個等價類中的某個測試不能發現缺陷,那么這個等價類的其它測試也不能發現缺陷2)邊界值分析法特點是:用邊界值分析時時常收獲較大,它是在等價類的邊界上選擇測試用例3)錯誤推測法特點是:沒有確定的步驟,很大程度上是憑借經驗進行的4)因果圖法特點是:考慮輸入條件間的組合關系;考慮輸出條件對輸入條件的信賴關系;測試用例發現錯誤的效率高;能查出功能說明中的某些不一致或遺漏9.白盒測試法有哪些覆蓋標準?試對它們的檢錯能力進行比較。答:白盒測試的覆蓋標準有:語句覆蓋->判定覆蓋->條件覆蓋->判定/條件覆蓋->條件組合覆蓋->路徑覆蓋檢錯能力由弱到強10.軟件的可維護性是軟件設計師最關注的性能,談談為了獲得軟件良好的可維護性,在設計時應該注意哪些問題?答:為獲得軟件的良好可維護性,在設計階段應該做一些變更實驗,檢查系統的可維護性、靈活性和可移植性,設計時應該將今后可能變更的內容與其他部分分離開來,并且遵循高內聚、低偶合的原則。11.在軟件文檔中,你認為哪些文檔對于軟件的維護最重要?需求分析文檔、設計文檔、程序文檔對軟件維護很重要12.軟件維護時的源程序修改策略是什么?答:軟件維護時的源程序修改策略是:由于軟件維護最終落實在修改源程序和文檔上。為了正確、有效地修改源程序,通常要先分析和理解源程序,然后才能修改源程序,最后重新測試和驗證源程序。13.軟件項目計劃包括那些內容?1.范圍。對該軟件項目的綜合描述,定義起所要做的工作以及性能限制,它包括:(1)項目目標。(2)主要功能。(3)性能限制。(4)系統接口。(5)特殊要求。(6)開發概述。2.資源。(1)人員資源。(2)硬件資源。(3)軟件資源。(4)其他。3.進度安排。進度安排的好壞往往會影響整個項目的按期完成,因此這一環節是十分重要的。制定軟件進度與其他工程沒有很大的區別,其方法主要有:(1)工程網絡圖。(2)Gantt圖。(3)任務資源表。(4)成本估算。(5)培訓計劃。15.什么是軟件配置管理?什么是基線?答:配置管理能夠系統地處理變更,從而使得軟件系統可以隨時保持其完整性。配置管理又可成為變更控制,可以用來評估提出的變更請求,跟蹤變更,并保持系統在不同時間的狀態。軟件配置管理是一套規范、高效的軟件開發基礎結構。基線是:已經通過正式復審和批準的某規約或產品,它因此可以作為進一步開發的基礎,并且只能通過正式的變化控制過程改變。16.什么是軟件工程?請分析軟件工程的目標是什么?答案:軟件工程是:①將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護過程,也就是說將工程化應用于軟件開發和管理之中;②對①中所選方法的研究"。軟件工程旨在開發滿足用戶需要、及時交付、不超過預算和無故障的軟件,其主要目標如下:a)實現預期的軟件功能,達到較好的軟件性能,滿足用戶的需求。b)增強軟件過程的可見性和可控性,保證軟件的質量。c)提高所開發軟件的可維護性,降低維護費用。d)提高軟件開發生產率,及時交付使用。e)合理預算開發成本,付出較低的開發費用。1.什么是軟件危機?軟件危機表現在哪幾個方面?由于軟件特點和長期以來一直沒有發明一種高效的開發方法,導致軟件生產效率非常低,交付期一拖再拖,最終交付的軟件產品在質量上很難保障。這種現象早在20世紀60年代被定義為"軟件危機"。它的具體表現如下:a)"已完成"的軟件不滿足用戶的需求。b)開發進度不能保障,交付時間一再拖延。c)軟件開發成本難以準確估算,開發過程控制困難造成開發成本超出預算。d)軟件產品的質量沒有保證,運算結果出錯、操作死機等現象屢屢出現。e)軟件通常沒有適當的文檔資料,或文檔與最終交付的軟件產品不符,軟件的可維護程度非常低。2.根據相關的法律,對于侵犯軟件著作權的行為,根據情節應當給予什么處罰?答案:對于侵犯軟件著作權的行為,要根據情況承擔停止侵害、消除影響、賠禮道歉、賠償損失等民事責任;損害社會公共利益的,由著作權行政管理部門責令停止侵權行為,沒收違法所得,沒收、銷毀侵權復制品,并處罰款;情節嚴重的,著作權行政管理部門可以沒收用于制作侵權復制品的材料、工具、設備等;觸犯刑律的,依法追究刑事責任。3.根據你的理解,列舉出職業化軟件工程師要注意的三個主要問題,請給出理由。答案:沒有唯一答案。a)不遵守標準和規范:職業化的重要特征是遵守行業標準,不能肆意按照自己的想象來發揮。自從人們認識到軟件危機以來,總結軟件開發的失敗教訓和成功經驗,并把它們總結成為最佳實踐,進而形成標準,要充分利用這些最佳實踐和標準來指導軟件過程。任何閉門造車、想當然的行為都是不被提倡的,注定要走彎路。b)對待計劃不嚴肅:軟件工程強調計劃性,計劃的內容包括:設備資源、進度安排、人力資源、任務分配等等。在項目的進行中要跟蹤計劃執行情況,記錄計劃執行過程中的偏差,對任何變更都要經過評審和批準才能付諸行動。c)不主動與人溝通:軟件不可見的特性,需要軟件工程師進行大量書面的、口頭的或面對面的溝通,溝通的目的是為了使相關的人員了解項目的進展、遇到的問題、應用的技術、采用的方法。4.軟件工程為什么要強調規范化和文檔化?答案:軟件工程強調規范化和文檔化。規范化的目的是使眾多的開發者遵守相同的規范,使軟件生產擺脫個人生產方式,進入標準化、工程化的生產方式。文檔化是將軟件的設計思想、設計過程和實現過程完整地記錄下來,以便于后人的使用和維護,在開發過程中各類相關人員借助于文檔進行交流和溝通。另外,在開發過程中產生的各類文檔使得軟件的生產過程由不可見變為可見,便于管理者對軟件生產進度和開發過程進行管理。在用戶最終驗收時可以通過對提交的文檔進行技術審查和管理審查,保證軟件的質量。5.請簡單說明結構化分析的主要步驟。答案:根據用戶的需求畫出初始的數據流程圖,寫出數據字典和初始的加工處理說明(IPO圖),實體關系圖。以初始數據流程圖為基礎,從數據流程圖的輸出端開始回溯。在對數據流程圖進行回溯的過程中可能會發現丟失的處理和數據,應將數據流程圖補充完善。對軟件性能指標、接口定義、設計和實現的約束條件等逐一進行分析。系統分析人員與用戶一起對需求分析的結果進行復查。根據細化的需求修訂開發計劃。編寫需求規格說明書和初始的用戶手冊,測試人員開始編寫功能測試用的測試數據。6.設計類的屬性時必須要定義是哪兩項?設計類的屬性時必須要定義的內容:1)屬性的類型:設計屬性時必須要根據開發語言確定每個屬性的數據類型,如果數據類型不夠,設計人員可以利用已有的數據類型定義新的數據類型。2)屬性的可見性。在設計屬性時要確定公有屬性、私有屬性、受保護屬性。7.請簡單分析順序圖和活動圖的區別。活動圖反映系統中從一個活動到另一個活動的流程,強調對象間的控制流程。活動圖特別適合描述工作流和并行處理過程。具體地說活動圖可以描述一個操作過程中需要完成的活動;描述一個對象內部的工作;描述如何執行一組相關的動作,以及這些動作如何影響它們周圍的對象;說明一個業務活動中角色、工作流、組織和對象是如何工作的。順序圖用于描述一組交互對象間的交互方式,它表示完成某項行為的對象和這些對象之間傳遞消息的時間順序。8.面向對象的分析通常要建立三個模型,請問三個模型的作用?a)功能模型:表達系統的詳細需求,為軟件的進一步分析

溫馨提示

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

評論

0/150

提交評論