




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1:軟件危機:問題1:如何開發軟件,以滿足對軟件日益增 長的需求。問題 2 :如何維護數量不斷膨脹的軟件。表現: 對軟件開發成本和時間估計不準,用戶對已完成軟件不滿意, 軟件質量不可靠,軟件不可維護,軟件缺少文檔,軟件成本 過高,軟件跟不上硬件發展速度。原因:與軟件本身特點有 關,缺乏可見性,質量難以評價,規模龐大難以維護。與軟 件開發維護的不當方法有關,輕視需求分析和維護,對用戶 的要求沒有完整準確的認識就編寫程序,忽視程序,文檔, 數據等軟件配置。2:軟件工程:采用工程的概念,原理,技術和方法開發與 維護軟件,把正確的管理技術和軟件開發技術結合起來,經 濟的開發出高質量的軟件并有效的維護。
2、即把系統化的,規 范的,可度量的途徑應用于軟件開發,運行和維護的過程。3:軟件工程7條基本原理:用分階段的生命周期計劃嚴格管 理,堅持進行階段評審,實行嚴格的產品控制,采用現代程 序設計技術,結果應能清楚地審查,開發小組的人員應該少 而精,承認不斷改進軟件工程實踐的必要性。4:軟件工程領域:軟件需求,設計,構建(寫代碼),測試, 維護,配置管理,工程管理,工程過程,工程工具,軟件質量。5:軟件生命周期:軟件定義(問題定義,可行性研究,需 求分析),軟件開發(概要設計,詳細設計,編碼和單元測試,綜合測試),運行維護(改正性維護,適應性維護,完 善性維護,預防性維護)。生命周期模型6:瀑布模型:就
3、是把一個開發過程分成收集需求,分析, 設計,編碼,測試,維護六部分,只有完成前面一步才能開 始后面一步,上一步的輸出的文檔就是這一步的輸入文檔, 每一步完成都要交出合格的文檔,每一步都會有反饋,如果 反饋有錯誤就退回前一步解決問題。瀑布模型的缺點:實際 的項目開發很難嚴格按該模型進行;由于用戶只能通過文檔 來了解產品,客戶往往很難清楚地給出所有的需求,而瀑布 模型不適應用戶需求的變化;軟件的實際情況必須到項目開 發的后期客戶才能看到。7:快速原型模型:就是根據用戶的需求迅速設計出一個原 型系統,原型系統具有基本的功能,然后用戶使用原型并對 原型提出需求和改變,開發人員再對原型進行修改和完善知
4、道用戶滿意。優點:容易適應需求的變化;有利于開發與培 訓的同步;開發費用低、開發周期短且對用戶更友好。 缺點: 快速建立起來的系統結構加上連續的修改可能會導致產品 質量低下;使用這個模型的前提是要有一個展示性的產品原 型,因此在一定程度上可能會限制開發人員的創新。8增量模型:就是把軟件分成許多個構件,每個構件分別 當做一個軟件來分析,設計,編碼,測試。開發人員一次一 個構件的提交給用戶,最后組裝到一起。增量模型的優點: 一開始不用投入太多人力,如果核心產品很受歡迎,則可增 加人力實現下一個增量;可先發布部分功能給客戶,讓客戶 逐漸適應。缺點:并行開發構件有可能遇到不能集成的風險, 軟件必須具備
5、開放式的體系結構。9:螺旋模型:螺旋模型基本做法是在快速原型模型的每一 個原型前引入一個非常嚴格的風險分析,每個原型經過制定 計劃,風險分析,實施工程,客戶評估四步走。每個原型都 標識一個或多個主要風險,直到所有的主要風險因素都被確 定。螺旋模型由風險驅動,強調可選方案和約束條件從而支 持軟件的重用,有助于將軟件質量作為特殊目標融入產品開 發之中。優點:設計上的靈活性,可以在項目的各個階段進行變更;以小的分段來構建大型系統,使成本計算變得簡單容易;客戶始終參與每個階段的開發,保證了項目不偏離正確方向以及項目的可控性;缺點:采用螺旋模型需要具有相 當豐富的風險評估經驗和專門知識,在風險較大的項目
6、開發 中,如果未能夠及時標識風險,勢必造成重大損失;過多的 迭代次數會增加開發成本,延遲提交時間。10:噴泉模型:以用戶需求為動力,以對象為驅動的模型, 主要用于描述面向對象的軟件開發過程。該模型認為軟件開 發過程自下而上周期的各階段是相互迭代和無間隙的特性。 噴泉模型不像瀑布模型那樣,需要分析活動結束后才開始設 計活動,設計活動結束后才開始編碼活動。該模型的各個階 段沒有明顯的界限,開發人員可以同步進行開發。其優點是 可以提高軟件項目開發效率,節省開發時間,適應于面向對 象的軟件開發過程。缺點:由于噴泉模型在各個開發階段是 重疊的,因此在開發過程中需要大量的開發人員,因此不利 于項目的管理。
7、10.1 :總結:一開始是瀑布模型,但是瀑布模型因為是文檔 驅動,最終交付的產品不一定符合用戶需求,所以有了快速 原型模型,增量模型能在軟件早起就讓投資者獲得回報,但 是需要軟件具有開發體系架構,螺旋模型是風險驅動,但是 需要專業的風險分析人,噴泉模型的軟件生命周期是循環的, 適用于面向對象范型。11: rational統一過程是一個軟件開發過程框架,就是指團隊可以根據具體的項目組或軟件開發企業的不同需求,能夠 定義,配置,定制和實施一致的軟件開發過程,包括3核心:用于成功開發軟件的一組基本觀念和原則,一套關于可重用 方法內容和過程構件的框架(在框架內定義自己的開發方法 和過程),基礎的方法和
8、過程定義語言。12: RUP的最佳實踐:描述了一個指導開發團隊達成目標的 迭代式的軟件開發過程,包括:迭代式開發(每次迭代過程 中需求改變,每個迭代過程以完成可執行版本結束,讓用戶 不斷介入和提出意見并改進),管理需求(用腳本來確定需求),使用基于組件的架構(使用功能清晰的模塊),可視化建模(可視化圖形更容易令人理解,幫助人們提高管理軟件 復雜性的能力),驗證軟件質量(軟件質量評估貫穿整個開 發過程),控制軟件變更(確保每個更改都是可接受和可跟 蹤的)。13:敏捷過程:宣告了以下 4個價值觀:個體和交互高于過 程和工具(團隊合作很重要,應該根據團隊成員和交互方式 配置項目環境),可以使用的軟件
9、高于面面俱到的文檔(主 要精力放在創建),客戶合作高于合同談判(開發團隊與客 戶密切協作),響應變化高于遵循計劃(計劃必須有足夠的 靈活性,在需要時能夠迅速調整)14:極限編程:就是把好的開發實踐運用到極致,廣泛運用 于模糊且經常改變的場合。過程:首先,項目組針對客戶代 表提出的要求進行討論,對體系結構進行試探,然后項目組 根據客戶設定的優先級指定交付計劃,然后開始多個迭代過 程。迭代期中新用戶故事不在本次迭代內解決,開發出的新 版本軟件通過驗收測試之后交付用戶使用。極限編程可以迅 速快捷的響應變化和不確定的需求,同時保持開發速度。 迭代過程:項目組根據項目速率,選擇需要完成的用戶需求 或應該
10、消除的差錯,制定出本次迭代計劃,每天舉行一次站 立會議解決遇到問題,調整迭代計劃,開發出的新功能必須 通過單元測試,立即繼承,得到新的可運行版本由客戶代表進行驗收測試,客戶代表提出問題,項目組根據問題提出新 的用戶要求,算出新的項目速率,并在站立會議上討論。15:能力成熟模型CMM因為問題是由管理軟件過程的方法不 當引起的,所以新軟件技術的運用并不會自動提高生產率和 軟件質量,能力成熟模型有助于軟件開發組織建立一個有規 律,成熟的軟件過程,改進后的過程將開發出高質量的軟件, 并節約時間和經費。軟件開發既包括技術方面也包括管理方 面,CMM1過改變管理方面,從而改變技術方面。16:CMM吉構:成
11、熟度等級(對軟件過程的改進的 5個步驟), 過程能力(改進的軟件過程實現預期結果的能力),關鍵過程域(完成一些關鍵過程域就進入下一個成熟度等級),目標(定義每個關鍵過程域的目的),公共特性(把關鍵實踐歸入5個公共特性之中,指示一個關鍵過程域的實施和規范 化是否有效),關鍵實踐(若干個關鍵實踐描述關鍵過程域) 17:軟件過程:為了獲得高質量軟件產品所需要完成的一系 列任務的框架,規定各項任務的工作步驟。傳統方法學之結構化分析18:傳統的軟件工程采用結構化分析完成需求分析工作。19:需求分析的第一步就是盡可能準確的了解用戶當前的情 況和需要解決的問題,分析員對用戶的要求反復求精細化, 理解用戶需求
12、,得出對目標系統完整的準確的和具體的要求。 結構化分析就是通過建立數據模型,功能模型,行為模型給 出完整的需求規格說明書和全面的設計表示。20:與用戶溝通的方法:會談,簡易應用規格說明書,軟件 原型。21:結構化分析實質上是一種創建模型的活動,模型可以描 述用戶需求,為軟件設計奠定基礎,定義一組需求,一旦開 發出軟件產品之后,就可以用這組需求為標準來驗收。分析 模型的核心是數據字典,圍繞這個核心有三種圖22:實體關系圖可以數據對象描述,數據流圖(就是 A和B 兩個數據流經過一個處理系統出來C數據)可以處理規格說明,狀態轉換圖可以控制規格說明23:通過需求分析創建分析模型外還要寫出軟件規格需求說
13、 明,這是分析階段的最終成果。24:數據字典:對數據的數據項、數據結構、數據流、數據 存儲、處理邏輯、外部實體等進行定義和描述,其目的是對 數據流程圖中的各個元素做出詳細的說明從而是用戶和系 統分析員雙方對輸入輸出存儲的成分以及中間計算結果有 共同的理解。25:結構化分析舉例:項目:系統分析員研究學校自己的計 算機生成工資明細表和各種財務報表的可能性。過程包括問 題定義,可行性研究,需求分析 3階段。(1)問題定義:考慮用戶面臨的問是什么,用戶為什么要 做這個項目,考慮項目規模,預花費的費用(2)可行性研究:抽象和簡化了的系統分析和設計的全過 程,目的是以最小的代價確定問題是否可以解決。澄清系
14、統 規模和目標,研究現有系統,導出高層邏輯模型,進一步確 定系統規模和目標,導出供選擇的解法,推薦最佳方案,草 擬開發計劃,寫出文檔提交審查。(3) 需求分析:回答“系統必須做什么”,在可行性研究的 基礎上,以前一段產生的文檔為出發點,分析員設計出更為 精確的數據流圖,寫出數據字典,更詳盡的定義系統應該完 成的每一個邏輯功能。寫出文檔初稿,定義邏輯系統,細化數據流圖,書寫正式文檔,技術審查和管理復查結構化設計26:軟件設計的目標是設計出所要開發的軟件的模型。對軟 件需求有了完整,準確,具體的理解后,接下來的工作就是 用軟件正確的實現需求。傳統的軟件工程用結構化設計,把 軟件設計工作分為概要設計
15、(分析軟件規格說明書,對軟件 進行功能分解,劃分模塊,設計出預定模塊的結構)和詳細 設計(詳細設計每個模塊的算法和數據結構)。結構化分析為結構化設計提供輸入信息,由數據模型,功能模型,行為 模型描述的軟件需求給軟件設計者,軟件設計者再完成數據 設計,體系結構設計,接口設計,過程設計。27:軟件設計的原理:模塊化(把程序劃分為獨立命名獨立 訪問的模塊,每個模塊完成一個子功能),抽象(高層次抽 象一開始以概括的方式敘述問題的解法,然后低層次抽象把面向問題的術語和面向實現的術語結合起來敘述問題的解法,最后再最低層用直接實現的方式敘述問題的解法),逐步求精(即將系統功能按層次進行分解,每一層不斷將功能
16、 細化,到最后一層都是功能單一、簡單易實現的模塊),細節隱藏。28:模塊獨立:獨立的模塊比較容易開發,測試和維護,耦合(一個軟件結構內不同模塊之間的互聯程度,耦合的強度 取決于模塊間接口和復雜程度),內聚(一個模塊內各個元 素彼此結合的緊密程度),我們追求的是低耦合和高內聚。29:結構化設計啟發規則:提高模塊獨立性,模塊規模適中, 深度寬度扇出扇入都要適中,模塊的作用于在可控范圍內, 降低接口復雜度,模塊單入單出,模塊功能可預測。30:軟件結構表示法:層次圖(系統模塊下面是各分模塊,分模塊又引出分分模塊),HIPO圖(在層次圖的基礎上家一 個IPO表,更好的現實輸入,處理,輸出三部分的關系),
17、結構圖(在層次圖的基礎上,更詳細的描述了模塊的信息和 之間的數據流)31:面向數據流的設計方法定義了一些不同的映射,利用這 些映射可以把數據流圖變換成軟件結構,通常說結構化設計 方法就是基于數據流的設計方案。數據流映射成信息流,信 息流有變換流和事務流兩種。32:人機界面設計問題:系統響應時間,用戶幫助設施,出 錯信息處理,命令交互。人機界面設計也是一個迭代的過程, 創建設計模型,創建原型,用戶評估返回意見修改。33:過程設計:過程設計不僅僅是在邏輯上實現每個模塊的 功能,更重要的是設計出的過程簡明易懂。如果一個程序的 代碼塊僅僅通過順序,選擇,循環3鐘控制結構進行連接,并每個代碼塊只有一個入
18、口和一個出口,那么這個就是結構 化程序。34:過程設計工具:程序流程圖,盒圖,PAD圖,判定表,判定樹35:面向數據結構的設計方法:不明確的使用軟件結構的概 念,對于模塊獨立原理沒有給予重視,這種方法適合再詳細 設計階段,完成軟件結構設計之后,用面向數據結構的方法 來設計每一個模塊的處理過程。結構化實現36:實現分為編碼和測試。37:測試分為黑盒測試(知道了產品應具有的功能,測試每 個功能能否正常使用,是在程序接口進行的測試)和白盒測 試(知道產品內部工作過程,通過測試來檢驗產品內部動作 是否按照規格說明書的規定正常進行,是在程序的每條通路 測試)38:測試準則:所有的測試都應能有用戶需求的根
19、據;應該 早早指定測試計劃;采用二八原理;逐步測試小模塊,然后 測試大模塊;窮舉測試是不可能的;測試應由第三方來做。38.5 :設計測試方案基本目標是選用盡可能少的高校測試數 據。39:白盒測試方案:邏輯覆蓋:語句覆蓋(所有語句都走一 遍),判定覆蓋(判定結果的每個可能結果都執行一遍),條件覆蓋(判定表達式中每個結果都走一遍),判定/條件覆蓋(結合前面兩個),條件組合覆蓋(判定表達式的條件的各 種組合都執行一次)40:白盒測試技術:邏輯覆蓋,控制結構測試(基本路徑測試,條件測試,數據流測試,循環測試)41:黑盒測試技術:等價劃分,邊界值分析,錯誤推測。42:測試4步驟:單元測試:最開始測試每個
20、單獨的模塊, 采用白盒測試,檢查模塊控制結構中的特定路徑。集成測試:把模塊裝配在一起形成完整的軟件包,在裝配的同時進行測 試,解決程序驗證和程序構造兩個問題,采用黑盒測試。確 認測試:對軟件所滿足的所有功能,行為,性能需求的最終 測試,采用黑盒測試。系統測試:所有系統元素都能正常配 合。43:調試是在測試發現錯誤之后排除錯誤的過程。44:軟件可靠性:程序在給定時間間隔內,按照規格說明書 運行的概率。面向對象方法學45:傳統的軟件工程方法學不適合大型軟件產品的開發, 現在是面向對象方法學,面向對象開發軟件的時候通常建立 3種模型:對象模型,動態模型,功能模型。對象模型是后 二者的基礎,是最最最核
21、心的。46:用對象分解取代功能分解,面向過程的設計方法以算法 為核心,把數據和處理過程相互分割開來。面向對象以對象 為核心,對象是對世界實體的抽象,把實體的內部狀態,靜 態屬性,動態行為都封裝在一個對象里面。對象之間通過傳 遞消息通信。面向過程設計方法把精力集中在設計算法上, 按照計算機的要求設計,設計者站在計算機的立場上,但是 計算機和人類觀點差別很大,面向對象就是站在人類觀點的 立場上,面向對象是一種以數據或信息為主線,把數據和處 理相結合的方法,對象不被動的等待外界對它操作,而是進 行處理的主體,必須發消息讓對象執行對象自己的操作,而 不能從外界直接對它的私有數據進行操作。47:面向對象
22、方法學的優點:與人類習慣的思維方法一致, 穩定性好,可重用性好,可維護性好,易開發大型軟件。48:對象模型:對象模型表示靜態的,結構化的數據,描述 系統的靜態結構,為后兩個提供了框架。49:動態模型:表示瞬時的,行為化的系統的控制性質,規 定了對象模型中的對象的合法變化系列,用狀態轉換圖描述50:功能模型:表示變化的系統的功能性質,它指明了系統 應該做什么,更直接的反應了用戶的需求。51:功能模型指明做什么。動態模型規定什么時候做,對象 模型規定,誰做。面向對象分析52:面向對象分析的關鍵在于:識別出問題域內的對象,分 析他們之間的關系,最終建立 3種模型。53:面向對象分析:尋找類和對象,識別結構,識別主題, 定義屬性,建立動態模型,建立功能模型,定義服務。54:對象模型有 5個層次:主題層,類與對象層,結構層, 屬性層,服務層。55:建立對象模型:首先確定對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于滿足居民出行需求的城市客運交通碳排放研究
- 填充墻對半剛接鋼框架周期折減系數影響研究
- 心血管疾病的診斷
- 風力發電小學生培訓課件
- 上肢功能鍛煉的護理方法
- 大班健康營養配餐指南
- 頸外靜脈采血技術課件
- 《智能網聯汽車技術》課件-智能網聯汽車基礎的認知
- 《電力通信技術》課件
- 補課班教師培訓
- 2025年甘肅省高考物理試卷(含答案解析)
- GB/T 45309-2025企業采購物資分類編碼指南
- 23G409先張法預應力混凝土管樁
- 七年級生物下填圖題(識圖題)總復習
- 三年級下冊口算天天100題(A4打印版)
- 后穹窿穿刺課件
- 同志借調工作鑒定現實表現材料集合5篇
- MDITDI的安全使用與操作課件
- FMEA-潛在失效模式分析
- 外匯交易交易紀錄明細表格模板
- 犟龜 完整版課件
評論
0/150
提交評論