已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
知識(shí)回顧,軟件工程40年回顧 信息時(shí)代的軟件工程,第一章 軟件工程概述,信息學(xué)院計(jì)算機(jī)系 張翠肖,軟件是人類思維創(chuàng)造的杰作,是信息化的核心。如何以經(jīng)濟(jì)有效的方法開發(fā)高質(zhì)量的軟件是人們一直努力研究的問題。 軟件工程(Software Engineering)是在克服60年代末所出現(xiàn)的“軟件危機(jī)”的過程中逐漸形成與發(fā)展的。軟件工程是一門指導(dǎo)計(jì)算機(jī)軟件系統(tǒng)開發(fā)和維護(hù)的工程學(xué)科,是一門新興的邊緣學(xué)科,主要研究如何應(yīng)用軟件開發(fā)的科學(xué)理論和工程技術(shù)來指導(dǎo)大型軟件系統(tǒng)的開發(fā)。 軟件工程是為了解決開發(fā)成本效益和軟件質(zhì)量的問題。,內(nèi)容提綱, 軟件 軟件的定義與軟件危機(jī) 軟件的本質(zhì)特性, 軟件工程 定義與發(fā)展歷史 理解軟件質(zhì)量 過程、方法和工具 軟件工程學(xué)科 軟件工程知識(shí)體系(SWEBOK) 軟件工程職業(yè)道德規(guī)范,基本要求,了解軟件的發(fā)展歷程 掌握軟件和軟件工程的概念 理解軟件工程知識(shí)體系 了解軟件工程職業(yè)道德規(guī)范,內(nèi)容提綱, 軟件 軟件的定義與軟件危機(jī) 軟件的本質(zhì)特性, 軟件工程 定義與發(fā)展歷史 理解軟件質(zhì)量 過程、方法和工具 軟件工程學(xué)科 軟件工程知識(shí)體系(SWEBOK) 軟件工程職業(yè)道德規(guī)范,1.1 什么是軟件, 軟件的定義(IEEE Standard Glossary of Software Engineering Terminology),軟件是計(jì)算機(jī)程序、規(guī)程以及運(yùn)行計(jì)算機(jī)系統(tǒng)可能需要的相關(guān)文檔和數(shù)據(jù)。, 從軟件的內(nèi)容來說,軟件更像是一種嵌入式的數(shù)字化知識(shí),其形成是一個(gè)通過交互對(duì)話和抽象理解而不斷演化的過程。,(1) 軟件的分類, 通用軟件(Generic Software), 通用軟件是由軟件開發(fā)組織開發(fā),面向市場用戶公開銷售的獨(dú)立運(yùn)行系統(tǒng),有時(shí)也被稱為套裝軟件。, 舉例:操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、字處理軟件等, 定制軟件(Customized Software), 定制軟件是由某個(gè)特定客戶委托,軟件開發(fā)組織在合同的約束下開發(fā)的軟件。, 舉例:企業(yè) ERP 系統(tǒng)、衛(wèi)星控制系統(tǒng)、空中交通指揮系統(tǒng)等,根據(jù)軟件服務(wù)對(duì)象的范圍分類,實(shí)時(shí)系統(tǒng): 嵌入式系統(tǒng): 數(shù)據(jù)處理系統(tǒng): 信息系統(tǒng): 傳感系統(tǒng): 系統(tǒng)軟件: 通信軟件: 辦公系統(tǒng): 科學(xué)計(jì)算軟件: 圖形軟件:,空中交通控制系統(tǒng) 數(shù)碼相機(jī),GPS 電話帳單 網(wǎng)站,數(shù)字圖書 氣象數(shù)據(jù) 操作系統(tǒng),編譯器 路由器,移動(dòng)電話 文字處理,視頻會(huì)議 仿真模擬,天氣預(yù)報(bào) 電影制作,CAD 設(shè)計(jì),7,軟件的應(yīng)用,No silver bullet: essence and accidents of software engineering, Fredrick P. Brooks,IBM OS360 項(xiàng)目經(jīng)理 1999 年圖靈獎(jiǎng)獲得者,“沒有任何技術(shù)或管理上的進(jìn)展,能夠獨(dú)立地許諾十年內(nèi)使生產(chǎn)率、可靠性或簡潔性獲得數(shù)量上的進(jìn)步?!? 軟件的本質(zhì)特性,復(fù)雜性( Complexity ) 一致性( Conformity ) 可變性( Changeability ) 不可見性( Invisibility ),12,(2) 軟件的本質(zhì)特性,復(fù)雜性,(1)軟件實(shí)體可能比任何由人類創(chuàng)造的其他實(shí)體要復(fù)雜,因?yàn)闆]有任何兩個(gè)軟件部分是相同的。 (2)數(shù)字計(jì)算機(jī)本身就比人類建造的大多數(shù)東西復(fù)雜。計(jì)算機(jī)擁有大量的狀態(tài),這使得構(gòu)思、描述和測試都非常困難。軟件系統(tǒng)的狀態(tài)又比計(jì)算機(jī)系統(tǒng)狀態(tài)多若干個(gè)數(shù)量級(jí)。 (3)軟件實(shí)體的擴(kuò)展也不僅僅是相同元素重復(fù)添加,而必須是不同元素實(shí)體的添加。,(4)軟件的復(fù)雜度是必要屬性,不是次要因素。抽掉復(fù)雜度的軟件實(shí)體描述常常也去掉了一些本質(zhì)屬性。 數(shù)學(xué)家和物理學(xué)家們建立模型以簡化復(fù)雜的現(xiàn)象,從模型中抽取出各種特性,并通過試驗(yàn)來驗(yàn)證這些特性,復(fù)雜性,復(fù)雜性,復(fù)雜性問題造成軟件產(chǎn)品開發(fā)問題 團(tuán)隊(duì)成員之間的溝通非常困難,導(dǎo)致了產(chǎn)品瑕疵、成本超支和進(jìn)度延遲 由于復(fù)雜度,列舉和理解所有可能的狀態(tài)十分困難,影響了產(chǎn)品的可靠性 由于函數(shù)的復(fù)雜度,函數(shù)調(diào)用變得困難,導(dǎo)致程序難以使用 由于結(jié)構(gòu)性復(fù)雜度,程序難以在不產(chǎn)生副作用的情況下用新函數(shù)擴(kuò)充 由于結(jié)構(gòu)性復(fù)雜度,造成很多安全機(jī)制狀態(tài)上的不可見性,復(fù)雜性,復(fù)雜度引發(fā)管理上的問題 全面理解問題變得困難,從而妨礙了概念上的完整性 它引起了大量學(xué)習(xí)和理解上的負(fù)擔(dān),使開發(fā)慢慢演變成了一場災(zāi)難, 一致性( Conformity ), 軟件必須遵從人為的慣例并適應(yīng)已有的技術(shù)和系統(tǒng), 軟件必須遵循各種接口、協(xié)議和標(biāo)準(zhǔn) 有些情況下,兼容性是軟件開發(fā)的目標(biāo), 軟件需要隨接口的不同而改變,隨時(shí)間的推移 而變化,而這些變化是不同的人設(shè)計(jì)的結(jié)果。, 許多復(fù)雜性來自保持與其他接口的一致,對(duì)軟 件的任何再設(shè)計(jì),都無法簡化這些復(fù)雜特性。,14,(2) 軟件的本質(zhì)特性, 可變性 (Changeability), 軟件產(chǎn)品扎根于文化的母體中,如各種應(yīng)用、用戶、自然及 社會(huì)規(guī)律、計(jì)算機(jī)硬件等,后者持續(xù)不斷地變化著,這些變化無情地強(qiáng)迫著軟件隨之變化。, 所有成功的軟件都會(huì)發(fā)生變更!, 當(dāng)人們發(fā)現(xiàn)軟件很有用時(shí),會(huì)在原有應(yīng)用范圍的邊界,或者在超越邊界的情況下使用軟件;, 功能擴(kuò)展的壓力主要來自那些喜歡基本功能,又對(duì)軟件提出了很多新用法的用戶。,15,(2) 軟件的本質(zhì)特性, 軟件修改會(huì)帶來的副作用,不斷的修改最終導(dǎo)致軟件的退化。,軟 件 的 失 效 率 曲 線,16,可變性, 不可見性Invisibility, 軟件是不可見的和無法可視化的, 軟件的客觀存在不具有空間的形體特征 定義“需要做什么”成為軟件開發(fā)的根本問題, 人們一直試圖使用不同的技術(shù)進(jìn)行軟件可視化, 控制流程、數(shù)據(jù)流、依賴關(guān)系、UML、 這些技術(shù)仍然無法給出準(zhǔn)確的、完整的描述, 軟件仍然保持著無法可視化的固有特性,從而剝奪了一些具 有強(qiáng)大功能的概念工具的構(gòu)造思路。這種缺憾不僅限制了個(gè) 人的設(shè)計(jì)過程,也嚴(yán)重地阻礙了相互之間的交流。,(2) 軟件的本質(zhì)特性,(3) 軟件的發(fā)展,(1)第一階段:20世紀(jì)50-60年代 應(yīng)用:快速計(jì)算 語言: Algol Fortran 程序質(zhì)量依賴于程序員個(gè)人的技巧 60年代末出現(xiàn)了“軟件危機(jī)” (2)第二階段:20世紀(jì)70年代 應(yīng)用:涉及非數(shù)值計(jì)算的商業(yè)事務(wù)處理。 語言:Pascal Cobol 軟件的概念包含了文檔。開始采用開發(fā)模型,(3) 軟件的發(fā)展,(3)第三階段:20世紀(jì)80年代 微處理器出現(xiàn),計(jì)算機(jī)大眾化 語言: 面向?qū)ο?CASE 開始注重軟件質(zhì)量 (4)第四階段:20世紀(jì)90年代至今 Internet技術(shù)迅速發(fā)展,軟件系統(tǒng)從封閉走向開放 WEB應(yīng)用、分布式軟件、軟件復(fù)用、構(gòu)件技術(shù) 進(jìn)入21世紀(jì):Internet向智能網(wǎng)絡(luò)時(shí)代發(fā)展,網(wǎng)格技術(shù)、web services 分布式計(jì)算等。,(4)軟件危機(jī),“軟件危機(jī)”主要表現(xiàn): (1)經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延。 (2)開發(fā)的軟件不能滿足用戶要求。 (3)開發(fā)的軟件可維護(hù)性差。 (4)開發(fā)的軟件可靠性差。, 軟件危機(jī)(Software Crisis)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題。, 軟件危機(jī)出現(xiàn)于 20 世紀(jì) 60 年代末,ARIANE 5 火箭, 1996 年 6 月,耗資 70 億美元,發(fā)射 37 秒后爆炸 發(fā)射失敗的原因在于軟件的錯(cuò)誤, 軟件錯(cuò)誤, 程序中試圖將 64 位浮點(diǎn)數(shù)轉(zhuǎn)換成 16 位整數(shù)時(shí)產(chǎn)生溢出 缺少錯(cuò)誤處理程序?qū)?shù)據(jù)溢出進(jìn)行管理 備份軟件復(fù)制而成, 嚴(yán)格地遵守軟件確認(rèn)過程可以避免這種錯(cuò)誤,軟件錯(cuò)誤的實(shí)例, 愛國者導(dǎo)彈, 曾在海灣戰(zhàn)爭期間對(duì)抗伊拉克飛毛腿導(dǎo)彈 1991 年 2 月,一次對(duì)抗失利中 28 名美國士,兵喪生, 問題的癥結(jié)在于導(dǎo)彈軟件包含一個(gè)累加計(jì)時(shí)誤差, 軟件錯(cuò)誤, target = f(velocity, time), 計(jì)時(shí)采用系統(tǒng)時(shí)鐘(即 1/10 秒)并使用整數(shù)表達(dá), (1/10)2 = 0.0001100110011001100110011001100,24 位寄存器,存儲(chǔ)導(dǎo)致誤差 (0.000000095)10,10,軟件錯(cuò)誤的實(shí)例,千年蟲問題, 迫于計(jì)算機(jī)存儲(chǔ)空間的限制,程序員將日期年份縮減 為 2 位數(shù) 世界各地更換或升級(jí) 2000 年問題軟件的花費(fèi)超過數(shù)億美元,11,1967年蘇聯(lián)“聯(lián)盟一號(hào)”載人宇宙飛船在返航時(shí),由于軟件忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)因打不開降落傘而燒毀。,軟件錯(cuò)誤的實(shí)例,IBM公司的 OS/360,共約100萬條指令,花費(fèi)了5000個(gè)人年;經(jīng)費(fèi)達(dá)數(shù)億美元,而結(jié)果卻令人沮喪,錯(cuò)誤多達(dá)2000個(gè)以上,系統(tǒng)根本無法正常運(yùn)行。 OS/360系統(tǒng)的負(fù)責(zé)人Brooks這樣描述開發(fā)過程的困難和混亂:“像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個(gè)野獸能夠逃脫淹沒在泥潭中的命運(yùn)?!?1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序: DO 5 I=1,3 誤寫為:DO 5 I=1 . 3,軟件錯(cuò)誤的實(shí)例,軟件危機(jī),軟件危機(jī)的原因: 軟件規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜,超過了人所能接受的程度。 軟件開發(fā)的管理困難,可靠性無法保證。 軟件開發(fā)費(fèi)用不斷增加。 軟件開發(fā)技術(shù)落后。 生產(chǎn)方式落后。 開發(fā)工具落后。,軟件工程,人們?cè)诜治隽塑浖C(jī)的原因之后,開始探索用工程化的方法進(jìn)行軟件生產(chǎn)的可能性,即用現(xiàn)代工程的概念、原理、技術(shù)和方法進(jìn)行計(jì)算機(jī)軟件的開發(fā)、管理、維護(hù)和更新。于是產(chǎn)生了計(jì)算機(jī)科學(xué)技術(shù)的一個(gè)新領(lǐng)域軟件工程。,內(nèi)容提綱, 軟件 軟件的定義與軟件危機(jī) 軟件的本質(zhì)特性, 軟件工程 定義與發(fā)展歷史 理解軟件質(zhì)量 過程、方法和工具 軟件工程學(xué)科 軟件工程知識(shí)體系(SWEBOK) 軟件工程職業(yè)道德規(guī)范,1.2:(1)工程的含義, 工程是將理論和所學(xué)的知識(shí)應(yīng)用于實(shí)踐的科學(xué),以便經(jīng)濟(jì)有效地解決實(shí)際問題。,19, 手工和工程規(guī)模上的差異, 花園小道 vs. 汽車高速公路 樹上小屋 vs. 摩天大樓, 加法程序 vs. 醫(yī)院檔案系統(tǒng), 手工(Craft): 小規(guī)模的設(shè)計(jì)與建造, 簡單問題與單一目標(biāo) 個(gè)人控制與個(gè)人技能, 工程(Engineering): 大規(guī)模的設(shè)計(jì)與建造, 復(fù)雜問題與目標(biāo)分解, 多人參與,需要考慮運(yùn)營、管理、成本、質(zhì)量控制、安全等,20,1.2-(1) 工程的含義,(2) 工程的特征, 平衡與決策, 需要進(jìn)行一系列決策和認(rèn)真評(píng)價(jià),并在每一個(gè)決策點(diǎn)做出適 當(dāng)選擇,適當(dāng)與否可以通過平衡成本和利益的分析來判斷。, 度量與驗(yàn)證, 應(yīng)該度量事物,在適當(dāng)?shù)臅r(shí)候定量工作;需要校正并驗(yàn)證度,量,并在經(jīng)驗(yàn)和實(shí)驗(yàn)數(shù)據(jù)的基礎(chǔ)上進(jìn)行近似。, 運(yùn)用工具, 工程師需要將工具系統(tǒng)地應(yīng)用在過程中,因此選用適當(dāng)?shù)墓?具是工程的關(guān)鍵。,21,團(tuán)隊(duì)協(xié)同工作,注重訓(xùn)練有素,并以團(tuán)隊(duì)的形式進(jìn)行有效的工作。,角色分工,多重角色:研究、開發(fā)、設(shè)計(jì)、生產(chǎn)、測試、構(gòu)造、實(shí)施、 管理以及其他諸如銷售、咨詢和教學(xué)等。,最佳實(shí)踐,通過專業(yè)團(tuán)體不斷地開發(fā)和確認(rèn)工程原則、標(biāo)準(zhǔn)和實(shí)踐。,強(qiáng)調(diào)重用,工程師應(yīng)該重用設(shè)計(jì)和設(shè)計(jì)制品。,22,(2) 工程的特征,只有編碼的開發(fā)過程,編碼實(shí)現(xiàn),23,工程化的軟件開發(fā) 概念形成 ? 需求規(guī)格,說明,? 設(shè)計(jì),?,實(shí)現(xiàn),24,(3) 什么是軟件工程, 軟件工程的定義,Fritz Bauer, 1968,軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上高效運(yùn)行的可靠軟 件而建立和使用的一系列好的工程化原則。,CMU, 1990,軟件工程是以工程的形式應(yīng)用計(jì)算機(jī)科學(xué)和數(shù)學(xué)原理,從而經(jīng)濟(jì) 有效地解決軟件問題。,IEEE, 1993,軟件工程是將系統(tǒng)性的、規(guī)范化的、可定量的方法應(yīng)用于軟件 的開發(fā)、運(yùn)行和維護(hù),即工程化應(yīng)用到軟件上; 對(duì)中所述方 法的研究。,25,(3) 什么是軟件工程,26,軟件工程的關(guān)注焦點(diǎn), 軟件質(zhì)量(Software Quality), 軟件質(zhì)量是軟件產(chǎn)品與明確的和隱含的需求相一致的程度 軟件質(zhì)量通常采用一系列質(zhì)量特性來描述, 軟件成本(Software Cost), 軟件開發(fā)成本是指軟件開發(fā),過程中所花費(fèi)的費(fèi)用, 軟件維護(hù)成本是指軟件投入 運(yùn)行后軟件變更所需的費(fèi)用,(4) 理解軟件質(zhì)量, 你同意以下說法嗎?為什么?,“運(yùn)行正確的軟件就是高質(zhì)量的軟件?!? 軟件除了提供用戶所需的功能以外,還應(yīng)該具有一系 列反映質(zhì)量的屬性,包括可維護(hù)性、可依賴性、有效 性和可用性等。,可維護(hù)性:軟件必須能夠不斷進(jìn)化以滿足客戶的需求變化 可依賴性:軟件必須是可靠的、保密的、安全的 有效性: 軟件不應(yīng)該浪費(fèi)內(nèi)存和處理器等系統(tǒng)資源 可用性: 軟件必須是可用的,用戶可以很方便地使用,28,(4) 理解軟件質(zhì)量 維護(hù)人員 良好的文檔 可讀的代碼 良好的設(shè)計(jì) 可重用性,最終用戶,功能性 易使用 易學(xué)習(xí),可靠性 正確性 有效性,降低成本 可移植性 增強(qiáng)產(chǎn)品性,客戶,(5)軟件工程的三要素, 過程 支持軟件生命周期的所有活動(dòng) 方法 為軟件開發(fā)過程提供“如何做” 的技術(shù),方法 質(zhì)量, 工具 為軟件開發(fā)方法提供自動(dòng)的或,工具,過程,半自動(dòng)的軟件支撐環(huán)境 30, 軟件工程以關(guān)注軟件質(zhì)量為目標(biāo),包括過程、方法和工具三個(gè)要素。,什么是軟件過程, 軟件過程是指開發(fā)軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。 軟件過程的四個(gè)基本活動(dòng), 規(guī)格說明(Specification),定義軟件功能以及對(duì)其使用的限制, 軟件開發(fā)(Development),設(shè)計(jì)和實(shí)現(xiàn)滿足規(guī)格說明的軟件, 軟件確認(rèn)(Validation),驗(yàn)證軟件以保證能夠滿足客戶的要求, 軟件演化(Evolution),改進(jìn)軟件以適應(yīng)不斷變化的需求,31,什么是軟件過程模型 軟件過程模型是從特定角度呈現(xiàn)的對(duì)軟件過程的簡化 描述。 軟件過程模型是對(duì)實(shí)際過程的抽象描述 包括軟件過程的活動(dòng)、軟件產(chǎn)品以及參與人員的不同角色 常見的軟件過程模型,瀑布模型 進(jìn)化式開發(fā)模型 形式化模型 組件式開發(fā)模型,33,什么是軟件工程方法, 軟件工程方法是軟件開發(fā)的結(jié)構(gòu)化方法,包括模型描,述、規(guī)則、設(shè)計(jì)建議和過程指南等, 模型描述, 對(duì)所開發(fā)的系統(tǒng)建立圖形化的模型描述 例如:對(duì)象模型、數(shù)據(jù)流模型、狀態(tài)機(jī)模型, 規(guī)則, 應(yīng)用于系統(tǒng)模型的約束, 設(shè)計(jì)建議, 有關(guān)良好設(shè)計(jì)實(shí)踐的建議, 過程指南, 軟件開發(fā)所遵循的活動(dòng)以及這些活動(dòng)的組織結(jié)構(gòu),34,結(jié)構(gòu)化方法 vs. 面向?qū)ο蠓椒?自然 語言 傳統(tǒng)的 編程語言,問題域 需求分析 總體設(shè)計(jì) 詳細(xì)設(shè)計(jì) 編程,分析與設(shè)計(jì) 的鴻溝,自然語言 面向?qū)ο蟮?編程語言,問題域 面向?qū)ο蠓治?面向?qū)ο笤O(shè)計(jì) 面向?qū)ο缶幊?面向?qū)ο鬁y試,測試,計(jì)算機(jī),計(jì)算機(jī) 35,CASE(Computer Aided Software Engineering) 計(jì)算機(jī)輔助軟件工程是一組工具和方法的集合,用于輔助軟 件開發(fā)、維護(hù)、管理過程中的各項(xiàng)活動(dòng),促進(jìn)軟件過程的工 程化和自動(dòng)化。 所有的軟件工程方法都需要 CASE 的相應(yīng)技術(shù)來支持 用于系統(tǒng)模型的圖形編輯器 管理設(shè)計(jì)實(shí)體的數(shù)據(jù)字典 生成用戶界面的 GUI 軟件 輔助生成系統(tǒng)文檔的報(bào)告生成器 支持程序糾錯(cuò)的調(diào)試器 代碼生成器,36,什么是CASE,CASE 的層次 問題定義,需求分析,軟,分析設(shè)計(jì)工作臺(tái),總體設(shè)計(jì) 件 開,詳細(xì)設(shè)計(jì) 發(fā) 過,集成化環(huán)境,編程,程 與,程序設(shè)計(jì)工作臺(tái),軟件測試 管 理 軟件維護(hù),測試工作臺(tái),CASE工具,CASE工作臺(tái),CASE環(huán)境,37,CASE 工具,IBM Rational 公司產(chǎn)品(/), 開發(fā)過程管理:RUP 需求管理:RequisitePro 可視化建模:Rose, 自動(dòng)測試:Robot, Test Realtime, TestManager, XDE Tester 項(xiàng)目管理:ProjectConsole, 配置管理:ClearCase, ClearQuest, 開源 CASE 工具(/), CVS: 應(yīng)用廣泛的版本管理工具, UML Modeler: UML 模型圖形編輯工具, UML2EJB: 將 XML 表示的 UML 模型轉(zhuǎn)換成 EJB 代碼的轉(zhuǎn)換器,38,(6)軟件工程的發(fā)展, 軟件工程的誕生, 1969 年 ,NATO 科學(xué)委員會(huì)在德國的加爾密斯舉行會(huì)議,討論大型軟件項(xiàng)目的若干問題, 提出了“軟件工程”和“軟件危機(jī)”的術(shù)語, 一本經(jīng)典的著作“人月神話(Mythical Man Month)”, Brooks 在 1975 年出版, 描寫了大型軟件開發(fā)中的許多關(guān)鍵問題, Brooks 法則:向進(jìn)度落后的項(xiàng)目中增加人手,,只會(huì)使進(jìn)度更加落后。,people time,39, 控制機(jī)器( 19561967 ),軟件工程的史前時(shí)代 批處理系統(tǒng),匯編語言, FORTRAN語言,COBOL語言 已經(jīng)認(rèn)識(shí)到軟件開發(fā)不僅是編碼, 控制過程( 19681982 ), 軟件工程成為一個(gè)研究領(lǐng)域, 出現(xiàn)軟件產(chǎn)品的定價(jià)和獨(dú)立的軟件產(chǎn)業(yè) 結(jié)構(gòu)化開發(fā)技術(shù), Pascal語言,C語言,面向?qū)ο缶幊陶Z言, 形成軟件生命周期的概念,以瀑布模型為典型,40,(6)軟件工程的發(fā)展, 控制復(fù)雜性( 19831995 ), PC 時(shí)代的到來, CASE 工具的開發(fā), 原型化開發(fā)技術(shù), CMM,軟件過程改進(jìn)活動(dòng) 面向?qū)ο箝_發(fā)技術(shù), Objective C,C+,JAVA 語言,1996現(xiàn)在, 分布式計(jì)算, 應(yīng)用領(lǐng)域的擴(kuò)展, 網(wǎng)絡(luò)環(huán)境的軟件工程, 面向?qū)ο蠹夹g(shù)的進(jìn)一步發(fā)展(設(shè)計(jì)模式、組件、中間件),41,(6)軟件工程的發(fā)展, 遺留系統(tǒng)的問題, 遺留系統(tǒng)是指那些過時(shí)或存在問題的計(jì)算機(jī)系統(tǒng),通常是許,多年以前開發(fā)的, 挑戰(zhàn):既要以合理的成本維護(hù)和更新系統(tǒng),又要能夠繼承系,統(tǒng)中重要的商業(yè)信息和服務(wù), 異構(gòu)系統(tǒng)的問題, 網(wǎng)絡(luò)環(huán)境下包含不同的硬件平臺(tái)和軟件系統(tǒng), 挑戰(zhàn):需要提出新的開發(fā)技術(shù),能夠使所開發(fā)的軟件系統(tǒng)運(yùn),行在不同的硬件平臺(tái)和系統(tǒng)環(huán)境下,42,軟件工程面臨的挑戰(zhàn),軟件工程面臨的挑戰(zhàn), 高可信軟件開發(fā)的要求, 軟件的重要作用要求正確性、可靠性、安全性等可信性質(zhì) 挑戰(zhàn):如何在軟件的開發(fā)和運(yùn)行中保證其具有高可信的性質(zhì), 軟件開發(fā)方式的變化, 網(wǎng)絡(luò)時(shí)代帶來的沖擊, 開源軟件開發(fā)技術(shù) Web 工程, 挑戰(zhàn):研究分布式的軟件體系結(jié)構(gòu)和開發(fā)模式,探索與之相,適應(yīng)的軟件工程策略,43,內(nèi)容提綱, 軟件 軟件的定義與軟件危機(jī) 軟件的本質(zhì)特性, 軟件工程 定義與發(fā)展歷史 理解軟件質(zhì)量 過程、方法和工具 軟件工程學(xué)科 軟件工程知識(shí)體系(SWEBOK) 軟件工程職業(yè)道德規(guī)范,(1)軟件工程學(xué)科的形成與發(fā)展,1985-2005,1968-1990,2000-,面向?qū)ο蟮能浖_發(fā),人機(jī)界面,多媒體,項(xiàng)目管理、CMM、CMMI,基于網(wǎng)絡(luò)、構(gòu)件、中間件的軟件開發(fā),計(jì)算安全,敏捷開發(fā),軟件工程概念的形成與發(fā)展,軟件工程課程逐步成熟,成為CC1991的一個(gè)領(lǐng)域,軟件工程成為CC2004的一個(gè)學(xué)科,硬件支撐能力,小、中、大型 計(jì)算機(jī)系統(tǒng) PDP1170 VAX11780,結(jié)構(gòu)化的分析、設(shè)計(jì)、實(shí)現(xiàn)、測試,項(xiàng)目管理,基于網(wǎng)絡(luò)服務(wù)的超大系統(tǒng)、計(jì)算安全、系統(tǒng)管理、監(jiān)控、評(píng)估,個(gè)人計(jì)算機(jī)、窗口、網(wǎng)絡(luò)、分布計(jì)算,Internet廣泛應(yīng)用, 軟件工程知識(shí)體系(SoftWare Engineering Body Of Knowledge:), IEEE 計(jì)算機(jī)學(xué)會(huì)發(fā)起研究,從而促進(jìn)軟件工程發(fā)展成為獨(dú)立,的專業(yè)學(xué)科, 2001 年 5 月完成,最新發(fā)布“ SWEBOK 指南 V1.00(試用版)”,SWEBOK 的組成, 將軟件工程知識(shí)分解成若干知識(shí)域,形成層次化的組成結(jié)構(gòu) 10 個(gè)知識(shí)域, 軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試、軟件維護(hù), 軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年蘇教新版選修3地理上冊(cè)階段測試試卷含答案
- 2025年粵人版九年級(jí)生物上冊(cè)月考試卷含答案
- 二零二五年度衛(wèi)生間清潔劑研發(fā)與供應(yīng)合同3篇
- 二零二五年度2025版文化創(chuàng)意產(chǎn)業(yè)融資合同范本4篇
- 2025年度環(huán)保工程派遣人員勞務(wù)合同范本4篇
- 擔(dān)保合同約定條款協(xié)議書(2篇)
- 2025年度摩托車租賃平臺(tái)合作合同范本3篇
- 2025年度牧草種植基地環(huán)境保護(hù)合同范本3篇
- 二零二五版苗木種植基地林業(yè)病蟲害防治合同2篇
- 二零二五年度物流供應(yīng)鏈融資借款合同大全4篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 計(jì)劃合同部部長述職報(bào)告范文
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
- 五年級(jí)上冊(cè)小數(shù)除法豎式計(jì)算練習(xí)300題及答案
- 語言規(guī)劃講義
- 生活用房設(shè)施施工方案模板
- 上海市楊浦區(qū)2022屆初三中考二模英語試卷+答案
- GB/T 9755-2001合成樹脂乳液外墻涂料
評(píng)論
0/150
提交評(píng)論