日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结构化方法、面向对象方法的区别

發(fā)布時間:2024/3/24 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构化方法、面向对象方法的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

結(jié)構(gòu)化方法、面向?qū)ο蠓椒ǖ膮^(qū)別


1.結(jié)構(gòu)化方法遵循的基本原則

結(jié)構(gòu)化方法的基本思想就是將待解決的問題看作一個系統(tǒng)從而用系統(tǒng)科學(xué)的思想方法來分析和解決問題結(jié)構(gòu)化方法遵循以下基本原則

1)抽象原則

抽象原則是一切系統(tǒng)科學(xué)方法都必須遵循的基本原則它注重把握系統(tǒng)的本質(zhì)內(nèi)容而忽略與系統(tǒng)當(dāng)前目標(biāo)無關(guān)的內(nèi)容它是一種基本的認(rèn)知過程和思維方式

2)分解原則

分解原則是結(jié)構(gòu)化方法中最基本的原則它是一種先總體后局部的思想原則在構(gòu)造信息系統(tǒng)模型時它采用自頂向下分層解決的方法

3)模塊化原則

模塊化是結(jié)構(gòu)化方法最基本的分解原則的具體應(yīng)用它主要出現(xiàn)在結(jié)構(gòu)化設(shè)計階段中其目標(biāo)是將系統(tǒng)分解成具有特定功能的若干模塊從而完成系統(tǒng)指定的各項(xiàng)功能

2.面向?qū)ο竽P妥裱幕驹瓌t

面向?qū)ο竽P妥裱幕驹瓌t有:抽象、封裝、模塊化以及層次原則等

1)抽象

抽象是處理現(xiàn)實(shí)世界復(fù)雜性的最基本方式在OO方法中它強(qiáng)調(diào)一個對象和其他對象相區(qū)別的本質(zhì)特性對于一個給定的域確定合理的抽象集是面向?qū)ο蠼5年P(guān)鍵問題之一

2)封裝

封裝是對抽象元素的劃分過程抽象由結(jié)構(gòu)和行為組成封裝用來分離抽象的原始接口和它的執(zhí)行

封裝也稱為信息隱藏Information Hiding它將一個對象的外部特征和內(nèi)部的執(zhí)行細(xì)節(jié)分割開來并將后者對其他對象隱藏起來

3)模塊化

模塊化是已經(jīng)被分為一系列聚集的和耦合的模塊的系統(tǒng)特性對于一個給定的問題確定正確的模塊集幾乎與確定正確的抽象集一樣困難通常每個模塊應(yīng)該足夠簡單以便能夠被完整地理解

4)層次

抽象集通常形成一個層次,層次是對抽象的歸類和排序。在復(fù)雜的現(xiàn)實(shí)世界中有兩種非常重要的層次一個是類型層次另一個是結(jié)構(gòu)性層次?。確定抽象的層次是基于對象的繼承,它有助于在對象的繼承中發(fā)現(xiàn)抽象間的關(guān)系,搞清問題的所在理解問題的本質(zhì)

3.結(jié)構(gòu)化方法的核心問題

模型問題是結(jié)構(gòu)化方法的核心問題建立模型簡稱建模是為了更好地理解我們要模擬的現(xiàn)實(shí)世界建模通常是從系統(tǒng)的需求分析開始在結(jié)構(gòu)化方法中就是使用SA方法構(gòu)建系統(tǒng)的環(huán)境模型然后使用SD方法確定系統(tǒng)的行為和功能模型最后使用SP方法進(jìn)行系統(tǒng)的設(shè)計并確定用戶的現(xiàn)實(shí)模型

4..面向?qū)ο蠓椒ǖ暮诵膯栴}

面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法一樣其核心問題也是模型問題面向?qū)ο竽P椭饕?span face="Times New Roman" style="font-family:'Times New Roman'">OOA模型OOD模型組成其中OOA主要屬于學(xué)科抽象形態(tài)方面的內(nèi)容OOD主要屬于學(xué)科設(shè)計形態(tài)方面的內(nèi)容

5.結(jié)構(gòu)化系統(tǒng)分析方法的特點(diǎn)

1)面向用戶,用戶自始至終參與系統(tǒng)的分析工作;

(2)強(qiáng)調(diào)調(diào)查工作的重要性;

(3)對管理業(yè)務(wù)中的各種數(shù)據(jù)進(jìn)行分解;

4)采用了層次分解的系統(tǒng)思想;

(5)用圖形工具來分析和構(gòu)建新方案。

¨結(jié)構(gòu)化分析的圖表工具主要由數(shù)據(jù)流程圖、數(shù)據(jù)字典和數(shù)據(jù)處理說明組成。

6.面向?qū)ο笙到y(tǒng)分析方法的特點(diǎn)

(1)??????強(qiáng)調(diào)系統(tǒng)開發(fā)的整體性和全局性

(2)??????側(cè)重于數(shù)據(jù)轉(zhuǎn)換的過程而不是數(shù)據(jù)本身

(3)??????系統(tǒng)的開發(fā)周期長

(4)??????封裝性?

對象的概念突破了傳統(tǒng)數(shù)據(jù)與操作分離的模式。對象作為獨(dú)立存在的實(shí)體,將自由數(shù)據(jù)和操作封閉在一起,使自身的狀態(tài)、行為局部化。

(5)?????繼承性?

  繼承是面向?qū)ο筇赜械?#xff0c;亦是最有力的機(jī)制。通過類繼承可以彌補(bǔ)由封裝對象而帶來的諸如數(shù)據(jù)或操作冗余的問題,通過繼承支持重用,實(shí)現(xiàn)軟件資源共享、演化以及增強(qiáng)擴(kuò)充。

(6)?????多態(tài)性?

  同一消息發(fā)送至不同類或?qū)ο罂梢鸩煌牟僮?#xff0c;使軟件開發(fā)設(shè)計更便利,編碼更靈活。

(7)?????易維護(hù)性

  面向?qū)ο蟮某橄蠓庋b使對象信息隱藏在局部。當(dāng)對象進(jìn)行修改,或?qū)ο笞陨懋a(chǎn)生錯誤的時候,由此帶來的影響僅僅局限在對象內(nèi)部而不會波及其他對象乃至整個系統(tǒng)環(huán)境,這極大方便了軟件設(shè)計、構(gòu)造和運(yùn)行過程中的檢錯、修改。

------------------------------------------------------------------------------

程序設(shè)計是一門技術(shù),它需要相應(yīng)的理論、技術(shù)、方法和工具來支持。就程序設(shè)計方法和技術(shù)的發(fā)展而言,主要經(jīng)過了結(jié)構(gòu)化程序設(shè)計和面向?qū)ο蟮某绦蛟O(shè)計階段,但它們的所采用的方法和針對的對象卻是不一樣的。?
????結(jié)構(gòu)化方法是最早最傳統(tǒng)的軟件開發(fā)方法,也是迄今為止信息系統(tǒng)中應(yīng)用最普遍、最成熟的一種,它引入了工程思想和結(jié)構(gòu)化思想,使大型軟件的開發(fā)和編程都得到了極大的改善。結(jié)構(gòu)化方法的基本思想可概括為:自頂向下、逐步求精、模塊化技術(shù)。?
????自頂向下逐層分解,是指在程序設(shè)計時,先考慮問題大的方面,在確定了主要方向后,再由表及里深入到問題具體的細(xì)節(jié),由易到難,逐層解決問 題。這是一個由模糊到清晰,由概括到具體的過程。而逐步求精是在遇到復(fù)雜問題的時候,先設(shè)計一些子目標(biāo)作為過渡,來逐步細(xì)化。比如在對學(xué)生編寫資料時,應(yīng) 先將學(xué)生分為專科生、本科生、研究生。在對本科生填寫資料時,又可對其的專業(yè)、班級、學(xué)號、姓名、籍貫等進(jìn)行進(jìn)一步的劃分,依次類推,逐步把資料填寫完 全。?
????結(jié)構(gòu)化方法強(qiáng)調(diào)功能抽象和模塊化。由于它采取了分塊處理問題的方法,可以把一個比較復(fù)雜的問題分解為若干個容易處理解決的部分,從而降低 了問題處理的難度。由于結(jié)構(gòu)化方法思路清晰,條理清楚,又有效地分解了繁復(fù)的問題,使得編寫程序時清晰明了,簡化了編程人員繁雜的工作;而在閱讀時也能夠 一氣呵成,給人以明朗的感覺。?
面向?qū)ο蠓椒ㄊ悄壳耙呀?jīng)發(fā)展成為主流的軟件方法,它經(jīng)過了30多年的研究和發(fā)展,已經(jīng)越來越成熟和完善,應(yīng)用也越來越深入和廣泛。如著名的 Smalltalk,C++,Java,Eiffel等都屬于面向?qū)ο笳Z言。面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步 驟,而是為了描敘某個事物在整個解決而面向?qū)ο蟮脑O(shè)計則是從另外的思路來解決問題。面向?qū)ο蠓椒ǖ谋举|(zhì)是主張從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),提倡用 人類在現(xiàn)實(shí)生活中常用的思維方法來認(rèn)識和理解、描述客觀事物,強(qiáng)調(diào)最終建立的系統(tǒng)能映射的問題域。使得系統(tǒng)中的對象,以及對象之間的關(guān)系能夠如實(shí)地反映問 題域中固有的事物及其關(guān)系。?
面向?qū)ο蠓椒ㄋ兄约旱膬?yōu)點(diǎn)。首先,它與人類習(xí)慣的思維方法一致,使得使用者和維護(hù)人員都容易理解,在用戶使用時不會出現(xiàn)理解困難,在軟件維護(hù) 中可維護(hù)性也較高,并且易于測試和調(diào)試。比如黑白雙方在設(shè)計五子棋時,可分為行為是相同的黑白雙方,負(fù)責(zé)繪制畫面的棋盤系統(tǒng),負(fù)責(zé)判定犯規(guī)、輸贏等的規(guī)則 系統(tǒng)。第一類對象(玩家對象)負(fù)責(zé)接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種 變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進(jìn)行判定問題的步驟中的行為。可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。?
其次,它的穩(wěn)定性好,對軟件的局部進(jìn)行修改時,不會引起整體的變化,而且對局部修改容易實(shí)現(xiàn)。面向?qū)ο蠓椒ǖ目芍赜煤?#xff0c;并且由于它是把大的問題分解成相互獨(dú)立的小問題處理,降低了開發(fā)的技術(shù)難度,開發(fā)工作的管理也變的容易了,開發(fā)大型軟件邊的容易,成本也降低了。?
面向?qū)ο蠓椒ㄖ苯佑蓡栴}入手,來進(jìn)行系統(tǒng)的建模,降低了使用成本,讓用戶在使用一個新的軟件時,能夠在最短的時間里了解使用方法,能正確,清楚地使用軟件。?
在編寫程序方面,結(jié)構(gòu)化方法有著比較強(qiáng)的優(yōu)勢,它思路清晰,條理嚴(yán)謹(jǐn),步驟整潔,便于閱讀理解;而在注重功能的用戶使用方法,面向?qū)ο蠓椒▌t更容易理解,它操作簡單,界面清楚,使得軟件使用變得簡單。


總結(jié)

以上是生活随笔為你收集整理的结构化方法、面向对象方法的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。