第一篇:軟件工程小結
今天視頻看完了,可是沒有總結。還是感覺不會總結。一想到50講的課,怎么總結呢?開始聽的時候,是真不知道從哪里下手,因為開始看的時候有種迷迷糊糊的感覺。軟件工程,我期待的一門課就這么聽完了一遍。很有些囫圇吞棗的感覺,不過收獲還是很多的,至少知道了軟件工程的階段不是只有需求分析、編程和測試維護。當然這個很早之前就知道,只是以前根本沒有什么概念。
第一個階段,計劃階段,要首先對用戶的要求進行了解,對軟件的性能等進行了解。然后進行可行性分析研究,在各種可行性研究中,對于軟件開發人員來說,技術可行性研究最重要。之后就是需求分析階段了,需求分析階段也是計劃階段的最后一部分。需求分析定義了要做什么。把現實的需要用程序語言表達出來。但是這一階段并不解決怎么做。
解決怎么做的是下一個階段——設計階段。設計階段分為概要設計和詳細設計。概要設計把每個組成部分的功能都給出意義明確的模塊,每個模塊都和一部分需求相對應。但是不考慮細節。詳細設計,把每個模塊的功能實現詳細的表示出來,為源程序的編寫打下基礎。然后就是編程階段,我們一般最初接觸的就是編程,所以編程階段比較了解,由于前期文檔已經做的很詳細,功能的實現數據和算法都已經清楚了,所以編程是比較簡單的。
編程完了就是測試階段了,測試階段的費用是最多的。測試階段是發現錯誤的階段,改錯是調試階段。然后就是交付用戶使用,及維護。
以上幾點是軟件工程的生命周期的六個階段。軟件工程過程和軟件工程生命周期也不能等同。
軟件工程過程如下:
軟件規格說明:規定軟件的功能及其運行的限制
軟件開發:產生滿足規格說明的軟件:
軟件的確認:確認軟件能夠完成客戶提出的要求:
軟件演進:為滿足客戶的變更要求。軟件必須在使用的過程中演進。
pdca
軟件工程過程與軟件生存期相對應。軟件規格說明對應計劃階段,軟件開發對應設計、編程階段,軟件的確認對應測試調試階段,軟件演進對應運行維護階段。
軟件開發的每個過程都有相關文檔,用老師們的話說叫做以文檔為驅動。文檔的好壞直接影響到軟件開發的進度和軟件的質量。而文檔中最多的是使用圖表,dfd圖,sc圖。數據流程圖、過程流程圖、系統流程圖等各種圖表。還是那句話,一張好的圖表勝過一千句話。
在軟件生存周期的各個部分都有各自要注意的地方,過著說是各自的重點(或者是知識點)。
今天已經是22號了,文檔還沒寫。先寫文檔了。唉,又落后了。
第二篇:軟件工程期末小結
第一章 軟件工程概述
1.對“引入同一變動付出的代價隨時間變化的趨勢”:在軟件開發的不同階段進行修改需要付出的代價是很不相同的,在早期引入變動,涉及的面較少,因而代價也比較低;而在開發的中期,軟件配置的許多成分已經完成,引入一個變動要對所有已完成的配置成分都做相應的修改,不僅工作量大,而且邏輯上也更復雜,因此付出的代價劇增;在軟件“已經完成”是再引入變動,當然需要付出更高的代價。根據美國一些軟件公司的統計資料,在后期引入一個變動比在早期引入相同的變動所需付出的代價高2~3個數量級。
2.軟件是程序、數據及相關文檔的完整集合。程序是能夠完成預定功能和性能的可執行的指令序列;數據是使程序能夠適當地處理信息的數據結構;文檔是開發、使用和維護程序所需要的圖文資料。
3.為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術兩方面研究如何更好地開發和維護計算機軟件的一門新興學科。
4.軟件工程是:(1)把系統的、規范的、可度量的途徑盡快應用于軟件開發、運行和維護過程,也就是把工程應用于軟件;(2)研究(1)中提到的途徑。
5.軟件工程本質特性(理解,判斷):軟件工程關注與大型程序的構造,軟件工程的中心課題是控制復雜性,軟件經常變化,開發軟件的效率非常重要,和諧地合作是開發軟件的關鍵,軟件必須有效地支持它的用戶,在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品。
6.軟件工程方法學包含3個要素:方法、工具和過程。
7.軟件生命周期由軟件定義、軟件開發和運行維護3個時期組成。軟件定義時期的任務是:確定軟件開發的工程必須完成的總目標;確定工程的可行性;導出實現工程目標應該采用的策略及系統必須完成的功能;估計完成該項工程需要的資源和成本,并且制定工程進度表。這個時期的工作通常又稱為系統分析,有系統分析員負責完成。軟件定義時期通常進一步劃分成3個階段,即問題定義、可行性研究和需求分析。這個時期產生的文檔有可行性研究報告、需求規格說明書。開發時期具體設計和實現在前一個時期定義的軟件,它通常由下述4個階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。其中前兩個階段又稱為系統設計,后兩個階段又稱為系統實現。這個階段需要的人員為高級技術人員和初級程序員。產生的文檔有:軟件結構圖,軟件說明書,數據庫。維護時期的主要任務是使軟件持久的滿足用戶的需要。
8.軟件一個生命周期包括:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試。
9.軟件維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要。通常有4類維護活動:改正性維護,也就是診斷和改正正在使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟件使它更完善;預防性維護,即修改軟件,為將來的維護活動預先做準備。
第二章 可行性研究
1.可行性研究包括以下:技術可行性、經濟可行性、操作可行性、法律可行性。
2.系統流程圖的概括地描繪物理系統的傳統工具。
3.在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程。數據流圖是系統邏輯功能的圖形表示。
4.數據字典有下列元素的定義組成:數據流、數據流分量(即數據元素)、數據存儲。
5.成本估計技術有:代碼行技術、任務分解技術、自動估計成本技術。
第三篇:軟件工程”課程小結
“軟件工程”課程小結
一、軟件工程學科體系
軟件工程的學科體系為1234567:
1、一條主線:
軟件工程的生存周期
2、二個技術層面:
軟件工程開發技術、軟件項目的管理技術。
3、三大活動過程:
《ISO/IEC 12207信息技術—軟件生存期過程》中將軟件開發需要完成的活動概括為:
主要過程、支持過程、組織過程
4、四種軟件開發方法:
結構化分析與設計方法(SADT)、面向對象的開發方法、構件組裝的軟件開發方法、軟件形式化開發方法。
5、五個內容層次:
工具和環境層
方法和技術層
過程和模型層
標準和規范層
質量和核心層
軟件工程內容的層次結構
6、六大主要軟件開發模型
瀑布模型、快速原型化演化模型、增量模型(螺旋模型)
面向對象模型(噴泉模型)、基于構件的開發模型、形式化開發模型。
7、軟件工程的7條基本原則。
二、軟件工程課程分章小結
第一章 概論
掌握和理解的概念:
軟件的定義、軟件的特點、軟件的分類、軟件危機、軟件工程的定義、軟件工程的框架、軟件生存周期、軟件過程、軟件過程模型。
第二章系統工程
掌握和理解的概念:
系統元素、業務過程工程、產品工程、系統工程的任務、可行性分析
第三章需求工程*
掌握和理解的概念:
什么是軟件需求、軟件需求的分類、需求工程的目標、任務、需求工程的主要活動、需求獲取活動的目標與任務、需求分析活動的目標與任務、需求建模的方法。
第四章 設計工程
掌握和理解的概念:
軟件設計的目標、任務、軟件設計的基本原則(抽象與逐步求精、模塊、模塊化、模塊獨立性、模塊內聚、模塊耦合、信息隱藏、軟件體系結構)。
第五章 結構化分析與設計*
1、掌握和理解的概念:
結構化分析的思想、結構化分析的過程、數據流、分層數據流圖、數據字典、加工描述。結構化設計的思想、結構化設計的過程、變換型數據流圖、事務型數據流圖、軟件系統結構圖(SC圖)
2、掌握和應用的基本方法:
(1)結構化分析的建模方法。
采用分層DFD、DD、加工描述等工具建立系統的需求模型。
(2)結構化設計方法:將數據流圖采用變換分析方法、事務分 析方法轉換為軟件結構圖的過程
第六章面向數據結構的分析與設計
掌握和理解的概念:面向數據結構方法的基本思想
第七章面向對象的分析與設計
1、掌握和理解的概念:(知識點)
對象、類、消息、方法、繼承、面向對象方法的目的、面向對象方法的特點、統一建模語言UML、用例圖、類圖、活動圖、狀態圖、順序圖
2、掌握的方法:
(1)面向對象分析的建模方法。
采用統一建模語言UML構造面向對象的軟件系統的需求模型(用例圖)。
(2)面向對象設計的建模方法。
構建系統的設計模型:類圖、活動圖、順序圖、狀態圖
第八章基于構建的軟件開發
掌握和理解的概念:構件的概念、構件的三大標準、構件軟件工程的基本方法
第九章人機界面設計
掌握和理解的概念:界面的概念、界面設計遇到的問題、界面的黃金原則
第十章程序設計語言和編碼
掌握和理解的概念:
程序設計語言、程序設計語言的3種評價觀點(技術的觀點、工程的觀點、心理的觀點)、語言的分類、選擇語言的準則、程序設計風格(良好的編程習慣)、編程的標準和規范。第十一章軟件測試
1、掌握和理解的概念:(知識點)
軟件測試的定義、軟件測試的目的和原則、白盒測試、黑盒測試、測試用例、單元測試、集成測試、確認測試、系統測試。
2、掌握和應用的基本方法:
基于白盒測試的測試用例的構造方法(邏輯覆蓋)
基于黑盒測試的測試用例的構造方法(等價類劃分構造法)第十二章軟件維護
掌握和理解的概念:
什么是軟件維護、軟件維護過程的開始和結束的時間點、軟件維護的類型
三、建模基本技能實例:
1、結構化分析建模方法
(1)某機票預定系統業務活動如下:旅行社把預定機票的旅客信息(姓名、性別、工作單位、身份證號碼、旅行時間、旅行目的地等)輸入進該系統,系統為旅客安排航班,打印出取票通知和帳單,旅客在飛機起飛的前一天憑取票通知和帳單交款取票,系統核對無誤后打印出機票給旅客。用SA法對它進行分析,畫出DFD圖,給出DD及加工說明。
(2)設想一個簡單的全屏幕編輯器(Editor),至少完成4種編輯功能(如插入、刪除、替換等功能)用SA方法對它進行分析,并畫出系統得分層DFD圖,并寫出DD和加工說明。
2、結構化設計建模方法
3、面向對象分析建模方法
4、軟件測試方法
文件:乘客信息、航班信息、取票、。。
源和宿:旅客、航空公司、系統管理員、銀行。。
加工:預定、安排航班、取票、打印通知和取票、打印機票
數據流:
1,乘客--------(個人信息、訂票信息)------->預定?乘客信息
2,乘客信息---(旅行時間、出發地、目的地)?安排航班-?打印—>乘
客
3,
第四篇:軟件工程小結(最終版)
軟件工程論文
軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數據庫,軟件開發工具,系統平臺,標準,設計模式等方面。在現代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,數據庫,游戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
軟件工程的目標是:在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。追求這些目標有助于提高軟件產品的質量和開發效率,減少維護的困難。
軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。軟件工程的原則有以下四項軟件工程師基本原則:
1)選取適宜開發范型
該原則與系統設計有關。在系統設計中,軟件需求、硬件需求以及其他因素之間是相互制約、相互影響的,經常需要權衡。因此,必須認識需求定義的易變性,采用適宜的開發范型予以控制,以保證軟件產品滿足用戶的要求。
2)采用合適的設計方法
在軟件設計中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特征。合適的設計方法有助于這些特征的實現,以達到軟件工程的目標。
3)提供高質量的工程支持
“工欲善其事,必先利其器”。在軟件工程中,軟件工具與環境對軟件過程的支持頗為重要。軟件工程項目的質量與開銷直接取決于對軟件工程所提供的支撐質量和效用。
4)重視開發過程的管理
軟件工程的管理,直接影響可用資源的有效利用,生產滿足目標的軟件產品,提高軟件組織的生產能力等問題。因此,僅當軟件過程得以有效管理時,才能實現有效的軟件工程。這一軟件工程框架告訴我們,軟件工程的目標是可用性、正確性和合算性;實施一個軟件工程要選取適宜的開發范型,要采用合適的設計方法,要提供高質量的工程支撐,要實行開發過程的有效管理;軟件工程活動主要包括需求、設計、實現、確認和支持等活動,每一活動可根據特定的軟件工程,采用合適的開發范型、設計方法、支持過程以及過程管理。根據軟件工程這一框架,軟件工程學科的研究內容主要包括:軟件開發范型、軟件開發方法、軟件過程、軟件工具、軟件開發環境、計算機輔助軟件工程(CASE)及軟件經濟學等。
軟件工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿于整個開發過程,實現完成后的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
軟件工程有很多的發展方向。敏捷開發(Agile Development)被認為是軟體工程的一個重要的發展。它強調軟體開發應當是能夠對未來可能出現的變化和不確定性作出全面反應的。敏捷開發被認為是一種“輕量級”的方法。在輕量級方法中最負盛名的應該是“極限編程”(Extreme Programming,簡稱為XP)。而與輕量級方法相對應的是“重量級方法”的存在。重量級方法強調以開發過程為中心,而不是以人為中心。重量級方法的例子比如CMM/PSP/TSP。
面向側面的程序設計(Aspect Oriented Programming,簡稱AOP)被認為是近年來軟體工程的另外一個重要發展。這里的方面指的是完成一個功能的對象和函數的集合。在這一方面相關的內容有泛型編程(Generic Programming)和模板。
軟件工程是信息領域發展最快的學科分支之一。當今時代是信息化的時代,而信息化的實現,人才是最重要的環節。軟件產業的發展水平,決定了一個國家的信息產業發展水平及其在國際市場上的綜合競爭力。目前,我國高素質的軟件工程人才的極度短缺已經成為制約我國軟件產業快速發展的一個瓶頸,如何培養與國際接軌的高素質軟件工程人才,已經成為信息化工作中的重中之重。
隨著計算機應用已經滲透到經濟和社會生活的方方面面,計算機軟件的概念早已為人們所熟知。然而,軟件是如何生產出來呢?大家可能在中學的時候利用過某些編程工具做了一些簡單的程序,這就是軟件生產的初級階段。實際大型軟件的生產往往需要成千上萬的人協作工作,共同完成軟件的生產過程,參與生產的成員有可能來自不同的國家、在不同的時區、用不同的語言,因此需要很好的交流、合作、分工、協調,這樣的軟件生產過程,就必需要有高效的管理。另外,軟件是服務于社會的金融、交通、石油、教育、航天等各個行業的,因此也需要用軟件相關知識去分析具體的行業應用,去設計最符合應用需求的軟件,才能實現軟件的價值。軟件工程的目的就是在現有軟件開發技術基礎上,對應用的需求進行分析,設計高質量的軟件架構,分配和協調每個軟件生產人員的工作,保證軟件高質量的完成。
軟件工程人才的就業前景十分看好。未來幾年,國內外高層次軟件人才將供不應求。畢業生主要在各大軟件公司、企事業單位、高等院校、各大研究所、國防等重要部門從事軟件設計、開發、應用與研究工作。有數據表明,我國軟件出口規模達到215億元,軟件從業人員達到72萬人,在中國十大IT職場人氣職位中,軟件工程師位列第一位,軟件工程人才的就業前景十分樂觀。
軟件產業的發展水平,決定了一個國家的信息產業發展水平及其在國際市場上的綜合競爭力。目前,我國軟件高級人才的短缺已經成為制約我國軟件產業快速發展的一個瓶頸。在中國,國內市場對軟件人才的需求每年高達80萬人,而高校計算機畢業生中的軟件工程人才還很缺乏,尤其是高素質的軟件工程人才的極度短缺。盡快培養起適合信息產業所需要的高素質軟件工程人才,已經成為信息化工作中的重中之重。
第五篇:軟件工程
1.軟件危機的概念 系統的數據要求,功能需求,性能需求,顯示出程序的輪廓。
軟件危機是指在計算機軟件開發、使用與可靠性需求,可用性需求,出錯處理需求,混合方式
維護過程中遇到的一系列嚴重問題和難接口需求,約束,逆向需求以及將來可能優點:綜合了以上兩種策略的長處 題。提出的需求。9.確認測試
補充: 5.常使用的圖形工具 確認測試又稱有效性測試。有效性測試是
1.軟件危機的表現有哪些? 實體-聯系圖,數據流圖,狀態轉換圖,在模擬的環境下,運用黑盒測試的方法,答:1)對軟件開發成本和進度的估計常層次方框圖,warnier圖,IPO圖。驗證被測軟件是否滿足需求規格說明書常很不準確。第五章 列出的需求。任務是驗證軟件的功能和性
2)用戶對已完成的軟件不滿意1.總體設計的任務 能及其他特性是否與用戶的要求一致。對的現象時有發生。劃分出組成系統的物理元素——程序、文軟件的功能和性能要求在軟件需求規格
3)軟件產品的質量往往是靠不件、數據庫、人工過程和文檔等等 說明書中已經明確規定,它包含的信息就住的。設計軟件的結構。也就是要確定系統中每是軟件確認測試的基礎。
4)軟件常常是不可維護的。個程序是由哪些模塊組成的,以及這些模10.什么是白盒測試,其測試技術有那些,5)軟件通常沒有適當的文檔資塊相互間的關系。覆蓋標準的強弱程度
料。2.模塊化思想 白盒測試是一種測試用例設計方法,盒子
6)軟件成本在計算機系統總成就是把程序劃分成獨立命名且可獨立訪指的是被測試的軟件,白盒指的是盒子是本中所占比例逐年上升。問的模塊,每個模塊完成一個子功能,把可視的,你清楚盒子內部的東西以及里面
7)軟件開發生產率提高的速度這些模塊集成起來構成一個整體,可以完是如何運作的。“白盒”法全面了解程序內遠跟不上日益增長的軟件需求。成指定的功能滿足用戶的需求。部邏輯結構、對所有邏輯路徑進行測試。
2.產生軟件危機的原因主要有哪些? 3.衡量模塊獨立的標準(內聚和耦合的白盒測試的測試方法有代碼檢查法、靜態答:1)用戶對軟件需求的描述不精確。含義,種類)結構分析法、靜態質量度量法、邏輯覆蓋
2)軟件開發人員對用戶需求的內聚:標志著每一個模塊內各個元素彼此法、基本路徑測試法、域測試、符號測試、理解有偏差。結合的緊密程度,是信息隱藏和局部化概路徑覆蓋和程序變異。
3)缺乏處理大型軟件項目的經念的自然拓展。偶然內聚,邏輯內聚,時種覆蓋標準:語句覆蓋、判定覆蓋、條件驗。間內聚,功能內聚,順序內聚,通信內聚,覆蓋、判定/條件覆蓋、條件組合覆蓋和
4)開發大型軟件易產生疏漏和過程內聚。路徑覆蓋發現錯誤的能力呈由弱至強的錯誤。耦合:是對一個軟件結構內不同模塊之間變化。
5)缺乏有力的方法學的指導和互連程度的度量。數據耦合,控制耦合,11.什么時候黑盒測試,其測試技術有哪有效的開發工具的支持。特征耦合,公共環境耦合,內容耦合。些,(等價劃分,邊介值分析法)
6)面對日益增長的軟件需求,4.啟發式規則 黑盒測試也稱功能測試,它是通過測試來人們顯得力不從心。1.改進軟件結構提高模塊的獨立性檢測每個功能是否都能正常使用。
2軟件的概念 2.模塊規模應該適中等價類劃分的辦法是把程序的輸入域劃完成特點功能的程序以及數據結構和文 3.深度、寬度、扇出和扇入都應適當 分成若干部分(子集),然后從每個部分檔 4.模塊的作用范圍應在控制范圍之內中選取少數代表性數據作為測試用例
3.軟件工程的基本原理 5.力爭降低模塊接口的復雜程度 邊界值分析是通過選擇等價類邊界的測
1.用分階段的生命周期計劃嚴格管理 6.設計單入口單出口的模塊試用例。邊界值分析法不僅重視輸入條件
2.堅持進行階段評審 7.模塊功能應該可以預測 邊界,而且也必須考慮輸出域邊界。它是
3.實行嚴格的產品控制 5.面向數據流的設計方法把信息流映射對等價類劃分方法的補充。
4.采用現代程序設計技術 成軟件結構 12.軟件調試技術有哪些
5.結果應能清楚地審查 信息流:變換流,事物流 蠻干法,蠻干法可能是尋找軟件錯誤原因
6.開發小組的人員應該少而精 映射:變換分析,事物分析 的最低效的方法,僅當所有其他方法都
7.承認不斷改進軟件工程實踐的必要性失敗的情況下才使用。
4軟件生命周期分成哪幾個階段?各階第六章 回溯法,回溯法是一種相當常用的調試方段的任務是什么? 1.詳細設計的基本任務 法,當調試小程序時很有效。從發現癥
1.問題定義: 1.為每個模塊確定采用的算法。2.確定狀的地方開始,人工沿程序的控制流往回
2.可行性研究:研究問題的范圍,探索這每一模塊使用的數據結構追蹤分析源程序代碼,知道找出錯誤原因個問題是否值得去解決,是否有可行的解3.確定模塊接口的細節,包括對系統外為止。
決方法。部的接口和用戶界面,對系統內部其 原因排除法,對分查找法、歸納法、演繹
3.需求分析:主要是確定目標系統必須具它模塊的接口,以及關于模塊輸入數據、法都屬于原因排除法。
備哪些功能 輸出數據及局部數據的全部細節。13.軟件可靠性(可靠性和可用性的含義)
4.總體設計: 4.為每一模塊設計出一組測試用例。
5.詳細設計:就是把解法具體化,設計出2.程序的三種基本結構
程序的詳細規格說明。順序結構,選擇結構,循環結構
6.編碼和單元測試:寫出正確的容易理解3.詳細設計的工具
容易維護的程序模塊。1.圖形工具
7.綜合測試:通過各種類型的測試使軟件2.表格工具
達到預定的要求 3.語言工具
8.軟件維護:通過各種必要的維護活動使4.jackson方法
系統持久地滿足用戶的需要。(改正性維5.復雜性度量的方法
護,適應性維護,完善性維護,預防性維Halstead方法:它根據程序中運算符和
護)操作數的總數來度量程序的復雜程度
5.瀑布模型,快速原型模型,增量模型,McCabe方法 :McCabe方法根據程序控制
螺旋模型的特點 流的復雜程度定量度量程序的復雜程度,瀑布模型階:段時間具有順序性和依賴第七章
性。推遲現實的觀點。質量保證的觀點。1.選擇程序設計語言應考慮哪些因素
快速原型模型:軟件產品的開發基本上是1.系統用戶的要求
線性順序進行的,本質是“快速”加速軟2.可以使用的編譯程序
件的開發過程,節約軟件開發成本。3.可以得到的軟件工具
增量模型:能在較短時間內向用戶提交可4.工程規模
完成部分工作的產品。逐步增加產品功5.程序員的知識
能,可以使用戶有較充裕的時間學習和適6.軟件可移植性要求
應新產品,從而減少一個全新的軟件可能7.軟件的應用領域
給客戶組織帶來的沖擊。2.良好的編程風格包括哪些方面
螺旋模型:對可選方案和約束條件的強調1.程序內部的文檔2.數據說明 3.語句構
有利于已有軟件的重用,也有助于把軟件造4.輸入輸出 5.效率
質量作為軟件開發的一個重要目標。減少3軟件測試的目標
了過多的測試或測試不足帶來的風險。更目的:(1)測試是為了發現程序中的錯誤
重要的是在螺旋模型中維護只是模型的而執行程序的過程;
另一個周期,在維護和開發之間并沒有本(2)好的測試方案是極可能發現迄今為
質區別。風險驅動的。止尚未發現的錯誤的測試方案;
(3)成功的測試是發現了至今為止尚未
第二章 發現的錯誤的測試。
1.可行性研究的目的 定義:為了發現程序中的錯誤而執行程序
就是用最小的代價在盡可能短的時間內的過程。
確定問題是否能夠解決。補充:
補充: 軟件測試步驟 :
可行性研究的步驟 :(1)模塊測試(2)子系統測試(3)系統
1.復查系統規模和目標。測試(4)驗收測試(5)平行運行
2.研究現有的系統。4.確定測試計劃是在哪個階段制定的3.導出新系統高層邏輯模型。5.黑盒測試和白盒測試的概念
4.進一步定義問題黑盒測試
5.導出和評價供選擇的解法。1把程序看作一個黑盒子,完全不考慮程
6.推薦行動方針序的內部結構和處理過程
7.草擬開發計劃2對程序接口進行測試,檢查程序功能是
8.書寫文檔提交審查 否能按規格說明書的規定正常使用;
程序是否能適當地接受輸入數據并產生
2.系統流程圖的作用 正確的輸出信息;
系統流程圖是描繪物理系統的傳統工具,程序運行過程中能否保持外部信息的完
它用圖形符號來表示系統中的各個部件。整性
它表達了系統中各個元素之間的信息流白盒測試
動的情況。1把程序堪稱裝在一個透明的白盒子里,3.數據流圖的概念 測試者完全知道程序的結構處理算法
數據流圖是一種圖形化技術,它描繪信息2按照程序內部的邏輯測試程序,檢測程
流和數據從移動到輸出的過程中所經受序中的主要執行通路是否都能按的變換。預定要求正確工作
4.數據流圖里面的符號,畫數據流圖。6.測試的步驟及每個步驟形成的文檔
5.數據字典最基本的功能,以及與數據流單元測試:(模塊測試)發現的往往是編
圖的關系。碼和詳細設計的錯誤
最基本的功能:在軟件分析和設計的過程集成測試:著重測試模塊的接口 中給人提供關于數據的描述信息。
關系:數據流圖和數據字典共同構成系統系統測試:發現的往往是軟件設計中的錯的邏輯模型,沒有數據字典,數據流圖就誤,也可能發現需要說明中的錯誤 不嚴格,然而沒有數據流圖,數據字典也驗收測試:(確認測試)往往發現需求說難于發揮作用。只有數據流圖和對數據流明書中的錯誤 圖中每個元素的精確定義放在一起,才能7.漸增式和非漸增式的區別 共同構成系統的規格說明。“非漸增式”,即先獨立地測試每一模塊,第三章 然后將所有這些模塊連接到一起運行; 1.需求分析屬于哪一個階段,任務是什“漸增式”,即在已測試過的N個模塊的么。基礎上再增加一個模塊,再對N十1個模需求分析是軟件定義時期的最后一個階塊進行測試。段.漸增式比非漸增式優越,因為用漸增式,1.確定對系統的綜合要求(功能需求,性如果是“由頂向下”則可利用前面已測試能需求,可靠性和可用性需求,出錯處理過的模塊,而不必另外準備驅動模塊,如需求,接口需求,約束,逆向需求,將來果是“由底向上”,也可利用已測試過的可能提出的要求)模塊,不必再準備樁模塊。漸增式可以較2.分析系統的數據要求早地發現模塊界面之間的錯誤,有利于排3.導出系統的邏輯模型 錯,檢查比較徹底 4.修正系統開發計劃2.需求分析的產品是什么 8.自頂向下,自下而上,以及混合策略的3.面向過程的分析方法主要是建立三類優缺點 模型 自頂向下數據模型(按照用戶的觀點對數據建立的優點:能較早顯示整個程序的輪廓,向用模型,把用戶的數據要求清楚,準確地描戶展示程序的概貌,取得用戶的理解與支述出來。描述了從用戶角度看到的數據,持。缺點:當測試上層模塊時因使用樁它反應了用戶的現實環境,屬性,聯系),模塊較多,很難模擬出真實模塊的全部功功能模型,行為模型(通過描繪系統的狀能,使部分測試內容被迫推遲,只能等待態及引起系統狀態轉換的事件來表示系換上真實模塊后再補充測試。統的行為)由底向上4.軟件需求規格說明書的內容 優點:測試從下層模塊開始,測試設計用通常用自然語言完整,準確,具體地描述例比較容易。缺點:在測試的早期不能