軟體工程複習資料大整合
軟體危機:軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題
軟體危機原因:
方面與軟體本身的特點有關,另一方面也和軟體開發與維護的方法不正確有關。
軟體工程:指導計算機軟體開發和維護的工程學科,採用工程的概念、原理、技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟的開發出高質量的軟體並有效地維護它。
消除軟體危機(軟體工程的基本原理)
1、 用分階段的生命週期計畫嚴格管理
2、 堅持進行階段評審
3、 實行嚴格的產品控制
4、 採用現代程式設計技術
5、 結果應能清楚的審查
6、 開發小組的人員應該少而精
7、 承認不斷改進軟體工程實踐的必要性
軟體工程方法學:傳統方法學和物件導向方法學 3要素:方法、工具和過程
軟體生命3週期:軟體定義、軟體開發和執行維護
8階段:
1、 問題定義
2、 可行性研究
3、 需求分析
4、 總體設計
5、 詳細設計
6、 編碼和單元測試
7、 綜合測試
8、 軟體維護
過程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,噴泉模型
第二章可行性研究
可行性研究目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決。
從三個方面研究每種解法的可行性(1)技術可行性(2)經濟可行性(3)操作可行性
資料流圖是資料在系統各部件之間流動的情況,程式流程圖是對資料加工處理的控制過程。
資料元素組成資料的方式有3種:1、順序2、選擇 3、重複 4、可選
資料字典用途:最重要是作為分析階段的工具;資料字典中包含的每個資料元素的控制資訊是很有價值的。很容易估計改變乙個資料將產生的影響;資料字典是開發資料庫的第一步
實現:卡片:名字、別名、描述、定義、位置。
第三章:需求分析
需求分析:分析系統做什麼,確定邏輯功能
需求分析3種模型:資料模型(e-r圖)功能模型(資料流圖)和行為模型(狀態轉換圖)
模組是程式物件有名字的集合
第五章總體設計
模組獨立的概念是模組化、抽象、資訊隱藏和區域性化概念的直接結果
模組化就是將系統劃分為若干個模組,每個模組完成乙個子功能。模組化的目的是將系統「分而治之」,模組化能夠降低問題的複雜性,使軟體結構清晰,易閱讀、易理解,易於測試和除錯,因而也有助於提高軟體的可靠性。
模組的獨立性,是指軟體系統中每個模組只涉及軟體要求的具體的子功能
耦合性:模組之間聯絡的緊密程度。內聚性:模組內部聯絡的緊密程度。
獨立性強:強高內聚低耦合
偶然內聚、邏輯內聚、時間內聚
中內聚:過程內聚、通訊內聚
高內聚:順序內聚,功能內聚(高)
啟發規則:
1、改進軟體結構提高模組獨立性
2、模組規模應該適中
3、深度、寬度、扇出和扇入都應適當
4、模組的作用域應該在控制域之內
5、力爭降低模組介面的複雜程度
6、設計單入口單出口的模組
7、模組功能應該可以**
面向資料流的設計方法:
目標是給出設計軟體結構的乙個系統化的途徑
概念:面向資料流的設計方法把資訊流對映成軟體結構,資訊流的型別決定了對映的方法,資訊流有兩種型別:1、變換流2、事物流。
變換分析:是一系列設計步驟的總稱,經過這些步驟把具有變換流特點的資料流圖按預先確定的模式對映成軟體結構。
第六章、詳細設計
詳細設計階段的關鍵任務是確定怎樣具體的實現使用者需要的軟體系統,也就是要設計出程式的「藍圖」。除了應該保證軟體按的可靠性之外,使將來編寫出的程式可讀性好、容易理解、容易測試、容易修改和維護,是詳細設計階段最重要的目標。結構程式設計技術是實現上述目標的基本保證,是進行詳細設計的邏輯基礎。
3種基本的控制結構:順序、選擇、迴圈(do-while),最基本的是順序和迴圈結構。
什麼是結構程式設計?
經典定義為:如果乙個程式的**塊僅僅通過順序、選擇和迴圈這3種基本控制結構進行連線,並且每個**塊只有乙個入口和乙個出口,則稱這個程式是結構化的。
理論上,這3種基本控制結構就可以實現任何單入口單出口的程式,但是為了實際使用方便起見,常常還允許使用do-until和do_case兩種控制結構。
人機介面4個設計問題:系統響應時間、使用者幫助設施、出錯資訊處理和命令互動。
人機介面設計指南:1、一般互動指南、資訊顯示指南、資料輸入指南。
過程設計應該在資料設計、體系結構設計和介面設計完成之後進行,他的任務是設計解體的詳細步驟。工具:描述程式處理過程的工具稱為過程設計的工具。
1、 程式流程圖,他是歷史最悠久、使用最廣泛的描述過程設計的方法,然而也是用的最混亂的一種方法。它的主要優點是對控制流程的描繪很直觀,便於初學者掌握,
2、 盒圖(n-s圖):特點是a、功能域明確 b、不可能任意轉移控制c、很容易確定區域性結合全程資料的作用域d、很容易表現巢狀關係,也可以表示模組的層次結構。(p125)
3、 過程設計語言 (pdl)也稱為偽碼
第七章實現
編碼和測試統稱為實現
軟體測試的規則/目標/定義:
1、 測試是為了發現程式中的錯誤而執行程式的過程
2、 好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。
3、 成功的測試是發現了至今為止尚未發現的錯誤的測試。
軟體測試的目標:
測試是為了發現程式中的錯誤而執行程式的過程。
軟體測試分為單元測試、整合測試和驗收測試3個基本階段
測試方法:黑盒、白盒
黑盒測試:
黑盒測試法把程式看成乙個黑盒子,完全不考慮程式的內部結構和處理過程。也就是說,黑盒測試是在程式介面進行的測試,它只檢查程式功能是否能按照規格說明書的規定正常使用,程式是否能適當地接收輸入資料產生正確的輸出資訊,並且保持外部資訊(如,資料庫或檔案)的完整性。黑盒測試又稱為功能測試。
確認測試通常使用黑盒測試法
白盒測試:
與黑盒測試法相反,白盒測試法的前提是可以把程式看成裝在乙個透明的白盒子裡,也就是完全了解程式的結構和處理過程。這種方法按照程式內部的邏輯測試程式,檢驗程式中的每條通路是否都能按預定要求正確工作。白盒測試又稱為結構測試。
單元測試主要使用白盒測試技術
白盒測試與黑盒測試的區別!(同上)
整合測試:是測試和組裝軟體的系統化技術。由模組組裝成程式時有兩種方法:非漸增式測試方法,漸增式測試(優)。
當使用漸增方式把模組結合到程式中去時,有自頂向下和自底向上兩種整合策略。
自頂向下:從主控模組開始,沿著程式的控制層次向下移動,逐漸把各個模組結合起來。在把附屬於主控制模組的那些模組組裝到程式結構中去時,或者使用深度優先的策略,或者使用寬度優先的策略。
深度優先的結合方法先組裝在軟體結構的一條主控制通路上的所有模組,而寬度優先的結合方法是延軟體結構水平的移動,把處於同一控制層上的模組組裝起來。
自底向上測試從「原子」模組開始組裝和測試。
除錯:除錯(也成為糾錯)作為成功測試的後果出現,也就是說,除錯是在測試發現錯誤之後排除錯誤的過程。
除錯途徑:蠻幹法,回溯法,原因排除法
(書170)
第八章軟體維護
維護是軟體生命週期的最後乙個階段,也是持續時間最長、代價最大的乙個階段
定義:所謂軟體維護就是在軟體已經交付使用之後,為了改正錯誤或滿足新的需要而修改軟體的過程,在軟體執行階段對軟體產品進行修改即維護。
軟體維護的特點:
1、 結構化維護與非結構化維護差別巨大
2、 維護的代價高昂
3、 維護的問題很多
軟體維護的種類:
完善性維護,改正性維護,適應性維護,預防性維護
軟體過程有哪幾種維護?
軟體的可維護性與哪些因素有關!?在軟體開發過程中應該採取哪些措施才能提高軟體產品的可維護性?
基本因素:可理解性,可測試性,可修改性,可移植性,可重用性、可靠性、效率。文件是影響軟體可維護性的決定因素。
軟體重用技術是能從根本上提高軟體可維護性的重要技術。物件導向的軟體技術是目前最成功的軟體重用技術。
在進行需求分析時同時考慮維護問題。
盡可能在軟體開發過程中保證各階段文件的正確性。
重視程式結構的設計,使程式具有較好的層次結構。
使用維護工具或軟體工程環境。
提高程式可讀性,盡量使用高階語言程式設計
什麼叫預防性維護:把今天的方法學應用到昨天的系統上,以支援明天的需要。實質上是軟體再工程。
第九章物件導向方法學引論
[作業]:什麼是物件導向方法學?它有哪些優點?p203
[作業]:什麼是物件模型?建立物件模型時主要使用哪些圖形符號?這些符號的含義是?
物件模型表示靜態的、結構化的系統的「資料」性質。它是對模擬客觀世界實體物件以及物件彼此間的關係的對映,描述了系統的靜態結構。物件模型為建立動態模型和功能模型,提供了實質性的框架。
(uml的類圖)
[作業]:什麼是動態模型?建立動態模型時主要使用哪些圖形符號?
動態模型表示瞬時的、行為化的系統的「控制」性質。它規定了物件模型中的物件的合法變化序列。(狀態圖)
[作業]:什麼是功能模型?建立功能模型時主要使用哪些符號?
功能模型表示變化的系統的「功能」性質,它指明了系統應該「做什麼」,應此更直接的反映了使用者對目標系統的需求。(資料流圖)
物件導向模型:功能模型,動態模型,物件模型
3 種模型之間的關係如下:
物件導向建模技術所建立的3種模型,分別從3個不同側面描述了所要開發的系統,這3種模型相互補充、相互配合、使得人們對系統的認識更加全面:功能模型指明了系統應該「做什麼」;動態模型明確規定了什麼時候做;物件模型則定義了做事情的實體。在物件導向的方法學中,物件模型是最基本最重要的,他為其他兩種模型奠定了基礎。
1、 針對每個類建立的動態模型,描述了類例項的生命週期或執行週期。
十.複雜問題的物件模型通常由下述5個層次組成:主題層,類與物件層,結構層,屬性層和服務層.
----主題層
----類與物件層
----結構層
----屬性層
----服務層
軟體工程試題及答案
第一部分選擇題
一、單項選擇題每小題1分,共20分。(在每小題的四個選項中只有乙個選項是符合題目要求的,請將正確選項前的字母填在題後的括號內)
1.在下列工具與環境中( )屬於較早期的case。
a.基於資訊工程case b.人工智慧case
c.結構的基於圖形case d.整合的case環境
2.putnam成本估算模型是乙個( )模型。
a.靜態單變數 b.動態單變數 c.靜態多變數 d.動態多變數
3.在mccall軟體質量度量模型中,( )屬於面向軟體產品修改。
a.可靠性b.可重用性 c.適應性d.可移植性
4.iso的軟體質量評價模型由3層組成,其中用於評價設計質量的準則是( )
軟體工程複習
一 考試複習範圍 1 軟體工程基本概念 基本原理 2 需求分析,結構化分析 物件導向分析,結構化分析建模 物件導向分析建模 3 軟體設計,結構化程式設計,概要設計 詳細設計 4 軟體測試 二 考試題型 單項選擇題 簡答題 綜合應用題 要求會畫 資料流圖 軟體結構圖 用例圖 類圖 n s盒圖 pad圖...
軟體工程複習
第1章軟體工程概述 1 軟體危機的典型表現 軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。概括地說,軟體危機包含下述兩方面的問題 如何開發軟體,以滿足對軟體日益增長的需求 如何維護數量不斷膨脹的已有軟體。軟體危機典型表現 對軟體開發成本和進度的估計常常很不準確。使用者對 已完成的...
軟體工程複習
24.為了進一步改善軟體系統的可維護性和可靠性,並為以後的改進奠定基礎的軟體維護稱為 預防性維護 25.按軟體的功能進行劃分,軟體分為 系統軟體 支撐軟體和應用軟體。26.軟體定義的基本任務是確定軟體系統的工程 需求 也就是要搞清 做什麼 27.資料流圖 dfd 是一種圖形化技術,描繪資訊和資料從輸...