




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?qū)ο缶幊膛c非面向?qū)ο缶幊?山東大學(xué)計算機學(xué)院,1,軟件開發(fā)方法,軟件工程所采用的方法不是唯一的,自軟件工程出現(xiàn)以來,人們已經(jīng)提出了多種軟件開發(fā)方法,例如: 功能分解法、 數(shù)據(jù)流法(結(jié)構(gòu)化方法)、 快速原型法、 信息模型法、 面向?qū)ο蠓椒ā?山東大學(xué)計算機學(xué)院,2,結(jié)構(gòu)化軟件開發(fā)方法簡介,1978年,E.Yourdon和L.L.Constantine提出了結(jié)構(gòu)化開發(fā)方法SASD(Structure Analysis Structure Design) 也稱面向數(shù)據(jù)流的軟件開發(fā)方法 把軟件系統(tǒng)的功能看做是根據(jù)給定的輸入數(shù)據(jù),進行相應(yīng)的運算,然后輸出結(jié)果。,功能,輸入數(shù)據(jù),輸出數(shù)據(jù),結(jié)構(gòu)化設(shè)計是
2、屬于自頂向下的設(shè)計,在設(shè)計階段就不得不考慮如何實現(xiàn)系統(tǒng)的功能,因為分解的過程其實就是實現(xiàn)功能的過程。 局限性 不能靈活地適應(yīng)用戶不斷變化的需求 比如要求修改現(xiàn)有軟件的實現(xiàn)方式或追加新功能時 需要自頂向下地修改模塊的結(jié)構(gòu),有時甚至整個軟件系統(tǒng)的設(shè)計被推翻。,結(jié)構(gòu)化編程SP(Structure Programming) 程序的主體是方法 方法是最小的功能模塊 一組相關(guān)的方法組合成一個大的功能模塊,結(jié)構(gòu)化開發(fā)過程舉例 一個畫板系統(tǒng)Panel 包括4個功能 選擇形狀 畫長方形 畫圓 畫直線,自頂向下結(jié)構(gòu)化分析設(shè)計 工具:數(shù)據(jù)流圖DFD,選擇形狀模塊數(shù)據(jù)流圖,結(jié)構(gòu)化編程 定義形狀標示常量 drawCir
3、cle() drawLine() drawRectangle() selectShape() 接收用戶輸入的形狀 switch,void selectShape() int shape; scanf(%d, printf(輸入的形狀不存在); break; ,假定需求發(fā)生變化 要求增加一個畫三角形的功能 需要對系統(tǒng)做多處改動 增加一個形狀常量定義 增加一個畫三角形的功能方法 在selectShape中增加一個分支邏輯,結(jié)構(gòu)化開發(fā)方法 制約了軟件的可維護性和可擴展性 模塊之間的松耦合性不高 修改或增加一個模塊會影響到其他模塊 這些缺陷的根本原因在于: 自頂向下地按照功能來劃分。但是軟件的功能不是
4、一成不變的 軟件系統(tǒng)中最小的子系統(tǒng)是方法。方法和一部分與之相關(guān)的數(shù)據(jù)分離,全局變量和常量數(shù)據(jù)分散在系統(tǒng)的各個角落,削弱了各個系統(tǒng)之間的相對獨立性。,山東大學(xué)計算機學(xué)院,13,非面向?qū)ο缶幊?對于非面向?qū)ο缶幊蹋绦蛲敲嫦蜻^程或者面向數(shù)據(jù)的。 這些程序中通常有可全訪問的數(shù)據(jù)及過程,由主程序或其子程序來控制及操作這些數(shù)據(jù)。 程序的每個部分都可以訪問全局數(shù)據(jù),得到數(shù)據(jù)的一部分,操作這些數(shù)據(jù),然后在在需要時,保存對數(shù)據(jù)的更改。,山東大學(xué)計算機學(xué)院,14,對于面向?qū)ο缶幊?程序被劃分為一組通信的對象。 每個對象均封裝了關(guān)于某個概念所有行為和信息 實現(xiàn)功能的能力、實現(xiàn)功能所需的“知識”或數(shù)據(jù)被分布在對
5、象之中。當一個對象對其他對象有需求時,就向該對象發(fā)出消息,這個對象接受到此消息后做出相應(yīng)的動作并很有可能返回值給調(diào)用者。 第一個對象甚至可以在第二個對象不存在的情況下創(chuàng)建該對象,山東大學(xué)計算機學(xué)院,15,因此,要開始進行面向?qū)ο缶幊虝r,通常就是先創(chuàng)建幾個對象,然后讓這些對象開始通信。 這種面向?qū)ο缶幊痰挠^點,即對象分攤工作和責(zé)任,對我們而言是十分熟悉的,因為現(xiàn)實中人類也采用這樣的交互方式。 例如一位企業(yè)主,并不需要對所有的事親歷親為,事實上,該企業(yè)主只需要將任務(wù)分配給雇員。每位雇員不僅要完成給定的任務(wù),并且還得負責(zé)維護和該任務(wù)相關(guān)的數(shù)據(jù)。比如,秘書不僅需要負責(zé)打印文件,也要負責(zé)將文件存放在適合
6、的檔案柜中;并且,如果文件中存放的是機密數(shù)據(jù),秘書也要負責(zé)保護這些文件,并且負責(zé)允許或拒絕他人對文件的查看。在秘書的工作過程中,他可能還需要辦公室內(nèi)外其他人員的幫助。,山東大學(xué)計算機學(xué)院,16,2.1.2 面向?qū)ο笳Z言 類(class)的概念可以從建模角度及編程語言的角度來理解。 在設(shè)計軟件應(yīng)用的時候,類模型將對系統(tǒng)中重要的概念進行抽象處理,建立良好定義的責(zé)任及與其他類的良好關(guān)系。 在面向?qū)ο缶幊陶Z言中,類可以被視為對象的模板,而這些對象描述了某種行為、某些責(zé)任以及某些相關(guān)數(shù)據(jù) 對象(object)是類的實例。一個對象就類似于一位秘書或一位警察。 對象所屬的類定義了該對象擁有的數(shù)據(jù)類型、該對象
7、的行為及該對象對這些數(shù)據(jù)的責(zé)任。但對于一位秘書而言,個人擁有用各自需要維護的數(shù)據(jù)(各自的狀態(tài))。,山東大學(xué)計算機學(xué)院,17,對象之間通過消息傳遞的方式通信并命令彼此進行動作。 通過向其他對象傳遞消息,第一個對象讓第二個對象執(zhí)行某些代碼。這些代碼實際上就是一個過程濃面向?qū)ο笳Z言中稱為方法(method ) ,該過程與第二個對象關(guān)聯(lián)。 因此,消息傳遞實際上就是一個對象向另一個對象發(fā)出的要求執(zhí)行其某個方法的要求(或命令)。通過這個機制,對象可以被視為能對發(fā)出請求的任何客戶端提供服務(wù)的服務(wù)器(通過消息的接受)。,山東大學(xué)計算機學(xué)院,18,2.1.3 面向?qū)ο缶幊痰膬?yōu)點 面向?qū)ο蟮姆绞脚c非面向?qū)ο蟮姆绞较啾?由于所謂的“智能”被分布在了各個對象之中,每個對象都維護了各自實現(xiàn)任務(wù)所需的數(shù)據(jù),將數(shù)據(jù)保存于較小的可管理單元就相對比較容易, 這種方式也便于理解這些單元是如何互相影響的。面向?qū)ο缶幊痰姆植夹钥梢栽黾哟a的可讀性。 對于非面向?qū)ο蟪绦蚨?,在全局?shù)據(jù)結(jié)構(gòu)上的一次小改動將有可能迫使所有訪問該數(shù)據(jù)的過程進行相應(yīng)的改變。 設(shè)計良好的面向?qū)ο蟪绦蛑挥猩倭康娜謹?shù)據(jù),而將大部分數(shù)據(jù)存儲于對象中進行內(nèi)部使用。,山東大學(xué)計算機學(xué)院,19,對象所屬的類中的數(shù)據(jù)存儲方式的改變通常意味著,程序中需要改變的部分只有該類內(nèi)部的代碼
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)平臺對流通企業(yè)銷售模式的創(chuàng)新與影響
- 促進養(yǎng)老服務(wù)消費的金融產(chǎn)品與支付方式創(chuàng)新
- 2025至2030家禽飼養(yǎng)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 海南省??谑忻?025屆九上化學(xué)期末聯(lián)考模擬試題含解析
- 黑龍江省大慶市杜爾伯特縣2025屆物理八年級第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 寧夏石嘴山市星海中學(xué)2025屆物理八上期末教學(xué)質(zhì)量檢測試題含解析
- 江蘇省鹽城市亭湖初級中學(xué)2024年數(shù)學(xué)七上期末調(diào)研模擬試題含解析
- 電商平臺代理記賬與電商稅收政策合同
- 綠茶連鎖加盟總經(jīng)銷商協(xié)議書
- 2025年交管12123駕照學(xué)法減分題庫附含參考答案
- 2025年淮南新東辰控股集團有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025安徽安慶市桐城經(jīng)開區(qū)建設(shè)投資集團有限公司招聘12人筆試參考題庫附帶答案詳解
- 給水管道試壓、沖洗消毒方案
- 老年群體智能手機使用教程
- 高速公路集中養(yǎng)護工作指南-地方標準編制說明
- 建設(shè)工程項目的組織協(xié)調(diào)保障措施
- 刻紙入門基礎(chǔ)知識
- 江蘇連云港某公司“12.9”爆炸事故報告
- 第13課 立足專業(yè) 謀劃發(fā)展(課件)-【中職專用】高一思想政治《心理健康與職業(yè)生涯》
- 介入術(shù)后水化治療
- 2025-2030年中國甲殼素殼聚糖行業(yè)運行動態(tài)與發(fā)展戰(zhàn)略分析報告
評論
0/150
提交評論