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

下載本文檔

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

文檔簡介

1、軟件開發技術發展進程與案例軟件開發技術發展進程與案例 小組成員:蔡海飛 陳飛 崔松松 李巖 王喆 目錄 軟件開發技術發展史軟件開發技術發展史 軟件危機軟件危機 軟件工程軟件工程 結構化設計方法結構化設計方法 面向對象的方法面向對象的方法 框架式設計方法框架式設計方法 大數據大數據 軟件開發技術發展史軟件開發技術發展史社會應用需求的驅動是推進軟件發展進程的主線: 從軟件發展早期的按個人意愿編寫代碼,到按軟件工程的理論生產大型應用系統; 從手工作坊式的封閉性制作到按標準制式、大工業生產的開放系統; 從注重個人精雕細琢地編寫代碼的技巧到注重工程項目的管理和開發團隊的協作; 從為特定應用定制設計到以復

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

3、4)用戶對軟件功能難以滿足。5)軟件通常缺少適當的文檔資料。6)生產率提高的速度不能滿足社會需要。7)軟件產品質量無法保證。 爆發原因產生軟件危機有兩個方面的原因:產生軟件危機有兩個方面的原因:1) 與軟件本身的特點有關;是內在因素、客觀的存在,只能因勢利導加以解決。2)與軟件開發和維護的技術方法有關;是外在因素,可以完善、提高。 解決軟件危機的途徑采用現代化、社會化的組織管理方式采用現代化、社會化的組織管理方式使用成功技術和方法(面向過程、面向對象等)使用成功技術和方法(面向過程、面向對象等)使用更好的軟件開發工具(匯編、使用更好的軟件開發工具(匯編、C C、VCVC、JAVAJAVA等)等

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

5、開發、運行和維護軟件以及使之退以優質、高效、低成本為目標,研究開發、運行和維護軟件以及使之退役的系統方法。役的系統方法。 軟件工程的目標 開發生產盡可能多的軟件產品 提高軟件的生產效率 滿足應用的功能需要和具有較好的軟件性能 能按時、按質完成軟件開發任務 降低軟件開發成本 軟件開發方法一、結構化方法二、面向對象方法三、框架式開發四、大數據開發 結構化方法(SASD)結構化方法的基本要點是: 1)自頂向下 2)逐步求精 3)模塊化設計 4)結構化編碼按軟件生命周期劃分: 1)有結構化分析(SA) 2)結構化設計(SD) 3)結構化實現(SP) 1978年,EYourdon和LLConstanti

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

7、行優化,得到更為合理的軟件結構;描述模塊接口。設計原則(1)使每個模塊盡量只執行一個功能(堅持功能性內聚);(2)每個模塊用過程語句(或函數方式等)調用其他模塊;(3)模塊間傳送的參數作數據用;(4)模塊間共用的信息(如參數等)盡量少。 結構化設計方法圖 面向對象方法(oo) 隨著隨著OOPOOP(面向對象編程)向(面向對象編程)向OODOOD(面向對象設計)和(面向對象設計)和OOAOOA(面(面向對象分析)的發展,最終形成面向對象的軟件開發方法向對象分析)的發展,最終形成面向對象的軟件開發方法OMT(Object OMT(Object Modelling TechniqueModellin

8、g Technique)。這是一種自底向上和自頂向下相結合的方法,而)。這是一種自底向上和自頂向下相結合的方法,而且它以對象建模為基礎,從而不僅考慮了輸入、輸出數據結構,實際上且它以對象建模為基礎,從而不僅考慮了輸入、輸出數據結構,實際上也包含了所有對象的數據結構。所以也包含了所有對象的數據結構。所以OMTOMT徹底實現了徹底實現了PAMPAM沒有完全實現沒有完全實現的目標。不僅如此,的目標。不僅如此,OOOO技術在需求分析、可維護性和可靠性這三個軟技術在需求分析、可維護性和可靠性這三個軟件開發的關鍵環節和質量指標上有了實質性的突破,徹底地解決了在這件開發的關鍵環節和質量指標上有了實質性的突破

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論