程序設計方法
隨著計算機硬件技術的不斷發展,程序設計方法也隨之不斷發展。最早的程序設計方法稱為個體化方法,每個程序員都按照自己的習慣和風格來編寫程序,其結果是程序很難維護。特別是規模較大的程序.個體化方法導致程序的壽命縮短。成本提高,不能滿足需要.經過計算機工作者的努力.程序設計方法持續改進,在過去的幾十年中,程序設計方法主要經歷了兩次革命性的飛躍:結構化方法和面向對象方法.相對應地產生了面向過程程序設計和面向對象程序設計。下面介紹結構化方法(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)。
推薦新聞
更多行業-
網站設計的基本原則
網站設計的基本原則總結如下1.網站內容要新、專、精網站的信息內容要有特...
2014-07-18 -
教育網站設計的原則是什么?模板怎么使用?
教育網站設計的原則是要注意使用易于理解和記憶的語言來描述你想要表達的信...
2023-04-24 -
SEO鏈接建設:反向鏈接如何影響排名?
SEO優化反向鏈接提高網站排名Optimization of SEO ...
2013-08-28 -
網站建設貴堅持更新
一、堅持網站建設內更新更輕易受到搜索蜘蛛的惠臨青睞Adhere to ...
2012-08-07 -
高端網站建設要使用線框嗎?
了解了不同的線框之后,你可能會想知道為什么在高端網站設計中使用線框。使...
2022-02-04 -
企業網站建設對網絡營銷很有必要
其實這個問題可以理解為網站建設中如何避免被外包網絡公司忽悠和欺騙。企業...
2021-12-01
預約專業咨詢顧問溝通!
免責聲明
非常感謝您訪問我們的網站。在您使用本網站之前,請您仔細閱讀本聲明的所有條款。
1、本站部分內容來源自網絡,涉及到的部分文章和圖片版權屬于原作者,本站轉載僅供大家學習和交流,切勿用于任何商業活動。
2、本站不承擔用戶因使用這些資源對自己和他人造成任何形式的損失或傷害。
3、本聲明未涉及的問題參見國家有關法律法規,當本聲明與國家法律法規沖突時,以國家法律法規為準。
4、如果侵害了您的合法權益,請您及時與我們,我們會在第一時間刪除相關內容!
聯系方式:010-60259772
電子郵件:394588593@qq.com