第1章 軟件工程概述課件_第1頁
第1章 軟件工程概述課件_第2頁
第1章 軟件工程概述課件_第3頁
第1章 軟件工程概述課件_第4頁
第1章 軟件工程概述課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章軟件工程概述1軟件工程第1章軟件工程概述2上課相關說明上課不要遲到課堂認真聽講,手機關機或設為靜音有問題及時問,不積攢問題有事請假,嚴格考勤第1章軟件工程概述3課程說明

通過本課程的學習,要求掌握軟件項目開發(fā)和維護的一般過程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法,能用軟件工程的方法參與軟件項目的分析、設計、實現(xiàn)和維護,為更深入地學習和今后從事軟件工程的實踐打下良好的基礎。本課程的特點是該領域涉及范圍非常廣泛,更新非???;另一突出特點是實踐性強。第1章軟件工程概述4課程考核

本課程4學分,共60學時,50學時理論,10學時實驗,最后成績由平時成績和期末考試卷面成績綜合確定,平時成績主要考查學生的作業(yè)、出勤、大作業(yè)、課堂表現(xiàn)等方面,占70%,期末卷面成績占30%。

第1章軟件工程概述5參考書1.(美)ShariLawrencePfleeger.SofewareEngineeringTheoryandPractice(SecondEdition).吳丹,史爭印,唐憶譯.北京:清華大學出版社,2003,82.(英)IanSommerville.SofewareEngineering(6thEdition).程成等譯.北京:機械工業(yè)出版社,2003,13.《軟件工程實踐教程》,趙池龍、姜義平編著,電子工業(yè)出版社。4.《軟件工程導論》(第5版),張海藩編著,人民郵電出版社。5.《實用軟件工程》,趙池龍編著,電子工業(yè)出版社。6.《軟件工程》,楊文龍、姚淑珍等編著,電子工業(yè)出版社。7.《軟件開發(fā)管理的實踐》,張少仲、李遠明編著,清華大學出版社。

第1章軟件工程概述6第一章

軟件工程概述

第1章軟件工程概述7主要內(nèi)容軟件工程產(chǎn)生的背景軟件工程的概念及相關的基本知識軟件生存周期的六個階段及各階段的主要任務

軟件開發(fā)的主要開發(fā)模型軟件開發(fā)過程及軟件工程三要素第1章軟件工程概述81.1軟件工程學產(chǎn)生的背景(一)問題一:什么是軟件?軟件是由計算機程序的發(fā)展而形成的一種概念。程序是按既定算法,用某種計算機語言所規(guī)定的指令或語句編寫的一系列指令或語句的集合。軟件是程序再加上程序?qū)崿F(xiàn)和維護程序時所必須的文檔的總稱。第1章軟件工程概述9軟件被普遍接受的軟件的定義是:軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。其中程序是按照事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護和使用有關的各種圖文資料。

第1章軟件工程概述10軟件中國大百科全書中對軟件的定義是:軟件是計算機系統(tǒng)中的程序和有關文件(文檔)。根據(jù)國際標準化組織的定義,軟件是“與計算機系統(tǒng)操作有關的程序、過程、規(guī)則、及任何有關的文檔資料”。軟件=程序+數(shù)據(jù)+文檔第1章軟件工程概述11軟件工程學產(chǎn)生的背景(二)問題二:軟件發(fā)展經(jīng)歷了哪些階段?50~60年代:程序設計階段(個性化軟件環(huán)境)60~70年代:程序系統(tǒng)階段(軟件作坊)70年代以后:軟件工程階段。

第1章軟件工程概述12軟件工程學產(chǎn)生的背景(三)問題三:什么是軟件危機?開發(fā)軟件所需的高成本同產(chǎn)品低質(zhì)量之間有著尖銳的矛盾,即計算機軟件的開發(fā)和維護中遇到的一系列嚴重問題。

第1章軟件工程概述13

IBM公司的OS/360,共約100萬條指令,花費了5000個人年;經(jīng)費達數(shù)億美元,而結(jié)果卻令人沮喪,錯誤多達2000個以上,系統(tǒng)根本無法正常運行。OS/360系統(tǒng)的負責人Brooks這樣描述開發(fā)過程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運?!?/p>

1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序:

DO5I=1,3

誤寫為:DO5I=1.3

1967年蘇聯(lián)“聯(lián)盟一號”載人宇宙飛船在返航時,由于軟件忽略一個小數(shù)點,在進入大氣層時因打不開降落傘而燒毀。軟件危機第1章軟件工程概述14軟件危機的表現(xiàn)對開發(fā)成本和進度估計不準確用戶對已完成的軟件不滿意軟件產(chǎn)品的質(zhì)量往往靠不住軟件常常是不可維護的軟件通常沒有合適的文檔資料軟件成本在計算機系統(tǒng)總成本中比例逐年上升軟件開發(fā)生產(chǎn)率提高的速度,跟不上計算機普及速度。第1章軟件工程概述15軟件危機產(chǎn)生的原因

1.與軟件自身的特點有關(1)軟件不同于硬件,管理和控制軟件開發(fā)過程相當困難,軟件不會因為使用時間過長而被用壞。(2)軟件不同于一般程序,它的一個顯著特點是規(guī)模龐大。2.和軟件開發(fā)與維護的方法不正確有關(1)對用戶要求沒有完整準確地認識就匆忙編寫程序是許多軟件開發(fā)工程失敗的主要原因之一;(2)沒有認識到程序只是完整的軟件產(chǎn)品的一個組成部分。

第1章軟件工程概述16解決軟件危機的途徑

要解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術兩方面研究如何更好地開發(fā)和維護計算機軟件的一門新興學科。

第1章軟件工程概述171.2軟件工程的概念

軟件工程是指導計算機軟件開發(fā)和維護的工程學科,采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結(jié)合起來,這就是軟件工程。

第1章軟件工程概述18軟件工程具有的本質(zhì)特性軟件工程關注于大型程序的構(gòu)造軟件工程的中心課題是控制復雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧地合作是開發(fā)軟件的關鍵軟件必須有效地支持它的用戶在軟件工程領域中是由具有一種文化背景的人替具有另一種文化背景的人第1章軟件工程概述19軟件工程的基本原理

著名的軟件工程專家B.W.Boehm綜合這些學者們的意見并總結(jié)了TRW公司多年開發(fā)軟件的經(jīng)驗,于1983年在一篇論文中提出了軟件工程的7條基本原理。他認為這7條原理是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原理的最小集合。第1章軟件工程概述20軟件工程的基本原理1.用分階段的生命周期計劃嚴格管理2.堅持進行階段評審3.實行嚴格的產(chǎn)品控制4.采用現(xiàn)代程序設計技術5.結(jié)果應能清楚地審查6.開發(fā)小組的人員應該少而精7.承認不斷改進軟件工程實踐的必要性第1章軟件工程概述21軟件工程與其他學科的區(qū)別軟件工程和計算機科學有何區(qū)別?計算機科學側(cè)重理論和基礎,而軟件工程則側(cè)重于開發(fā)和交付的實際活動。軟件工程和系統(tǒng)工程有何區(qū)別?系統(tǒng)工程側(cè)重基于計算機系統(tǒng)開發(fā)的所有方面,包括硬件、軟件和處理工程。軟件工程只是它的一部分。第1章軟件工程概述22軟件工程所面臨的主要問題是什么?

1)遺留系統(tǒng)的挑戰(zhàn):維護和更新這些軟件,既要避免過多的支出,又要不斷地交付基本的業(yè)務服務。2)多樣性的挑戰(zhàn):必須開發(fā)出新技術,制作可靠的軟件,從而足以靈活應對這種多樣性。

3)交付上的挑戰(zhàn):在不損及系統(tǒng)質(zhì)量的前提下,縮短大型、復雜系統(tǒng)的移交時間。

第1章軟件工程概述23軟件工程方法學軟件工程包括技術和管理兩方面的內(nèi)容,是技術與管理緊密結(jié)合所形成的工程學科。所謂管理就是通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學。第1章軟件工程概述24軟件工程方法學軟件工程方法學包含3個要素:方法、工具和過程。方法是完成軟件開發(fā)的各項任務的技術方法,回答“怎樣做”的問題;工具是為運用方法而提供的自動的或半自動的軟件工程支撐環(huán)境;過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。第1章軟件工程概述25軟件工程方法學

目前使用得最廣泛的軟件工程方法學,分別是傳統(tǒng)方法學和面向?qū)ο蠓椒▽W。1.傳統(tǒng)方法學生命周期方法學或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(結(jié)構(gòu)化分析、結(jié)構(gòu)化設計和結(jié)構(gòu)化實現(xiàn))來完成軟件開發(fā)的各項任務,并使用適當?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術的運用。這種方法學把軟件生命周期的全過程依次劃分為若干個階段,然后順序地完成每個階段的任務。采用這種方法學開發(fā)軟件的時候,從對問題的抽象邏輯分析開始,一個階段一個階段地進行開發(fā)。第1章軟件工程概述26軟件工程方法學2.面向?qū)ο蠓椒▽W結(jié)構(gòu)化范型只能獲得有限成功的一個重要原因是,這種技術要么面向行為(即對數(shù)據(jù)的操作),要么面向數(shù)據(jù),還沒有既面向數(shù)據(jù)又面向行為的結(jié)構(gòu)化技術。數(shù)據(jù)和對數(shù)據(jù)的處理原本是密切相關的,把數(shù)據(jù)和操作人為地分離成兩個獨立的部分,自然會增加軟件開發(fā)與維護的難度。與傳統(tǒng)方法相反,面向?qū)ο蠓椒ò褦?shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密地結(jié)合起來的方法。第1章軟件工程概述271.3軟件生存期

1.可行性研究與計劃:調(diào)查用戶需求及處理過程,進行可行性分析研究2.需求分析:分析用戶需求,建立目標系統(tǒng)邏輯模型。3.系統(tǒng)設計:分為概要設計和詳細設計,概要設計建立目標系統(tǒng)的總體結(jié)構(gòu)及數(shù)據(jù)庫設計;詳細設計對模塊進行過程描述,確定模塊間的詳細接口。4.程序設計:按詳細設計說明書為每個模塊編寫程序。5.系統(tǒng)測試:檢查和調(diào)試程序的正確性,排除錯誤。

6.維護運行:運行軟件;對程序擴充修改;修改有關的文檔。

第1章軟件工程概述281.4開發(fā)模型

瀑布模型演化模型螺旋模型噴泉模型RUP開發(fā)敏捷過程與極限編程微軟過程第1章軟件工程概述29問題定義編碼需求分析設計可行性研究運行與維護測試開發(fā)時期運行維護時期計劃時期(目標與范圍說明書)(可行性論證論告)(維護報告)(測試報告)(程序)(設計文檔)(需求說明書)1.4.1瀑布模型(WaterfallModel)瀑布模型第1章軟件工程概述301.4.1瀑布模型瀑布模型軟件開發(fā)具有以下幾個特征:1.階段間的順序性和依賴性順序性是指:只有等前一階段的工作完成以后,后一階段的工作才能開始;前一階段的輸出文檔,就是后一階段的輸入文檔。依賴性又同時表明了,只有前一階段有正確的輸出時,后一階段才可能有正確的結(jié)果。第1章軟件工程概述311.4.1瀑布模型2.推遲實現(xiàn)的觀點過早地考慮程序的實現(xiàn),常常導致大量返工,有時甚至給開發(fā)人員帶來災難性的后果。瀑布模型在編碼以前安排了分析階段和設計階段,并且明確宣布,這兩個階段都只考慮目標系統(tǒng)的邏輯模型,不涉及軟件的物理實現(xiàn)。把邏輯設計與物理設計清楚地劃分開來,盡可能推遲程序的物理實現(xiàn),這是瀑布型軟件開發(fā)的一條重要的指導思想。第1章軟件工程概述321.4.1瀑布模型3.質(zhì)量保證的觀點為了保證質(zhì)量,瀑布型軟件開發(fā)在各個階段堅持了兩個重要的做法:(1)每一階段都要完成規(guī)定的文檔。沒有完成文檔,就認為沒有完成該階段的任務。(2)每一階段都要對完成的文檔進行復審,以便盡早發(fā)現(xiàn)問題,消除隱患。第1章軟件工程概述331.4.2快速原型模型(RapidPrototypemodel)

所謂快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成功能的一個子集。第1章軟件工程概述341.4.2快速原型模型第1章軟件工程概述351.4.2快速原型模型

快速原型模型是不帶反饋環(huán)的,軟件產(chǎn)品的開發(fā)基本上是線性順序進行的。主要原因如下:(1)原型系統(tǒng)已經(jīng)通過與用戶交互而得到驗證,據(jù)此產(chǎn)生的規(guī)格說明文檔正確地描述了用戶需求;(2)開發(fā)人員通過建立系統(tǒng)原型已經(jīng)了解了許多與構(gòu)建系統(tǒng)有關的內(nèi)容,因此在后面設計和編碼階段犯錯的可能性大大降低。第1章軟件工程概述361.4.3增量模型(IncrementModel)

使用增量模型開發(fā)軟件時,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設計、編碼、集成和測試。每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。 把軟件產(chǎn)品分解成增量構(gòu)件時,應該使構(gòu)件的規(guī)模適中,規(guī)模過大或過小都不好。分解時必須遵守的約束條件是,當把新構(gòu)件集成到現(xiàn)有軟件中時,所形成的產(chǎn)品必須是可測試的。第1章軟件工程概述37

1.4.4螺旋模型(SpiralModel)

對于大型軟件,只開發(fā)一個原型往往達不到要求。螺旋模型將瀑布模型和增量模型結(jié)合起來,并加入了風險分析。螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:

1.確定目標、方案和限制條件;

2.評估方案、標識風險和解決風險;

3.開發(fā)確認產(chǎn)品;

4.計劃下一周期工作。

螺旋模型第1章軟件工程概述381.4.5噴泉模型WaterFountainModel分析系統(tǒng)設計軟件設計實現(xiàn)圖1.5噴泉模型該模型是由B.H.Sollers和J.M.Edwards于1990年提出的一種新的開發(fā)模型。主要用于采用對象技術的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。

其特點如下:

1、開發(fā)過程有分析、系統(tǒng)設計、軟件設計和實現(xiàn)4個階段。2、各階段相互重疊,它反映了軟件過程并行性的特點。3、以分析為基礎,資源消耗成塔型。4、反映了軟件過程迭代性的自然特性,從高層返回低層無資源消耗。5、強調(diào)增量開發(fā),整個過程是一個迭代的逐步提煉的過程。

第1章軟件工程概述391.4.6RUP軟件開發(fā)(1)RUP總結(jié)了經(jīng)過多年商業(yè)化驗證的6條最有效的軟件開發(fā)經(jīng)驗,這些經(jīng)驗被稱為最佳實踐:迭代式開發(fā)管理需求使用基于構(gòu)件的體系結(jié)構(gòu)可視化建模驗證軟件質(zhì)量控制軟件變更第1章軟件工程概述401.4.6RUP(2)RUP軟件開發(fā)生命周期核心工作流:RUP有9個核心工作流,前6個為核心過程工作流程,后3個位核心支持工作流程。業(yè)務建模需求分析與設計實現(xiàn)測試部署配置與變更管理項目管理環(huán)境 第1章軟件工程概述411.4.6RUP(3)RUP工作階段初始階段:建立業(yè)務模型,定義最終產(chǎn)品視圖,并且確定項目的范圍精化階段:設計并確定系統(tǒng)的體系結(jié)構(gòu),制定項目計劃,確定資源需求構(gòu)建階段:開發(fā)出所有構(gòu)建和應用程序,把它們集成為客戶需要的產(chǎn)品,并且詳盡地測試所有功能。移交階段:把開發(fā)出的產(chǎn)品提交給用戶使用第1章軟件工程概述421.4.6RUP(4)第1章軟件工程概述431.4.7敏捷過程與極限編程(1)

為了使軟件開發(fā)團隊具有高效工作和快速響應變化的能力,17位著名的軟件專家于2001年2月聯(lián)合起草的敏捷軟件開發(fā)宣言。敏捷過程4個簡單的價值觀聲明個體和交互勝過過程和工具可以工作的軟件勝過面面俱到的文檔客戶合作勝過合同談判響應變化勝過遵循計劃第1章軟件工程概述441.4.7敏捷過程與極限編程(2)XP是敏捷過程中最負盛名的一個XP的有效實踐客戶作為開發(fā)團隊的成員使用用戶素材短交付周期驗收測試結(jié)對編程測試驅(qū)動開發(fā)集體所有持續(xù)集成可持續(xù)的開發(fā)速度開放的工作空間及時調(diào)整計劃簡單的設計重構(gòu)使用隱喻第1章軟件工程概述451.4.7敏捷過程與極限編程(3)XP項目的整體開發(fā)過程第1章軟件工程概述461.4.7敏捷過程與極限編程(4)XP迭代開發(fā)過程第1章軟件工程概述471.4.8微軟過程(1)微軟過程準則項目計劃應該兼顧未來的不確定因素用有效的風險管理來減少不確定因素的影響經(jīng)過生成并快速地測試軟件的過渡版本,從而提高產(chǎn)品的穩(wěn)定性和可預測性。采用快速循環(huán)、遞進的開發(fā)過程用創(chuàng)造性的工作來平衡產(chǎn)品特性和產(chǎn)品成本項目進度表應該具有較高穩(wěn)定性和權威性使用小型項目組并發(fā)地完成開發(fā)工作在項目早期把軟件配置項基線化,項目后期則凍結(jié)產(chǎn)品使用原型驗證概念,對項目進行早期結(jié)論把零缺陷作為追求的目標里程碑評審會的目的是改進工作,切忌相互指責第1章軟件工程概述481.4.8微軟過程(2)微軟軟件生命周期階段劃分和主要里程碑第1章軟件工程概述491.4.8微軟過程(3)微軟過程的生命周期模型第1章軟件工程概述50各模型比較(1)每個軟件開發(fā)組織應該選擇適合于該組織的軟件開發(fā)模型,并且應該隨著當前正在開發(fā)的特定產(chǎn)品特性而變化,以減小所選模型的缺點,充分利用其優(yōu)點,下表列出了幾種常見模型的優(yōu)缺點。第1章軟件工程概述51各模型比較(2)模型優(yōu)點缺點瀑布模型文檔驅(qū)動系統(tǒng)可能不滿足客戶的需求快速原型模型關注滿足客戶需求可能導致系統(tǒng)設計差、效率低,難于維護增量模型開發(fā)早期反饋及時,易于維護需要開放式體系結(jié)構(gòu),可能會設計差、效率低螺旋模型風險驅(qū)動風險分析人員需要有經(jīng)驗且經(jīng)過充分訓練第1章軟件工程概述52軟件工程項目的基本目標

(1)付出較低的開發(fā)成本;(2)達到要求的軟件功能;(3)取得較好的軟件性能;(4)開發(fā)的軟件易于移植;(5)需要較低的維護費用;(6)能按時完成開發(fā)工作,及時交付使用。

第1章軟件工程概述53軟件工程項目的基本目標低開發(fā)成本按時交付高性能高可

溫馨提示

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

評論

0/150

提交評論