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

下載本文檔

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

文檔簡介

1、課程安排建議課程安排建議 1.2 軟件及軟件工程概述軟件及軟件工程概述2 1.3 軟件生存周期軟件生存周期 3 1.4 軟件開發(fā)模型軟件開發(fā)模型 4 1.1 軟件工程的發(fā)展軟件工程的發(fā)展 1 1.5 實驗一實驗一 軟件開發(fā)準備及軟件開發(fā)準備及Visio應用應用5 1.6 本章小結(jié)本章小結(jié) 6 了解軟件工程的產(chǎn)生和發(fā)展了解軟件工程的產(chǎn)生和發(fā)展 掌握軟件工程的掌握軟件工程的概念、內(nèi)容概念、內(nèi)容和和原理原理 熟悉熟悉軟件生存周期軟件生存周期及及階段任務(wù)階段任務(wù) 掌握常用的軟件開發(fā)模型掌握常用的軟件開發(fā)模型 掌握軟件開發(fā)準備及掌握軟件開發(fā)準備及Visio應用實驗應用實驗1.1 軟件工程的發(fā)展軟件工程的

2、發(fā)展 美國研發(fā)的阿波羅登月飛行計劃的軟件美國研發(fā)的阿波羅登月飛行計劃的軟件,稱為上世紀世界最精心設(shè)計大型軟件,花費巨額投金和稱為上世紀世界最精心設(shè)計大型軟件,花費巨額投金和人力,最后仍沒避免出錯。如阿波羅人力,最后仍沒避免出錯。如阿波羅8 8 號由于太空飛船號由于太空飛船的一個計算機軟件錯誤,造成存儲器的一部分信息丟失;的一個計算機軟件錯誤,造成存儲器的一部分信息丟失;阿波羅阿波羅1414號在飛行的號在飛行的1010天中,出現(xiàn)了天中,出現(xiàn)了1818個軟件錯誤。個軟件錯誤。案例案例1-11-11.1.1 1.1.1 軟件危機概述軟件危機概述 1. 1.軟件危機問題及表現(xiàn)軟件危機問題及表現(xiàn) 軟件危

3、機軟件危機(Software crisis)是指在計算機軟件研發(fā)、)是指在計算機軟件研發(fā)、運行、維護和管理過程中所遇到的一系列嚴重問題。運行、維護和管理過程中所遇到的一系列嚴重問題。20世世紀紀60年代出現(xiàn)的軟件危機直接導致軟件工程的產(chǎn)生。年代出現(xiàn)的軟件危機直接導致軟件工程的產(chǎn)生。軟件軟件危機的教訓危機的教訓主要包含兩方面的問題:一是研發(fā)的軟件必須主要包含兩方面的問題:一是研發(fā)的軟件必須滿足用戶對軟件日益增長的各種需求,二是強化管理和維滿足用戶對軟件日益增長的各種需求,二是強化管理和維護不斷快速增長的現(xiàn)有軟件。護不斷快速增長的現(xiàn)有軟件。 IBM 公司研發(fā)初期的公司研發(fā)初期的OS/360,共約共

4、約100100萬條指萬條指令,花費了令,花費了50005000個人年;經(jīng)費達數(shù)億美元,而結(jié)果卻令人沮喪,個人年;經(jīng)費達數(shù)億美元,而結(jié)果卻令人沮喪,錯誤多達錯誤多達2000 2000 個以上,個以上,系統(tǒng)根本無法正常運行系統(tǒng)根本無法正常運行。OS/360 OS/360 系統(tǒng)系統(tǒng)的負責人的負責人BrooksBrooks 這樣描述這樣描述開發(fā)過程的困難和混亂開發(fā)過程的困難和混亂:“像巨獸在像巨獸在泥潭中垂死掙扎,掙扎得越猛,泥漿沾得越多陷入更深,最后泥潭中垂死掙扎,掙扎得越猛,泥漿沾得越多陷入更深,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運沒有一個野獸能夠逃脫淹沒在泥潭中的命運” ” 。 案例案例1

5、-21-2 軟件危機主要表現(xiàn)軟件危機主要表現(xiàn)在在7個方面?zhèn)€方面: (1) 軟件系統(tǒng)時常出現(xiàn)功能、性能不滿意或出現(xiàn)故障等現(xiàn)象。軟件系統(tǒng)時常出現(xiàn)功能、性能不滿意或出現(xiàn)故障等現(xiàn)象。 (2) 軟件產(chǎn)品的可靠性和質(zhì)量安全等方面時常達不到標準。軟軟件產(chǎn)品的可靠性和質(zhì)量安全等方面時常達不到標準。軟件產(chǎn)品質(zhì)量難以保證,甚至在開發(fā)過程中就被迫中斷。件產(chǎn)品質(zhì)量難以保證,甚至在開發(fā)過程中就被迫中斷。 (3) 軟件開發(fā)管理差,對成本和進度的估計時常不準確。軟件開發(fā)管理差,對成本和進度的估計時常不準確。 (4) 系統(tǒng)時常出現(xiàn)無法維護、升級或更新現(xiàn)象。系統(tǒng)時常出現(xiàn)無法維護、升級或更新現(xiàn)象。 (5) 軟件開發(fā)沒有標準、完整

6、、統(tǒng)一規(guī)范的文檔資料。計算機軟件開發(fā)沒有標準、完整、統(tǒng)一規(guī)范的文檔資料。計算機軟件不僅只是程序,還應當有一整套規(guī)范的文檔資料和售后服務(wù)。軟件不僅只是程序,還應當有一整套規(guī)范的文檔資料和售后服務(wù)。 (6) 軟件開發(fā)效率低,無法滿足計算機應用迅速發(fā)展與提高實軟件開發(fā)效率低,無法滿足計算機應用迅速發(fā)展與提高實際需要。際需要。 軟件研發(fā)成本在計算機系統(tǒng)總成本中所占的比例逐年上升。軟件研發(fā)成本在計算機系統(tǒng)總成本中所占的比例逐年上升。1.1 軟件工程的發(fā)展軟件工程的發(fā)展2軟件危機產(chǎn)生的原因軟件危機產(chǎn)生的原因 產(chǎn)生軟件危機產(chǎn)生軟件危機的的主要原因主要原因有:有: (1)軟件開發(fā)軟件開發(fā)規(guī)模規(guī)模逐漸變大、復雜

7、度和軟件的逐漸變大、復雜度和軟件的需求量需求量不斷增加及變化;不斷增加及變化; (2)沒有按照工程化方式?jīng)]有按照工程化方式運作運作,開發(fā)過程沒有統(tǒng)一的,開發(fā)過程沒有統(tǒng)一的標準和準則、規(guī)范的標準和準則、規(guī)范的指導方法指導方法; (3)軟件軟件需求分析與設(shè)計需求分析與設(shè)計考慮不周,軟件考慮不周,軟件開發(fā)、維護開發(fā)、維護和管理和管理不到位;不到位; (4)開發(fā)人員與用戶或開發(fā)人員之間互相的開發(fā)人員與用戶或開發(fā)人員之間互相的交流溝通交流溝通不夠,不夠,文檔資料文檔資料不完備;不完備; (5)軟件軟件測試調(diào)試測試調(diào)試不規(guī)范不細致,提交的不規(guī)范不細致,提交的軟件質(zhì)量軟件質(zhì)量不不達標;達標; (6)忽視軟件

8、運行過程中的忽視軟件運行過程中的正常維護和管理正常維護和管理。1.1 軟件工程的發(fā)展軟件工程的發(fā)展3解決軟件危機的措施解決軟件危機的措施 解決軟件危機解決軟件危機的的主要措施主要措施有有3個方面:個方面: (1) 技術(shù)方法。運用軟件工程的技術(shù)、方法和標準規(guī)技術(shù)方法。運用軟件工程的技術(shù)、方法和標準規(guī)范。范。 (2) 開發(fā)工具。選用先進高效的軟件工具,同時采取開發(fā)工具。選用先進高效的軟件工具,同時采取切實可行的實施策略。切實可行的實施策略。 (3) 組織管理。研發(fā)機構(gòu)需要組織高效、管理制度和組織管理。研發(fā)機構(gòu)需要組織高效、管理制度和標準嚴格規(guī)范、職責明確、質(zhì)量保證、團結(jié)互助、齊心協(xié)標準嚴格規(guī)范、職

9、責明確、質(zhì)量保證、團結(jié)互助、齊心協(xié)力,注重文檔及服務(wù)。力,注重文檔及服務(wù)。1.1 軟件工程的發(fā)展軟件工程的發(fā)展注意注意:為了避免和解決軟件開發(fā)中再出現(xiàn)軟為了避免和解決軟件開發(fā)中再出現(xiàn)軟件危機件危機, ,不僅需要標準規(guī)范的技術(shù)措施不僅需要標準規(guī)范的技術(shù)措施, ,更要有強更要有強有力的組織管理保障。各方面密切配合、齊抓有力的組織管理保障。各方面密切配合、齊抓共管,切實以軟件工程方式方法和規(guī)程進行運共管,切實以軟件工程方式方法和規(guī)程進行運作,才能確保軟件質(zhì)量和信息化的健康發(fā)展。作,才能確保軟件質(zhì)量和信息化的健康發(fā)展。 某企業(yè)銷售軟件開發(fā)失敗案例某企業(yè)銷售軟件開發(fā)失敗案例。某企業(yè)投資某企業(yè)投資3232

10、萬元用于網(wǎng)絡(luò)銷售軟件的開發(fā)和建設(shè),軟件開發(fā)者為某高萬元用于網(wǎng)絡(luò)銷售軟件的開發(fā)和建設(shè),軟件開發(fā)者為某高校的計算機學院的項目研發(fā)小組,在軟件開發(fā)前的需求調(diào)研校的計算機學院的項目研發(fā)小組,在軟件開發(fā)前的需求調(diào)研分析階段,該系的教師組織有關(guān)師生在商廈設(shè)備處的計算機分析階段,該系的教師組織有關(guān)師生在商廈設(shè)備處的計算機室負責人陪同下對各業(yè)務(wù)部門進行了調(diào)研,并根據(jù)各業(yè)務(wù)部室負責人陪同下對各業(yè)務(wù)部門進行了調(diào)研,并根據(jù)各業(yè)務(wù)部門的需要編制了按業(yè)務(wù)部門劃分的系統(tǒng)功能模塊需求說明書。門的需要編制了按業(yè)務(wù)部門劃分的系統(tǒng)功能模塊需求說明書。后來,將師生編成若干個軟件開發(fā)小組,分別負責各個功能后來,將師生編成若干個軟件開

11、發(fā)小組,分別負責各個功能模塊研發(fā)。兩年后,大部分的功能模塊開發(fā)完畢,但發(fā)現(xiàn)各模塊研發(fā)。兩年后,大部分的功能模塊開發(fā)完畢,但發(fā)現(xiàn)各模塊之間的數(shù)據(jù)不能很好地共享和傳輸,與系統(tǒng)有關(guān)的各類模塊之間的數(shù)據(jù)不能很好地共享和傳輸,與系統(tǒng)有關(guān)的各類單證的錄入、校對和傳輸比原來的手工處理過程還復雜,并單證的錄入、校對和傳輸比原來的手工處理過程還復雜,并隨著企業(yè)經(jīng)營規(guī)模的擴大和經(jīng)營方式及業(yè)務(wù)的變化,原有的隨著企業(yè)經(jīng)營規(guī)模的擴大和經(jīng)營方式及業(yè)務(wù)的變化,原有的業(yè)務(wù)部門也做了一些調(diào)整,所開發(fā)的功能模塊只有業(yè)務(wù)部門也做了一些調(diào)整,所開發(fā)的功能模塊只有55%55%能勉能勉強使用。由于大部分學生畢業(yè)離校,各模塊的開發(fā)文檔資料

12、強使用。由于大部分學生畢業(yè)離校,各模塊的開發(fā)文檔資料保存不夠,最后,項目無法繼續(xù)進行而終止并因為沒有按期保存不夠,最后,項目無法繼續(xù)進行而終止并因為沒有按期達到合同規(guī)定要求而賠償損失達到合同規(guī)定要求而賠償損失。案例案例1-31-31.1 軟件工程的發(fā)展軟件工程的發(fā)展1.1.2 軟件工程的發(fā)展過程軟件工程的發(fā)展過程 計算機軟件從數(shù)值計算到廣泛應用于各行各業(yè),計算機軟件從數(shù)值計算到廣泛應用于各行各業(yè),軟件軟件技術(shù)的發(fā)展技術(shù)的發(fā)展經(jīng)歷了程序設(shè)計階段、程序系統(tǒng)階段、軟件工經(jīng)歷了程序設(shè)計階段、程序系統(tǒng)階段、軟件工程階段和創(chuàng)新完善軟件工程程階段和創(chuàng)新完善軟件工程4個階段個階段,其典型技術(shù)如表,其典型技術(shù)如

13、表1-1所示。所示。 表表1-1 軟件技術(shù)各發(fā)展階段的典型技術(shù)軟件技術(shù)各發(fā)展階段的典型技術(shù)階段階段程序設(shè)計程序設(shè)計階段階段程序系統(tǒng)程序系統(tǒng)階段階段軟件工程軟件工程階段階段創(chuàng)新完善軟創(chuàng)新完善軟件工程階段件工程階段軟件典型技術(shù)面向批處理有限的分布自定義軟件 多用戶實時處理數(shù)據(jù)庫軟件產(chǎn)品 分布式系統(tǒng)嵌入“智能”低成本硬件消費者的影響 強大桌面系統(tǒng)面向?qū)ο蠹夹g(shù)專家系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、并行計算、網(wǎng)格計算等高新技術(shù)1.1 軟件工程的發(fā)展軟件工程的發(fā)展“軟件工程軟件工程”的發(fā)展的發(fā)展經(jīng)歷了經(jīng)歷了4個重要階段個重要階段: 1傳統(tǒng)軟件工程傳統(tǒng)軟件工程 傳統(tǒng)軟件工程傳統(tǒng)軟件工程是指軟件工程產(chǎn)生的初期,也稱為第一代軟件

14、工程。是指軟件工程產(chǎn)生的初期,也稱為第一代軟件工程。 2對象工程對象工程 對象工程對象工程也稱為第二代軟件工程。也稱為第二代軟件工程。20世紀世紀80年代中到年代中到90年代,以年代,以Smalltalk為代表的面向?qū)ο蟮某绦蛟O(shè)計語言相繼推出,使面向?qū)ο蟮臑榇淼拿嫦驅(qū)ο蟮某绦蛟O(shè)計語言相繼推出,使面向?qū)ο蟮姆椒ㄅc技術(shù)得到快速發(fā)展。方法與技術(shù)得到快速發(fā)展。 3過程工程過程工程 過程工程過程工程也稱為第三代軟件工程。隨著網(wǎng)絡(luò)等高新技術(shù)的出現(xiàn)及也稱為第三代軟件工程。隨著網(wǎng)絡(luò)等高新技術(shù)的出現(xiàn)及信息技術(shù)的廣泛應用,軟件規(guī)模和復雜度不斷增大,開發(fā)時間相應持信息技術(shù)的廣泛應用,軟件規(guī)模和復雜度不斷增大,開發(fā)

15、時間相應持續(xù)增長,開發(fā)人員的增加,致使軟件工程開發(fā)和管理的難度不斷增強。續(xù)增長,開發(fā)人員的增加,致使軟件工程開發(fā)和管理的難度不斷增強。 4構(gòu)件工程構(gòu)件工程 構(gòu)件工程構(gòu)件工程也稱為也稱為第四代軟件工程第四代軟件工程.90起年代起年代,基于構(gòu)件基于構(gòu)件(Component)的開發(fā)方法取得重要進展,軟件系統(tǒng)的開發(fā)可利用已有的可復用構(gòu)件的開發(fā)方法取得重要進展,軟件系統(tǒng)的開發(fā)可利用已有的可復用構(gòu)件組裝完成,而無需從頭開始構(gòu)建,從而達到提高效率和質(zhì)量、降低成組裝完成,而無需從頭開始構(gòu)建,從而達到提高效率和質(zhì)量、降低成本的目的。本的目的。是指語義完整、語法正確和有可重用價值的是指語義完整、語法正確和有可重用

16、價值的單位模塊單位模塊,是軟件重用過,是軟件重用過程中可以明確辨識的系統(tǒng);程中可以明確辨識的系統(tǒng);結(jié)構(gòu)上結(jié)構(gòu)上是語義描述、接口和實現(xiàn)代碼的復合體。是語義描述、接口和實現(xiàn)代碼的復合體。1.1 軟件工程的發(fā)展軟件工程的發(fā)展1.1 軟件工程的發(fā)展軟件工程的發(fā)展 計算機輔助軟件工程計算機輔助軟件工程簡稱簡稱CASE(Computer Aided Software ngineering)將工具和代碼生成器進行集成,為很多)將工具和代碼生成器進行集成,為很多軟件系統(tǒng)提供了可靠的解決方案;專家系統(tǒng)和人工智能軟件的軟件系統(tǒng)提供了可靠的解決方案;專家系統(tǒng)和人工智能軟件的應用更加廣泛;人工神經(jīng)網(wǎng)絡(luò)軟件開闊了信息處

17、理的新途徑;應用更加廣泛;人工神經(jīng)網(wǎng)絡(luò)軟件開闊了信息處理的新途徑;并行計算、網(wǎng)絡(luò)技術(shù)、虛擬技術(shù)、多媒體技術(shù)和現(xiàn)代通信技術(shù)并行計算、網(wǎng)絡(luò)技術(shù)、虛擬技術(shù)、多媒體技術(shù)和現(xiàn)代通信技術(shù)等新技術(shù)新方法改變了原有的工作方式。等新技術(shù)新方法改變了原有的工作方式。: (1)上述案例項目的開發(fā)過程是否存在軟件危機問題?)上述案例項目的開發(fā)過程是否存在軟件危機問題? (2)從案例項目的組織和管理等方面分析導致該項目失敗)從案例項目的組織和管理等方面分析導致該項目失敗的主要原因有哪些?的主要原因有哪些? (3)你認為應當吸取那些教訓,采取的主要措施有哪些?)你認為應當吸取那些教訓,采取的主要措施有哪些?1.2 軟件及

18、軟件工程概述軟件及軟件工程概述1.2.1 軟件的概念特點及分類軟件的概念特點及分類 1軟件的概念軟件的概念 程序程序是按事先按照預定功能性能等要求設(shè)計和編寫的是按事先按照預定功能性能等要求設(shè)計和編寫的指令序列指令序列;軟件軟件(Software)是計算機系統(tǒng)運行的指令、數(shù)據(jù)、文檔資料和)是計算機系統(tǒng)運行的指令、數(shù)據(jù)、文檔資料和服務(wù)的集合,包括指令程序、數(shù)據(jù)、相關(guān)文檔和完善的售后服務(wù)的服務(wù)的集合,包括指令程序、數(shù)據(jù)、相關(guān)文檔和完善的售后服務(wù)的完整集合。即;完整集合。即; 軟件軟件=程序程序 + 數(shù)據(jù)數(shù)據(jù) + 文檔文檔 + 服務(wù)服務(wù)。 其中,其中,數(shù)據(jù)數(shù)據(jù)則是使程序正常處理信息的則是使程序正常處理

19、信息的數(shù)據(jù)結(jié)構(gòu)及信息表示數(shù)據(jù)結(jié)構(gòu)及信息表示;文檔文檔(Document)是與程序開發(fā)、維護和使用有關(guān)的技術(shù)資料。)是與程序開發(fā)、維護和使用有關(guān)的技術(shù)資料。 軟件分為軟件分為系統(tǒng)軟件系統(tǒng)軟件、支撐軟件(開發(fā)環(huán)境)和、支撐軟件(開發(fā)環(huán)境)和應用軟件等。應用軟件等。其中應用軟件常稱為信息系統(tǒng)主要是指具體的應用系統(tǒng)。其中應用軟件常稱為信息系統(tǒng)主要是指具體的應用系統(tǒng)。 注意:注意:程序與軟件不同,程序只是軟件的組成部分。“軟件就是程序”的觀點為誤解,也嚴重影響了軟件工程的正常進行和發(fā)展。文檔必不可少,只有程序不能稱為軟件。 軟件工程師軟件工程師是軟件研發(fā)人員的統(tǒng)稱,按照所處的領(lǐng)域不同可以是軟件研發(fā)人員的

20、統(tǒng)稱,按照所處的領(lǐng)域不同可以分為系統(tǒng)分析員、軟件設(shè)計師、系統(tǒng)架構(gòu)師、程序員、測試員等。分為系統(tǒng)分析員、軟件設(shè)計師、系統(tǒng)架構(gòu)師、程序員、測試員等。 2軟件的特點軟件的特點在軟件的實際研發(fā)、運行、維護、管理和使用過程中,通常需在軟件的實際研發(fā)、運行、維護、管理和使用過程中,通常需要掌握其要掌握其特點特點:(1) (1) 智能性。軟件是人類智能勞動的產(chǎn)物、代替和延伸。智能性。軟件是人類智能勞動的產(chǎn)物、代替和延伸。(2) (2) 抽象性。軟件屬于邏輯實體,無形性和智能性致使軟件難抽象性。軟件屬于邏輯實體,無形性和智能性致使軟件難以認識和理解。以認識和理解。(3) (3) 人工方式。軟件的開發(fā)、維護及設(shè)

21、置管理等方面目前尚未人工方式。軟件的開發(fā)、維護及設(shè)置管理等方面目前尚未完全脫離手工方式。完全脫離手工方式。(4) (4) 復雜性和系統(tǒng)性。復雜性和系統(tǒng)性。(5) (5) 泛域性。軟件應用很廣泛,在信息化中可服務(wù)于各種領(lǐng)域泛域性。軟件應用很廣泛,在信息化中可服務(wù)于各種領(lǐng)域、行業(yè)和層面。、行業(yè)和層面。(6) (6) 復制性。軟件成本相對比較昂貴,計算機軟件是人類創(chuàng)造復制性。軟件成本相對比較昂貴,計算機軟件是人類創(chuàng)造性的特殊產(chǎn)品。性的特殊產(chǎn)品。(7) (7) 非損及更新性。軟件不存在物理性磨損和老化問題,但可非損及更新性。軟件不存在物理性磨損和老化問題,但可以退化需要更新升級。以退化需要更新升級。

22、1.2 軟件及軟件工程概述軟件及軟件工程概述 圖1-1 硬件失效率曲線 圖1-2 軟件失效率曲線 1.2 軟件及軟件工程概述軟件及軟件工程概述3.軟件的分類軟件的分類(1) 按照軟件功能劃分按照軟件功能劃分(2) 按照軟件規(guī)模劃分按照軟件規(guī)模劃分(微型、小型、中型、大型、超大型5種見表見表1-2)(3)按照軟件工作方式劃分按照軟件工作方式劃分(4)按照軟件服務(wù)對象的范圍劃分按照軟件服務(wù)對象的范圍劃分 1.2 軟件及軟件工程概述軟件及軟件工程概述1.2.2 軟件工程的概念及特點軟件工程的概念及特點 1軟件工程的定義軟件工程的定義 按照中國國家標準按照中國國家標準GB/T 114571995軟件工

23、程術(shù)語軟件工程術(shù)語的的定定義義:(Software Engineering)是軟件開發(fā)、運行、維)是軟件開發(fā)、運行、維護和引退的系統(tǒng)方法。護和引退的系統(tǒng)方法。 計算機科學技術(shù)百科全書計算機科學技術(shù)百科全書中對中對的的定義定義是:應用計是:應用計算機科學、數(shù)學及管理科學等原理,開發(fā)軟件的算機科學、數(shù)學及管理科學等原理,開發(fā)軟件的過程過程。軟件工程借。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計算機鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計算機科學和數(shù)學用于構(gòu)建模型與算法,工程科學用于制定規(guī)范、設(shè)計范科學和數(shù)學用于構(gòu)建模型與算法,工程科學用于制定規(guī)范、設(shè)計范型型(p

24、aradigm)、評估成本及確定權(quán)衡,管理科學用于計劃、資源、評估成本及確定權(quán)衡,管理科學用于計劃、資源、質(zhì)量、成本等管理。質(zhì)量、成本等管理。 軟件工程軟件工程 = 工程原理工程原理+技術(shù)方法技術(shù)方法 + 管理技術(shù)管理技術(shù)1.2 軟件及軟件工程概述軟件及軟件工程概述 2軟件工程的特點軟件工程的特點 軟件工程學軟件工程學是軟件工程化的思想、規(guī)范、過程、技術(shù)、環(huán)境是軟件工程化的思想、規(guī)范、過程、技術(shù)、環(huán)境和工具的集成,是將具體的技術(shù)和方法結(jié)合形成的一個完整體系。和工具的集成,是將具體的技術(shù)和方法結(jié)合形成的一個完整體系。 軟件工程學科軟件工程學科的的主要特點主要特點是實踐性和發(fā)展性,軟件工程的是實踐

25、性和發(fā)展性,軟件工程的問問題來源并應用于題來源并應用于實踐,實踐,最終目的最終目的是有效地生產(chǎn)軟件產(chǎn)品。其是有效地生產(chǎn)軟件產(chǎn)品。其特點特點體現(xiàn)為體現(xiàn)為“3多多”:一是多學科,不僅包含有關(guān)課題還涉及到計算機:一是多學科,不僅包含有關(guān)課題還涉及到計算機科學、工程科學、管理科學、數(shù)學等多個學科;二是多目標,不科學、工程科學、管理科學、數(shù)學等多個學科;二是多目標,不僅關(guān)心項目產(chǎn)品及其功能,還有注重質(zhì)量、成本、進度、性能、僅關(guān)心項目產(chǎn)品及其功能,還有注重質(zhì)量、成本、進度、性能、可靠性、安全性、通用性、可維護性、有效性和界面等;三是多可靠性、安全性、通用性、可維護性、有效性和界面等;三是多階段,軟件開發(fā)不

26、只是編程,而是由可行性研究、計劃立項、需階段,軟件開發(fā)不只是編程,而是由可行性研究、計劃立項、需求分析、總體設(shè)計、詳細設(shè)計、編程、測試、運行、維護等階段求分析、總體設(shè)計、詳細設(shè)計、編程、測試、運行、維護等階段構(gòu)成完整過程。構(gòu)成完整過程。 軟件工程的軟件工程的目的目的是在規(guī)定的時間和開發(fā)經(jīng)費內(nèi),開發(fā)出滿足是在規(guī)定的時間和開發(fā)經(jīng)費內(nèi),開發(fā)出滿足用戶需求的、高質(zhì)量的軟件產(chǎn)品。其用戶需求的、高質(zhì)量的軟件產(chǎn)品。其目標目標是實現(xiàn)軟件研發(fā)與維護是實現(xiàn)軟件研發(fā)與維護的優(yōu)質(zhì)高效和自動化。的優(yōu)質(zhì)高效和自動化。1.2 軟件及軟件工程概述軟件及軟件工程概述1.2.3 軟件工程學及其主要內(nèi)容軟件工程學及其主要內(nèi)容 1軟

27、件工程概述軟件工程概述 軟件工程學軟件工程學是一門研究用工程化方法,構(gòu)建和維護有效的、實用的和高質(zhì)量是一門研究用工程化方法,構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學科,涉及程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設(shè)的軟件的學科,涉及程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設(shè)計模式等方面。計模式等方面。其其主要內(nèi)容主要內(nèi)容包括軟件開發(fā)技術(shù)和軟件工程管理兩個方面。包括軟件開發(fā)技術(shù)和軟件工程管理兩個方面。軟件開發(fā)軟件開發(fā)技術(shù)技術(shù)包括軟件工程方法、軟件工具和軟件開發(fā)環(huán)境;包括軟件工程方法、軟件工具和軟件開發(fā)環(huán)境;軟件工程管理學軟件工程管理學包含軟件工程包含軟件工程經(jīng)濟學和軟件

28、管理學經(jīng)濟學和軟件管理學。軟件工程原理軟件工程原理軟件目標、原則、學科基礎(chǔ)軟件目標、原則、學科基礎(chǔ)軟件工程過程軟件工程過程開發(fā)過程、運作過程、維護過程,如獲取、供應、管理、開開發(fā)過程、運作過程、維護過程,如獲取、供應、管理、開發(fā)、運作、維護、支持、剪裁發(fā)、運作、維護、支持、剪裁軟件工程技術(shù)軟件工程技術(shù)開發(fā)技術(shù)、管理技術(shù)、度量技術(shù)、維護技術(shù)、應用技術(shù)開發(fā)技術(shù)、管理技術(shù)、度量技術(shù)、維護技術(shù)、應用技術(shù)軟件工程方法軟件工程方法開發(fā)方法、管理方法、度量方法、維護方法、應用方法、環(huán)開發(fā)方法、管理方法、度量方法、維護方法、應用方法、環(huán)境方法境方法軟件工程模型軟件工程模型領(lǐng)域模型、需求模型、設(shè)計模型、實現(xiàn)模型

29、、測試模型領(lǐng)域模型、需求模型、設(shè)計模型、實現(xiàn)模型、測試模型軟件工程管理軟件工程管理項目管理、質(zhì)量管理、文檔管理項目管理、質(zhì)量管理、文檔管理軟件工程度量軟件工程度量規(guī)模、復雜度、進度、費用、工作量規(guī)模、復雜度、進度、費用、工作量軟件工程環(huán)境軟件工程環(huán)境硬件、網(wǎng)絡(luò)、支撐軟件硬件、網(wǎng)絡(luò)、支撐軟件軟件工程應用軟件工程應用應用軟件工程基本原理、方法、技術(shù)解決特定領(lǐng)域問題應用軟件工程基本原理、方法、技術(shù)解決特定領(lǐng)域問題表表1-3 1-3 軟件工程學科的主要內(nèi)容軟件工程學科的主要內(nèi)容1.2 軟件及軟件工程概述軟件及軟件工程概述 軟件工程方法學軟件工程方法學是研發(fā)軟件的是研發(fā)軟件的系統(tǒng)方法系統(tǒng)方法,確定軟件開

30、發(fā)階段,規(guī),確定軟件開發(fā)階段,規(guī)定每一階段的目標、任務(wù)、技術(shù)、方法、產(chǎn)品、驗收等步驟和完成準定每一階段的目標、任務(wù)、技術(shù)、方法、產(chǎn)品、驗收等步驟和完成準則。具有方法、工具和過程三個要素,也稱則。具有方法、工具和過程三個要素,也稱軟件工程軟件工程: (1)軟件工程方法:包括軟件開發(fā))軟件工程方法:包括軟件開發(fā)“如何作如何作”的技術(shù)和管理準則的技術(shù)和管理準則及文檔等技術(shù)方法;及文檔等技術(shù)方法; (2)軟件工具:為方法的運用提供自動或半自動的軟件支撐工具)軟件工具:為方法的運用提供自動或半自動的軟件支撐工具的集成環(huán)境;的集成環(huán)境; (3)軟件工程過程:主要完成任務(wù)的工作階段、工作內(nèi)容、產(chǎn)品、)軟件工

31、程過程:主要完成任務(wù)的工作階段、工作內(nèi)容、產(chǎn)品、驗收的步驟和完成準則。也有將這一要素確定為驗收的步驟和完成準則。也有將這一要素確定為“組織管理組織管理”,實際,實際上改為上改為“過程與管理過程與管理”更合適。更合適。1.2 軟件及軟件工程概述軟件及軟件工程概述2軟件工程方法軟件工程方法 常用的常用的軟件工程方法軟件工程方法主要分為主要分為7種類型。種類型。 1)面向功能方法)面向功能方法 面向功能的軟件開發(fā)方法面向功能的軟件開發(fā)方法也稱為也稱為結(jié)構(gòu)化方法結(jié)構(gòu)化方法,主要采用結(jié)構(gòu)化,主要采用結(jié)構(gòu)化技術(shù),包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實現(xiàn),按照軟件的開技術(shù),包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實

32、現(xiàn),按照軟件的開發(fā)過程、結(jié)構(gòu)和順序完成開發(fā)任務(wù)。發(fā)過程、結(jié)構(gòu)和順序完成開發(fā)任務(wù)。 2)面向數(shù)據(jù)方法)面向數(shù)據(jù)方法 從目標系統(tǒng)輸入、輸出數(shù)據(jù)的結(jié)構(gòu),從目標系統(tǒng)輸入、輸出數(shù)據(jù)的結(jié)構(gòu),導出導出程序框架結(jié)構(gòu),程序框架結(jié)構(gòu),再補再補充充其他細節(jié),得到完整的其他細節(jié),得到完整的程序結(jié)構(gòu)圖程序結(jié)構(gòu)圖。此方法也可與其他方法結(jié)合,。此方法也可與其他方法結(jié)合,用于用于模塊的詳細設(shè)計和數(shù)據(jù)處理等。對輸入輸出數(shù)據(jù)結(jié)構(gòu)明確的中模塊的詳細設(shè)計和數(shù)據(jù)處理等。對輸入輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)很有效,如商用文件表格處理等。小型系統(tǒng)很有效,如商用文件表格處理等。 1.2 軟件及軟件工程概述軟件及軟件工程概述 3)面向?qū)ο蠓椒ǎ?/p>

33、面向?qū)ο蠓椒?面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ǎ∣bject-Oriented Method,OOM)是一種將)是一種將面面向?qū)ο蟮乃枷胂驅(qū)ο蟮乃枷霊糜趹糜谲浖_發(fā)過程中,指導開發(fā)活動的軟件開發(fā)過程中,指導開發(fā)活動的系統(tǒng)方法系統(tǒng)方法。將。將對象作為數(shù)據(jù)和對數(shù)據(jù)的操作相結(jié)合的軟件構(gòu)件,用對象作為數(shù)據(jù)和對數(shù)據(jù)的操作相結(jié)合的軟件構(gòu)件,用對象分解對象分解取代了取代了傳統(tǒng)方法的功能分解。傳統(tǒng)方法的功能分解?;舅枷牖舅枷胧牵簩栴}領(lǐng)域進行自然的分割,以是:對問題領(lǐng)域進行自然的分割,以更接近人類通常思維的方式建立問題領(lǐng)域的模型,以便對客觀的信息更接近人類通常思維的方式建立問題領(lǐng)域的模型,以便對客觀的信息實體

34、進行結(jié)構(gòu)和行為的模擬,從而使設(shè)計的軟件更直接地表現(xiàn)問題的實體進行結(jié)構(gòu)和行為的模擬,從而使設(shè)計的軟件更直接地表現(xiàn)問題的求解過程。面向?qū)ο蟮拈_發(fā)方法以對象作為最基本的元素,是分析和求解過程。面向?qū)ο蟮拈_發(fā)方法以對象作為最基本的元素,是分析和解決問題的解決問題的核心核心。OOM的的要素要素是對象、類、繼承以及消息通信??墒菍ο?、類、繼承以及消息通信。可概括為概括為: 面向?qū)ο竺嫦驅(qū)ο?對象對象+類類+繼承繼承+消息通信消息通信 實際上,所有按照這樣四個概念設(shè)計和實現(xiàn)的軟件系統(tǒng),都可以實際上,所有按照這樣四個概念設(shè)計和實現(xiàn)的軟件系統(tǒng),都可以認為是面向?qū)ο蟮?。認為是面向?qū)ο蟮?。OOM由由OOA(面向?qū)ο?/p>

35、的分析)、(面向?qū)ο蟮姆治觯?、OOD(面向(面向?qū)ο蟮脑O(shè)計)和對象的設(shè)計)和OOP(面向?qū)ο蟮某绦蛟O(shè)計)三部分(面向?qū)ο蟮某绦蛟O(shè)計)三部分組成組成。1.2 軟件及軟件工程概述軟件及軟件工程概述 4)面向問題方法)面向問題方法 面向問題方法面向問題方法也稱也稱問題分析法問題分析法(Problem Analysis Method, PAM)是是80年代末由日立公司提出的,是在年代末由日立公司提出的,是在Yourdon方法、方法、Jackson方法和自方法和自底向上的軟件開發(fā)方法基礎(chǔ)上揚長避短改進的。其底向上的軟件開發(fā)方法基礎(chǔ)上揚長避短改進的。其基本思想基本思想是:以輸入是:以輸入輸出數(shù)據(jù)結(jié)構(gòu)指導系

36、統(tǒng)的問題分解,經(jīng)過系統(tǒng)分析逐步綜合。輸出數(shù)據(jù)結(jié)構(gòu)指導系統(tǒng)的問題分解,經(jīng)過系統(tǒng)分析逐步綜合。 5)面向方面的開發(fā)方法)面向方面的開發(fā)方法 面向方面的程序設(shè)計面向方面的程序設(shè)計(Aspect-Oriented Programming, AOP)是面是面向?qū)ο笙到y(tǒng)的向?qū)ο笙到y(tǒng)的擴展擴展,在現(xiàn)有的,在現(xiàn)有的AOP實現(xiàn)技術(shù)中,可通過創(chuàng)建實現(xiàn)技術(shù)中,可通過創(chuàng)建Aspect庫庫或者專用或者專用Aspect語言實現(xiàn)面向方面的編程。語言實現(xiàn)面向方面的編程。 6)基于構(gòu)件的開發(fā)方法)基于構(gòu)件的開發(fā)方法 基于構(gòu)件的開發(fā)基于構(gòu)件的開發(fā)(Component-Based Development, CBD)或基)或基于構(gòu)件

37、的軟件工程(于構(gòu)件的軟件工程(Component-Based Software Engineering, CBSE)方法是軟件)方法是軟件開發(fā)新范型開發(fā)新范型。1.2 軟件及軟件工程概述軟件及軟件工程概述 軟件復用軟件復用(Software Reuse)或)或軟件重用軟件重用是指將已有的軟件構(gòu)是指將已有的軟件構(gòu)件用于構(gòu)造新的軟件系統(tǒng)的過程。件用于構(gòu)造新的軟件系統(tǒng)的過程。軟件復用方法軟件復用方法采用的采用的復用方式復用方式包包括:括: (1)復用分析)復用分析:利用原有的需求分析結(jié)果,進一步深入分析比對:利用原有的需求分析結(jié)果,進一步深入分析比對查找異同及特性等。查找異同及特性等。 (2)復用結(jié)

38、構(gòu))復用結(jié)構(gòu):主要復用系統(tǒng)模塊的功能結(jié)構(gòu)或數(shù)據(jù)結(jié)構(gòu)等,并:主要復用系統(tǒng)模塊的功能結(jié)構(gòu)或數(shù)據(jù)結(jié)構(gòu)等,并進行改進提高。進行改進提高。 (3)復用設(shè)計)復用設(shè)計:由于復用受環(huán)境影響小,設(shè)計結(jié)果比源程序的抽由于復用受環(huán)境影響小,設(shè)計結(jié)果比源程序的抽象級別高,因此可通過從現(xiàn)有系統(tǒng)中提取全部或不同粒度的設(shè)計構(gòu)象級別高,因此可通過從現(xiàn)有系統(tǒng)中提取全部或不同粒度的設(shè)計構(gòu)件,或獨立于具體應用開發(fā)設(shè)計構(gòu)件。件,或獨立于具體應用開發(fā)設(shè)計構(gòu)件。 (4)復用程序)復用程序:包括目標代碼和源代碼的復用,可通過連接:包括目標代碼和源代碼的復用,可通過連接(Link)、綁定、綁定(Binding) 、包含、包含(includ

39、e)等功能,支持對象鏈接及嵌等功能,支持對象鏈接及嵌入入(OLE)技術(shù)實現(xiàn)。技術(shù)實現(xiàn)。 7)可視化方法)可視化方法1.2 軟件及軟件工程概述軟件及軟件工程概述 3軟件工具軟件工具 軟件工具軟件工具(Software tools)是指支持軟件的開發(fā)、維護、管)是指支持軟件的開發(fā)、維護、管理而專門研發(fā)的計算機程序系統(tǒng)。理而專門研發(fā)的計算機程序系統(tǒng)。目的目的是提高軟件開發(fā)的質(zhì)量和效是提高軟件開發(fā)的質(zhì)量和效率,降低軟件開發(fā)、維護和管理的成本率,降低軟件開發(fā)、維護和管理的成本, 支持特定的軟件工程方法,支持特定的軟件工程方法,減少手工方式管理的負擔。軟件工具通常由工具、工具接口和工具減少手工方式管理的負

40、擔。軟件工具通常由工具、工具接口和工具用戶接口三部分用戶接口三部分構(gòu)成構(gòu)成。工具通過工具接口與其他工具、操作系統(tǒng)以。工具通過工具接口與其他工具、操作系統(tǒng)以及通信接口、環(huán)境信息庫接口等進行相連交互。及通信接口、環(huán)境信息庫接口等進行相連交互。 軟件工具種類軟件工具種類繁多、涉及面廣,繁多、涉及面廣,可組成可組成“工具箱工具箱”或或“集成工集成工具具”,如編輯、編譯、正文格式處理,靜態(tài)分析、動態(tài)跟蹤、需求,如編輯、編譯、正文格式處理,靜態(tài)分析、動態(tài)跟蹤、需求分析、設(shè)計分析、測試、模擬和圖形交互等。分析、設(shè)計分析、測試、模擬和圖形交互等。按照應用階段分為按照應用階段分為:計劃工具、分析工具、設(shè)計工具、

41、測試工具等,計劃工具、分析工具、設(shè)計工具、測試工具等,按照功能分為按照功能分為:分:分析設(shè)計、析設(shè)計、Web開發(fā)、界面開發(fā)、項目管理、軟件配置、質(zhì)量保證、開發(fā)、界面開發(fā)、項目管理、軟件配置、質(zhì)量保證、軟件維護等。軟件維護等。1.2 軟件及軟件工程概述軟件及軟件工程概述 4軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境 軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境(Software Development Environment)是)是“軟軟件開發(fā)環(huán)境是相關(guān)的一組軟件工具集合,它支持一定的軟件開發(fā)方法件開發(fā)環(huán)境是相關(guān)的一組軟件工具集合,它支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成或按照一定的軟件開發(fā)模型組織而成”。也稱為軟件

42、工程環(huán)境。也稱為軟件工程環(huán)境(Software Engineering Environment),是包括方法、工具和管理),是包括方法、工具和管理等多種技術(shù)的綜合系統(tǒng)。其設(shè)計目標是簡化軟件開發(fā)過程,提高軟件等多種技術(shù)的綜合系統(tǒng)。其設(shè)計目標是簡化軟件開發(fā)過程,提高軟件開發(fā)質(zhì)量和效率。開發(fā)質(zhì)量和效率。 軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境應具備應具備4個個特點特點: (1) 適應性。適應用戶要求,環(huán)境中的工具可修改、增加、減少和適應性。適應用戶要求,環(huán)境中的工具可修改、增加、減少和更新;更新; (2) 堅定性。環(huán)境可自我保護,不受用戶和系統(tǒng)影響,可進行非預堅定性。環(huán)境可自我保護,不受用戶和系統(tǒng)影響,可進行非預

43、見性的環(huán)境恢復;見性的環(huán)境恢復; (3) 緊密性。各種軟件工具可以密切配合工作,提高效率;緊密性。各種軟件工具可以密切配合工作,提高效率; (4) 可移植性。指軟件工具可以根據(jù)需要進行移植。可移植性。指軟件工具可以根據(jù)需要進行移植。1.2 軟件及軟件工程概述軟件及軟件工程概述 常用的常用的軟件工程環(huán)境軟件工程環(huán)境具有具有三級結(jié)構(gòu)三級結(jié)構(gòu),如圖,如圖1-3所示:所示: (1)核心級。主要包括核心工具組、數(shù)據(jù)庫、通訊工核心級。主要包括核心工具組、數(shù)據(jù)庫、通訊工具、運行支持、功能和與硬件無關(guān)的移植接口等。具、運行支持、功能和與硬件無關(guān)的移植接口等。 (2)基本級。一般包括環(huán)境的用戶工具、編譯、編輯基

44、本級。一般包括環(huán)境的用戶工具、編譯、編輯程序和作業(yè)控制語言的解釋程序等。程序和作業(yè)控制語言的解釋程序等。 (3)應用級。通常指應用軟件的開發(fā)工具。應用級。通常指應用軟件的開發(fā)工具。 圖圖1-3 典型的軟件工程環(huán)境典型的軟件工程環(huán)境1.2 軟件及軟件工程概述軟件及軟件工程概述 5軟件工程管理概述軟件工程管理概述 軟件工程管理學軟件工程管理學包括軟件管理學、軟件經(jīng)濟學和包括軟件管理學、軟件經(jīng)濟學和軟件度量學。其軟件度量學。其目的目的是是低成本、高效、高質(zhì)量地研發(fā)低成本、高效、高質(zhì)量地研發(fā)出用戶滿意的軟件產(chǎn)品出用戶滿意的軟件產(chǎn)品。軟件工程管理的。軟件工程管理的任務(wù)任務(wù)是有效是有效地組織人員,按照適當

45、的技術(shù)、方法,利用好的軟件地組織人員,按照適當?shù)募夹g(shù)、方法,利用好的軟件工具工具“又好又快又好又快”地完成預定的軟件項目。地完成預定的軟件項目。 軟件工程管理的軟件工程管理的主要內(nèi)容主要內(nèi)容包括軟件人員組織、計包括軟件人員組織、計劃管理、費用管理、軟件配置管理。劃管理、費用管理、軟件配置管理。 1.2 軟件及軟件工程概述軟件及軟件工程概述1.2.41.2.4 軟件過程及開發(fā)過程軟件過程及開發(fā)過程 ISO9000ISO9000將將軟件過程軟件過程(software processsoftware process)定義定義為:為:“將將輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動輸入轉(zhuǎn)化為輸出的一組彼

46、此相關(guān)的資源和活動”。 軟件過程軟件過程通常包括通常包括4 4類基本過程類基本過程: (1) (1)軟件規(guī)格說明:規(guī)定軟件的功能、性能、可靠性及其運軟件規(guī)格說明:規(guī)定軟件的功能、性能、可靠性及其運行環(huán)境等。行環(huán)境等。 (2) (2) 軟件開發(fā):研發(fā)滿足規(guī)格說明的具體軟件。軟件開發(fā):研發(fā)滿足規(guī)格說明的具體軟件。 (3) (3) 軟件確認:確認軟件能夠完成客戶提出的需求。軟件確認:確認軟件能夠完成客戶提出的需求。 (4) (4) 軟件演進:為滿足用戶的變更要求,軟件必須在使用軟件演進:為滿足用戶的變更要求,軟件必須在使用過程中引進新技術(shù)新方法并根據(jù)新業(yè)務(wù)及時升級更新。過程中引進新技術(shù)新方法并根據(jù)新

47、業(yè)務(wù)及時升級更新。 具體開發(fā)過程如圖具體開發(fā)過程如圖1-41-4所示。所示。1.2 軟件及軟件工程概述軟件及軟件工程概述 軟件過程軟件過程具有可理解性、可見具有可理解性、可見性(過程的進展和結(jié)果可見)、可性(過程的進展和結(jié)果可見)、可靠性、可支持性(易使用靠性、可支持性(易使用CASE工工具支持)、可維護性、可接受性具支持)、可維護性、可接受性(為軟件工程師接受)、開發(fā)效率(為軟件工程師接受)、開發(fā)效率和健壯性(抵御外部意外錯誤的能和健壯性(抵御外部意外錯誤的能力)等特性。力)等特性。 軟件工程軟件工程最注重軟件過程中的最注重軟件過程中的開發(fā)過程開發(fā)過程,主要包括項目啟動、需,主要包括項目啟動

48、、需求調(diào)研分析、設(shè)計(概要設(shè)計及詳求調(diào)研分析、設(shè)計(概要設(shè)計及詳細設(shè)計)、編碼(實現(xiàn))、測試、細設(shè)計)、編碼(實現(xiàn))、測試、部署、測試和結(jié)束等過程。如圖部署、測試和結(jié)束等過程。如圖1-4所示。所示。圖圖1-4 系統(tǒng)開發(fā)過程系統(tǒng)開發(fā)過程1.2 軟件及軟件工程概述軟件及軟件工程概述 “企業(yè)人事管理信息系統(tǒng)企業(yè)人事管理信息系統(tǒng)”總體功能需求和目標要總體功能需求和目標要求求。主要功能主要功能是用于支持企事業(yè)單位完成勞動人事管理工作,是用于支持企事業(yè)單位完成勞動人事管理工作,實現(xiàn)實現(xiàn)的的主要目標主要目標包括:包括:(1)支持企業(yè)高效率完成支持企業(yè)高效率完成勞動人事管理的日常業(yè)務(wù)勞動人事管理的日常業(yè)務(wù),包

49、括新職工調(diào)入,包括新職工調(diào)入時人事的管理,職員調(diào)出、辭職、退休等。時人事的管理,職員調(diào)出、辭職、退休等。(2)支持企業(yè)進行支持企業(yè)進行勞動人事管理勞動人事管理及其及其相關(guān)方面的科學決策相關(guān)方面的科學決策,如企事業(yè),如企事業(yè)單位領(lǐng)導根據(jù)現(xiàn)有的崗位員工需求情況單位領(lǐng)導根據(jù)現(xiàn)有的崗位員工需求情況決定招聘的崗位及人數(shù)決定招聘的崗位及人數(shù)等。等。 根據(jù)新系統(tǒng)總體功能需求等要求,通過調(diào)研、論證可以根據(jù)新系統(tǒng)總體功能需求等要求,通過調(diào)研、論證可以基本確基本確定定系統(tǒng)開發(fā)過程的總體框架系統(tǒng)開發(fā)過程的總體框架。案例案例1-41-41.2 軟件及軟件工程概述軟件及軟件工程概述。步步 驟驟任務(wù)及說明任務(wù)及說明參與者

50、參與者生成文檔或程序生成文檔或程序可行性分析可行性分析對項目的技術(shù),功能需求和市場進行調(diào)研和初步分析,確定對項目的技術(shù),功能需求和市場進行調(diào)研和初步分析,確定是否需要啟動項目是否需要啟動項目部門主管部門主管核心技術(shù)人員核心技術(shù)人員可行性分析報告可行性分析報告技術(shù)調(diào)研報告技術(shù)調(diào)研報告啟動項目啟動項目正式啟動項目,有部門主管制定項目經(jīng)理,項目經(jīng)理制定初正式啟動項目,有部門主管制定項目經(jīng)理,項目經(jīng)理制定初步計劃,初步計劃包括設(shè)計和開發(fā)時間的初步估計步計劃,初步計劃包括設(shè)計和開發(fā)時間的初步估計部門主管部門主管核心技術(shù)人員核心技術(shù)人員項目計劃書項目計劃書項目合同項目合同需求分析需求分析對項目詳細需求分析

51、,編寫需求文檔,對對項目詳細需求分析,編寫需求文檔,對B/S 結(jié)構(gòu)的系統(tǒng)應制結(jié)構(gòu)的系統(tǒng)應制作靜態(tài)演示頁面。需求分析文檔和靜態(tài)演示頁面需要通過部作靜態(tài)演示頁面。需求分析文檔和靜態(tài)演示頁面需要通過部門主管審批才能進行到下一步驟門主管審批才能進行到下一步驟項目經(jīng)理項目經(jīng)理項目小組核心成員項目小組核心成員需求分析說明書需求分析說明書靜態(tài)演示頁面靜態(tài)演示頁面項目計劃修訂版本項目計劃修訂版本概要設(shè)計概要設(shè)計根據(jù)需求分析進行概要設(shè)計。編寫目的是說明對系統(tǒng)的設(shè)計根據(jù)需求分析進行概要設(shè)計。編寫目的是說明對系統(tǒng)的設(shè)計考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、功能分配、考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、

52、功能分配、接口設(shè)計。運行設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和出錯處理設(shè)計等,為接口設(shè)計。運行設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計和出錯處理設(shè)計等,為詳細設(shè)計提供基礎(chǔ)。概要設(shè)計經(jīng)過評審后,項目經(jīng)理通過部詳細設(shè)計提供基礎(chǔ)。概要設(shè)計經(jīng)過評審后,項目經(jīng)理通過部門主管一起指定項目小組成員。門主管一起指定項目小組成員。項目經(jīng)理項目經(jīng)理項目小組核心成員項目小組核心成員概要設(shè)計說明書概要設(shè)計說明書詳細設(shè)計詳細設(shè)計詳細設(shè)計編制目的是說明一個軟件各個層次中的每一個程序詳細設(shè)計編制目的是說明一個軟件各個層次中的每一個程序(每個模塊或子程序)的設(shè)計考慮,如果一個軟件系統(tǒng)比較(每個模塊或子程序)的設(shè)計考慮,如果一個軟件系統(tǒng)比較簡單,層次很少,可以不單獨

53、編寫,有關(guān)內(nèi)容合并入概要設(shè)簡單,層次很少,可以不單獨編寫,有關(guān)內(nèi)容合并入概要設(shè)計說明書。計說明書。項目經(jīng)理項目經(jīng)理項目小組成員項目小組成員詳細設(shè)計文檔詳細設(shè)計文檔項目計劃確定版本項目計劃確定版本編碼實現(xiàn)編碼實現(xiàn)根據(jù)設(shè)計開發(fā)項目,同時有美工對操作界面進行美化根據(jù)設(shè)計開發(fā)項目,同時有美工對操作界面進行美化項目經(jīng)理、程序設(shè)計項目經(jīng)理、程序設(shè)計員、美工員、美工項目計劃修訂版本項目計劃修訂版本調(diào)試調(diào)試項目經(jīng)理提交測試申請,由測試部門對項目進行測試,項目項目經(jīng)理提交測試申請,由測試部門對項目進行測試,項目小組配合測試部門修改軟件中的錯誤小組配合測試部門修改軟件中的錯誤項目經(jīng)理項目經(jīng)理程序開發(fā)人員程序開發(fā)人

54、員測試部門測試部門測試申請測試申請測試計劃測試計劃測試報告測試報告項目驗收項目驗收項目驗收歸檔項目驗收歸檔部門主管部門主管、項目經(jīng)理項目經(jīng)理項目所有文檔和程序項目所有文檔和程序表1-4 軟件開發(fā)工作任務(wù)、人員及輸出 軟件開發(fā)過程軟件開發(fā)過程的具體工作任務(wù)、參與人員及生成文檔或程序,的具體工作任務(wù)、參與人員及生成文檔或程序,可以通過一個表具體詳細地列出來,以便于清楚可以通過一個表具體詳細地列出來,以便于清楚各階段各階段具體具體做什做什么工作么工作,如表,如表1-4所示。所示。1.2 軟件及軟件工程概述軟件及軟件工程概述1.2.5 1.2.5 軟件工程基本原理及原則軟件工程基本原理及原則 1. 1

55、. 軟件工程的基本原理軟件工程的基本原理 軟件工程軟件工程7 7條條基本原理基本原理。 (1 1)用分階段的生存周期計劃進行嚴格的管理。)用分階段的生存周期計劃進行嚴格的管理。 (2 2)堅持進行階段評審。軟件的質(zhì)量保證工作不能等)堅持進行階段評審。軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進行。到編碼階段結(jié)束之后再進行。 (3 3)實行嚴格的產(chǎn)品控制。)實行嚴格的產(chǎn)品控制。 (4 4)采用現(xiàn)代程序設(shè)計技術(shù)。)采用現(xiàn)代程序設(shè)計技術(shù)。 (5 5)軟件工程結(jié)果應能清楚地審查。)軟件工程結(jié)果應能清楚地審查。 (6 6)開發(fā)小組的人員應該少而精。)開發(fā)小組的人員應該少而精。 (7 7)承認不斷改進軟

56、件工程實踐的必要性)承認不斷改進軟件工程實踐的必要性。1.2 軟件及軟件工程概述軟件及軟件工程概述2. 軟件工程的基本原則軟件工程的基本原則 (1) 選取適宜的開發(fā)模型。選取適宜的開發(fā)模型。 (2) 采用合適的設(shè)計方法。采用合適的設(shè)計方法。 (3) 提供高質(zhì)量的工程支撐。提供高質(zhì)量的工程支撐。 (4) 重視軟件工程的管理。重視軟件工程的管理。 1.2 軟件及軟件工程概述軟件及軟件工程概述討論思考討論思考: (1) 軟件和軟件工程的概念軟件和軟件工程的概念? 軟件工程方法學?軟件工程三軟件工程方法學?軟件工程三要素要素? (2) 軟件工程開發(fā)的方法主要有哪些軟件工程開發(fā)的方法主要有哪些? (3)

57、 結(jié)合結(jié)合“人事管理信息系統(tǒng)人事管理信息系統(tǒng)”案例進行討論軟件工程?案例進行討論軟件工程?1.3 軟件生存周期軟件生存周期1.3.1 軟件生存周期的有關(guān)概念軟件生存周期的有關(guān)概念 軟件生存周期軟件生存周期(Software life cycle)是從開始研發(fā)軟件)是從開始研發(fā)軟件到軟件停止使用的整個過程。是指軟件產(chǎn)品從用戶提出開發(fā)到軟件停止使用的整個過程。是指軟件產(chǎn)品從用戶提出開發(fā)需求開始,經(jīng)過開發(fā)、使用和維護,直到最后淘汰的整個周需求開始,經(jīng)過開發(fā)、使用和維護,直到最后淘汰的整個周期,因此,也稱為期,因此,也稱為軟件生命周期軟件生命周期或或軟件生存期軟件生存期,是軟件工程,是軟件工程的一個重

58、要概念。的一個重要概念。 軟件工程中的過程軟件工程中的過程對應對應軟件生存周期中的軟件生存周期中的階段階段(Phase) ,也是實現(xiàn)軟件生產(chǎn)工程化的重要步驟,并賦予各階段相對獨也是實現(xiàn)軟件生產(chǎn)工程化的重要步驟,并賦予各階段相對獨立的任務(wù)。可以將一個立的任務(wù)??梢詫⒁粋€軟件的生存周期軟件的生存周期劃分為劃分為市場調(diào)研、立市場調(diào)研、立項、需求分析、規(guī)劃、概要設(shè)計、詳細設(shè)計、編程、單元測項、需求分析、規(guī)劃、概要設(shè)計、詳細設(shè)計、編程、單元測試、集成測試、運行、維護這幾個過程,前一過程的終點就試、集成測試、運行、維護這幾個過程,前一過程的終點就是后一過程的起點。完成階段性工作的標志稱為是后一過程的起點。

59、完成階段性工作的標志稱為里程碑里程碑(Milestone),某些重要的里程碑又稱為,某些重要的里程碑又稱為基線基線(Baseline)。1.3 軟件生存周期軟件生存周期 1.3.3 軟件生存周期各階段的任務(wù)軟件生存周期各階段的任務(wù) 軟件生存周期軟件生存周期各階段的各階段的主要任務(wù)主要任務(wù)。 在在GB 8567-2006中將軟件生存周期分為中將軟件生存周期分為7個階段如圖個階段如圖1-5所示:所示: (1) 開發(fā)策劃。主要完成問題定義、可行性論證、制定開發(fā)策劃。主要完成問題定義、可行性論證、制定開發(fā)計劃和項目申報工作,明確開發(fā)計劃和項目申報工作,明確“要解決的問題是什么要解決的問題是什么”。 (

60、2) 需求分析。需求分析和定義階段任務(wù)不是需求分析。需求分析和定義階段任務(wù)不是具體地解決問題,而是確定軟件須具備的具體功能、具體地解決問題,而是確定軟件須具備的具體功能、性能等,即性能等,即“必須做什么必須做什么”及其他指標要求。及其他指標要求。 (3) 概要設(shè)計。主要設(shè)計軟件的結(jié)構(gòu),結(jié)構(gòu)的組成模塊,概要設(shè)計。主要設(shè)計軟件的結(jié)構(gòu),結(jié)構(gòu)的組成模塊,模塊的層次結(jié)構(gòu)、調(diào)用關(guān)系及功能。并設(shè)計總體數(shù)據(jù)結(jié)構(gòu)等。模塊的層次結(jié)構(gòu)、調(diào)用關(guān)系及功能。并設(shè)計總體數(shù)據(jù)結(jié)構(gòu)等。 圖圖1-5 軟件生存周期階段關(guān)系軟件生存周期階段關(guān)系1.3.2 軟件生存周期的階段劃分軟件生存周期的階段劃分 軟件生存周期軟件生存周期階段劃分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論