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

下載本文檔

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

文檔簡介

軟件工程概論

主講:曾子維遼寧科技大學軟件學院聯(lián)系方式:Tel:5929800作業(yè)Email:1536349117@

資料Email:zzwustlm@163.com,密碼5929800課程介紹總學時:48學時(3學分),均為理論。考核方式

成績=課堂(10%)+模擬項目(40%)+期末考試(50%,開卷考試)。參考資料[1]沈文軒《軟件工程基礎(chǔ)與使用教程》自編2012版[2]張海藩《軟件工程導論(第五版)》清華大學出版社 2008.2[3]史濟民等《軟件工程-原理方法與應(yīng)用》高等教育出版社2002.12第2版[4]《人月神化》

(美)弗雷德里克.布魯克斯清華大學出版社課程介紹上篇:軟件工程基礎(chǔ)篇(主要內(nèi)容)第1章 軟件工程概述第2章 軟件過程第3章 軟件計劃第4章 軟件需求基礎(chǔ)第5章 軟件設(shè)計基礎(chǔ)第6章 模型結(jié)構(gòu)化的從分析到設(shè)計第7章 面向?qū)ο蟮膹姆治龅皆O(shè)計第8章 軟件實現(xiàn)第9章 軟件維護第10章軟件項目管理課程介紹下篇:基于架構(gòu)與MVC模式的一體化開發(fā)(簡介或自學)第11章架構(gòu)與MVC模式第12章面向架構(gòu)與MVC的一體化開發(fā)方法第13章一體化開發(fā)方法應(yīng)用實例教學目標了解軟件的概念和軟件產(chǎn)品的特點; 了解軟件危機以及解決辦法——軟件工程的重要性;了解軟件工程的概念、原理和內(nèi)容。教學重點

軟件工程的基本原理。教學難點軟件工程課程的框架。第1章軟件工程概述1.1軟件的概念1.2軟件的發(fā)展與軟件危機的產(chǎn)生1.3解決軟件危機的途徑1.4軟件工程的定義1.5軟件工程的內(nèi)容1.6軟件發(fā)展的新階段與新問題1.7軟件工程的演變發(fā)展第1章軟件工程概述1.1.1

軟件和軟件產(chǎn)品1.軟件1983年IEEE為軟件下的定義是:計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行程序時所必需的數(shù)據(jù)。軟件工程的先驅(qū)者RogerS.Pressman教授:軟件是(1)能夠完成預(yù)定功能和性能的可執(zhí)行的指令(計算機程序);(2)使得程序能夠適當?shù)夭僮餍畔⒌臄?shù)據(jù)結(jié)構(gòu);(3)描述程序的操作和使用的文檔?!败浖?程序”錯誤認識;1.1軟件的概念“軟件=程序+數(shù)據(jù)+文檔”被廣泛接受。程序和數(shù)據(jù)是軟件運行的基本要素(基因),而文檔則是延續(xù)軟件運行壽命的保障。2.軟件產(chǎn)品①

軟件產(chǎn)品自身特點軟件是抽象的邏輯產(chǎn)品不是實物產(chǎn)品。軟件的實現(xiàn)與硬件和支撐環(huán)境密切相關(guān),不能獨立存在。軟件復(fù)制容易,軟件著作權(quán)保護。軟件不會損耗,但會隨著環(huán)境的變化而退化。軟件的錯誤較多,測試也無法杜絕。1.1軟件的概念②業(yè)界環(huán)境特點軟件開發(fā)者和用戶知識領(lǐng)域不同,造成交流上的困難。不斷修改需求,致使雙方厭倦,工程流產(chǎn)。大型應(yīng)用軟件開發(fā)工期長于軟件平臺技術(shù)的更新周期,往往開發(fā)完就是落后的產(chǎn)品。構(gòu)件與復(fù)用技術(shù)并不理想,在IT公司內(nèi)部通過開發(fā)積累可利用一些復(fù)用,但還沒有做到象其它物理產(chǎn)品那樣在市場上供應(yīng)∕購買標準構(gòu)件。開發(fā)人員流動性大,質(zhì)量和工期不保證。1.1軟件的概念1.1.2軟件產(chǎn)品的類型不同的角度可分為不同類型按工作方式分:有實時軟件、交互式軟件、批處理式軟件等;按服務(wù)對象分:有商業(yè)通用、企業(yè)定制、個人辦公、工程應(yīng)用、科學計算、人工智能等軟件。軟件工程的角度劃分如下三個層面:基礎(chǔ)軟件、應(yīng)用軟件、支撐軟件。1.1軟件的概念1.1.2軟件產(chǎn)品的類型1.基礎(chǔ)軟件:保證計算機本身運行和支撐應(yīng)用軟件運行的基礎(chǔ)環(huán)境;①系統(tǒng)軟件:操作系統(tǒng)、語言處理系統(tǒng)、通用辦公軟件②數(shù)據(jù)庫:如Oracle、SQLServer、DB2、Informix、MySQL等國外數(shù)據(jù)庫軟件,國產(chǎn)的數(shù)據(jù)庫軟件有東軟OpenBASE、金倉KingbaseES等。③中間件:為處于自己上層的應(yīng)用軟件提供運行與開發(fā)的環(huán)境,幫助用戶開發(fā)和集成應(yīng)用軟件。有兩個關(guān)鍵特征,為上層的應(yīng)用層服務(wù);必須連接到操作系統(tǒng)的層面,并確保持運行工作狀態(tài)。例如:微軟公司的IIS、Apache公司的開源Tomcat。1.1軟件的概念1.1.2軟件產(chǎn)品的類型2.支撐軟件:在系統(tǒng)軟件和應(yīng)用軟件之間,提供應(yīng)用軟件設(shè)計、開發(fā)、測試、評估、運行檢測等輔助功能的軟件①編程工具:微軟的VisualStudio、IBM提供的開源集成開發(fā)環(huán)境Eclipse等;②建模工具:如IBMRationalRose軟件建模;③版本控制、軟件測試;3.應(yīng)用軟件:解決特定應(yīng)用領(lǐng)域問題或解決具體項目而開發(fā)的軟件;4.嵌入式軟件:就是嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件及應(yīng)用程序;應(yīng)用及其廣泛。1.1軟件的概念1.2.1軟件的發(fā)展過程軟件發(fā)展的四個過程:1.2軟件的發(fā)展與軟件危機的產(chǎn)生表1-1軟件開發(fā)早期三個階段

階段加工特點軟件特點主要用途第一階段1950-1960(個體式)個體化編程,依靠個人想法和智慧;只有程序設(shè)計概念,沒有過程和方法;只有源代碼、無其它文檔;語言低級,工具簡單;小規(guī)模;特定目的專用;科學計算,不追求商業(yè)效應(yīng);第二階段1960-1970(作坊式)小組合作式“軟件作坊”,基本上仍然沿用早期的個體化軟件開發(fā)方式;有了軟件設(shè)計的概念,采用結(jié)構(gòu)化方法,但不講究過程,沒形成軟件開發(fā)的理論體系;出現(xiàn)高級語言和數(shù)據(jù)庫技術(shù);規(guī)模變大、結(jié)構(gòu)復(fù)雜、成本增高、維護困難;導致爛尾子工程、項目流產(chǎn),失敗的項目越來越多,軟件危機逐漸顯現(xiàn)。應(yīng)用于企業(yè);可以作為商品出售,可以賺錢;第三階段始于上世紀70年代中期至80年代后期(團隊式)形成規(guī)?;瘓F隊開發(fā),出現(xiàn)軟件業(yè);軟件開發(fā)技術(shù)有很大進步,面向?qū)ο箝_發(fā)技術(shù)出現(xiàn),開發(fā)工具、網(wǎng)絡(luò)環(huán)境、分布式計算有很大發(fā)展;但未能獲得突破性進展,軟件開發(fā)技術(shù)的進步一直未能滿足日益增長的軟件需求。大量軟件開發(fā)項目的失敗和經(jīng)濟損失,明確認識軟件危機的存在及其解決之道,軟件開發(fā)過程的管理,軟件工程的意識得到重視和應(yīng)用;軟件的數(shù)量及規(guī)模急劇膨脹;軟件功能及運行環(huán)境復(fù)雜;開發(fā)難度越來越大,找不到解決維護的辦法,失敗的軟件開發(fā)項目屢見不鮮;軟件危機的表現(xiàn)突出。面向市場的軟件商品已形成一定的市場規(guī)模;主要市場是需求巨大的合同式企業(yè)定制軟件,解決企業(yè)的信息管理;1.2.2軟件危機1.軟件危機概念軟件危機(softwarecrisis),這個名詞是1968年在德國召開的NATO(NorthAtlanticTreatyOrganization,北大西洋公約組織)會議上計算機科學家首次提出的。先看幾個例子:1967年蘇聯(lián)“聯(lián)盟一號”載人宇宙飛船在返航時,由于軟件忽略一個小數(shù)點,在進入大氣層時因打不開降落傘而燒毀。1.2軟件的發(fā)展與軟件危機的產(chǎn)生1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序:DO5I=1,3誤寫為:DO5I=1.3IBM公司的OS/360,共約100萬條指令,花費了5000個人年;經(jīng)費達數(shù)億美元,而結(jié)果卻令人沮喪,錯誤多達2000個以上,系統(tǒng)根本無法正常運行。OS/360系統(tǒng)的負責人Brooks這樣描述開發(fā)過程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運?!?/p>

1.2軟件的發(fā)展與軟件危機的產(chǎn)生2.軟件危機產(chǎn)生的原因

1.2軟件的發(fā)展與軟件危機的產(chǎn)生計算機應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大,功能復(fù)雜個體化軟件開發(fā)方法無開發(fā)過程指導無開發(fā)過程管理軟件成本高、質(zhì)量低、維護困難軟件危機客觀因素主觀因素主客觀不相適應(yīng)1.2.3軟件危機的表現(xiàn)(1)(1)軟件開發(fā)進度難以預(yù)測,開發(fā)成本難以控制,導致超預(yù)算、超時;(2)產(chǎn)品功能難以滿足用戶需求;(3)軟件產(chǎn)品質(zhì)量無法保證;(4)軟件缺少適當?shù)奈臋n資料,維護困難;(5)軟件成本超過硬件成本;(6)軟件開發(fā)生產(chǎn)率提高的速度遠遠跟不上計算機應(yīng)用迅速普及深入的趨勢;1.2軟件的發(fā)展與軟件危機的產(chǎn)生1.3

解決軟件危機的途徑管理措施項目管理配置管理過程管理質(zhì)量控制

技術(shù)措施開發(fā)過程開發(fā)技術(shù)與方法開發(fā)工具軟件工程學(軟件產(chǎn)品開發(fā)工程)軟件工程(SoftwareEngineering)的兩個定義1968年在第一屆NATO(北大西洋公約組織)會議上曾經(jīng)給出了軟件工程的一個早期定義:“軟件工程就是為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理?!避浖こ痰哪繕?是經(jīng)濟地開發(fā)出高質(zhì)量的軟件;軟件工程方法:運用工程學科的相關(guān)工程原理去開發(fā)軟件。1.4軟件工程的定義1993年IEEE進一步給出了一個更全面更具體的定義:“軟件工程是:①把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運行和維護過程,也就是把工程應(yīng)用于軟件;②研究①中提到的途徑。”軟件工程的作用:(1)是指導軟件產(chǎn)品進行計劃、開發(fā)和維護的工程學科(2)指導軟件行業(yè)按工業(yè)化生產(chǎn)過程進行軟件開發(fā),即按照目標化、規(guī)范化、文檔化、標準化——工程化。1.4軟件工程的定義軟件工程是圍繞軟件開發(fā)的一門交叉學科: 軟件工程=計算機科學+工程學+管理學。1.5.1從計算機科學視角看軟件工程1.軟件工程的知識體系IEEE的軟件工程知識體系指南(SWEBOK)中界定了軟件工程的10個知識領(lǐng)域:軟件工程過程(SoftwareEngineeringProcess)軟件工程工具和方法(SoftwareEngineeringToolsandMethods)軟件需求(SoftwareRequirement)1.5軟件工程的內(nèi)容1.軟件工程的知識體系

IEEE的軟件工程知識體系指南(SWEBOK)中界定了軟件工程的10個知識領(lǐng)域:軟件設(shè)計(SoftwareDesign)

軟件構(gòu)造(SoftwareConstruction)

軟件測試(SoftwareTesting)

軟件維護(SoftwareMaintenance)軟件配置管理(SoftwareConfigurationmanagement)

軟件工程管理(SoftwareEngineeringmanagement)

軟件質(zhì)量(SoftwareQuality)1.5軟件工程的內(nèi)容2.軟件工程三要素

分別是過程、方法和工具

軟件質(zhì)量的保障。目標:軟件工程必須以有組織的質(zhì)量保證為基礎(chǔ),進行全面質(zhì)量管理,不斷地過程改進使軟件工程方法走向成熟。1)軟件工程“過程”:是進行一系列有組織的活動,從而能夠合理地和及時地開發(fā)出計算機軟件。過程定義了技術(shù)方法的采用、工程產(chǎn)品(包括模型、文檔、數(shù)據(jù)、報告、表格等)的產(chǎn)生、里程碑的建立、質(zhì)量的保證和變更的管理。1.5軟件工程的內(nèi)容2)軟件工程“方法”:為軟件開發(fā)提供“如何做”的技術(shù),它涵蓋了項目計劃、需求分析、系統(tǒng)設(shè)計、程序?qū)崿F(xiàn)、測試與維護等一系列的開發(fā)活動如何來做。開發(fā)方法經(jīng)歷了從面向結(jié)構(gòu)、面向?qū)ο?、面向組件到面向服務(wù)的發(fā)展工程。3)軟件過程“工具”:為過程和方法提供自動的或半自動的支持。這些軟件工具被集成起來,建立起一個支持軟件開發(fā)的系統(tǒng),稱之為計算機輔助軟件工程(CASE,ComputerAidedSoftwareEngineering)。CASE集成了軟件、硬件和一個存放開發(fā)過程信息的軟件工程數(shù)據(jù)庫,形成了一個軟件工程環(huán)境。1.5軟件工程的內(nèi)容3.轉(zhuǎn)變學習思維

從計算機技術(shù)的學習上升到軟件工程的學習,要提升學習的思維:1)將模塊的算法分析與程序設(shè)計的思維定式提升到系統(tǒng)分析與設(shè)計層面;2)將只定位程序員的訓練提升到系統(tǒng)工程師培養(yǎng)層面;3)將只關(guān)心符合計算機邏輯提升到符合工程規(guī)范的層面;1.5軟件工程的內(nèi)容1.5.2從工程視角看軟件工程1.5軟件工程的內(nèi)容可用性性確正選取適宜的開發(fā)模型采用合適的設(shè)計方法提供高質(zhì)量的工程支持重視軟件工程的管理基本過程原則目標(高質(zhì)量高效益)過

程支持過程組織過程合算性1.5.3從管理視角看軟件工程

軟件工程的過程、方法和工具許多屬于管理學領(lǐng)域問題,又由于軟件的特殊性,軟件規(guī)模難以估算、勞動效率和產(chǎn)品質(zhì)量難以評價、加工過程難以控制,因此軟件工程管理與物理加工的傳統(tǒng)管理既具有共性又具有特殊性,即要借鑒傳統(tǒng)工程管理規(guī)范又要發(fā)展新的理論和實踐,所以對軟件工程的管理的是一個不斷發(fā)展和完善、新的管理學科。軟件工程管理的主要形式是項目管理。1.5軟件工程的內(nèi)容軟件項目管理就是運用系列的知識、技能、工具和技術(shù),在軟件開發(fā)的活動中有效地掌控資源,對項目時間、質(zhì)量和成本進行管理。如項目計劃、團隊管理、質(zhì)量管理、過程管理、過程改進、配置管理等。有關(guān)內(nèi)容見本書第10章“軟件項目管理”。1.5軟件工程的內(nèi)容1.5.4從基本原理看軟件工程

軟件工程的專家學者們陸續(xù)提出了100多條關(guā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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論