版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1軟件工程技術基礎
——流程與方法第一章軟件工程概述北京郵電大學計算機學院蘆效峰23掌握一門以上程序開發(fā)語言掌握編程技巧(數(shù)據(jù)結(jié)構(gòu)、算法)掌握軟件開發(fā)方法論掌握專業(yè)知識如果只能選擇一個,你會怎么選擇?計算機相關專業(yè)學生應具備的素質(zhì)《軟件工程技術基礎》學習目的
掌握軟件開發(fā)方法論體驗軟件工程各階段的主要工作,特別注意吸取教訓;學會與他人合作,培養(yǎng)團隊精神。成為一名項目經(jīng)理/產(chǎn)品經(jīng)理的必修課4授課內(nèi)容軟件工程概述可行性研究需求分析(UML)概要設計(UML)詳細設計人機交互編碼軟件測試軟件維護5主要學習內(nèi)容:軟件軟件工程軟件生存周期常用軟件開發(fā)過程模型軟件開發(fā)方法簡述軟件文檔671軟件
1.1軟件的概念及特點從1946年第一臺計算機誕生,計算機已經(jīng)進入各個領域、各個行業(yè),進入每個家庭,成為現(xiàn)代社會必不可少的工具。計算機強大功能主要依賴于計算機軟件8計算機程序計算機的工作是用程序、軟件來控制的IEEE定義:軟件是計算機程序、處理和與計算機系統(tǒng)運行相關的文檔和數(shù)據(jù)。程序是按事先設計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是程序運行的基礎和操作的對象文檔是與程序開發(fā),維護和使用有關的圖文材料2.軟件的特點軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性在軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題。但存在退化問題。軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程,而是研制。是程序員腦力勞動的結(jié)果。
這是好還是不好?9可變性,軟件在生產(chǎn)過程中甚至在投入運行之后,也還可以再改變。軟件必須和運行軟件的硬件保持一致(當前這個特點變的突出了?。┸浖倪\行受計算機系統(tǒng)的影響軟件一旦研制開發(fā)成功,其生產(chǎn)過程就變成復制過程。10軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式。軟件成本相當昂貴,軟件開發(fā)需要投入大量的、高強度的腦力勞動,人員成本很高,開發(fā)人員的工資大于運維等部門。
兩面性原因1:軟件本身是復雜的實際問題的復雜性程序邏輯結(jié)構(gòu)的復雜性原因2:人際關系等非技術原因更復雜軟件成本超過硬件11軟件開發(fā)成本昂貴軟件的分類1.按軟件的功能進行劃分:系統(tǒng)軟件支持軟件應用軟件13軟件的分類
系統(tǒng)軟件控制和協(xié)調(diào)計算機及外部設備,支持應用軟件開發(fā)和運行的系統(tǒng)
操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設備驅(qū)動程序通信處理程序等14
支持軟件支撐各種軟件的開發(fā)與維護的軟件,又稱為軟件開發(fā)環(huán)境文本編輯程序文件格式化程序程序庫系統(tǒng)支持需求分析、設計、實現(xiàn)、測試和支持管理的軟件15
應用軟件滿足用戶不同領域、不同問題的應用
商業(yè)數(shù)據(jù)處理軟件工程與科學計算軟件計算機輔助設計/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務管理、辦公自動化軟件計算機輔助教學軟件162.基于軟件規(guī)模進行劃分類別參加人員數(shù)
研制期限源程序行數(shù)
微型
1 1~4周0.5k小型
1 1~6月1k~2k中型
2~5 1~2年5k~50k大型
5~20 2~3年50k~100k甚大型
100~10004~5年1M(=1000k)極大型
2000~50005~10年1M~10M 173.基于軟件工作方式劃分:
實時處理軟件分時軟件交互式軟件批處理軟件18按軟件服務對象的范圍劃分:
項目軟件產(chǎn)品軟件按使用的頻度進行劃分:
一次使用頻繁使用按軟件失效的影響進行劃分:
高可靠性軟件一般可靠性軟件19軟件的種類如此眾多,軟件的功能這么強大,軟件是如何發(fā)展起來的呢?從最初的軟件到現(xiàn)在的巨型系統(tǒng)軟件,軟件的發(fā)展是不是一帆風順呢?203軟件的發(fā)展第一階段,程序設計階段,從1946年到20世紀60年代初。第二階段,程序系統(tǒng)階段,從20世紀60年代初到20世紀70年代初。程序的規(guī)模已經(jīng)發(fā)展的很大,需要多人分工協(xié)作,小組模式。第三階段,軟件工程階段,從20世紀70年代中期至80年代中期。在這個階段,軟件工程師把工程化的思想加入到軟件的開發(fā)過程中。第四階段,面向?qū)ο箅A段,80年代中期至今21軟件神化20世紀60年代以前,計算機剛剛投入實際使用,軟件設計往往只是為了一個特定的應用而在指定的計算機上設計,基本上是個人設計、個人使用。60年代中期,大容量、高速度計算機的出現(xiàn),使計算機的應用范圍迅速擴大,軟件開發(fā)急劇增長。高級語言開始出現(xiàn);操作系統(tǒng)的發(fā)展引起了計算機應用方式的變化。軟件系統(tǒng)的規(guī)模越來越大,復雜程度越來越高,軟件可靠性問題也越來越突出。原來的個人設計、個人使用的方式不再能滿足要求,在計算機軟件的開發(fā)和維護過程中遇到的一系列嚴重的問題。2223
1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序:
DO5I=1,3
誤寫為:DO5I=1.
3
1967年蘇聯(lián)“聯(lián)盟一號”載人宇宙飛船在返航時,由于軟件忽略一個小數(shù)點,在進入大氣層時因打不開降落傘而燒毀。
IBM公司的OS/360,共約100萬條指令,花費了5000個人年;經(jīng)費達數(shù)億美圓,而結(jié)果卻令人沮喪,錯誤多達2000個以上,系統(tǒng)根本無法正常運行。OS/360系統(tǒng)的負責人Brooks這樣描述開發(fā)過程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運?!?4軟件危機?。、佘浖_發(fā)費用和進度失控。費用超支、進度拖延的情況屢屢發(fā)生。②軟件的可靠性差。盡管耗費了大量的人力物力,而系統(tǒng)的正確性卻越來越難以保證,出錯率大大增加,造成的損失驚人。③生產(chǎn)出來的軟件難以維護。很多程序缺乏相應的文檔資料,程序中的錯誤難以定位,難以改正,有時改正了已有的錯誤又引入新的錯誤④用戶對“已完成”的系統(tǒng)不滿意現(xiàn)象經(jīng)常發(fā)生。2560年代后期軟件開發(fā)出現(xiàn)的問題26
在軟件開發(fā)和維護的過程中存在這么多嚴重問題,一方面與軟件本身的特點有關,另一方面也和軟件開發(fā)與維護的方法不正確有關。
1、軟件不同于硬件:它是計算機系統(tǒng)中的邏輯部件,在寫出程序代碼并在計算機上運行之前,軟件開發(fā)過程的進展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評價,因此管理和控制軟件開發(fā)過程相當困難。
2、軟件在運行過程中不會因使用時間過長而被用壞,如果運行中發(fā)現(xiàn)錯誤,絕不會是使用造成的,一定是遇到了一個在開發(fā)時期引入并且在測試階段沒能檢測出來的故障,因此軟件維護通常意味著改正或修改原來的設計。產(chǎn)生軟件危機的原因分析:軟件的特點27
3、軟件不同于一般程序:規(guī)模龐大,必須有嚴格而科學的管理。
4、軟件專業(yè)人員對軟件開發(fā)和維護有不少的糊涂觀念,在實踐過程中或多或少地采用了錯誤的方法和技術,忽視軟件需求分析的重要性,認為開發(fā)軟件就是寫程序并使之運行,輕視軟件維護,這可能是軟件危機的主要原因。
硬件/軟件產(chǎn)品失效率曲線磨合調(diào)整磨損用壞時間失效率修改點實際曲線時間失效率理想曲線軟件產(chǎn)品硬件產(chǎn)品2852002020001000需求分析結(jié)構(gòu)設計詳細設計編碼集成測試系統(tǒng)測試現(xiàn)場改正一個問題的估算費用/美元改正一個問題的估算工作量/人日0.050.52.5改正一個問題需付出的代價代價早期中期晚期時間高中低變更代價隨時間變化的趨勢軟件危機的原因(1)沒有統(tǒng)一的、規(guī)范的方法論的指導。
文件資料不全,忽視交流,缺乏方法論的指導(2)忽視軟件開發(fā)前期的需求分析。
編程越早,需求分析不充分,完成時間越長(3)忽視軟件文檔也是造成開發(fā)效率低下的原因。
對軟件開發(fā)、維護、用戶都很重要(4)忽視測試階段的工作,或不負責任的測試員,提交用戶的軟件質(zhì)量差。
“錯誤是不可避免的”,該如何理解這句話?(5)輕視軟件的維護。(6)開發(fā)計劃不合理,缺乏經(jīng)驗和數(shù)據(jù)積累。29301、軟件開發(fā)應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。2、必須充分吸收和借鑒人類長期以來從事各種工程項目所積累的行之有效的原理、概念、技術和方法,特別是要吸取幾十年來從事計算機硬件研究和開發(fā)的經(jīng)驗教訓。3、應該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功的技術和方法。4、應該開發(fā)和使用更好的軟件工具。
2.解決軟件危機的途徑達成共識總之,為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。
技術措施管理措施按工程化的原則和方法組織軟件開發(fā)工作是有效的,是擺脫軟件危機的一個主要出路。軟件工程正是從管理和技術兩方面研究如何更好地開發(fā)和維護計算機軟件的學科。31321968年北大西洋公約組織的計算機科學家在聯(lián)邦德國召開國際會議,第一次討論軟件危機問題,并正式提出“軟件工程”一詞,從此一門新興的工程學科——軟件工程學——為研究和克服軟件危機應運而生。
2軟件工程33
1983年IEEE給軟件工程的定義:“軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法?!睆娬{(diào)“系統(tǒng)方法”不是“個人技巧”。專家觀點:
Fairly認為:“軟件工程學是為了在成本限額以內(nèi)按時完成開發(fā)和修復軟件產(chǎn)品所需要的系統(tǒng)生產(chǎn)和維護技術及管理學科”。強調(diào)“成本限額以內(nèi)”及“技術和管理兩個方面”。
FritzBauer認為:“軟件工程是為了經(jīng)濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用的完善的工程化原則”。強調(diào)“經(jīng)濟地開發(fā)出高質(zhì)量的軟件,應建立和使用的完善的工程化原則”。2.1軟件工程的定義和內(nèi)容34
1993年IEEE進一步給出了一個更全面的定義: 軟件工程是:(1)把系統(tǒng)化的、規(guī)范的、可度量的途徑應用于軟件開發(fā)、運行和維護的過程,也就是把工程化應用于軟件中;(2)研究(1)中提到的途徑。
352004年由IEEE/ACM聯(lián)合發(fā)布的SoftwareEngineering2004報告強調(diào)了對軟件工程的新定義,即軟件工程是:以系統(tǒng)的、學科的、定量的途徑,把工程應用于軟件的開發(fā)、運營和維護;同時,開展對上述過程中各種方法和途徑的研究。36
軟件工程是指導計算機軟件開發(fā)和維護的工程學科.采用工程的概念、原理、技術和方法來開發(fā)和維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程.工具方法過程
質(zhì)量保證圖1-1軟件工程層次圖軟件工程是一種層次化的技術,如圖1-1所示。和其他工程方法一樣,軟件工程是以質(zhì)量為關注焦點,以相關的現(xiàn)代化管理為理念。軟件工程的基礎是過程層。軟件工程的過程是為獲得軟件產(chǎn)品,在軟件工具支持下由軟件人員完成的一系列軟件工程的活動,貫穿于軟件開發(fā)的各個環(huán)節(jié)。它定義了方法使用的順序、要求交付的文檔資料,是軟件開發(fā)各個階段完成的標志。軟件工程的內(nèi)容
如何做?軟件支撐環(huán)境37軟件工程的目標付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護費用;能按時完成開發(fā)工作,及時交付使用。38目標之間的關系392.2工程化思想到底什么是工程化呢?類比我們較熟悉的建筑工程,蓋一個大樓IEEE定義:工程化是把系統(tǒng)的、受訓到、可以計量的方法應用到結(jié)構(gòu)、機械、產(chǎn)品、系統(tǒng)或處理過程。軟件開發(fā)工程化的目標是通過規(guī)范軟件開發(fā)的步驟和每一步的要求,使軟件開發(fā)像在流水線上生產(chǎn)機械零件一樣402.3軟件工程的基本原理1.用分階段的生存
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科貿(mào)職業(yè)學院《物聯(lián)網(wǎng)定位技術》2023-2024學年第一學期期末試卷
- 廣東技術師范大學《能源工程與管理》2023-2024學年第一學期期末試卷
- 廣東海洋大學《臨床醫(yī)學基礎》2023-2024學年第一學期期末試卷
- 廣東工商職業(yè)技術大學《教師素質(zhì)》2023-2024學年第一學期期末試卷
- 廣東第二師范學院《食品儀器分析原子吸收測定水中鈣(標準曲線法)》2023-2024學年第一學期期末試卷
- 廣東潮州衛(wèi)生健康職業(yè)學院《廣播電視敘事學》2023-2024學年第一學期期末試卷
- OEE培訓課件教學課件
- 食品安全班會課件
- 《高星級酒店操作規(guī)》課件
- 廣東碧桂園職業(yè)學院《商務英語視聽說(4)》2023-2024學年第一學期期末試卷
- 設備維修轉(zhuǎn)正述職報告
- 市技能大師工作室建設方案
- 游戲發(fā)行計劃書
- 2023通信中級傳輸與接入(有線)實務知識點大匯總
- 半導體自動測試設備(ATE)全球市場、份額、市場規(guī)模、趨勢、行業(yè)分析報告2024-2030年
- 工程熱力學英文雙語版
- 領導干部必須堅守廉潔底線課件
- 礦山三合一報告
- DRG付費常見九大問題答疑
- 中科院2022年物理化學(甲)考研真題(含答案)
- 廣東省汕尾市2023-2024學年高一上學期期末教學質(zhì)量監(jiān)測化學試卷(含答案解析)
評論
0/150
提交評論