常用的開發方法包括:
①結構化方法
②面向對象方法(使用最多的)
③原型化方法
④面向服務的方法
一、結構化方法
由結構化分析(SA,Structure Analysis),結構化設計(SD,Structure Design),結構化程序設計(SP,Structure Program)三部分組成。它的基本思想:把一個復雜問題的求解過程分階段進行,而且這種分解是自頂向下,逐步求精,模塊化設計。即:把一個系統分成幾個模塊,然后每個模塊設計具體怎么實現。
所以叫自頂向下(從一個系統,往下分成多個模塊),逐步求精(一點點細化),模塊化設計(把一個系統分成幾個模塊,具體設計每個模塊)。
適用於數據處理領域,但不適應規模較大、復雜的系統開發。缺點:
1.開發周期長(由於結構化的周期是比較長的,用戶到最后交付的時候才看到結果,如果需求有偏差,或者錯誤理解的東西,到項目的最后階段才能發現)
2.難以適應需求變化(客戶的需求變化是比較快的,結構化方法不能及時適應去調整)
3.很少考慮數據結構(結構化開發方法是面向數據流的,按照業務流程,轉換成數據流,這一步是什么數據流,流轉到下一步是什么樣的,注重的是系統功能分解,兼顧數據結構方面不多。就涉及一個問題,結構化分析完之后SA,到結構化設計階段SD,這個轉換比較困難)。
基於這些缺點,現在很少再用結構化開發方法了。
二、面向對象方法
面向對象的方法是一種運用對象、類、繼承、封裝、聚合、消息傳送、多態性等概念來構造系統的軟件開發方法。
面向對象=對象(Object)
+類(classification)
+繼承(inheritance)
+通信(communication with messages)
采用這四個概念開發的軟件系統是面向對象的。
------------------太熟了,隨便看看就行 start----------------
1.對象(object)
屬性(attribute)用來描述對象的靜態特征。
張三,有姓名,有年齡,有性別,這些就是屬性。
操作(operation)(方法或服務)規定了對象的行為,表示對象能提供的服務。
張三要吃飯、上課、打球,這些動態的行為,就是操作。
2.類(class)
類是一組具有相同屬性和相同操作的對象的集合。
一個類中的每個對象都是這個類的一個示例(instance)
類是創建對象的模板,從同一個類實例化的每個對象都具有相同的結構和行為。
3.繼承(inheritance)
集成是指特殊類(子類)的對象擁有其一般類(父類)的全部屬性與服務。
父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,還可以對父類(或祖先類)中的操作重新定義其實現方法。
如果一個子類只有唯一一個父類,這個繼承成為單一繼承。
如果一個子類有一個以上的父類,這種繼承成為多重繼承。(java沒有多繼承,但其他語言有)
4.多態
多態性是指同一個操作作用於不同的對象上可以有不同的解釋,並產生不同的執行結果。
------------------太熟了,隨便看看就行 end----------------
5.消息
消息傳遞是對象間通信的手段(一個對象和另一個對象時孤立的,他們通過消息來產生聯系),一個對象通過向另一個對象發送消息來請求其服務(客戶端是一個對象,百度網站是一個對象,我們發送消息請求百度網站,獲取網頁)。一個消息通常包括接受對象名、調用的操作名和適當的參數(如果有必要的話)。
消息只告訴接受對象需要完成什么操作(比如,我們要請求web服務),但並不指示接收者怎樣完成操作(我們不用操心接收者服務器如何執行這個消息產生結果)。消息完全由接收者解釋執行。
三、原型化方法(快速原型法)
客戶不能明確指出他要什么需求,我們建個原型,在原型上討論系統是什么樣的。討論完了再根據這個需求去做系統。比如國家要造飛機,不可能直接造一個,再在飛機的基礎上修改。而是,先造一個模型,在這個模型的基礎上修改、討論,當確定了之后,再根據這個模型造真正的飛機。
水平原型:給客戶看建好的原型,給客戶看,客戶哪里不滿意了,再做修改,在需求討論中起到一個導航的作用。
垂直原型:對某個技術點沒有把握,做個垂直原型,討論下技術的實現。驗證這個點能否實現。
拋棄型原型:用來驗證需求的,讓用戶指出哪些是他需要的,哪些是需要改的。用戶指出確定點和需要修改的地方之后,我們把原型扔掉,按照需求重新開發一個系統。
演化型原型:在原型的基礎上不斷的完善改進,這個原型最終演化為客戶需要的產品。
上圖:不停的和用戶交流,讓用戶決定哪些功能需要,哪些不需要。
上圖:它和結構化開發是不同的,原型化的方法是適應用戶需要的。
原型如果建立過程時間很長成本很高,就不適用這種開發模式了。因為原型本身就是為了明確需求,需要快速完成。
原型法需要相關人員掌握畫原型的技術,熟練使用原型工具。
四、面向服務的方法
比如,在學校有很多項目,圖書管理項目、后勤管理項目、學生信息系統等,但這些項目之間沒有關系,這些系統之間是一個一個的孤島,他們的數據無法共享的。比如,一個學生要轉學,我們要在每個系統里處理和他有關的,他的圖書卡、飯卡押金、后勤住宿押金等。如何把這些系統整合起來呢。我們可以采用面向服務的方法。把每個系統當成服務封裝起來,對外提供統一標准的接口,服務之間只要通過接口調用,就這樣系統之間就可以交互數據了,我們把這種方法叫做面向服務的方法。