版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章軟件工程學概述1.1軟件危機1.2軟件工程1.3軟件生命周期1.4軟件過程
什么是軟件軟件是程序、數(shù)據(jù)及相關文檔的完整集合。程序是能夠完成預定功能和性能的可執(zhí)行的指令序列數(shù)據(jù)是使程序能夠適當?shù)靥幚硇畔⒌臄?shù)據(jù)結構文檔是開發(fā)、使用和維護程序所需要的圖文資料1.1.1軟件危機的介紹◆定義:軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題?!糗浖C包含下述兩方面的問題:
1)如何開發(fā)軟件,以滿足對軟件日益增長的需求;
2)如何維護數(shù)量不斷膨脹的現(xiàn)有軟件?!糗浖C的特征:
1)長期性
2)癥狀不明顯1.1軟件危機◆軟件危機主要有以下一些典型表現(xiàn):1)對軟件開發(fā)成本和進度的估計常常很不準確;2)用戶不滿意“已完成的”軟件系統(tǒng);3)軟件產(chǎn)品的質量往往靠不??;4)軟件常常是不可維護的;5)軟件通常沒有適當?shù)奈臋n資料;6)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升;7)軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。
1.1.2產(chǎn)生軟件危機的原因1.與軟件本身的特點有關
1)軟件是邏輯部件,不是物理部件;
2)軟件在運行過程中不會因為時間過長而被“用壞”
3)規(guī)模龐大,而且程序復雜性將隨著程序規(guī)模的增加而成指數(shù)上升。2.與軟件開發(fā)與維護的方法不正確有關
1)歸因于計算機系統(tǒng)早期開發(fā)的“個體化”特點,重編程、輕維護、忽視需求分析。
2)軟件生命周期:一個軟件從定義、開發(fā)、使用和維護,直到最終廢棄,要經(jīng)歷一個漫長的時期,通常把這個漫長的時期稱為生命周期。
1.1.3消除軟件危機的途徑1.正確的認識對計算機軟件,2.軟件開發(fā)不是個體勞動,而是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。3.應該推廣使用在實踐中總結出來的開發(fā)軟件的成功的技術和方法,并且研究探索更好更有效的技術和方法,4.開發(fā)和使用更好的軟件工具??傊簽榱私鉀Q軟件危機,既要有技術措施,又要有必要的組織管理措施。軟件工程正是從管理和技術兩方面研究如何更好地開發(fā)和維護計算機軟件的一門新興學科。1.定義:
1)概括定義2)早期定義3)更全面更具體的定義1.2軟件工程
1.2.1軟件工程的介紹2.軟件工程的本質特性1)軟件工程關注于大型程序的構造,2)軟件工程的中心課題是控制復雜性,3)軟件經(jīng)常變化,4)開發(fā)軟件的效率非常重要,5)和諧地合作是開發(fā)軟件的關鍵,6)軟件必須有效地支持它的用戶,7)在軟件工程領域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。1.用分階段的生命周期計劃嚴格管理,2.堅持進行階段評審,3.實行嚴格的產(chǎn)品控制,4.采用現(xiàn)代程序設計技術,5.根據(jù)軟件開發(fā)項目的總目標及完成期限,規(guī)定開發(fā)組織的責任和產(chǎn)品標準,從而使所得到的結果能夠清楚地審查,6.開發(fā)小組的人員應該少而精,7.承認不斷改進軟件工程實踐的必要性。1.2.2軟件工程的基本原理1.什么是方法學?通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為范型。2.軟件工程方法學中的3個要素:
◆方法:是完成軟件開發(fā)的各項任務的技術方法,
◆工具:是為運用方法而提供的自動的或半自動的軟件工程支撐環(huán)境,
◆過程:過程是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。1.2.3軟件工程方法學目前使用最廣泛的軟件工程方法學是:1.傳統(tǒng)方法學1)也稱為生命周期方法學或結構化范型,2)它采用結構化技術(結構化分析、結構化設計和結構化實現(xiàn))來完成軟件開發(fā)的各項任務,并使用適當?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結構化技術的運用。3)傳統(tǒng)方法學的工作思路:把軟件生命周期的全過程依次劃分為若干個階段,然后順序地完成每個階段的任務。2.面向對象方法學1)來源:當軟件規(guī)模龐大或者對軟件的需求是模糊的或會隨時間變化而變化的時候,使用傳統(tǒng)方法學開發(fā)軟件往往不成功,而且傳統(tǒng)方法學把數(shù)據(jù)和操作人為地分離成兩個獨立的部分,自然會增加軟件開發(fā)與維護的難度。面向對象方法把數(shù)據(jù)和行為看成是同等重要的,它是一種以數(shù)據(jù)位主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結合起來的方法。
2)面向對象方法學具有的4個要點:把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構件。把所有對象都劃分為類按照父類與子類的關系,把若干個相關類組成一個層次結構的系統(tǒng)。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。3)出發(fā)點和基本原則:◆盡量模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界、解決問題的方法與過程,從而使描述問題的問題空間與實現(xiàn)解法的解空間在結構上盡可能一致。6.兩種方法的比較:◆降低了軟件產(chǎn)品的復雜性,提高了軟件的可理解性,簡化了軟件的開發(fā)和維護工作;◆促進了軟件的可重用性?!糗浖芷冢骸?/p>
概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運行維護(也稱為軟件維護)3個時期組成;◆每個時期又進一步劃分成若干個階段:
軟件定義=問題定義+可行性研究+需求分析:
軟件開發(fā)=總體設計+詳細設計+編碼和單元測試+綜合測試;
運行維護1.3軟件生命周期1.問題定義要解決的問題是什么2.可行性研究對于確定的問題有解決辦法嗎3.需求分析為了解決問題,目標系統(tǒng)應該做什么4.總體設計應該怎樣實現(xiàn)目標系統(tǒng)5.詳細設計怎樣具體實現(xiàn)系統(tǒng)6.編碼和單元測試寫出程序模塊7.綜合測試通過各種類型的測試使軟件達到預定的要求8.軟件維護使系統(tǒng)持久地滿足用戶的需要改正性維護,適應性維護,完善性維護,預防性維護。1、什么是軟件過程? 軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟?!鬒SO9000把過程定義為:使用資源將輸入轉化為輸出的活動所構成的系統(tǒng)。◆過程定義了:運用方法的順序、應該交付的文檔資料、管理措施,以及標志軟件開發(fā)各個階段任務完成的里程碑。
1.4軟件過程◆通常使用生命周期模型簡潔地描述軟件過程。生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個階段的執(zhí)行順序,因此,也稱為過程模型。◆瀑布模型◆快速原型模型◆增量模型◆螺旋模型◆噴泉模型
1、歷史
1970年由溫斯頓·羅伊斯提出。 在20世紀80年代之前,瀑布模型一直是惟一被廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程中應用得最廣泛的過程模型。 傳統(tǒng)軟件工程方法學的軟件過程,基本上可以用瀑布模型來描述。1.4.1瀑布模型2、特點階段間具有順序性和依賴性
推遲實現(xiàn)的觀點
質量保證的觀點圖1.2傳統(tǒng)的瀑布模型3實際的瀑布模型實際的瀑布模型是帶“反饋環(huán)”的,實線箭頭表示開發(fā)過程,虛線箭頭表示維護過程,當后面階段發(fā)現(xiàn)前面階段的錯誤時,需要沿圖中左側的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再回來繼續(xù)完成后面階段的任務。4、優(yōu)點
◆可強迫開發(fā)人員采用規(guī)范的方法開發(fā)結構化技術;
◆嚴格地規(guī)定了每個階段必須提交的文檔;
◆每個階段交出的所有產(chǎn)品都必須經(jīng)過質量保證小組的仔細驗證。5、缺點
◆“瀑布模型是由文檔驅動的”這個事實也是它的一個主要缺點?!粲捎谄俨寄P蛶缀跬耆蕾囉跁娴囊?guī)格說明,很可能導致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。1、什么是快速原型模型 所謂快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集??焖僭湍P偷牡谝徊绞强焖俳⒁粋€能反映用戶主要需求的原型系統(tǒng),讓用戶在計算機上試用它,通過實踐來了解目標系統(tǒng)的概貌。1.4.2快速原型模型圖1.4快速原型模型2、優(yōu)點1)不帶反饋環(huán);2)基本上按線性順序開發(fā)3、總結1)開發(fā)人員應該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。
2)原型的用途是獲知用戶的真正需求,一旦需求確定了,原型將被拋棄。
3)因此,原型系統(tǒng)的內部結構并不重要,重要的是,必須迅速地構建原型然后根據(jù)用戶意見迅速地修改原型。1、簡介增量模型也稱為漸增模型,如下圖所示。1.4.3增量模型1)使用增量模型開發(fā)軟件時,把軟件產(chǎn)品作為一系列的增量構件來設計、編碼、集成和測試。2)使用增量模型時,第一個增量構件往往實現(xiàn)軟件的基本需求,提供最核心的功能。第二個;第三個等等增量構件進行補充、完善。3)把軟件產(chǎn)品分解成增量構件時,應該使構件規(guī)模適中,規(guī)模過大或過小都不好。最佳分解方法因軟件產(chǎn)品特點和開發(fā)人員的習慣而異。4)分解時惟一必須遵守的約束條件是,當把新構件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須是可測試的。2、比較 1)采用瀑布模型或快速原型模型開發(fā)軟件,都是一次就把一個滿足所有需求的產(chǎn)品交給用戶;
2)增量模型則是逐步地、分批地、向用戶提交產(chǎn)品。3、優(yōu)點
1)能在較短時間內向用戶提交可完成部分工作的產(chǎn)品,是增量模型的一個優(yōu)點;
2)逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學習和適應新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。4、困難
1)軟件體系結構必須是開放式的;
2)在把每個新的增量構件集成到現(xiàn)有軟件體系結構中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。5、注意 增量模型本身是自相矛盾的。1)它一方面要求開發(fā)人員把軟件看作一個整體,另一方面又要求開發(fā)人員把軟件看作構件序列,每個構件本質上都獨立于另一個構件。2)除非開發(fā)人員有足夠的技術能力協(xié)調好這一明顯的矛盾,否則用增量模型開發(fā)出的產(chǎn)品可能并不令人滿意。6、一種風險更大的增量模型一旦確定了用戶需求之后,就著手擬定第一個構件的規(guī)格說明文檔,完成后規(guī)格說明組將轉向第二個構件的規(guī)格說明,與此同時設計組開始設計第一個構件…用這種方式開發(fā)軟件,不同的構件將并行地構件,因此有可能加快工程進度。但是,使用這種方法將冒構件無法集成到一起的風險,除非密切地監(jiān)控整個開發(fā)過程,否則整個工程可能毀于一旦。1、風險分析:
軟件風險是任何軟件開發(fā)項目中都普遍存在的實際問題,項目越大,軟件越復雜,承擔該項目所冒的風險也越大。因此,在軟件開發(fā)過程中必須及時識別和分析風險,并且采取適當措施以消除或減少風險的危害。2、螺旋模型的基本思想 使用原型+風險分析的方法來盡量降低風險。 就是把它看作:在快速原型模型的每個階段之前都增加了風險分析過程的快速原型模型, 如下圖示:1.4.4螺旋模型圖1.7簡化的螺旋模型圖1.8完整的螺旋模型
螺旋模型分析螺旋模型有許多優(yōu)點:對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發(fā)的一個重要目標,減少了過多測試或測試不足所帶來的風險;更重要的是,在螺旋模型中維護只是模型的另一個周期,在維護和開發(fā)之間并沒有本質區(qū)別。螺旋模型是風險驅動的,除非軟件開發(fā)人員具有豐富的風險評估經(jīng)驗和這方面的專門知識,否則將出現(xiàn)真正的風險:當項目實際上正在走向災難時,開發(fā)人員可能還認為一切正常。
1.4.5噴泉模型
“噴泉”體現(xiàn)了面向對象軟件開發(fā)過程迭代和無縫的特性。
圖中代表不同階段的圓圈相互重疊,表明兩個活動之間存在交迭,保證了在各項開發(fā)活動之間的無縫過渡。
圖中在一個階段內的向下箭頭代表該階段內的迭代。圖中較小的圓圈代表維護,圓圈較小象征著采用了面向對象范型之后維護時間縮短了。1.4.6Rational統(tǒng)一過程Rational統(tǒng)一過程(RUP)是由Rational軟件公司推出的一種完整而且完美的軟件過程。
RUP總結了經(jīng)過多年商業(yè)化驗證的6條最有效的軟件開發(fā)經(jīng)驗,這些經(jīng)驗被稱為“最佳實踐”。
1.迭代式開發(fā)
2.管理需求3.使用基于構件的體系結構4.可視化建模5.驗證軟件質量6.控制軟件變更
RUP軟件開發(fā)生命周期RUP軟件開發(fā)生命周期是一個二維的生命周期模型,如圖1.10所示,途中縱軸代表核心工作流,橫軸代表時間。工作階段4個工作階段的工作目標初始階段精化階段構建階段移交階段RUP迭代式開發(fā)RUP強調采用迭代和漸增的方式來開發(fā)軟件,整個項目開發(fā)過程由多個迭代過程組成。在每次迭代中只考慮系統(tǒng)的一部分需求,針對這部分需求進行分析、設計、實現(xiàn)、測試和部署等工作,每次迭代都是在系統(tǒng)已完成部分的基礎上進行的,每次給系統(tǒng)增加一些新的功能,如此循環(huán)往復地進行下去,直至完成最終項目。目前全球已有上千家軟件公司在使用RUP。這些公司分布在不同的應用領域,開發(fā)著或大或小的項目,這表明了RUP的多功能性和廣泛適用性。1.4.7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版商業(yè)建筑外墻改造與拆除一體化服務合同3篇
- 2025版土地承包經(jīng)營權轉包合同(含農(nóng)業(yè)保險)2篇
- 二零二五版物流運輸保證合同印花稅繳納規(guī)定2篇
- 2025年度木材產(chǎn)業(yè)鏈上下游合作發(fā)展合同4篇
- 2025年寬帶網(wǎng)絡安全協(xié)約
- 2025年壓瘡預防護理服務合同
- 2025年委托招標合同
- 2025年卵巢囊腫手術協(xié)議
- 2025年度木材加工行業(yè)安全監(jiān)管合作協(xié)議3篇
- 2025年加盟運營推廣合作協(xié)議
- 眼的解剖結構與生理功能課件
- 小學網(wǎng)管的工作總結
- 2024年銀行考試-興業(yè)銀行筆試參考題庫含答案
- 泵站運行管理現(xiàn)狀改善措施
- 2024屆武漢市部分學校中考一模數(shù)學試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術標準》
- 浙教版七年級下冊科學全冊課件
- 弧度制及弧度制與角度制的換算
- 瓦楞紙箱計算公式測量方法
- DB32-T 4004-2021水質 17種全氟化合物的測定 高效液相色譜串聯(lián)質譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術規(guī)范
評論
0/150
提交評論