




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、WORD完美格式第一章1、軟件概念:由計算機程序,數據,軟件文檔組成軟件的特點:無法直接觀察它的物理形態,只能通過觀察他的是實際運行情況來了解他的功能特性和質量等; 人們在分析設計開發測試過程以及軟件開發項目的管理過程中滲透了大量的人類的腦力勞動;不存在磨損和老化但存在缺陷維護和技術更新的問題;開發運行依賴一定的計算機系統環境;具有可復用性軟件的分類:按功能分:系統支撐應用軟件;按服務對象:通用定制軟件;按規模:大中小型軟件;按工作方式:實時分時交互式批處理2、軟件危機:是指落后的軟件生產方式無法滿足迅速增長的計算機軟件需求,從而導致軟件的開發與 維護過程中出現一系列嚴重問題的現象。主要表現:
2、開發人員開發的軟件產品不能完全滿足用戶的需求;軟件產品的質量難以得到保障;開發周期開發經費和維護費用很難被準確估計從而給項目的管理帶來很多麻煩; 隨著技術的更新,用戶的擴大,已有的軟件產品不能靈活地適應環境的改變; 軟件文檔不完備并且存在文檔內容與軟件產品不符的情況。原因:軟件開發是一項復雜的工程,需要用科學的工程化思想來組織和指導軟件開發的各個階段沒有完善的質量保證體系軟件文檔的重要性沒有得到軟件開發人員和用戶的足夠重視從事軟件開發的專業人員對這個產業認識不夠充分缺乏經驗軟件獨有的特點也給軟件的開發和維護帶來困難3、軟件工程是指應用計算機科學與技術,數學和管理學的原理,運用工程學理論方法和技
3、術,研究和 指導軟件開發和演化的一門交叉學科。軟件工程的目標:使軟件開發的成本控制在預計的合理范圍內;使軟件產品的各項功能和性能能夠滿足用戶需求;提高軟件產品的可靠性;使生產出來的軟件產品易于移植維護升級和使用;使軟件產品的開發周期能夠控制在預計的合理時間范圍內。軟件工程學科內容:軟件工程原理過程方法模型管理度量環境應用。軟件工程的基本原則:將軟件的生命周期劃分為多個階段,對各個階段實施嚴格的項目管理;堅持階段評審制度已確保軟件產品的質量;實施嚴格的產品控制以適應軟件規格的變更;采用現代程序設計技術;開發出來的產品應該能夠清楚地被審查;合理地安排軟件開發小組人員并且開發小組的人員要少而精;不斷
4、改進軟件工程的實踐。IEEE計算機學會建立軟件工程知識體系指南的目的:促進世界范圍內對軟件工程的一致觀點; 闡明軟件工程相對于其他學科的位置; 刻畫軟件工程學科的內容;提供使用知識體系的主題。4、軟件的生命周期:是指從設計該產品的構想開始到軟件的需求的確定軟件設計軟件實現產品的測試 與驗收投入使用及版本的不斷升級,到最終被市場淘汰的全過程。各個階段:編碼可行性研究軟件測試需求分析軟件維護。軟件設計5、軟件開發模型:瀑布模型。是一種線性的軟件開發模型回溯性很差,是一種基于里程碑的階段過程模型,強調軟件開發的階段性,每個階段完成特定的任務。瀑布模型適應:需求可以一次性全部獲得,開發人員經驗豐富,軟
5、件項目風險低。優點:階段性強易于管理缺點開發過程不靈活不能適應環境的變化。原型模型:是開發人員為了快速而準確的獲取需求常采用的方法。特點:主要用于挖掘需求,原型系統通常針對軟件開發系統的指功能模塊,功能相對不完善,通常結 合其他模塊共同使用。適應:對現有的軟件系統產品進行升級或完善,開發人員與用戶需求受限需求獲取困難,開發人員對將要采 用的技術手段不熟悉,具備快速開發工具。優點:是簡單快速缺點是需要花費一些額外的成本。增量模型:、是把帶開發軟件系統模塊化和組件化。優點:可以分批次的提交軟件產品,減低了軟件開發的風險,開發順序靈活。缺點:要求待開發的項目可模塊化。(4)螺旋模型:用于風險較大的大
6、型軟件開發模型,分為制定計劃風險分析實施工程客戶評估。6、敏捷模型:是一種輕量級的軟件方法。避免了傳統重量級軟件開發過程復雜文檔繁瑣的弊端,強調 軟件開發過程中團員的交流,過程的簡潔,用戶反饋的特性第二章1、可行性研究的目的不在于提出解決問題的方案,而在于研究解決問題的必要性和可能性。意義是盡 早的停止項目的開發就能夠避免時間、資金、人力和物力的浪費2、可行性研究包括:技術、社會、經濟可行性研究3、技術型可行性研究是對技術解決方案的實用性、技術資源的可用性和設備條件作出評估。經濟可研究要對項目的開發總成本與開發系統將帶來的經濟效益之間的差值進行度量。社會可行性研究從政策、 法律和制度等社會因素
7、方面考慮項目開發的合理性和意義4、可行性研究的步驟:確定系統的目標;分析研究正在運行的系統;設計新系統的高層邏輯模型;提出可行的解決方案并對其進行評估和比較;選擇合適的解決方案;撰寫可行性研究報告5、可行性研究的結論一般有三種:可以按計劃進行軟件項目的開發;需要解決某些存在的問題或者需要對現有的解決方案進行一些調整或改善后才能進行軟件項目的開發;待開發的軟件項目部不具有可行性、立即停止該軟件項目6、成本-效益分析第三章1、面向對象的基本概念包括對象類封裝繼承多態,對象是客觀世界中存在的事物,已可以是概念化的實體,他由一組屬性和操作組成。類是對對象的抽象,是對具有相同屬性和相同操作的一組相似對象
8、的 定義。封裝是指把對象的屬性和操作結合在一起組成一個獨立的單元,強調獨立與封閉。繼承表示類之間 的層次關系他使得某類對象可以自動擁有另外一個或多個對象的全部屬性和操作。多態是一種使父類中定 義的屬性或操作被子類繼承后可以有不同的實現的機制。2、面向對象軟件工程方法的優點:符合人們的思維習慣,穩定性好,可復用性好。3、目標系統的類可以劃分為邊界類、控制類和實體類4、UML統一建模語言,是一種標準的圖形化建模語言,主要用于軟件的分析和設計,用定義完善的符 號來圖形化的展現一個軟件系統第四章1、需求分析是在可行性研究的基礎上,將用戶對系統的描述,通過開發人員的分析概括,抽象為完整 的需求定義,再形
9、成一系列文檔的過程。2、需求分析的步驟:獲取需求識別問題,分析需求建立目標系統的邏輯框架,將需求文檔化,需求驗 證3、數據流圖data flow diagram是描述系統中數據流的圖形工具,是一種用來表示信息流和信息變換過程的圖解方法可以標識一個系統的邏輯輸入和輸出,以及把邏輯輸入轉化為邏輯輸出所需的加工處理。4、結構化需求分析采用的是:自頂向下由外到內逐層分解的思想5、數據字典用數據流圖流圖來表示系統的邏輯模型直觀且形象,但是缺乏細節描述,也就是說他沒有準確和完整的定義各個圖元。包含四類條目:數據流、數據存儲、數據項、數據加工6、ER圖包括實體、聯系、屬性第五章1、軟件設計的分類前期進行概要
10、設計,得到軟件系統的基本框架; 后期進行詳細設計,明確系統內部的實現細節。2、軟件設計的原則模塊化抽象逐步求精信息隱藏3、模塊化就是把系統或程序劃分為獨立命名且可以獨立訪問的模塊,每個模塊完成一個特定的子功能。在模塊化的過程中需要注意:模塊的規模要適中,提高模塊的獨立性,降低模塊間的耦合程度,提高模塊的內聚程度,加強模 塊的保護性。4、事務型數據流的設計步驟 確定以事務為中心的結構,找出事務中心、接收數據、處理路三個部分。 將數據流圖轉換為廚師的系統結構圖。分解和細化接收分支和處理分支。5、面向數據結構的設計方法比較流行的有 Jackon方法和Warnier方法。6、Jackon 方法把數據結
11、構分為三種基本類型:順序結構、選擇結構、和循環結構。7、流程圖是對過程、算法、流程的一種圖形表示,它對某個問題的定義、分析或解法進行描述,用定義完善的 符號表示操作、數據、流向等概念。8、流程圖分為數據、程序、系統、程序網絡圖和系統資源圖。9、流程圖五種基本結構:順序型、選擇型、先判定型循環、后判定型循環和多路分支選擇型。10、面向對象的設計原則模塊化抽象化信息隱藏低耦合高內聚復用性。11、軟件系統的設計模式解決某一類相似問題的方法論。描述了該問題的解決方案的核心。12、23種模式分3類:創建型模式 結構型模式 行為型模式。13、所謂模式,就是只解決某一類相似問題的方法論。每種設計模式都包含四
12、個要素:模式名稱,問 題,解決方案,效果描述第七章1 .編碼的過程就是把軟件設計階段得到的解決方案轉化為可以在計算機上運行的軟件產品的過程。2 .編程語言機器語言 匯編-面向機器的低級語言(簡捷、快速)高級語言面向過程、對象超高級語言。3、選擇編程語言時,考慮的因素:應用領域用戶要求開發人員喜好能力可移植要求算法和數據結構的復雜性。4、源程序文檔化按實際意義命名遵循一定命名規則變量不要過于相似 定義時作出解釋; 數據說明; 語句構造; 輸入輸出; 效率。第八章、第九章1軟件測試是發現軟件中錯誤和缺陷的主要手段。2軟件測試的原則: 完全測試是不可能的 測試中存在風險 軟件測試只能表明缺陷的存在
13、軟件產品中潛在的錯誤數與已發現的錯誤數成正比讓不同的測試人員參與到測試工作中讓開發小組和測試小組分離 盡早并不斷的進行測試 要重點測試容易出錯或錯誤較多的模塊 應該長期保留所有的測試用例3、常用的軟件測試模型有:V模型,W模型和H模型4、軟件測試的分類:按照時間階段:單元測試,集成測試,系統測試,驗收測試。按照是否運行程序:動態測試,靜態測試。按照是否看源碼:黑盒測試,白盒測試。按照質量因素:功能測試,可靠性測試,可用性測試,性能測試,安全性測試5、審查和走查是靜態測試的常用形式,且靜態測試的效率比較高6、動態測試中有兩種非常流行的測試技術,即黑盒測試和白盒測試7、單元測試是指對軟件中最小的可
14、測試單元進行檢查和驗證,基本單元一般來說是一個函數、一個過 程或者一個類。通常情況下,測試人員采用的白盒測試的方法。8、集成測試是指在單元測試的基礎上,對通過測試的單元模塊組裝成系統或子系統進行測試,由于測 試的對象是經過單元限額是的代碼,所以集成測試并不關注各個模塊的內部細節,而是關注模塊之間的接口是否運行正常9、軟件測試的一般步驟:單元測試、集成測試,系統測試,驗收測試10、面向對象的軟件測試可分為:面向對象的分析、設計、實現、單元、集成、系統測試和驗收測試11、軟件結構優化設計準則:使每個模塊執行一個功能每個模塊用過程語句調用其他模塊模塊間傳送的參數作數據用模塊間共用的信息盡量少設計優化
15、應該力求做到在有效模塊化的前提下使用最少量的模塊,并且在能夠滿足信息要求的前提 下使用最簡單的數據結構。12、耦合 耦合:是對一個軟件結構內不同模塊間彼此聯系程度的一種定性耦合度量。13、對象 對象:是系統中用來描述客觀事物的一個實體,是具有明確語義、對象、邊界的實體。14、測試方法 靜態測試 靜態測試:通常不要求在計算機上實際執行所測程序,主要靜態測試 以一些人工的模擬技術對軟件進行分析和測試。主要包括代碼審查和靜態結構分析。動態測試動態測試:是通過輸入一組預先按照一定的測試準則構造的動態測試實例數據來動態運行程序,從而達到發現程序錯誤的過程。它包括黑盒測試和白盒測試。16.測試技術 黑盒測
16、試 黑盒測試:在測試時,吧、把程序看作一個不能打開的黑盒黑盒測試 子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口處進行測試。 白盒測試 白盒測試:是一種廣泛使用的邏輯測試技術。它的對象基本白盒測試上是源程序,是以 程序的內部邏輯結構為基礎的一種測試技術。18、軟件測試要經過哪幾個階段?每個階段與什么文檔有關?軟件測試要經過哪幾個階段?每個階段與什么文檔有關?軟件測試要經過測試計劃過程、測試設計過程、測試執行過程、測試結束過4個階段測試計劃輸出文檔:測試計劃與測試需求測試設計過程輸出文檔:測試說明與測試方案測試執行過程輸出文檔:測試用例與測試規程測試結束過程輸出文檔:測試結論與
17、測試報告第十章1、軟件的維護是軟件產品生命周期的最后一個階段2、軟件維護的過程: 建立維護機構 用戶提供維護申請并提交維護申請報告維護人員確認維護類型并實施相應的維護工作整理維護記錄并對維護工作進行評審3、軟件的維護可以分為:糾錯性維護是為了識別并糾正軟件產品中所淺嘗的錯誤,改正軟件性能上的缺陷所進行的維護;適應性維護時為了使軟件產品適應硬件環境的變更而進行的維護;完善性維護是主要部分,他是針對用戶對軟件產品所提出新的需求所進行的維護;預防性維護。4、影響可維護性的因素:可理解性,可測試性,可修改性等。提高可維護性的措施:建立完整的文檔;采用先進的維護工具和技術;注重可維護性的評審環節。5、軟
18、件的質量的特性包括功能性、可靠性、可用性、效率、可維護性和可移植性6、McCall軟件的質量特性模型中的每種特性有(運行維護移植):正確性、效率、可靠性、可用性、 完整性、可維護性、可測試性、靈活性、可移植性、互聯性、可復用性。7、軟件質量的保證的措施:基于非執行的測試 基于執行的測試 程序的正確性證明。8、配置管理的工作范圍一般包括:標識配置項、進行配置控制、記錄配置狀態、執行配置審計。9、文檔是指某種數據介質和其中所記錄的數據。軟件文檔是用來表示對需求、過程或結果進行描述、 定義、規定或認證的圖示信息,他描述或規定了軟件設計和實現的細節。10、軟件工程文檔可以分為:用戶文檔、開發文檔和管理
19、文檔。2 .解釋名詞1 .軟件:是計算機系統中與硬件相互依存的另一部分,它是包括程序、數據、相關文檔的完整集合以及后續的維護服務。2 .白盒測試:是對軟件的過程性描述做細致的檢查,軟件測試員利用程序內部的邏輯結構及有關信息, 設計或選擇測試用例,對程序所有邏輯路徑進行測試。3 .邊界值分析:就是首先確定邊界情況,然后選取正好等于、剛剛大于,或剛剛小于邊界的值作為測試 數據。4 .模塊的扇入/扇出數:在軟件結構中,下級模塊被上級模塊調用的個數稱為模塊的扇入,上級調用下級模塊的個數稱為扇出數。5 .靜態模型:是通過系統對象類及其之間的關系描述系統的靜態結構。6 .模塊的控制范圍: 指該模塊及所包含
20、的子樹。7 .測試和調試:測試是為了發現錯誤;調試是要找出錯誤的位置并改正錯誤。8 .繼承:就是子類自動共享父類數據結構和方法的機制。9 .漸增式測試:在對系統的測試過程中, 將模塊是按照測試方案, 一個一個逐步添加到被測試的系統中。10 .需求分析:是指開發人員要準確理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述 轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規約(需求規格說明)的過程。11 .數據流圖,簡稱DFD,是結構化分析方法中用于表示系統邏輯模型的一種工具,它以圖形的方式描 繪數據在系統中流動和處理的過程,由于它只反映系統必須完成的邏輯功能,所以它是一種功能模型。
21、12 .耦合性。也稱塊間聯系。指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系 越緊密,其耦合性就越強,模塊的獨立性則越差。13 .對象是人們要進行研究的任何事物,從最簡單的整數以至復雜的飛機等均可著作對象,它不僅能表 示具體的事物,還能表示抽象的規則、計劃或事件。14 .代碼檢查:以小組為單位閱讀代碼,應用一系列規程和缺陷檢查技術,檢查實際的產品,包括文檔 和程序代碼,發現存在缺陷和缺陷的過程。15 .可移植性:將軟件從一個系統平臺搬到另一個系統平臺的容易程度。16 .環路度量:程序的復雜性很大程度上取決于程序控制流的復雜性,單一的順序程序結構最簡單,循環和選擇所構成的環路越
22、多,程序就越復雜。17 .軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。軟件危機包含下述兩方 面的問題:如何開發軟件,怎樣滿足對軟件的日益增長的需求;如何維護數量不斷膨脹的已有軟件。18 .功能測試:即黑盒測試,測試者值考慮程序的輸入和輸出,主要看程序是否實行其要求的功能。19 .結構化程序設計:結構化程序設計是實現該目標的關鍵技術之一,它指導人們用良好的思想方法開 發易于理解、易于驗證的程序。結構化程序設計方法的基本要點是:1)采用自頂向下、逐步求精的程序設計方法2)使用三種基本控制結構構造程序3)主程序員組的組織形式。20 .狀態圖:狀態圖是一個標準的計算機概念,它是有
23、限自動機的圖形表示,它反映了狀態與事件的關 系,狀態圖確定了由事件序列引起的狀態序列。21 .軟件配置管理: 軟件配置管理,簡稱 SCM,它用于整個軟件工程過程。其主要目標是:標識變更;控制變更;確保變更正確地實現;報告有關變更。SCM是一組管理整個軟件生存期各階段中變更的活動。22 .軟件生存周期模型:描述軟件開發過程中各種活動如何執行的模型23 .數據字典(DD):數據字典是用來定義數據流圖中的各個成分的具體含義的。它以一種準確的、無 二義性的說明方式為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。24 .內聚性:內聚性是模塊獨立性的衡量標準之一,它是指模塊的功能強度的度量
24、,即一個模塊內部各 個元素彼此結合的緊密程度的度量25 . JSP方法:JSP方法是面向數據結構的設計方法,其定義了一組以數據結構為指導的映射過程,它根 據輸入,輸出的數據結構,按一定的規則映射成軟件的過程描述,即程序結構。26 .多態性:指相同的操作或函數、 過程可作用于多種類型的對象上并獲得不同結果。或(不同的對象,收到同一消息可以產生不同的結果。)內容。27 .經濟可行性:進行開發成本的估算以及了解取得效益的評估,確定要開發的項目是否值得投資開發。28 .社會可行性: 要開發的項目是否存在任何侵犯、妨礙等責任問題,要開發項目目的運行方式在用戶 組織內是否行得通,現有管理制度、人員素質、操
25、作方式是否可行。29 .投資回收期:投資回收期就是使累計的經濟效益等于最初的投資費用所需的時間。30 .對應關系:即有直接因果關系在程序中可以同時處理。31 .結構沖突:輸入數據與輸出數據結構找不到對應關系的情況,稱為結構沖突。32 .可行性分析:用最小的代價在盡可能短的時間內確定問題是否能夠解決。33 .信息隱藏:是指在設計和確定模塊時,使得一個模塊內包含的信息(過程或數據)對于不需要這些 信息的模塊來說是不能訪問的。34 . “測試是由一個用戶在開發環境下進行的測試,也可以是開發機構內部的用戶在模擬實際操作環境 下進行的測試。3測試是由軟件的多個用戶在一個或多個用戶的實際使用環境下進行的測
26、試。35 .測試是為了發現錯誤;調試是要找出錯誤的位置并改正錯誤。36 .程序的可維護性:為滿足用戶新的需求,或當環境發生了變化,或運行中發現了新的錯誤時,對一 個已投入運行的軟件進行相應診斷和修改所需工作量的大小。37 .模塊的控制范圍:指該模塊及所包含的子樹。38 .容錯技術:對那些無法避開的差錯,使其影響減少至最小的技術。也就是說,當錯誤發生時,盡可 能地不影響其它的系統元素,或是把用戶的影響限制在某些容許的范圍內。39 .驅動模塊與樁模塊:在測試過程中,用以代替被測試模塊的上級模塊稱為驅動模塊,用以替代被測 試模塊的下級模塊稱為樁模塊。40 .漸增式測試:在對系統的測試過程中,將模塊是
27、按照測試方案,一個一個逐步添加到被測試的系統 中。3 .簡要回答下列問題1 .需求分析的任務是什么?需求分析的任務是確定待開發的軟件系統“做什么”。具體任務包括確定軟件系統的功能需求、性能需求和運行環境約束,編制軟件需求規格說明書、軟件 系統的驗收測試準則和初步的用戶手冊。2 .數據流圖由哪幾種基本部件組成?畫數據流圖時最常犯的有哪些錯誤?主要成分:數據的源點或終點,數據處理,數據存儲,數據流。沒有分支,條件和循環;沒有數據出錯處理,沒有文件的打開和關閉;數據處理必須“有進有出”; 數據存儲必須“有進有出”;數據流線上有數據流名,且數據流名是名詞;數據處理的命名是動詞。3 .什么叫模塊化?設計
28、一個系統時是否分的模塊越多就越好說明原因。 模塊化就是把程序劃分成可獨立命名且獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集 成起來構成一個整體,可以完成指定的功能滿足用戶的需求。 不一定。當模塊數目增加時每個模塊的規模將減小,開發單個模塊需要的成本(工作量)確實減少了,但是,隨著模塊數量增加,設計模塊間接上所需要的工作量也將增加,根據這兩個因素,得出設計一個系 統時并不一定模塊越多越好。4 . PAD圖的特點是什么?4 . PAD圖的特點如下:清晰地反映了程序的層次結構。圖中的豎線為程序的層次線,最左豎線是程序的主線,其后一層一 層展開,層次關系一目了然。 支持逐步求精的設計方法,左邊
29、層次中的內容可以抽象,然后由左到右逐步細化。易讀易寫,使用方便。(4)支持結構化的程序設計原理。 可自動生成程序。5 .軟件測試過程中需要哪些信息?軟件測試時需要三類信息: 軟件配置:指需求規格說明書、設計說明書、源程序等。 測試配置:指測試方案、測試用例、測試驅動程序等。測試工具:指計算機輔助測試的有關工具。6 .描述詳細設計的基本任務。詳細設計的基本任務是為每個模塊進行詳細的算法設計,為模塊內的數據結構進行設計,確定每個模塊 的內部特性,包括模塊的算法和使用的數據。對數據庫進行物理設計等。7 .結構化生命周期方法的優點及其適應對象。結構化生命周期方法的主要優點是: 方法強調需求分析的重要性
30、,即體現軟件開發中用戶至上的原則 ; 開發過程的階段劃分, 各階段的具體任務明確;各階段有具體的描述工具易于掌握 ;強調文檔的重要性,并給 出文檔的內容和格式,因此方法具有易操作性,是軟件開發人員應該掌握的基本方法。結構化方法更適合于需求能夠預先明確定義的軟件系統,如系統軟件或某些實時控制軟件等。8 .畫數據流圖要注意哪些事項?具體的實現這些功能。設計數據流圖時只需考慮系統必須完成的基本邏輯功能,不需要考慮怎樣從頂層數據流開始。并不是所有數據存儲和數據流都能直接從問題描述中提取出來;(4)當進一步分解將涉及如何具體地實現一個功能時,就不應該在分解了;數據流圖中個成分的命名要仔細推敲,看是否恰當
31、;9 .簡述Jackson方法的設計步驟。Jackson方法(JSP)設計步驟:分析并確定輸入數據和輸出數據的邏輯結構,并用 Jackson結構圖表示這些數據結構。找出輸入數據和輸出數據結構中有對應關系的數據單元。“對應關系”指這些數據單元在數據內容上、數最上和順序上有直接的因果關系,對于重復的數據單元,重復的次序和次數都相同才有對應關系。 按一定的規則由輸入輸出的數據結構導出程序結構。(4)列出基本操作與條件,并把它們分配到程序結構圖的適當位置。用偽碼寫出程序。10 .如何控制因修改而引起的副作用?為了控制因修改而引起的副作用,要做到:按模塊把修改分組。自頂向下地安排被修改模塊的順序。每次修
32、改一個模塊。(4)對每個修改了的模塊,在安排修改下個模塊之前,要確定這個修改的副作用,可使用交叉引用表、 存儲映像表、執行流程跟蹤等。11 .軟件工程是指什么?軟件工程的性質是什么?軟件工程是用科學知識和技術原理來定義、開發、維護軟件的一門學科。軟件工程是一門綜合性的交叉性學科,它涉及計算機科學、工程學科、管理學科數學等領域。計算機科 學中的研究成果均可用于軟件工程,但計算機科學著重于原理和理論,而軟件工程著重于如何建造一個軟 件系統。軟件工程要用工程科學中的觀點來進行費用估算、制定進度、制定計劃和方案。軟件工程要用管 理科學中的方法和原理進行軟件生產的管理。軟件工程要用數學的方法建立軟件開發
33、中的各種模型和各種 算法,如可靠性模型,說明用戶需求的形式化模型等。12 .為了進行測試,為什么需要一個規格說明?規格說明用來決定程序的實際行為何時正確,何時不正確。13 .衡量模塊獨立的兩個標準是什么?它們各表示什么含義?衡量模塊的獨立性的標準是兩個定性的度量標準:耦合性和內聚性。耦合性。也稱塊間聯系,是指軟件系統結構中各模塊間相互之間聯系緊密程度的一種度量。模塊之 間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間的耦合高低取決于模塊間接口的復雜性、 調用的方式及傳遞的信息。內聚性。又稱塊內聯系,是指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程 度的度量。若一個模塊內
34、各元素(語句之間、程序段之間)聯系得越緊密,則它的內聚性就越高。耦合性與內聚性是模塊獨立性的兩個定性標準,在軟件系統劃分模塊時,盡量做到高內聚低耦合,提高模 塊的獨立性,為設計高質量的軟件結構奠定基礎。14 .何謂軟件維護?常用的軟件維護有幾種?軟件維護就是在軟件已經交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。通常有四項 基本維護:糾錯性維護、完善性維護、適應性維護以及預防性維護等。15 .什么是序言性注釋?它包涵哪些內容?序言性注釋通常放在每個程序模塊的開頭部分,它應當給出程序的整體說明,對于理解程序具有引導作 用。序言性注釋一般包含下列內容: 程序標題;有關該模塊的功能和目的
35、說明;主要算法; 接口說明:包括調用形式,參數描述、子程序清單;有關數據描述(重要的變量及其用途,約束或限制條件,以及其他有關信息) 模塊位置(在哪一個源文件中,或隸屬于哪一個軟件包) ; 開發簡歷 模塊設計者,復審者,復審日期,修改日期及有關說明等16 .功能模型的特征有哪些?功能模型描述了系統的所有計算。功能模型指出發生了什么,對動態模型確定什么時候發生,而對象模型 確定發生的客體。功能模型表明一個計算如何從輸入值得到輸出值,它不考慮所計算的次序。功能模型由 多張數據流圖組成。數據流圖說明數據流是如何從外部輸入、經過操作和內部存儲輸出到外部的。功能模 型也包括對象模型中值的約束條件。17
36、.什么是測試用例?動態測試有哪些方法?所謂“測試用例”是指為尋找程序中的錯誤而精心設計的一組測試數據,每個測試用例一般是一個二元組(輸入數據、預期結果)。動態測試主要有兩種方法:白盒測試法和黑盒測試法。白盒測試法是從被測試程序的內部邏輯入手來設計測試用例:黑盒測試法著重測試被測試程序的功能,而不關心內部如何實現其功 能的結構,是從用戶觀點出發的測試。但無論白盒測試法還是黑盒測試法都只能選擇一些有代表性的測試 用例進行有限的測試。 白盒測試法:有6種用于有判定存在的邏輯覆蓋標準,即程序內部路徑的覆蓋程度。對于有循環存在的覆蓋用限制循環次數的辦法來測試。但是對于一個實際問題的程序測試中,其路徑是一
37、個龐大的數字,基本路徑測試告訴了最少路徑的計算辦法,在分析程序控制流程圖環路復雜性的基礎上,導出基本路徑集 合,從而設計測試用例,保證這些基本路徑至少執行一次,以最少的用例發現盡量多的錯誤。黑盒測試法:具體方法有 4種,采用黑盒測試法的綜合策略是先用等價類劃分法(包括邊界值分析法,即取邊值上的數)設計出測試用例,然后用錯誤推測法補充。如果被測試程序含有多個條件的邏輯組 合,則開始就用因果圖法。18 .怎樣克服軟件危機?(1)充分吸收和借鑒人類長期以來從事各種工程項目中積累的行之有效的有效原理、概念、技術與方法, 特別是吸取幾十年來人類從事計算機硬件研究和開發的經驗教訓。在開發軟件的過程中努力作
38、到良好的組 織,嚴格的管理,相互友好的協作。(2)推廣在實踐中總結出來的開發軟件的成功的技術和方法,并研究更好、更有效的技術和方法,盡快克服在計算機系統早期發展階段形成的一些錯誤概念和作法。(3)根據不同的應用領域, 開發更好的軟件工具并使用這些工具。將軟件開發各個階段使用的軟件工具集合成一個整體,形成一個很好的軟件開發支撐環境。總之為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。19 .說明軟件工程管理的重要性。由軟件危機引出軟件工程,是計算機發展史上的一個重大進展。為了對付大型復雜的軟件系統,須采用傳 統的“分解”方法。軟件工程的分解是從橫向和縱向即空間和時間兩個
39、方面進行的。橫向分解就是把一個 大系統分解為若干個小系統,小系統分解為子系統,子系統分解為模塊,模塊分解為過程。縱向分解就是 生存期,把軟件開發分為幾個階段,每個階段有不同的任務、特點和方法。為此,軟件工程管理需要有相 應的管理策略。根據軟件產品的特征,且隨著軟件規模的不斷增大,開發人員也隨之增多,開發時間也相 應地持續增長,這些都增加了軟件工程管理的難度,同時也突出了軟件工程管理的必要性與重要性。事實 證明,由管理失誤造成的后果比程序錯誤造成的后果更為嚴重。很少有軟件項目的實施進程能準確地符合 預定目標、進度和預算的,這也就是以說明軟件工程管理的重要性。20 .請說多態重用與繼承重用的關系。
40、多態重用實際上是一種特殊的繼承重用,是充分利用多態性機制支持的繼承重用。一般來說,使用多態重 用方式重用已有的類構件時,在子類中需要重新定義的操作比較少,因此,多態重用方式比繼承重用方式成本低。21 .簡述演繹法調試的具體步驟。演繹法調試步驟:列出所有可能的錯誤原因的假設;排除不適當的假設;精化余下的假設;證明余下 的假設。22 .簡述增量模型和瀑布模型的本質區別。瀑布模型屬于整體開發模型,它規定在開始下一個階段的工作之前,必須完成前一階段的所有細節。而增量模型屬于非整體開發模型,它推遲某些階段或所有階段中的細節,從而較早的產生工作軟件。23 .簡述設計一個容錯系統的步驟。1 1)按設計任務要
41、求進行常會設計,盡量保證設計的正確2 2)對可能出現的錯誤分類,確定實現容錯的范圍3 3)按照成本一效率”最優原則,選用某種冗余手段(結構,信息,時間)來實現對各類錯誤的屏蔽4 4)分析或驗證上述冗余結構的容錯效果24 .簡述在項目開發時,選擇程序設計語言應考慮因素。(1)項目的應用領域;(2)軟件開發的方法(3)軟件執行的環境(4)算法和數據結構的復雜性(5)軟件開發人員的知識25 .簡述容錯技術的四種主要手段,并解釋。1)結構冗余:包括靜態冗余、動態冗余和混合冗余。2)信息冗余:為檢測或糾正信息在運算或傳輸中的錯誤,須外加一部分信息。3)時間冗余:指重復執行指令或程序來消除瞬時錯誤帶來的影
42、響。4)冗余附加技術:指為實現上述冗余技術所需的資源和技術。26 .以G.J.Myers的觀點,簡述對軟件測試的目的。軟件測試是(1)為了發現錯誤而執行程序的過程;(2) 一個好的用例能夠發現至今尚未發現的錯誤的測試。(3) 一個成功的測試是發現至今尚未發現的錯誤的測試。27 .就程序設計語言的工程特性而言,對程序編碼有哪些要求?就程序設計語言的工程特性而言,對程序編碼有如下要求:(1)可移植性 (2)開發工具的可利用性(3)軟件的可重用性(4)可維護性28 .模塊的內聚性包括哪些類型?模塊的內聚性包括:(1)偶然內聚(2)邏輯內聚(3)時間內聚(4)通信內聚(5)順序內聚(6)功能內聚29
43、.可行性研究報告的主要內容有哪些?解:一個可行性研究報告的主要內容如下:(1)引言:說明編寫本文檔的目的;項目的名稱、背景;本文檔用到的專門術語和參考資料。(2)可行性研究前提:說明開發項目的功能、性能和基本要求;達到的目標;各種限制條件;可行性研究 方法和決定可行性的主要因素。(3)對現有系統的分析:說明現有系統的處理流程和數據流程;工作負荷;各項費用支出;所需要各類專 業技術人員的數量;所需要各種設備;現有系統存在什么問題。(4)所建議系統的技術可行性分析:所建議系統的簡要說明;處理流程和數據流程;與現有的系統比較的 優越性;采用所建議系統對用戶的影響;對各種設備、現有軟件、開發環境、運行
44、環境的影響;對經費支 出的影響;對技術可行性的評價。(5)所建議系統的經濟可行性分析:說明所建議系統的各種支出, 各種效益;收益投資比;投資回收周期。(6)社會因素可行性分析:說明法律因素,對合同責任、侵犯專利權、侵犯版權等問題的分析;說明用戶 使用可行性,是否滿足用戶行政管理、工作制度、人員素質的要求。(7)其他可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的理由。(8)結論意見:說明項目是否能開發;還需要什么條件才能開發;對項目目標有什么變動等。解析做軟件的可行性研究的目的就是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發, 是否值得去開發,其中的問題能否解決,報告共分
45、為八個基本內容。30 .系統設計的內容是什么?解:系統設計階段先從高層入手,然后細化。系統設計要決定整個結構及風格,這種結構為后面設計階 段的更詳細策略的設計提供了基礎。(1)系統分解。系統中主要的組成部分稱為子系統,子系統既不是一個對象也不是一個功能,而是類、關 聯、操作、時間和約束的集合。每次分解的各子系統數目不能太多,最底層子系統稱為模塊。(2)確定并發性。分析模型、現實世界及硬件中不少對象均是并發的。系統設計的一個重要目標就是確 定哪些是必須同時動作的對象,哪些不是同時動作的對象。后者可以放在一起,而綜合成單個控制線或任 務。(3)處理器及任務分配。各并發子系統必須分配給單個硬件單元,
46、要么是一個一般的處理器,要么是一 個具體的功能單元,必須完成下面的工作:估計性能要求和資源需求,選擇實現子系統的硬軟件,將軟件 子系統分配給各處理器以滿足性能要求和極小化處理器之間的通信,決定實現各子系統的各物理單元的連 接。(4)數據存儲管理。系統中的內部數據和外部數據的存儲管理是一項重要的任務。通常各數據存儲可以 將數據結構、文件、數據庫組合在一起,不同數據存儲要在費用、訪問時間、容量以及可靠性之間做折中 考慮。(5)全局資源的處理。必須確定全局資源,并且制定訪問全局資源的策略。全局資源包括:物理資源, 如處理器、驅動器等;空間,如盤空間、工作站屏等;邏輯名字,如對象標識符、類名、文件名等
47、。如果資源是物理對象,則可以通過建立協議實現對并發系統的訪問,以達到自身控制;如果資源是邏輯 實體,如對象標識符,那么在共享環境中有沖突訪問的可能,如獨立的事務可能同時使用同一個對象標識 符,則各個全局資源都必須有一個保護對象,由保護對象來控制對該資源的訪問。(6)選擇軟件控制機制。分析模型中所有交互行為都表示為對象之間的事件。系統設計必須從多種方法 中選擇某種方法來實現軟件的控制。(7)人機交互接口設計。設計中的大部分工作都與穩定的狀態行為有關,但必須考慮用戶使用系統的交 互接口。31 .什么是軟件危機?軟件危機的表現是什么?其產生的原因是什么?解:軟件發展第二階段的末期,由于計算機硬件技術
48、的進步,計算機運行速度、容量、可靠性有顯著 的提高,生產成本顯著下降,這為計算機的廣泛應用創造了條件。一些復雜的、大型的軟件開發項目提出 來了,但是,軟件開發技術的進步一直未能滿足發展的需要。在軟件開發中遇到的問題找不到解決辦法, 使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。軟件危機表現在以下四個方面:(1)經費預算經常突破,完成時間一再拖延。由于缺乏軟件開發的經驗和軟件開發數據的積累,使得開 發工作的計劃很難制定。主觀盲目制定計劃,執行起來與實際情況有很大差距,使得開發經費一再突破。 由于對工作量估計不足,對開發難度估計不足,進度計劃無法按時完成,開發時間一再拖延。(2)開發的軟件
49、不能滿足用戶要求。開發初期對用戶的要求了解不夠明確,未能得到明確的表達。開發 工作開始后,軟件人員和用戶又未能及時交換意見,使得一些問題不能及時解決,導致開發的軟件不能滿 足用戶的要求,因而導致開發失敗。(3)開發的軟件可維護性差。開發過程中沒有同意的、公認的規范,軟件開發人員按各自的風格工作, 各行其是,開發過程無完整、規范的文檔,發現問題后進行雜亂無章的修改。程序結構不好,運行時發現 錯誤也很難修改,導致維護性差。(4)開發的軟件可靠性差。由于在開發過程中,沒有確保軟件質量的體系和措施,在軟件測試時,又沒 有嚴格的、充分的、完全的測試,提交給用戶的軟件質量差,在運行中暴露出大量的問題。造成
50、軟件危機的原因是:(1)軟件的規模越來越大,結構越來越復雜。(2)軟件開發管理困難而復雜。(3)軟件開發費用不斷增加。(4)軟件開發技術落后。(5)生產方式落后。6)開發工具落后,生產率提高緩慢。32 .軟件質量保證應做好哪幾方面的工作?解:軟件質量保證是軟件工程管理的重要內容,軟件質量保證應做好以下幾方面的工作:(1)采用技術手段和工具。質量保證活動要貫徹開發過程始終,必須采用技術手段和工具,尤其是使用 軟件開發環境來進行軟件開發。(2)組織正式技術評審。在軟件開發的每一個階段結束時,都要組織正式的技術評審。國家標準要求單 位必須采用審查、文檔評審、設計評審、審計和測試等具體手段來保證質量。
51、(3)加強軟件測試。軟件測試是質量保證的重要手段,因為測試可發現軟件中大多數潛在錯誤。(4)推行軟件工程規范(標準)。用戶可以自己制定軟件工程規范(標準),但標準一旦確認就應貫徹 執行。(5)對軟件的變更進行控制。軟件的修改和變更常常會引起潛伏的錯誤,因此必須嚴格控制軟件的修改 和變更。(6)對軟件質量進行度量。即對軟件質量進行跟蹤,及時記錄和報告軟件質量情況。解析軟件的質量保證是向用戶及社會提供滿意的高質量的產品,確保軟件產品從誕生到消亡為止的所 有階段的質量的活動,是軟件工程管理中的重要33 .軟件工程是指什么?軟件工程的性質是什么?軟件工程是用科學知識和技術原理來定義、開發、維護軟件的一門學科。軟件工程是一門綜合性的交叉性學科,它涉及計算機科學、工程學科、管理學科數學等領域。計算機科
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧城市公共服務平臺的科技創新與投資規劃
- 醫療領域的教育技術創新及其影響
- 大數據在辦公自動化中的價值挖掘與實現
- 醫療護理管理系統行業深度調研及發展項目商業計劃書
- 圖書館團購平臺行業深度調研及發展項目商業計劃書
- 2025年中國銅藝門市場調查研究報告
- 2025年中國重疊架市場調查研究報告
- 2025年中國紅木原材料市場調查研究報告
- 2025年中國木紋防盜門市場調查研究報告
- 2025年中國斜齒輪/渦輪減速電機市場調查研究報告
- 自主招生試題及答案網
- 2025年高考江蘇卷物理真題(解析版)
- 2025年重慶市中考化學試卷真題(含標準答案)
- 2024年北京市初中學業水平考試語文試卷及答案
- 電力行業電力運行維護與故障處理知識題庫
- 科學技術普及法解讀
- 四川阿壩州公開招聘社區工作者考試高頻題庫帶答案2025年
- 醫院檢驗科實驗室生物安全程序文件SOP
- 北京市朝陽區2022-2023四年級下冊數學期末試題+答案
- EPAMethod202中文版
- PROFINET總線技術在汽車生產線上的應用
評論
0/150
提交評論