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

下載本文檔

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

文檔簡介

教育軟件工程馬秀峰JC8263980318mxfsd@126.comQQ:385574414課程的內(nèi)容第一部分軟件工程概論后續(xù)內(nèi)容(第二部分)學(xué)習(xí)的基礎(chǔ)學(xué)位論文寫作的需要第二部分多媒體教學(xué)軟件設(shè)計方法課程的內(nèi)容學(xué)習(xí)參考書目第一部分軟件工程概論(1)《軟件工程--理論、方法與實踐》,孫家廣,劉強,高等教育出版社,2005.

(2)《軟件工程--原理、方法與應(yīng)用》,高等教育出版社,史濟民等,2002.(3)《軟件工程概論》,鄭人杰等,清華大學(xué)出版社,1998.第二部分多媒體教學(xué)軟件設(shè)計(4)《多媒體教學(xué)軟件設(shè)計原理與方法》,張軍征,科學(xué)出版社,2007.(5)《多媒體課件設(shè)計與制作基礎(chǔ)》,張軍征等,高等教育出版社,2005.(6)《多媒體教學(xué)軟件設(shè)計與開發(fā)》(理論篇部分),王志軍等,高等教育出版社,2006.(7)《多媒體教學(xué)軟件設(shè)計》,謝幼如等,電子工業(yè)出版社,1999.

參考書目第一部分軟件工程概論第1章軟件工程概述第2章軟件過程第3章軟件需求分析第4章軟件設(shè)計概述第5章詳細(xì)設(shè)計描述的工具第6章程序編碼Softwareengineering教學(xué)軟件設(shè)計方法第1章軟件工程概述(孫家廣主編)1.1軟件的概念、特性和分類1.2軟件的發(fā)展和軟件危機1.3軟件工程的概念1.4軟件的生存期教學(xué)軟件設(shè)計方法6/511.1軟件的概念、特點和分類一、軟件的概念--定義1《IEEEStandardGlossaryofSoftwareEngineeringTerminology》:第1章軟件工程概述IEEE:電子與電氣工程師協(xié)會軟件是計算機程序、規(guī)程以及運行計算機系統(tǒng)可能需要的相關(guān)文檔和數(shù)據(jù)。(1)計算機程序:計算機設(shè)備可以接受的一系列指令和說明,為計算機執(zhí)行提供所需的功能和性能。(2)數(shù)據(jù):是事實、概念或指令的結(jié)構(gòu)化表示,能夠被計算機設(shè)備接受、理解或處理。(3)文檔:描述程序研制過程、方法及使用的圖文材料。(軟件工程,孫家廣主編,高教版,2005.P1)7/51一、軟件的概念----定義2著名的美國軟件工程教材作者R.S.Pressman的定義:“軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計算機程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述程序的操作和使用的文檔”軟件=程序+數(shù)據(jù)+文檔程序是為了解決某個特定問題而用程序設(shè)計語言描述的適合計算機處理的語句序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關(guān)的圖文材料。1.1軟件的概念、特點和分類(軟件工程,史濟民等,高教版,2002.p2)1.1軟件的概念、特點和分類9/5110/51二、軟件的特性計算機在使社會生產(chǎn)力得到迅速解放、社會高度自動化和信息化的同時,卻沒有使計算機本身的軟件生產(chǎn)得到類似的巨大進步。軟件開發(fā)依然面臨著過分依賴人工、軟件難以重用、開發(fā)大量重復(fù)和生產(chǎn)率低下等問題,而導(dǎo)致這些問題的關(guān)鍵在于軟件本身的特性。1.1軟件的概念、特點和分類11/51二、軟件的特性1.軟件是復(fù)雜的軟件是人類思維和智能的一種延伸和在異體上的再現(xiàn),遠(yuǎn)比任何以往人類的創(chuàng)造物都要復(fù)雜得多;由于復(fù)雜性,人們難以全面理解問題,團隊成員之間的溝通也變得非常困難,從而導(dǎo)致了產(chǎn)品缺陷、成本超支和進度拖延;由于復(fù)雜性,描述和理解軟件系統(tǒng)所有可能的狀態(tài)是極其困難的,影響了產(chǎn)品的可靠性;由于軟件結(jié)構(gòu)及其依賴關(guān)系的復(fù)雜性,軟件的任何更改和擴充都可能帶來災(zāi)難性的后果,形成所謂的“雪崩效應(yīng)”。1.1軟件的概念、特點和分類12/511.軟件是復(fù)雜的2.軟件是不可見的軟件是介于客觀世界空間和計算機空間之間的一種邏輯實體,不具有物理的形體特征。--人們一直試圖用不同的圖形技術(shù)來描述軟件結(jié)構(gòu),但至今仍然無法給出準(zhǔn)確的、完整的描述。由于軟件的不可見性,定義“需要做什么”成為軟件開發(fā)的根本問題。二、軟件的特性1.1軟件的概念、特點和分類13/513.軟件是不斷變化的盡管軟件不會象硬件一樣發(fā)生磨損,但是需要隨著應(yīng)用、硬件、用戶和社會等各種因素的變化而不斷地修改和擴展。由于軟件是人類思維和智能的一種延伸,因此當(dāng)軟件被真正應(yīng)用之后,人們往往希望超越原有的應(yīng)用邊界進行軟件功能的提升或擴展。由于軟件必須依附于硬件平臺,因此需要隨著硬件設(shè)備的更新和接口的不同而變化。二、軟件的特性1.1軟件的概念、特點和分類14/51二、軟件的特性4.軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式在軟件的發(fā)展歷程中,曾經(jīng)涌現(xiàn)出許多開發(fā)技術(shù)和開發(fā)工具,當(dāng)前流行的面向?qū)ο箝_發(fā)技術(shù)也日趨成熟,但是手工作坊式的軟件開發(fā)方式仍占主導(dǎo)地位。軟件復(fù)用和軟件構(gòu)件技術(shù)受到廣泛的關(guān)注,并成為一種社會認(rèn)可的開發(fā)方法,有助于軟件工程化、工廠化生產(chǎn)的實現(xiàn)。1.1軟件的概念、特點和分類15/51二、軟件的特性5.軟件成本相當(dāng)昂貴20世紀(jì)50年代末,軟件的開銷大約占總開銷的百分之幾,大部分成本要花在硬件上;20世紀(jì)80年代這個比例完全顛倒過來,軟件的開銷大大超過硬件的開銷。1.1軟件的概念、特點和分類美國每年投入軟件開發(fā)的經(jīng)費要有幾百億美元。16/48二、軟件的特性(總結(jié))1.軟件是復(fù)雜的2.軟件是不可見的3.軟件是不斷變化的4.軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式5.軟件成本相當(dāng)昂貴1.1軟件的概念、特點和分類17/48三、軟件的分類1.按軟件規(guī)模進行劃分2.按軟件服務(wù)對象的范圍劃分1.1軟件的概念、特點和分類18/481.按軟件規(guī)模進行劃分類別程序行數(shù)參加人數(shù)研制期限微型50011~4周小型1千~2千11~6月中型5千~50千2~51~2年大型50千~100千5~202~3年甚大型1000千100~10004~5年極大型1000千~10000千2000~50005~10年三、軟件的分類開發(fā)特點無需做嚴(yán)格的分析,不必有完整的設(shè)計、測試材料需要一定的技術(shù)資料,定期進行系統(tǒng)檢查出現(xiàn)了軟件人員之間、軟件人員與用戶之間的聯(lián)系、協(xié)調(diào)的配合關(guān)系問題;需要嚴(yán)格進行計劃、資料書寫以及技術(shù)審查;有必要使用軟件工程方法。采用統(tǒng)一標(biāo)準(zhǔn),實行嚴(yán)格的審查;必須有軟件工程方法的支持。劃分為若干子項目,子項目之間有復(fù)雜的接口;必須有軟件工程方法的支持。必須有軟件工程方法的支持19/482.按軟件服務(wù)對象的范圍劃分通用軟件:

是由軟件開發(fā)機構(gòu)開發(fā)出來直接提供給市場,為眾多用戶服務(wù)的軟件。例如,操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、文字處理軟件、繪圖軟件包和小學(xué)統(tǒng)編教學(xué)課件等。定制軟件:

是受某個特定客戶的委托,由一個或多個軟件開發(fā)機構(gòu)在合同的約束下開發(fā)出來的軟件。例如“企業(yè)ERP”、“衛(wèi)星控制系統(tǒng)”、“交通指揮系統(tǒng)”、“數(shù)字電視控制系統(tǒng)”等。三、軟件的分類ERP,EnterpriseResoursePlanning

:企業(yè)資源規(guī)劃20/481.2軟件的發(fā)展和軟件危機程序設(shè)計階段:20世紀(jì)50~60年代程序系統(tǒng)階段:20世紀(jì)60~70年代軟件工程階段:20世紀(jì)70年代以后第1章軟件工程概述一、軟件發(fā)展的三個階段21/48一、軟件發(fā)展的三個階段1.程序設(shè)計階段:20世紀(jì)50~60年代

程序設(shè)計被認(rèn)為是一種任人發(fā)揮創(chuàng)造才能的活動,不存在什么系統(tǒng)化的方法和開發(fā)管理,程序的質(zhì)量完全依賴于程序員個人的技巧。1.2軟件的發(fā)展和軟件危機軟件:程序數(shù)據(jù)文檔軟件開發(fā):定義設(shè)計編碼測試使用維護22/482.程序系統(tǒng)階段:20世紀(jì)60~70年代

軟件的概念內(nèi)涵不再僅僅是程序,還包規(guī)格說明書。軟件工作的范圍從只考慮程序的編寫擴展到從設(shè)計和測試。軟件:程序數(shù)據(jù)文檔軟件開發(fā):定義設(shè)計編碼測試使用維護一、軟件發(fā)展的三個階段1.2軟件的發(fā)展和軟件危機23/483.軟件工程階段:20世紀(jì)80年代以后

軟件的概念為程序、文檔、數(shù)據(jù)的總和。軟件工作的范圍擴展到從定義、設(shè)計、編碼、測試到使用、維護等整個軟件生命周期。1.2軟件的發(fā)展和軟件危機軟件:程序數(shù)據(jù)文檔軟件開發(fā):定義設(shè)計編碼測試使用維護軟件在三個發(fā)展階段的特性分析:特點時期程序設(shè)計程序系統(tǒng)軟件工程軟件所指程序程序及規(guī)格說明書程序、文檔、數(shù)據(jù)軟件工作范圍編寫程序包括設(shè)計和測試軟件生存期需求者程序設(shè)計者本人少數(shù)用戶市場用戶開發(fā)軟件的組織個人開發(fā)小組開發(fā)小組及大中型軟件開發(fā)機構(gòu)軟件規(guī)模小型中、小型大、中、小型決定質(zhì)量的因素個人程序設(shè)計技術(shù)開發(fā)小組技術(shù)水平管理水平開發(fā)技術(shù)和手段子程序,程序庫結(jié)構(gòu)化程序設(shè)計數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、工程化開發(fā)方法、標(biāo)準(zhǔn)和規(guī)范、、網(wǎng)絡(luò)和分布式開發(fā)、對象技術(shù)維護責(zé)任者程序設(shè)計者開發(fā)小組專職維護人員軟件特征完全不受重視軟件技術(shù)的發(fā)展不能滿足要求,出現(xiàn)軟件危機開發(fā)技術(shù)有進步,未完全擺脫軟件危機25/48二、軟件危機1.軟件危機的含義所謂軟件危機,是指在計算機軟件的開發(fā)和維護過程中遇到的一系列嚴(yán)重問題。(孫家廣,軟件工程,高教出版社,2005.p5)1.2軟件的發(fā)展和軟件危機時間軟件復(fù)雜度圖軟件技術(shù)進步落后于需求的增長技術(shù)實際發(fā)展對技術(shù)需求軟件危機在20世紀(jì)60年代全面爆發(fā),至今已近半個世紀(jì),雖然軟件開發(fā)的新工具和新方法層出不窮,但軟件危機依然沒有消除。1.2軟件的發(fā)展和軟件危機26/482.軟件危機的主要特征(1)軟件開發(fā)的成本和進度難以準(zhǔn)確估計,延遲交付甚至取消項目的現(xiàn)象屢見不鮮。1995年,美國Standish咨詢集團公布了題為“混沌”的研究報告,分析了軟件項目的成功率。53.8%16.2%31%圖軟件項目的成功率二、軟件危機1.2軟件的發(fā)展和軟件危機27/482.軟件危機的主要特征(1)軟件開發(fā)的成本和進度難以準(zhǔn)確估計(2)軟件存在著錯誤多、性能低、不可靠、不安全等質(zhì)量問題。(3)軟件成本在計算機系統(tǒng)的整個成本中所占比例越來越大。(4)軟件維護極其困難,而且很難適應(yīng)不斷變化的用戶需求和使用環(huán)境。(軟件維護費占軟件成本:55%-70%)二、軟件危機1.2軟件的發(fā)展和軟件危機28/483.出現(xiàn)軟件危機的背景原因(1)軟件需求量迅速增加,規(guī)模也日益增加。(2)軟件的復(fù)雜程度增加(3)軟件的開發(fā)成本越來越高(4)軟件維護費用急劇上升,直接威脅計算機應(yīng)用的擴大。(5)軟件生產(chǎn)技術(shù)進步緩慢軟件危機在20世紀(jì)60年代末全面爆發(fā),至今依然沒有消除。二、軟件危機1.2軟件的發(fā)展和軟件危機第1次1節(jié)課29/48一、軟件工程的定義二、軟件工程的三要素三、軟件工程的基本目標(biāo)1.3軟件工程軟件工程是指采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,其目的在于提高軟件的質(zhì)量與生產(chǎn)效率,最終實現(xiàn)軟件的工業(yè)化生產(chǎn)。第1章軟件工程概述30/481.3軟件工程的概念一、軟件工程的定義1968年10月,NATO科學(xué)委員會在德國開會討論軟件可靠性與軟件危機的問題,首次提出“軟件工程的概念”,其目的是解決軟件開發(fā)成本效益和軟件的質(zhì)量問題:

軟件工程是為了經(jīng)濟地獲得能夠在實際機器上高效運行的可靠軟件而建立和使用的一系列好的工程化原則。(孫家廣,p7)《IEEEStandardGlossaryofSoftwareEngineeringTerminology》給出定義[93]:軟件工程是:①將系統(tǒng)性的、規(guī)范化的、可定量的方法應(yīng)用于軟件的開發(fā)、運行和維護,即將工程化應(yīng)用到軟件上;②對①中所述方法的研究。第1章軟件工程概述北大西洋公約組織(NorthAtlanticTreatyOrganization--NATO)31/48“軟件工程”的核心思想:

把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求采用工程化的原理與方法對軟件進行計劃、開發(fā)和維護。軟件工程的定義32/48軟件工程包括以下兩個方面的內(nèi)容:(1)軟件工程是工程概念在軟件領(lǐng)域里的一個特定應(yīng)用與其他工程一樣,軟件工程是在環(huán)境不確定和資源受約束的條件下,采用系統(tǒng)的、規(guī)范化的、可定量的方法進行有關(guān)原則的實施和應(yīng)用,這些原則一般是以往經(jīng)驗的積累和提煉,經(jīng)過時間檢驗并證明是正確的。(2)軟件工程涉及軟件產(chǎn)品的所有環(huán)節(jié)人們往往偏重于軟件開發(fā)技術(shù),忽視軟件項目管理的重要性。統(tǒng)計數(shù)據(jù)表明,導(dǎo)致軟件項目失敗的主要原因幾乎與技術(shù)和工具沒有任何關(guān)系,更多的是由于不適當(dāng)?shù)墓芾碓斐傻摹\浖こ痰亩x33/481.3軟件工程的概念二、軟件工程的三要素質(zhì)量方法工具過程圖軟件工程的三要素軟件工程以關(guān)注質(zhì)量為目標(biāo)34/48方法:軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)和方法。其中使用最廣泛的兩種方法是傳統(tǒng)的結(jié)構(gòu)化方法和當(dāng)前流行的面向?qū)ο蠓椒?。二、軟件工程的三要?/p>

1.3軟件工程的概念質(zhì)量方法工具過程35/48結(jié)構(gòu)化方法:以功能分析和數(shù)據(jù)分析為基礎(chǔ)。強調(diào)自頂向下的功能分解,對功能和數(shù)據(jù)進行了一定程度的分解。

面向?qū)ο蠓椒ǎ?/p>

從現(xiàn)實世界中客觀存在的實體(即對象)出發(fā),盡可能地運用人類自然思維方式來構(gòu)造軟件系統(tǒng)。它運用人類在日常的邏輯思維中經(jīng)常采用的思想方法與原則(例如抽象、分類、繼承、聚合、封裝等),將其貫穿于整個分析和設(shè)計過程,實現(xiàn)了客觀世界到計算機系統(tǒng)的平滑過渡。軟件工程的三要素--方法問題域面向?qū)ο蠓治鲇嬎銠C自然語言面向?qū)ο笤O(shè)計面向?qū)ο缶幊堂嫦驅(qū)ο鬁y試面向?qū)ο蟮木幊陶Z言(a)傳統(tǒng)的軟件工程方法(b)面向?qū)ο蟮能浖こ谭椒▎栴}域需求分析總體設(shè)計詳細(xì)設(shè)計編程測試計算機自然語言傳統(tǒng)的編程語言分析與設(shè)計的鴻溝37/48工具:軟件工具為軟件工程方法提供了自動的或半自動的軟件開發(fā)支撐環(huán)境,輔助軟件開發(fā)任務(wù)的完成。軟件工具最初是零散的、不系統(tǒng)、不配套的?,F(xiàn)有的軟件工具覆蓋了需求分析、系統(tǒng)建模、代碼生成、程序調(diào)試和軟件測試等多個方面,形成了集成化的軟件開發(fā)環(huán)境CASE(ComputerAidedSoftwareEngineering,計算機輔助軟件工程)計算機輔助軟件工程CASE:CASE是一組工具和方法的集合,用于輔助軟件開發(fā)、維護、管理過程中的各項活動,促使軟件工程的工程化和自動化,實現(xiàn)高效率和高質(zhì)量的軟件開發(fā)。1.3軟件工程的概念二、軟件工程的三要素38/48過程:軟件工程中的過程貫穿于軟件開發(fā)的各個環(huán)節(jié)。軟件過程是指從軟件的計劃、需求分析、軟件設(shè)計、程序編碼、軟件測試、到運行和維護的整個過程。二、軟件工程的三要素1.3軟件工程的概念39/481.3軟件工程的概念質(zhì)量方法工具過程圖軟件工程的三要素軟件工程以關(guān)注質(zhì)量為目標(biāo)40/48良好的文檔可讀的代碼良好的設(shè)計可重用性降低成本可移植性增強產(chǎn)品性功能性易用性易學(xué)習(xí)可靠性準(zhǔn)確性有效性維護人員客戶最終用戶圖幾種不同的軟件質(zhì)量視角三、軟件質(zhì)量特性軟件質(zhì)量是軟件產(chǎn)品與明確的和隱含的需求相一致的程度,它通常由一系列的質(zhì)量特性來描述。1.3軟件工程的概念41/48四、軟件工程的基本目標(biāo)

軟件工程的目標(biāo):在給定成本、進度的前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并滿足用戶要求的軟件產(chǎn)品。1.3軟件工程的概念付出較低的開發(fā)成本實現(xiàn)達到要求的軟件功能取得較好的軟件性能開發(fā)的軟件易于移植需要較低的維護費用能按時完成開發(fā)工作,及時交付使用42/481.4軟件生存期(softwarelifecycle)一、概念定義1:如同任何事物一樣,軟件也有一個孕育、誕生、成長、成熟、衰亡的生存過程,我們稱其為軟件的生存期。定義2:軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、使用和維護,直到最后退役的全過程稱為軟件生存期。第1章軟件工程概述43/48二、

軟件生存期的階段劃分(1)可行性研究(feasibility)(2)制定計劃(planning)(3)需求分析和定義(requirementanalysisanddefinition)(4)軟件設(shè)計(softwaredesign)(5)程序編寫(coding,programming)(6)軟件測試(testing)(7)運行/維護(running/maintenance)(8)退役1.4軟件生存期(softwarelifecycle)第1章軟件工程概述44/48任務(wù):了解用戶的要求及現(xiàn)實環(huán)境,從技術(shù)、經(jīng)濟和社會等幾個方面研究并論證軟件系統(tǒng)的可行性。①經(jīng)濟可行性②技術(shù)可行性③社會可行性:對目標(biāo)系統(tǒng)可能會涉及的侵權(quán)、妨礙、責(zé)任等問題作出決定。④抉擇:對系統(tǒng)開發(fā)的不同方案進行比較評估。二、軟件生存期

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論