軟件技術(shù)發(fā)展簡介_第1頁
軟件技術(shù)發(fā)展簡介_第2頁
軟件技術(shù)發(fā)展簡介_第3頁
軟件技術(shù)發(fā)展簡介_第4頁
軟件技術(shù)發(fā)展簡介_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件開發(fā)技術(shù)發(fā)展進程與案例軟件開發(fā)技術(shù)發(fā)展進程與案例 小組成員:蔡海飛 陳飛 崔松松 李巖 王喆 目錄 軟件開發(fā)技術(shù)發(fā)展史軟件開發(fā)技術(shù)發(fā)展史 軟件危機軟件危機 軟件工程軟件工程 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 面向?qū)ο蟮姆椒嫦驅(qū)ο蟮姆椒?框架式設(shè)計方法框架式設(shè)計方法 大數(shù)據(jù)大數(shù)據(jù) 軟件開發(fā)技術(shù)發(fā)展史軟件開發(fā)技術(shù)發(fā)展史社會應(yīng)用需求的驅(qū)動是推進軟件發(fā)展進程的主線: 從軟件發(fā)展早期的按個人意愿編寫代碼,到按軟件工程的理論生產(chǎn)大型應(yīng)用系統(tǒng); 從手工作坊式的封閉性制作到按標(biāo)準(zhǔn)制式、大工業(yè)生產(chǎn)的開放系統(tǒng); 從注重個人精雕細琢地編寫代碼的技巧到注重工程項目的管理和開發(fā)團隊的協(xié)作; 從為特定應(yīng)用定制設(shè)計到以復(fù)

2、用為目標(biāo)的組件式開發(fā); 從由少數(shù)軟件天才的編程藝術(shù)到由廣大用戶直接參與的應(yīng)用開發(fā)。 軟件危機軟件危機 20 世紀(jì)60年代中期,大容量、高速度計算機的出現(xiàn),使計算機的應(yīng)用范圍迅速擴大,軟件開發(fā)急劇增長。高級語言開始出現(xiàn);操作系統(tǒng)的發(fā)展引起了計算機應(yīng)用方式的變化;大量數(shù)據(jù)處理導(dǎo)致第一代數(shù)據(jù)庫管理系統(tǒng)的誕生。軟件系統(tǒng)的規(guī)模越來越大,復(fù)雜程度越來越高,軟件可靠性問題也越來越突出。原來的個人設(shè)計、個人使用的方式不再能滿足要求,迫切需要改變軟件生產(chǎn)方式,提高軟件生產(chǎn)率,軟件危機(Software Crisis)開始爆發(fā)。 主要表現(xiàn)1)軟件開發(fā)費用和進度失控。2)軟件的可靠性差。3)生產(chǎn)出來的軟件難以維護。

3、4)用戶對軟件功能難以滿足。5)軟件通常缺少適當(dāng)?shù)奈臋n資料。6)生產(chǎn)率提高的速度不能滿足社會需要。7)軟件產(chǎn)品質(zhì)量無法保證。 爆發(fā)原因產(chǎn)生軟件危機有兩個方面的原因:產(chǎn)生軟件危機有兩個方面的原因:1) 與軟件本身的特點有關(guān);是內(nèi)在因素、客觀的存在,只能因勢利導(dǎo)加以解決。2)與軟件開發(fā)和維護的技術(shù)方法有關(guān);是外在因素,可以完善、提高。 解決軟件危機的途徑采用現(xiàn)代化、社會化的組織管理方式采用現(xiàn)代化、社會化的組織管理方式使用成功技術(shù)和方法(面向過程、面向?qū)ο蟮龋┦褂贸晒夹g(shù)和方法(面向過程、面向?qū)ο蟮龋┦褂酶玫能浖_發(fā)工具(匯編、使用更好的軟件開發(fā)工具(匯編、C C、VCVC、JAVAJAVA等)等

4、) 軟件工程誕生軟件工程誕生 軟件工程 1968 年北大西洋公約組織的計算機科學(xué)家在聯(lián)邦德國召開國際會議,第一次討論軟件危機問題,并正式提出“軟件工程(Software Engineering)”一詞,從此一門新興的工程學(xué)科軟件工程學(xué)為研究和克服軟件危機應(yīng)運而生。 軟件工程的定義著名軟件工程專家著名軟件工程專家BoehmBoehm定義定義運用現(xiàn)代科學(xué)技術(shù)知識來運用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計并且構(gòu)造設(shè)計并且構(gòu)造計算機程序以及為開發(fā)、運行和維計算機程序以及為開發(fā)、運行和維護這些程序所必需的相關(guān)文件資料。護這些程序所必需的相關(guān)文件資料。IEEEIEEE給出的定義給出的定義以優(yōu)質(zhì)、高效、低成本為目標(biāo),研究

5、開發(fā)、運行和維護軟件以及使之退以優(yōu)質(zhì)、高效、低成本為目標(biāo),研究開發(fā)、運行和維護軟件以及使之退役的系統(tǒng)方法。役的系統(tǒng)方法。 軟件工程的目標(biāo) 開發(fā)生產(chǎn)盡可能多的軟件產(chǎn)品 提高軟件的生產(chǎn)效率 滿足應(yīng)用的功能需要和具有較好的軟件性能 能按時、按質(zhì)完成軟件開發(fā)任務(wù) 降低軟件開發(fā)成本 軟件開發(fā)方法一、結(jié)構(gòu)化方法二、面向?qū)ο蠓椒ㄈ⒖蚣苁介_發(fā)四、大數(shù)據(jù)開發(fā) 結(jié)構(gòu)化方法(SASD)結(jié)構(gòu)化方法的基本要點是: 1)自頂向下 2)逐步求精 3)模塊化設(shè)計 4)結(jié)構(gòu)化編碼按軟件生命周期劃分: 1)有結(jié)構(gòu)化分析(SA) 2)結(jié)構(gòu)化設(shè)計(SD) 3)結(jié)構(gòu)化實現(xiàn)(SP) 1978年,EYourdon和LLConstanti

6、ne提出了結(jié)構(gòu)化方法,即SASD方法,也可稱為面向功能的軟件開發(fā)方法或面向數(shù)據(jù)流的軟件開發(fā)方法。1979年TomDeMarco對此方法作了進一步的完善。 結(jié)構(gòu)化分析(SA)分析當(dāng)前的情況,做出反映當(dāng)前物理模型的DFD;推導(dǎo)出等價的邏輯模型的DFD;設(shè)計新的邏輯系統(tǒng),生成數(shù)據(jù)字典和基元描述;建立人機接口,提出可供選擇的目標(biāo)系統(tǒng)物理模型的DFD;確定各種方案的成本和風(fēng)險等級,據(jù)此對各種方案進行分析;選擇一種方案;建立完整的需求規(guī)約。 結(jié)構(gòu)化設(shè)計(SD)評審和細化數(shù)據(jù)流圖;確定數(shù)據(jù)流圖的類型;把數(shù)據(jù)流圖映射到軟件模塊結(jié)構(gòu),設(shè)計出模塊結(jié)構(gòu)的層;基于數(shù)據(jù)流圖逐步分解高層模塊,設(shè)計中下層模塊;對模塊結(jié)構(gòu)進

7、行優(yōu)化,得到更為合理的軟件結(jié)構(gòu);描述模塊接口。設(shè)計原則(1)使每個模塊盡量只執(zhí)行一個功能(堅持功能性內(nèi)聚);(2)每個模塊用過程語句(或函數(shù)方式等)調(diào)用其他模塊;(3)模塊間傳送的參數(shù)作數(shù)據(jù)用;(4)模塊間共用的信息(如參數(shù)等)盡量少。 結(jié)構(gòu)化設(shè)計方法圖 面向?qū)ο蠓椒ǎ╫o) 隨著隨著OOPOOP(面向?qū)ο缶幊蹋┫颍嫦驅(qū)ο缶幊蹋┫騉ODOOD(面向?qū)ο笤O(shè)計)和(面向?qū)ο笤O(shè)計)和OOAOOA(面(面向?qū)ο蠓治觯┑陌l(fā)展,最終形成面向?qū)ο蟮能浖_發(fā)方法向?qū)ο蠓治觯┑陌l(fā)展,最終形成面向?qū)ο蟮能浖_發(fā)方法OMT(Object OMT(Object Modelling TechniqueModellin

8、g Technique)。這是一種自底向上和自頂向下相結(jié)合的方法,而)。這是一種自底向上和自頂向下相結(jié)合的方法,而且它以對象建模為基礎(chǔ),從而不僅考慮了輸入、輸出數(shù)據(jù)結(jié)構(gòu),實際上且它以對象建模為基礎(chǔ),從而不僅考慮了輸入、輸出數(shù)據(jù)結(jié)構(gòu),實際上也包含了所有對象的數(shù)據(jù)結(jié)構(gòu)。所以也包含了所有對象的數(shù)據(jù)結(jié)構(gòu)。所以O(shè)MTOMT徹底實現(xiàn)了徹底實現(xiàn)了PAMPAM沒有完全實現(xiàn)沒有完全實現(xiàn)的目標(biāo)。不僅如此,的目標(biāo)。不僅如此,OOOO技術(shù)在需求分析、可維護性和可靠性這三個軟技術(shù)在需求分析、可維護性和可靠性這三個軟件開發(fā)的關(guān)鍵環(huán)節(jié)和質(zhì)量指標(biāo)上有了實質(zhì)性的突破,徹底地解決了在這件開發(fā)的關(guān)鍵環(huán)節(jié)和質(zhì)量指標(biāo)上有了實質(zhì)性的突破

9、,徹底地解決了在這些方面存在的嚴(yán)重問題,從而宣告了軟件危機末日的來臨。些方面存在的嚴(yán)重問題,從而宣告了軟件危機末日的來臨。 基本特征1)抽象性 抽象性是對事物的抽象概括描述,實現(xiàn)了客觀世界向計算機世界的轉(zhuǎn)化。2)封裝性 封裝(Encapsulation)就是把對象的屬性和行為結(jié)合成一個獨立的單位,并盡可能隱蔽對象的內(nèi)部細節(jié)。3)繼承性 繼承(Inheritance)是一種聯(lián)結(jié)類與類的層次模型。繼承性是指特殊類的對象擁有其一般類的屬性和行為。4)多態(tài)性 多態(tài)性(Polymorphism)是指類中同一函數(shù)名對應(yīng)多個具有相似功能的不同函數(shù),可以使用相同的調(diào)用方式來調(diào)用這些具有不同功能的同名函數(shù)。優(yōu)點

10、:(1)是一種全新的系統(tǒng)分析設(shè)計方法(對象、類、結(jié)構(gòu)屬性、方法)。(2)適用于各類信息系統(tǒng)的開發(fā)。(3)實現(xiàn)了對客觀世界描述到軟件結(jié)構(gòu)的直接轉(zhuǎn)換,大大減少后續(xù)軟件開發(fā)量。(4)開發(fā)工作的重用性、繼承性高,降低重復(fù)工作量。(5)縮短了開發(fā)周期。缺點:(1)需要一定的軟件支持環(huán)境。(2)不太適宜大型的MIS開發(fā),若缺乏整體系統(tǒng)設(shè)計劃分, 易造成系統(tǒng)結(jié)構(gòu)不合理、各部分關(guān)系失調(diào)等問題。(3)只能在現(xiàn)有業(yè)務(wù)基礎(chǔ)上進行分類整理,不能從科學(xué)管理角度進行理順和優(yōu)化。(4)初學(xué)者不易接受、難學(xué)。 圖書館管理系統(tǒng)類圖 框架式設(shè)計方法框架式設(shè)計方法 軟件框架(Software framework),通常指的是為了實

11、現(xiàn)某個業(yè)界標(biāo)準(zhǔn)或完成特定基本任務(wù)的軟件組件規(guī)范,也指為了實現(xiàn)某個軟件組件規(guī)范時,提供規(guī)范所要求之基礎(chǔ)功能的軟件產(chǎn)品。 框架的功能類似于基礎(chǔ)設(shè)施,與具體的軟件應(yīng)用無關(guān),但是提供并實現(xiàn)最為基礎(chǔ)的軟件架構(gòu)和體系。軟件開發(fā)者通常依據(jù)特定的框架實現(xiàn)更為復(fù)雜的商業(yè)運用和業(yè)務(wù)邏輯。這樣的軟件應(yīng)用可以在支持同一種框架的軟件系統(tǒng)中運行。 簡而言之,框架就是制定一套規(guī)范或者規(guī)則(思想),程序員在該規(guī)范或者規(guī)則(思想)下工作?;蛘哒f就是使用別人搭好的舞臺,你來做表演。產(chǎn)生原因: 隨著軟件規(guī)模的擴大、應(yīng)用的廣泛和軟件復(fù)用技術(shù)的發(fā)展,以子程序或類(Class)為單位的軟件復(fù)用有許多不足:(1)子程序庫日趨其龐大以致于使

12、用人員難以掌握;(2)大多數(shù)類粒度很小,且其自身往往不能完成有用的功能。 這一問題迫使人們在復(fù)用中將一組類(或模塊)及其交互作為一個整體來考慮,由此出現(xiàn)了軟件框架。 組成部分(1)一系列完成計算的模塊,成為構(gòu)件;(2)構(gòu)件之間的關(guān)系及交互機制;(3)一系列可變點(熱點、或者稱為調(diào)整點);(4)可變點的行為調(diào)整機制。 開發(fā)人員通過軟件框架行為調(diào)整機制,將領(lǐng)域中具體應(yīng)用中所特有的軟件模塊綁定到該軟件框架的可變點上,從而得到了最終的應(yīng)用系統(tǒng),這個過程稱為軟件軟件框架的例化,軟件框架的存在使得開發(fā)人員將主要的精力放在系統(tǒng)所特有的模塊的開發(fā)上,從而提高軟件的生產(chǎn)率和質(zhì)量。行為調(diào)節(jié)機制:(1) 模板參數(shù)化

13、。軟件框架提供代碼自動生成工具,該工具根據(jù)用戶設(shè)置的參數(shù)自動生成所需的代碼。(2) 繼承和多態(tài)。通過面向?qū)ο笾械淖宇惱^承和重載,在子類中加入新的功能或改變父類的行為。(3) 動態(tài)綁定。在運行時刻動態(tài)綁定所需的對象服務(wù),可通過軟件模式技術(shù)實現(xiàn)。(4) 構(gòu)件替換。通過替換框架中可插拔的構(gòu)件來加入業(yè)務(wù)特定的功能。 框架分類 白盒框架 基于繼承的框架被稱為白盒框架(White-Box)。所謂白盒即具備可視性,被繼承的父類的內(nèi)部實現(xiàn)細節(jié)對子類而言都是可知的。利用白盒框架的應(yīng)用開發(fā)者通過衍生子類或重寫父類的成員方法來開發(fā)系統(tǒng)。子類的實現(xiàn)很大程度上依賴于父類的實現(xiàn),這種依賴性限制了重用的靈活性和完全性。但解

14、決這種局限性的方法可以是只繼承抽象父類,因為抽象類基本上不提供具體的實現(xiàn)。白盒框架是一個程序骨架,而用戶衍生出的子類是這個骨架上的附屬品。 黑盒框架 基于對象構(gòu)件組裝的框架就是黑盒框架(Black -Box)。應(yīng)用開發(fā)者通過整理、組裝對象來獲得系統(tǒng)的實現(xiàn)。用戶只須了解構(gòu)件的外部接口,無須了解內(nèi)部的具體實現(xiàn)。另外,組裝比繼承更為靈活,它能動態(tài)地改變,繼承只是一個靜態(tài)編譯時的概念。 在理想情況下,任何所需的功能都可通過組裝已有的構(gòu)件得到,事實上可獲得的構(gòu)件遠遠不能滿足需求,有時通過繼承獲得新的構(gòu)件比利用已有構(gòu)件組裝新構(gòu)件更容易,因此白盒和黑盒將同時應(yīng)用于系統(tǒng)的開發(fā)中。不過白盒框架趨向于向黑盒框架發(fā)

15、展,黑盒框架也是系統(tǒng)開發(fā)希望達到的理想目標(biāo)。(1) 涉及軟件開發(fā)的全過程。(2) 反向控制( Inversion of Control) ( 常被稱為好萊塢原則( Hollywood Principle) : Dont call us , well call you) 。(3)它是一個模板。(4)框架通常建立在眾多類庫的基礎(chǔ)之上。(5)框架封裝了處理流程的控制邏輯。特點: 軟件框架圖 大數(shù)據(jù) 大數(shù)據(jù)(big data),或稱巨量資料,指的是所涉及的資料量規(guī)模巨大到無法通過目前主流軟件工具,在合理時間內(nèi)達到擷取、管理、處理、并整理成為幫助企業(yè)經(jīng)營決策更積極目的的資訊。(在維克托邁爾-舍恩伯格及肯

16、尼斯庫克耶編寫的大數(shù)據(jù)時代中大數(shù)據(jù)指不用隨機分析法(抽樣調(diào)查)這樣的捷徑,而采用所有數(shù)據(jù)的方法2)。大數(shù)據(jù)的4V特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)。4V特點:1)Volume(大量)2)Velocity(高速)3)Variety(多樣)4)Value(價值)大數(shù)據(jù)開發(fā)方法:1)關(guān)聯(lián)分析2)聚類分析3)分類4)偏差分析5)演變分析大數(shù)據(jù)開發(fā)步驟:1、分析原始數(shù)據(jù) 一般從原始數(shù)據(jù)中找出所有相關(guān)度高的數(shù)據(jù)集合L。相關(guān)度高的意思是指某一數(shù)據(jù)集合出現(xiàn)的頻率高于其他數(shù)據(jù)集合,并且達到某一設(shè)定值!。數(shù)據(jù)集合出現(xiàn)的頻率稱為支持度(support),

17、若支持度大于等于所設(shè)定的最小支持度(min Support)時則L稱為相關(guān)度高的數(shù)據(jù)集合。一個滿足最小支持度的 k則稱為高頻 k-集合組L,k算法從L,k的集合組中再產(chǎn)生L,k+1直到無法再找到更大的相關(guān)度高的數(shù)據(jù)集合為止。2、產(chǎn)生關(guān)聯(lián)規(guī)則 從相關(guān)度高的數(shù)據(jù)集合中找出關(guān)聯(lián)規(guī)則, 是利用前一步驟的高頻 k-集合組L,k來產(chǎn)生規(guī)則,在最小信賴度(min confidence)的條件下,若某一規(guī)則所求得的信賴度滿足最小信賴度,則稱此規(guī)則為關(guān)聯(lián)規(guī)則??蚣躍mal1talk一80用戶界面框架,它開發(fā)于20世紀(jì)70年代后期,被稱為Model/view/Controller(MvC)。MvC框架展示了面向?qū)ο缶幊谭浅_m合于實現(xiàn)圖形用戶界面。成功的框架促進了其它框架的發(fā)展,框架可以用于軟件開發(fā)的任何領(lǐng)域,從大規(guī)模集成路由算法,到多媒體系統(tǒng)、圖形編輯器、操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議軟件等各種不同領(lǐng)域。 MVC把構(gòu)造一個用戶接口所需要的構(gòu)件劃分為3種對象進而確保將其明確分離。這3種類型的對象分別是:)模型(Model)數(shù)據(jù)對象。)視圖(View)對象。)控制器(Controller)對象。每種構(gòu)件類型都有一個明確的責(zé)任。1)模型不含有視圖特定的代碼;2)視圖不含有控制代碼或數(shù)據(jù)訪問代碼,只 集中精力顯示數(shù)據(jù);3)控制器創(chuàng)建并更新模

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論