版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟 件 工 程 概 論,湖北工業(yè)大學(xué)計算機學(xué)院 趙 嵐 ,軟件工程是計算機專業(yè)的一門重要的專業(yè)基礎(chǔ)課,它對于培養(yǎng)學(xué)生軟件素質(zhì),提高學(xué)生的軟件開發(fā)能力與軟件項目管理能力具有重要的意義。,課程主要內(nèi)容,本課程主要介紹軟件的基本要領(lǐng)和軟件工程的目標(biāo),通過對傳統(tǒng)的面向過程的軟件開發(fā)方法和面向?qū)ο蟮能浖_發(fā)方法的介紹,使學(xué)生掌握開發(fā)高質(zhì)量軟件的方法;通過對軟件開發(fā)過程和過程管理技術(shù)的學(xué)習(xí),使學(xué)生了解如何進(jìn)行軟件度量和管理,怎樣進(jìn)行質(zhì)量保證活動,從而有效地策劃和管理軟件開發(fā)活動。,軟件工程課程與其它軟件專業(yè)課的區(qū)別,立足于系統(tǒng)的整體 講授系統(tǒng)分析、系統(tǒng)設(shè)計、測試及維護(hù)的理論和方法 構(gòu)筑一個軟件系統(tǒng),實現(xiàn)軟
2、件開發(fā)全過程,1.1 軟件,一、軟件 “軟件”一詞最初是在1960年出現(xiàn)的,目前還沒有一個公認(rèn)的定義。在某些文獻(xiàn)里定義軟件為: 軟件 程序 + 數(shù)據(jù) + 文檔,6,軟件的定義: 軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關(guān)數(shù)據(jù)(data)及其說明文檔(document)。 軟件由計算機程序、數(shù)據(jù)及文檔組成。,*注: (1)在運行中提供所希望的功能和性能的指令集(即程序) (2)使程序能夠正確運行的數(shù)據(jù)結(jié)構(gòu) (3)是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料。,二、軟件的特點:,軟件是一種邏輯實體,而不是具體的物理實體。因而它具
3、有抽象性。 軟件的生產(chǎn)與硬件不同,它沒有明顯的制造過程。,(3)在軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題。所以軟件的維護(hù)比硬件的維護(hù)要復(fù)雜得多,與硬件的維修有著本質(zhì)的差別。,(4) 軟件的開發(fā)和運行常常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性。 (5) 軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式。 (6) 軟件本身是復(fù)雜的。 (7) 軟件成本相當(dāng)昂貴。 (8) 相當(dāng)多的軟件工作涉及到社會因素。,10,軟件生產(chǎn)的發(fā)展,程序設(shè)計時代,程序系統(tǒng)時代,軟件工程時代,時間,19461956,19561968,1968至今,生產(chǎn)方式,個體手工勞動,作坊式小集團(tuán)合作,工程化的生
4、產(chǎn),使用工具,機器、匯編語言,高級語言,開發(fā)工具,開發(fā)方法,個人編程技巧,個人編程技巧,開始提出結(jié)構(gòu)化方法,使用數(shù)據(jù)庫、網(wǎng)絡(luò)、分布式、面向?qū)ο蠹夹g(shù)等,硬件特征,價格貴,存儲容量小,運行可靠性差,速度、容量及工作可靠性明顯提高,價格降低,向超高速、大容量、微型化以及網(wǎng)絡(luò)化方向發(fā)展,軟件特征,只有程序設(shè)計概念,不重視程序設(shè)計方法,程序員數(shù)量猛增,但開發(fā)人員素質(zhì)差,開發(fā)技術(shù)沒有新突破。軟件危機產(chǎn)生。,開發(fā)技術(shù)有很大進(jìn)步,但沒有突破性進(jìn)展,沒有完全擺脫軟件危機。,等于程序加技術(shù)文檔,完整定義,等于程序,軟件定義,從軟件發(fā)展的三個時期及其特點的對比,可以看出軟件發(fā)展最根本的變化體現(xiàn)在:,人們改變了對軟件
5、的看法 軟件的需求是軟件發(fā)展的動力 軟件工作的范圍從只考慮程序的編寫擴展到整個軟件生存周期,12,軟件種類可以從六個方面進(jìn)行劃分: 按功能分類 應(yīng)用軟件工程和科學(xué)計算軟件、嵌入式軟件、計算機輔助設(shè)計制造(CADCAM)軟件、系統(tǒng)仿真軟件、人工智能軟件等 。 系統(tǒng)軟件操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、設(shè)備驅(qū)動程序以及通信處理程序等。它是計算機系統(tǒng)必不可少的一個組成部分。 支撐軟件支持軟件設(shè)計的圖形軟件包,支持軟件實現(xiàn)的編輯程序、預(yù)編譯程序等。它是協(xié)助用戶開發(fā)軟件的工具性軟件,1.1.2軟件的分類,13,按規(guī)模分類 按工作方式分類 分時軟件 實時軟件 交互式軟件 批處理式軟件,14,按服務(wù)對象分類 項目軟
6、件也稱定制軟件,是受某個特定客戶(或少數(shù)客戶)的委托,由一個或多個軟件開發(fā)機構(gòu)在合同的約束下開發(fā)出來的軟件。例如軍用防空指揮系統(tǒng)、衛(wèi)星控制系統(tǒng)。 產(chǎn)品軟件是由軟件開發(fā)機構(gòu)開發(fā)出來直接提供給市場,或是為千百個用戶服務(wù)的軟件。例如,文字處理軟件、文本處理軟件、財務(wù)處理軟件、人事管理軟件等。 按使用頻度分類 一次性使用軟件 頻繁使用軟件 按失效影響分類 高可靠性軟件 一般可靠性軟件 每一類軟件在管理方面要求程度不同。,15,1. 軟件危機 軟件危機指的是軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題。 軟件危機包含以下兩方面的問題:如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟
7、件。,1.1.3 軟件危機,16,美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果。,1995年SEI統(tǒng)計,美國共取消了810億美元的商業(yè)軟件項目,其中31的項目未做完就被取消,53的軟件項目進(jìn)度通常要延長50%的時間,只有9的軟件項目能夠及時交付并且費用也控制在預(yù)算之內(nèi)。,1962年7月22日美國一個計劃飛往金星的飛船水手1號在升空290秒之后墜毀。經(jīng)調(diào)查發(fā)現(xiàn),地面控制計算機中一段運行程序執(zhí)行
8、了類似這樣的代碼:If not 雷達(dá)發(fā)現(xiàn)火箭 then 不調(diào)整火箭的飛行路線。然而程序員一個不小心漏掉了not,導(dǎo)致了這些事故的發(fā)生,17,2000年TechRepublic公司發(fā)表了有關(guān)IT項目的調(diào)查結(jié)果。該調(diào)查是以北美的1375個IT專家為對象實施問卷調(diào)查進(jìn)行的。根據(jù)此調(diào)查,IT項目中有40%失敗,這些項目的平均成本每年花費100萬美元。,18,軟件危機的表現(xiàn) 開發(fā)成本難以控制,進(jìn)度不可預(yù)計; 軟件系統(tǒng)的質(zhì)量和可靠性很差,難以滿意; 軟件文檔相當(dāng)缺乏,軟件系統(tǒng)不可維護(hù); 軟件開發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應(yīng)求。 軟件產(chǎn)品成本十分昂貴。,軟件危機產(chǎn)生的原因 1軟件本身的特點: - 軟件是一種邏
9、輯實體,而不是具體的物理實體,具有高度的抽象性; - 軟件是一個邏輯上復(fù)雜而規(guī)模上龐大的系統(tǒng),涉及技術(shù)、管理等多方面的問題; - 軟件的生產(chǎn)方式與硬件明顯不同:產(chǎn)品的質(zhì)量控制在設(shè)計和制造階段的不同;產(chǎn)品的生產(chǎn)方式不同;設(shè)計和制造階段的資金和人力投入、 技術(shù)復(fù)雜度不同; - 軟件的運行和維護(hù)階段,沒有傳統(tǒng)意義上的機械磨損、老化問題。 - 軟件與硬件有關(guān),對軟件有可移植性的要求。 - 軟件工作涉及許多社會因素。 2對軟件開發(fā)與維護(hù)存在許多錯誤認(rèn)識和做法:忽視軟件需求分析的重要性;對軟件與程序的概念不清;輕視軟件維護(hù)。 3軟件開發(fā)與維護(hù)的方法不正確:對系統(tǒng)需求沒有清楚和準(zhǔn)確的認(rèn)識就進(jìn)入開發(fā)階段, 忽
10、視對軟件開發(fā)過程的管理;,19,軟件的定義(Boehm):軟件是程序以及開發(fā)、使用和維護(hù)程序需要的所有文檔。,早,中,晚,引入同一變動付出的代價隨時間變化的趨勢,改正一個問題的估計費用(美元),改正一個問題的估計工作量(人天),20,200,1000,2000,0.05,0.5,2.5,5.0,需求分析,概要設(shè)計,詳細(xì)設(shè)計,編碼,集成測試,系統(tǒng)測試,現(xiàn)場,Bell 實驗室統(tǒng)計結(jié)果(US),軟件產(chǎn)品需要分階段的定義、設(shè)計和開發(fā),嚴(yán)格的產(chǎn)品質(zhì)量控制,完整的文檔記錄。,50,60,70,80,90,硬件,軟件,20,解決軟件危機的途徑 將軟件開發(fā)看成是一種組織嚴(yán)密、管理嚴(yán)格、各類人員協(xié)同配合共同完成
11、的工程項目。 研究和推廣成功的軟件開發(fā)技術(shù)和方法。 開發(fā)和使用好的軟件工具。 基本概念: 軟件生命周期:軟件所經(jīng)歷的定義、開發(fā)、使用和維護(hù)直到廢棄所經(jīng)歷的時期。 程序設(shè)計環(huán)境:源程序編輯,編譯或解釋,鏈接,調(diào)試和運行工具的集合。 軟件工程環(huán)境:軟件定義,設(shè)計和實現(xiàn),測試和維護(hù)等各個階段所使用的軟件工具的集合。,21,1.2.1軟件工程定義 研究如何應(yīng)用一些科學(xué)理論和工程上的技術(shù)來指導(dǎo)軟件的開發(fā),用較少的投資獲得高質(zhì)量的軟件的一門學(xué)科。,1.2軟件工程,22,軟件工程的兩個典型定義: 1968年在第一屆NATO會議上曾經(jīng)給出了軟件工程的一個早期定義:“軟件工程就是為了經(jīng)濟地獲得可靠的且能在實際機
12、器上有效地運行的軟件,而建立和使用完善的工程原理?!边@個定義不僅指出了軟件工程的目標(biāo)是經(jīng)濟地開發(fā)出高質(zhì)量的軟件,而且強調(diào)了軟件工程是一門工程學(xué)科,它應(yīng)該建立并使用完善的工程原理。 1993年IEEE進(jìn)一步給出了一個更全面更具體的定義:“軟件工程是: 把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運行和維護(hù)過程,也就是把工程應(yīng)用于軟件; 研究中提到的途徑?!?23,軟件工程性質(zhì):涉及計算機科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等領(lǐng)域,著重于如何建造一個軟件系統(tǒng)。用工程科學(xué)中的觀點來進(jìn)行費用估算、制定進(jìn)度、制定計劃和方案。用管理科學(xué)中的方法和原理進(jìn)行軟件生產(chǎn)的管理。用數(shù)學(xué)的方法建立軟件開發(fā)中的各種模型和各
13、種算法,如可靠性模型,說明用戶需求的形式化模型等。 軟件工程三要素:方法、工具和過程。,24,軟件方法,是完成軟件開發(fā)的各項任務(wù)的技術(shù)方法,回答“如何做”的問題;工具是為方法的運用提供自動的或半自動的軟件支撐環(huán)境;過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。 傳統(tǒng)方法學(xué) 面向?qū)ο蠓椒▽W(xué),25,需要解決的問題:軟件成本、軟件可靠性、軟件維護(hù)、軟件生產(chǎn)率和軟件復(fù)用。 基本內(nèi)容:包括理論、結(jié)構(gòu)、方法、工具、環(huán)境與規(guī)范等 目標(biāo):以較少的投資獲得易維護(hù)、易理解、可靠和高效率的軟件產(chǎn)品。 原則:即分解、抽象和信息隱蔽、一致性和確定性 原理:工程化和系統(tǒng)化。,軟件
14、工程框架,27,ISO 9000定義:軟件過程是把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動。 從軟件開發(fā)的觀點看,它就是使用適當(dāng)?shù)馁Y源(包括人員、硬軟件工具、時間等),為開發(fā)軟件進(jìn)行的一組開發(fā)活動,在過程結(jié)束時將輸入(用戶要求)轉(zhuǎn)化為輸出(軟件產(chǎn)品)。,1.2.2軟件過程,軟件工程過程包含四種基本的過程活動: Plan 軟件規(guī)格說明:規(guī)定軟件的功能及其運行的限制 Do 軟件開發(fā):產(chǎn)生滿足規(guī)格說明的軟件 Check 軟件確認(rèn):確認(rèn)軟件能夠完成客戶提出的要求 Action 軟件演進(jìn):為滿足客戶的變更要求,軟件必須在使用的過程中演進(jìn),29,過程元素之間的關(guān)系,30,標(biāo)準(zhǔn)軟件過程體系結(jié)構(gòu)圖,31,詳細(xì)
15、的軟件過程層次體系結(jié)構(gòu),32,軟件過程模型,*注:軟件過程模型即為下章的軟件開發(fā)模型,具體模型下次課詳細(xì)介紹,33,【例】若要開發(fā)一個軟件系統(tǒng)(如圖書館信息系統(tǒng)),為了完成這項任務(wù),首先要選擇軟件開發(fā)模型,確定開發(fā)方法、準(zhǔn)備開發(fā)工具、設(shè)計開發(fā)環(huán)境和運行環(huán)境,然后進(jìn)行需求分析、設(shè)計、編程、測試、試運行、正式運行、驗收和交付,最后是系統(tǒng)維護(hù)或系統(tǒng)升級換代。這樣就按照所選擇的開發(fā)模型,走完了軟件的一個生命周期,這一系列的軟件開發(fā)過程和管理過程,就是軟件工程。,三、軟件工程的基本原理 1968年,在聯(lián)邦德國加爾密斯,北大西洋公約組織(NATO),召開的有關(guān)計算機軟件會議上正式“軟件工程”術(shù)語。 目前有
16、100多條關(guān)于軟件工程的準(zhǔn)則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。,35,軟件工程的基本原理有: 按軟件生存期分階段制定計劃并認(rèn)真實施; 堅持進(jìn)行階段評審; 堅持嚴(yán)格的產(chǎn)品控制; 使用現(xiàn)代程序設(shè)計技術(shù); 明確責(zé)任,使得工作結(jié)果能夠得到清楚的審查; 用人少而精;不斷改進(jìn)開發(fā)過程。 承認(rèn)不斷改進(jìn)軟件工程實踐的必要性,不僅主動采納新技術(shù),還要注意總結(jié)經(jīng)驗 “二八”定律,一般認(rèn)為完成了實際上只完成了,的問題存在在的程序中等。,理解軟件工程的基本原理,強調(diào)使用生存周期方法學(xué): 就是從時間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生存的漫長周期依次劃分為若干階段,每個階段有相對獨立的任務(wù),然后逐步完成每個階段的任務(wù)。,理解軟件工程的基本原理(續(xù)),強調(diào)使用結(jié)構(gòu)分析與結(jié)構(gòu)設(shè)計任務(wù): 在軟件生存周期的每個階段都采用學(xué)的管理技術(shù)和良好的技術(shù)方法。每個階段結(jié)束之前都從技術(shù)和管理兩個角度進(jìn)行嚴(yán)格的審查。,四、軟件工程的目標(biāo)、框架及原則,1、 軟件工程的目標(biāo)可概括為“生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎ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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 40644-2021杜仲葉提取物中京尼平苷酸的檢測 高效液相色譜法》專題研究報告
- 《寵物鑒賞》課件-犬的外貌特征
- 2026年徐州幼兒師范高等??茖W(xué)校單招綜合素質(zhì)考試題庫及參考答案詳解1套
- 《正常人體功能》課件-酶促反應(yīng)的特點及影響因素
- 《幼兒文學(xué)》課件-2.1兒歌概說
- 噪聲檢測服務(wù)合同
- 中醫(yī)艾灸技師(初級)考試試卷及答案
- 2025年涂覆材料項目建議書
- AIGC時代下智能家電革新構(gòu)建“智慧家庭”新篇章-海爾洗護(hù)AIGC落地的最佳實踐
- 2025年煉油、化工生產(chǎn)專用設(shè)備合作協(xié)議書
- 學(xué)堂在線 臨床中成藥應(yīng)用 章節(jié)測試答案
- 物流協(xié)會管理辦法
- 跑步健康課件圖片
- 醫(yī)用耗材管理辦法原文
- 高州市緬茄杯數(shù)學(xué)試卷
- 傳承紅色基因鑄就黨紀(jì)之魂建黨104周年七一黨課
- 詩詞大會搶答題庫及答案
- 立式油罐知識培訓(xùn)課件
- 口腔健康科普指南
- 2025年《智能客戶服務(wù)實務(wù)》課程標(biāo)準(zhǔn)
- 公司便民雨傘管理制度
評論
0/150
提交評論