軟件工程導(dǎo)論期末復(fù)習(xí)大綱_第1頁
軟件工程導(dǎo)論期末復(fù)習(xí)大綱_第2頁
軟件工程導(dǎo)論期末復(fù)習(xí)大綱_第3頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、軟件工程導(dǎo)論期末復(fù)習(xí)大綱第一章 軟件工程概述軟件二程序+數(shù)據(jù)+文檔1. 軟件危機:定義:電腦軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。表現(xiàn):軟件開發(fā)的本錢和進度估計常常不準(zhǔn)確;用戶對“已完成的軟件系統(tǒng)不滿 意的現(xiàn)象經(jīng)常發(fā)生;軟件產(chǎn)品的質(zhì)量往往靠不??;軟件常常是不可維護的;軟件通 常沒有適當(dāng)?shù)奈臋n資料;軟件產(chǎn)品供不應(yīng)求,跟不上電腦普及速度。產(chǎn)生原因:與軟件本身的特點;與關(guān)軟件開發(fā)與維護的方法不正確有關(guān)。 解決方法:消除各自為陣的理念;使用在實踐中總結(jié)出來的成功的經(jīng)驗,探索更有 效地技術(shù)和方法;開發(fā)和使用更好的軟件工具。2. 軟件工程:定義:指導(dǎo)電腦軟件開發(fā)和維護的一門工程學(xué)科。七條根本原理:

2、用分階段的生命周期方案嚴格管理;堅持進行階段評審;實行嚴格 的產(chǎn)品控制;采用現(xiàn)代程序設(shè)計技術(shù);結(jié)果應(yīng)能清楚地審查;開發(fā)小組的人員應(yīng)該 少而精;成認不斷改進軟件工程實踐的必要性。3. 軟件工程方法學(xué):定義:通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合。 兩種方法學(xué):傳統(tǒng)方法學(xué)、面向?qū)ο蠓椒▽W(xué)。優(yōu)點傳統(tǒng)方法學(xué):把軟件生命周期劃分成假設(shè)干個階段,每個階段的任 務(wù)相對獨立,而且比擬簡單,便于不同人員分工協(xié)作,降低了整個軟件開發(fā)過程的 困難程度;在每個階段都采用科學(xué)的管理技術(shù)和良好的技術(shù)方法,每個階段都從技 術(shù)和管理兩個方面進行嚴格審查,保證軟件的質(zhì)量;提高了軟件的可維護性,提高 開發(fā)成功率。

3、面向?qū)ο蠓椒▽W(xué):符合人們通常的思維方式,提高了軟件的可理解 性;對象是相對獨立的實體,重用性好;可維護性好。三種要素:方法、工具、過程。4. 軟件生命周期:軟件定義系統(tǒng)分析:問題定義、可行性研究、需求分析; 軟件開發(fā):總體設(shè)計+詳細設(shè)計一一系統(tǒng)設(shè)計、編碼和單元測試、+ 測試一-系統(tǒng)實現(xiàn);運行維護:軟件維護。5. 軟件過程:生命周期模型:瀑布模型 快速原型模型增量模型螺旋模型噴泉模型RUP模型 優(yōu)點瀑布模型:可強迫開發(fā)人員采用標(biāo)準(zhǔn)的方法,嚴格地規(guī)定了每個階 段必須提交的文檔;要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細 驗證;它根本上是一種文檔驅(qū)動的模型??焖僭湍P停簻p少了軟件需求不

4、明確給開發(fā)工作帶來的風(fēng)險。_增量模型:很有用;減少由于軟件需求不明確而給開發(fā)工作帶來的 風(fēng)險;縮短產(chǎn)品提交時間快。螺旋模型:對可選方案和約束條件的強調(diào)有利于已有軟件的重用和 把軟件質(zhì)量看作軟件開發(fā)的一個重要目標(biāo);開發(fā)者和客戶都可以更好地理解和應(yīng)對 風(fēng)險。缺點瀑布模型:不適應(yīng)需求經(jīng)常發(fā)生變更的環(huán)境;每一步的工作都必須 以前一階段的輸出為輸入順序性,可能導(dǎo)致“阻塞;可能最終開發(fā)出的軟件 產(chǎn)品不能真正滿足用戶的需要R:幾乎完全依賴于書面的規(guī)格說明;用戶只能 通過文檔來了解產(chǎn)品是什么樣的。增量模型:軟件體系結(jié)構(gòu)必須是開放的;本身是自相矛盾的;具有 無法集成的風(fēng)險。螺旋模型:開發(fā)人員需要相當(dāng)豐富的風(fēng)險評

5、估經(jīng)驗和專門知識。適合場所瀑布模型:用戶需求明確、完整、無重大變化的軟件工程開發(fā)??焖僭湍P停盒枨蟛煌暾能浖_發(fā)工程。增量模型:適用可多批看到和開發(fā)時間快的軟件產(chǎn)品開發(fā)工程。 螺旋模型:高風(fēng)險的大型軟件。噴泉模型和RUP模型:需求不穩(wěn)定、不全面的軟件工程開發(fā)。特點:瀑布模型:具有順序性??焖僭湍P停壕€性順序進行。增量模型:分批地逐步向用戶提交產(chǎn)品,減少全新軟件給客戶帶來 的沖擊。噴泉模型:迭代、無縫對接RUP模型:迭代、漸增第二章、可行性研究分析方面:技術(shù)可行性、經(jīng)濟可行性、操作可行性數(shù)據(jù)流圖DFD第三章、需求分析8個需求:獲取需求的方法綜合使用: 訪談、面向數(shù)據(jù)流自頂向下求精、簡易的應(yīng)

6、用規(guī)格 說明技術(shù)、快速建立軟件模型。36狀態(tài)轉(zhuǎn)換圖會畫第五章、總體設(shè)計52設(shè)計原理:模塊化為什么模塊化耦合、內(nèi)聚、層次圖一般為三層: 第六章、詳細設(shè)計6.1.結(jié)構(gòu)程序設(shè)計順序、選擇、循環(huán)、單入單出6.3.過程實際的工具描述與算法之間的轉(zhuǎn)換6.5.程序復(fù)雜程度的定量度量計算程序復(fù)雜程度第九章、面向?qū)ο蠓椒▽W(xué)引論三種模型:對象模型V、動態(tài)模型、功能模型第十章、面向?qū)ο蠓治?分大題目。問題:1、什么是軟件工程、軟件過程?軟件過程與軟件工程方法學(xué)有何關(guān)系? 答:軟件工程是指導(dǎo)電腦軟件開發(fā)和維護的一門工程學(xué)科。軟件過程是為獲得高質(zhì)量軟件所需完成的一系列任務(wù)的框架,規(guī)定了完成 各項任務(wù)的工作步驟。關(guān)系:軟

7、件過程是軟件工程方法學(xué)的三個重要組成局部之一。2、什么是軟件生命周期模型?有哪些主要模型?各種模型的適用范圍及特點?傳 統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)分別采用哪些模型?答:軟件生命周期模型是描述軟件過程的模型。3、簡要介紹軟件生命周期每個階段的根本任務(wù)。答:問題定義:明確要解決的問題是什么??尚行匝芯浚好鞔_對所確定的問題是否有行得通的解決方法。 需求分析:確定目標(biāo)系統(tǒng)所必須具備的功能??傮w設(shè)計:設(shè)計幾種方案來實現(xiàn)目標(biāo)系統(tǒng)。詳細設(shè)計:設(shè)計出程序的詳細規(guī)格說明來說明怎樣實現(xiàn)系統(tǒng)。 編碼:寫程序模塊。單元測試:對每個模塊進行測試。綜合測試:通過各種類型的測試使軟件到達預(yù)定的要求。4、簡要介紹軟件工程的7條

8、根本原理。答:5、需求分析的根本任務(wù)是什么?通常對軟件系統(tǒng)有哪些需求?答:需求分析的根本任務(wù)是確定對系統(tǒng)的綜合要求;分析系統(tǒng)的數(shù)據(jù)要求;導(dǎo)出系 統(tǒng)的邏輯模型;修正系統(tǒng)開發(fā)方案;撰寫需求規(guī)格說明書。需求:功能需求、性能需求、可靠性和可用性需求、出錯處理需求、接口需 求、約束、逆向需求、將來可能提出的要求。6、模塊化有什么好處?答:模塊化的好處:開發(fā)本錢降低、結(jié)構(gòu)清晰、便于共享。7、定性衡量模塊獨立性的兩個標(biāo)準(zhǔn)是什么?它們表示什么含義?答:標(biāo)準(zhǔn):耦合、內(nèi)聚。耦合:對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程序的度量。內(nèi)聚:模塊內(nèi)各個元素彼此結(jié)合的緊密程度。8傳統(tǒng)的方法學(xué)是如何降低軟件危機的?答:傳統(tǒng)方法學(xué)在

9、軟件生命周期的每個階段都采用科學(xué)的管理技術(shù)合肥那個發(fā),且 在每個階段結(jié)束前都從技術(shù)和管理兩個角度進行嚴格的審查,合格之后才開始下一 階段的工作,這樣保證了軟件的質(zhì)量,提高了軟件的可維護性,降低了軟件危機。數(shù)據(jù)流圖DFD步驟:把整個系統(tǒng)視為一個大的加工,然后根據(jù)數(shù)據(jù)系統(tǒng)從哪些外部實體接收數(shù)據(jù) 流,以及系統(tǒng)發(fā)送數(shù)據(jù)流到哪些外部實體,可畫出輸入輸出圖。一一頂層圖把頂層圖的加工分解成假設(shè)干加工,并用數(shù)據(jù)流將這些加工連接起來,使得 頂層圖的輸入數(shù)據(jù)經(jīng)過假設(shè)干加工處理后,變成頂層圖的輸出數(shù)據(jù)流。一一0層圖從一個加工畫出一張數(shù)據(jù)流圖的過程就是對加工的分解。確定加工:在數(shù)據(jù)流的組成或值發(fā)生變化的地方應(yīng)該畫出一

10、個加工,這個加工的 功能就是實現(xiàn)這一變化,也可以根據(jù)系統(tǒng)的功能決定加工。確定數(shù)據(jù)流:用戶把假設(shè)干數(shù)據(jù)當(dāng)作一個單位來處理這些數(shù)據(jù)一起到達,一起 處理時,可以把這些數(shù)據(jù)看成一個數(shù)據(jù)流。數(shù)據(jù)存儲:對于一些以后某個時間要使用的數(shù)據(jù),可以組織成為一個數(shù)據(jù)存儲來 表:示。3、畫加工的內(nèi)部把每個加工看作一個小系統(tǒng),把加工的輸入輸出數(shù)據(jù)流看成小系統(tǒng)的輸入輸出流。于是可以像畫0層圖一樣畫出每個小系統(tǒng)的加工 DFD圖。4、畫子加工的分解圖對第三步分解出來的 DFD圖中的每個加工,重復(fù)第三步的分解過程,直到圖 中尚未分解的加工都是足夠簡單的。分層數(shù)據(jù)流圖5、對數(shù)據(jù)流圖和加工編號對于一個軟件系統(tǒng),其數(shù)據(jù)流圖可能有許多

11、層,每層又有許多張圖。為了區(qū)分不同的加工和不同的 DFD子圖,應(yīng)對每張圖進行編號,以便管理。頂層圖只有一張,圖中的加工也只有一個,故不必為其編號。 0層圖只有一張,圖中的加工號分別是 0.1、0.2、,或1、2。子圖就是父圖中被分解的加工號。子圖的加工號是由圖號、圓點和序號組成。*應(yīng)適當(dāng)?shù)臑閿?shù)據(jù)流、加工、數(shù)據(jù)存儲以及外部實體命名名字反映的是該成分的 實際含義。*畫數(shù)據(jù)流圖,不是畫控制流。*一個加工的輸出數(shù)據(jù)流,不應(yīng)與輸入數(shù)據(jù)流同名,即使他們的組成完全相同。*允許一個加工有多條數(shù)據(jù)流流向另一個加工,也允許一個加工有兩條相同的輸出 數(shù)據(jù)流流向不同的加工。*保持父圖和子圖的平衡。父圖中某加工的輸入輸

12、出流必須與它的子圖的輸入輸 出流在數(shù)量上和名字上相同假設(shè)父圖中的一個輸入 / 輸出數(shù)據(jù)流對應(yīng)于子圖中 的幾個輸入 / 輸出數(shù)據(jù)流且子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項的全體正好是父圖中的 這一數(shù)據(jù)流,那么它們?nèi)匀黄胶?在自頂向下的分解過程中,假設(shè)一個數(shù)據(jù)存儲首次出現(xiàn)時,只與一個加工有關(guān) 系,那么這個數(shù)據(jù)存儲應(yīng)作為這個加工的內(nèi)部文件而不必畫出。*數(shù)據(jù)守恒。*在整套數(shù)據(jù)流圖中,每個數(shù)據(jù)存儲必須既有讀的數(shù)據(jù)流,又有寫的數(shù)據(jù)流。但在 某張子圖中,可能只有讀沒有寫,或者只有寫沒有讀。一、軟件軟件概念:電腦系統(tǒng)中與硬件相互依存的另一局部,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整結(jié)合。Software二Program+

13、Data+Docume nt軟件的特征:非常復(fù)雜邏輯復(fù)雜度高,本錢高,風(fēng)險大如何降低?,維護困難改正性維護:修改故障;完善性維護:增加功能;適應(yīng)性維護:移植二、軟件危機概念:電腦軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。表現(xiàn):4. 用戶對“已完成的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生產(chǎn)生的原因:軟件本身的特點+軟件開發(fā)與維護的方法不正確消除軟件危機的方法:要有技術(shù)措施傳統(tǒng)方法學(xué)+0C方法學(xué);要有必要的組織管理 措施三、軟件工程概念:指導(dǎo)電腦軟件開發(fā)和維護的一門工程學(xué)科本質(zhì)特性P67條:軟件工程關(guān)注于大型程序的構(gòu)造;軟件工程的中心課題是控制復(fù)雜性問題分解一一功能分解、對象 ;軟件經(jīng)常變化;開發(fā)軟件的

14、效率非常重要;和諧的合作是開發(fā)軟件的關(guān)鍵一一運用相關(guān)的標(biāo)準(zhǔn)和規(guī)程;軟件必須有效地支持它的用戶;在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn) 品。軟件工程的根本原理7條確保軟件產(chǎn)品的質(zhì)量和開發(fā)效率的原理的最小集合 分階段的生命周期方案嚴格管理“分階段的目的:減少工程延期;質(zhì)量評審2. 堅持進行階段評審R:大局部錯誤是在編碼之前造成的;錯誤發(fā)現(xiàn)與改正得越 晚,所需付出的代價也越高5. 結(jié)果應(yīng)能清楚地審查:應(yīng)該根據(jù)軟件開發(fā)工程的總目標(biāo)及完成期限,規(guī)定開發(fā)組 織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn)在于:標(biāo)準(zhǔn)+文檔清楚的記錄、責(zé)任6. 開發(fā)小組的人員應(yīng)該少而精:提高軟件開發(fā)質(zhì)量和降低通信開銷 改

15、進軟件工程實踐的必要性:積極主動地采納新的軟件技術(shù)、不斷總結(jié)經(jīng)驗來評價 新的軟件技術(shù)的效果。軟件工程方法學(xué)范型:在軟件生命周期全過程中使用的一整套技術(shù)方法的集合。 軟件工程方法學(xué)的要素:1. 方法完成軟件開發(fā)的各項任務(wù)的技術(shù)方法;2. 工具為運用方法而提供的自動的或半自動的軟件工程支撐環(huán)境;3. 過程為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,規(guī)定完成了各項 任務(wù)的工作步驟工具-> 方法-> 過程-> 質(zhì)量關(guān)注點支持軟件工程的根基就在于對質(zhì)量的關(guān)注傳統(tǒng)方法學(xué)/生命周期方法學(xué)/結(jié)構(gòu)化范型:采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項 任務(wù)并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)

16、化技術(shù)的運用。具體操作:把軟件生命周期的全過程依次劃分為 假設(shè)干個階段,然后順序地完成每 個階段的任務(wù)一一線性。階段審查:從技術(shù)和管理兩個方面對這個階段的開發(fā)成果進行檢查,通過之后這個 階段才算結(jié)束;假設(shè)沒通過檢查,也必須進行必要的返工,而且返工后還要再經(jīng)過 審查。審查的主要標(biāo)準(zhǔn):每個階段都應(yīng)該交出和所開發(fā)的軟件完全一致的高質(zhì)量的文檔 資料,從而保證在軟件開發(fā)工程結(jié)束時有一個驗證準(zhǔn)確的軟件配置交付使用。優(yōu)點:每個階段的任務(wù)相對獨立且較簡單,降低了整個軟件開發(fā)工程的困難程度;科學(xué)的管理技術(shù)、良好的技術(shù)方法和嚴格的審查保證了軟件的質(zhì)量,提高了軟件的可 維護性。面像對象方法學(xué)00方法學(xué):是一個主動地

17、屢次反復(fù)迭代的演化過程,而其在概 念和表示方法上的一致性,保證了在各項開發(fā)活動之間的平滑無縫過渡。無縫對象一直存在且不變出發(fā)點和根本原那么:盡量模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可 能接近人類認識世界、解決問題的方法與過程,從而使描述問題的問題空間與實現(xiàn) 解法的解空間在結(jié)構(gòu)上盡可能一致。優(yōu)點:降低了軟件產(chǎn)品的復(fù)雜性,提高了軟件的可理解性;簡化了軟件的開發(fā)和維 護工作;易在以后的軟件產(chǎn)品中重復(fù)使用促進了軟件重用。四、軟件生命周期組成:軟件定義一一降低本錢,提高軟件質(zhì)量的關(guān)鍵123、軟件開發(fā)4567、運行維護8軟件生命周期每個階段的根本任務(wù):1問題定義一一要解決的問題是什么2. 可行

18、性研究對于上一個階段所確定的問題有行得通的解決方法么3. 需求分析確定目標(biāo)系統(tǒng)為解決這個問題必須具備的功能用正式文檔準(zhǔn)確地 記錄對目標(biāo)系統(tǒng)的需求,這份文檔一般稱為規(guī)格說明書4. 總體設(shè)計概括地說,應(yīng)該怎么實現(xiàn)目標(biāo)系統(tǒng)設(shè)計出實現(xiàn)目標(biāo)的幾種可能的 方案;確定程序由哪些模塊組成以及模塊間的關(guān)系5. 詳細設(shè)計 /模塊設(shè)計應(yīng)該怎樣具體地實現(xiàn)這個系統(tǒng)設(shè)計出程序的詳細規(guī)格 說明包含所需的算法和數(shù)據(jù)結(jié)構(gòu)7. 綜合測試通過各種類型的測試及相應(yīng)的調(diào)試使軟件到達預(yù)定的要求五、軟件過程 概念:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,規(guī)定了完成各項任務(wù) 的工作步驟。根本活動:軟件規(guī)格說明、軟件開發(fā)、軟件確認、軟

19、件演進1、瀑布模型規(guī)定了各項軟件工程的活動次序固定 特點:階段間具有順序性和依賴性;推遲實現(xiàn)清楚地區(qū)分邏輯設(shè)計與物理設(shè) 計,盡可能推遲程序的物理實現(xiàn);質(zhì)量保證文檔、文檔評審 缺點:適合的是用戶需求明確、完整、無重大變化的軟件工程開發(fā);會導(dǎo)致工作中 發(fā)生“阻塞狀態(tài);幾乎完全依賴于書面的規(guī)格說明,很可能導(dǎo)致最終開發(fā)出的軟 件產(chǎn)品不能真正滿足用戶的需要;軟件產(chǎn)品交付給用戶之前,用戶僅能通過文檔來 了解產(chǎn)品是什么樣的。優(yōu)點:可強迫開發(fā)人員采用標(biāo)準(zhǔn)的方法;嚴格地規(guī)定了每個階段必須提交的文檔; 要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證。成功點: 很大程度上是由于它根本上是一種文檔驅(qū)動的模

20、型。2、快速原型模型解決瀑布模型問題 3、4第一步: 快速建立一個能反響用戶主要需求的原型系統(tǒng),讓用戶在電腦上適用它, 通過實踐來了解目標(biāo)系統(tǒng)的概貌 ; 第二步: 用戶試用原型系統(tǒng)之后會提出許多修改意 見,開發(fā)人員按照用戶的意見快速地修改原型系統(tǒng),然后再次請用戶試用一旦 用戶認為這個原型系統(tǒng)確實能做他們所需要的工作,開發(fā)人員便可據(jù)此書寫規(guī)格說 明文檔。主要優(yōu)點 : 軟件產(chǎn)品的開發(fā)根本上是線性順序進行的。3、增量模型 漸增模型 解決瀑布模型問題 2操作: 把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。每個構(gòu)件由 多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。 先根本功能,后附加功能 分解時必須遵守的約束條件 : 當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須 是可測試的。優(yōu)點:可分批地逐步向用戶提交產(chǎn)品 ;能在較短時間 內(nèi)向用戶提交可完成局部工作的 產(chǎn)品; 逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少 一個全新的軟件可能給客戶組織帶來的沖擊。困難: 把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開 發(fā)出的產(chǎn)品 ; 軟件

溫馨提示

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

評論

0/150

提交評論