學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > 什么是程序設(shè)計(jì)意思與概念

什么是程序設(shè)計(jì)意思與概念

時(shí)間: 謝君787 分享

什么是程序設(shè)計(jì)意思與概念

  程序設(shè)計(jì)往往以某種程序設(shè)計(jì)語言為工具,給出這種語言下的程序。那么你對(duì)程序設(shè)計(jì)了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是程序設(shè)計(jì)的內(nèi)容,希望大家喜歡!

  什么是程序設(shè)計(jì)

  程序設(shè)計(jì)是給出解決特定問題程序的過程,是軟件構(gòu)造活動(dòng)中的重要組成部分。程序設(shè)計(jì)往往以某種程序設(shè)計(jì)語言為工具,給出這種語言下的程序。程序設(shè)計(jì)過程應(yīng)當(dāng)包括分析、設(shè)計(jì)、編碼、測(cè)試、排錯(cuò)等不同階段。專業(yè)的程序設(shè)計(jì)人員常被稱為程序員。

  某種意義上,程序設(shè)計(jì)的出現(xiàn)甚至早于電子計(jì)算機(jī)的出現(xiàn)。英國著名詩人拜倫的女兒愛達(dá)·勒芙蕾絲曾設(shè)計(jì)了巴貝奇分析機(jī)上計(jì)算伯努利數(shù)的一個(gè)程序。她甚至還創(chuàng)建了循環(huán)和子程序的概念。由于她在程序設(shè)計(jì)上的開創(chuàng)性工作,愛達(dá)·勒芙蕾絲被稱為世界上第一位程序員。

  任何設(shè)計(jì)活動(dòng)都是在各種約束條件和相互矛盾的需求之間尋求一種平衡,程序設(shè)計(jì)也不例外。在計(jì)算機(jī)技術(shù)發(fā)展的早期,由于機(jī)器資源比較昂貴,程序的時(shí)間和空間代價(jià)往往是設(shè)計(jì)關(guān)心的主要因素;隨著硬件技術(shù)的飛速發(fā)展和軟件規(guī)模的日益龐大,程序的結(jié)構(gòu)、可維護(hù)性、復(fù)用性、可擴(kuò)展性等因素日益重要。

  另一方面,在計(jì)算機(jī)技術(shù)發(fā)展的早期,軟件構(gòu)造活動(dòng)主要就是程序設(shè)計(jì)活動(dòng)。但隨著軟件技術(shù)的發(fā)展,軟件系統(tǒng)越來越復(fù)雜,逐漸分化出許多專用的軟件系統(tǒng),如操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應(yīng)用服務(wù)器,而且這些專用的軟件系統(tǒng)愈來愈成為普遍的計(jì)算環(huán)境的一部分。這種情況下軟件構(gòu)造活動(dòng)的內(nèi)容越來越豐富,不再只是純粹的程序設(shè)計(jì),還包括數(shù)據(jù)庫設(shè)計(jì)、用戶界面設(shè)計(jì)、接口設(shè)計(jì)、通信協(xié)議設(shè)計(jì)和復(fù)雜的系統(tǒng)配置過程。

  程序設(shè)計(jì)的步驟

  分析問題

  對(duì)于接受的任務(wù)要進(jìn)行認(rèn)真的分析,研究所給定的條件,分析最后應(yīng)達(dá)到的目標(biāo),找出解決問題的規(guī)律,選擇解題的方法,完成實(shí)際問題。

  設(shè)計(jì)算法

  即設(shè)計(jì)出解題的方法和具體步驟。

  編寫程序

  將算法翻譯成計(jì)算機(jī)程序設(shè)計(jì)語言,對(duì)源程序進(jìn)行編輯、編譯和連接。

  運(yùn)行程序,分析結(jié)果

  運(yùn)行可執(zhí)行程序,得到運(yùn)行結(jié)果。能得到運(yùn)行結(jié)果并不意味著程序正確,要對(duì)結(jié)果進(jìn)行分析,看它是否合理。不合理要對(duì)程序進(jìn)行調(diào)試,即通過上機(jī)發(fā)現(xiàn)和排除程序中的故障的過程。

  編寫程序文檔

  許多程序是提供給別人使用的,如同正式的產(chǎn)品應(yīng)當(dāng)提供產(chǎn)品說明書一樣,正式提供給用戶使用的程序,必須向用戶提供程序說明書。內(nèi)容應(yīng)包括:程序名稱、程序功能、運(yùn)行環(huán)境、程序的裝入和啟動(dòng)、需要輸入的數(shù)據(jù),以及使用注意事項(xiàng)等。

  程序設(shè)計(jì)的方法

  面向過程

  面向過程的結(jié)構(gòu)化程序設(shè)計(jì)分三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

  原則:

  1,自頂向下:指從問題的全局下手,把一個(gè)復(fù)雜的任務(wù)分解成許多易于控制和處理的子任務(wù),子任務(wù)還可能做進(jìn)一步分解,如此重復(fù),直到每個(gè)子任務(wù)都容易解決為止。

  2,逐步求精

  3,模塊化:指解決一個(gè)復(fù)雜問題是自頂向下逐層把軟件系統(tǒng)劃分成一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相互關(guān)聯(lián)的模塊的過程。

  注意事項(xiàng)

  1,使用順序、選擇、循環(huán)等有限的基本結(jié)構(gòu)表示程序邏輯。

  2,選用的控制結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

  3,程序語句組成容易識(shí)別的塊,每塊只有一個(gè)入口和一個(gè)出口。

  4,復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合或嵌套來實(shí)現(xiàn)。

  5,程序設(shè)計(jì)語言中沒有的控制結(jié)構(gòu),可用一段等價(jià)的程序段模擬,但要求改程序段在整個(gè)系統(tǒng)中應(yīng)前后一致。

  6,嚴(yán)格控制GOTO語句。

  面向?qū)ο蟮某绦蛟O(shè)計(jì)

  面向?qū)ο蟮幕靖拍?/p>

  1,對(duì)象

  2,類

  3,封裝

  4,繼承

  5,消息

  6,多態(tài)性

  優(yōu)點(diǎn)

  1,符合人們認(rèn)識(shí)事物的規(guī)律

  2,改善了程序的可讀性

  3,使人機(jī)交互更加貼近自然語言

  面向切面程序設(shè)計(jì)

  Aspect Oriented Programming(AOP),面向切面編程,是一個(gè)比較熱門的話題。AOP主要實(shí)現(xiàn)的目的是針對(duì)業(yè)務(wù)處理過程中的切面進(jìn)行提取,它所面對(duì)的是處理過程中的某個(gè)步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。比如我們最常見的就是日志記錄了,舉個(gè)例子,我們現(xiàn)在提供一個(gè)查詢學(xué)生信息的服務(wù),但是我們希望記錄有誰進(jìn)行了這個(gè)查詢。如果按照傳統(tǒng)的OOP的實(shí)現(xiàn)的話,那我們實(shí)現(xiàn)了一個(gè)查詢學(xué)生信息的服務(wù)接口(StudentInfoService)和其實(shí)現(xiàn)類 (StudentInfoServiceImpl.java),同時(shí)為了要進(jìn)行記錄的話,那我們?cè)趯?shí)現(xiàn)類(StudentInfoServiceImpl.java)中要添加其實(shí)現(xiàn)記錄的過程。這樣的話,假如我們要實(shí)現(xiàn)的服務(wù)有多個(gè)呢?那就要在每個(gè)實(shí)現(xiàn)的類都添加這些記錄過程。這樣做的話就會(huì)有點(diǎn)繁瑣,而且每個(gè)實(shí)現(xiàn)類都與記錄服務(wù)日志的行為緊耦合,違反了面向?qū)ο蟮囊?guī)則。那么怎樣才能把記錄服務(wù)的行為與業(yè)務(wù)處理過程中分離出來呢?看起來好像就是查詢學(xué)生的服務(wù)自己在進(jìn)行,但卻是背后日志記錄對(duì)這些行為進(jìn)行記錄,并且查詢學(xué)生的服務(wù)不知道存在這些記錄過程,這就是我們要討論AOP的目的所在。AOP的編程,好像就是把我們?cè)谀硞€(gè)方面的功能提出來與一批對(duì)象進(jìn)行隔離,這樣與一批對(duì)象之間降低了耦合性,可以就某個(gè)功能進(jìn)行編程。
看過“
程序設(shè)計(jì)是什么“的人還看了:

1.c++程序設(shè)計(jì)心得體會(huì)3篇

2.windows nt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)論文

3.什么是計(jì)算機(jī)等級(jí)考試?

4.計(jì)算機(jī)二級(jí)公共基礎(chǔ)知識(shí)總結(jié)

5.計(jì)算機(jī)軟件畢業(yè)論文

熱門文章

1362500