程序設計方法

隨著計算機硬件技術的不斷發展,程序設計方法也隨之不斷發展。最早的程序設計方法稱為個體化方法,每個程序員都按照自己的習慣和風格來編寫程序,其結果是程序很難維護。特別是規模較大的程序.個體化方法導致程序的壽命縮短。成本提高,不能滿足需要.經過計算機工作者的努力.程序設計方法持續改進,在過去的幾十年中,程序設計方法主要經歷了兩次革命性的飛躍:結構化方法和面向對象方法.相對應地產生了面向過程程序設計和面向對象程序設計。下面介紹結構化方法(Structured Method)和面向對象方法(Object-OrientedMethod).
曾被稱譽為“程序設計方法的革命”的結構化程序設計.使程序設計從主要依賴于程序員個人的自由活動變成為有章可循的一門科學。它的主要貢獻,是推動了程序設計風格從“追求技巧與效率”到“清晰第一、效率第二”的轉變。從而提高了程序的易讀性和可靠性。1976年.瑞士的沃斯((Nikiaus Wirth)教授在其經典名著《算法十數據結構二程序,的序言中指出:“程序就是在數據的某些特定表示形式和結構的纂礎上.對于抽象算法的具體描述。”、“不了解施加于數據上的算法,就無法決定如何構成數據;反之,算法的結構和選撣,卻常常在很大程度上依翰于作為基礎的數據結構。簡而言之。程序的構成與數據結構是兩個不可分割地聯系在一起的問題.”
沃斯的論述.精辟地概括了算法與數據結構在當時程序設計中的地位與相互關系.“算法+數據結構二程序”.影響和指導了一代又一代的程序員。從早期的程序設計語言Fortran,Cobol,ADA,Pascal到現代的C語言,全是面向過程的,都有一個特點:當對軟件進行分析或設計時.開發人員總是遵循“程序二數據結構十算法”的思路.把程序理解為由一組被動的數據和一組能動的過程所構成,這樣的程序設計方法就稱為面向過程的程序設計方法。
結構化程序設計的普及促進了軟件生產的工業化,也緩解了當時的軟件危機。然而它的面向過程的程序設計思路,不適合日益復雜應用系統。實踐表明用結構化技術處理5000行以下代碼的軟件的確是十分有效的,但面對當今的大規模軟件產品的復雜性。卻仍舊無能為力。可是在客觀事物中,實體的內部“狀態態,’(可用數據表示)和“運動”(加于數據的操作)卻是結合在一起的.這就使采用傳統范型開發的軟件模型(稱為“解空間” Solutiondomain)被人為地偏離客觀實體本身的模型(稱為“間題空間”,Problem domain).于是,面向對象的方法就應運而生了。
在面向對象的程序設計中,數據及其操作被封裝在一個個稱為“對象”(Object)的統一體中,對象之間則通過“消息”(Message)相互聯系,‘對象+消息”的機制取代了“數據結構+算法”的思路,因而較好地實現了一解空間”與“問題空間,的一致性,為解決軟件危機帶來了新的希望,從結構化程序設計到面向對象的程序設計,是程序設汁方法的又一次飛躍,在軟件開發和維護中正日益顯露其優越性。
面向對象的思想最初起源于20世紀60年代中期的仿真程序設計語言Simula 67。 20世紀紀80年代初出現的Smalltalk語言和90年代推出的C++,Java語言及其程序設計環境先后成為面向對象技術發展的重要里程碑。從80年代末開始,面向對象的程序設計和面向對象的需求分析都得到快速發展,特別是90年代中期,lBooch, Rumbaugh和Jacoson共同提出了統一建模ig言(Unified Modeling Language, CML),把眾多面向對象方法綜合成一種標準,使面向對象的方法成為主流的程序設計方法。
(1)對象((Object),對象是現實世界中個體或事物的抽象表示,是它的屬性和相關操作的統一封裝體。屬性表示對象的性質,屬性值規定了對象所有可能的狀態。對象的操作是指該對象可以展現的外部服務。例如。若將卡車視為對象。則它具有位置、速度、顏色、容量等屬性。對于該對象可施行啟動、停車、加速、維修等操作,這些操作將或多或少地改變卡車的屬性值。
(2)類(Class)。類用于表示某些對象的共同特征(屬性和操作),對象是類的實例。例如,汽車類可包含位置、速度、顏色等屬性,以及啟動、停車、加速等操作。卡車是汽車類的一個實例。
(3)繼承(Inheritance)類之間可以存在繼承關系,它是現實世界中遺傳關系的直接模擬,可用來表示類之間的內在聯系以及對屬性和操作的共享。子類可以沿用父類(被繼承類)的某些特征,同時子類也可以具有自己獨有的屬性和操作,對于一個類的修改能自動反映到它的所有子類中。例如,飛行器、汽車和輪船都是交通工具類的子類,它們都可以繼承交通工具類的某些屬性和操作。除繼承關系外,現實世界中還大量存在著“部分和整體”關系。例如,飛機可由發動機、機身、機械控制系統、電子控制系統等構成。這種關系在面向對象方法學中可表示為類之間的聚集(Aggregation)關系。在聚集關系下,“部分”類的對象“整體”類對象的一個組成部分。
(4)消息(Message)。消息傳遞是對象與其外部世界相互關聯的唯一途徑。對象可以向其他對象發送消息以請求服務,也可以響應其他對象傳來的消息,完成自身固有的某些操作,從而服務于其他對象.例如。直升飛機可以響應輪船的海難急救信號,起飛,加速,飛赴出事地點并實施救援作業。 對象的操作主要是用來響應外來消息并為其他對象提供服務的,所以它們也被稱作“外部服務”。Coad和Yourdon認為。采用上述4種概念進行開發的軟件系統可以認為是面向對象的。為此,他們把面向對象方法歸結為一個簡單的公式,即面向時象二對象+分類(Classification) +繼承+消息通信(Communication withmessages)。
推薦新聞
更多行業-
制造企業網站建設雙目標策略:品牌塑造與詢盤獲取兼得的結構設計
制造企業官網的核心目標不僅是展示企業形象,還要實現實際的業務轉化。一個...
2025-05-12 -
發展網絡證券的基本條件
發展網絡證券交易必須具備許多基本條件,其中主要包括如下。(I)完善的基...
2014-09-01 -
關鍵詞-SEO重要的項目
北京網站建設公司尚品中國:關鍵字是搜索引擎優化最重要的元素,為每一個搜...
2012-02-21 -
尚品中國之百度算法匯總盤點(一)
2013年,百度為了提供給用戶更加優質便捷的搜索體驗,百度搜索發布...
2019-07-23 -
網站設計需要掌握哪些要點會更好
現如今,網站已經成為了企業運營和發展過程中的標配。只有在網站方面做得很...
2020-07-10 -
十年經驗站長分享怎樣利用網站賺錢
北京網站建設公司尚品中國:對于網站制作來說,就我個人從事了十年的經驗來...
2012-02-17
預約專業咨詢顧問溝通!
免責聲明
非常感謝您訪問我們的網站。在您使用本網站之前,請您仔細閱讀本聲明的所有條款。
1、本站部分內容來源自網絡,涉及到的部分文章和圖片版權屬于原作者,本站轉載僅供大家學習和交流,切勿用于任何商業活動。
2、本站不承擔用戶因使用這些資源對自己和他人造成任何形式的損失或傷害。
3、本聲明未涉及的問題參見國家有關法律法規,當本聲明與國家法律法規沖突時,以國家法律法規為準。
4、如果侵害了您的合法權益,請您及時與我們,我們會在第一時間刪除相關內容!
聯系方式:010-60259772
電子郵件:394588593@qq.com