什么是程序設計意思與概念
什么是程序設計意思與概念
程序設計往往以某種程序設計語言為工具,給出這種語言下的程序。那么你對程序設計了解多少呢?以下是由學習啦小編整理關于什么是程序設計的內(nèi)容,希望大家喜歡!
什么是程序設計
程序設計是給出解決特定問題程序的過程,是軟件構造活動中的重要組成部分。程序設計往往以某種程序設計語言為工具,給出這種語言下的程序。程序設計過程應當包括分析、設計、編碼、測試、排錯等不同階段。專業(yè)的程序設計人員常被稱為程序員。
某種意義上,程序設計的出現(xiàn)甚至早于電子計算機的出現(xiàn)。英國著名詩人拜倫的女兒愛達·勒芙蕾絲曾設計了巴貝奇分析機上計算伯努利數(shù)的一個程序。她甚至還創(chuàng)建了循環(huán)和子程序的概念。由于她在程序設計上的開創(chuàng)性工作,愛達·勒芙蕾絲被稱為世界上第一位程序員。
任何設計活動都是在各種約束條件和相互矛盾的需求之間尋求一種平衡,程序設計也不例外。在計算機技術發(fā)展的早期,由于機器資源比較昂貴,程序的時間和空間代價往往是設計關心的主要因素;隨著硬件技術的飛速發(fā)展和軟件規(guī)模的日益龐大,程序的結構、可維護性、復用性、可擴展性等因素日益重要。
另一方面,在計算機技術發(fā)展的早期,軟件構造活動主要就是程序設計活動。但隨著軟件技術的發(fā)展,軟件系統(tǒng)越來越復雜,逐漸分化出許多專用的軟件系統(tǒng),如操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應用服務器,而且這些專用的軟件系統(tǒng)愈來愈成為普遍的計算環(huán)境的一部分。這種情況下軟件構造活動的內(nèi)容越來越豐富,不再只是純粹的程序設計,還包括數(shù)據(jù)庫設計、用戶界面設計、接口設計、通信協(xié)議設計和復雜的系統(tǒng)配置過程。
程序設計的步驟
分析問題
對于接受的任務要進行認真的分析,研究所給定的條件,分析最后應達到的目標,找出解決問題的規(guī)律,選擇解題的方法,完成實際問題。
設計算法
即設計出解題的方法和具體步驟。
編寫程序
將算法翻譯成計算機程序設計語言,對源程序進行編輯、編譯和連接。
運行程序,分析結果
運行可執(zhí)行程序,得到運行結果。能得到運行結果并不意味著程序正確,要對結果進行分析,看它是否合理。不合理要對程序進行調(diào)試,即通過上機發(fā)現(xiàn)和排除程序中的故障的過程。
編寫程序文檔
許多程序是提供給別人使用的,如同正式的產(chǎn)品應當提供產(chǎn)品說明書一樣,正式提供給用戶使用的程序,必須向用戶提供程序說明書。內(nèi)容應包括:程序名稱、程序功能、運行環(huán)境、程序的裝入和啟動、需要輸入的數(shù)據(jù),以及使用注意事項等。
程序設計的方法
面向過程
面向過程的結構化程序設計分三種基本結構:順序結構、選擇結構、循環(huán)結構
原則:
1,自頂向下:指從問題的全局下手,把一個復雜的任務分解成許多易于控制和處理的子任務,子任務還可能做進一步分解,如此重復,直到每個子任務都容易解決為止。
2,逐步求精
3,模塊化:指解決一個復雜問題是自頂向下逐層把軟件系統(tǒng)劃分成一個個較小的、相對獨立但又相互關聯(lián)的模塊的過程。
注意事項
1,使用順序、選擇、循環(huán)等有限的基本結構表示程序邏輯。
2,選用的控制結構只準許有一個入口和一個出口
3,程序語句組成容易識別的塊,每塊只有一個入口和一個出口。
4,復雜結構應該用基本控制結構進行組合或嵌套來實現(xiàn)。
5,程序設計語言中沒有的控制結構,可用一段等價的程序段模擬,但要求改程序段在整個系統(tǒng)中應前后一致。
6,嚴格控制GOTO語句。
面向對象的程序設計
面向對象的基本概念
1,對象
2,類
3,封裝
4,繼承
5,消息
6,多態(tài)性
優(yōu)點
1,符合人們認識事物的規(guī)律
2,改善了程序的可讀性
3,使人機交互更加貼近自然語言
面向切面程序設計
Aspect Oriented Programming(AOP),面向切面編程,是一個比較熱門的話題。AOP主要實現(xiàn)的目的是針對業(yè)務處理過程中的切面進行提取,它所面對的是處理過程中的某個步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。比如我們最常見的就是日志記錄了,舉個例子,我們現(xiàn)在提供一個查詢學生信息的服務,但是我們希望記錄有誰進行了這個查詢。如果按照傳統(tǒng)的OOP的實現(xiàn)的話,那我們實現(xiàn)了一個查詢學生信息的服務接口(StudentInfoService)和其實現(xiàn)類 (StudentInfoServiceImpl.java),同時為了要進行記錄的話,那我們在實現(xiàn)類(StudentInfoServiceImpl.java)中要添加其實現(xiàn)記錄的過程。這樣的話,假如我們要實現(xiàn)的服務有多個呢?那就要在每個實現(xiàn)的類都添加這些記錄過程。這樣做的話就會有點繁瑣,而且每個實現(xiàn)類都與記錄服務日志的行為緊耦合,違反了面向對象的規(guī)則。那么怎樣才能把記錄服務的行為與業(yè)務處理過程中分離出來呢?看起來好像就是查詢學生的服務自己在進行,但卻是背后日志記錄對這些行為進行記錄,并且查詢學生的服務不知道存在這些記錄過程,這就是我們要討論AOP的目的所在。AOP的編程,好像就是把我們在某個方面的功能提出來與一批對象進行隔離,這樣與一批對象之間降低了耦合性,可以就某個功能進行編程。
看過“程序設計是什么“的人還看了: