




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、教材和參考書教材和參考書 軟件開發(fā)技術(shù),電子工業(yè)出版社,張帆等編著;軟件開發(fā)技術(shù),電子工業(yè)出版社,張帆等編著; Software Engineering, 6th Edition,作者:,作者:(英)(英)Ian Sommerville,出版社:機械工業(yè)出,出版社:機械工業(yè)出版社(影印版)版社(影印版) 軟件設(shè)計軟件設(shè)計-從程序到體系結(jié)構(gòu),(美)從程序到體系結(jié)構(gòu),(美)Eric J. Braude,李仁發(fā)等譯,電子工業(yè)出版社,李仁發(fā)等譯,電子工業(yè)出版社 IBM中國,中國,http:/ UESTC. Designed by G.Liu4/81基本內(nèi)容基本內(nèi)容1. 軟件危機新問題軟件危機新問題2.
2、 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展基本內(nèi)容基本內(nèi)容1. 軟件危機新問題軟件危機新問題2. 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展CCSE UESTC. Designed by G.Liu6/81基本內(nèi)容基本內(nèi)容 軟件危機軟件危機原因、過去和現(xiàn)在的變化原因、過去和現(xiàn)在的變化 企業(yè)信息化企業(yè)信息化相關(guān)問題、解決方法相關(guān)問題、解決方法 軟件開發(fā)技術(shù)的發(fā)展軟件開發(fā)技術(shù)的發(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)總結(jié):早期軟件危機的表現(xiàn)總結(jié):早期軟件危機的表現(xiàn) 開發(fā)費用和進度失控開發(fā)費用和進度失控 可靠性差,缺少度量標準可靠性差,缺少度量標準 難以維護,不易升級難以維護,不易升級 沒有充分的文檔資料沒有充分的文檔資料因此,軟件工程因此,軟件工程SE應(yīng)運而生。應(yīng)
7、運而生。1968,北大西洋公約組織,聯(lián)邦德國,北大西洋公約組織,聯(lián)邦德國當年語錄當年語錄-關(guān)于項目管理關(guān)于項目管理CCSE UESTC. Designed by G.Liu19/81軟件開發(fā)管理將繼續(xù)背負目前的在成本和計劃有效性上的壞名聲,直到有朝一日,人們對軟件設(shè)計工程有了更全面的理解和認識。我們開發(fā)軟件系統(tǒng)就像萊特兄弟制造飛機造好整個系統(tǒng),把它推下懸崖,讓它墜毀,然后重新開始。管理工作方面,大型軟件的開發(fā)是一個令人恐怖的事情。人們的認識中,這種工作通常會成為血本無歸的泥潭,耗費財力,永無止境。當年語錄當年語錄-關(guān)于設(shè)計和最終產(chǎn)品的區(qū)別關(guān)于設(shè)計和最終產(chǎn)品的區(qū)別CCSE UESTC. Desi
8、gned by G.Liu20/81設(shè)計和最終產(chǎn)品之間的區(qū)別本質(zhì)上是一個理論與實際的問題,受各生產(chǎn)部門需求的影響。軟件中大多數(shù)致命問題都起源于概念,幾乎都統(tǒng)一的遵循這樣的規(guī)律:你試圖弄清楚你們打算要做什么,然后就這樣做了。這就是我們大多數(shù)麻煩問題的來源。當年語錄當年語錄-關(guān)于需求和效率關(guān)于需求和效率CCSE UESTC. Designed by G.Liu21/81用戶感興趣的是對系統(tǒng)提需求,而且按照需求購買系統(tǒng)。但這里的潛臺詞是用戶能說出他們想要什么。而大部分的用戶說不清楚。我們應(yīng)該在設(shè)計過程中盡早的獲取用戶反饋。-我對程序員在工作效率中表現(xiàn)出的巨大的差異有個疑問。你能在其它類似的技術(shù)領(lǐng)域找
9、到相似的差異度嗎?事實上,軟件開發(fā)中的差異比任何其它行業(yè)都要大。當年語錄當年語錄-關(guān)于開發(fā)和測試關(guān)于開發(fā)和測試CCSE UESTC. Designed by G.Liu22/81開發(fā)應(yīng)該循序漸進開展,軟件一步一步完成。我的座右銘是“解決小的,有用的,現(xiàn)在?!贝笮拖到y(tǒng)必須慢慢完善,不可能在某個時間里全部完成。你必須讓最初的小的核心系統(tǒng)真正無誤的運行起來。系統(tǒng)必須具有自動化測試能力。我們必須開發(fā)和維護一些可執(zhí)行程序來檢驗系統(tǒng)中所有的其它部分。軟件危機解決了嗎?軟件危機解決了嗎?新問題(新問題(20世紀世紀80年代以來)年代以來)軟件規(guī)模、復雜度加大軟件規(guī)模、復雜度加大信息孤島信息孤島應(yīng)用集成應(yīng)用集
10、成投資效益低投資效益低信息化持續(xù)建設(shè)信息化持續(xù)建設(shè)表現(xiàn):表現(xiàn):軟件成本居高不下軟件成本居高不下軟件生產(chǎn)率低下軟件生產(chǎn)率低下CCSE UESTC. Designed by G.Liu24/81Exchange2000Windows2000項目經(jīng)理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人CCSE UESTC. Designed by G.Liu25/81Exchange2000Windows2000項目經(jīng)理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人近年來的發(fā)展近年來的發(fā)展 中國市場需求大中國市場需求大 技術(shù)總體在一個追趕的趨勢技術(shù)總體在
11、一個追趕的趨勢 中國軟件企業(yè)最后的機會中國軟件企業(yè)最后的機會-信息化浪潮!信息化浪潮! 企業(yè)信息化企業(yè)信息化是一個系統(tǒng)工程是一個系統(tǒng)工程 ! 范圍廣,縱深大!范圍廣,縱深大!企業(yè)信息化的分類和層次企業(yè)信息化的分類和層次分類:分類: 行業(yè)、企業(yè)運營模式、企業(yè)的應(yīng)用深度等行業(yè)、企業(yè)運營模式、企業(yè)的應(yīng)用深度等層次層次 單元技術(shù)單元技術(shù) 技術(shù)部門集成技術(shù)部門集成 企業(yè)內(nèi)容集成企業(yè)內(nèi)容集成 動態(tài)聯(lián)盟集成動態(tài)聯(lián)盟集成企業(yè)信息化的意義企業(yè)信息化的意義 宏觀:宏觀: 增強經(jīng)濟可持續(xù)性快速發(fā)展,國家綜合實力;增強經(jīng)濟可持續(xù)性快速發(fā)展,國家綜合實力; WTO挑戰(zhàn),適應(yīng)國際競爭;挑戰(zhàn),適應(yīng)國際競爭; 實現(xiàn)企業(yè)生產(chǎn)經(jīng)
12、營的運營自動化、管理網(wǎng)絡(luò)化、實現(xiàn)企業(yè)生產(chǎn)經(jīng)營的運營自動化、管理網(wǎng)絡(luò)化、決策智能化;決策智能化; 增加企業(yè)間技術(shù)流通,提升整個行業(yè)技術(shù)水平增加企業(yè)間技術(shù)流通,提升整個行業(yè)技術(shù)水平 中觀:中觀: 企業(yè)信息化可為企業(yè)帶來較多優(yōu)勢企業(yè)信息化可為企業(yè)帶來較多優(yōu)勢 ; 微觀:微觀: 可以降低技術(shù)人才的勞動強度可以降低技術(shù)人才的勞動強度(計算機手段計算機手段),提,提升技術(shù)人才的腦力價值;可以有效改善工作環(huán)境升技術(shù)人才的腦力價值;可以有效改善工作環(huán)境 目的:消除孤島目的:消除孤島一般而言:一般而言:“信息孤島信息孤島”:和信息共享的矛盾:和信息共享的矛盾 “應(yīng)用孤島應(yīng)用孤島”:和業(yè)務(wù)整合的矛盾:和業(yè)務(wù)整合的
13、矛盾 “資源孤島資源孤島” :和資源協(xié)同的矛盾:和資源協(xié)同的矛盾 軟件應(yīng)用集成軟件應(yīng)用集成傳統(tǒng)的傳統(tǒng)的EAI(Enterpris Application Integration) 數(shù)據(jù)級,面向信息和數(shù)據(jù)數(shù)據(jù)級,面向信息和數(shù)據(jù) 應(yīng)用接口級,面向接口應(yīng)用接口級,面向接口API 業(yè)務(wù)邏輯級業(yè)務(wù)邏輯級 ,面向過程,面向過程.業(yè)務(wù)邏輯業(yè)務(wù)邏輯 要求和限制問題要求和限制問題Solution:面向面向功能層功能層的企業(yè)應(yīng)用集成方式的企業(yè)應(yīng)用集成方式 面向服務(wù)架構(gòu)(面向服務(wù)架構(gòu)(SOA)的)的EAI方式方式 Pro:語言獨立;松耦合;跨平臺;封裝性;:語言獨立;松耦合;跨平臺;封裝性;服務(wù)位置透明服務(wù)位置透明
14、etc.現(xiàn)在全球軟件產(chǎn)業(yè)范式轉(zhuǎn)型現(xiàn)在全球軟件產(chǎn)業(yè)范式轉(zhuǎn)型當前形勢的要求:當前形勢的要求: 網(wǎng)絡(luò)化網(wǎng)絡(luò)化Google的互聯(lián)網(wǎng)軟件模式?的互聯(lián)網(wǎng)軟件模式? 全球化全球化印度的外包?印度的外包? 服務(wù)化服務(wù)化Web Service?云計算?云計算? 開放化開放化開源軟件與創(chuàng)新?開源軟件與創(chuàng)新?CCSE UESTC. Designed by G.Liu32/81CCSE UESTC. Designed by G.Liu33/81基本內(nèi)容基本內(nèi)容1. 軟件危機新問題軟件危機新問題2. 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展新網(wǎng)絡(luò)形勢下軟件
15、開發(fā)技術(shù)進展CCSE UESTC. Designed by G.Liu34/81唯有對軟件和軟件的開發(fā)過程,有充分的認唯有對軟件和軟件的開發(fā)過程,有充分的認識,才能識,才能更好的開發(fā)出,更好的開發(fā)出,過程受控、質(zhì)量受控過程受控、質(zhì)量受控的軟件的軟件產(chǎn)品。產(chǎn)品。CCSE UESTC. Designed by G.Liu35/81對軟件的偏見或誤解對軟件的偏見或誤解 軟件就是程序,軟件開發(fā)就是編寫程序。軟件就是程序,軟件開發(fā)就是編寫程序。編完了程序,就一切編完了程序,就一切OK了。了。掌握了最新的語言和工具,就能寫程序了。掌握了最新的語言和工具,就能寫程序了。軟件是靈活的,軟件的修改很容易。軟件是
16、靈活的,軟件的修改很容易。一個人,只要會編程,就能寫軟件,就是程序員;一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要召些程序員,就能開發(fā)好的軟件產(chǎn)品。一個公司,只要召些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個有經(jīng)驗的程序員,再找些兼職的大學生,就只要有幾個有經(jīng)驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。能組成一個軟件公司。軟件工程目的軟件工程目的軟件工程的主要目標是:生產(chǎn)具有正確性、可用軟件工程的主要目標是:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。性以及開銷合宜的產(chǎn)品。目標目標 正確性意指軟件產(chǎn)品達到預期功能的程度。正確性意指軟件產(chǎn)品達到預期功能的程度。 可用性指軟件基
17、本結(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的可用性指軟件基本結(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的程度。程度。 開銷合宜性是指軟件開發(fā)、運行的整個開銷滿足用開銷合宜性是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。戶要求的程度。目標即約束:這些目標的實現(xiàn)形成了對過程、過目標即約束:這些目標的實現(xiàn)形成了對過程、過程模型及工程方法選取的約束程模型及工程方法選取的約束 。軟件工程軟件工程4原則原則1.選取適宜開發(fā)范型。選取適宜開發(fā)范型。必須認識需求定義的易變性,采用必須認識需求定義的易變性,采用適宜的開發(fā)范型予以控制,以保證軟件產(chǎn)品滿足用戶的適宜的開發(fā)范型予以控制,以保證軟件產(chǎn)品滿足用戶的要求。要求。2.采用合適的設(shè)計方法
18、。采用合適的設(shè)計方法。在軟件設(shè)計中,通常要考慮軟件在軟件設(shè)計中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應(yīng)的模塊化、抽象與信息隱蔽、局部化、一致性以及適應(yīng)性等特征。性等特征。3.提供高質(zhì)量的工程支持。提供高質(zhì)量的工程支持。軟件工具與環(huán)境對軟件過程的軟件工具與環(huán)境對軟件過程的支持頗為重要。軟件工程項目的質(zhì)量與開銷直接取決于支持頗為重要。軟件工程項目的質(zhì)量與開銷直接取決于對軟件工程所提供的支撐質(zhì)量和效用。對軟件工程所提供的支撐質(zhì)量和效用。4.重視開發(fā)過程的管理。重視開發(fā)過程的管理。軟件工程的管理,直接影響可用軟件工程的管理,直接影響可用資源的有效利用,生產(chǎn)滿足目標的軟件產(chǎn)品,提
19、高軟件資源的有效利用,生產(chǎn)滿足目標的軟件產(chǎn)品,提高軟件組織的生產(chǎn)能力等問題。因此,僅當軟件過程得以有效組織的生產(chǎn)能力等問題。因此,僅當軟件過程得以有效管理時,才能實現(xiàn)有效的軟件工程管理時,才能實現(xiàn)有效的軟件工程 。軟件工程的基本原理,軟件工程的基本原理,Boehm 19831.分階段的生命周期計劃嚴格管理分階段的生命周期計劃嚴格管理2.堅持進行階段評審堅持進行階段評審3.實行嚴格的產(chǎn)品控制實行嚴格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計技術(shù)采用現(xiàn)代程序設(shè)計技術(shù)5.結(jié)果應(yīng)能清楚審查結(jié)果應(yīng)能清楚審查6.開發(fā)小組的人員應(yīng)少而精開發(fā)小組的人員應(yīng)少而精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 結(jié)構(gòu)化方法結(jié)構(gòu)化
22、方法 structured method 面向?qū)ο蠓椒嫦驅(qū)ο蠓椒?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ā)的質(zhì)量質(zhì)量軟件開發(fā)過程的成熟,是長軟件開發(fā)過程的成熟,是長期積累的結(jié)果期積累的結(jié)果如何衡量一個組織具有開發(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軟件質(zhì)量軟件質(zhì)量 software quality 軟件質(zhì)量是指軟件產(chǎn)品中能滿足給定需求的各種特性的總和。軟件質(zhì)量是指軟
24、件產(chǎn)品中能滿足給定需求的各種特性的總和。這些特性稱做質(zhì)量特性,它包括功能度、可靠性、易使用性、時間經(jīng)這些特性稱做質(zhì)量特性,它包括功能度、可靠性、易使用性、時間經(jīng)濟性、資源經(jīng)濟性、可維護性和可移植性等。濟性、資源經(jīng)濟性、可維護性和可移植性等。 質(zhì)量保證質(zhì)量保證 quality assurance 質(zhì)量保證是指為使軟件質(zhì)量保證是指為使軟件產(chǎn)品符合規(guī)定需求所產(chǎn)品符合規(guī)定需求所進行的一系列有進行的一系列有計劃的必要工作。計劃的必要工作。 通過控制軟件的過程,通過控制軟件的過程, 控制軟件的質(zhì)量控制軟件的質(zhì)量CCSE UESTC. Designed by G.Liu45/81關(guān)于軟件開發(fā)成本的誤解關(guān)于軟
25、件開發(fā)成本的誤解盜版軟件盜版軟件認為軟件是沒有成本的,至少比硬件便宜認為軟件是沒有成本的,至少比硬件便宜硬件實驗燒了東西,大家很心疼,但是即使軟件設(shè)計出現(xiàn)致命的缺硬件實驗燒了東西,大家很心疼,但是即使軟件設(shè)計出現(xiàn)致命的缺陷,也少有人覺得是災(zāi)難陷,也少有人覺得是災(zāi)難軟件開發(fā)是需要很高的成本的軟件開發(fā)是需要很高的成本的修改軟件缺陷需要大量的成本修改軟件缺陷需要大量的成本需求的變動需要成本需求的變動需要成本項目的管理也需要成本項目的管理也需要成本越到后期,成本的增加越到后期,成本的增加越大,為指數(shù)增長越大,為指數(shù)增長CCSE UESTC. Designed by G.Liu46/81軟件項目的合理利
26、潤軟件項目的合理利潤?30%-40%軟件公司的運作成本如何軟件公司的運作成本如何?人力人力(工資工資)50%物力物力(物業(yè)、水電、通信、差旅、福利、稅收、社保等)物業(yè)、水電、通信、差旅、福利、稅收、社保等)50%軟件行業(yè)的人力成本如何軟件行業(yè)的人力成本如何?系統(tǒng)分析員系統(tǒng)分析員(軟件架構(gòu)師軟件架構(gòu)師) 8000-12000項目經(jīng)理(高級程序員)項目經(jīng)理(高級程序員)4000-6000程序員(程序員)程序員(程序員)2000-3000CCSE UESTC. Designed by G.Liu47/81軟件開發(fā)像織網(wǎng)軟件開發(fā)像織網(wǎng)耦合性強,開發(fā)人員合作成本高耦合性強,開發(fā)人員合作成本高模塊化差,每
27、一次改動,都要從頭考慮。模塊化差,每一次改動,都要從頭考慮。一個失誤,可能導致整個系統(tǒng)崩潰一個失誤,可能導致整個系統(tǒng)崩潰軟件越往后,開發(fā)的成本越高,進展越慢。軟件越往后,開發(fā)的成本越高,進展越慢。硬件開發(fā)像堆積木硬件開發(fā)像堆積木硬件模塊化強,相對耦合小硬件模塊化強,相對耦合小 ,接口明確,可以大部件的復用,接口明確,可以大部件的復用硬件開發(fā)的階段性強硬件開發(fā)的階段性強 ,硬件開發(fā)中,合作更容易一些,硬件開發(fā)中,合作更容易一些 辛苦程度?辛苦程度?CCSE UESTC. Designed by G.Liu48/81 特別的需求管理特別的需求管理 模糊和不精確的交流模糊和不精確的交流 脆弱的構(gòu)架脆
28、弱的構(gòu)架 過度復雜過度復雜 未檢測出需求、設(shè)計和實現(xiàn)之間的不一致未檢測出需求、設(shè)計和實現(xiàn)之間的不一致 測試的不足測試的不足 對于項目狀況的評估過于主觀對于項目狀況的評估過于主觀 未解決存在的風險未解決存在的風險 無法控制變化的產(chǎn)生和傳播無法控制變化的產(chǎn)生和傳播 自動控制不足自動控制不足軟件開發(fā)方法綜述軟件開發(fā)方法綜述1. 結(jié)構(gòu)化方法結(jié)構(gòu)化方法2. 面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法3. 面向問題的分析方法面向問題的分析方法4. 原型化方法原型化方法5. 面向?qū)ο蟮能浖_發(fā)方法面向?qū)ο蟮能浖_發(fā)方法6. 可視化開發(fā)方法可視化開發(fā)方法結(jié)構(gòu)化方法結(jié)構(gòu)化方法結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方
29、法(Structured Method,結(jié)構(gòu)化方法,結(jié)構(gòu)化方法)是強是強調(diào)開發(fā)方法的結(jié)構(gòu)合理性以及所開發(fā)軟件的結(jié)構(gòu)合理調(diào)開發(fā)方法的結(jié)構(gòu)合理性以及所開發(fā)軟件的結(jié)構(gòu)合理性的軟件開發(fā)方法。性的軟件開發(fā)方法。 結(jié)構(gòu)是指系統(tǒng)內(nèi)各個組成要素之間的相互聯(lián)系、相互作用的結(jié)構(gòu)是指系統(tǒng)內(nèi)各個組成要素之間的相互聯(lián)系、相互作用的框架??蚣?。 結(jié)構(gòu)化開發(fā)方法提出了一組提高軟件結(jié)構(gòu)合理性的準則,如結(jié)構(gòu)化開發(fā)方法提出了一組提高軟件結(jié)構(gòu)合理性的準則,如分解與抽象、模塊獨立性、信息隱蔽等。分解與抽象、模塊獨立性、信息隱蔽等。 針對軟件生存周期各個不同的階段,它有:針對軟件生存周期各個不同的階段,它有: 結(jié)構(gòu)化分析結(jié)構(gòu)化分析(S
30、A) 結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計(SD) 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計(SP)等方法。等方法。 面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法 也稱為也稱為Jackson方法(方法(1975),從目標系統(tǒng)的),從目標系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導出程序框架結(jié)構(gòu),輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導出程序框架結(jié)構(gòu),再補充其它細節(jié),就可得到完整的程序結(jié)構(gòu)圖。再補充其它細節(jié),就可得到完整的程序結(jié)構(gòu)圖。 對輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別對輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別有效,如商業(yè)應(yīng)用中的文件表格處理。該方法有效,如商業(yè)應(yīng)用中的文件表格處理。該方法也可與其它方法結(jié)合,用于模塊的詳細設(shè)計也可與其它
31、方法結(jié)合,用于模塊的詳細設(shè)計 。面向問題的分析法面向問題的分析法PAM(Problem Analysis Method)是)是80年代末年代末由日立公司提出的一種軟件開發(fā)方法。由日立公司提出的一種軟件開發(fā)方法。PAM方方法希望能兼顧法希望能兼顧SA方法、方法、Jackson方法和自底向方法和自底向上的軟件開發(fā)方法的優(yōu)點,而避免它們的缺陷。上的軟件開發(fā)方法的優(yōu)點,而避免它們的缺陷。它的基本思想是:考慮到輸入、輸出數(shù)據(jù)結(jié)構(gòu),它的基本思想是:考慮到輸入、輸出數(shù)據(jù)結(jié)構(gòu),指導系統(tǒng)的分解,在系統(tǒng)分析指導下逐步綜合。指導系統(tǒng)的分解,在系統(tǒng)分析指導下逐步綜合。 面向問題的分析法(續(xù))面向問題的分析法(續(xù))PA
32、M方法的另一個優(yōu)點是方法的另一個優(yōu)點是使用問題分析使用問題分析PAD圖。圖。采用二維樹形結(jié)構(gòu)圖,采用二維樹形結(jié)構(gòu)圖,遠優(yōu)于遠優(yōu)于NS圖和圖和PDL語言語言 。 由于在輸入、輸出數(shù)據(jù)結(jié)由于在輸入、輸出數(shù)據(jù)結(jié)構(gòu)與整個系統(tǒng)之間同樣構(gòu)與整個系統(tǒng)之間同樣存在著鴻溝,這一方法存在著鴻溝,這一方法仍只適用于中小型問題仍只適用于中小型問題 。原型化方法原型化方法*開發(fā)工具的發(fā)展使原型變得簡單開發(fā)工具的發(fā)展使原型變得簡單開發(fā)原型化系統(tǒng)一般由以下幾個階段:開發(fā)原型化系統(tǒng)一般由以下幾個階段: (1) 確定用戶需求確定用戶需求 (2) 開發(fā)原始模型開發(fā)原始模型 (3) 征求用戶對初始原型的改進意見征求用戶對初始原型的
33、改進意見 (4) 修改原型。修改原型。原型化方法(續(xù))原型化方法(續(xù))原型化開發(fā)方法比較適合于用戶需求不清、原型化開發(fā)方法比較適合于用戶需求不清、業(yè)務(wù)理論不確定、需求經(jīng)常變化的情況。業(yè)務(wù)理論不確定、需求經(jīng)常變化的情況。當系統(tǒng)規(guī)模不是很大也不太復雜時采用當系統(tǒng)規(guī)模不是很大也不太復雜時采用該方法是比較好的該方法是比較好的 。面向?qū)ο蟮能浖_發(fā)方法面向?qū)ο蟮能浖_發(fā)方法隨著隨著OOP(面向?qū)ο缶幊蹋┫颍嫦驅(qū)ο缶幊蹋┫騉OD(面向?qū)ο螅嫦驅(qū)ο笤O(shè)計)和設(shè)計)和OOA(面向?qū)ο蠓治觯┑陌l(fā)展,最終(面向?qū)ο蠓治觯┑陌l(fā)展,最終形成面向?qū)ο蟮能浖_發(fā)方法形成面向?qū)ο蟮能浖_發(fā)方法OMT (Object Mo
34、deling Technique)。)。這是一種自底向上和自頂向下相結(jié)合的方法,而這是一種自底向上和自頂向下相結(jié)合的方法,而且它以對象建模為基礎(chǔ),從而且它以對象建模為基礎(chǔ),從而不僅考慮了輸入、不僅考慮了輸入、輸出數(shù)據(jù)結(jié)構(gòu),實際上也包含了所有對象的數(shù)輸出數(shù)據(jù)結(jié)構(gòu),實際上也包含了所有對象的數(shù)據(jù)結(jié)構(gòu)據(jù)結(jié)構(gòu)。 目前標準為目前標準為UML可視化開發(fā)方法可視化開發(fā)方法可視化開發(fā)使我們把注意力集中在業(yè)務(wù)邏輯和業(yè)可視化開發(fā)使我們把注意力集中在業(yè)務(wù)邏輯和業(yè)務(wù)流程上,用戶界面可以用可視化工具方便的務(wù)流程上,用戶界面可以用可視化工具方便的構(gòu)成。構(gòu)成。通過操作界面元素,諸如菜單、按鈕、對話框、通過操作界面元素,諸如菜
35、單、按鈕、對話框、編輯框、單選框、復選框、編輯框、單選框、復選框、 列表框和滾動條等,列表框和滾動條等,由可視開發(fā)工具自動生成應(yīng)用軟件由可視開發(fā)工具自動生成應(yīng)用軟件 。e.g., 前臺工具和后臺開發(fā)工具以及設(shè)計工具等。前臺工具和后臺開發(fā)工具以及設(shè)計工具等。基本內(nèi)容基本內(nèi)容1. 軟件危機新問題軟件危機新問題2. 軟件工程理論回顧軟件工程理論回顧3. 軟件開發(fā)規(guī)律認識軟件開發(fā)規(guī)律認識4. 新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展新網(wǎng)絡(luò)形勢下軟件開發(fā)技術(shù)進展軟件開發(fā)本質(zhì)軟件開發(fā)本質(zhì)從某種角度來說,軟件開發(fā)的本質(zhì)就是要從某種角度來說,軟件開發(fā)的本質(zhì)就是要實現(xiàn)實現(xiàn)“高層概念高層概念”到到“低層概念低層概念”的映的映
36、射,實現(xiàn)射,實現(xiàn)“高層處理邏輯高層處理邏輯”到到“低層處低層處理邏輯理邏輯”的映射的映射 。整個的實施過程!整個的實施過程!目標目標+活動活動+原則原則軟件工程活動軟件工程活動軟件工程學科所研究的內(nèi)容主要包括:軟件工程學科所研究的內(nèi)容主要包括:1.軟件開發(fā)范型軟件開發(fā)范型涉及軟件工程的涉及軟件工程的“方向方向”問題,研究正問題,研究正確的求解軟件的計算邏輯,建模方法問題。確的求解軟件的計算邏輯,建模方法問題。2.軟件設(shè)計方法軟件設(shè)計方法涉及軟件工程的涉及軟件工程的“途徑途徑”問題,研究問題,研究“高層概念模型和處理邏輯高層概念模型和處理邏輯”到到“低層概念模型和處低層概念模型和處理邏輯理邏輯”
37、的映射;的映射;3.工程支持技術(shù)和過程管理技術(shù)工程支持技術(shù)和過程管理技術(shù)涉及工程過程質(zhì)量和產(chǎn)涉及工程過程質(zhì)量和產(chǎn)品質(zhì)量問題,研究管理學理論在軟件工程中的應(yīng)用品質(zhì)量問題,研究管理學理論在軟件工程中的應(yīng)用 。結(jié)構(gòu)化范型和面向?qū)ο蠓缎徒Y(jié)構(gòu)化范型和面向?qū)ο蠓缎兔嫦蜻^程:數(shù)據(jù)將和設(shè)計模型中以及系統(tǒng)實現(xiàn)(程序)面向過程:數(shù)據(jù)將和設(shè)計模型中以及系統(tǒng)實現(xiàn)(程序)中的行為分離。中的行為分離。面向?qū)ο螅合到y(tǒng)由一系列對象的可重用部件來構(gòu)建,對面向?qū)ο螅合到y(tǒng)由一系列對象的可重用部件來構(gòu)建,對象既包含數(shù)據(jù)也包含功能過程。象既包含數(shù)據(jù)也包含功能過程。面向?qū)ο箝_發(fā)強調(diào)以系統(tǒng)的數(shù)據(jù)為主體,是一種數(shù)據(jù)驅(qū)面向?qū)ο箝_發(fā)強調(diào)以系統(tǒng)的
38、數(shù)據(jù)為主體,是一種數(shù)據(jù)驅(qū)動方式的系統(tǒng)分析和設(shè)計方法。二者都強調(diào)模塊化,動方式的系統(tǒng)分析和設(shè)計方法。二者都強調(diào)模塊化,但但OO更強調(diào)模塊的重用和進化!更強調(diào)模塊的重用和進化!軟件構(gòu)造特性軟件構(gòu)造特性構(gòu)件是核心和基礎(chǔ)構(gòu)件是核心和基礎(chǔ)實現(xiàn)軟件復用的關(guān)鍵因素主要包括:實現(xiàn)軟件復用的關(guān)鍵因素主要包括:軟件構(gòu)件技術(shù)軟件構(gòu)件技術(shù)(software component technology)領(lǐng)域工程領(lǐng)域工程(domain engineering)軟件構(gòu)架軟件構(gòu)架(software architecture) 軟件再工程軟件再工程(software reengineering)開放系統(tǒng)開放系統(tǒng)(open sys
39、tem)軟件過程軟件過程(software process)CASE 技術(shù)技術(shù) 實現(xiàn)軟件復用的關(guān)鍵技術(shù)實現(xiàn)軟件復用的關(guān)鍵技術(shù)軟件構(gòu)件技術(shù)軟件構(gòu)件技術(shù)CASE技術(shù)技術(shù)軟件過程軟件過程 非技術(shù)因素非技術(shù)因素 領(lǐng)域工程領(lǐng)域工程 軟件再工程軟件再工程 軟件架構(gòu)技術(shù)軟件架構(gòu)技術(shù) 開放系統(tǒng)技術(shù)開放系統(tǒng)技術(shù) 應(yīng)用系統(tǒng)領(lǐng)域應(yīng)用系統(tǒng)領(lǐng)域遺產(chǎn)軟件系統(tǒng)遺產(chǎn)軟件系統(tǒng)構(gòu)件架構(gòu)獲取構(gòu)件架構(gòu)獲取標準化與描述標準化與描述分類存儲檢索分類存儲檢索構(gòu)件組裝構(gòu)件組裝軟件質(zhì)量軟件質(zhì)量軟件的質(zhì)量包括:軟件的質(zhì)量包括: 正確性正確性 高效性高效性 可靠性可靠性 安全性安全性 可升級性可升級性 可維護性可維護性 其他質(zhì)量特性其他質(zhì)量特性管
40、理角度:管理角度:CMM,ISO9000-QA角色的獨立性?角色的獨立性?軟件項目管理軟件項目管理軟件項目管理是為了使軟件項目能夠按照預定的軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質(zhì)量順利完成,而對人員成本、進度、質(zhì)量順利完成,而對人員(People)、產(chǎn)品()、產(chǎn)品(Product)、過程)、過程(Process)和項目)和項目(Project)進行分析和管理的進行分析和管理的活動?;顒?。根本目的是為了讓軟件項目尤其是大型項目的整根本目的是為了讓軟件項目尤其是大型項目的整個軟件生命周期都能在管理者的控制之下,以個軟件生命周期都能在管理者的控制之下,以預定成本按期,按質(zhì)的完成軟件
41、交付用戶使用。預定成本按期,按質(zhì)的完成軟件交付用戶使用。軟件項目定義涉及的因素軟件項目定義涉及的因素項目項目最重要的因素是最重要的因素是什么?什么?項目管理軟件過程管理軟件過程管理軟件過程(軟件過程(Software Process)是指一套關(guān)于項)是指一套關(guān)于項目的階段、狀態(tài)、方法、技術(shù)和開發(fā)、維護軟目的階段、狀態(tài)、方法、技術(shù)和開發(fā)、維護軟件的人員以及相關(guān)件的人員以及相關(guān)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是專門針對軟件產(chǎn)品開發(fā)和服務(wù)的,而是專門針對軟件產(chǎn)品開發(fā)和服務(wù)的,
43、而ISO9000涉及的范圍則相當寬。涉及的范圍則相當寬。 CMM強調(diào)軟件開發(fā)過程的成熟度,即過程的強調(diào)軟件開發(fā)過程的成熟度,即過程的不斷改進和提高。而不斷改進和提高。而ISO9000則強調(diào)可接收的則強調(diào)可接收的質(zhì)量體系的最低標準。質(zhì)量體系的最低標準。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í)行雜亂無序 管理方式管理方式- -反應(yīng)式反應(yīng)式關(guān)鍵問題關(guān)鍵問題 項目計劃管理、配置管理、軟件質(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為軟件過程能力提供了階梯式的改進框架,基于軟件工程的經(jīng)驗教訓,提供了基于過程改進的框架圖,從而使軟件組織走向成熟。-組織能力而非個體能力-關(guān)注整體過程及持續(xù)改進-給出目標和KPA,如何執(zhí)行?CCSE UESTC. Designed by G.Liu80/81Summary: A Heg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京社保合同范本
- 占用綠地賠償合同范本
- 抵押個人汽車借款合同范本
- 勞務(wù)外協(xié)施工合同范本
- 廚房承包職務(wù)合同范本
- 吊裝費合同范本
- 貓砂購銷合同范本
- 吊籃進場合同范本
- 副食品合同范本
- 宣傳制作設(shè)計合同范本
- 2025年中考第一次模擬考試地理(青海卷)(全解全析)
- 中小學領(lǐng)導班子包級包組包班制度
- Deepseek 學習手冊分享
- 汽車掛靠經(jīng)營合同協(xié)議書模板
- 基坑土方開挖專項施工方案(完整版)
- 電網(wǎng)工程設(shè)備材料信息參考價(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 數(shù)據(jù)中心運維服務(wù)投標方案(技術(shù)標)
- 2025年中煤集團新疆能源有限公司招聘筆試參考題庫含答案解析
- 2024-2025學年山東省濰坊市高一上冊1月期末考試數(shù)學檢測試題(附解析)
- 電玩城培訓課件
評論
0/150
提交評論