版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟件工程主講主講:張紅斌張紅斌Email: 使用教材:軟件工程(江西高校出版社)使用教材:軟件工程(江西高校出版社)參考教材:軟件工程導(dǎo)論(第五版)參考教材:軟件工程導(dǎo)論(第五版)清華大學(xué)出版社清華大學(xué)出版社八十年代初科學(xué)家的預(yù)言八十年代初科學(xué)家的預(yù)言lOsborne 1979 將迎來將迎來” 新的工業(yè)革命新的工業(yè)革命”lToffler 1980 微電子的發(fā)展是人類歷史上的微電子的發(fā)展是人類歷史上的”第三次浪潮第三次浪潮”l80年代初 美國商業(yè)周刊雜志在頭版刊登大標(biāo)題:美國商業(yè)周刊雜志在頭版刊登大標(biāo)題: “軟件:新的驅(qū)動力軟件:新的驅(qū)動力”! 當(dāng)時人們還沒有意識到他們的預(yù)見是多么的正確。當(dāng)時人
2、們還沒有意識到他們的預(yù)見是多么的正確。八十年代初科學(xué)家的預(yù)言八十年代初科學(xué)家的預(yù)言lNaisbitt 1982 人類社會將人類社會將“從工業(yè)社會向信息社會轉(zhuǎn)變從工業(yè)社會向信息社會轉(zhuǎn)變”lFeigenbaum 1983 計(jì)算機(jī)控制的信息和知識將成為計(jì)算機(jī)控制的信息和知識將成為20世紀(jì)表現(xiàn)能世紀(jì)表現(xiàn)能力的焦點(diǎn)力的焦點(diǎn)lStoll 1989 網(wǎng)絡(luò)和軟件產(chǎn)生的網(wǎng)絡(luò)和軟件產(chǎn)生的“電子社會電子社會”是實(shí)現(xiàn)全球是實(shí)現(xiàn)全球知識交流的關(guān)鍵。知識交流的關(guān)鍵。二十年后的現(xiàn)實(shí)二十年后的現(xiàn)實(shí) 1. 計(jì)算機(jī)的發(fā)展與普及計(jì)算機(jī)的發(fā)展與普及 2. 計(jì)算機(jī)軟件的發(fā)展與普及計(jì)算機(jī)軟件的發(fā)展與普及 3. 計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展與普及計(jì)算
3、機(jī)網(wǎng)絡(luò)的發(fā)展與普及觀察與思考觀察與思考因?yàn)槠占傲擞?jì)算機(jī)、軟件和網(wǎng)絡(luò)因?yàn)槠占傲擞?jì)算機(jī)、軟件和網(wǎng)絡(luò)迎來了信息化社會和知識經(jīng)濟(jì)。迎來了信息化社會和知識經(jīng)濟(jì)。軟件工程的重要性(軟件工程的重要性(為什么學(xué)為什么學(xué)? )l歷史角度歷史角度l社會角度社會角度l個人角度個人角度歷史角度歷史角度發(fā)展的必然發(fā)展的必然軟件危機(jī)軟件危機(jī)l 六十年代以來,隨著計(jì)算機(jī)應(yīng)用需求的驅(qū)動,系統(tǒng)軟六十年代以來,隨著計(jì)算機(jī)應(yīng)用需求的驅(qū)動,系統(tǒng)軟件和應(yīng)用軟件有很大的發(fā)展,如操作系統(tǒng),編譯系統(tǒng)件和應(yīng)用軟件有很大的發(fā)展,如操作系統(tǒng),編譯系統(tǒng)和大型應(yīng)用軟件等。由于軟件生產(chǎn)的復(fù)雜性和高成本,和大型應(yīng)用軟件等。由于軟件生產(chǎn)的復(fù)雜性和高成本,使
4、大型軟件的生產(chǎn)出現(xiàn)了很大的困難,即出現(xiàn)使大型軟件的生產(chǎn)出現(xiàn)了很大的困難,即出現(xiàn)軟件危軟件危機(jī)機(jī)。 l軟件工程正是為克服軟件危機(jī)而提出的一種概念,并軟件工程正是為克服軟件危機(jī)而提出的一種概念,并在實(shí)踐中不斷地探索它的原理,技術(shù)和方法。在此過在實(shí)踐中不斷地探索它的原理,技術(shù)和方法。在此過程中,人們研究和借鑒了工程學(xué)的某些原理和方法,程中,人們研究和借鑒了工程學(xué)的某些原理和方法,并形成了一門新的學(xué)科并形成了一門新的學(xué)科軟件工程學(xué)。軟件工程學(xué)。 社會角度社會角度 團(tuán)隊(duì)協(xié)作的時代團(tuán)隊(duì)協(xié)作的時代個人個人英雄主義時代的終結(jié)英雄主義時代的終結(jié)l中國的軟件英雄:吳曉軍(中國的軟件英雄:吳曉軍(2.13)、史玉柱
5、)、史玉柱(巨人漢巨人漢卡卡)、鮑岳橋(、鮑岳橋(UCDOS)、周志農(nóng))、周志農(nóng)(自然碼自然碼)、朱崇君、朱崇君(CCED)、求伯君、求伯君(WPS)、馬化騰、馬化騰(QQ)、劉旭、劉旭(瑞星瑞星)、王江民王江民(KV)、王文京、王文京(用友用友)、張小龍、張小龍(Foxmail)、丁磊、丁磊(163郵局)、洪以容(郵局)、洪以容(netants) 越來越少,越來越少,影響也越來越小。這些英雄如今不是銷聲匿跡,就是影響也越來越小。這些英雄如今不是銷聲匿跡,就是組成了自己的團(tuán)隊(duì)。組成了自己的團(tuán)隊(duì)。我們需要英雄,但是,如果只有我們需要英雄,但是,如果只有英雄,那么就只有軟件、而沒有軟件業(yè)了英雄,那
6、么就只有軟件、而沒有軟件業(yè)了。能夠支撐能夠支撐起民族軟件業(yè)的只能是靠工程化思想武裝起來的團(tuán)隊(duì)、起民族軟件業(yè)的只能是靠工程化思想武裝起來的團(tuán)隊(duì)、還要有幾只超級規(guī)模的團(tuán)隊(duì)!還要有幾只超級規(guī)模的團(tuán)隊(duì)! l 在個人英雄主義時代,對一般軟件從業(yè)者來講,會兩在個人英雄主義時代,對一般軟件從業(yè)者來講,會兩句句SQL,能寫個工資程序、打打報(bào)表就能生存,那個,能寫個工資程序、打打報(bào)表就能生存,那個時代已經(jīng)一去不復(fù)返了!時代已經(jīng)一去不復(fù)返了! 社會角度社會角度 團(tuán)隊(duì)協(xié)作的時代團(tuán)隊(duì)協(xié)作的時代個人英雄個人英雄主義時代的終結(jié)主義時代的終結(jié)l我國的軟件開發(fā)水平,單從編碼來看,我們擁有眾多我國的軟件開發(fā)水平,單從編碼來看,
7、我們擁有眾多的高水平程序員,絕不遜色于任何國家,但軟件開發(fā)的高水平程序員,絕不遜色于任何國家,但軟件開發(fā)管理水平與發(fā)達(dá)國家有很大差距,這也就是我們不能管理水平與發(fā)達(dá)國家有很大差距,這也就是我們不能開發(fā)出像開發(fā)出像Office、操作系統(tǒng)之類軟件的原因。我們從、操作系統(tǒng)之類軟件的原因。我們從單個程序員來說,能夠編寫出一流的代碼,漂亮的界單個程序員來說,能夠編寫出一流的代碼,漂亮的界面。但是卻去不能協(xié)調(diào)眾多程序員去開發(fā)一個項(xiàng)目面。但是卻去不能協(xié)調(diào)眾多程序員去開發(fā)一個項(xiàng)目(工程)軟件。在這一方面說我們(工程)軟件。在這一方面說我們中國程序員一個人中國程序員一個人是一條龍,十個人是一條蟲是一條龍,十個人
8、是一條蟲并不為過。并不為過。l 例:首都機(jī)場。印度人寫的一個模塊例:首都機(jī)場。印度人寫的一個模塊200多行,我們多行,我們程序員只用不到程序員只用不到50行,但人家的模塊同樣正確、而且行,但人家的模塊同樣正確、而且堅(jiān)固、文檔清晰易懂。技術(shù)技巧固然重要,但堅(jiān)固、文檔清晰易懂。技術(shù)技巧固然重要,但軟件開軟件開發(fā)中最大的問題已不是技術(shù)問題,而是管理問題!發(fā)中最大的問題已不是技術(shù)問題,而是管理問題! 個人角度個人角度 專業(yè)人員必備的個人素質(zhì)專業(yè)人員必備的個人素質(zhì)1) 基礎(chǔ)理論基礎(chǔ)理論:訓(xùn)練分析解決問題的能力,深層研究的工具。:訓(xùn)練分析解決問題的能力,深層研究的工具。數(shù)學(xué)分析訓(xùn)練嚴(yán)密的邏輯思維。普通物理
9、和西方哲學(xué)史數(shù)學(xué)分析訓(xùn)練嚴(yán)密的邏輯思維。普通物理和西方哲學(xué)史等教會你很多思維方式,比如:假說等教會你很多思維方式,比如:假說大膽假設(shè)、認(rèn)大膽假設(shè)、認(rèn)真求證。(真求證。(算法分析與設(shè)計(jì)算法分析與設(shè)計(jì))2) 專業(yè)理論專業(yè)理論:數(shù)據(jù)庫理論、網(wǎng)絡(luò)基礎(chǔ)、編譯原理等。:數(shù)據(jù)庫理論、網(wǎng)絡(luò)基礎(chǔ)、編譯原理等。3) 專業(yè)技術(shù)專業(yè)技術(shù):程序設(shè)計(jì)語言等。(:程序設(shè)計(jì)語言等。(很多人熱衷的很多人熱衷的)4) 工程技術(shù)工程技術(shù):軟件工程,本、研教育中:軟件工程,本、研教育中唯一唯一涉及工程規(guī)范涉及工程規(guī)范與管理的課程,它象粘合劑,技術(shù)經(jīng)過它的粘合才能形與管理的課程,它象粘合劑,技術(shù)經(jīng)過它的粘合才能形成軟件產(chǎn)品?。ǔ绍浖a(chǎn)
10、品!(很多軟件設(shè)計(jì)者忽略了很多軟件設(shè)計(jì)者忽略了)5) 外語外語。多門語言多條路。(。多門語言多條路。(外包外包)6) 表達(dá)與交流能力表達(dá)與交流能力:團(tuán)隊(duì)內(nèi)部、與客戶通訊的基本素質(zhì)。:團(tuán)隊(duì)內(nèi)部、與客戶通訊的基本素質(zhì)。7) 法律常識與職業(yè)道德法律常識與職業(yè)道德:知識產(chǎn)權(quán)保護(hù)、行業(yè)特點(diǎn)的職業(yè):知識產(chǎn)權(quán)保護(hù)、行業(yè)特點(diǎn)的職業(yè)道德。道德。 個人角度個人角度 專業(yè)人員必備的個人素質(zhì)專業(yè)人員必備的個人素質(zhì)l程序員是一個吃青春飯的行當(dāng),也是英雄出少年的行程序員是一個吃青春飯的行當(dāng),也是英雄出少年的行當(dāng),就象運(yùn)動員一樣。一個程序員,當(dāng),就象運(yùn)動員一樣。一個程序員,10年以后很少再年以后很少再只寫代碼。只寫代碼。軟
11、件工程是你從程序員到高級程序員、系軟件工程是你從程序員到高級程序員、系統(tǒng)分析員,或項(xiàng)目經(jīng)理、部門經(jīng)理、統(tǒng)分析員,或項(xiàng)目經(jīng)理、部門經(jīng)理、CTO一步步邁進(jìn)一步步邁進(jìn)必備的知識,積累起來的經(jīng)驗(yàn)也是你超越年輕人坐在必備的知識,積累起來的經(jīng)驗(yàn)也是你超越年輕人坐在更高職位的資本。(更高職位的資本。(有志向者自己創(chuàng)業(yè)有志向者自己創(chuàng)業(yè))l軟件行業(yè)分工越來越細(xì)、一個團(tuán)隊(duì)內(nèi)也有各種角色。軟件行業(yè)分工越來越細(xì)、一個團(tuán)隊(duì)內(nèi)也有各種角色。軟件工程的知識可以使你結(jié)合自己的特點(diǎn)軟件工程的知識可以使你結(jié)合自己的特點(diǎn)準(zhǔn)確定位準(zhǔn)確定位自自己的發(fā)展方向。己的發(fā)展方向。課程學(xué)習(xí)的目標(biāo)課程學(xué)習(xí)的目標(biāo)l掌握基礎(chǔ)理論掌握基礎(chǔ)理論l樹立工程
12、化思想樹立工程化思想l培養(yǎng)國際標(biāo)準(zhǔn)的意識培養(yǎng)國際標(biāo)準(zhǔn)的意識l鍛煉團(tuán)隊(duì)合作精神鍛煉團(tuán)隊(duì)合作精神l加強(qiáng)交流與動手能力加強(qiáng)交流與動手能力兩個上升兩個上升u轉(zhuǎn)變對軟件的認(rèn)識:轉(zhuǎn)變對軟件的認(rèn)識: 上升上升 程序程序 系統(tǒng)系統(tǒng)u 轉(zhuǎn)變思維定式:轉(zhuǎn)變思維定式: 上升上升 程序員程序員 系統(tǒng)工程師系統(tǒng)工程師 ( (系統(tǒng)分析員系統(tǒng)分析員) )本章要點(diǎn)本章要點(diǎn)l背景知識背景知識l什么是軟件?什么是軟件?l什么是軟件工程?什么是軟件工程?l軟件工程研究什么?軟件工程研究什么?背景知識背景知識n軟件工程是學(xué)科軟件工程是學(xué)科n軟件工程知識結(jié)構(gòu)軟件工程知識結(jié)構(gòu)n軟件工程與一般工程的差異軟件工程與一般工程的差異n開發(fā)軟件不
13、僅僅是編程開發(fā)軟件不僅僅是編程n本課程與其他課程的區(qū)別本課程與其他課程的區(qū)別軟件工程是學(xué)科軟件工程是學(xué)科n軟件工程是軟件工程是一門學(xué)科一門學(xué)科,它用,它用科學(xué)的理論指導(dǎo)標(biāo)準(zhǔn)的軟件科學(xué)的理論指導(dǎo)標(biāo)準(zhǔn)的軟件系統(tǒng)開發(fā)。(系統(tǒng)開發(fā)。(二級學(xué)科二級學(xué)科)n單純的代碼編寫是軟件工程單純的代碼編寫是軟件工程的的前身前身,它只占用軟件工程,它只占用軟件工程中很少的一段空間和時間。中很少的一段空間和時間。比較爭議的地比較爭議的地方方軟件工程是一門交叉學(xué)科軟件工程是一門交叉學(xué)科軟件工程的主要研究內(nèi)容u軟件開發(fā)技術(shù)軟件開發(fā)技術(shù): :軟件開發(fā)方法學(xué)軟件開發(fā)方法學(xué) 軟件開發(fā)過程軟件開發(fā)過程 軟件工具和軟件工程環(huán)境軟件工
14、具和軟件工程環(huán)境 u軟件工程管理軟件工程管理: :軟件管理學(xué)軟件管理學(xué) 軟件經(jīng)濟(jì)學(xué)軟件經(jīng)濟(jì)學(xué) 軟件心理軟件心理u軟件工程所包含的內(nèi)容不是一成不變的軟件工程所包含的內(nèi)容不是一成不變的, ,隨著隨著人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。應(yīng)用發(fā)展的眼光看待它。應(yīng)用發(fā)展的眼光看待它。軟件工程知識結(jié)構(gòu)軟件工程知識結(jié)構(gòu)n 軟件需求軟件需求n 軟件設(shè)計(jì)軟件設(shè)計(jì)n 軟件構(gòu)造軟件構(gòu)造n 軟件測試軟件測試n 軟件維護(hù)軟件維護(hù)n 軟件配置管理軟件配置管理n 軟件工程管理軟件工程管理n 軟件工程過程軟件工程過程n 軟件工程工具軟件工程工具和方法和方法n 軟件質(zhì)量軟件質(zhì)量軟件工程與
15、一般工程的差異軟件工程與一般工程的差異n軟件是軟件是邏輯產(chǎn)品邏輯產(chǎn)品而不是實(shí)物產(chǎn)品而不是實(shí)物產(chǎn)品n軟件的功能依賴于硬件和軟件的運(yùn)行環(huán)軟件的功能依賴于硬件和軟件的運(yùn)行環(huán)境以及人們對它的操作境以及人們對它的操作n軟件軟件設(shè)計(jì)的復(fù)雜性設(shè)計(jì)的復(fù)雜性n智力密集及智力密集及知識產(chǎn)權(quán)保護(hù)知識產(chǎn)權(quán)保護(hù)開發(fā)軟件不僅僅是編程開發(fā)軟件不僅僅是編程開發(fā)開發(fā)維護(hù)維護(hù)設(shè)計(jì)設(shè)計(jì)編寫編寫模塊測試模塊測試聯(lián)合測試聯(lián)合測試分析分析說明什么?說明什么?“軟件工程軟件工程”課程課程 與其它軟件專業(yè)課的與其它軟件專業(yè)課的區(qū)別(尤其區(qū)別(尤其是語言類課)是語言類課)(1) 立足于系統(tǒng)的整體。立足于系統(tǒng)的整體。(2) 講授講授系統(tǒng)分析、系
16、統(tǒng)設(shè)計(jì)、測試、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、測試、管理、軟件工具及維護(hù)理論和方法管理、軟件工具及維護(hù)理論和方法。(3) 實(shí)踐中了解軟件過程中的各個重要實(shí)踐中了解軟件過程中的各個重要階段。階段。(4) 以以結(jié)構(gòu)化方法結(jié)構(gòu)化方法為主,為主,面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄗ鲆粋€做一個升華升華。什么是軟件什么是軟件n軟件的發(fā)展史軟件的發(fā)展史n究竟什么是軟件究竟什么是軟件n軟件的特點(diǎn)軟件的特點(diǎn)n軟件的分類軟件的分類n軟軟 件件 危危 機(jī)機(jī)軟件的發(fā)展軟件的發(fā)展n1950-1965 沒有系統(tǒng)的軟件開發(fā)方法和管理機(jī)制、沒有系統(tǒng)的軟件開發(fā)方法和管理機(jī)制、自定義軟件、批處理、有限分布。自定義軟件、批處理、有限分布。n1965-1
17、975 產(chǎn)生人機(jī)交互的新概念、新技術(shù)軟件產(chǎn)生人機(jī)交互的新概念、新技術(shù)軟件產(chǎn)品、多用戶、實(shí)時、數(shù)據(jù)庫。產(chǎn)品、多用戶、實(shí)時、數(shù)據(jù)庫。軟件的發(fā)展軟件的發(fā)展n1973-1988 微處理器的出現(xiàn)并廣泛應(yīng)用微處理器的出現(xiàn)并廣泛應(yīng)用 分布式系統(tǒng)、嵌入智能、低成本硬件、分布式系統(tǒng)、嵌入智能、低成本硬件、消費(fèi)者的影響。消費(fèi)者的影響。n1986-2000 廣域和局域網(wǎng)絡(luò)迅速普及廣域和局域網(wǎng)絡(luò)迅速普及 強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)、專家強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)、專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡(luò)、并行計(jì)算、系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡(luò)、并行計(jì)算、網(wǎng)絡(luò)計(jì)算機(jī)。網(wǎng)絡(luò)計(jì)算機(jī)。 早期早期 第二階段第二階段 第三階段第三階段 第四
18、階段第四階段面向批處理面向批處理 多用戶多用戶 分布式系統(tǒng)分布式系統(tǒng) 強(qiáng)大的桌面系統(tǒng)強(qiáng)大的桌面系統(tǒng)有限的分布有限的分布 實(shí)時實(shí)時 嵌入嵌入“智能智能” ” 面向?qū)ο蠹济嫦驅(qū)ο蠹夹g(shù)術(shù)自定義軟件自定義軟件 數(shù)據(jù)庫數(shù)據(jù)庫 低成本硬件低成本硬件 專家系專家系統(tǒng) 軟件產(chǎn)品軟件產(chǎn)品 消費(fèi)者的影響消費(fèi)者的影響 人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò) 并行計(jì)算并行計(jì)算 網(wǎng)絡(luò)計(jì)算機(jī)網(wǎng)絡(luò)計(jì)算機(jī)195019601970198019902000軟件的發(fā)展史軟件的發(fā)展史n軟件軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,另一部分,它是包括程序,數(shù)據(jù)及其相它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。關(guān)文檔的完
19、整集合。n程序程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列令序列n數(shù)據(jù)數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)(是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)(有有教材不把它作為軟件的一部分教材不把它作為軟件的一部分)n文檔文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料料究竟什么是軟件?究竟什么是軟件?PCSource CodeDataResultDocument程序程序 = 算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)軟件的詳細(xì)描述軟件的詳細(xì)描述程序設(shè)計(jì)語言程序設(shè)計(jì)語言n面向機(jī)器面向機(jī)器 :匯編語言、機(jī)器語言等:匯編語言、機(jī)器語言等n面向過程面向過程 :Fo
20、rtran, Pascal, C等等n面向?qū)ο竺嫦驅(qū)ο?:C+, Java等等n面向問題面向問題 :結(jié)構(gòu)化查詢語言:結(jié)構(gòu)化查詢語言SQL等等軟件的詳細(xì)描述軟件的詳細(xì)描述數(shù)據(jù)數(shù)據(jù) 用程序設(shè)計(jì)語言要求的數(shù)據(jù)結(jié)構(gòu)表示用程序設(shè)計(jì)語言要求的數(shù)據(jù)結(jié)構(gòu)表示文檔文檔 規(guī)范規(guī)范 準(zhǔn)確準(zhǔn)確 清晰清晰 簡潔簡潔 無歧義無歧義 自然語言自然語言 結(jié)構(gòu)化英語結(jié)構(gòu)化英語 圖表圖表可讀可讀流行的說法:流行的說法:計(jì)算機(jī)世界的軟件計(jì)算機(jī)世界的軟件 軟件是能夠完成預(yù)定功能和性能,并對軟件是能夠完成預(yù)定功能和性能,并對相應(yīng)數(shù)據(jù)進(jìn)行加工的程序和描述程序及相應(yīng)數(shù)據(jù)進(jìn)行加工的程序和描述程序及其操作的文檔。其操作的文檔。 楊芙清院士的觀
21、點(diǎn)(數(shù)學(xué)的觀楊芙清院士的觀點(diǎn)(數(shù)學(xué)的觀點(diǎn))點(diǎn))n軟件是客觀世界中軟件是客觀世界中問題空間問題空間與與解空間解空間的具體描述的具體描述,是追求表達(dá)能力強(qiáng)、更符是追求表達(dá)能力強(qiáng)、更符合人類思維模式、具有易合人類思維模式、具有易構(gòu)造性構(gòu)造性和易和易演化性演化性的的計(jì)算模型計(jì)算模型。軟件的特點(diǎn)軟件的特點(diǎn)n軟件是一種軟件是一種邏輯實(shí)體邏輯實(shí)體,而不是具體,而不是具體的物理實(shí)體。因而它具有抽象性的物理實(shí)體。因而它具有抽象性n軟件的生產(chǎn)與硬件不同,在它的開軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中發(fā)過程中沒有明顯的制造過程沒有明顯的制造過程n在軟件的運(yùn)行和使用期間,在軟件的運(yùn)行和使用期間,沒有沒有硬硬件那樣的機(jī)
22、械磨損,件那樣的機(jī)械磨損,老化老化問題問題n軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,統(tǒng)的限制,對計(jì)算機(jī)系統(tǒng)有著不同對計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性程度的依賴性n軟件的開發(fā)至今軟件的開發(fā)至今尚未完全擺脫手工尚未完全擺脫手工藝藝的開發(fā)方式的開發(fā)方式軟件的特點(diǎn)軟件的特點(diǎn)軟件特點(diǎn)軟件特點(diǎn)n目前,追求的終端目前,追求的終端用戶編程、模型用戶編程、模型驅(qū)動開發(fā)、隨需即取驅(qū)動開發(fā)、隨需即取等技術(shù)的出現(xiàn),等技術(shù)的出現(xiàn),其目的都是使軟件開發(fā)從手工向工其目的都是使軟件開發(fā)從手工向工業(yè)化生產(chǎn)方式變革。業(yè)化生產(chǎn)方式變革。n構(gòu)件技術(shù)構(gòu)件技術(shù)是最重要的軟件技術(shù)之一。是最重要的軟件技術(shù)之一。軟
23、件本身是復(fù)雜的軟件本身是復(fù)雜的1.1.實(shí)際問題的復(fù)雜性實(shí)際問題的復(fù)雜性2.2.程序邏輯結(jié)構(gòu)的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性 3.3.軟件成本相當(dāng)昂貴軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會因素相當(dāng)多的軟件工作涉及到社會因素軟件的特點(diǎn)軟件的特點(diǎn) Windows9595有有10001000萬行代碼萬行代碼 Windows20002000有有50005000萬行代碼萬行代碼Exchange2000和和 Windows20002000開發(fā)人員結(jié)構(gòu)開發(fā)人員結(jié)構(gòu)Exchange2000Windows20002000項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理25人人約約250人人開發(fā)人員開發(fā)人員140人人約約1700人人測試人員測試人
24、員350人人約約3200人人說明什么?說明什么?軟件的分類軟件的分類n按軟件的功能進(jìn)行劃分:按軟件的功能進(jìn)行劃分:n 系統(tǒng)軟件系統(tǒng)軟件n 操作系統(tǒng)操作系統(tǒng)n 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)n 設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序n 通信處理程序等通信處理程序等軟件的分類軟件的分類軟件的分類軟件的分類n按軟件規(guī)模進(jìn)行劃分:按軟件規(guī)模進(jìn)行劃分:軟件的分類軟件的分類軟件的分類軟件的分類軟件的分類軟件的分類軟件的應(yīng)用軟件的應(yīng)用n典型的軟件比如有電子郵件,典型的軟件比如有電子郵件,嵌入式系嵌入式系統(tǒng)統(tǒng),人機(jī)界面人機(jī)界面,辦公套件辦公套件,操作系統(tǒng)操作系統(tǒng),編譯器編譯器,數(shù)據(jù)庫數(shù)據(jù)庫,游戲游戲等。等。 n各個行業(yè)幾乎都
25、有計(jì)算機(jī)軟件的應(yīng)用,各個行業(yè)幾乎都有計(jì)算機(jī)軟件的應(yīng)用,比如比如工業(yè)工業(yè),農(nóng)業(yè)農(nóng)業(yè),銀行銀行,航空航空,政府部政府部門門等。等。軟軟 件件 危危 機(jī)機(jī)n軟件軟件開發(fā)無計(jì)劃開發(fā)無計(jì)劃n軟件軟件需求不充分需求不充分n軟件軟件開發(fā)過程不規(guī)范開發(fā)過程不規(guī)范n軟件軟件產(chǎn)品無評測手段產(chǎn)品無評測手段n軟件軟件開發(fā)周期大大超過預(yù)算開發(fā)周期大大超過預(yù)算n軟件軟件開發(fā)成本嚴(yán)重超標(biāo)開發(fā)成本嚴(yán)重超標(biāo)n軟件軟件質(zhì)量難于保證質(zhì)量難于保證軟件不能滿足社會發(fā)展軟件不能滿足社會發(fā)展的需求,成為社會、經(jīng)的需求,成為社會、經(jīng)濟(jì)發(fā)展的制約因素濟(jì)發(fā)展的制約因素軟件危機(jī)代表軟件危機(jī)代表nIBM OS 360:Fred Brooks的人月神
26、的人月神話,動用話,動用1000多名程序員,經(jīng)歷數(shù)十年,多名程序員,經(jīng)歷數(shù)十年,花費(fèi)數(shù)百萬美元;花費(fèi)數(shù)百萬美元;n阿里亞娜火箭阿里亞娜火箭 :火箭導(dǎo)航的電腦軟件系統(tǒng)火箭導(dǎo)航的電腦軟件系統(tǒng)發(fā)生故障造成火箭爆炸;發(fā)生故障造成火箭爆炸;nTherac-25:一種輻射治療的機(jī)器。由于其一種輻射治療的機(jī)器。由于其軟件設(shè)計(jì)時的瑕疵軟件設(shè)計(jì)時的瑕疵, 致命地超過劑量設(shè)定導(dǎo)致命地超過劑量設(shè)定導(dǎo)致在致在1985年六月到年六月到1987年一月之間年一月之間, 六件六件已知的醫(yī)療事故中已知的醫(yī)療事故中, 患者死亡或嚴(yán)重輻射灼患者死亡或嚴(yán)重輻射灼傷傷 。什么是軟件工程什么是軟件工程n軟件工程的定義軟件工程的定義n軟件
27、工程技術(shù)的發(fā)展的里程軟件工程技術(shù)的發(fā)展的里程n我國軟件工程的發(fā)展歷程我國軟件工程的發(fā)展歷程n我國軟件產(chǎn)業(yè)存在的問題我國軟件產(chǎn)業(yè)存在的問題n軟件工程的本質(zhì)特性軟件工程的本質(zhì)特性n軟件工程的軟件工程的7條基本原理?xiàng)l基本原理軟件工程的定義軟件工程的定義美國電氣和電子工程師協(xié)會美國電氣和電子工程師協(xié)會軟件工程的定義軟件工程的定義n IEEE93 IEEE93:流行的定義:流行的定義:程序設(shè)計(jì)語言程序設(shè)計(jì)語言,數(shù)數(shù)據(jù)庫據(jù)庫,軟件開發(fā)工具軟件開發(fā)工具,系統(tǒng)平臺系統(tǒng)平臺,標(biāo)準(zhǔn)標(biāo)準(zhǔn)設(shè)計(jì)模式設(shè)計(jì)模式 楊芙清院士的觀點(diǎn)楊芙清院士的觀點(diǎn)n軟件工程是應(yīng)用軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)理論計(jì)算機(jī)科學(xué)理論與與技術(shù)以及技術(shù)以及工
28、程管理工程管理原則與方法,按原則與方法,按照照預(yù)算與進(jìn)度預(yù)算與進(jìn)度,實(shí)現(xiàn)滿足用戶要求,實(shí)現(xiàn)滿足用戶要求的的軟件產(chǎn)品的定義軟件產(chǎn)品的定義、開發(fā)開發(fā)、發(fā)布發(fā)布和和維護(hù)維護(hù)的過程,或以之為研究對象的的過程,或以之為研究對象的學(xué)科。學(xué)科。軟件工程技術(shù)的發(fā)展的里程軟件工程技術(shù)的發(fā)展的里程軟件工程技術(shù)的發(fā)展的里程軟件工程技術(shù)的發(fā)展的里程n60年代,年代,手工作坊手工作坊方式是主流;方式是主流;n70年代,年代,結(jié)構(gòu)化結(jié)構(gòu)化分析與設(shè)計(jì)方法;分析與設(shè)計(jì)方法;n80年代,開始研制年代,開始研制CASE(Computer-Aided Software Engineering)工具與環(huán)工具與環(huán)境,面向?qū)ο蠓椒ㄩ_始流
29、行;境,面向?qū)ο蠓椒ㄩ_始流行;n90年代,軟件年代,軟件復(fù)用技術(shù)復(fù)用技術(shù)與與構(gòu)件技術(shù)構(gòu)件技術(shù)受到關(guān)受到關(guān)注。注。我國軟件工程的發(fā)展歷程我國軟件工程的發(fā)展歷程我國軟件產(chǎn)業(yè)存在的問題我國軟件產(chǎn)業(yè)存在的問題n基礎(chǔ)軟件所占分額小,在產(chǎn)業(yè)中的基石基礎(chǔ)軟件所占分額小,在產(chǎn)業(yè)中的基石作用未能凸顯;作用未能凸顯;n缺乏具有國際竟?fàn)幜Φ目鐕浖髽I(yè);缺乏具有國際竟?fàn)幜Φ目鐕浖髽I(yè);n軟件人才結(jié)構(gòu)性矛盾突出;軟件人才結(jié)構(gòu)性矛盾突出;n美國軟件業(yè)占全球美國軟件業(yè)占全球40%,人才,人才240萬;萬;n日本軟件業(yè)占全球日本軟件業(yè)占全球10%,人才,人才120萬;萬;n中國軟件業(yè)占全球中國軟件業(yè)占全球5.9%,人才,
30、人才50萬;萬;軟件工程的本質(zhì)特性軟件工程的本質(zhì)特性n軟件工程關(guān)注軟件工程關(guān)注大型程序大型程序的構(gòu)造;的構(gòu)造;n軟件工程的中心課題是軟件工程的中心課題是控制復(fù)雜性控制復(fù)雜性;n軟件經(jīng)常變化;軟件經(jīng)常變化;n開發(fā)軟件的效率非常重要;開發(fā)軟件的效率非常重要;n和諧地合作和諧地合作是開發(fā)軟件的關(guān)鍵;是開發(fā)軟件的關(guān)鍵;n軟件必須軟件必須有效地支持它的用戶有效地支持它的用戶;n軟件工程中由一種文化背景的人替另一軟件工程中由一種文化背景的人替另一種文化背景的人創(chuàng)造產(chǎn)品。種文化背景的人創(chuàng)造產(chǎn)品。軟件工程的軟件工程的7條基本原理?xiàng)l基本原理n用分階段的生命周期計(jì)劃嚴(yán)格管理;用分階段的生命周期計(jì)劃嚴(yán)格管理;n堅(jiān)持
31、進(jìn)行階段評審;堅(jiān)持進(jìn)行階段評審;n實(shí)行嚴(yán)格的產(chǎn)品控制;實(shí)行嚴(yán)格的產(chǎn)品控制;n采用現(xiàn)代程序設(shè)計(jì)技術(shù);采用現(xiàn)代程序設(shè)計(jì)技術(shù);n結(jié)果應(yīng)能清楚審查;結(jié)果應(yīng)能清楚審查;n開發(fā)小組的人員應(yīng)該少而精;開發(fā)小組的人員應(yīng)該少而精;n承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性;承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性;軟件工程研究什么?軟件工程研究什么?n軟件工程方法學(xué)軟件工程方法學(xué)n軟件工程過程軟件工程過程n軟件工程工具和環(huán)境軟件工程工具和環(huán)境n軟件工程管理軟件工程管理軟件開發(fā)技術(shù)軟件開發(fā)技術(shù)軟件工程經(jīng)濟(jì)學(xué)軟件工程經(jīng)濟(jì)學(xué)和軟件管理學(xué)和軟件管理學(xué)軟件工程方法學(xué)軟件工程方法學(xué)n傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)n面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)n目前
32、流行的方法:目前流行的方法:n重量級:重量級:ISO9000,CMM和和RUPn輕量級:極限編程輕量級:極限編程(Extreme Programming XP)和敏捷流程和敏捷流程(Agile Process)強(qiáng)調(diào)以過程為中心強(qiáng)調(diào)以過程為中心強(qiáng)調(diào)以人為中心強(qiáng)調(diào)以人為中心軟件工程過程軟件工程過程-軟件生命期軟件生命期n軟件有一個孕育、誕生、成長、成軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。這個過程即熟、衰亡的生存過程。這個過程即為計(jì)算機(jī)軟件的生存期為計(jì)算機(jī)軟件的生存期n軟件生存期的六個步驟,即軟件生存期的六個步驟,即可行性可行性研究與計(jì)劃研究與計(jì)劃、需求分析需求分析、總體設(shè)計(jì)總體設(shè)計(jì)、詳
33、細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)實(shí)現(xiàn)、測試測試及及使用維護(hù)使用維護(hù)可行性研究與計(jì)劃可行性研究與計(jì)劃可行性研究與計(jì)劃可行性研究與計(jì)劃需求分析需求分析軟件設(shè)計(jì)軟件設(shè)計(jì)實(shí)實(shí) 現(xiàn)現(xiàn)測測 試試運(yùn)行維護(hù)運(yùn)行維護(hù)軟件生存期模型(軟件生存期模型(核心內(nèi)容核心內(nèi)容)n軟件生存期模型是跨越整個生存期的系軟件生存期模型是跨越整個生存期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過程、統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過程、活動和任務(wù)的活動和任務(wù)的結(jié)構(gòu)框架結(jié)構(gòu)框架n 瀑布模型瀑布模型n 演化模型演化模型n 原型模型原型模型n 螺旋模型螺旋模型n 增量模型增量模型n 噴泉模型噴泉模型缺乏靈缺乏靈活性活性可行性研究與計(jì)劃可行性研究與計(jì)劃需求分析需
34、求分析設(shè)計(jì)設(shè)計(jì)編碼編碼運(yùn)行維護(hù)運(yùn)行維護(hù)測試測試定義定義階段階段開開發(fā)發(fā)階階段段維護(hù)階段維護(hù)階段瀑布模型瀑布模型(Waterfall Model)瀑布模型開發(fā)軟件的特點(diǎn)瀑布模型開發(fā)軟件的特點(diǎn)瀑布模型的優(yōu)點(diǎn)瀑布模型的優(yōu)點(diǎn)n軟件生命周期模軟件生命周期模型型,使軟件開發(fā)過程可以使軟件開發(fā)過程可以在分析、設(shè)計(jì)、編碼、測試和維護(hù)的框在分析、設(shè)計(jì)、編碼、測試和維護(hù)的框架下進(jìn)行;架下進(jìn)行;n軟件開發(fā)過程具有軟件開發(fā)過程具有系統(tǒng)性系統(tǒng)性、可控性可控性,克克服了軟件開發(fā)的隨意性服了軟件開發(fā)的隨意性 。瀑布模型的缺點(diǎn)瀑布模型的缺點(diǎn)n項(xiàng)目開始階段用戶項(xiàng)目開始階段用戶很難精確的提出產(chǎn)品很難精確的提出產(chǎn)品需求需求,由于技
35、術(shù)進(jìn)步,用戶對系統(tǒng)深入,由于技術(shù)進(jìn)步,用戶對系統(tǒng)深入的理解,修改需求十分普遍。的理解,修改需求十分普遍。n項(xiàng)目開發(fā)晚期才能得到程序的運(yùn)行版本,項(xiàng)目開發(fā)晚期才能得到程序的運(yùn)行版本,這時修改軟件需求和開發(fā)中的錯誤代價這時修改軟件需求和開發(fā)中的錯誤代價很大。很大。n采用線性模型組織項(xiàng)目開發(fā)經(jīng)常發(fā)生開采用線性模型組織項(xiàng)目開發(fā)經(jīng)常發(fā)生開發(fā)小組人員發(fā)小組人員“堵塞狀態(tài)堵塞狀態(tài)”,特別是項(xiàng)目特別是項(xiàng)目的開始和結(jié)束。的開始和結(jié)束。演化模型演化模型n在項(xiàng)目開發(fā)的初始階段人們對軟件在項(xiàng)目開發(fā)的初始階段人們對軟件的需求認(rèn)識常常的需求認(rèn)識常常不夠清晰不夠清晰,使得開,使得開發(fā)項(xiàng)目難于做到一次開發(fā)成功,出發(fā)項(xiàng)目難于做到
36、一次開發(fā)成功,出現(xiàn)返工再開發(fā)在所難免現(xiàn)返工再開發(fā)在所難免n第一次只是第一次只是試驗(yàn)開發(fā)試驗(yàn)開發(fā),其目標(biāo)只是,其目標(biāo)只是在于探索可行性,弄清軟件需求在于探索可行性,弄清軟件需求n第二次則在此基礎(chǔ)上獲得較為滿意第二次則在此基礎(chǔ)上獲得較為滿意的的軟件產(chǎn)品軟件產(chǎn)品通過原型克服瀑布通過原型克服瀑布模型的缺點(diǎn)模型的缺點(diǎn)原型模型(快速原型模型)原型模型(快速原型模型)原型范型原型范型用戶測試用戶測試運(yùn)行原型運(yùn)行原型建造建造/ /修改修改 原型原型 聽取用聽取用 戶意見戶意見 初 步 需 求初 步 需 求分析分析 快速設(shè)計(jì)快速設(shè)計(jì) 建造原型建造原型 用戶評估原用戶評估原型(新需求)型(新需求) 對原型加工對原
37、型加工 開發(fā)產(chǎn)品開發(fā)產(chǎn)品 開始開始 結(jié)束結(jié)束 原型模型(快速原型模型)原型模型(快速原型模型)原型模型的優(yōu)點(diǎn)原型模型的優(yōu)點(diǎn)n原型模型原型模型支持軟件需求開發(fā)支持軟件需求開發(fā),幫助用戶和開發(fā)人,幫助用戶和開發(fā)人員理解需求,是軟件需求工程的關(guān)鍵。員理解需求,是軟件需求工程的關(guān)鍵。n它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。n如果開發(fā)的原型是可運(yùn)行的,它的若干高質(zhì)量的如果開發(fā)的原型是可運(yùn)行的,它的若干高質(zhì)量的程序片段和開發(fā)工具可用于工作程序的開發(fā)。程序片段和開發(fā)工具可用于工作程序的開發(fā)。n原型的開發(fā)和評審是系統(tǒng)分析員和用戶原型的開發(fā)和評審是系統(tǒng)分析員和用戶/客戶共客戶共同參予的迭代過程,每個迭代循環(huán)都是線性過程。同參予的迭代過程,每個迭代循環(huán)都是線性過程。可復(fù)用可復(fù)用原型模型的缺點(diǎn)原型模型的缺點(diǎn)n對于對于大型軟件項(xiàng)目大型軟件項(xiàng)目,原型模型原型模型需要足夠的需要足夠的人力資源以建立足夠的人力資源以建立足夠的原型原型組。組。n原型模型原型模型要求開發(fā)者和客戶在一段時間內(nèi)要求開發(fā)者和客戶在一段時間內(nèi)共同完成共同完成原型原型系統(tǒng)的開發(fā),系統(tǒng)的開發(fā),如果任何一方如果任何一方?jīng)]有實(shí)現(xiàn)承諾,會導(dǎo)致沒有實(shí)現(xiàn)承諾,會導(dǎo)致原型原型開發(fā)的失敗開發(fā)的失敗。n如果系統(tǒng)難以模塊化,建造如果系統(tǒng)難以模塊化,建造原型原型所需構(gòu)件
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣課程設(shè)計(jì)報(bào)告論文
- 零售貸款合同三篇
- 道路工程師工作總結(jié)
- 婦產(chǎn)科護(hù)士工作總結(jié)
- 門診部醫(yī)生團(tuán)隊(duì)近期工作總結(jié)
- 2023-2024學(xué)年重慶市七校聯(lián)盟高一(下)期中語文試卷
- 教材選用與內(nèi)容審定計(jì)劃
- 包裝設(shè)計(jì)師的主要職責(zé)
- 醫(yī)療行業(yè)顧問工作概述
- 【八年級下冊地理粵教版】7.4 北京市 同步練習(xí)
- 2023建筑業(yè)10項(xiàng)新技術(shù)
- 2023-2024學(xué)年二年級數(shù)學(xué)上冊期末樂考 非紙筆測試B方案 人教版
- 維修工作流程圖
- Y2-90S-4-三相異步電動機(jī)的制作-課程設(shè)計(jì)報(bào)告
- 中式烹調(diào)工藝與實(shí)訓(xùn)(第三版) 課件 第10、11章 烹飪美學(xué)、菜肴創(chuàng)新
- 物業(yè)投訴處理培訓(xùn)課件
- 《春秋》導(dǎo)讀學(xué)習(xí)通章節(jié)答案期末考試題庫2023年
- 1.1、供應(yīng)商管理控制流程與風(fēng)險控制流程圖
- 初二年級勞動課教案6篇
- 箱變遷移工程施工方案
- 北師大版九年級數(shù)學(xué)下冊《圓的對稱性》評課稿
評論
0/150
提交評論