chp1-軟件開發(fā)規(guī)律_第1頁
chp1-軟件開發(fā)規(guī)律_第2頁
chp1-軟件開發(fā)規(guī)律_第3頁
chp1-軟件開發(fā)規(guī)律_第4頁
chp1-軟件開發(fā)規(guī)律_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、教材和參考書教材和參考書 軟件開發(fā)技術,電子工業(yè)出版社,張帆等編著;軟件開發(fā)技術,電子工業(yè)出版社,張帆等編著; Software Engineering, 6th Edition,作者:,作者:(英)(英)Ian Sommerville,出版社:機械工業(yè)出,出版社:機械工業(yè)出版社(影印版)版社(影印版) 軟件設計軟件設計-從程序到體系結構,(美)從程序到體系結構,(美)Eric J. Braude,李仁發(fā)等譯,電子工業(yè)出版社,李仁發(fā)等譯,電子工業(yè)出版社 IBM中國,中國,http:/ UESTC. Designed by G.Liu4/81基本內容基本內容1. 軟件危機新問題軟件危機新問題2.

2、 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網絡形勢下軟件開發(fā)技術進展新網絡形勢下軟件開發(fā)技術進展基本內容基本內容1. 軟件危機新問題軟件危機新問題2. 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網絡形勢下軟件開發(fā)技術進展新網絡形勢下軟件開發(fā)技術進展CCSE UESTC. Designed by G.Liu6/81基本內容基本內容 軟件危機軟件危機原因、過去和現(xiàn)在的變化原因、過去和現(xiàn)在的變化 企業(yè)信息化企業(yè)信息化相關問題、解決方法相關問題、解決方法 軟件開發(fā)技術的發(fā)展軟件開發(fā)技術的發(fā)展形勢要求、發(fā)形勢要求、發(fā)展趨勢展趨勢最

3、為成功的預見最為成功的預見 (80年代初)年代初)CCSE UESTC. Designed by G.Liu8/81信息隨手可得信息隨手可得 比爾比爾蓋茨蓋茨, 19949/81CCSE UESTC. Designed by G.LiuCCSE UESTC. Designed by G.Liu10/81Bricklin 1979年公布年公布了第一了第一個個軟件包軟件包 健康軟件100萬條基因序列 1997USA Craig Venter 帶翼的軟件 400萬條指令 1995- Edward Yourdon 1997 死亡征程公路上的代碼20MB計算能力 1998More than apolo軟

4、件危機(軟件危機(60年代中年代中70年代中)年代中)個體化軟件環(huán)境個體化軟件環(huán)境軟件作坊軟件作坊 需求急劇膨脹需求急劇膨脹 日趨復雜日趨復雜進而進而 成本高!成本高! 維護難!維護難!CCSE UESTC. Designed by G.Liu12/81CCSE UESTC. Designed by G.Liu13/81F. P. BrooksIBM 360 系統(tǒng)之父!系統(tǒng)之父!1999年圖靈獎年圖靈獎Kenan ProfessorDepartment of Computer Science University of North Carolina at Chapel HillChapel H

5、ill, NC 27599-3175 USA/brooks/CCSE UESTC. Designed by G.Liu14/81There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simpl

6、licity.CCSE UESTC. Designed by G.Liu15/81 CCSE UESTC. Designed by G.Liu16/81CCSE UESTC. Designed by G.Liu17/81Large-Organization HW/SW Cost Trends (1973)總結:早期軟件危機的表現(xiàn)總結:早期軟件危機的表現(xiàn) 開發(fā)費用和進度失控開發(fā)費用和進度失控 可靠性差,缺少度量標準可靠性差,缺少度量標準 難以維護,不易升級難以維護,不易升級 沒有充分的文檔資料沒有充分的文檔資料因此,軟件工程因此,軟件工程SE應運而生。應

7、運而生。1968,北大西洋公約組織,聯(lián)邦德國,北大西洋公約組織,聯(lián)邦德國當年語錄當年語錄-關于項目管理關于項目管理CCSE UESTC. Designed by G.Liu19/81軟件開發(fā)管理將繼續(xù)背負目前的在成本和計劃有效性上的壞名聲,直到有朝一日,人們對軟件設計工程有了更全面的理解和認識。我們開發(fā)軟件系統(tǒng)就像萊特兄弟制造飛機造好整個系統(tǒng),把它推下懸崖,讓它墜毀,然后重新開始。管理工作方面,大型軟件的開發(fā)是一個令人恐怖的事情。人們的認識中,這種工作通常會成為血本無歸的泥潭,耗費財力,永無止境。當年語錄當年語錄-關于設計和最終產品的區(qū)別關于設計和最終產品的區(qū)別CCSE UESTC. Desi

8、gned by G.Liu20/81設計和最終產品之間的區(qū)別本質上是一個理論與實際的問題,受各生產部門需求的影響。軟件中大多數致命問題都起源于概念,幾乎都統(tǒng)一的遵循這樣的規(guī)律:你試圖弄清楚你們打算要做什么,然后就這樣做了。這就是我們大多數麻煩問題的來源。當年語錄當年語錄-關于需求和效率關于需求和效率CCSE UESTC. Designed by G.Liu21/81用戶感興趣的是對系統(tǒng)提需求,而且按照需求購買系統(tǒng)。但這里的潛臺詞是用戶能說出他們想要什么。而大部分的用戶說不清楚。我們應該在設計過程中盡早的獲取用戶反饋。-我對程序員在工作效率中表現(xiàn)出的巨大的差異有個疑問。你能在其它類似的技術領域找

9、到相似的差異度嗎?事實上,軟件開發(fā)中的差異比任何其它行業(yè)都要大。當年語錄當年語錄-關于開發(fā)和測試關于開發(fā)和測試CCSE UESTC. Designed by G.Liu22/81開發(fā)應該循序漸進開展,軟件一步一步完成。我的座右銘是“解決小的,有用的,現(xiàn)在?!贝笮拖到y(tǒng)必須慢慢完善,不可能在某個時間里全部完成。你必須讓最初的小的核心系統(tǒng)真正無誤的運行起來。系統(tǒng)必須具有自動化測試能力。我們必須開發(fā)和維護一些可執(zhí)行程序來檢驗系統(tǒng)中所有的其它部分。軟件危機解決了嗎?軟件危機解決了嗎?新問題(新問題(20世紀世紀80年代以來)年代以來)軟件規(guī)模、復雜度加大軟件規(guī)模、復雜度加大信息孤島信息孤島應用集成應用集

10、成投資效益低投資效益低信息化持續(xù)建設信息化持續(xù)建設表現(xiàn):表現(xiàn):軟件成本居高不下軟件成本居高不下軟件生產率低下軟件生產率低下CCSE UESTC. Designed by G.Liu24/81Exchange2000Windows2000項目經理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人CCSE UESTC. Designed by G.Liu25/81Exchange2000Windows2000項目經理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人近年來的發(fā)展近年來的發(fā)展 中國市場需求大中國市場需求大 技術總體在一個追趕的趨勢技術總體在

11、一個追趕的趨勢 中國軟件企業(yè)最后的機會中國軟件企業(yè)最后的機會-信息化浪潮!信息化浪潮! 企業(yè)信息化企業(yè)信息化是一個系統(tǒng)工程是一個系統(tǒng)工程 ! 范圍廣,縱深大!范圍廣,縱深大!企業(yè)信息化的分類和層次企業(yè)信息化的分類和層次分類:分類: 行業(yè)、企業(yè)運營模式、企業(yè)的應用深度等行業(yè)、企業(yè)運營模式、企業(yè)的應用深度等層次層次 單元技術單元技術 技術部門集成技術部門集成 企業(yè)內容集成企業(yè)內容集成 動態(tài)聯(lián)盟集成動態(tài)聯(lián)盟集成企業(yè)信息化的意義企業(yè)信息化的意義 宏觀:宏觀: 增強經濟可持續(xù)性快速發(fā)展,國家綜合實力;增強經濟可持續(xù)性快速發(fā)展,國家綜合實力; WTO挑戰(zhàn),適應國際競爭;挑戰(zhàn),適應國際競爭; 實現(xiàn)企業(yè)生產經

12、營的運營自動化、管理網絡化、實現(xiàn)企業(yè)生產經營的運營自動化、管理網絡化、決策智能化;決策智能化; 增加企業(yè)間技術流通,提升整個行業(yè)技術水平增加企業(yè)間技術流通,提升整個行業(yè)技術水平 中觀:中觀: 企業(yè)信息化可為企業(yè)帶來較多優(yōu)勢企業(yè)信息化可為企業(yè)帶來較多優(yōu)勢 ; 微觀:微觀: 可以降低技術人才的勞動強度可以降低技術人才的勞動強度(計算機手段計算機手段),提,提升技術人才的腦力價值;可以有效改善工作環(huán)境升技術人才的腦力價值;可以有效改善工作環(huán)境 目的:消除孤島目的:消除孤島一般而言:一般而言:“信息孤島信息孤島”:和信息共享的矛盾:和信息共享的矛盾 “應用孤島應用孤島”:和業(yè)務整合的矛盾:和業(yè)務整合的

13、矛盾 “資源孤島資源孤島” :和資源協(xié)同的矛盾:和資源協(xié)同的矛盾 軟件應用集成軟件應用集成傳統(tǒng)的傳統(tǒng)的EAI(Enterpris Application Integration) 數據級,面向信息和數據數據級,面向信息和數據 應用接口級,面向接口應用接口級,面向接口API 業(yè)務邏輯級業(yè)務邏輯級 ,面向過程,面向過程.業(yè)務邏輯業(yè)務邏輯 要求和限制問題要求和限制問題Solution:面向面向功能層功能層的企業(yè)應用集成方式的企業(yè)應用集成方式 面向服務架構(面向服務架構(SOA)的)的EAI方式方式 Pro:語言獨立;松耦合;跨平臺;封裝性;:語言獨立;松耦合;跨平臺;封裝性;服務位置透明服務位置透明

14、etc.現(xiàn)在全球軟件產業(yè)范式轉型現(xiàn)在全球軟件產業(yè)范式轉型當前形勢的要求:當前形勢的要求: 網絡化網絡化Google的互聯(lián)網軟件模式?的互聯(lián)網軟件模式? 全球化全球化印度的外包?印度的外包? 服務化服務化Web Service?云計算?云計算? 開放化開放化開源軟件與創(chuàng)新?開源軟件與創(chuàng)新?CCSE UESTC. Designed by G.Liu32/81CCSE UESTC. Designed by G.Liu33/81基本內容基本內容1. 軟件危機新問題軟件危機新問題2. 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網絡形勢下軟件開發(fā)技術進展新網絡形勢下軟件

15、開發(fā)技術進展CCSE UESTC. Designed by G.Liu34/81唯有對軟件和軟件的開發(fā)過程,有充分的認唯有對軟件和軟件的開發(fā)過程,有充分的認識,才能識,才能更好的開發(fā)出,更好的開發(fā)出,過程受控、質量受控過程受控、質量受控的軟件的軟件產品。產品。CCSE UESTC. Designed by G.Liu35/81對軟件的偏見或誤解對軟件的偏見或誤解 軟件就是程序,軟件開發(fā)就是編寫程序。軟件就是程序,軟件開發(fā)就是編寫程序。編完了程序,就一切編完了程序,就一切OK了。了。掌握了最新的語言和工具,就能寫程序了。掌握了最新的語言和工具,就能寫程序了。軟件是靈活的,軟件的修改很容易。軟件是

16、靈活的,軟件的修改很容易。一個人,只要會編程,就能寫軟件,就是程序員;一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要召些程序員,就能開發(fā)好的軟件產品。一個公司,只要召些程序員,就能開發(fā)好的軟件產品。只要有幾個有經驗的程序員,再找些兼職的大學生,就只要有幾個有經驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。能組成一個軟件公司。軟件工程目的軟件工程目的軟件工程的主要目標是:生產具有正確性、可用軟件工程的主要目標是:生產具有正確性、可用性以及開銷合宜的產品。性以及開銷合宜的產品。目標目標 正確性意指軟件產品達到預期功能的程度。正確性意指軟件產品達到預期功能的程度。 可用性指軟件基

17、本結構、實現(xiàn)及文檔為用戶可用的可用性指軟件基本結構、實現(xiàn)及文檔為用戶可用的程度。程度。 開銷合宜性是指軟件開發(fā)、運行的整個開銷滿足用開銷合宜性是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。戶要求的程度。目標即約束:這些目標的實現(xiàn)形成了對過程、過目標即約束:這些目標的實現(xiàn)形成了對過程、過程模型及工程方法選取的約束程模型及工程方法選取的約束 。軟件工程軟件工程4原則原則1.選取適宜開發(fā)范型。選取適宜開發(fā)范型。必須認識需求定義的易變性,采用必須認識需求定義的易變性,采用適宜的開發(fā)范型予以控制,以保證軟件產品滿足用戶的適宜的開發(fā)范型予以控制,以保證軟件產品滿足用戶的要求。要求。2.采用合適的設計方法

18、。采用合適的設計方法。在軟件設計中,通常要考慮軟件在軟件設計中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特征。性等特征。3.提供高質量的工程支持。提供高質量的工程支持。軟件工具與環(huán)境對軟件過程的軟件工具與環(huán)境對軟件過程的支持頗為重要。軟件工程項目的質量與開銷直接取決于支持頗為重要。軟件工程項目的質量與開銷直接取決于對軟件工程所提供的支撐質量和效用。對軟件工程所提供的支撐質量和效用。4.重視開發(fā)過程的管理。重視開發(fā)過程的管理。軟件工程的管理,直接影響可用軟件工程的管理,直接影響可用資源的有效利用,生產滿足目標的軟件產品,提

19、高軟件資源的有效利用,生產滿足目標的軟件產品,提高軟件組織的生產能力等問題。因此,僅當軟件過程得以有效組織的生產能力等問題。因此,僅當軟件過程得以有效管理時,才能實現(xiàn)有效的軟件工程管理時,才能實現(xiàn)有效的軟件工程 。軟件工程的基本原理,軟件工程的基本原理,Boehm 19831.分階段的生命周期計劃嚴格管理分階段的生命周期計劃嚴格管理2.堅持進行階段評審堅持進行階段評審3.實行嚴格的產品控制實行嚴格的產品控制4.采用現(xiàn)代程序設計技術采用現(xiàn)代程序設計技術5.結果應能清楚審查結果應能清楚審查6.開發(fā)小組的人員應少而精開發(fā)小組的人員應少而精7.承認不斷改進軟件工程實踐的必要性承認不斷改進軟件工程實踐的

20、必要性Barry Boehm (1935- )Barry Boehm TRW Professor of Software Engineering, Computer Science Department Director, USC Center for Software Engineering. /Research_Group/barry.htmlRecent talk:A View of 20th and 21st Century Software Engineering 2006,Shanghai, 28th ICSE.軟件工程的常用模型軟件工程的常

21、用模型用一定的流程將各個環(huán)節(jié)連接起來,并用用一定的流程將各個環(huán)節(jié)連接起來,并用規(guī)范的方式操作全過程。規(guī)范的方式操作全過程。常見模型有:線性模型,漸增式模型,螺常見模型有:線性模型,漸增式模型,螺旋模型,快速原型模型,形式化描述模旋模型,快速原型模型,形式化描述模型等等型等等 。CCSE UESTC. Designed by G.Liu41/81軟件的生命周期軟件的生命周期 軟件開發(fā)模型軟件開發(fā)模型瀑布模型瀑布模型噴泉模型噴泉模型螺旋模型螺旋模型 軟件開發(fā)方法軟件開發(fā)方法 Jackson系統(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法 Jackson system development method 結構化方法結構化

22、方法 structured method 面向對象方法面向對象方法 object-oriented method 模塊化方法模塊化方法 modular method 軟件復用軟件復用 software reuse 軟件開發(fā)新方法軟件開發(fā)新方法敏捷軟件開發(fā)敏捷軟件開發(fā)(極限編程極限編程XP快速軟件開發(fā)快速軟件開發(fā) 統(tǒng)一軟件開發(fā)過程統(tǒng)一軟件開發(fā)過程 RUPCCSE UESTC. Designed by G.Liu42/81過程決定了一個軟件開發(fā)的過程決定了一個軟件開發(fā)的質量質量軟件開發(fā)過程的成熟,是長軟件開發(fā)過程的成熟,是長期積累的結果期積累的結果如何衡量一個組織具有開發(fā)如何衡量一個組織具有開發(fā)可

23、控軟件的能力可控軟件的能力ISO9000CMM初始級初始級可重復級可重復級已定義級已定義級已管理級已管理級優(yōu)化級優(yōu)化級CCSE UESTC. Designed by G.Liu43/81認識軟件開發(fā)過程的模型認識軟件開發(fā)過程的模型軟件開發(fā)的過程,不只是編寫程序軟件開發(fā)的過程,不只是編寫程序軟件開發(fā)的過程是有規(guī)律的軟件開發(fā)的過程是有規(guī)律的開發(fā)成本分布工作量分布工作量分布40-20-40規(guī)則規(guī)則80-20規(guī)則規(guī)則CCSE UESTC. Designed by G.Liu44/81軟件質量軟件質量 software quality 軟件質量是指軟件產品中能滿足給定需求的各種特性的總和。軟件質量是指軟

24、件產品中能滿足給定需求的各種特性的總和。這些特性稱做質量特性,它包括功能度、可靠性、易使用性、時間經這些特性稱做質量特性,它包括功能度、可靠性、易使用性、時間經濟性、資源經濟性、可維護性和可移植性等。濟性、資源經濟性、可維護性和可移植性等。 質量保證質量保證 quality assurance 質量保證是指為使軟件質量保證是指為使軟件產品符合規(guī)定需求所產品符合規(guī)定需求所進行的一系列有進行的一系列有計劃的必要工作。計劃的必要工作。 通過控制軟件的過程,通過控制軟件的過程, 控制軟件的質量控制軟件的質量CCSE UESTC. Designed by G.Liu45/81關于軟件開發(fā)成本的誤解關于軟

25、件開發(fā)成本的誤解盜版軟件盜版軟件認為軟件是沒有成本的,至少比硬件便宜認為軟件是沒有成本的,至少比硬件便宜硬件實驗燒了東西,大家很心疼,但是即使軟件設計出現(xiàn)致命的缺硬件實驗燒了東西,大家很心疼,但是即使軟件設計出現(xiàn)致命的缺陷,也少有人覺得是災難陷,也少有人覺得是災難軟件開發(fā)是需要很高的成本的軟件開發(fā)是需要很高的成本的修改軟件缺陷需要大量的成本修改軟件缺陷需要大量的成本需求的變動需要成本需求的變動需要成本項目的管理也需要成本項目的管理也需要成本越到后期,成本的增加越到后期,成本的增加越大,為指數增長越大,為指數增長CCSE UESTC. Designed by G.Liu46/81軟件項目的合理利

26、潤軟件項目的合理利潤?30%-40%軟件公司的運作成本如何軟件公司的運作成本如何?人力人力(工資工資)50%物力物力(物業(yè)、水電、通信、差旅、福利、稅收、社保等)物業(yè)、水電、通信、差旅、福利、稅收、社保等)50%軟件行業(yè)的人力成本如何軟件行業(yè)的人力成本如何?系統(tǒng)分析員系統(tǒng)分析員(軟件架構師軟件架構師) 8000-12000項目經理(高級程序員)項目經理(高級程序員)4000-6000程序員(程序員)程序員(程序員)2000-3000CCSE UESTC. Designed by G.Liu47/81軟件開發(fā)像織網軟件開發(fā)像織網耦合性強,開發(fā)人員合作成本高耦合性強,開發(fā)人員合作成本高模塊化差,每

27、一次改動,都要從頭考慮。模塊化差,每一次改動,都要從頭考慮。一個失誤,可能導致整個系統(tǒng)崩潰一個失誤,可能導致整個系統(tǒng)崩潰軟件越往后,開發(fā)的成本越高,進展越慢。軟件越往后,開發(fā)的成本越高,進展越慢。硬件開發(fā)像堆積木硬件開發(fā)像堆積木硬件模塊化強,相對耦合小硬件模塊化強,相對耦合小 ,接口明確,可以大部件的復用,接口明確,可以大部件的復用硬件開發(fā)的階段性強硬件開發(fā)的階段性強 ,硬件開發(fā)中,合作更容易一些,硬件開發(fā)中,合作更容易一些 辛苦程度?辛苦程度?CCSE UESTC. Designed by G.Liu48/81 特別的需求管理特別的需求管理 模糊和不精確的交流模糊和不精確的交流 脆弱的構架脆

28、弱的構架 過度復雜過度復雜 未檢測出需求、設計和實現(xiàn)之間的不一致未檢測出需求、設計和實現(xiàn)之間的不一致 測試的不足測試的不足 對于項目狀況的評估過于主觀對于項目狀況的評估過于主觀 未解決存在的風險未解決存在的風險 無法控制變化的產生和傳播無法控制變化的產生和傳播 自動控制不足自動控制不足軟件開發(fā)方法綜述軟件開發(fā)方法綜述1. 結構化方法結構化方法2. 面向數據結構的軟件開發(fā)方法面向數據結構的軟件開發(fā)方法3. 面向問題的分析方法面向問題的分析方法4. 原型化方法原型化方法5. 面向對象的軟件開發(fā)方法面向對象的軟件開發(fā)方法6. 可視化開發(fā)方法可視化開發(fā)方法結構化方法結構化方法結構化分析方法結構化分析方

29、法(Structured Method,結構化方法,結構化方法)是強是強調開發(fā)方法的結構合理性以及所開發(fā)軟件的結構合理調開發(fā)方法的結構合理性以及所開發(fā)軟件的結構合理性的軟件開發(fā)方法。性的軟件開發(fā)方法。 結構是指系統(tǒng)內各個組成要素之間的相互聯(lián)系、相互作用的結構是指系統(tǒng)內各個組成要素之間的相互聯(lián)系、相互作用的框架。框架。 結構化開發(fā)方法提出了一組提高軟件結構合理性的準則,如結構化開發(fā)方法提出了一組提高軟件結構合理性的準則,如分解與抽象、模塊獨立性、信息隱蔽等。分解與抽象、模塊獨立性、信息隱蔽等。 針對軟件生存周期各個不同的階段,它有:針對軟件生存周期各個不同的階段,它有: 結構化分析結構化分析(S

30、A) 結構化設計結構化設計(SD) 結構化程序設計結構化程序設計(SP)等方法。等方法。 面向數據結構的軟件開發(fā)方法面向數據結構的軟件開發(fā)方法 也稱為也稱為Jackson方法(方法(1975),從目標系統(tǒng)的),從目標系統(tǒng)的輸入、輸出數據結構入手,導出程序框架結構,輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節(jié),就可得到完整的程序結構圖。再補充其它細節(jié),就可得到完整的程序結構圖。 對輸入、輸出數據結構明確的中小型系統(tǒng)特別對輸入、輸出數據結構明確的中小型系統(tǒng)特別有效,如商業(yè)應用中的文件表格處理。該方法有效,如商業(yè)應用中的文件表格處理。該方法也可與其它方法結合,用于模塊的詳細設計也可與其它

31、方法結合,用于模塊的詳細設計 。面向問題的分析法面向問題的分析法PAM(Problem Analysis Method)是)是80年代末年代末由日立公司提出的一種軟件開發(fā)方法。由日立公司提出的一種軟件開發(fā)方法。PAM方方法希望能兼顧法希望能兼顧SA方法、方法、Jackson方法和自底向方法和自底向上的軟件開發(fā)方法的優(yōu)點,而避免它們的缺陷。上的軟件開發(fā)方法的優(yōu)點,而避免它們的缺陷。它的基本思想是:考慮到輸入、輸出數據結構,它的基本思想是:考慮到輸入、輸出數據結構,指導系統(tǒng)的分解,在系統(tǒng)分析指導下逐步綜合。指導系統(tǒng)的分解,在系統(tǒng)分析指導下逐步綜合。 面向問題的分析法(續(xù))面向問題的分析法(續(xù))PA

32、M方法的另一個優(yōu)點是方法的另一個優(yōu)點是使用問題分析使用問題分析PAD圖。圖。采用二維樹形結構圖,采用二維樹形結構圖,遠優(yōu)于遠優(yōu)于NS圖和圖和PDL語言語言 。 由于在輸入、輸出數據結由于在輸入、輸出數據結構與整個系統(tǒng)之間同樣構與整個系統(tǒng)之間同樣存在著鴻溝,這一方法存在著鴻溝,這一方法仍只適用于中小型問題仍只適用于中小型問題 。原型化方法原型化方法*開發(fā)工具的發(fā)展使原型變得簡單開發(fā)工具的發(fā)展使原型變得簡單開發(fā)原型化系統(tǒng)一般由以下幾個階段:開發(fā)原型化系統(tǒng)一般由以下幾個階段: (1) 確定用戶需求確定用戶需求 (2) 開發(fā)原始模型開發(fā)原始模型 (3) 征求用戶對初始原型的改進意見征求用戶對初始原型的

33、改進意見 (4) 修改原型。修改原型。原型化方法(續(xù))原型化方法(續(xù))原型化開發(fā)方法比較適合于用戶需求不清、原型化開發(fā)方法比較適合于用戶需求不清、業(yè)務理論不確定、需求經常變化的情況。業(yè)務理論不確定、需求經常變化的情況。當系統(tǒng)規(guī)模不是很大也不太復雜時采用當系統(tǒng)規(guī)模不是很大也不太復雜時采用該方法是比較好的該方法是比較好的 。面向對象的軟件開發(fā)方法面向對象的軟件開發(fā)方法隨著隨著OOP(面向對象編程)向(面向對象編程)向OOD(面向對象(面向對象設計)和設計)和OOA(面向對象分析)的發(fā)展,最終(面向對象分析)的發(fā)展,最終形成面向對象的軟件開發(fā)方法形成面向對象的軟件開發(fā)方法OMT (Object Mo

34、deling Technique)。)。這是一種自底向上和自頂向下相結合的方法,而這是一種自底向上和自頂向下相結合的方法,而且它以對象建模為基礎,從而且它以對象建模為基礎,從而不僅考慮了輸入、不僅考慮了輸入、輸出數據結構,實際上也包含了所有對象的數輸出數據結構,實際上也包含了所有對象的數據結構據結構。 目前標準為目前標準為UML可視化開發(fā)方法可視化開發(fā)方法可視化開發(fā)使我們把注意力集中在業(yè)務邏輯和業(yè)可視化開發(fā)使我們把注意力集中在業(yè)務邏輯和業(yè)務流程上,用戶界面可以用可視化工具方便的務流程上,用戶界面可以用可視化工具方便的構成。構成。通過操作界面元素,諸如菜單、按鈕、對話框、通過操作界面元素,諸如菜

35、單、按鈕、對話框、編輯框、單選框、復選框、編輯框、單選框、復選框、 列表框和滾動條等,列表框和滾動條等,由可視開發(fā)工具自動生成應用軟件由可視開發(fā)工具自動生成應用軟件 。e.g., 前臺工具和后臺開發(fā)工具以及設計工具等。前臺工具和后臺開發(fā)工具以及設計工具等。基本內容基本內容1. 軟件危機新問題軟件危機新問題2. 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網絡形勢下軟件開發(fā)技術進展新網絡形勢下軟件開發(fā)技術進展軟件開發(fā)本質軟件開發(fā)本質從某種角度來說,軟件開發(fā)的本質就是要從某種角度來說,軟件開發(fā)的本質就是要實現(xiàn)實現(xiàn)“高層概念高層概念”到到“低層概念低層概念”的映的映

36、射,實現(xiàn)射,實現(xiàn)“高層處理邏輯高層處理邏輯”到到“低層處低層處理邏輯理邏輯”的映射的映射 。整個的實施過程!整個的實施過程!目標目標+活動活動+原則原則軟件工程活動軟件工程活動軟件工程學科所研究的內容主要包括:軟件工程學科所研究的內容主要包括:1.軟件開發(fā)范型軟件開發(fā)范型涉及軟件工程的涉及軟件工程的“方向方向”問題,研究正問題,研究正確的求解軟件的計算邏輯,建模方法問題。確的求解軟件的計算邏輯,建模方法問題。2.軟件設計方法軟件設計方法涉及軟件工程的涉及軟件工程的“途徑途徑”問題,研究問題,研究“高層概念模型和處理邏輯高層概念模型和處理邏輯”到到“低層概念模型和處低層概念模型和處理邏輯理邏輯”

37、的映射;的映射;3.工程支持技術和過程管理技術工程支持技術和過程管理技術涉及工程過程質量和產涉及工程過程質量和產品質量問題,研究管理學理論在軟件工程中的應用品質量問題,研究管理學理論在軟件工程中的應用 。結構化范型和面向對象范型結構化范型和面向對象范型面向過程:數據將和設計模型中以及系統(tǒng)實現(xiàn)(程序)面向過程:數據將和設計模型中以及系統(tǒng)實現(xiàn)(程序)中的行為分離。中的行為分離。面向對象:系統(tǒng)由一系列對象的可重用部件來構建,對面向對象:系統(tǒng)由一系列對象的可重用部件來構建,對象既包含數據也包含功能過程。象既包含數據也包含功能過程。面向對象開發(fā)強調以系統(tǒng)的數據為主體,是一種數據驅面向對象開發(fā)強調以系統(tǒng)的

38、數據為主體,是一種數據驅動方式的系統(tǒng)分析和設計方法。二者都強調模塊化,動方式的系統(tǒng)分析和設計方法。二者都強調模塊化,但但OO更強調模塊的重用和進化!更強調模塊的重用和進化!軟件構造特性軟件構造特性構件是核心和基礎構件是核心和基礎實現(xiàn)軟件復用的關鍵因素主要包括:實現(xiàn)軟件復用的關鍵因素主要包括:軟件構件技術軟件構件技術(software component technology)領域工程領域工程(domain engineering)軟件構架軟件構架(software architecture) 軟件再工程軟件再工程(software reengineering)開放系統(tǒng)開放系統(tǒng)(open sys

39、tem)軟件過程軟件過程(software process)CASE 技術技術 實現(xiàn)軟件復用的關鍵技術實現(xiàn)軟件復用的關鍵技術軟件構件技術軟件構件技術CASE技術技術軟件過程軟件過程 非技術因素非技術因素 領域工程領域工程 軟件再工程軟件再工程 軟件架構技術軟件架構技術 開放系統(tǒng)技術開放系統(tǒng)技術 應用系統(tǒng)領域應用系統(tǒng)領域遺產軟件系統(tǒng)遺產軟件系統(tǒng)構件架構獲取構件架構獲取標準化與描述標準化與描述分類存儲檢索分類存儲檢索構件組裝構件組裝軟件質量軟件質量軟件的質量包括:軟件的質量包括: 正確性正確性 高效性高效性 可靠性可靠性 安全性安全性 可升級性可升級性 可維護性可維護性 其他質量特性其他質量特性管

40、理角度:管理角度:CMM,ISO9000-QA角色的獨立性?角色的獨立性?軟件項目管理軟件項目管理軟件項目管理是為了使軟件項目能夠按照預定的軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對人員成本、進度、質量順利完成,而對人員(People)、產品()、產品(Product)、過程)、過程(Process)和項目)和項目(Project)進行分析和管理的進行分析和管理的活動?;顒?。根本目的是為了讓軟件項目尤其是大型項目的整根本目的是為了讓軟件項目尤其是大型項目的整個軟件生命周期都能在管理者的控制之下,以個軟件生命周期都能在管理者的控制之下,以預定成本按期,按質的完成軟件

41、交付用戶使用。預定成本按期,按質的完成軟件交付用戶使用。軟件項目定義涉及的因素軟件項目定義涉及的因素項目項目最重要的因素是最重要的因素是什么?什么?項目管理軟件過程管理軟件過程管理軟件過程(軟件過程(Software Process)是指一套關于項)是指一套關于項目的階段、狀態(tài)、方法、技術和開發(fā)、維護軟目的階段、狀態(tài)、方法、技術和開發(fā)、維護軟件的人員以及相關件的人員以及相關Artifacts組成。組成。目前有三種方法:目前有三種方法:UP(the unified process),),The OPEN Process,OOSP(The Object-Oriented Software Proc

42、ess) 軟件過程管理(續(xù))軟件過程管理(續(xù))CMM(Capability Maturity Modeling)對于軟件組對于軟件組織在定義、實施、度量、控制和改善其軟件過織在定義、實施、度量、控制和改善其軟件過程的實踐中各個發(fā)展階段的描述,對軟件過程程的實踐中各個發(fā)展階段的描述,對軟件過程的必要條件作出了明確的定義,劃分五個成熟的必要條件作出了明確的定義,劃分五個成熟等級等級 :分為分為 5 級級: 初始級、可重復級、可定義級、可管初始級、可重復級、可定義級、可管理級、可優(yōu)化級。理級、可優(yōu)化級。CMM與與ISO9000 CMM是專門針對軟件產品開發(fā)和服務的,而是專門針對軟件產品開發(fā)和服務的,

43、而ISO9000涉及的范圍則相當寬。涉及的范圍則相當寬。 CMM強調軟件開發(fā)過程的成熟度,即過程的強調軟件開發(fā)過程的成熟度,即過程的不斷改進和提高。而不斷改進和提高。而ISO9000則強調可接收的則強調可接收的質量體系的最低標準。質量體系的最低標準。CCSE UESTC. Designed by G.Liu70/81CCSE UESTC. Designed by G.Liu71/81CCSE UESTC. Designed by G.Liu72/81CCSE UESTC. Designed by G.Liu73/81CCSE UESTC. Designed by G.Liu74/81 特點特點

44、 過程執(zhí)行雜亂無序過程執(zhí)行雜亂無序 管理方式管理方式- -反應式反應式關鍵問題關鍵問題 項目計劃管理、配置管理、軟件質量保證項目計劃管理、配置管理、軟件質量保證達標標準達標標準 過程活動無一定秩序,開發(fā)過程的可重復過程活動無一定秩序,開發(fā)過程的可重復性差性差CCSE UESTC. Designed by G.Liu75/81CCSE UESTC. Designed by G.Liu76/81 CCSE UESTC. Designed by G.Liu77/81 CCSE UESTC. Designed by G.Liu78/81 CMMCMM為軟件過程能力提供了階梯式的改進框架,基于軟件工程的經驗教訓,提供了基于過程改進的框架圖,從而使軟件組織走向成熟。-組織能力而非個體能力-關注整體過程及持續(xù)改進-給出目標和KPA,如何執(zhí)行?CCSE UESTC. Designed by G.Liu80/81Summary: A Heg

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論