999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

結構化方法學與面向對象方法學在軟件開發中的比較

2008-07-14 10:05:50欒詠紅
電腦知識與技術 2008年18期

摘要:結構化方法與面向對象方法在軟件開發過程中的比較,從系統分析、系統設計和編程技術等方面的分析,指出沒有絕對一種軟件開發方法稱得上是“最好”的,開發人員應該根據所要開發的軟件的特點,選擇最適宜的開發方法。

關鍵詞:軟件工程;結構化方法;面向對象方法;軟件開發;程序設計

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)18-2pppp-0c

Comparison of Structurized Methodology and Object-oriented Methodology in Software Development

LUAN Yong-hong

(Information of Engineering Department,Suzhou Institute of Industrial Technology,Suzhou 215104,China)

Abstract:The structure method and the object-oriented method develop comparison in process in the software,from the aspect analysis such as systems analysis, system design and programming technology, pointed out not absolutely one software method of exploitation called on " best", the personnel who develops ought to choose the most proper exploitation method according to what be wanted the development software characteristic.

Key words:Software Engineering;Structured Methods;Object-Oriented Methods;Software Development;Program Design

1 引言

隨著信息技術的發展,軟件作為一種信息技術的主要載體日益滲透到社會政治、軍事、經濟、文化乃至生活的各個方面和各個層次。軟件無所不在,其需求愈來愈多,復雜度愈來愈高,可用性要求愈來愈強。如何高效地開發和生產可靠、可信的軟件,是軟件領域一直必須面對的問題。軟件技術跟不上硬件技術發展而造成的諸多問題被稱作“軟件危機”(Software Crisis)。為了解決軟件危機,1968年北大西洋公約組織(NATO)的計算機科學家在德國召開的國際學術會議上第一次提出了“軟件工程”的概念,希望通過系統化、規范化、數量化等工程原則和方法來實現復雜軟件系統的開發和維護。[1]當前主要采用的軟件工程方法有結構化方法學和面向對象方法學。

2 結構化方法學與面向對象方法學的含義

結構化方法學(Structurized Methodology)是一種圍繞功能來組織軟件系統的軟件開發方法。它采用自頂向下的設計方法,將問題模型反映為過程結構模型,實際上就是通過建立功能模型,將復雜的過程簡單地按功能分層從而達到解決問題的目的。

面向對象方法學(Object-Oriented Methodology)是一種圍繞真實世界中的事物來組織軟件系統的全新方法。它的出發點和基本原則,是盡可能模擬人類習慣的思維方式,也就是描述問題的問題域與實現解法的求解域在結構上盡可能一致。

3 結構化軟件開發方法與面向對象的軟件開發方法的比較

軟件開發方法(Software Development Method)是指軟件開發過程所遵循的辦法和步驟。軟件開發活動的目的就是得到一個運行的軟件系統及其支持的軟件文檔,并且能滿足有關的軟件質量要求。目前最常采用的軟件開發方法有結構化方法和面向對象方法。

軟件開發是按需求規格說明的要求,由抽象到具體,逐步生成軟件的過程。因而要求系統設計方法、編程方法及選用的程序設計語言應該盡可能匹配。如采用結構化的分析方法(StructuredAnalysis,簡稱SA)就應該采用結構化的系統設計(Structured Design,簡稱SD)和結構化的編程技術(Structured Programming,簡稱SP),選用支持結構化編程的Pascal語言、C語言等。若采用面向對象的分析方法(Object-Oriented Analysis ,簡稱OOA)、面向對象的設計方法(Object-Oriented Design, 簡稱OOD),就應該選用面向對象的編程技術(Object-Oriented Programming,簡稱OOP)和支持面向對象的編程語言,如Smalltalk,C++、Java等。

3.1 結構化軟件開發方法

結構化軟件方法是結構化方法和信息建模方法,這兩種方法分別從功能和信息(數據)的角度對系統進行分析和設計。結構化軟件開發方法的基本思想是:首先確定輸入、輸出數據結構,使用自頂向下的設計方法,列出需要解決的最主要的子問題,然后通過解決每一個子問題來解決初始的問題。結構化軟件開發方法的本質是功能的分解,將系統按功能分解為若干模塊,每個模塊是實現系統某一功能的程序單元,每一個模塊都具有輸入、輸出和過程等基本特性。輸入和輸出分別是模塊需要的和產生的數據,過程則是對模塊具體處理細節的描述和表示。數據則在功能模塊間流動。[5] 功能是一種主動的行為,數據是受功能影響的信息載體。因而它的編程模型被理解為作用于數據的代碼。

從編程技術和程序設計的角度來說,結構化分析方法在進行程序設計時,描述任何實體的操作序列只需采用“順序、選擇、重復”三種基本控制結構,整個程序劃分為若干個模塊。每個模塊要具有一種以上的特定功能,并且每個模塊只能有一個入口和一個出口。這種程序設計采用自頂向下,逐步細分的方法展開,在一定的數據結構之下來設計對應的算法,然后分別實現數據結構設計和算法設計,因此,N.Wirth總結出:程序=算法+數據結構的形式。 [3][4]結構化程序設計中,問題被看作一系列需要完成的任務,函數(function)是用于完成這些任務的。所以說,最終解決問題的焦點集中于函數,而數據則在功能模塊間流動。

如圖1所示。

圖1 結構化方法的應用

3.2 面向對象的建模技術

OMT(Object-Oriented Modeling Technique)是由James Rumbaugh等人提出的。OMT是一種面向對象的軟件開發方法,以對象建模為基礎,從對象的角度對系統進行分析和設計。 面向對象的軟件開發方法基本思想是:采用了自底向上的歸納、自頂向下的分解的方法,第一步是從問題的陳述入手,構造系統模型。系統模型建立后的工作就是按服務(Service)來分解。第二步是將對問題的描述建立成三種模型,這三種模型分別是:對象模型、動態模型和功能模型。對象模型是通過描述系統中的對象、對象間的關系和每個對象類的屬性和操作來表示系統的靜態數據結構。動態模型描述了系統中與時間和變化有關的內容,它說明何時發生。功能模型描述系統的數據轉換。三種模型都是必須的[2][5]。但是,對象模型都是最重要、最基本、最核心的。每個對象類由數據結構(屬性)和操作(行為)組成,有關的數據結構(包括輸入、輸出數據結構)都成了軟件開發的依據。

從編程技術和程序設計的角度來說,采用面向對象的分析方法,是將問題分解為一系列實體——這些實體被稱為對象(object),然后圍繞這些實體建立數據(對象)和針對該對象而定義的接口(interface)來組織描述程序。正是由于這種方法是從對象的角度對系統進行分析和設計。對象就是對現實世界實體的正確抽象,而具有相同或相似性質的對象的抽象就是類。對象包含了數據和操作,實現了數據和操作的結合,使數據和操作封裝于對象的統一體中。每個類由屬性和操作組成。對象彼此之間僅能通過發送消息互相聯系。類中操作的實現過程叫做方法,一個方法有方法名、參數、方法體[2],如圖2所示。

圖2 對象、類和信息傳遞

面向對象方法的編程技術重點是說明類,而不是定義函數。利用類(class)來描述對象的特性,每個類都有描述對象屬性的數據和操作數據的一組方法。[5]面向對象程序設計主要是類的設計,程序代碼主要是類的描述,而構成系統核心的對象在程序運行時才創建。對象之間的相互作用稱為一個對象向另一個對象發送消息。

3.3 兩種軟件開發方法的比較

面向對象的軟件開發方法與結構化軟件開發方法的最基本的區別:表現在它們對功能和數據的不同處理上。

結構化軟件開發方法是圍繞實現處理功能的“過程”來構造系統的。它幾乎都是將功能和數據分開考慮的。它遵循面向過程的問題求解方法,是用計算機能夠理解的邏輯來描述和表達待解決的問題及其具體的解決流程。數據結構和算法是它的核心所在。用戶需求的變化大部分是針對功能的,在開發需求模糊或需求動態變化的系統時,所開發出的軟件系統往往不能真正滿足用戶的需要,可能會引起軟件成本增長失控、軟件質量得不到保證等一系列嚴重問題。因此,用結構化方法開發的軟件,其穩定性、可修改性和可重用性都比較差。

面向對象軟件開發方法則是在解空間引入了“對象”的概念,逼真地描述解空間的客觀實體,從而使客觀描述符合人類的思維習慣。通過識別問題域的對象,分析它們之間的關系,建立對象模型、動態模型和功能模型,利用面向對象觀點建立求解域模型的過程。它的核心概念主要是對象、類、繼承和消息。面向對象編程技術的特點是數據控制代碼的訪問,其中類的繼承和多態性是處理復雜軟件的有效技術。運用這種方法開發出來的系統穩定性、可重用性及可維護性好。

4 結束語

面向對象方法在軟件開發方面符合人們習慣的思維方式,系統的穩定性比較好,軟件的可維護性與可重用性比較好。但面向對象方法的基本概念都很抽象,可供軟件開發人員使用的類種類繁多,結構復雜。如果沒有結構化程序設計的編程思想,對于直接學習面向對象程序設計的初學者,在代碼編程部分涉及結構化編程思想時,反而困難會很大。事實上,這兩種方法在并不是相互排斥的,相反,它們是相互促進相互補充的。不論采用何種技術方法開發軟件,都必須完成一系列性質各異的任務,這些必須完成的任務要素是:確定“做什么”,確定“怎樣做”,如何“實現和完善”。 因此,沒有絕對的一種軟件開發方法稱得上是“最好”的,軟件開發人員應該根據所要開發的軟件的特點,選擇最適宜的開發方法。

參考文獻:

[1]張海藩.軟件工程導論[M].3版.清華大學出版社,1998.

[2]施霞萍,王瑾德.2版.Java程序設計教程[M].機械工業出版社,2006.

[3]錢能.C++程序設計教程[M].2版.清華大學出版社,2005.

[4]Jeri R Hanly,Elliot B Koffman.問題求解與程序設計 C語言版.朱劍平,譯.4版.北京:清華大學出版社,2007.

[5]文斌,劉長青.田原軟件工程與軟件文檔寫作[M].清華大學出版社,北京交通大學出版社,2005.

收稿日期:2008-04-02

作者簡介:欒詠紅(1971-),女,山東青島人,講師,研究方向:計算機軟件。

主站蜘蛛池模板: 国产福利不卡视频| 欧美精品成人| 免费国产不卡午夜福在线观看| 91小视频在线观看免费版高清| 乱人伦视频中文字幕在线| 网友自拍视频精品区| 国产精品美女在线| AV网站中文| 欧美激情二区三区| 亚洲欧美自拍一区| 在线精品亚洲国产| 国产人人干| 999国内精品视频免费| 亚洲天堂成人在线观看| 五月天综合婷婷| 99在线免费播放| 久久一色本道亚洲| 精品国产黑色丝袜高跟鞋| 女人18毛片久久| а∨天堂一区中文字幕| 亚洲一区二区在线无码| 亚洲二区视频| 在线色国产| 欧美日韩国产精品综合| 久久精品人人做人人爽电影蜜月| 亚洲国产亚洲综合在线尤物| 色婷婷成人| 国产精品所毛片视频| 人妻少妇久久久久久97人妻| jizz在线观看| 欧亚日韩Av| 亚洲无线一二三四区男男| 国产欧美成人不卡视频| 国产屁屁影院| 精品久久蜜桃| 99伊人精品| 99精品一区二区免费视频| 日韩欧美视频第一区在线观看| 国产精品香蕉在线| 真人免费一级毛片一区二区| 亚洲精品福利视频| 国产剧情国内精品原创| 欧美中出一区二区| 国产综合网站| 精品国产成人高清在线| 亚洲中文字幕23页在线| 色综合天天视频在线观看| 国产成熟女人性满足视频| 漂亮人妻被中出中文字幕久久| 亚洲性日韩精品一区二区| 日本一区二区三区精品国产| 日韩精品免费在线视频| 国产JIZzJIzz视频全部免费| 亚洲品质国产精品无码| 精品无码专区亚洲| 伊人色在线视频| 亚洲欧美另类专区| 亚洲男人天堂2020| a在线亚洲男人的天堂试看| 国产乱子伦手机在线| 久久久久久久久亚洲精品| 亚洲人成网站在线播放2019| av在线5g无码天天| 欧美另类精品一区二区三区| 蜜桃臀无码内射一区二区三区| 91久久精品日日躁夜夜躁欧美| 亚欧乱色视频网站大全| 伊人激情综合网| 亚洲精品不卡午夜精品| 欧美成人午夜视频免看| 成人综合久久综合| …亚洲 欧洲 另类 春色| 在线观看免费黄色网址| 四虎成人精品| 亚洲欧美自拍中文| 国产美女主播一级成人毛片| 国内精品久久久久久久久久影视| 97成人在线视频| a网站在线观看| 国产精品99在线观看| 伊伊人成亚洲综合人网7777| 97在线视频免费观看|