軟件工程復習知識點_第1頁
軟件工程復習知識點_第2頁
軟件工程復習知識點_第3頁
軟件工程復習知識點_第4頁
全文預覽已結束

付費下載

下載本文檔

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

文檔簡介

概論軟件的特點:(1)軟件是一種邏輯實體,而不是有形的系統元件,其開發成本和進度難以準確地估算。(2)軟件是被開發的或被設計的,沒有明顯的制造過程,一旦開發成功,只需復制即可,但其維護的工作量大。(3)軟件的使用沒有硬件那樣的機械磨損和老化問題。軟件的分類:系統軟件,居于計算機系統中最靠近硬件的一層,其他軟件一般都通過系統軟件發揮作用;支撐軟件,支撐軟件的開發和維護;應用軟件,特定應用領域的專用軟件。軟件工程定義:(1)將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維護,即將工程化應用于軟件;(2)在(1)中所述方法的研究。軟件工程框架:目標、過程和原則。目標指生產具有正確性、可用性和開銷合宜的產品;過程指生產一個最終滿足需求且達到工程目標的軟件產品所需要的步驟;原則為選擇適宜的開發模型、采用合適的設計方法、提供高質量的工程支撐、重視軟件工程的管理。軟件生存周期:軟件產品或軟件系統從產生、投入使用到被淘汰的全過程。大致分為六階段:計算機系統工程、需求分析、設計、編碼、測試、運行和維護。能力成熟度模型CMM五個等級:初始級、可重復級、已定義級、已管理級、優化級。常見模型優缺點:螺旋模型:螺旋模型是將瀑布模型與原型模型結合起來,加入風險分析環節,是一種風險驅動模型。包括4個工作步驟:1)需求定義、2)風險分析、3)工程實現、4)評審。瀑布模型:瀑布模型是將軟件生存周期各活動規定為以線性順序連接的若干階段的模型;強調階段的嚴格順序和每一階段的嚴格性。前一階段的輸出是后一階段的輸入;每階段要進行文檔的復審與確認。增量模型:融合了瀑布模型的基本成分(重復地應用)和演化模型的迭代特征,強調每一個增量都發布一個可運行的產品,能有計劃地管理技術風險;噴泉模型:一種支持面向對象開發的模型,體現迭代和無間隙特征;基于構件的開發模型:支持復用;形式化方法模型:建立在嚴格數學基礎上;Agile方法的價值觀:個人和交互高于過程和工具;可運行軟件高于詳盡的文檔;與客戶協作高于合同(契約)談判;對變更及時做出反應高于遵循計劃。XP方法的4個價值觀:交流、簡單、反饋、勇氣。XP方法的12個核心實踐:完整的團隊、計劃對策、系統比喻、小發布、測試、簡單設計、結對編程、設計改進、持續集成、代碼全體共有、編碼標準、可持續步調。系統工程組成基于計算機系統的元素主要有:軟件、硬件、人員、數據庫、文檔和規程。系統工程的任務:識別用戶的要求,系統建模和模擬,成本估算及進度安排,可行性分析,生成系統規格說明。可行性分析:經濟可行性(成本,效益,貨幣的時間價值,投資回收期,純收入);技術可行性(風險分析,資源分析,技術分析);法律可行性;方案的選擇和折中。需求工程1.六階段:需求獲取,需求分析與協商,系統建模,需求規約,需求驗證,需求管理。設計工程結構化程序設計:如果一個程序的代碼塊僅僅通過順序、選擇和循環這三種基本控制結構進行連結,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。耦合:模塊之間的相對獨立性(互相連接的緊密程度)的度量內聚:一個模塊內部各個元素彼此結合的緊密程度的度量結構化分析與設計結構化分析步驟:(1)理解當前的現實環境,獲得當前系統的具體模型(物理模型)(2)從當前系統的具體模型抽象出當前系統的邏輯模型(3)分析目標系統與當前系統邏輯上的差別,建立目標系統的邏輯模型(4)為目標系統的邏輯模型作補充。數據字典:模型的核心,它包含了軟件使用和產生所有數據的描述。數據流圖(DFD)基本元素:數據流、加工、文件、源或宿。數據字典字典條目種類:數據流、文件、數據項、加工、源或宿。結構化設計步驟:建立初始結構圖、對結構圖進行改進、書寫設計文檔、設計評審。面向對象的分析與設計分析(OOA)步驟:(1)獲取客戶對系統的需求(2)用基本的呃需求為指南來選擇類和對象(3)定義類的結構和層次(4)建造對象關系模型(5)建造對象行為模型(6)利用用況/場景來復審分析模型。設計(OOD)步驟:系統設計,對象設計,消息設計,復審。人機界面設計界面風格:第一代,命令和詢問方式的界面;第二代,簡單的菜單式界面;第三代,窗口、圖標、菜單、指示器四位一體的界面;第四代,第三代界面與超文本、多任務概念相結合的界面,用戶可同時執行多個任務。人機界面分類:語言界面,圖形用戶界面,直接操縱用戶界面,多媒體用戶界面,多通道用戶界面。人機界面設計過程:用戶、任務和環境分析及建模;界面設計;界面構造;界面確認。黃金原則:讓用戶擁有控制權,減少用戶記憶負擔,保持界面一致。軟件測試白盒測試:(又稱結構測試)對軟件的過程性細節做仔細的檢查;把測試對象看做一個打開的盒子,允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。白盒測試包括:(1)程序模塊中的所有獨立路徑至少執行一次(2)對所有邏輯判定的取值(“真”與“假”)都至少測試一次(3)在上下邊界及可操作范圍內運行所有循環(4)測試內部數據結構的有效性等。黑盒測試:(又稱行為測試)把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能需求。黑盒測試試圖發現以下類型的錯誤:不正確或遺漏的功能;接口錯誤,如輸入/輸出參數的個數、類型等;數據結構錯誤或外部信息(如外部數據庫)訪問錯誤;性能錯誤;初始化和終止錯誤。常用白盒測試方法:邏輯覆蓋測試、基本路經測試、數據流測試和循環測試。V模型:描述軟件開發各階段與測試策略之間的對應關系系統工程系統工程需求分析設計編碼系統測試確認測試集成測試單元測試α測試:由一個用戶在開發者的場所進行的,軟件在開發者對用戶的“指導下”進行測試。經α測試后的軟件稱為β版軟件.β測試:由軟件的最終用戶在一個或多個用戶場所進行的,與α測試不同,開發者通常不在測試現場,因此,β測試是軟件在一個開發者不能控制的環境中的“活的”應用,用戶記錄所有在β測試中遇到的(真正的或想象的)問題,并定期把這些問題報告給開發者,在接到β測試的問題報告后,開發者對軟件進行最后的修改,然后著手準備向所有的用戶發布最終的軟件產品。主要調試方法:蠻力法、回溯法、原因排除法。蠻力法:一種最省腦筋但又最低效的方法。它通過在程序中設置斷點,輸出寄存器、存儲器的內容,打印有關變量的值等手段,獲取大量現場信息,從中找出錯誤的原因。回溯法:從錯誤的征兆出發,人工沿著控制流程往回跟蹤,直至發現錯誤的根源。這種方法適用于小型程序,對大型程序,由于回溯的路徑太多,難以徹底回溯。原因排除法:又可分為歸納法和演繹法。(1)歸納法是一種從特殊推斷一般的系統化思考方法。其基本思想是:從一些線索(錯誤征兆)著手,通過分析它們之間的關系來找出錯誤的原因。(2)演繹法從一般原理或前提出發,假設所有可能出錯的原因,排除不可能正確的假設,最后推導出結論。軟件維護與再工程軟件維護:指軟件系統交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程。軟件維護分類:糾錯性維護、適應性維護、改善性維護和預防性維護。逆向工程:指在軟件生存周期中,將軟件的某種形式描述轉換成更抽象形式的活動。重構:在同一抽象級別上轉換系統的描述形式。如把C++程序轉換成Java程序。設計恢復:指借助工具從已有程序中抽象出有關數據結構設計、總體結構設計和過程設計的信息。再工程:在逆向工程所獲信息的基礎上修改或重構已有的系統,產生系統的一個新版本。再工程的主要目的:為遺留系統轉化為可演化系統提供一條現實可行的途徑。軟件項目管理軟件項目管理:指軟件生存周期中軟件管理者所進行的一系列活動。項目管理目的:在一定的時間和預設范圍內,有效地利用人力、資源、技術和工具,使軟件系統或軟件產品按原定計劃和質量要求如期完成。項目管理的關注點:4P:人員、產品、過程、項目。項目管理中五類人員:項目管理人員、高級管理人員、開發人員、客戶、最終用戶。軟件度量分類:第一種分類:面向規模的度量、面向功能的度量、面向人的度量。第二種分類:軟件生產率度量、軟件質量度量、技術度量。計算功能點FP:FP=CT*(0.65+0.01*F)軟件質量要素:正確性、可靠性、效率、完整性、可用性、可維護性、靈活性、可測試性、可移植性、可復用性、可互操作性。程序復雜性度量原則:(1)程序理解的難度(2)糾錯、維護程序的難度(3)向他人解釋程序的難度(4)按指定方法修改程序的難度(5)根據設計文件編寫程序的工作量(6)執行程序時需要資源的程度。McCabe環形復雜度度量V(G)=e-n+p(e弧數n結點數p強連通分量個數)V(G)=e-n+2。基本CoCoMo模型:E=aLbD=cEdE表示工作量,單位是人月;D表示開發時間,單位是月;L是項目的源代碼行估計值,單位是千行代碼;a、b、c、d是常數。Putnam模型:L=CK(E1/3)(td4/3)。L表示源程序代碼行數(LOC)td表示開發持續時間(年)E是包括軟件開發和維護在整個生存期所花費的工作量(人年)CK表示技術狀態常數,其值依賴于開發環境:2000,8000,11000軟件項目管理過程示例:名詞解釋:1.SOA模式面向服務的體系結構(SOA)是一種用于構建分布式系統的方法,其中服務指是一種封裝成實現某種軟件功能的可重用構件,其通常表現為一組方法的集合(2分)。采用SOA這種方法構建的分布式應用程序可以將功能作為服務交付給終端用戶,也可以構建其他的服務(1分)。2.工廠模式定義一個用于創建對象的接口,讓子類決定實例化哪一個類(2分)。FactoryMethod使一個類的實例化延遲到其子類(1分)。3.軟件危機:六十年代以來,隨著計算機應用需求的驅動,系統軟件和應用軟件有很大的發展,由于軟件生產的復雜性和高成本,使大型軟件的生產出現了很大的困難,即出現軟件危機。軟件工程正是為克服軟件危機而提出的一種概念,并在實踐中不斷地探索其原理、技術和方法。簡答題部分1軟件設計的基本原理有哪些?抽象與逐步求精,模塊化,信息隱藏,模塊獨立。2快速原型法有什么優缺點?主要用于什么場合?原型是預期系統的一個可執行版本,它反映了系統性質(如功能、計算結果等)的一個選定的子集。一個原型不必滿足目標軟件的所有約束,其目的是能快速、低成本地構建原型。可用于探索和實驗,使用后可丟棄,然后根據探索或實驗的結果用良好的結構和設計思想重新設計目標系統;用于演化,最終得到目標系統。5調試的目的是什么?調試有哪些基本的方法?目的:確定錯誤的原因和準確位置,并加以糾正。主要調試方法:蠻力法、回溯法、原因排除法。6CASE工具在軟件工程中有什么作用?分類列舉常用的CASE工具。用來輔助計算機軟件的開發、運行、維護、管理、支持過程中的活動或任務開發過程:需求分析工具,設計工具,編碼工具,測試工具維護過程:版本控制工具,文檔分析工具,逆向工程工具,再工程工具管理過程:項目管理工具,配置管理工具,軟件評價工具應用類工具1軟件工程包括哪三要素?簡要說明它們之間的關系。方法、工具和過程。16.可行性研究包括哪幾方面的內容?答:可行性研究內容包括:(1)技術可行性:現有技術能否實現本系統,現有技術人員能否勝任,開發系統的資源能否滿足;通常包括:開發的風險、資源的有效性、技術(2)經濟可行性:經濟效益是否超出開發成本;(3)操作可行性:系統操作在用戶內部行得通嗎?(4)法律可行性:新系統開發是否會侵犯他人、集體或國家利益,是否違反國家法律。17.什么是面向對象方法學?面向對象方法的要點和主要優點。答:面向對象方法學是讓軟件開發者自己定義或選取解空間對象,然后把軟件系統作為一系列離散的解空間對象的集合,應該使解空間對象與問題空間對象盡可能一致。面向對象方法不是把程序看作是工作在數據上的一系列過程或函數的集合,而是把程序看作是相互協作而又彼此獨立的對象的集合。(2分)面向對象方法的要點與主要優點是:(1)以數據為中心:圍繞數據協調處理,不設置與數據無關的操作;(2)對象是生動的:進行處理的主體;(3)實現了數據封裝:將數據封裝在盒子中,對外是隱藏的、不可見的;(4)本質上具有并行性;(5)模塊獨立性好。(3分)18.UML軟件分析方法的特點及主要建模視圖。答:統一建模語言UML是一個通用的可視化建模語言,用于對軟件進行描述、可視化處理、構造和建立軟件系統制品的文檔。UML標準并沒有定義一種標準的開發過程,但它適用于迭代式的開發過程。它是為支持大部分現存的面向對象開發過程而設計的。(2分)UML建模視圖被劃分成三個視圖域:結構分類、動態行為和模型管理。(1)結構分類描述了系統中的結構成員及其相互關系。類元包括類、用例、構件和節點。類元為研究系統動態行為奠定了基礎。類元視圖包括靜態視圖、用例視圖和實現視圖。(2)動態行為描述了系統隨時間變化的行為。行為用從靜態視圖中抽取的瞬間值的變化來描述。動態行為視圖包括狀態機視圖、活動視圖和交互視圖。(3)模型管理說明了模型的分層組織結構。包是模型的基本組織單元。特殊的包還包括模型和子系統。模型管理視圖跨越了其他視圖并根據系統開發和配置組織這些視圖。(3分)19.請簡述CMM分為哪幾個等級?其中已管理級(Managed)具有哪些特征?答:CMM(CapabilityMaturityModelForSoftware軟件生產能力成熟度模型,以下簡稱“CMM”),是1987年由美國卡內基梅隆大學軟件工程研究所研究出的一種用于評價軟件承包商能力并幫助改善軟件質量的方法。(1分)CMM標準共分五級。其中,五級為最高級,即優化級;四級稱為已管理級;三級為已定義級,即過程實現標準化;二級為可重復級;一級為初始級。(2分)已管理級(Managed)具有如下特征:產品和過程已建立了定量的質量目標;過程中活動的生產率和質量是可度量的;已建立過程數據庫;已實現項目產品和過程的控制;可預測過程和產

溫馨提示

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

評論

0/150

提交評論