時(shí)間:2022-09-27 11:53:05
開(kāi)篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇編程軟件,希望這些內(nèi)容能成為您創(chuàng)作過(guò)程中的良師益友,陪伴您不斷探索和進(jìn)步。
關(guān)鍵詞 軟件;編程實(shí)現(xiàn);風(fēng)險(xiǎn);規(guī)避
中圖分類號(hào):F407.67 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671—7597(2013)042-051-01
隨著社會(huì)需求的不斷提高,應(yīng)用于實(shí)際生產(chǎn)工作的軟件編程結(jié)構(gòu)越來(lái)越復(fù)雜,軟件的功能越來(lái)越多,軟件體積越來(lái)越臃腫,所需消耗的人力物力也越來(lái)越多,這就使得在軟件開(kāi)發(fā)中所存在的風(fēng)險(xiǎn)變得越來(lái)越大,若無(wú)法合理規(guī)避或消除這些存在的風(fēng)險(xiǎn),很容易使軟件開(kāi)發(fā)陷入無(wú)法自拔的深潭,為開(kāi)發(fā)單位或企業(yè)帶來(lái)經(jīng)濟(jì)損失。
1 編程軟件中存在的風(fēng)險(xiǎn)概述
風(fēng)險(xiǎn)存在于軟件開(kāi)發(fā)的整個(gè)生命周期,是任意軟件項(xiàng)目中都存在的。潛在的開(kāi)發(fā)風(fēng)險(xiǎn)容易對(duì)軟件的開(kāi)發(fā)和應(yīng)用帶來(lái)消極的影響,如拖延軟件開(kāi)發(fā)進(jìn)度和開(kāi)發(fā)時(shí)間、增大研發(fā)投入成本、降低軟件質(zhì)量等,嚴(yán)重者會(huì)導(dǎo)致編程軟件的開(kāi)發(fā)過(guò)程中斷或停止。在軟件編程中存在的風(fēng)險(xiǎn)主要可以分為以下幾方面:客觀性因素如進(jìn)度因素、成本因素等,主觀性因素如人員因素、環(huán)境因素、技術(shù)因素等。這些因素都會(huì)對(duì)編程軟件的開(kāi)發(fā)帶來(lái)諸多不確定性影響和風(fēng)險(xiǎn)。若在軟件項(xiàng)目計(jì)劃、估算、構(gòu)建、管理等方面沒(méi)有制訂合理的規(guī)劃和估計(jì)或在軟件項(xiàng)目實(shí)施過(guò)程中缺乏必要的成員溝通,出現(xiàn)設(shè)計(jì)、代碼、測(cè)試、維護(hù)等方面的風(fēng)險(xiǎn)問(wèn)題則很容易導(dǎo)致編程軟件發(fā)生問(wèn)題,影響整個(gè)軟件的品質(zhì)。
對(duì)編程軟件進(jìn)行風(fēng)險(xiǎn)規(guī)避分析正是面對(duì)上述情況而提出的,用于提升軟件產(chǎn)品魯棒性,降低軟件開(kāi)發(fā)過(guò)程所面臨的風(fēng)險(xiǎn)和損失的一種分析方法。該方法綜合考慮編程軟件開(kāi)發(fā)過(guò)程中涉及的多種相關(guān)參數(shù),制定合理的管理策略對(duì)編程軟件中的多種因素進(jìn)行適當(dāng)管理,降低或避免風(fēng)險(xiǎn)。
2 軟件開(kāi)發(fā)風(fēng)險(xiǎn)規(guī)避步驟分析
在軟件開(kāi)發(fā)過(guò)程中進(jìn)行風(fēng)險(xiǎn)規(guī)避主要通過(guò)風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析以及風(fēng)險(xiǎn)監(jiān)控三個(gè)步驟完成。
2.1 風(fēng)險(xiǎn)識(shí)別
該步驟主要集中在項(xiàng)目規(guī)劃和開(kāi)始階段。在項(xiàng)目建立初期,需要根據(jù)軟件的屬性如功能、配置、需求等將項(xiàng)目的風(fēng)險(xiǎn)進(jìn)行分解和構(gòu)析,建立風(fēng)險(xiǎn)資料庫(kù),邀請(qǐng)與本軟件開(kāi)發(fā)相關(guān)的專家、編程人員等根據(jù)軟件應(yīng)用范圍和總體計(jì)劃等信息對(duì)軟件開(kāi)發(fā)生命周期內(nèi)的風(fēng)險(xiǎn)來(lái)源和風(fēng)險(xiǎn)種類進(jìn)行分析和識(shí)別,進(jìn)而根據(jù)識(shí)別分析結(jié)果制定相應(yīng)的風(fēng)險(xiǎn)規(guī)避計(jì)劃。
風(fēng)險(xiǎn)識(shí)別就是利用系統(tǒng)化分析方法對(duì)軟件開(kāi)發(fā)項(xiàng)目中影響比重大、發(fā)生概率高等風(fēng)險(xiǎn)進(jìn)行確定,然后依照相關(guān)的風(fēng)險(xiǎn)管理經(jīng)驗(yàn)對(duì)風(fēng)險(xiǎn)的來(lái)源、等級(jí)、內(nèi)容等進(jìn)行分類,便于后續(xù)處理。
2.2 風(fēng)險(xiǎn)分析
在影響編程軟件的多個(gè)風(fēng)險(xiǎn)因素中,只有部分風(fēng)險(xiǎn)因素是主要因素,會(huì)對(duì)編程軟件的整個(gè)開(kāi)發(fā)進(jìn)度產(chǎn)生最直接、最重要的影響。對(duì)編程軟件開(kāi)發(fā)項(xiàng)目進(jìn)行風(fēng)險(xiǎn)分析就是應(yīng)用定性或定量的分析方法將識(shí)別到的風(fēng)險(xiǎn)進(jìn)行分類,按照不同風(fēng)險(xiǎn)因素對(duì)軟件項(xiàng)目開(kāi)發(fā)的影響程度將其分為重要、一般、不影響等多個(gè)類別,指導(dǎo)后續(xù)風(fēng)險(xiǎn)規(guī)避計(jì)劃的制定。
2.3 風(fēng)險(xiǎn)監(jiān)控
風(fēng)險(xiǎn)監(jiān)控就是利用所制定的規(guī)避計(jì)劃對(duì)軟件編程過(guò)程進(jìn)行監(jiān)控和管理,消除軟件開(kāi)發(fā)風(fēng)險(xiǎn)對(duì)軟件項(xiàng)目帶來(lái)的不利影響。
3 編程軟件風(fēng)險(xiǎn)規(guī)避策略
1)確保開(kāi)發(fā)所需資源。對(duì)編程軟件開(kāi)發(fā)最為重要的是團(tuán)隊(duì)核心開(kāi)發(fā)人員的儲(chǔ)備。為提高軟件開(kāi)發(fā)的抗風(fēng)險(xiǎn)能力應(yīng)該采取一定的措施和手段做好人員流動(dòng)、離職等風(fēng)險(xiǎn)的準(zhǔn)備和預(yù)防工作,確保即便出現(xiàn)少量研發(fā)人員流失也能夠讓軟件編程工作處于正常運(yùn)轉(zhuǎn)狀態(tài)。其他如開(kāi)發(fā)過(guò)程的文檔機(jī)制、硬件資源等對(duì)提升編程軟件的抗風(fēng)險(xiǎn)能力同樣具有重要作用。
2)增強(qiáng)關(guān)鍵技術(shù)的提前調(diào)研意識(shí)。軟件編程最主要的工作內(nèi)容就是關(guān)鍵位置和關(guān)鍵技術(shù)的編程實(shí)現(xiàn)。為降低軟件開(kāi)發(fā)過(guò)程中來(lái)自技術(shù)方面的風(fēng)險(xiǎn)應(yīng)該在軟件編程過(guò)程中及時(shí)首先相關(guān)技術(shù)實(shí)現(xiàn)信息,增強(qiáng)關(guān)鍵功能的突破能力,避免合作開(kāi)發(fā)中技術(shù)依賴為編程軟件開(kāi)發(fā)所帶來(lái)的高風(fēng)險(xiǎn)和高成本。
3)制定完善的執(zhí)行計(jì)劃。項(xiàng)目執(zhí)行計(jì)劃書是控制與調(diào)整編程軟件研發(fā)方向、研發(fā)時(shí)間、研發(fā)內(nèi)容等的基準(zhǔn)和依據(jù)。整個(gè)項(xiàng)目的執(zhí)行過(guò)程與計(jì)劃書相匹配,并接受相關(guān)監(jiān)控人員的監(jiān)控。若出現(xiàn)項(xiàng)目時(shí)間、內(nèi)容等的變更則需要及時(shí)分析和總結(jié)出現(xiàn)變更的原因,制定相應(yīng)的糾正策略,調(diào)整執(zhí)行計(jì)劃,盡量消除編程軟件開(kāi)發(fā)與執(zhí)行計(jì)劃之間的偏差,確保整個(gè)開(kāi)發(fā)過(guò)程處于可控狀態(tài)。
4)做好項(xiàng)目的跟蹤。在編程軟件開(kāi)發(fā)過(guò)程中應(yīng)該對(duì)進(jìn)度中出現(xiàn)的各種數(shù)據(jù)進(jìn)行記錄和跟蹤,在一段時(shí)期后對(duì)所記錄的資料進(jìn)行整理和分析,從而進(jìn)一步提高編程軟件的開(kāi)發(fā)與管理水平,確保編程軟件所面臨的風(fēng)險(xiǎn)處于可控或可消除狀態(tài)。
5)建立和完善風(fēng)險(xiǎn)應(yīng)對(duì)策略。雖然采取必要的風(fēng)險(xiǎn)規(guī)避策略可以有效降低風(fēng)險(xiǎn)發(fā)生的幾率,提升編程軟件的品質(zhì),但是風(fēng)險(xiǎn)還是存在可出現(xiàn)的。當(dāng)風(fēng)險(xiǎn)出現(xiàn)時(shí)應(yīng)該根據(jù)風(fēng)險(xiǎn)特征制定應(yīng)對(duì)策略,采取預(yù)防措施,同時(shí)指定專門的風(fēng)險(xiǎn)責(zé)任人對(duì)風(fēng)險(xiǎn)進(jìn)行跟蹤和應(yīng)對(duì)。風(fēng)險(xiǎn)應(yīng)對(duì)策略的指定原則應(yīng)該是有效可行的,適用性較強(qiáng)的,可以將具體的風(fēng)險(xiǎn)轉(zhuǎn)化、分擔(dān)為多個(gè)可處理的解決方案,或直接采取一定手段回避風(fēng)險(xiǎn)的影響,確保編程軟件的進(jìn)度不受或承受最低限度的影響。
6)應(yīng)用現(xiàn)代管理軟件對(duì)編程軟件項(xiàng)目進(jìn)行風(fēng)險(xiǎn)管理。鑒于風(fēng)險(xiǎn)規(guī)避已經(jīng)成為軟件編程過(guò)程中需要考慮和注意的一個(gè)重點(diǎn)內(nèi)容,故專門針對(duì)風(fēng)險(xiǎn)管理的軟件正在逐漸被應(yīng)用到項(xiàng)目風(fēng)險(xiǎn)管理中。軟件企業(yè),特別是中小軟件企業(yè)在進(jìn)行編程軟件風(fēng)險(xiǎn)管理中應(yīng)該盡量將軟件工程與風(fēng)險(xiǎn)管理進(jìn)行結(jié)合,促使風(fēng)險(xiǎn)規(guī)避更加具體,更具針對(duì)性和可實(shí)施性,進(jìn)而綜合提升編程軟件的抗風(fēng)險(xiǎn)能力。
參考文獻(xiàn)
[1]黃石磊.淺談軟件編程的風(fēng)險(xiǎn)規(guī)避[J].科技創(chuàng)新導(dǎo)報(bào),2010(4).
1組織方式
實(shí)際上,上述選題機(jī)制是將分散的畢業(yè)設(shè)計(jì)引導(dǎo)形成基于團(tuán)隊(duì)的角色學(xué)習(xí)環(huán)境,學(xué)生在教師的統(tǒng)一帶領(lǐng)下,對(duì)項(xiàng)目進(jìn)行設(shè)計(jì)并劃分模塊,獨(dú)立負(fù)責(zé)不同模塊的開(kāi)發(fā),并且在教師的指導(dǎo)下,充分體驗(yàn)不同模塊之間的溝通和集成問(wèn)題,使學(xué)生能夠貼近企業(yè)項(xiàng)目開(kāi)發(fā)的實(shí)際情境,體會(huì)到實(shí)際項(xiàng)目身臨其境的感覺(jué),從而提高畢業(yè)設(shè)計(jì)對(duì)于畢業(yè)生的鍛煉價(jià)值和質(zhì)量。
敏捷宣言認(rèn)為人和交互勝過(guò)過(guò)程和工具。以此原則為指導(dǎo),在畢業(yè)設(shè)計(jì)實(shí)施過(guò)程中,要求學(xué)生組內(nèi)成員和小組之間加強(qiáng)交流溝通,對(duì)于畢業(yè)設(shè)計(jì)過(guò)程中產(chǎn)生的文檔,要求學(xué)生著重記錄交流過(guò)程,而非交流結(jié)果。敏捷宣言認(rèn)為客戶合作勝過(guò)合同談判,意義在于業(yè)務(wù)人員應(yīng)該參與到項(xiàng)目開(kāi)發(fā)的整體過(guò)程中,達(dá)到整個(gè)項(xiàng)目開(kāi)發(fā)團(tuán)隊(duì)能夠把握項(xiàng)目開(kāi)發(fā)方向。對(duì)于軟件工程畢業(yè)設(shè)計(jì)來(lái)說(shuō),意味著在選擇畢業(yè)設(shè)計(jì)所涉及到的項(xiàng)目原型時(shí),應(yīng)盡量貼近學(xué)生實(shí)際,例如選擇教務(wù)管理系統(tǒng)、教學(xué)管理系統(tǒng)、圖書管理系統(tǒng)等學(xué)生經(jīng)常接觸和使用的應(yīng)用系統(tǒng),或是指導(dǎo)教學(xué)正在從事的橫向或縱向課題。要求選擇指導(dǎo)教學(xué)或?qū)W生自己能夠扮演客戶的角色,學(xué)生對(duì)于所開(kāi)發(fā)的系統(tǒng)的需求了然于胸。
2管理方式
敏捷宣言認(rèn)為可以工作的軟件勝過(guò)面面俱到的文檔,可以工作的軟件是進(jìn)度主要的度量標(biāo)準(zhǔn)。以此原則為指導(dǎo),對(duì)畢業(yè)設(shè)計(jì)過(guò)程中要求撰寫的文檔可適當(dāng)弱化,而是要求將項(xiàng)目程序代碼保存到統(tǒng)一版本庫(kù),并保持版本庫(kù)中的代碼是可部署和運(yùn)行的。極限編程的推薦實(shí)踐方式認(rèn)為對(duì)于項(xiàng)目開(kāi)發(fā)應(yīng)該盡早測(cè)試、經(jīng)常測(cè)試、自動(dòng)測(cè)試。在畢業(yè)設(shè)計(jì)的實(shí)施過(guò)程中,要求學(xué)生對(duì)于測(cè)試計(jì)劃、測(cè)試用例及測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TestDrivenDevelopment,TDD)都有所了解,使用由學(xué)生指導(dǎo)教學(xué)編寫的自動(dòng)測(cè)試來(lái)監(jiān)控開(kāi)發(fā)進(jìn)度,支持系統(tǒng)的演化,并盡早發(fā)現(xiàn)缺陷。上述管理方式就現(xiàn)階段軟件工程專業(yè)的畢業(yè)設(shè)計(jì)來(lái)看,實(shí)施比較困難,但應(yīng)盡力發(fā)展,從而彌補(bǔ)現(xiàn)有人才培養(yǎng)方案中對(duì)于軟件測(cè)試不夠重視的缺陷。
極限編程推薦增量設(shè)計(jì)、開(kāi)發(fā)和頻繁重構(gòu)。這也是畢業(yè)設(shè)計(jì)過(guò)程中應(yīng)采納的做法。對(duì)于一個(gè)指定的項(xiàng)目,要貫穿整個(gè)畢業(yè)設(shè)計(jì)過(guò)程,以各個(gè)階段時(shí)間點(diǎn)為標(biāo)志,要求學(xué)生以增量的方式來(lái)完善項(xiàng)目開(kāi)發(fā),在畢業(yè)設(shè)計(jì)過(guò)程中,要體現(xiàn)項(xiàng)目的漸進(jìn)式開(kāi)發(fā),各個(gè)時(shí)間點(diǎn)都要求學(xué)生完成項(xiàng)目的相應(yīng)部分,并且要求項(xiàng)目代碼的主版本隨時(shí)處于可部署、可運(yùn)行狀態(tài),對(duì)于系統(tǒng)架構(gòu)和代碼結(jié)構(gòu)等方面,可通過(guò)重構(gòu)來(lái)優(yōu)化。對(duì)于代碼重構(gòu)的的粒度和頻率,可由指導(dǎo)老師根據(jù)實(shí)際情況具體把握,以模塊化和符合軟件設(shè)計(jì)模式等特征為參考依據(jù)。
3考核方式
鑒于以上組織和管理方式,在進(jìn)行畢業(yè)設(shè)計(jì)(論文)考核時(shí),應(yīng)在傳統(tǒng)的畢業(yè)答辯環(huán)節(jié)考核基礎(chǔ)上,考慮以下因素:一是在畢業(yè)答辯考核時(shí),要注重考查學(xué)生所寫代碼的功能,而不是形式上的開(kāi)發(fā)文檔。二是極限編程推崇結(jié)隊(duì)編程(PairProgramming),因此,在畢業(yè)設(shè)計(jì)進(jìn)行過(guò)程中要求學(xué)生不要局限于自己的畢業(yè)設(shè)計(jì)課題,而應(yīng)該是兩個(gè)人一起完成兩個(gè)課題,雙方都參與到對(duì)方的項(xiàng)目中去。在畢業(yè)答辯考核時(shí),也應(yīng)采取相應(yīng)的考核辦法,交叉檢查學(xué)生的編碼工作量。三是極限編程提倡短周期。也就是說(shuō),畢業(yè)設(shè)計(jì)過(guò)程中,應(yīng)該交付多個(gè)可運(yùn)行的系統(tǒng)版本(功能是遞增的,但指定功能的版本是可用的)。因此,在畢業(yè)答辯過(guò)程中,要求學(xué)生就系統(tǒng)的多個(gè)可運(yùn)行版本進(jìn)行演示。總而言之,軟件工程專業(yè)的畢業(yè)設(shè)計(jì)(論文)的考核,除了依據(jù)傳統(tǒng)的畢業(yè)答辯考核標(biāo)準(zhǔn)之外,還需結(jié)合敏捷開(kāi)發(fā)和極限編程的特點(diǎn),綜合考查編碼協(xié)作、增量設(shè)計(jì)、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)、持續(xù)集成等特征是否體現(xiàn)在學(xué)生畢業(yè)設(shè)計(jì)(論文)中。
典型過(guò)程及相關(guān)支撐工具
在確定指導(dǎo)老師和設(shè)計(jì)課題后,學(xué)生將展開(kāi)畢業(yè)設(shè)計(jì)的具體過(guò)程,根據(jù)以AD和XP為指導(dǎo)思想的典型畢業(yè)設(shè)計(jì)過(guò)程,具體過(guò)程如圖1所示。以上典型過(guò)程中的具體步驟,都有成熟的支撐工具可選用,使整個(gè)畢業(yè)設(shè)計(jì)過(guò)程實(shí)現(xiàn)信息化管理,其中項(xiàng)目管理工具可使用PivotalTracker,測(cè)試管理工具可使用MercuryQualityCenter,自動(dòng)測(cè)試可使用開(kāi)源集成測(cè)試環(huán)境,如Jenkins,代碼管理工具可使用VisualSVN(服務(wù)器端)和TortoiseSVN(獨(dú)立客戶端)及SubclipseSVN(IDE集成客戶端)。
軟件項(xiàng)目管理工具PivotalTracker是由公認(rèn)的敏捷軟件開(kāi)發(fā)老大PivotalLabs開(kāi)發(fā)的基于故事、簡(jiǎn)單、有效、敏捷的軟件項(xiàng)目管理工具,適用于各類型的項(xiàng)目,并通過(guò)敏捷項(xiàng)目管理的理念讓項(xiàng)目能夠有條不紊的進(jìn)行,使項(xiàng)目的開(kāi)發(fā)效率大大提高。操作界面如圖2所示。
測(cè)試管理工具M(jìn)ercuryQualityCenter提供了基于Web的,可在廣泛的應(yīng)用環(huán)境下自動(dòng)執(zhí)行軟件質(zhì)量測(cè)試和管理的功能,使IT團(tuán)隊(duì)能夠在開(kāi)發(fā)流程完成前就參與應(yīng)用程序測(cè)試。這樣將縮短時(shí)間表,同時(shí)確保最高水平的質(zhì)量。操作界面如圖3所示。版本庫(kù)管理工具SVN是用于實(shí)現(xiàn)對(duì)代碼、文 件等的修改、刪除、增加等操作進(jìn)行記錄,并且可以追溯每個(gè)修改細(xì)節(jié)的通用工具,它基于C/S架構(gòu),需要服務(wù)器和客戶端軟件,其中SVN服務(wù)器可以使用VisualSVN,獨(dú)立客戶端可使用ToitorseSVN,而IDE集成客戶端可使用Subclipse。
結(jié)語(yǔ)
【關(guān)鍵詞】C語(yǔ)言 計(jì)算機(jī) 軟件編程
C語(yǔ)言應(yīng)用建立在簡(jiǎn)單編程語(yǔ)言的基礎(chǔ)上,是一項(xiàng)新型的編程語(yǔ)言確保了編程任務(wù)的順利完成。使用者在實(shí)際的應(yīng)用過(guò)程中,不受各項(xiàng)限制條件影響,可以結(jié)合自身的實(shí)際使用需求,嚴(yán)格按照C語(yǔ)言的編程要求進(jìn)行編程。通過(guò)編程運(yùn)行應(yīng)用軟件的實(shí)施結(jié)果上可以看出,C語(yǔ)言是計(jì)算機(jī)中的高級(jí)編程Z言,對(duì)提升計(jì)算機(jī)技術(shù)應(yīng)用效果具有重要作用。
1 C語(yǔ)言下的計(jì)算機(jī)軟件編程實(shí)驗(yàn)技巧
1.1 熟練掌握指針運(yùn)用方法
指針是C語(yǔ)言編程中一種特殊的類型變量,能夠快速處理編程設(shè)計(jì)過(guò)程中存在的復(fù)雜問(wèn)題。指針的三要素主要包括指針名、值和類型。在對(duì)指針編程過(guò)程中,主要確保一般變量和指針的相同性。將指針應(yīng)用于數(shù)組表示和函數(shù)的參數(shù)返回值中。
1.2 明確C語(yǔ)言特有函數(shù)功能
特有函數(shù)在C語(yǔ)言編程中被廣泛應(yīng)用,需要充分展現(xiàn)出函數(shù)的功能,編程設(shè)計(jì)人員需要將返回值、函數(shù)名字和參數(shù)名等項(xiàng)目進(jìn)行定義。編程庫(kù)中的函數(shù)主要是由C編譯系統(tǒng)提供,需要確保函數(shù)系統(tǒng)的合理定義,確保程序調(diào)用的合理性,將“#include指令”包含到所用文件中。例如,在程序運(yùn)行過(guò)程中,通常會(huì)運(yùn)用sqrt函數(shù),為了確保程序的合理運(yùn)行,需要將#include“string.h”應(yīng)用到頭文件中。
1.3 掌握算法程序設(shè)計(jì)技巧
算法是程序設(shè)計(jì)的靈魂,需要明確算法技巧的應(yīng)用方法,運(yùn)用自然語(yǔ)言和流程圖合理表達(dá)算法。要求程序設(shè)計(jì)員需要熟練掌握流程圖符號(hào),將其作為計(jì)算機(jī)之母,通過(guò)對(duì)數(shù)學(xué)知識(shí)的牢固應(yīng)用,有助于提升計(jì)算機(jī)編程效率。
1.4 掌握位運(yùn)算及文件知識(shí)
位運(yùn)算是C語(yǔ)言之間的重要特色,也是計(jì)算機(jī)中的高級(jí)語(yǔ)言運(yùn)算方法,自身具有唯一性和獨(dú)特性特點(diǎn)。需要將位運(yùn)算作為二進(jìn)制位對(duì)象,嚴(yán)格按照程序要求進(jìn)行運(yùn)算。程序設(shè)計(jì)員在編程時(shí),需要將所寫的程序存儲(chǔ)到文件中,提升數(shù)據(jù)查找效率。
2 計(jì)算機(jī)軟件C語(yǔ)言編程案例
2.1 混合軟件編程方法
隨著科學(xué)技術(shù)的快速發(fā)展,需要加大對(duì)語(yǔ)言混合編程技巧的應(yīng)用,對(duì)提升系統(tǒng)編程開(kāi)發(fā)效率具有重要作用。在對(duì)混合軟件編程方法進(jìn)行研究時(shí),主要包括以下兩方面研究?jī)?nèi)容:
(1)需要將匯編語(yǔ)句嵌入到C語(yǔ)言源程序中,例如,在將asm匯編語(yǔ)句嵌入到C語(yǔ)言源程序中,需要將asm mov as,5/*將5發(fā)送到ax寄存器*/,將匯編語(yǔ)句嵌入到C語(yǔ)言源程序中時(shí),需要利用大括號(hào)將嵌入程序括起來(lái),例如:
Main( )
{asm{
mov ah,2
mov bh,5
int 10h
}
}
本次實(shí)驗(yàn)在實(shí)施過(guò)程中,在對(duì)程序進(jìn)行嵌入式設(shè)計(jì)時(shí),需要嚴(yán)格按照固定的格式進(jìn)行嵌入式輸入,并且需要在嵌入的各行代碼前加“asm”。程序設(shè)計(jì)人員在進(jìn)行嵌入式程序設(shè)計(jì)時(shí),需要滿足以下條件要求:“asm”關(guān)鍵字不可少,并且需要將其放置在指令代碼前,需要確保嵌入?yún)R編語(yǔ)言指令代碼能夠與正常的C語(yǔ)言程序混合使用,用“;”作為C語(yǔ)言的分隔符;將“/%”和“*/”作為C語(yǔ)言的注釋分界符。
(2)做好C語(yǔ)言程序和匯編程序的編寫工作,確保編譯目標(biāo)代碼模塊的獨(dú)立性,確保鏈接的合理性。首先,明確C語(yǔ)言程序匯編語(yǔ)言中各種子程序和定義變量的合理性,確保匯編語(yǔ)言的合理調(diào)用。由于混合編程語(yǔ)言由若干個(gè)功能模塊共同組成,各功能模塊語(yǔ)言能夠獨(dú)立完成編程工作,并且通常會(huì)以函數(shù)的形式展現(xiàn)出來(lái)。設(shè)計(jì)人員需要結(jié)合每一模塊的特點(diǎn),來(lái)合理選擇獨(dú)立的語(yǔ)言編程系統(tǒng),并形成目標(biāo)性的文件,確保能夠形成可視性的文件。其次,需要加大對(duì)參數(shù)傳遞問(wèn)題的合理解決,從參數(shù)傳遞原則方面對(duì)C語(yǔ)言的程序調(diào)用匯編程序進(jìn)行分析,運(yùn)用推棧將參數(shù)傳遞給匯編程序。例如,在對(duì)voidaa(char*p,inti)函數(shù)進(jìn)行編寫時(shí),主要是利用匯編語(yǔ)言進(jìn)行編寫,確保編譯工作能夠在小內(nèi)存模式下開(kāi)始,系統(tǒng)在調(diào)用時(shí),將其編寫成aa(&q,n)。
2.2 混合軟件編程實(shí)例分析
在開(kāi)展混合軟件編程工作時(shí),需要純5個(gè)數(shù)中尋找最小值,將主程序設(shè)為“min.c”,匯編子程序設(shè)為“qiumin.asm”。主程序的編寫形式主要是利用C語(yǔ)言進(jìn)行編寫,匯編子程序的編寫形式主要是利用匯編語(yǔ)言編寫,在實(shí)際的應(yīng)用過(guò)程中,通常會(huì)被主程序所調(diào)用,以便完善對(duì)最小數(shù)的尋找,程序代碼如下所示:
/*文件名為:min.c*/
#include
Int extern qiumin(int count,int vl,int v2,int v3,int v4,int v5);/*聲明qiumin為外部函數(shù)*/
Main()
{
int min;
Min=qiumuin(12 ,54,8,4,23,9);
Printf(“The min is%d\n”,min);
}
主要是利用C語(yǔ)言和匯編語(yǔ)言混合的編程反復(fù)發(fā),確保應(yīng)用程序能夠滿足運(yùn)行速度的要求,編程人員需要做好寄存器的合理分配,明確影響程序的因素。為了確保程序的合理運(yùn)用,需要確保程序預(yù)報(bào)語(yǔ)言設(shè)計(jì)之間外部接口的相互協(xié)調(diào)性,提升外部調(diào)用效果。
3 結(jié)論
近年來(lái),信息技術(shù)發(fā)展迅速,計(jì)算機(jī)軟件是信息化社會(huì)的必需品,需要加大對(duì)C語(yǔ)言的應(yīng)用力度,將其應(yīng)用到各個(gè)領(lǐng)域中,確保行業(yè)的高效運(yùn)營(yíng),為計(jì)算機(jī)軟件的發(fā)展奠定良好的基礎(chǔ)。同時(shí),確保C語(yǔ)言軟件能夠廣泛的應(yīng)用到計(jì)算機(jī)編程實(shí)驗(yàn)中,強(qiáng)化C語(yǔ)言的實(shí)踐效果,利用簡(jiǎn)單的C語(yǔ)言編程,提高軟件的功能性,拓寬計(jì)算機(jī)軟件的應(yīng)用領(lǐng)域,確保計(jì)算機(jī)軟件的多樣化發(fā)展,向網(wǎng)絡(luò)化和信息化方向不斷邁進(jìn)。
參考文獻(xiàn)
[1]龔晨.基于C語(yǔ)言的計(jì)算機(jī)軟件編程實(shí)驗(yàn)研究[J].電腦編程技巧與維護(hù),2016(02):36-37.
[2]芮素文.基于C語(yǔ)言的計(jì)算機(jī)軟件編程分析[J].信息系統(tǒng)工程,2015(01):40.
[3]王志超,趙越.基于C語(yǔ)言的計(jì)算機(jī)軟件編程實(shí)驗(yàn)研究[J].科技創(chuàng)新導(dǎo)報(bào),2015(11):45.
隨著現(xiàn)代機(jī)械工業(yè)的發(fā)展,數(shù)控技術(shù)是當(dāng)今先進(jìn)制造技術(shù)和裝備最核心的技術(shù),計(jì)算機(jī)輔助設(shè)計(jì)(CAD)和計(jì)算機(jī)輔助制造(CAM)已顯的尤為重要,并廣泛應(yīng)用于航空、航天等國(guó)防工業(yè)產(chǎn)品機(jī)械制造中。使用CAD/CAM系統(tǒng)產(chǎn)生的NC程序代碼可以替代傳統(tǒng)的手工編程,可以提高加工效率與質(zhì)量,縮短生產(chǎn)周期,降低產(chǎn)品成本,從而取得良好的經(jīng)濟(jì)效益。
MasterCAM軟件是一種功能強(qiáng)大CAD/CAM軟件,廣泛應(yīng)用于機(jī)械加工、模具制造、汽車工業(yè)和航天工業(yè)等領(lǐng)域,它具有二維幾何圖形設(shè)計(jì)、三維曲面設(shè)計(jì)、刀具路徑模擬以及加工實(shí)體模擬等功能,并提供友好的人機(jī)交互,從而實(shí)現(xiàn)了從產(chǎn)品的幾何設(shè)計(jì)到加工制造的CAD/CAM一體化。
下面結(jié)合實(shí)例介紹MasterCAM軟件在數(shù)控銑削加工自動(dòng)編程中的使用。
二、MasterCAM軟件數(shù)控編程一般過(guò)程
MasterCAM軟件數(shù)控編程一般過(guò)程如下:零件加工工藝分析CAD幾何造型刀位軌跡生成CAM生成最終加工代碼。
1.零件加工工藝分析
在運(yùn)用MasterCAM軟件對(duì)零件進(jìn)行數(shù)控加工自動(dòng)編程前,首先要對(duì)零件進(jìn)行加工工藝分析,確定合理的加工順序,在保證零件的加工精度的同時(shí),要盡量減少換刀次數(shù),提高加工效率,并充分考慮零件的形狀、尺寸、加工精度,剛度和變形等因素,做到先粗加工后精加工,先加工主要表面后加工次要表面,先加工基準(zhǔn)面后加工其他表面。如圖1所示,零件可通過(guò)虎鉗裝夾,先用鍵槽刀或鉆頭加工下刀孔,再用銑刀進(jìn)行銑削加工。該零件在數(shù)控設(shè)備上加工的工藝流程為:加工下刀孔輪廓半精粗加工輪廓精加工清輪廓角。
2.CAD幾何造型
建立零件的幾何模型是實(shí)現(xiàn)數(shù)控加工的基礎(chǔ),MasterCAM軟件具有進(jìn)行二維或三維的設(shè)計(jì)功能,具有較強(qiáng)CAD繪圖功能。可以運(yùn)用Design模塊建模,也可以根據(jù)加工要求使用Mill模塊繪圖功能來(lái)直接造型。由于MasterCAM軟件系統(tǒng)內(nèi)設(shè)置了許多數(shù)據(jù)轉(zhuǎn)換檔功能,可以將各種類型的圖形文件(如AutoCAD、CAXA等軟件上的圖形)轉(zhuǎn)換至MasterCAM系統(tǒng)上使用,如圖2所示。
3.刀位軌跡生成
(1)確定加工參考基準(zhǔn)點(diǎn)。
先根據(jù)零件加工圖樣的關(guān)聯(lián)尺寸要求,確定數(shù)控加工中心的裝夾與加工基準(zhǔn)點(diǎn)。將零件放置在機(jī)床工作臺(tái)面,采用大虎鉗進(jìn)行裝夾。采用虎鉗裝夾,因?yàn)榛Q內(nèi)側(cè)為不活動(dòng)的,便于校準(zhǔn)基面,確立加工基準(zhǔn)點(diǎn),將此點(diǎn)輸入到加工中心,將此點(diǎn)設(shè)置為加工中心加工的參考零點(diǎn)。示例采用第四象限設(shè)基準(zhǔn)點(diǎn)(即X+,Y-),如圖3所示。
(2)編程零點(diǎn)的確定。
編程零點(diǎn)的確定,是根據(jù)其圖樣的尺寸要求來(lái)確定的。一般是圖樣的工藝要求尺寸鏈,采用和圖樣一樣的基準(zhǔn),在數(shù)控加工的尺寸鏈也就一致了,也就保證了圖樣尺寸要求。編程零點(diǎn)如圖4所示,根據(jù)圖樣尺寸鏈與尺寸標(biāo)注要求,在對(duì)X方向取X+,在Y方向?qū)分中,編程零點(diǎn)取X 0.0,Y 0.0。
(3)刀位軌跡的生成。
進(jìn)行合理的刀位軌跡規(guī)劃,使所生成的刀位軌跡無(wú)干涉、無(wú)碰撞且穩(wěn)定性好,是提高編程效率的關(guān)鍵。從工藝考慮對(duì)凹槽采用分多次粗銑和一次精銑,然后劃分加工區(qū)域,粗加工給出每次加工余量,精加工采用同一直徑的銑刀,根據(jù)粗糙度要求給定切削轉(zhuǎn)速度( S)與進(jìn)給速度( F),根據(jù)具體情況選擇切削類型、切削參數(shù)、刀軸方向和進(jìn)退刀方式等參數(shù),生成的刀位軌跡,如圖5~圖8所示。
4.CAM仿真
利用MasterCAM系統(tǒng)提供的零件加工模擬功能,能夠觀察切削加工的過(guò)程,可用來(lái)檢測(cè)工藝參數(shù)的設(shè)置是否合理,零件在數(shù)控實(shí)際加工中是否存在干涉,設(shè)備的運(yùn)行動(dòng)作是否正確,實(shí)際零件是否符合設(shè)計(jì)要求。同時(shí)在數(shù)控模擬加工中,系統(tǒng)會(huì)給出有關(guān)加工過(guò)程的報(bào)告。這樣就可以清楚地監(jiān)控到零件在加工過(guò)程中的過(guò)切與欠切、刀桿和聯(lián)接系統(tǒng)與零件及夾具間的干涉碰撞,從而保證了數(shù)控編程的質(zhì)量,減少了試切的工作量和勞動(dòng)強(qiáng)度,提高了編程的一次成功率,大大提高生產(chǎn)效率。模型切削仿真,如圖9所示。
5.生成最終加工代碼
MasterCAM軟件本身提供了百余種后置處理PST程序。對(duì)于不同的數(shù)控設(shè)備,其數(shù)控系統(tǒng)可能不盡相同,選用的后置處理程序也就有所不同。對(duì)于具體的數(shù)控設(shè)備,應(yīng)選用對(duì)應(yīng)的后置處理程序,后置處理生成的NC數(shù)控代碼經(jīng)適當(dāng)修改后,如能符合所用數(shù)控設(shè)備的要求,就可以輸出到數(shù)控設(shè)備,進(jìn)行數(shù)控加工使用,如圖10、圖11所示。
關(guān)鍵詞:軟件設(shè)計(jì);面向切面編程;AOP
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)03-0595-02
An Analysis of Aspect Oriented Programming in Software Design
DENG Fang-lin
(Guangzhou maritime college,Guangzhou 510725,China)
Abstract: As the complexity of software increases nowadays, software design gains more and more importance. With the increasing soft? ware reuse in current software projects, the dependency between different modules deepens. The fundamental principle of low coupling in software projects is hard to be clearly realized. Reasonable decoupling becomes a difficult problem in software design. Aspect oriented pro? gramming is one of relatively more practical decoupling methods.
Key words: software design; aspect oriented programming; AOP
面向切面編程(也叫面向方面),英文簡(jiǎn)稱AOP(Aspect Oriented Programming)。是通過(guò)預(yù)編譯方式、代碼級(jí)擴(kuò)展或運(yùn)行期動(dòng)態(tài)實(shí)現(xiàn)在不修改源代碼的情況下給程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù)。利用AOP可以對(duì)業(yè)務(wù)邏輯的各個(gè)部分進(jìn)行橫向隔離,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性。
1面向切面編程方式的產(chǎn)生
在開(kāi)發(fā)軟件系統(tǒng)中,經(jīng)常會(huì)遇到功能比較單一,在系統(tǒng)中分布廣泛但是與具體業(yè)務(wù)邏輯無(wú)關(guān)的功能邏輯。例如日志,緩存等功能。這些功能比較獨(dú)立,和業(yè)務(wù)邏輯的相關(guān)性不高,但系統(tǒng)的各層次都需要對(duì)其進(jìn)行關(guān)注。
以往系統(tǒng)開(kāi)發(fā),更注重把系統(tǒng)縱向分層,相鄰的層次間存在單向引用關(guān)系,不相鄰的層次間相互透明,這是傳統(tǒng)OOP開(kāi)發(fā)方式帶給系統(tǒng)架構(gòu)方式。但這種開(kāi)發(fā)方式只是將縱向的功能隔離,無(wú)法和各層次通用性的功能消除耦合關(guān)系,導(dǎo)致通用性的模塊維護(hù)比較困難,因此引入橫向切面的概念,將日志,緩存等這些通用各作為一種橫向切面,將需要進(jìn)行這些功能處理的地方叫做切面關(guān)注點(diǎn),將切面和其關(guān)注點(diǎn)的耦合關(guān)系剝離出來(lái)組成新的模塊對(duì)切面及其關(guān)注點(diǎn)進(jìn)行編織,這樣使業(yè)務(wù)邏輯的開(kāi)發(fā)人員不必關(guān)注于具體的切面邏輯,消除了切面功能和業(yè)務(wù)邏輯的耦合。這種開(kāi)發(fā)模式就叫做面向切面編程(AOP)。
2面向切面編程的實(shí)現(xiàn)方式
2.1提取橫向切面
一般提取切面的條件:1)功能邏輯相對(duì)獨(dú)立;2)功能邏輯不屬于核心業(yè)務(wù)邏輯;3)功能邏輯在系統(tǒng)中多次使用,通用性較強(qiáng)。
2.2確定切面關(guān)注點(diǎn)
業(yè)務(wù)邏輯中需要調(diào)用切面邏輯的地方即為切面關(guān)注點(diǎn)。此步驟可以根據(jù)業(yè)務(wù)需求確定使用切面邏輯的相關(guān)點(diǎn)。
2.3對(duì)切面及其關(guān)注點(diǎn)進(jìn)行代碼編織
定義切面邏輯在切面關(guān)注點(diǎn)得位置運(yùn)行。
3面向切面編程的實(shí)際應(yīng)用
下面代碼以日志系統(tǒng)為例簡(jiǎn)單對(duì)AOP使用進(jìn)行描述,示例代碼為java使用AOP之前,原系統(tǒng)需求:
//服務(wù)層的業(yè)務(wù)實(shí)現(xiàn)類
public class Service {
public void updateUserInfo(User user){
//業(yè)務(wù)邏輯代碼實(shí)現(xiàn),此處省略
//添加日志
Log.Info(new Date().toString() +“:“操作”+“Service . updateUserInfo ()”);}
public void setUserDisable(int userId){
//業(yè)務(wù)邏輯代碼實(shí)現(xiàn),此處省略
//添加日志
Log.Info(new Date().toString() +“:“操作”+“Service . setUserDisable ()”);
Service使用
下面使用AOP對(duì)此進(jìn)行重構(gòu):
1)提取日志切面
切面類
public class LogAspect{
//日志記錄方式
public static void Log(string methodName){
Log.Info(new Date().toString() +“:“操作”+ methodName);
2)切面關(guān)注點(diǎn)
這里Service類的所有方法都需要日志,所以關(guān)注日志切面的點(diǎn)為Service類的所有方法。
3)對(duì)切面及其關(guān)注點(diǎn)進(jìn)行編織
這里使用java內(nèi)置的動(dòng)態(tài)的方式來(lái)實(shí)現(xiàn)代碼編織
//為Service類實(shí)現(xiàn)動(dòng)態(tài)類ServiceHandler
public class ServiceHandler implements InvocationHandler {
//要的原始對(duì)象,這里為Service類
private Object objOriginal;
public ServiceHandler (Object obj) {
this.objOriginal = obj ;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result ;
//調(diào)用原始對(duì)象的方法
result = method.invoke(this.objOriginal ,args);
//調(diào)用日志切面功能,組裝到Service類的每個(gè)函數(shù)調(diào)用后
LogAspect. Log (method.toString());
return result ;
}}
4)執(zhí)行調(diào)用方法
初始化關(guān)注點(diǎn)對(duì)象
Service service = new Service ();
InvocationHandler handler = new ServiceHandler (service);
Service proxy = (service) Proxy.newProxyInstance(
service.getClass().getClassLoader(),
service.getClass().getInterfaces(),
handler);
具體調(diào)用
proxy.省略平臺(tái)還沒(méi)有權(quán)威的框架支持,也于.net從語(yǔ)言級(jí)別不支持動(dòng)態(tài)有關(guān)。
5結(jié)束語(yǔ)
AOP作為一種有效的軟件設(shè)計(jì)方式,對(duì)原有的軟件設(shè)計(jì)體系是一個(gè)有效的補(bǔ)充。它很好地體現(xiàn)了軟件設(shè)計(jì)的基本思想――高聚合,低耦合,為軟件設(shè)計(jì)中相關(guān)的問(wèn)題提供了合理的解決方案。雖然在現(xiàn)有通用的解決方案中還沒(méi)有將其列為必要的一項(xiàng),但相信隨著軟件系統(tǒng)的整體升級(jí),對(duì)相關(guān)問(wèn)題日益凸顯后,AOP終將被人們愈發(fā)重視。
參考文獻(xiàn):
[1]林信良.spring2.0技術(shù)手冊(cè)[M].北京:電子工業(yè)出版社,2007(4).
[2]程杰.大話設(shè)計(jì)模式[M].北京:清華大學(xué)出版社,2007(12).
訊:在當(dāng)前實(shí)體經(jīng)濟(jì)趨緩,網(wǎng)絡(luò)經(jīng)濟(jì)蓬勃發(fā)展之際,無(wú)論是互聯(lián)網(wǎng)企業(yè)還是大量傳統(tǒng)企業(yè),都不得不患上了網(wǎng)絡(luò)營(yíng)銷人才“饑渴癥”,擁有一張業(yè)內(nèi)權(quán)威的網(wǎng)絡(luò)營(yíng)銷專家證書,對(duì)于當(dāng)下求職人員來(lái)說(shuō),無(wú)疑是一塊最佳敲門磚。7月31日,百度推廣正式在京推出了“百度認(rèn)證”知識(shí)培訓(xùn)體系及認(rèn)證服務(wù),提供有關(guān)網(wǎng)絡(luò)營(yíng)銷的理論知識(shí)及實(shí)踐課程,在當(dāng)前網(wǎng)絡(luò)營(yíng)銷人才極度匱乏的環(huán)境下,有望取代微軟、思科等認(rèn)證,成為最搶手的培訓(xùn)課程。
51JOB的《中國(guó)互聯(lián)網(wǎng)營(yíng)銷職業(yè)發(fā)展白皮書》顯示,僅北京地區(qū),每三個(gè)網(wǎng)絡(luò)營(yíng)銷崗位需求,只能招到一位合適的人員。全國(guó)來(lái)看,2012年上半年,網(wǎng)絡(luò)營(yíng)銷崗位的平均薪酬已接近8萬(wàn)元,較前兩年崗位的平均薪酬增幅已達(dá)到15%,企業(yè)對(duì)網(wǎng)絡(luò)營(yíng)銷人才需求量為116萬(wàn),整體缺口超過(guò)60萬(wàn)。據(jù)預(yù)計(jì)未來(lái)兩年互聯(lián)網(wǎng)營(yíng)銷人才的需求量分別在160萬(wàn)、203萬(wàn)。
與之相對(duì)應(yīng)的是,以微軟、思科等培訓(xùn)認(rèn)證體系的降溫,據(jù)統(tǒng)計(jì),世界范圍內(nèi)共計(jì)有12萬(wàn)位MCSE2003,15萬(wàn)多位MCDBA及3萬(wàn)多位MCSD最具代表性的微軟認(rèn)證職位產(chǎn)生,但是這些認(rèn)證人數(shù)的60%以上的比例均產(chǎn)生在2009年以前,這是IT行業(yè)一直在進(jìn)步,但此領(lǐng)域人才趨于飽和的寫照。
行業(yè)專家表示,IT行業(yè)發(fā)展有著充分的階段性特征,在計(jì)算機(jī)普及后的若干年內(nèi),軟件編程成為一種新的高科技行業(yè),需要大量的軟件工程人才,微軟等行業(yè)認(rèn)證成為了該行業(yè)最權(quán)威的資歷證明。如今隨著互聯(lián)網(wǎng)行業(yè)的日新月異,行業(yè)導(dǎo)向開(kāi)始發(fā)生變化,隨著大量企業(yè)日益電子商務(wù)化,傳統(tǒng)的經(jīng)濟(jì)模式開(kāi)始轉(zhuǎn)型,世界首富蓋茨曾說(shuō):“21世紀(jì)要么電子商務(wù),要么無(wú)商可務(wù)!”據(jù)統(tǒng)計(jì),預(yù)計(jì)2012年中國(guó)電子商務(wù)總規(guī)模將突破6.4萬(wàn)億。傳統(tǒng)企業(yè)的電子商務(wù)化催生網(wǎng)絡(luò)營(yíng)銷行業(yè)的高速發(fā)展,具備相關(guān)優(yōu)秀技能的求職者無(wú)不遭到企業(yè)爭(zhēng)搶。
據(jù)悉,作為業(yè)內(nèi)最權(quán)威也是含金量最高的網(wǎng)絡(luò)營(yíng)銷認(rèn)證體系,“百度認(rèn)證”分為“百度認(rèn)證營(yíng)銷推廣師”、“百度認(rèn)證營(yíng)銷顧問(wèn)”、“百度認(rèn)證高級(jí)營(yíng)銷顧問(wèn)”、“百度認(rèn)證營(yíng)銷專家”四個(gè)等級(jí),為落實(shí)工信部“翔計(jì)劃”,幫扶中小企業(yè),百度此次還正式啟動(dòng)了“企業(yè)英才計(jì)劃”,在年內(nèi)免費(fèi)幫助超過(guò)6萬(wàn)家的企業(yè)培訓(xùn)出專業(yè)的“百度認(rèn)證營(yíng)銷推廣師”,以緩解日益嚴(yán)峻的網(wǎng)絡(luò)營(yíng)銷推廣人才需求問(wèn)題。(來(lái)源:eNet硅谷動(dòng)力)
關(guān)鍵詞:計(jì)算機(jī);軟件開(kāi)發(fā);編程語(yǔ)言
一、引言
對(duì)于計(jì)算機(jī)應(yīng)用軟件的研究與開(kāi)發(fā)來(lái)說(shuō),選擇一項(xiàng)合適的編程語(yǔ)言對(duì)其影響十分深遠(yuǎn),編程語(yǔ)言的適配度將決定計(jì)算機(jī)應(yīng)用軟件的優(yōu)質(zhì)度。其中編程語(yǔ)言是一項(xiàng)十分復(fù)雜的工作程序,它既影響著計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)難度與開(kāi)發(fā)效率,也影響著計(jì)算機(jī)應(yīng)用軟件后期的維護(hù)難度與維護(hù)效率。現(xiàn)階段隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,編程語(yǔ)言也得到了大力研發(fā),編程語(yǔ)言的種類也越來(lái)越多,每一種不同的編程語(yǔ)言都具有著其獨(dú)特的性質(zhì)與作用。
二、結(jié)合相關(guān)計(jì)算機(jī)應(yīng)用軟件的具體開(kāi)發(fā)結(jié)構(gòu)進(jìn)行選擇
一般情況下,在進(jìn)行計(jì)算機(jī)應(yīng)用軟件的相關(guān)開(kāi)發(fā)編程語(yǔ)言的選擇過(guò)程中,往往都是一個(gè)具體的計(jì)算機(jī)應(yīng)用軟件對(duì)應(yīng)一個(gè)固定的編程語(yǔ)言,但是在特殊情況之下,也會(huì)存在研究開(kāi)發(fā)一個(gè)計(jì)算機(jī)應(yīng)用軟件時(shí)同時(shí)選擇多個(gè)不同的編程語(yǔ)言的情況。出現(xiàn)這種現(xiàn)象的主要原因還是在于在一個(gè)具體的計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)過(guò)程中,該應(yīng)用軟件的結(jié)構(gòu)以及功能都會(huì)隨著區(qū)域和時(shí)間的變化而不斷發(fā)生變化,換言之,在一個(gè)應(yīng)用軟件中的不同區(qū)域所需要的編譯效果也是不同的。因此,在進(jìn)行計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中的編程語(yǔ)言的選擇過(guò)程中,一定要結(jié)合相關(guān)應(yīng)用軟件的具體需求與實(shí)際結(jié)構(gòu)變化選擇最合適的編程語(yǔ)言。除此之外,當(dāng)一款計(jì)算機(jī)應(yīng)用軟件在開(kāi)發(fā)過(guò)程中選擇了一項(xiàng)或幾項(xiàng)最合適的編程語(yǔ)言之后,并不意味之該應(yīng)用軟件在后期更新與維護(hù)過(guò)程中不會(huì)再選擇或者替換其他的編程語(yǔ)言,也許在該應(yīng)用軟件開(kāi)發(fā)的時(shí)候這幾項(xiàng)編程語(yǔ)言十分適合該軟件,但在兩年或者更久的時(shí)間之后這項(xiàng)編程語(yǔ)言就不一定會(huì)適合該應(yīng)用軟件的更新與二次開(kāi)發(fā)。因此,一個(gè)計(jì)算機(jī)應(yīng)用軟件的編程語(yǔ)言并不是一成不變的,在為計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)選擇編程語(yǔ)言的時(shí)候一定要結(jié)合應(yīng)用軟件的具體性質(zhì)與結(jié)構(gòu)變化進(jìn)行實(shí)時(shí)選擇與實(shí)時(shí)更新。比如,為了最大限度地提高所選的編程語(yǔ)言對(duì)相關(guān)計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的適配度,相關(guān)軟件開(kāi)發(fā)人員可以遵循以下方式進(jìn)行具體的編程語(yǔ)言的選擇。首先技術(shù)人員需要對(duì)將要開(kāi)發(fā)的應(yīng)用軟件的整體結(jié)構(gòu)進(jìn)行總體的把握與設(shè)計(jì),其中不僅包括該應(yīng)用軟件所開(kāi)發(fā)的主要功能以及屬性,還包括該應(yīng)用軟件的延伸功能與后期維護(hù)等問(wèn)題。其次軟件開(kāi)發(fā)人員還要在進(jìn)行應(yīng)用軟件首次語(yǔ)言編寫的過(guò)程中就將應(yīng)用軟件的所有功能以及延伸功能都充分挖掘出來(lái),并結(jié)合應(yīng)用軟件的功能需求選擇最佳的編程語(yǔ)言。比如相對(duì)于C語(yǔ)言與C++語(yǔ)言來(lái)說(shuō),JAVA語(yǔ)言更適合具有簡(jiǎn)單功能需求的應(yīng)用軟件開(kāi)發(fā),而C語(yǔ)言和C++語(yǔ)言則相對(duì)適合用于開(kāi)發(fā)具有相對(duì)繁瑣功能的計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)。最后還要考慮所開(kāi)發(fā)應(yīng)用軟件的數(shù)據(jù)規(guī)模,并根據(jù)不同的數(shù)據(jù)規(guī)模來(lái)選擇合適的編程語(yǔ)言,比如如果是開(kāi)發(fā)相對(duì)功能比較簡(jiǎn)易的計(jì)算機(jī)應(yīng)用軟件的話,則更加適合選擇ACCESS語(yǔ)言。通過(guò)整體結(jié)構(gòu)把握與具體功能把握相結(jié)合的方式來(lái)選擇計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的編程語(yǔ)言,一方面既有利于提高相關(guān)計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)效率,另一方面也可以在一定程度上降低該應(yīng)用軟件的后期維護(hù)難度。
三、根據(jù)對(duì)相關(guān)計(jì)算機(jī)軟件開(kāi)發(fā)編程語(yǔ)言的熟悉程度進(jìn)行選擇
對(duì)于很多計(jì)算機(jī)軟件開(kāi)發(fā)人員來(lái)說(shuō),都希望能夠在每一次的計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)過(guò)程中進(jìn)行勇敢的嘗試與創(chuàng)新,從而實(shí)現(xiàn)自己的職業(yè)理想與自我完善。但是在實(shí)際的計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)項(xiàng)目中,尤其是對(duì)于非專業(yè)研究類的應(yīng)用軟件開(kāi)發(fā)項(xiàng)目來(lái)說(shuō),開(kāi)發(fā)人員在選擇對(duì)應(yīng)的編程語(yǔ)言的時(shí)候還是要盡量從自己知識(shí)范圍內(nèi)的熟悉掌握的編程語(yǔ)言入手。這主要是因?yàn)樵谟?jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)過(guò)程總選擇熟悉的編程語(yǔ)言能夠在軟件開(kāi)發(fā)初期就幫助開(kāi)發(fā)人員計(jì)算與估量出大概的項(xiàng)目進(jìn)度表。一方面可以有效避免在計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)過(guò)程中出現(xiàn)其他的不必要的變數(shù),使得整個(gè)項(xiàng)目完成得更加具有計(jì)劃性與體系性;另一方面也可以有效提高計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的效率與質(zhì)量,最大限度地避免各種意外的發(fā)生概率。因此,軟件開(kāi)發(fā)人員的技術(shù)儲(chǔ)備將決定一個(gè)計(jì)算機(jī)軟件開(kāi)發(fā)中所選用的編程語(yǔ)言的適配范圍與選擇廣度,對(duì)于計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)與后期維護(hù)來(lái)說(shuō),當(dāng)然是所選擇的編程語(yǔ)言范圍越廣,開(kāi)發(fā)與后期維護(hù)的難度也就越低,效率也就越高。因此相應(yīng)地軟件開(kāi)發(fā)人員的自身知識(shí)與技能儲(chǔ)備在計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的編程語(yǔ)言選擇上就發(fā)揮出了至關(guān)重要的作用。只有不斷提高軟件開(kāi)發(fā)人員的技能儲(chǔ)備,才可以確保在相關(guān)應(yīng)用軟件開(kāi)發(fā)編程語(yǔ)言的選擇過(guò)程中擁有更多的選擇,從而最大限度地避免在開(kāi)發(fā)過(guò)程中可能會(huì)遇到的各種問(wèn)題。比如,為了提高軟件開(kāi)發(fā)人員對(duì)相關(guān)編程語(yǔ)言的熟悉程度與掌握程度,從而在計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)時(shí)能夠擁有更多的編程語(yǔ)言可以選擇,相關(guān)計(jì)算機(jī)軟件開(kāi)發(fā)公司要提高對(duì)相關(guān)軟件開(kāi)發(fā)人員的技術(shù)儲(chǔ)備與知識(shí)儲(chǔ)備的考察強(qiáng)度與審核力度。首先針對(duì)于具有不同特長(zhǎng)的軟件開(kāi)發(fā)人員,即可以十分熟練地掌握幾項(xiàng)編程語(yǔ)言,但對(duì)于其他的編程語(yǔ)言都不太了解,這類技術(shù)人員其實(shí)已經(jīng)十分優(yōu)秀,但為了進(jìn)一步提高與完善其綜合水平,公司相關(guān)部門可以就這部分技術(shù)人員開(kāi)展互助小組活動(dòng)。換言之,掌握不同編程語(yǔ)言的兩個(gè)或者三個(gè)技術(shù)人員可以結(jié)成學(xué)習(xí)對(duì)子或者學(xué)習(xí)小組,互相學(xué)習(xí)對(duì)方所熟練掌握的編程語(yǔ)言,從而切實(shí)達(dá)到互相進(jìn)步的目的。其次還可以通過(guò)科普講座的方式,讓不同的軟件開(kāi)發(fā)人員對(duì)于不同的編程語(yǔ)言都能夠有一個(gè)更加深入的了解,不斷豐富軟件開(kāi)發(fā)人員的專業(yè)技能與綜合水平。通過(guò)這種方式,軟件開(kāi)發(fā)人員所熟悉的編程語(yǔ)言將會(huì)得到一個(gè)質(zhì)的提升,那么在進(jìn)行計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)編程語(yǔ)言的選擇時(shí),也將會(huì)大大提高選擇的廣度與深度,有利于提升應(yīng)用軟件的開(kāi)發(fā)效率與開(kāi)發(fā)質(zhì)量。
四、綜合考慮不同編程語(yǔ)言的特性進(jìn)行選擇
每一種不同的編程語(yǔ)言都有其存在的理由與價(jià)值,這而在相關(guān)計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中編程語(yǔ)言選擇的過(guò)程中,具體應(yīng)用軟件編程語(yǔ)言的選擇則要充分考慮到不同的編程語(yǔ)言的特點(diǎn)與性質(zhì)。當(dāng)前階段比較常見(jiàn)的計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)所用的編程語(yǔ)言主要有以下幾種,其中分別是C語(yǔ)言、C++語(yǔ)言、JAVA語(yǔ)言、ACCESS語(yǔ)言以及PESCAL語(yǔ)言等幾種。以上這幾種不同的編程語(yǔ)言都有著其獨(dú)特的使用優(yōu)勢(shì)與適用范圍。其中應(yīng)用最廣泛的是C語(yǔ)言,該編程語(yǔ)言是所有的計(jì)算機(jī)語(yǔ)言里最常用的一種,從開(kāi)始出現(xiàn)截止到目前為止已經(jīng)擁有四十幾年的應(yīng)用歷史。而C語(yǔ)言最大的優(yōu)勢(shì)就是擁有十分豐富的運(yùn)算符、數(shù)據(jù)結(jié)構(gòu),但是語(yǔ)法卻十分簡(jiǎn)潔且語(yǔ)法要求也相對(duì)較低,功能十分強(qiáng)大。除此之外,C語(yǔ)言還是一種兼容能力很強(qiáng)的編程語(yǔ)言,通過(guò)C語(yǔ)言編程開(kāi)發(fā)的計(jì)算機(jī)應(yīng)用軟件可以十分方便地移植到其他類型的計(jì)算機(jī)上。因此相關(guān)計(jì)算機(jī)軟件開(kāi)發(fā)人員在進(jìn)行應(yīng)用軟件的編程過(guò)程中應(yīng)該以提升工作完成質(zhì)量為前提,以提升工作完成效率為目標(biāo),在結(jié)合實(shí)際應(yīng)用軟件開(kāi)發(fā)需求的基礎(chǔ)上,充分考慮不同編程語(yǔ)言的優(yōu)勢(shì)與特色,從中選擇最合適的編程語(yǔ)言,選擇最規(guī)范的軟件開(kāi)發(fā)程序,從而達(dá)到順利完成工作任務(wù),提高工作效率的目的。比如,以C++語(yǔ)言為例,作為C語(yǔ)言的拓展與延伸,C++語(yǔ)言在匯聚了C語(yǔ)言的眾多優(yōu)勢(shì)與特點(diǎn)的基礎(chǔ)上,又在應(yīng)用軟件的編程過(guò)程中注入了新的編程思想與編程模式,可以更加貼近與滿足計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)需求。作為一種全新的編程語(yǔ)言與編程形式,C++編程語(yǔ)言也在計(jì)算機(jī)編程領(lǐng)域得到了廣泛的應(yīng)用。結(jié)合C++語(yǔ)言的特色與優(yōu)勢(shì),軟件開(kāi)發(fā)人員在計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的過(guò)程中就可以做出更加合適與科學(xué)的選擇。尤其是在大部分的計(jì)算機(jī)應(yīng)用軟件的開(kāi)發(fā)過(guò)程中,針對(duì)于具體的硬件資源的使用是十分有限的,而且在很多時(shí)候收到運(yùn)行環(huán)境與開(kāi)發(fā)平臺(tái)的限制,很多編程語(yǔ)言都無(wú)法實(shí)現(xiàn)很好的兼容,這時(shí)就完全可以選擇C++語(yǔ)言作為應(yīng)用軟件的主要編程語(yǔ)言。C++語(yǔ)言可以在有限的外部環(huán)境與硬件資源條件下實(shí)現(xiàn)對(duì)環(huán)境與資源的最大化利用。
五、總結(jié)
綜上所述,計(jì)算機(jī)應(yīng)用軟件的研究與開(kāi)發(fā)是一項(xiàng)極其艱巨與復(fù)雜的工程,很多因素都會(huì)對(duì)其最終的研發(fā)效果與研發(fā)質(zhì)量產(chǎn)生直接或間接的影響,其中編程語(yǔ)言的選擇對(duì)于這項(xiàng)工程的完成則發(fā)揮著至關(guān)重要的作用。因此,計(jì)算機(jī)軟件開(kāi)發(fā)人員要不斷提高自身素養(yǎng)與技能水平,充分掌握各種編程語(yǔ)言的應(yīng)有優(yōu)勢(shì)與適用范圍,在結(jié)合具體的計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)需求的基礎(chǔ)上,選擇最合適的編程語(yǔ)言,從而實(shí)現(xiàn)計(jì)算機(jī)應(yīng)用軟件的高效率與高質(zhì)量開(kāi)發(fā)。
參考文獻(xiàn)
[1]王樹琴.計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中編程語(yǔ)言的選擇研究[J].軟件設(shè)計(jì)開(kāi)發(fā),2017(19):219.
關(guān)鍵詞 極限編程技術(shù);軟件開(kāi)發(fā);重要作用
中圖分類號(hào):TP313
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1007-7316-(2014)02-
一、極限編程技術(shù)在軟件開(kāi)發(fā)中能夠控制風(fēng)險(xiǎn)
在軟件開(kāi)發(fā)的過(guò)程中,風(fēng)險(xiǎn)是不可避免的,這就會(huì)導(dǎo)致軟件開(kāi)發(fā)進(jìn)度受到影響,并且不利于保證軟件開(kāi)發(fā)的正常進(jìn)展。而借助于極限編程技術(shù)在軟件開(kāi)發(fā)過(guò)程中的應(yīng)用,可以控制風(fēng)險(xiǎn),盡可能地確保軟件開(kāi)發(fā)過(guò)程的正常進(jìn)行。
(一)極限編程技術(shù)在軟件開(kāi)發(fā)中能夠控制進(jìn)度延遲的風(fēng)險(xiǎn)
極限編程技術(shù)的時(shí)間非常短暫,所以,這種技術(shù)對(duì)于進(jìn)度延遲的現(xiàn)象是非常不容許的。在運(yùn)用極限編程技術(shù)的過(guò)程中,最為首要的就是要開(kāi)發(fā)出那些具備最高的應(yīng)用性能的功能模塊,只有這樣,客戶才會(huì)發(fā)現(xiàn)軟件是能夠利用的,從而方便客戶的使用,不應(yīng)該像傳統(tǒng)的軟件開(kāi)發(fā)方法那樣僅僅提供文檔信息。與此同時(shí),對(duì)于開(kāi)發(fā)完成的軟件產(chǎn)品,一定要定期對(duì)客戶進(jìn)行回訪,并且根據(jù)客戶的需求進(jìn)行不斷地改進(jìn),從而能夠最大限度地迎合客戶的需求。
(二)極限編程技術(shù)在軟件開(kāi)發(fā)中能夠控制項(xiàng)目被取消的風(fēng)險(xiǎn)
在利用極限編程技術(shù)來(lái)進(jìn)行軟件開(kāi)發(fā)的項(xiàng)目中,先開(kāi)發(fā)出具備較高的應(yīng)用性能的功能模塊以滿足客戶的需求,在這種情況下,如果項(xiàng)目被取消,那么,就不會(huì)像傳統(tǒng)的軟件開(kāi)發(fā)方法那樣面臨巨大的損失,仍然有許多功能模塊是能夠利用的,從而能夠節(jié)約大量的軟件開(kāi)發(fā)成本。
(三)極限編程技術(shù)在軟件開(kāi)發(fā)中能夠控制不被客戶認(rèn)可的風(fēng)險(xiǎn)
在利用極限編程技術(shù)來(lái)進(jìn)行軟件開(kāi)發(fā)的項(xiàng)目中,客戶也參與到軟件開(kāi)發(fā)過(guò)程中來(lái)。在開(kāi)發(fā)遇到問(wèn)題的情況下,軟件開(kāi)發(fā)人員會(huì)和客戶進(jìn)行相互溝通,以便推動(dòng)軟件開(kāi)發(fā)過(guò)程的順利進(jìn)行。
(四)極限編程技術(shù)在軟件開(kāi)發(fā)中能夠控制缺陷率高的風(fēng)險(xiǎn)
在利用極限編程技術(shù)來(lái)進(jìn)行軟件開(kāi)發(fā)的項(xiàng)目中,可以借助于自動(dòng)化測(cè)試和測(cè)試先行的編碼方式來(lái)最大限度地控制缺陷,一旦出現(xiàn)缺陷,客戶就能夠在最短的時(shí)間內(nèi)察覺(jué)出來(lái),從而能夠和軟件開(kāi)發(fā)人員一起在最短的時(shí)間內(nèi)進(jìn)行處理。
二、極限編程技術(shù)在軟件開(kāi)發(fā)中能夠提高質(zhì)量
通常情況下,質(zhì)量是由觀察者來(lái)進(jìn)行決定的,而質(zhì)量的具體內(nèi)涵則是根據(jù)不同的風(fēng)險(xiǎn)承擔(dān)者而存在著差別的。在利用極限編程技術(shù)來(lái)進(jìn)行軟件開(kāi)發(fā)的項(xiàng)目中,極限編程技術(shù)能夠最大限度地保證所開(kāi)發(fā)出的軟件產(chǎn)品的質(zhì)量,它確保質(zhì)量的質(zhì)量指標(biāo)有很多。表1列出了一些質(zhì)量標(biāo)準(zhǔn),并詳細(xì)說(shuō)明了極限編程技術(shù)是如何確保質(zhì)量的。
表1極限編程技術(shù)確保質(zhì)量的質(zhì)量指標(biāo)
指標(biāo) 描述 極限編程技術(shù)實(shí)踐
易用性 在最終用戶看來(lái)系統(tǒng)易于使用 現(xiàn)場(chǎng)客戶
可伸縮性 容量(用戶、數(shù)據(jù)量等)不斷增加時(shí),系統(tǒng)仍能夠處理 測(cè)試
持續(xù)集成
可用性 用戶可以使用系統(tǒng)的時(shí)間百分比 簡(jiǎn)單設(shè)計(jì)
重構(gòu)
測(cè)試
可維護(hù)性 度量修復(fù)缺陷所需費(fèi)用的指標(biāo) 測(cè)試
集體擁有
編碼標(biāo)準(zhǔn)
結(jié)對(duì)編程
可支持性 在運(yùn)行時(shí),修補(bǔ)或升級(jí)系統(tǒng)的難易程度 簡(jiǎn)單設(shè)計(jì)
測(cè)試
持續(xù)集成
功能性 系統(tǒng)的特性滿足客戶需求的程度 現(xiàn)場(chǎng)客戶
用戶故事
比喻
擴(kuò)展性 在系統(tǒng)中添加新特性的難易程度 簡(jiǎn)單設(shè)計(jì)
小型
持續(xù)集成
平均故障間隔 系統(tǒng)可靠性的度量指標(biāo)——
兩次故障之間的平均時(shí)間
測(cè)試
集體擁有
編碼標(biāo)準(zhǔn)
結(jié)對(duì)編程
三、極限編程技術(shù)在軟件開(kāi)發(fā)中能夠管理變化
在利用極限編程技術(shù)來(lái)進(jìn)行軟件開(kāi)發(fā)的項(xiàng)目中,能夠確保在軟件構(gòu)建期間和需求收集期間對(duì)軟件項(xiàng)目進(jìn)行修改的成本相同,能夠最大限度地節(jié)約成本。極限編程技術(shù)能夠?qū)崿F(xiàn)修改成本的均勻化,這種技術(shù)沒(méi)有必要明確地指定需求。與此同時(shí),軟件開(kāi)發(fā)小組也沒(méi)有必要迫切地要求客戶看到未來(lái)可能的需求。極限編程技術(shù)來(lái)進(jìn)行軟件開(kāi)發(fā)就好比一次不能夠準(zhǔn)確界定最終的目的地的旅行。倘若客戶能夠帶領(lǐng)軟件開(kāi)發(fā)成員快速地提供業(yè)務(wù)價(jià)值,并且及時(shí)進(jìn)行反饋,那么,整個(gè)軟件開(kāi)發(fā)過(guò)程一定能夠非常順利地開(kāi)展。
四、結(jié)束語(yǔ)
綜上所述,本文探索了極限編程技術(shù)。雖然極限編程技術(shù)已經(jīng)被提出了十多年的時(shí)間了,然而,這種編程理念仍然是一種新興的軟件開(kāi)發(fā)方法,值得相關(guān)領(lǐng)域的專家和學(xué)者繼續(xù)進(jìn)行在不斷的探索和完善。希望通過(guò)本文的研究,能夠拋磚引玉,引起國(guó)內(nèi)外專家學(xué)者對(duì)于極限編程技術(shù)領(lǐng)域的進(jìn)一步的重視。
參考文獻(xiàn):
[1] 賀亞茹. 極限編程(XP):概念、特點(diǎn)和應(yīng)用[J]. 新西部(下半月), 2008,(12)
[2] 張鵬,唐發(fā)根,林廣艷. 軟件架構(gòu)設(shè)計(jì)在XP方法中的實(shí)施[J]. 計(jì)算機(jī)工程與應(yīng)用, 2003,(33) .
[3] 王曉華,趙明. XP過(guò)程對(duì)軟件缺陷影響分析[J]. 航天控制, 2008,(01) .
[4] 周立力. 極限編程的質(zhì)量保證分析[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2010,(04) .
[5] 王曉華,趙明. 一種XP項(xiàng)目迭代周期估計(jì)方法[J]. 計(jì)算機(jī)應(yīng)用, 2007,(05) .
[6] 林明泉,譚云蘭,鄧易偲,余友儒,劉粱軍. 基于極限編程的電子政務(wù)考評(píng)平臺(tái)的研究與開(kāi)發(fā)[J]. 科技廣場(chǎng), 2009,(05) .
[7] 廖瑞華,文海英,胡英. 極限編程(XP)方法及其應(yīng)用[J]. 電腦知識(shí)與技術(shù), 2009,(27) .
[8] Amr Elssamadisy,Gregory Schalliol. Recognizing and re-sponding toBad Smellin Extreme Programming[J] .ICSE‘02,May 19-25,2002. :617-622 .
關(guān)鍵詞:AUTOCAD;VB;G代碼;數(shù)控車自動(dòng)編程
數(shù)控加工自動(dòng)編程軟件很多,一般CAD/CAM都有這樣的自動(dòng)編程功能。如PRO/E、UG等軟件,結(jié)構(gòu)龐大,軟件學(xué)習(xí)也復(fù)雜,并且價(jià)格也昂貴。假若僅僅用于數(shù)控車床的自動(dòng)編程,就如同殺雞用牛刀,顯然很浪費(fèi)。使用簡(jiǎn)潔,操作方便,專門用于數(shù)控車床加工的小軟件想必有一定的存在必要。開(kāi)發(fā)出一種能夠使數(shù)控車床編程變得更加簡(jiǎn)單,更加智能的軟件對(duì)于個(gè)人來(lái)說(shuō)也是一種挑戰(zhàn)。
參數(shù)化設(shè)計(jì)、三維運(yùn)算內(nèi)核的開(kāi)發(fā),對(duì)于個(gè)人來(lái)說(shuō)是遙不可及的事情。個(gè)人開(kāi)發(fā)設(shè)計(jì)一種圖形設(shè)計(jì)軟件也同樣不太現(xiàn)實(shí)。也只有借雞生蛋的方法,借用一種被廣泛使用的圖形設(shè)計(jì)軟件,獲取工件輪廓坐標(biāo),和線條特征,經(jīng)過(guò)軟件進(jìn)行編譯,最后得到需要的數(shù)控加工程序。
因此,此軟件的功能被確定為能夠獲取工件輪廓坐標(biāo),和線條特征,能夠進(jìn)行數(shù)控程序編譯,同時(shí)為了能檢驗(yàn)程序的正確性,最好還能夠有可視化的模擬功能。
AUTOCAD因其靈活性和接口的多樣性被廣泛的使用在機(jī)械設(shè)計(jì)領(lǐng)域。在其能生成的文件格式中有一個(gè)二進(jìn)制文件,格式為DXF的文件。DXF文件中包含著AUTOCAD圖形文件中所有對(duì)象的信息,其中包含著輪廓線的線型和坐標(biāo)信息。使用二維功能強(qiáng)大的AUTOCAD軟件繪制軸類零件的外輪廓顯然是一件非常容易的事情。于是本數(shù)控車床自動(dòng)編程軟件的運(yùn)行機(jī)理就如下圖所示。本軟件的開(kāi)發(fā)工具使用VB,雙劃線部分為本軟件要實(shí)現(xiàn)的功能。
一、坐標(biāo)的獲取
首先使用CAD軟件繪制軸類零件,在圖形文件中只包含工件的外輪廓線條,也就是數(shù)控車的精車所走的刀路,而其它無(wú)關(guān)線條對(duì)坐標(biāo)的獲取產(chǎn)生干擾。典型的圖形如圖所示。圖1為工件的外型輪廓圖,圖2為編程所需要的單側(cè)輪廓線。所以在CAD中畫的圖為圖(2)。
將工件按照以上規(guī)則繪制后另存為AUTOCAD2000 DXF格式??墒褂梦谋敬蜷_(kāi)方式便能將其打開(kāi)。我們可以在一系列的子類標(biāo)記中可以找到子類標(biāo)記ACDBLINE,在該子類下就隱含了該直線的坐標(biāo)值。組碼10,20,30下分別為直線起點(diǎn)X、Y、Z坐標(biāo),組碼11、21、31下分別為直線終點(diǎn)X、Y、Z坐標(biāo)。以同樣的方式我們可以找出子類標(biāo)記ACDBARC,組碼10,20,30為圓弧中心坐標(biāo)X、Y、Z,40為半徑,50為起始角,51為終止角。
根據(jù)以上的特點(diǎn),在VB中建立工程,添加控件如下,并在控件下輸入相應(yīng)的代碼。
使用 OpenFile NameForInput As#1代碼將二進(jìn)制DXF文件逐行讀入。并和字符“ACDBLINE”和“CADBARC”進(jìn)行對(duì)比,符合要求的分別提取組碼10,20,11,21,40,50,51下的數(shù)值通過(guò)數(shù)據(jù)庫(kù)操作代碼儲(chǔ)存在數(shù)據(jù)庫(kù)中。直線線名為L(zhǎng)INE(n),圓弧線名為ARC(n)。
數(shù)控車床能接收直線的描述方式同DXF中的描述方式一樣均為起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo)。但是圓弧卻不一樣,一般數(shù)控系統(tǒng)接收的方式是:圓弧起點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)和半徑以及通過(guò)G2、G3來(lái)區(qū)別圓弧的方向。而在DXF文件中是以圓心、半徑、起始角,終止角的方式。兩者不一直,所以在編譯時(shí)必須對(duì)DXF中圓弧坐標(biāo)的表述進(jìn)行處理,換算成數(shù)控車能接受的:圓弧起點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)和半徑。并且通過(guò)起始角和終止角的所在坐標(biāo)象限位置來(lái)判斷圓弧方向,以決定是使用G02還是G03代碼。
將圓分成4等分,0到90度以及90到180度為G03代碼,180度到270度以及270到360度為G02代碼。下面以在0度到90度的范圍內(nèi)圓弧起始點(diǎn)x,y坐標(biāo)為例,計(jì)算方法如下:
sx----圓弧起點(diǎn)x坐標(biāo);sy----圓弧起點(diǎn)y坐標(biāo);sjiao----起始角度;banjin-----半徑;xinx----圓心x坐標(biāo);xiny----圓心y坐標(biāo)。
使用以上的程序代碼可以獲得A點(diǎn)坐標(biāo),同樣的方法可以獲得B點(diǎn)的坐標(biāo)。
二、數(shù)據(jù)的排列
通過(guò)轉(zhuǎn)換好的數(shù)據(jù)重新輸入數(shù)據(jù)庫(kù)。但是仔細(xì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)是數(shù)值排列比較凌亂,假若直接取出并不能用于生成G代碼。所以要對(duì)里面的數(shù)據(jù)按照一定的要求進(jìn)行重新的排列。作為刀路的起點(diǎn)選擇也是有一定的規(guī)則的,必須選擇為圖形最右上角的點(diǎn),是X,Y值為所有點(diǎn)中值最大的。對(duì)數(shù)據(jù)庫(kù)進(jìn)行搜索獲取XY值最大的作為刀路的起始點(diǎn)。如下圖假若獲得起點(diǎn)SX1,SY1為起點(diǎn),那么很自然下一點(diǎn)坐標(biāo)為(ex1,ey1)。但是第二條直線的起點(diǎn)是多少呢?要根據(jù)坐標(biāo)(ex1,ey1)對(duì)數(shù)據(jù)庫(kù)進(jìn)行搜索對(duì)比,找到相對(duì)應(yīng)的值。然后以同直線或圓弧的另一點(diǎn)做為該線的終點(diǎn)。以此方法類推就能產(chǎn)生一條完整的刀路。排列后的坐標(biāo)重新輸入數(shù)據(jù)庫(kù)。
三、G代碼的生成
得到正確的數(shù)據(jù)庫(kù)后,必須對(duì)數(shù)據(jù)進(jìn)行編譯,生成G代碼。要注意CAD圖中的XY坐標(biāo)同車床坐標(biāo)系的區(qū)別。
線名為L(zhǎng)INE的坐標(biāo)生成G代碼的格式為 G01Xey1 Zex1
線名為ARC和根據(jù)起始角、終止角大小把坐標(biāo)生成G代碼的格式為
G02Xey1 Zex1 Rr或 G03Xey1 Zex1 Rr
并將所得到的G代碼程序傳遞到容器控件LIST中。
完整的G代碼程序還需要頭程序段和結(jié)尾程序,通過(guò)軟件界面左邊的文本框控件的輸入,和復(fù)選框控件的選擇,可以得到頭程序段和結(jié)尾程序,例如:N00001;G50 X100 Z100;S800 M03 T101;和結(jié)尾程序G0 X100 Z100;M30。
將頭程序段插入進(jìn)LIST控件中的最前面,將結(jié)尾程序插入進(jìn)LIST控件中的最后面。和原先的刀路G代碼相組合,得到完整的數(shù)控加工程序。
四、程序的驗(yàn)證和保存
為了驗(yàn)證程序是否正確需要對(duì)LIST中的G代碼進(jìn)行模擬。從LIST中提取坐標(biāo)使用VB中的畫直線畫圓功能在指定的區(qū)域內(nèi)畫出刀具運(yùn)行軌跡,通過(guò)軌跡的運(yùn)行曲線同工件的外輪廓相比較,來(lái)判斷刀路是否正確。
在軟件的最后使用OpenFile NameForoutput As#1將LIST容器中所有的字符輸入到給定文件名的文本文件中保存。整個(gè)軟件完成后如下圖所示。
數(shù)控自動(dòng)編程的軟件很多,一般的CAD都有這樣的自動(dòng)編程功能,例如現(xiàn)在PRO-E、MASTERCAM、UG、solidworks等軟件都有這樣的自動(dòng)編程功能,他們的結(jié)構(gòu)龐大,軟件的學(xué)習(xí)上也很復(fù)雜,并且在價(jià)格上也很昂貴。假如僅僅用于數(shù)控車床的自動(dòng)編程上,真是大材小用了,很是浪費(fèi)。使用簡(jiǎn)潔,操作方便,專用于數(shù)控車床加工的小軟件,這樣的軟件專業(yè)性和專一性很強(qiáng)。既節(jié)省人力又節(jié)省物力。而AutoCAD因其靈活性和接口的多樣性被廣泛的使用在機(jī)械設(shè)計(jì)領(lǐng)域中。在其能夠生成的文件格式中有一個(gè)二進(jìn)制的文件,文件中包含著輪廓線的線型和坐標(biāo)的信息。使用二維功能強(qiáng)大的AutoCAD軟件繪制軸承類的零件的外輪廓顯然是一件非常容易的事情。
Auto CAD作為一個(gè)完整的繪圖編輯器,可以獨(dú)立使用,并可完成用戶的很多設(shè)計(jì)工作,但要完成零部件從設(shè)計(jì)到制造的全過(guò)程的工作,仍然力不從心,如零件設(shè)計(jì)完后要做有限元分析,要制定工藝規(guī)程,要生成NC代碼,這些工作AutoCAD都不能勝任,這些必須借助其他應(yīng)用軟件,而所用的軟件都在不同程度上要求得到Auto CAD的圖形信息支持,因此需要Auto CAD提供一個(gè)便于外界接受的文件格式輸出圖形信息。另外,用戶在設(shè)計(jì)過(guò)程中還會(huì)根據(jù)工作的需要開(kāi)發(fā)一些自己的應(yīng)用程序,以便做計(jì)算、分析或其它之用,處理后的數(shù)據(jù)希望傳給AutoCAD,用于自動(dòng)生成圖形,這時(shí)用戶傳遞這些數(shù)據(jù)最好的辦法就是寫成Auto CAD可直接接受的數(shù)據(jù)文件,為了解決AutoCAD和其他程序間圖形數(shù)據(jù)的交換問(wèn)題,定義了圖形交換文件規(guī)范。
一個(gè)完整的自動(dòng)編程系統(tǒng),必須包括前處理程序(Maln Processorl和后置處理程序(Post Processor)兩部分。
一、前處理程序設(shè)計(jì)
前處理程序用以對(duì)源程序進(jìn)行翻譯并計(jì)算刀具中心軌跡,或通過(guò)處理圖形數(shù)據(jù)文件而得到刀具中心軌跡,這一部分完全獨(dú)立于具體的數(shù)控機(jī)床,前處理程序的輸出一般為刀位數(shù)據(jù)(Cut Loca―tion Datal,但這種刀位數(shù)據(jù)不能直接用作數(shù)控裝置的控制指令,因此必須要有一個(gè)后置處理模塊,后置處理程序是自動(dòng)編程系統(tǒng)中的一個(gè)重要組成部分,它是按數(shù)控機(jī)床的功能及數(shù)控加工程序格式的要求而編寫的一個(gè)計(jì)算程序。它將主處理程序產(chǎn)生的位置數(shù)據(jù)和功能信息轉(zhuǎn)換成能被某種數(shù)控機(jī)床控制單元所需要的數(shù)控加工程序代碼,以便用于控制機(jī)床并產(chǎn)生各種加工功能和加工運(yùn)動(dòng)。由于各種數(shù)控機(jī)床的輸人格式各不相同,因而為了適應(yīng)各種機(jī)床的不同要求,后置處理程序也是各不一樣的。
二、后處理程序設(shè)計(jì)
后置處理的目的是形成數(shù)控指令文件。由于各種機(jī)床使用的控制系統(tǒng)不同,所以所用的數(shù)控指令文件的代碼及格式也有所不同。為解決這個(gè)問(wèn)題,每個(gè)自動(dòng)編程軟件通常有自己專用的后置處理程序。
本系統(tǒng)采用的數(shù)控機(jī)床的指令有以下幾種:
1.坐標(biāo)功能指令:x,z,I,K。
2.準(zhǔn)備功能指令:G00一快速進(jìn)給;G01一直線插補(bǔ);G02一順時(shí)針?lè)较驁A弧插補(bǔ):G03一逆時(shí)針?lè)较驁A弧擂補(bǔ);G33一等螺距螺紋加32;G54一坐標(biāo)設(shè)定指令。
3.速度功能指令:主軸轉(zhuǎn)速S;進(jìn)給速度F。
4.換刀功能指令:刀號(hào)選擇T01-T04。
5.刀具補(bǔ)償指令:G41-在工件輪廓左邊刀補(bǔ)有效;G42-在工件輪廓右邊刀補(bǔ)。
6.輔助功能指令:M02一程序結(jié)束;M03一主軸正轉(zhuǎn);M04一主軸反轉(zhuǎn):M05一主軸停止。
在生成數(shù)控程序時(shí),首先打開(kāi)前面生成的刀具中心軌跡文件,從最外層向內(nèi)逐層生成加工程序,在把刀具中心軌跡文件的數(shù)據(jù)轉(zhuǎn)化為數(shù)控程序時(shí),逐行讀人數(shù)據(jù),根據(jù)線形確定所采用的刀具以及相應(yīng)的G指令,并把坐標(biāo)值X,Z,I,K賦給對(duì)應(yīng)的變量。再根據(jù)所輸入的主軸轉(zhuǎn)速和進(jìn)給量,使所有的數(shù)據(jù)轉(zhuǎn)換成字符串,然后與字母G,T,S,F(xiàn),X,Z,I,K組合成數(shù)控指令。最后加上程序號(hào)和必要的M指令組成程序段,在每一層切削完成后或換刀時(shí),添加一個(gè)必要的程序段使刀具回到換刀位置,在程序結(jié)束時(shí)加上輔助指令M0 2以表示程序結(jié)束,最后將程序以文件的形式存盤。
關(guān)鍵詞:編程語(yǔ)言;選擇;軟件開(kāi)發(fā)
中圖分類號(hào):TP311.52
1 當(dāng)前軟件開(kāi)發(fā)主流編程語(yǔ)言
1.1 C語(yǔ)言
C語(yǔ)言可以將高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句同低級(jí)語(yǔ)言很好的結(jié)合在一起,因此C語(yǔ)言扮演了一種介于高級(jí)語(yǔ)言和匯編語(yǔ)言之間的角色,也又可以稱之為中級(jí)語(yǔ)言。C語(yǔ)言設(shè)計(jì)之初主要用于UNIX的系統(tǒng)開(kāi)發(fā)與編程,后來(lái)逐漸發(fā)展壯大,在近25年來(lái)廣泛用于系統(tǒng)與應(yīng)用軟件的開(kāi)發(fā)。C語(yǔ)言具有以下特點(diǎn):(1)結(jié)構(gòu)化語(yǔ)言。C語(yǔ)言屬于結(jié)構(gòu)化語(yǔ)言,用C語(yǔ)言進(jìn)行開(kāi)發(fā)的程序除了必要的信息交流其各個(gè)部分彼此獨(dú)立。這種特性可使程序?qū)哟吻逦?,方便編程人員后期對(duì)程序進(jìn)行調(diào)試和維護(hù)。(2)表達(dá)多樣操作方便。由于C語(yǔ)言一共只包含40個(gè)關(guān)鍵字和9種控制語(yǔ)句,因此程序簡(jiǎn)潔緊湊,書寫形式自由。同時(shí)其包含的運(yùn)算符和數(shù)據(jù)類型豐富,表達(dá)類型多樣程序效率較高。此外其語(yǔ)法限制少,并且可以進(jìn)行和匯編語(yǔ)言相似的對(duì)位、字節(jié)和地址操作,十分方便。(3)適用范圍廣。C語(yǔ)言具有非常強(qiáng)的移植性,即可變換版本適合于如Windows、linux、DOS、UNIX等在內(nèi)的多種操作系統(tǒng),同時(shí)也適用于多種機(jī)型。[1]
但其也有其自身的缺點(diǎn)C語(yǔ)言的缺點(diǎn)比如其數(shù)據(jù)的封裝性,使其數(shù)據(jù)的安全性有很大缺陷,這也是其與下文將介紹的C++語(yǔ)言相比的一大不同之處。此外由于C語(yǔ)言的語(yǔ)法限制少,變量的類型約束少,其數(shù)據(jù)下標(biāo)越界不作檢查,因此其程序安全性會(huì)受到相應(yīng)影響,因此C語(yǔ)言對(duì)程序員的水平要求更高。
1.2 C++語(yǔ)言
如上文所述,C語(yǔ)言由于數(shù)據(jù)封裝性的原因?qū)е缕浒踩越档?。因?986年,AT&T貝爾實(shí)驗(yàn)室開(kāi)發(fā)出了一種新的編程語(yǔ)言即C++語(yǔ)言,該語(yǔ)言通過(guò)數(shù)據(jù)封裝來(lái)減少由程序變量帶來(lái)的不利影響,提升程序安全性。此外,由于C語(yǔ)言結(jié)構(gòu)化的特點(diǎn),因此其難以應(yīng)對(duì)大規(guī)模任務(wù)。因此 C++語(yǔ)言在C語(yǔ)言的基礎(chǔ)上加入了對(duì)象的概念,因此C++語(yǔ)言具有很多C語(yǔ)言不具備的面向?qū)ο蟮恼Z(yǔ)言特征,前面提到的封裝性便是其中之一,此外還有繼承性和多態(tài)性等特點(diǎn)。這些面向?qū)ο笮滤枷胧笴++語(yǔ)言可以很好地應(yīng)對(duì)編程中對(duì)大規(guī)模任務(wù)的需求。
1.3 Java語(yǔ)言
由于近年來(lái)互聯(lián)網(wǎng)技術(shù)的成熟,使軟件開(kāi)發(fā)模式由無(wú)網(wǎng)絡(luò)的單機(jī)模式逐步向網(wǎng)絡(luò)模式轉(zhuǎn)變。C語(yǔ)言和C++語(yǔ)言在網(wǎng)絡(luò)模式下的軟件開(kāi)發(fā)過(guò)程中便遇到很多的問(wèn)題。此時(shí)Java語(yǔ)言就很好的顯現(xiàn)出了其對(duì)于網(wǎng)絡(luò)模式下編程的優(yōu)勢(shì)。Java語(yǔ)言完全面向?qū)ο?,相?duì)于C++語(yǔ)言更加簡(jiǎn)單,并且Java語(yǔ)言依靠其分布式語(yǔ)言的特點(diǎn)可以廣泛應(yīng)用到分布式的網(wǎng)絡(luò)程序的開(kāi)發(fā)之中。除了這些優(yōu)勢(shì),Java的安全性比較高,因此,網(wǎng)絡(luò)模式下Java語(yǔ)言不失為一個(gè)好選擇。[2]
1.4 Visual Basic以及Access
當(dāng)前數(shù)據(jù)庫(kù)管理在計(jì)算機(jī)應(yīng)用中占有重要的地位。因此數(shù)據(jù)庫(kù)語(yǔ)言十分重要。當(dāng)前的主流語(yǔ)言為SQL語(yǔ)言。VB語(yǔ)言便在很好支持?jǐn)?shù)據(jù)庫(kù)的前提下內(nèi)置了SQL語(yǔ)言,這一特點(diǎn)讓使VB語(yǔ)言可以更簡(jiǎn)單的訪問(wèn)數(shù)據(jù)庫(kù)和VC++相比。
Access語(yǔ)言和Oracle以及SQLServer相似,一種功能強(qiáng)大的針對(duì)小型數(shù)據(jù)庫(kù)的語(yǔ)言。此外,Access還可以利用其工具VBA和VB語(yǔ)言形成緊密聯(lián)系。
1.5 其他語(yǔ)言
除了上文所介紹的幾大主流語(yǔ)言外,編程領(lǐng)域還有很多比較小眾的語(yǔ)言。雖然目前看來(lái)其應(yīng)用范圍不如幾大主流語(yǔ)言廣泛,但是在當(dāng)前軟件開(kāi)發(fā)環(huán)境下這些小眾的編程語(yǔ)言凸顯越來(lái)越重要的份額,比如:Python、Ruby、JavaScript、MATLAB、R、CUDA以及Erlang等。合理的編程語(yǔ)言選擇可以幫助軟件開(kāi)發(fā)商降低軟件開(kāi)發(fā)的成本,篇幅所限,小眾語(yǔ)言不再具體介紹,以下將分析如何合理選擇編程語(yǔ)言。
2 如何合理選擇編程語(yǔ)言
2.1考慮整體架構(gòu)
進(jìn)行軟件開(kāi)發(fā)時(shí),程序員需要做的第一步即是對(duì)項(xiàng)目的整體架構(gòu)進(jìn)行充分考慮,此后根據(jù)項(xiàng)目的整體結(jié)構(gòu)決定選用何種語(yǔ)言進(jìn)行編程。有時(shí)并不是一定要用同一種語(yǔ)言對(duì)整個(gè)項(xiàng)目進(jìn)行編程,而是要根據(jù)項(xiàng)目各個(gè)部分的功能合理選擇最合適的語(yǔ)言。此外對(duì)項(xiàng)目進(jìn)行整體架構(gòu)時(shí)需要對(duì)項(xiàng)目組件的分解和連接進(jìn)行充分考慮,因?yàn)椴煌Z(yǔ)言的選擇和其有直接緊密的聯(lián)系。
2.2 選擇熟悉的語(yǔ)言
對(duì)于軟件開(kāi)發(fā)來(lái)說(shuō),時(shí)間緊任務(wù)中是所有程序員的工作特點(diǎn)。節(jié)省時(shí)間對(duì)于程序員開(kāi)發(fā)軟件來(lái)說(shuō)意義重大,因此必須在不影響軟件質(zhì)量的范圍內(nèi)必須盡量選擇熟練的語(yǔ)言。因?yàn)槭煜さ恼Z(yǔ)言對(duì)程序員來(lái)說(shuō)可以更好的預(yù)測(cè)軟件完工時(shí)間,同時(shí)編程出問(wèn)題時(shí)熟悉的語(yǔ)言也可節(jié)省程序員的調(diào)試時(shí)間。
2.3 考慮硬件環(huán)境
硬件環(huán)境是軟件開(kāi)發(fā)的基礎(chǔ),適應(yīng)硬件環(huán)境是所有軟件編程的目標(biāo),當(dāng)硬件環(huán)境受限時(shí)會(huì)大大影響編程語(yǔ)言的開(kāi)發(fā)效果。因此硬件環(huán)境是軟件開(kāi)發(fā)過(guò)程中合理選擇編程語(yǔ)言需要考慮的一個(gè)重中之重。此外,硬件設(shè)備存在更新問(wèn)題,有時(shí)編程語(yǔ)言僅僅適應(yīng)目前版本下的硬件環(huán)境,一旦硬件設(shè)備更新軟件便因?yàn)椴黄ヅ鋯?wèn)題不可繼續(xù)使用。因此在進(jìn)行程序開(kāi)發(fā)之前要全面考慮硬件環(huán)境問(wèn)題,合理選擇適應(yīng)硬件環(huán)境的編程語(yǔ)言,以保證程序可實(shí)現(xiàn)應(yīng)對(duì)硬件環(huán)境更新后的快速調(diào)整,實(shí)現(xiàn)程序的長(zhǎng)時(shí)間良好運(yùn)行。
2.4 考慮程序支持平臺(tái)
一個(gè)程序能否良好運(yùn)行,除了以上所提的整體架構(gòu),語(yǔ)言是否熟悉和硬件環(huán)境外,還需需重點(diǎn)考慮的便是其支持平臺(tái)。不同的支持平臺(tái)決定著程序語(yǔ)言選擇的不同。例如實(shí)現(xiàn)同樣搜索功能的程序在word軟件里和網(wǎng)頁(yè)瀏覽器里運(yùn)行時(shí)便需要考慮其不同的支持平臺(tái)選擇不同的編程語(yǔ)言。平臺(tái)是編程的大環(huán)境,同必須適應(yīng)硬件環(huán)境一樣,所有編程也必須適應(yīng)平臺(tái)。
2.5 編程語(yǔ)言選擇時(shí)一些其它的考慮因素
開(kāi)發(fā)一些程序過(guò)程中例如定義文件格式和協(xié)議相關(guān)工作時(shí)需要進(jìn)行大量的位操作。而大量的位操作有時(shí)對(duì)軟件開(kāi)發(fā)來(lái)說(shuō)會(huì)形成一定困難,因此在考慮選擇編程語(yǔ)言時(shí)必須考慮是否可以避開(kāi)大量的位操作。如果必須進(jìn)行大量位操作,那就應(yīng)該選擇可以提供合適數(shù)據(jù)類型并且容易進(jìn)行位操作的編程語(yǔ)言。此外,在一些特殊領(lǐng)域進(jìn)行編程的程序員應(yīng)對(duì)特殊領(lǐng)域進(jìn)行針對(duì)性的充分考慮,考慮是否可以用專業(yè)的編程語(yǔ)言代替一般的編程語(yǔ)言。因?yàn)閷I(yè)的編程語(yǔ)言具有很強(qiáng)的針對(duì)性,使用專業(yè)編程語(yǔ)言不僅可以節(jié)省大量工作時(shí)間和工作量提高工作效率,也可以避免編程過(guò)程中出現(xiàn)較大失誤。
3 結(jié)束語(yǔ)
綜上可知,編程語(yǔ)言的選擇對(duì)于軟件開(kāi)發(fā)來(lái)說(shuō)具有至關(guān)重要的作用,對(duì)于程序員而言,熟練掌握每種編程語(yǔ)言的優(yōu)點(diǎn)和缺點(diǎn)、適用范圍是必不可少的技能,同時(shí),合理選擇編程語(yǔ)言可以使軟件開(kāi)發(fā)工作順利開(kāi)展,事半功倍。因此,對(duì)編程人員來(lái)說(shuō),需要及時(shí)補(bǔ)充新知識(shí),隨時(shí)學(xué)習(xí),不斷加強(qiáng)對(duì)各種編程語(yǔ)言的了解和掌握,同時(shí)提升合理選擇編程語(yǔ)言的能力,以便更好的開(kāi)發(fā)軟件。
參考文獻(xiàn):
[1]馬潔.計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)中選擇的編程語(yǔ)言[J].電腦知識(shí)與技術(shù),2013(08):1996-1997.
[2]羅瓊,李艷,熊英.不同編程語(yǔ)言對(duì)計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的影響[J].軟件開(kāi)發(fā)與設(shè)計(jì),2013(12):19-20.
關(guān)鍵詞:?jiǎn)纹瑱C(jī);流程圖;編程
中圖分類號(hào): TP319
Software Development of Single Chip Computer based on Flow Chart Programming
CHEN Ruisen
(Department of Information, Xiamen Ocean Vocational College, Xiamen Fujian 361012,China)
Abstract: According to the characteristics that the independent design ability of students is weak in learning SCM, a software of SCM based on flow chart programming is developed. The system uses visualization modules, and the method of top-down is used in the design of flow chart. In this system, when the design of the flow chart is completed, the corresponding program has been written. This method is visual, and easy to understand, the programmers can focus on the logical relationship, and thus play a greater creativity.
Key words:Single Chip Computer; Flow Chart; Programming
0引 言
“單片機(jī)”是一門理論性和應(yīng)用性都較強(qiáng)的課程,也是相關(guān)專業(yè)的核心課程。該課程偏重于工程思維,其任務(wù)是利用單片機(jī)技術(shù)和各種芯片,設(shè)計(jì)實(shí)用的電路系統(tǒng),編寫相關(guān)的應(yīng)用程序。現(xiàn)今常用的單片機(jī)編程語(yǔ)言主要有C51等,編程時(shí)需要輸入復(fù)雜的程序代碼,編寫的程序還需要符合特定的語(yǔ)法規(guī)定,這往往增加了編程難度,是學(xué)生學(xué)習(xí)單片機(jī)的難點(diǎn)之一。針對(duì)單片機(jī)教學(xué)中“強(qiáng)化實(shí)踐,重在應(yīng)用”的辦學(xué)方針,本文設(shè)計(jì)了一款基于流程圖編程的單片機(jī)軟件開(kāi)發(fā)系統(tǒng)。該系統(tǒng)采用EDA中“自頂向下”[1]的設(shè)計(jì)方法設(shè)計(jì)程序流程圖,程序流程圖由基本編程模塊連接而成。流程圖設(shè)計(jì)完畢,程序相應(yīng)編寫完成,該方法有利于重點(diǎn)關(guān)注尋求解決問(wèn)題的方法,從而開(kāi)發(fā)出更富有創(chuàng)造性的產(chǎn)品[2]。
1 系統(tǒng)工作原理
單片機(jī)中的程序流程圖用于描述程序內(nèi)部各種問(wèn)題的解決方法、思路或算法,常使用各種圖形、符號(hào)、有向線段等來(lái)表示程序設(shè)計(jì)的過(guò)程。一般情況下,根據(jù)要完成的程序功能寫出總流程圖,基于總流程圖即將整個(gè)程序劃分成幾個(gè)主要的功能模塊,再針對(duì)每個(gè)功能模塊繪制基本流程圖。流程圖中使用的各種形態(tài)符號(hào)只表示某種處理的描述并沒(méi)有實(shí)際編程意義,主要是為程序編寫發(fā)揮導(dǎo)引性作用。系統(tǒng)對(duì)流程圖的圖形和符號(hào)等進(jìn)行了相應(yīng)的改造和簡(jiǎn)化,系統(tǒng)中的流程圖只包括兩部分:
(1) 表示相應(yīng)操作的框(模塊)
系統(tǒng)設(shè)計(jì)了很多模塊庫(kù),比如顯示模塊庫(kù),判斷模塊庫(kù),傳感器模塊庫(kù)等。每個(gè)模塊庫(kù)又包含很多子模塊,如判斷模塊庫(kù)包含次數(shù)循環(huán)模塊,永循環(huán)模塊,條件循環(huán)模塊,條件判斷循環(huán)模塊等,模塊組織結(jié)構(gòu)如圖1所示。模塊類似于Matlab軟件中各種工具箱的仿真模塊,每個(gè)模塊均相當(dāng)于一個(gè)子函數(shù),在流程圖中添加一個(gè)模塊即相當(dāng)于調(diào)用一個(gè)子函數(shù)。各個(gè)模塊提供一些屬性以供需要時(shí)進(jìn)行設(shè)置,設(shè)置后將改變模塊的功能,圖2為延時(shí)子模塊的屬性設(shè)置框及相應(yīng)的子函數(shù),只要在屬性設(shè)置框中輸入不同的數(shù)字,就可以得到不同的延時(shí)時(shí)間。系統(tǒng)中的模塊庫(kù)是一個(gè)開(kāi)放庫(kù),可以隨時(shí)增加。
void delayms(uchar t)
{ uchar x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
(2)帶箭頭的線(指定程序的執(zhí)行順序)
系統(tǒng)中的模塊暫時(shí)只用C51來(lái)編寫。由于C51中的變量分為局部變量和全局變量,這將有利于模塊的獨(dú)立性。用于進(jìn)行模塊之間傳遞參數(shù)的變量為全局變量,各個(gè)模塊內(nèi)部用到的變量則全部利用局部變量,如此模塊變量就不會(huì)相互影響。系統(tǒng)還提供了一個(gè)全局變量模塊,在該模塊中可以定義一些全局變量。系統(tǒng)中每一個(gè)模塊都可以完成一定的功能。只要依循清晰的思路連接這些模塊,就可以很快地完成一個(gè)程序的代碼。
2 流程圖到C51源程序的實(shí)時(shí)轉(zhuǎn)換
為了得到可編譯下載的程序,系統(tǒng)可以將流程圖自動(dòng)轉(zhuǎn)換為C51源程序,類似于plc中的梯形圖和指令表的自動(dòng)轉(zhuǎn)換[3-4]。編程人員可以直接對(duì)源程序進(jìn)行修改,作為流程圖編程的補(bǔ)充手段。下面具體介紹程序流程圖實(shí)時(shí)轉(zhuǎn)換成C51源程序的原理。
系統(tǒng)構(gòu)造的是由順序、分支和循環(huán)三種基本控制結(jié)構(gòu)通過(guò)各種復(fù)雜的組合、嵌套關(guān)系而組成的結(jié)構(gòu)化程序流程圖,其中的基本單元是已經(jīng)獨(dú)立開(kāi)發(fā)的、相當(dāng)于一個(gè)子函數(shù)的各種模塊。流程圖轉(zhuǎn)換的對(duì)象C51程序基本是一個(gè)函數(shù)的集合(包括一個(gè)main主函數(shù)和各種子函數(shù)),因而和程序流程圖的對(duì)應(yīng)關(guān)系是較為明顯的。系統(tǒng)為了簡(jiǎn)化軟件轉(zhuǎn)換的復(fù)雜度,采用了一種實(shí)時(shí)轉(zhuǎn)化方法,即在流程圖中每添加一個(gè)模塊就相應(yīng)的在C51源程序中添加該模塊的對(duì)應(yīng)子函數(shù)。流程圖中的主程序?qū)?yīng)于main函數(shù),全局變量模塊對(duì)應(yīng)于主函數(shù)前的變量定義,各個(gè)模塊對(duì)應(yīng)于主函數(shù)前的一個(gè)函數(shù)聲明以及主函數(shù)中的一個(gè)子函數(shù)調(diào)用,系統(tǒng)的轉(zhuǎn)換關(guān)鍵點(diǎn)則在于各個(gè)子函數(shù)的相應(yīng)嵌套關(guān)系。順序結(jié)構(gòu)中的模塊,在程序流程圖中每加入一個(gè)模塊,就按順序添加一個(gè)子函數(shù)調(diào)用;對(duì)于分支、循環(huán)模塊,當(dāng)用戶從模塊庫(kù)中拖動(dòng)一個(gè)模塊到軟件設(shè)計(jì)區(qū)時(shí),軟件將判斷該模塊是連接于分支、還是循環(huán)模塊的區(qū)域內(nèi)或區(qū)域外,圖3(a)表示模塊處于分支的區(qū)域內(nèi),圖3(b)表示模塊處于循環(huán)模塊的區(qū)域內(nèi),圖4(a) 表示模塊處于分支的區(qū)域外,圖4(b)表示模塊處于循環(huán)模塊的區(qū)域外。在分支結(jié)構(gòu)中,連接于分支模塊區(qū)域內(nèi)的模塊,其子函數(shù)調(diào)用則處于分支函數(shù)內(nèi),反之即處于分支函數(shù)外。分支模塊為每個(gè)分支建立一個(gè)分支子函數(shù),由分支子函數(shù)再調(diào)用下級(jí)各個(gè)小模塊的子函數(shù),即分支函數(shù)調(diào)用分支子函數(shù),分支子函數(shù)調(diào)用下一級(jí)子函數(shù)。循環(huán)模塊的函數(shù)調(diào)用與分支模塊類似。利用以上方法可以實(shí)時(shí)地將相應(yīng)的程序流程圖轉(zhuǎn)換為C51源程序?,F(xiàn)在,本軟件系統(tǒng)只能轉(zhuǎn)換利用系統(tǒng)提供的模塊構(gòu)造的程序流程圖。
3 系統(tǒng)測(cè)試
在完成了系統(tǒng)的初步構(gòu)建后,對(duì)系統(tǒng)進(jìn)行了測(cè)試,文中構(gòu)建了一張控制8個(gè)LED燈閃爍四次的程序流程圖,如圖5(a)所示,圖5(b)、(c)分別為循環(huán)模塊和發(fā)送模塊的屬性設(shè)計(jì)框, 在完成了相應(yīng)的程序流程圖并轉(zhuǎn)換為對(duì)應(yīng)的程序代碼后,可通過(guò)keil軟件進(jìn)行編譯并下載到proteus軟件中的LED燈電路圖進(jìn)行測(cè)試,測(cè)試結(jié)果表明程序的正確性,圖6分別為L(zhǎng)ED滅和亮的情況。
4結(jié)束語(yǔ)
本文構(gòu)建的基于流程圖編程的單片機(jī)軟件開(kāi)發(fā)系統(tǒng)是一個(gè)開(kāi)放性的系統(tǒng),其中的流程圖模塊可以隨著開(kāi)發(fā)的深入而加以豐富,同時(shí)軟件的功能也可進(jìn)一步增強(qiáng)。雖然經(jīng)過(guò)初步的開(kāi)發(fā),軟件具有一定的實(shí)用性,但是開(kāi)發(fā)復(fù)雜功能的流程圖時(shí),軟件自動(dòng)生成的程序代碼的準(zhǔn)確性還有待進(jìn)一步提高,這也是下一步研究工作的重點(diǎn)。
參考文獻(xiàn):
[1]徐獻(xiàn)靈.EDA技術(shù)在現(xiàn)代電子設(shè)計(jì)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2003(17):103-105.
[2] 程向前.基于流程圖的可視化程序設(shè)計(jì)環(huán)境對(duì)大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)的影響[J].計(jì)算機(jī)教育,2012(14):56-59.
[3]鐘志超,張志勝,戴敏等.流程圖與類C語(yǔ)言實(shí)時(shí)轉(zhuǎn)換方法[J].東南大學(xué)學(xué)報(bào),2009, 39(3):502-506.