編輯軟件范文
時(shí)間:2023-04-06 08:23:14
導(dǎo)語(yǔ):如何才能寫好一篇編輯軟件,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
1、EDIUS。一款非線性編輯軟件,擁有實(shí)時(shí)、多軌道、多格式混編、合成、色鍵、字幕和時(shí)間線輸出功能。
2、會(huì)聲會(huì)影。一款由加拿大corel公司制作的非線性編輯軟件,具有圖像抓取和編修功能,并提供超過一百多種的編制功能與效果。
3、Premiere。一款由Adobe公司制作的非線性編輯軟件,提供了采集、剪輯、調(diào)色、美化音頻、字幕添加、輸出、DVD刻錄的一整套流程,廣泛應(yīng)用于廣告制作和電視節(jié)目制作中。
4、AfterEffects。一款由Adobe公司制作的非線性視頻
(來源:文章屋網(wǎng) )
篇2
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2009)10-100-04
Implementation of MPEG-2 Audio and Video Edit Software
CHEN Zhifeng,TIAN Yupeng,WANG Shanshan
(College of Information Science and Technology,Nanjing University of Aeronautics and Astronautics,Nanjing,210016,China)
Abstract:MPEG-2 format appears much more earlier.MPEG-2 is used as DVD standard and many media files use this format.How to edit these resources becomes a common problem.This article lists two ways to edit MPEG-2 format files:one is based on analyzing MPEG-2 file format through packet stream,and the other is based on directshow′s DES technology.This article first points out some details of each way,and then compares them,points out each characteristic,at last conclude that directshow technology has unique advantage.This article combines common ways of implementation of audio and video edit software,and shows a practice way to it.
Keywords:MPEG-2;video edit;Directshow;DES;timeline
MPEG是運(yùn)動(dòng)圖像專家組(Moving Picture Experts Group)的簡(jiǎn)稱,其任務(wù)是制定世界通用的視音頻編碼標(biāo)準(zhǔn)。MPEG組織于1994年推出MPEG-2壓縮標(biāo)準(zhǔn),用以實(shí)現(xiàn)視/音頻服務(wù)與應(yīng)用互操作的可能性。MPEG-2標(biāo)準(zhǔn)是針對(duì)標(biāo)準(zhǔn)數(shù)字電視和高清晰度電視在各種應(yīng)用下的壓縮方案和系統(tǒng)層的詳細(xì)規(guī)定,標(biāo)準(zhǔn)的正式規(guī)范定義在ISO/IEC13818中。MPEG-2特別適用于廣播級(jí)數(shù)字電視的編碼和傳送,被認(rèn)定為SDTV和HDTV的編碼標(biāo)準(zhǔn)。
MPEG-2圖像壓縮的原理是利用圖像中的兩種特性:空間相關(guān)性和時(shí)間相關(guān)性。這兩種相關(guān)性使得圖像中存在大量的冗余信息。通過去除冗余信息,只保留少量非相關(guān)信息進(jìn)行傳輸,可以大大節(jié)省傳輸頻帶,而接收方利用這些非相關(guān)信息,按照一定解碼算法,可以在保證一定的圖像質(zhì)量的前提下重建原始圖像。
1 MPEG-2編碼方法
MPEG-2視頻流可分為視頻序列層、圖像組層、圖像層、宏塊條層、宏塊層和像塊層共6個(gè)層次。各層之間的作用與關(guān)系如下:
(1) 視頻序列層(Sequence):一系列圖像組構(gòu)成一個(gè)視頻序列。包含圖像尺寸、寬高比、圖像速率等信息。
(2) 圖像組層(GOP):由相互關(guān)聯(lián)的一組I,B,P幀組成,I幀為第一幀。GOP頭包括時(shí)間信息。
(3) 圖像層(Picture):一系列像條可以構(gòu)成一幅圖像,圖像分為I,B,P三類,包括圖像編碼類型和時(shí)間參考信息。
(4) 宏塊條層(Slice):一連串的宏塊構(gòu)成一個(gè)宏塊條,包括一定數(shù)量的宏塊,其順序與掃描順序一致。
(5) 宏塊層(MacroBlock):在4∶2∶2取樣中,一個(gè)宏塊由4個(gè)亮度像塊,2個(gè)Cr像塊和2個(gè)Cb像塊構(gòu)成;另外還有4∶2∶0,4∶4∶4的取樣方式。MPEG-2定義3種宏塊結(jié)構(gòu),代表構(gòu)成一個(gè)宏塊的亮點(diǎn)像塊和色差像塊的數(shù)量關(guān)系。
(6) 像塊層(Block):由8×8個(gè)像素點(diǎn)構(gòu)成的DCT變化基本單元。
MPEG-2的編碼圖像被分為三類,分別稱為I幀,P幀和B幀。I幀圖像采用幀內(nèi)編碼方式,只利用單幀圖像內(nèi)的空間相關(guān)性,而沒有利用連續(xù)幀之間的時(shí)間相關(guān)性。P幀和B幀圖像采用幀間編碼方式,同時(shí)利用了空間和時(shí)間上的相關(guān)性。P幀圖像只采用前向時(shí)間預(yù)測(cè),可以提高壓縮效率和圖像質(zhì)量。P幀圖像中可以包含幀內(nèi)編碼的部分,即P幀中的每一個(gè)宏塊可以是前向預(yù)測(cè),也可以是幀內(nèi)編碼。B幀圖像采用雙向時(shí)間預(yù)測(cè),可以大大提高壓縮倍數(shù)。
2 基于MPEG-2視頻流的剪輯方案
2.1 MPEG-2視頻流的構(gòu)成
MPEG-2視頻流分為程序流和傳輸流兩種編碼方式。通常用于存儲(chǔ)的視頻文件都是由程序流構(gòu)成的。程序流由組首部、系統(tǒng)首部和PES分組構(gòu)成,程序流的構(gòu)成如圖1所示。
組以一個(gè)32位(0x00-00-01-BA)碼字開始。組首部包含系統(tǒng)參考時(shí)的(SCR)數(shù)據(jù),表明了程序流中最后一個(gè)解碼單元到達(dá)解碼器的預(yù)定時(shí)間。系統(tǒng)首部?jī)H存在于第一個(gè)圖像組中。PES分組由分組首部與分組數(shù)據(jù)組成。分組的頭部包含有分組長(zhǎng)度、時(shí)間戳PTS,DTS等關(guān)鍵信息。
2.2 剪切點(diǎn)的選擇
一個(gè)視頻序列由一個(gè)或多個(gè)圖像組連接而成。一個(gè)圖像組內(nèi)的編碼序列可能是 I1 B2 B3 P4 B5 B6 P7 B8 B9 I10,而輸出的解碼序列是I1 P4 B2 B3 P7 B5 B6 I10 B8 B9。因此,若當(dāng)前選取的剪切點(diǎn)在一個(gè)圖像組內(nèi)部,則牽涉到源視頻序列的解碼再編碼過程。一個(gè)簡(jiǎn)便的方法是將剪切點(diǎn)的起始位置移至一個(gè)圖像組的起始處,也就是尋找一個(gè)I幀作為程序的切入點(diǎn)。因此一對(duì)起終點(diǎn)的選擇方法如下:
(1) 從當(dāng)前文件之處讀取4個(gè)字節(jié),與圖組頭關(guān)鍵字group_start_code(0x00-00-01-b3)或序列頭關(guān)鍵字(0x00-00-01-ba)進(jìn)行比較,若相同,則記為合適的剪切點(diǎn)。
(2) 若不相同且當(dāng)前點(diǎn)為剪切的起點(diǎn),則從文件中向上讀取一個(gè)字節(jié),重復(fù)(1)的過程,直到找到一個(gè)合適的切入點(diǎn)。
(3) 若不相同且當(dāng)前點(diǎn)為剪切的終點(diǎn),則從文件中向下讀取一個(gè)字節(jié),重復(fù)(1)的過程,直到找到一個(gè)合適的切入點(diǎn)。
經(jīng)過如上的過程,就能夠找到一系列的起終點(diǎn),使得在每一對(duì)起終點(diǎn)的區(qū)間內(nèi)包含完整的圖像信息,可以獨(dú)立地從現(xiàn)有幀序列中得到所有的視頻信息。避免了因幀之間存在依賴關(guān)系,導(dǎo)致圖像不能正確解碼而生成的馬賽克與拖幀現(xiàn)象。
2.3 時(shí)間戳的修正
得到圖像的信息后,由于已經(jīng)將不需要的圖像信息丟棄,剪輯下來的圖像信息已經(jīng)不能用原有的時(shí)間標(biāo)記回放,所以要修正保留下來的圖像的時(shí)間戳。
PTS,DTS,SCR被用于解碼器中的同步操作。其中PTS(Presentation Timestamp)是一個(gè)33位的字節(jié)流。表明此分組中第一個(gè)訪問單元在系統(tǒng)目標(biāo)解碼器中的預(yù)定顯示時(shí)間;DTS(Decoding Time Stamp)也是一個(gè)33位的字節(jié)流,表示在分組中開始的第一個(gè)訪問單元預(yù)計(jì)在系統(tǒng)目標(biāo)解碼器中的解碼時(shí)間;SCR(System Clock Reference)也是一個(gè)33位的字節(jié)流,表示系統(tǒng)目標(biāo)解碼器SCR域最后字節(jié)到達(dá)所需要的時(shí)間,編碼器用數(shù)據(jù)碼率和90 kHz的時(shí)鐘頻率把SCR字節(jié)域轉(zhuǎn)換為SCR值。
將剪切前視頻流首部的時(shí)間標(biāo)志(SCR0,PTS0,DTS0)提取出來,替換剪切后第一段文件相對(duì)應(yīng)的數(shù)據(jù),依次修改該段文件中的所有SCR,PTS,DTS,并記下最后一組SCR1,PTS1,DTS1,將它們與SCR0,PTS0,DTS0對(duì)應(yīng)相加,作為剪切后第二段文件的起始SCR,PTS,DTS。重復(fù)此過程,直到修改完所有的時(shí)間戳標(biāo)記位。
最后,先將源文件的第一個(gè)分組中的系統(tǒng)首部等相關(guān)信息提取出來,拼接到剪切后的文件頭部,再給剪切后的文件尾加上結(jié)束碼字(0x00-00-01-b9)。
經(jīng)過以上的過程,一段MPEG-2文件的剪切過程完成。
3 基于DirectShow技術(shù)的剪輯方案
3.1 DirectShow簡(jiǎn)介
DirectX軟件開發(fā)包是微軟公司提供的在Windows操作平臺(tái)上開發(fā)高性能圖形、聲音、輸入、輸出和網(wǎng)絡(luò)游戲的一套編程接口。DirectX被定義為“硬件設(shè)備無關(guān)性”,可以用與設(shè)備無關(guān)的方法提供設(shè)備相關(guān)的高性能。
DirectShow是DirectX中的一套組件,用來處理各種格式媒體文件的回放、音視頻采集等多媒體應(yīng)用。DirectShow的設(shè)計(jì)初衷是盡量要讓應(yīng)用程序開發(fā)人員從復(fù)雜的數(shù)據(jù)傳輸、硬件差異、同步性等工作中解脫出來,總體應(yīng)用框架和底層工作由DirectShow來完成。DirectShow的構(gòu)成如圖2所示。
DES(DirectShow Editing Services)是一套基于DirectShow核心框架的編程接口,它的出現(xiàn)簡(jiǎn)化了視頻編輯任務(wù)。DES的系統(tǒng)結(jié)構(gòu)如圖3所示。
基于時(shí)間線的模型如圖4所示。
3.3 實(shí)現(xiàn)方法
運(yùn)用DirectShow的DES方法,實(shí)現(xiàn)方案如下:
(1) 首先選定待剪切文件上的起點(diǎn)與終點(diǎn)。以時(shí)間為標(biāo)記,記為startpoint,endpoint。
(2) 為目標(biāo)文件生成一個(gè)時(shí)間線對(duì)象(TimeLine):
IAMTimeline*pTL=NULL;
CoCreatelnstance(CLSID_IAMTimeline,NULL,CLSCTX_INPROC_SERVER,IID_IAMTimeline,(void* *)&pTL);
接下來要將時(shí)間線上的視頻組和音頻組的信息填寫完整。
(3) 為時(shí)間線對(duì)像生成一個(gè)組,以視頻組為例,首先生成一個(gè)視頻組(video group):
IAMTimelineGroup *pVideoGroup=NULL;
IAMTimelineObj *pVideoGroupObj=NULL;
pTL->CreateEmptyNode(&pVideoGroupObj,TIMELINE_MAJOR_TYPE_GROUP);
pGroupObj->Querylnterface(IID_IAMTimelineGroup,(void **)&pVideoGroup);
組是由軌道組成的,所以接下來要為視頻組添加軌道(Track):
pVideoComp->VTracklnsBefore(pVideoTrackObj,-1);
pVideoTrackObj->Querylnterface(IID_IAMTimelineTrack,(void **)&pVideoTrack)
(4) 為軌道添加視頻時(shí)間點(diǎn)和文件信息:
首先,設(shè)置時(shí)間線上的時(shí)間,這個(gè)時(shí)間是源文件中的時(shí)間點(diǎn)在剪切后的文件中出現(xiàn)的時(shí)間:
pVideoSrcObj->SetStartStop(startpoint1,endpoint1);
接下來要設(shè)置源媒體的時(shí)間,這個(gè)時(shí)間就是想得到的源媒體文件中的視頻信息出現(xiàn)的時(shí)間:
pVideoSrcObj->SetMediaTimes(startpoint.endpoint);
還要設(shè)置源媒體文件的名字:
pVideoSrcObj->SetMediaName(源媒體文件名)
將信息加入的軌道中:
pVideoTrack->SrcAdd(pVideoSrcObj);
(5) 把時(shí)間線對(duì)象放入DirectShow回放控制引擎中:
IRenderEngine *pRenderEngine = NULL;
CoCreatelnstance(CLSID_RenderEngine,NULL,CLSCTX_INPROC_SERVER,IID_IRenderEngine,(void**)&pRenderEngine);
pRender->SetTimelineObject(pTL);
pRenderEngine->ConnectFrontEnd( );
(6) 為時(shí)間線對(duì)象指定輸出信息的壓縮方法。DirectShow默認(rèn)只支持AVI格式的輸出,因此,要指定一個(gè)自己定義的輸出格式,這里選擇一個(gè)MPEG-2的壓縮器:
IGraphBuilder *pGraph=NULL;
IMediaControl *pControl=NULL;
pRender->GetFilterGraph(&pGraph);
AddFilterByCLSID(pGraph,LSID_VIDEO_ENCODER,L"MPE-2",&pVideoEncoder);
long NumGroups;
pTL->GetGroupCount(&NumGroups);
IPin *pPin;
for (i=0;i
if (pRenderEngine->GetGroupOutputPin(i,&pPin)==S_OK){
ConnectFilters(pGraph,pPin,pVideoEncoder,
TRUE);
}
}
(7) 為時(shí)間線對(duì)象指定輸出文件:
AddFilterByCLSID(pGraph,LSID_VIDEO_WRITER,Writer' ',&pfilewriter);
ConnectFilters(pGraph,pVideoEncoder,pMux,TRUE);
ConnectFilters(pGraph,pMux,pfilewriter,TRUE);
IFileSinkFilter *pSin= 0;
pfilewriter->QueryInterface(IID_IFileSinkFilter,(void**)&pSink);
pSink->SetFileName(剪切后的文件名,NULL);
(8) 啟動(dòng)回放功能:
pGraph->QueryInterface(IID_IMediaControl,(void **)&pControl);
pControl->Run();
回放時(shí),DirectShow會(huì)把輸出的數(shù)據(jù)以MPEG-2的形式輸出到指定的文件中去。
最后,當(dāng)時(shí)間線對(duì)象的數(shù)據(jù)流回放完畢后,所生成的就是剪輯完畢的文件了。
4 結(jié) 語(yǔ)
通過對(duì)比上述兩種實(shí)現(xiàn)方案,可以得出如下結(jié)論:
(1) 基于解析MPEG-2文件視頻文件的剪輯方案需要對(duì)MPEG-2格式內(nèi)容進(jìn)行深入的了解,程序的設(shè)計(jì)與實(shí)現(xiàn)的復(fù)雜度很高,而通過DirectShow技術(shù)則大大簡(jiǎn)化了這種復(fù)雜性。
(2) DirectShow本身的開放性框架使得它可以處理更多更復(fù)雜的媒體內(nèi)容,通過給它接上不同的目標(biāo)輸出控制單元,可以處理更多格式類型媒體文件。
(3) 通過DirectShow框架,設(shè)計(jì)人員可以從繁雜的背景知識(shí)的學(xué)習(xí)中解脫出來,從而更加專注于視頻的應(yīng)用處理中,這無疑使它更容易為應(yīng)用人員所掌握。
參考文獻(xiàn)
[1]陸其明.DirectShow開發(fā)指南[M].北京:清華大學(xué)出版社,2003.
[2]Microsoft Corporation.DirectX 9.0 Programmerps Reference[CP/DK].2002.
[3]余兆明.MPEG標(biāo)準(zhǔn)及其應(yīng)用[M].北京:北京郵電大學(xué)出版社,2002.
[4]陸其明.DirectShow 實(shí)務(wù)精選[M].北京:科學(xué)出版社,2004.
[5]張勇,羅靜.基于DirectShow的多媒體文件音視頻的重新壓縮[J].現(xiàn)代電視技術(shù),2005(5):87-91.
[6]楊欣穎.非線性視頻編輯技術(shù)在多媒體課件制作中的處理與應(yīng)用[J].文教資料,2006(21):183-184.
[7],曹元大,張磊.基于DirectShow的視頻流媒體存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2003(11):31-33.
[8]胡海峰,陳喜,張文淵,等.DirectShow非線性音頻-視頻編輯應(yīng)用的實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2004,25(1):58-63.
篇3
關(guān)鍵詞:非線性編輯;軟件技術(shù);節(jié)目制作
1非線性編輯系統(tǒng)的綜述
1.1意義
非線性編輯以編輯系統(tǒng)和專業(yè)硬件設(shè)備為基礎(chǔ),通過計(jì)算機(jī)完成視頻編輯工作,然后再按照時(shí)間順序開展非線性編輯工作[1]。與傳統(tǒng)的編輯模式相比,非線性編輯的效率更高,工作效率更明顯。
1.2原理
在非線性編輯的開展過程中,首先利用視音頻模擬、錄像機(jī),以及攝像機(jī)等進(jìn)行信號(hào)源的采集,在通過計(jì)算機(jī)實(shí)現(xiàn)視音頻處理卡的有效轉(zhuǎn)換,然后,充分利用計(jì)算機(jī)數(shù)字壓縮技術(shù),將實(shí)際轉(zhuǎn)換過程中所形成的數(shù)字信號(hào)進(jìn)行高效整合,最終,將其保存在電腦硬盤中。轉(zhuǎn)換或者數(shù)字解壓縮方式,完成模擬信號(hào)的錄制工。
1.3特征
在計(jì)算機(jī)中實(shí)現(xiàn)編輯工作以及以存儲(chǔ)方式代替磁盤,是非線性編輯系統(tǒng)較為明顯的特性。此外,非線性編輯系統(tǒng)也將高效解決了傳統(tǒng)編輯模式中,工作效率偏低以及操作繁瑣的問題。非線性編輯系統(tǒng)明顯增強(qiáng)了視頻的圖像質(zhì)量,硬盤存儲(chǔ)能有效避免傳統(tǒng)磁帶所出現(xiàn)的磨損,極大程度的改善了視頻失真或者噪音現(xiàn)象。在編輯過程中,SDI技術(shù)與分量化采集手段的有效應(yīng)用,有效解決了信號(hào)接收效果差,以及圖像質(zhì)量不佳的問題。同時(shí),實(shí)現(xiàn)了視頻格式的任意轉(zhuǎn)化。
2非線性編輯軟件技術(shù)在電視節(jié)目制作中的運(yùn)用
2.1素材管理
素材管理是全面、高效的編輯功能的重要內(nèi)容,具體包括了素材存儲(chǔ)、整理、索引、傳輸?shù)取7蔷€性編輯系統(tǒng)的另一個(gè)重要功能是批采集處理,具體體現(xiàn)在兩方面。一是一次性選擇多段換面進(jìn)行打點(diǎn),節(jié)省了大量的時(shí)間;二是批采集處理,讓采集過程更加的便捷,進(jìn)而提高整體的編輯效率。
2.2特技制作
特技制作是編輯系統(tǒng)的重要內(nèi)容,3D功能與特效的充分融合,是區(qū)分系統(tǒng)是否專業(yè)的重要標(biāo)志。在硬件板卡作用下,專業(yè)的非線性編輯系統(tǒng),能對(duì)實(shí)時(shí)預(yù)演特技效果與各種特技參數(shù)進(jìn)行及時(shí)的修改。非線性編輯系統(tǒng)包含了多種特技類型,具體包括運(yùn)動(dòng)特技、鍵控與分層特技,以及過渡特技等。
2.3音頻功能
在完善其它技術(shù)要求的前提下,加強(qiáng)對(duì)音頻的處理與編輯功能的檢查工作,檢查內(nèi)容具體包括以下方面,一是能否分別調(diào)節(jié)聲像位置以及電平;二是波形的顯示速度能否與檢索相匹配;三是是否具備簡(jiǎn)單的實(shí)時(shí)均衡功能;四是音頻數(shù)據(jù)流的同步方式。最后,確定那種系統(tǒng)與自身的實(shí)際條件相匹配。
2.4備份
存儲(chǔ)的局限性是一種現(xiàn)實(shí)問題,造成了諸多素材的流失,進(jìn)而給制作帶來一定的阻力。因此,用戶在素材的存儲(chǔ)過程中,要充分考慮存儲(chǔ)介質(zhì)的性價(jià)比,并充分發(fā)揮數(shù)據(jù)流磁帶對(duì)硬盤存儲(chǔ)的輔助作用[2]。
2.5時(shí)間線上的編輯
傳統(tǒng)設(shè)備需要工作人員充分利用畫面的淡出淡入,將黑白底充分的透出。在特效的制作過程中,實(shí)現(xiàn)了畫面之間的緊密銜接,讓畫面更加的流暢。
2.6視頻變速
將時(shí)間線設(shè)定到固定的位置,選擇“變速到游標(biāo)”按鈕,能便捷的實(shí)現(xiàn)所需的效果。例如,在片花的制作過程中,經(jīng)常會(huì)出現(xiàn)一些快鏡頭的表述,將時(shí)間線上前移動(dòng),可以讓造成一種急迫感,在播放煙花時(shí),能體現(xiàn)出緩慢綻放的效果,給人極大程度的視覺沖擊。
2.7字幕處理
將字幕層視為視頻軌道,并將其引入到非線性編輯系統(tǒng)中,實(shí)現(xiàn)了對(duì)字幕多角度的特技處理。具體的特效手段包括拉近式、旋轉(zhuǎn)式、爆炸式,以及縮放式等。此外,充分突出字幕的顏色效果,帶來不同的視覺感應(yīng)。例如,紅字與黃字結(jié)合,展現(xiàn)出輝煌的感覺;黑字與黃字結(jié)合,展現(xiàn)出了高貴與信賴的感覺;白字與藍(lán)字的結(jié)合,給人以高品質(zhì)、清爽、干凈、精密的感覺。
2.8聲音采集
在聲音信號(hào)的處理上,編輯方式?jīng)]有太大的區(qū)別,通常從CD上獲取一段音樂,并將其當(dāng)做素材導(dǎo)人非線性編輯系統(tǒng)中。具體的步驟:利用抓軌軟件,從CD中抓取一段音樂,再匹配系統(tǒng)格式后將其引入系統(tǒng)。非線編輯通常有多個(gè)軌道,充分發(fā)揮音樂、字幕、解說等元素的整體效果,給人以極大程度的震撼力與感染力。
2.9電視廣告特技
良好的特技效果,不僅能增加廣告的吸引力,還能促進(jìn)觀眾對(duì)畫面信息的理解,充分發(fā)揮電視廣告特技的意圖。廣告特技效果只有將情感與視覺體驗(yàn)充分結(jié)合在一起,才能讓特技的成為的應(yīng)用到廣告中。
篇4
【關(guān)鍵詞】C語(yǔ)言;軟件編程;混合編程
引言
傳統(tǒng)上,B語(yǔ)言只有計(jì)算機(jī)字這一種數(shù)據(jù)類型,其功能有限、語(yǔ)言簡(jiǎn)單,貝爾實(shí)驗(yàn)室歷時(shí)多年研究開發(fā)的C語(yǔ)言很好地解決了這一缺陷。C語(yǔ)言作為程序員的入門語(yǔ)言,具有上機(jī)執(zhí)行過程簡(jiǎn)潔,操作自由的特點(diǎn)。C語(yǔ)言是一種更接近數(shù)學(xué)的具有較強(qiáng)移植性能力的一種語(yǔ)言,獨(dú)特的算法決定了其特點(diǎn)人性化,以便用于多種操作系統(tǒng)。,作為計(jì)算機(jī)軟件編程中重要的程序設(shè)計(jì)應(yīng)用語(yǔ)言,C語(yǔ)言集合了匯編語(yǔ)言的優(yōu)越性和高級(jí)語(yǔ)言的特點(diǎn)。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,C語(yǔ)言的運(yùn)用已經(jīng)成為計(jì)算機(jī)軟件編程技術(shù)的核心。
1概述
C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上完善形成的。我們的計(jì)算機(jī)辯稱人員在使用B語(yǔ)言作為軟件開發(fā)的過程中發(fā)現(xiàn)B語(yǔ)言其結(jié)構(gòu)過于簡(jiǎn)單,而且在編寫程序的過程中靈活性不強(qiáng),針對(duì)于軟件在開發(fā)過程中需要應(yīng)對(duì)不同的復(fù)雜程序完全不能夠匹配。因此在這些問題下,研發(fā)人員經(jīng)過多次試驗(yàn),深入研究計(jì)算機(jī)編程語(yǔ)言,最終,C語(yǔ)言于1972年被美國(guó)貝爾實(shí)驗(yàn)室D.M正式推出。C程序語(yǔ)言是早期的時(shí)候在u-nix操作系統(tǒng)中被使用的。1978年以后各種計(jì)算機(jī)開始對(duì)C語(yǔ)言進(jìn)行使用,C語(yǔ)言既可以對(duì)應(yīng)用程序進(jìn)行設(shè)計(jì),也可以我們?cè)谌粘S?jì)算機(jī)工作的語(yǔ)言。經(jīng)過多年發(fā)展,C語(yǔ)言成為低級(jí)語(yǔ)言的升級(jí)版,而且更多更便捷的后續(xù)語(yǔ)言也被研發(fā)出來,對(duì)軟件開發(fā)起到了非常重要的作用。計(jì)算機(jī)的主要組成語(yǔ)言就是通過C語(yǔ)言來實(shí)現(xiàn)的,只有能夠靈活的使用C語(yǔ)言進(jìn)行程序的編寫才能對(duì)計(jì)算機(jī)軟件的開發(fā)起到重要的推動(dòng)作用。
2C語(yǔ)言編程的主要特點(diǎn)
2.1模塊化思想在我們使用C語(yǔ)言進(jìn)行軟件編輯的時(shí)候,我們因該將每一個(gè)大的程序沒款進(jìn)行分解,通過分解的方式式的大模塊編程小模塊,將每一個(gè)小模塊設(shè)計(jì)完整后,再通過彼此之間確定聯(lián)系,從而發(fā)展成一個(gè)完善的大模塊。2.2函數(shù)庫(kù)強(qiáng)大在C語(yǔ)言程序編輯的時(shí)候,我們所使用的軟件已經(jīng)建立了一個(gè)完整的函數(shù)庫(kù),程序眼在編輯過程中不需要再定義相關(guān)函數(shù),調(diào)用方法是使用系統(tǒng)編輯指令中的“#inClude”指令,搭配著各種相關(guān)文件,即可以實(shí)現(xiàn)直接進(jìn)行函數(shù)的使用,編譯程序簡(jiǎn)化,出錯(cuò)率也大大降低。2.3指針使用靈活C語(yǔ)言中每一個(gè)內(nèi)存單元都有其相對(duì)的地址,我們將變量存放在內(nèi)存空間中,指針是一種賦值操作,其通過對(duì)變量的地址的描述,實(shí)現(xiàn)動(dòng)態(tài)的存儲(chǔ)分配。當(dāng)我們對(duì)函數(shù)指針進(jìn)行定義時(shí),需要根據(jù)函數(shù)指針的名稱、指針?biāo)哂械臄?shù)值和指針?biāo)鶎?duì)應(yīng)的類型去進(jìn)行指針的選擇。所以當(dāng)我們?cè)谑褂弥羔槙r(shí),我們先要了解我們所調(diào)用的指針后再進(jìn)行調(diào)用。2.4運(yùn)算范圍廣C語(yǔ)言的34種運(yùn)算符能夠?qū)\(yùn)輸結(jié)果采用各種不同的表達(dá)方式,以此為基礎(chǔ),C語(yǔ)言的數(shù)據(jù)可以針對(duì)不同計(jì)算機(jī)軟件開發(fā)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行運(yùn)算,正是因?yàn)檫@種原因才使得C語(yǔ)言得以廣泛的使用。2.5移植泛用性由于C語(yǔ)言具備廣泛的移植性能,使得各類不同型號(hào)的計(jì)算機(jī)和操作系統(tǒng)環(huán)境都能夠加以應(yīng)用,基本不需要做任何修正,因此多種不同版本的C語(yǔ)言由此而形成。2.6程序設(shè)計(jì)有較大自由度使用C語(yǔ)言編寫程序相對(duì)而言是比較自由的,因?yàn)镃語(yǔ)言在其語(yǔ)法限制方面比較小。我們只需要掌握C語(yǔ)言的語(yǔ)法通過合理的構(gòu)思就可以實(shí)現(xiàn)程序的編寫,假如當(dāng)我們我們編寫程序A-B時(shí),程序員只需直接輸入A、B的值并配合我們所調(diào)用的函數(shù),就可以直接進(jìn)行A-B的運(yùn)算。
3C語(yǔ)言在軟件編程中需要掌握的技巧
因?yàn)镃語(yǔ)言具有模塊化特點(diǎn),在發(fā)揮其靈活性和方便性的同時(shí),我們需要提升自身的編程技巧,進(jìn)一步的對(duì)編輯軟件和開發(fā)軟件進(jìn)行提升。3.1合理設(shè)置變量數(shù)據(jù)和運(yùn)算模式為了滿足計(jì)算機(jī)軟件編程的條件,我們需要注意使用最小的無符號(hào)數(shù)據(jù),以減少程序中出現(xiàn)的代碼,進(jìn)而提升我們計(jì)算機(jī)編程的效率。在設(shè)置運(yùn)算時(shí)我們應(yīng)該使用定點(diǎn)運(yùn)算的方式使運(yùn)算結(jié)果更為準(zhǔn)確。3.2合理定義變量存貯器類型變量存貯器中所存儲(chǔ)的變量包含了動(dòng)態(tài)變量、靜態(tài)變量、寄存器變量和外部變量。當(dāng)我們使用存貯器時(shí)一定要根據(jù)程序要求選取不同的存貯器。3.3正確選擇編譯控制指令C語(yǔ)言針對(duì)計(jì)算機(jī)的軟件在進(jìn)行編程時(shí)會(huì)提供很多的控制指令,其主要組成是由首要控制指令和一般控制指令,其中我們可以對(duì)一般控制指令進(jìn)行多次的選擇調(diào)用,但是首要指令只能放在程序的開頭,以防止因重復(fù)而導(dǎo)致停止編譯。3.4使用特有函數(shù)因?yàn)樵诰幊踢^程中我們需要經(jīng)常的使用函數(shù),所以程序員因該根據(jù)C語(yǔ)言編輯軟件自帶的函數(shù)庫(kù)進(jìn)行合理的選擇,程序員可以通過輸入#include指令”,找到所需要的函數(shù)直接進(jìn)行使用。
4C語(yǔ)言與匯編語(yǔ)言的混合編程方法探析
在使用C語(yǔ)言與匯編語(yǔ)言混合編程時(shí),一定要注重程序的開頭后結(jié)尾的模式。當(dāng)匯編語(yǔ)言調(diào)用C語(yǔ)言子程序只需主程序和子程序的格式保持一致。因?yàn)镃語(yǔ)言和匯編語(yǔ)言所應(yīng)對(duì)的方式不同,所以我們必須將C語(yǔ)言和匯編語(yǔ)言組合在一起進(jìn)行使用,其中兩者最重要的問題就是如何進(jìn)行數(shù)據(jù)的傳遞。所以C語(yǔ)言和匯編語(yǔ)言在組合使用時(shí)我們需要注意的是:一是要根據(jù)函數(shù)的值來確定傳送的方式,二是將程序的反輸入到堆棧,三是通過“ExTERN,”進(jìn)行函數(shù)說明并根據(jù)函數(shù)來說明身份;四是說明代碼段,并且以“一ETXT’’作為代碼段命名的原則,五通過程序的參數(shù)來選取匯編語(yǔ)言,六是兼顧保護(hù)寄存器的原則。
5C語(yǔ)言與匯編語(yǔ)言連接的問題研究
C語(yǔ)言和匯編語(yǔ)言進(jìn)行互連時(shí),我們要注意其中的三個(gè)問題:調(diào)用關(guān)系、解決參數(shù)和模塊連接?;爝叿Q重時(shí)我們要注意參數(shù)關(guān)系對(duì)其造成的影響,大多數(shù)程序員采用堆棧來尋找錯(cuò)誤,它的過程是:把BP當(dāng)做一個(gè)寄存器,將C語(yǔ)言反序使用后添加到堆棧中,使用BP將添加的參數(shù)數(shù)據(jù)偏移使用。在確認(rèn)了他們之間的調(diào)用關(guān)系后,程序需要對(duì)使用函數(shù)或者過程進(jìn)行解釋,然后明確互相的調(diào)用關(guān)系。特別要注意的是,當(dāng)我們使用程序時(shí),我們需要對(duì)于外部模塊的作用和名字進(jìn)行介紹。
6結(jié)語(yǔ)
當(dāng)今世界,科學(xué)信息技術(shù)飛速發(fā)展,所以C語(yǔ)言所應(yīng)用得月越來越多,計(jì)算機(jī)軟件編程的要求也越來越高。在計(jì)算機(jī)軟件編程中,匯編語(yǔ)言與C語(yǔ)言的合理使用,大大簡(jiǎn)化了編寫過程,提高了軟件的使用效率,C語(yǔ)言對(duì)促進(jìn)科技發(fā)展也起到不可替代的作用。
參考文獻(xiàn)
[1]劉秀明.基于C語(yǔ)言的計(jì)算機(jī)軟件編程實(shí)驗(yàn)研究[J].電子技術(shù)與軟件工程,2014(05):263.
[2]李悝.計(jì)算機(jī)C語(yǔ)言計(jì)算機(jī)編程實(shí)驗(yàn)研[J].數(shù)字技術(shù)與應(yīng)用,2012(11):229.
[3]王晶晶.基于計(jì)算機(jī)軟件開發(fā)的JAVA編程語(yǔ)言分析[J].河南科技,2013(02):17,134.
[4]梁甜.基于C語(yǔ)言的計(jì)算機(jī)軟件編程分析[J].田電腦編程技巧與維護(hù),2014(22).
篇5
1、聊天變聲器,是一款支持各種聲音效果變化的聲音處理軟件,支持蘋果手機(jī)系統(tǒng),該軟件包含系統(tǒng)預(yù)定義的湯姆貓、男聲、女聲、老人、機(jī)器人等效果,且支持用戶自定義切換各種聲音效果;
2、蝴蝶結(jié)變聲器,是一款支持蘋果手機(jī)的變化聲音軟件,用戶可使用該軟件變換多種不同音效的聲音,具有增大或減小特效聲音的音量等功能;
3、變聲器,是一款支持蘋果系統(tǒng)手機(jī)的變聲軟件,該軟件提供6種不同的變聲特效和2種背景音,可作為音頻文件分享到相冊(cè),適配簡(jiǎn)體中文、繁體、英文,支持應(yīng)用內(nèi)自由切換語(yǔ)言;
(來源:文章屋網(wǎng) )
篇6
關(guān)鍵詞:數(shù)據(jù)庫(kù);計(jì)算機(jī)軟件工程;編程技術(shù)
編程技術(shù)其實(shí)是辦公實(shí)現(xiàn)自動(dòng)化的重要基礎(chǔ)和關(guān)鍵組成部分,因?yàn)榫幊碳夹g(shù)不僅能夠支持辦公類各種計(jì)算機(jī)軟件的正常和運(yùn)行,還能夠保證辦公電腦硬件設(shè)備的安全。也就是說將計(jì)算機(jī)軟件應(yīng)用在計(jì)算機(jī)數(shù)據(jù)庫(kù)之中,不僅能夠最大程度上辦公的工作效率和辦公整體水平,還能夠提升企業(yè)的綜合能力和競(jìng)爭(zhēng)力,從而使企業(yè)在金融危機(jī)這個(gè)大環(huán)境下,一直長(zhǎng)遠(yuǎn)的發(fā)展下去。
1計(jì)算機(jī)軟件工程中數(shù)據(jù)庫(kù)文件的建立
1.1類型比較
數(shù)據(jù)庫(kù)文件的建立一般情況下都要在能夠讀取相關(guān)信息的前提下進(jìn)行,所以在初期準(zhǔn)備建立數(shù)據(jù)庫(kù)時(shí),一定要針對(duì)數(shù)據(jù)庫(kù)的相關(guān)信息來進(jìn)行有效的對(duì)比,而在觀察文件時(shí)還要根據(jù)信息讀取過程中容易出現(xiàn)的問題來進(jìn)行選擇建立數(shù)據(jù)庫(kù)文件方式。
1.2建立數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)的創(chuàng)建一般情況下都是在文件類型確定之后才展開的一項(xiàng)工作,而在建立數(shù)據(jù)庫(kù)之后對(duì)于數(shù)據(jù)庫(kù)相關(guān)信息的訪問權(quán)限也會(huì)有較大的改變,所以在一般情況下設(shè)計(jì)都是針對(duì)相關(guān)功能不夠完善的項(xiàng)目來進(jìn)行整改,通過更加合理的改善來解決計(jì)算機(jī)運(yùn)行過程中出現(xiàn)的各種問題。
2計(jì)算機(jī)數(shù)據(jù)庫(kù)的概念
計(jì)算機(jī)數(shù)據(jù)庫(kù)其實(shí)就是通過編程技術(shù)來進(jìn)行一系列工作的信息處理系統(tǒng),其實(shí)計(jì)算機(jī)數(shù)據(jù)庫(kù)出現(xiàn)的根本原因就是因?yàn)楝F(xiàn)如今信息技術(shù)發(fā)展十分迅速,所以計(jì)算機(jī)數(shù)據(jù)庫(kù)應(yīng)運(yùn)而出,其最大的作用就是能夠?yàn)槠髽I(yè)構(gòu)建一個(gè)自動(dòng)化屬性的企業(yè)內(nèi)部信息處理系統(tǒng),從而最大限度上為企業(yè)提供一個(gè)計(jì)算機(jī)數(shù)據(jù)庫(kù)平臺(tái),使辦公人員能夠借助編程技術(shù)進(jìn)行工作,其中包括信息的儲(chǔ)備、更新、維護(hù)和傳輸?shù)鹊?。其?shí)從本質(zhì)上看來,計(jì)算機(jī)數(shù)據(jù)庫(kù)就是一個(gè)對(duì)相關(guān)信息收集和整理的過程,這種技術(shù)十分適用于企業(yè)的辦公。
3編程技術(shù)在計(jì)算機(jī)數(shù)據(jù)庫(kù)中的作用
3.1可用性
可用性的提出是為了針對(duì)快速恢復(fù)故障和平衡負(fù)載。當(dāng)計(jì)算機(jī)的主接口出現(xiàn)問題時(shí),備份的接口將會(huì)自動(dòng)的代替其進(jìn)行工作,從而保證網(wǎng)絡(luò)能夠有條不紊的運(yùn)行。而當(dāng)網(wǎng)絡(luò)的數(shù)據(jù)接受量過大時(shí),備份接口還可以幫助主接口進(jìn)行數(shù)據(jù)的接收和發(fā)送,從而起到均衡的作用。
3.2信息隱藏性
主體在進(jìn)行通訊連接時(shí),可以利用計(jì)算機(jī)的NAT技術(shù)系統(tǒng),來隱藏內(nèi)網(wǎng)的網(wǎng)址,并且在數(shù)據(jù)上是以公網(wǎng)的網(wǎng)址訪問的網(wǎng)絡(luò),也就是說企業(yè)的用戶可以直接訪問外網(wǎng)的因特網(wǎng),但是外網(wǎng)的所有網(wǎng)絡(luò)都無法進(jìn)行企業(yè)內(nèi)部網(wǎng)絡(luò)查看企業(yè)中的任何信息和資源。
3.3身份鑒別
身份鑒別是面向所有用戶進(jìn)行的驗(yàn)證程序,計(jì)算機(jī)的身份鑒別主要是指訪問計(jì)算機(jī)的身份鑒別和端口計(jì)算機(jī)的身份鑒別。訪問該計(jì)算機(jī)的用戶必須通過SSH或者HTTP(HTTPS)的連接,通過輸入用戶和密碼的方式來進(jìn)行連接和鑒別,并且要保證密碼以私密文件的方式保存在TACACS認(rèn)證的服務(wù)器上,也就是說在計(jì)算機(jī)數(shù)據(jù)庫(kù)中應(yīng)用編程技術(shù)將能夠最大限度上保證企業(yè)辦公信息和數(shù)據(jù)的安全性。
4計(jì)算機(jī)數(shù)據(jù)庫(kù)中存在的問題
編程技術(shù)和傳統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)其實(shí)都是一樣的,都是對(duì)于計(jì)算機(jī)的使用人員相關(guān)網(wǎng)絡(luò)信息的總結(jié)和整理,只是編程技術(shù)要相較于傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)來說更加的便捷和方便。但是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)存在著一個(gè)至關(guān)重要的問題,那就是相關(guān)信息的安全性,因?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)技術(shù)依賴于編程技術(shù)和網(wǎng)絡(luò),所以編程技術(shù)具有容易修改、容易刪除、容易查閱的特點(diǎn),所以計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)中的信息很容易就被人他人進(jìn)行查閱和修改,缺乏一定程度上的安全性。也正是因?yàn)檫@一問題,所以導(dǎo)致了計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)安全信息上的安全隱患。
5數(shù)據(jù)庫(kù)文件的訪問技術(shù)改革
5.1給予計(jì)算機(jī)數(shù)據(jù)庫(kù)硬件支持
企業(yè)的工作流程內(nèi),計(jì)算機(jī)占據(jù)著其中百分之八十工作量,也就是說要想實(shí)現(xiàn)計(jì)算機(jī)數(shù)據(jù)庫(kù)就必須要將編程技術(shù)應(yīng)用在辦公中。由于計(jì)算機(jī)數(shù)據(jù)庫(kù)涉及的業(yè)務(wù)內(nèi)容較多且相關(guān)信息比較繁雜,所以不論是計(jì)算機(jī)辦公的軟件還是硬件設(shè)備都需要編程技術(shù)的支持才能夠保證辦公中所有工作的順利進(jìn)行。計(jì)算機(jī)數(shù)據(jù)庫(kù)中的特定軟件有很多,其中以設(shè)備管理的軟件為主,而支持自動(dòng)化辦公軟件的系統(tǒng)主要是計(jì)算機(jī)數(shù)據(jù)庫(kù)、SQLserver2008和Access。
5.2實(shí)現(xiàn)辦公軟件自動(dòng)化
在辦公的文檔管理中應(yīng)用編程技術(shù),不僅能夠保證使用者在計(jì)算機(jī)辦公過程中能夠在計(jì)算機(jī)的網(wǎng)絡(luò)平臺(tái)進(jìn)行信息文件的審閱和查看批復(fù),還能夠在網(wǎng)絡(luò)信息平臺(tái)對(duì)文件信息進(jìn)行審批和修改,這對(duì)于辦公來說不僅提升了工作效率,還最大程度上減少了工作量。企業(yè)的工作人員在接收到文件之后,可以先將文件錄入在網(wǎng)絡(luò)信息平臺(tái)內(nèi),然后再信息平臺(tái)內(nèi)進(jìn)行修改和存檔,存檔完畢之后,可以對(duì)其進(jìn)行準(zhǔn)確的命名,以便他日查閱文件,并且存檔的工作人員還可以將文件進(jìn)行加密,針對(duì)不同用戶設(shè)置訪問權(quán)限,從而保證文件的安全性和共享性。
5.3創(chuàng)建全新信息平臺(tái)
現(xiàn)如今很多企業(yè)都將編程技術(shù)應(yīng)用在企業(yè)管理和信息中,其中信息使用的最為廣泛和頻繁,企業(yè)信息主要就是利用編程技術(shù)創(chuàng)建一個(gè)網(wǎng)絡(luò)信息平臺(tái),其中最常見的就是電子網(wǎng)絡(luò)論壇或者電子公告,在這個(gè)網(wǎng)絡(luò)信息平臺(tái)內(nèi),企業(yè)可以隨時(shí)隨地的公布企業(yè)公告和企業(yè)交流等等。
6結(jié)束語(yǔ)
綜上所述,只有了解了編程技術(shù)的全部應(yīng)用內(nèi)容,才能夠更好的將編程技術(shù)應(yīng)用在計(jì)算機(jī)數(shù)據(jù)庫(kù)內(nèi),這不僅能夠提升企業(yè)的辦公質(zhì)量,還能夠最大限度上的提升企業(yè)的辦公效率,多方位的保障企業(yè)辦公所有工作的順利進(jìn)行,從而最大限度上企業(yè)在整個(gè)市場(chǎng)環(huán)境下的競(jìng)爭(zhēng)能力。
參考文獻(xiàn)
[1]范麗萍.基于計(jì)算機(jī)軟件工程的數(shù)據(jù)庫(kù)編程技術(shù)[J].電子技術(shù)與軟件工程,2017,01(22):164-165.
[2]侯艷輝.礦區(qū)生態(tài)環(huán)境評(píng)估及預(yù)警實(shí)現(xiàn)技術(shù)研究[D].山東:山東科技大學(xué),2014.
[3]尤晶晶.工程軟件中VB數(shù)據(jù)庫(kù)編程技術(shù)的應(yīng)用及選擇思路解析[J].電腦編程技巧與維護(hù),2016,04(134):71-72+94.
篇7
隨著電視機(jī)數(shù)字化程度的提高和功能的增強(qiáng),電視機(jī)軟件升級(jí)越來越重要,各種各樣的電視機(jī)故障需要軟件升級(jí)來解決。而目前電視機(jī)軟件升級(jí)的方法主要通過專門的軟件燒錄儀將軟件燒錄入存儲(chǔ)器,然后將存儲(chǔ)器焊接到電視機(jī)主板上:或者將電腦與電視機(jī)相連,通過電腦將升級(jí)程序?qū)懭腚娨暀C(jī)存儲(chǔ)器。這兩種電視機(jī)軟件升級(jí)的方法存在操作復(fù)雜、時(shí)間長(zhǎng)、成本高,且需要專業(yè)性知識(shí)等缺陷。
系統(tǒng)原理
便攜式電視機(jī)軟件升級(jí)系統(tǒng)原理如圖1。電視機(jī)軟件升級(jí)系統(tǒng)是以單片機(jī)W79E632為基礎(chǔ)的可以獨(dú)立運(yùn)行的系統(tǒng)。首先升級(jí)系統(tǒng)作為從機(jī)接收電腦系統(tǒng)發(fā)送過來的升級(jí)程序數(shù)據(jù)并進(jìn)行存儲(chǔ)、然后升級(jí)系統(tǒng)作為主機(jī)將存儲(chǔ)的升級(jí)程序數(shù)據(jù)發(fā)送給電視機(jī)系統(tǒng),電視機(jī)系統(tǒng)將升級(jí)程序數(shù)據(jù)存儲(chǔ)、運(yùn)行,從而實(shí)現(xiàn)軟件升級(jí)。
目前電視機(jī)的升級(jí)接口一般是UART串行接口和I2C接口,該軟件升級(jí)系統(tǒng)可以選用兩種接口來升級(jí)。電腦系統(tǒng)若沒有這兩個(gè)接口,需要通過接口轉(zhuǎn)換裝置來與升級(jí)系統(tǒng)相連。
系統(tǒng)硬件實(shí)現(xiàn)
便攜式電視機(jī)軟件升級(jí)系統(tǒng)硬件框圖如圖2所示。系統(tǒng)主要包括單片機(jī)W79E632、FLASH存儲(chǔ)器、UART串口接口電路、I2C接口電路、中斷電路以及狀態(tài)指示燈等。
WINBOND公司單片機(jī)W79E632具有128k ISP(In-System Program)FLASH ROM、4k的LD (Loader program)FLASH ROM、軟件指令完全與51單片機(jī)兼容、執(zhí)行效率高和速度快等優(yōu)點(diǎn)。
W79E632有UART串行接口,沒有I2C接口及SPI接口,采用I/O口P8、P9模擬I2C接口,I/O口P4~P7模擬SPI接口。FLASH存儲(chǔ)采用NORFLASH,3.3V供電。由于FLASH是3.3V供電,W79E632 I/O口電平為SV,為保證數(shù)據(jù)的可靠性,系統(tǒng)有一個(gè)5V/3.3VSPI總線轉(zhuǎn)換電路。
系統(tǒng)自身的引導(dǎo)程序、初始化程序以及UART接口數(shù)據(jù)讀寫程序、I2C接口數(shù)據(jù)讀寫程序、SPI接口數(shù)據(jù)讀寫程序等都放在內(nèi)部ROM中,F(xiàn)LASH存儲(chǔ)器專門存儲(chǔ)電視機(jī)升級(jí)程序數(shù)據(jù)。開關(guān)SW2、SW3產(chǎn)生低脈沖來觸發(fā)外部中斷INT0、INT1,以控制I2C接口數(shù)據(jù)的接收和發(fā)送:串行接口中斷控制UART接口數(shù)據(jù)的接收,而SWl產(chǎn)生低脈沖通過I/O口P3控制UART接口數(shù)據(jù)的發(fā)送。升級(jí)系統(tǒng)通過W79E632內(nèi)部定時(shí)器以及I/O口p2、p1控制紅/綠指示燈來表達(dá)當(dāng)前狀態(tài),例如紅綠燈都亮,升級(jí)系統(tǒng)運(yùn)行正常,準(zhǔn)備讀寫;紅燈亮,綠燈閃動(dòng),升級(jí)系統(tǒng)正在寫或讀FLASH存儲(chǔ)器。
系統(tǒng)軟件實(shí)現(xiàn)
升級(jí)系統(tǒng)的軟件實(shí)現(xiàn)包括兩部分:作為從機(jī)接收并存儲(chǔ)電腦系統(tǒng)發(fā)送的電視機(jī)升級(jí)程序數(shù)據(jù)和作為主機(jī)向電視機(jī)系統(tǒng)發(fā)送存儲(chǔ)的電視機(jī)升級(jí)程序數(shù)據(jù)。
系統(tǒng)主頻設(shè)計(jì)為22.1184MHz,UART接口采用8位移位寄存器模式,波特率是系統(tǒng)主頻率的1/12,每接收完或發(fā)送完一個(gè)數(shù)據(jù)字節(jié)將產(chǎn)生中斷:I2C接最高傳輸速率為100kb/s,SPI接口最高傳輸速率為2.2Mb/s。
系統(tǒng)自檢、初始化等程序以1000H為起始地址。上電后直接跳到1000H處,進(jìn)行初始化設(shè)置,建立好堆棧,設(shè)置好UART接口、I2C接口以及SPI接口相關(guān)參數(shù):紅綠指示燈都亮,允許中斷。此后系統(tǒng)正常運(yùn)行,等待中斷并監(jiān)視I/O口P3的狀態(tài),以決定系統(tǒng)是作為主機(jī)還是從機(jī)進(jìn)行下一步運(yùn)作。
作為從機(jī)接收并存儲(chǔ)升級(jí)程序數(shù)據(jù)
升級(jí)系統(tǒng)作為從機(jī)接收并存儲(chǔ)電腦系統(tǒng)發(fā)送的電視機(jī)升級(jí)程序數(shù)據(jù),流程如圖3所示
1 系統(tǒng)正常運(yùn)行,開串口中斷、外部中斷及定時(shí)器中斷,等待中斷。
2 從I2C接口接收升級(jí)程序數(shù)據(jù)時(shí),按一下開關(guān)SW2,產(chǎn)生外部中斷INTO。屏蔽除定時(shí)器中斷外所有的中斷,將與當(dāng)前狀態(tài)相關(guān)的寄存器及程序指針數(shù)據(jù)暫時(shí)存入堆棧。同時(shí)設(shè)置定時(shí)器相關(guān)參數(shù),使W79E632能夠向I/O口P1發(fā)送周期為S00ms的脈沖信號(hào)以控制綠燈閃動(dòng),表示正在接收數(shù)據(jù)。串口中斷由W79E632自動(dòng)產(chǎn)生。如果產(chǎn)生串口中斷,則屏蔽除串口中斷、定時(shí)器中斷外所有的中斷,其它設(shè)置與INTO中斷相同。
3 產(chǎn)生INT0中斷時(shí),則啟動(dòng)I2C接口讀程序I2C Read將I/o口緩沖寄存器中的數(shù)據(jù)寫入W79E632內(nèi)部RAM;如果產(chǎn)生串行中斷,則啟動(dòng)串行接口讀程序UART Read。將串行接口寄存器中的數(shù)據(jù)寫入W79E632內(nèi)部RAM內(nèi),并清除串口接收中斷標(biāo)志R1,以使下一個(gè)數(shù)據(jù)能準(zhǔn)確接收。
4 電腦系統(tǒng)以256字節(jié)作為一個(gè)數(shù)據(jù)塊進(jìn)行發(fā)送。每發(fā)送完256字節(jié)后發(fā)送一個(gè)累加校驗(yàn)和進(jìn)行校驗(yàn)。W79E632校驗(yàn)數(shù)據(jù)有效后,啟動(dòng)FLASH寫程序SPI Write,將RAM中的256字節(jié)數(shù)據(jù)寫入FLASH;寫完后向電腦系統(tǒng)發(fā)送響應(yīng)信號(hào)“RIGHT”,電腦系統(tǒng)繼續(xù)發(fā)送數(shù)據(jù)。W79E632判斷下一個(gè)字符是否是“結(jié)束”字符(即每一個(gè)數(shù)據(jù)塊的第一個(gè)字符),不是“結(jié)束”字符則繼續(xù)接收數(shù)據(jù):如果是“結(jié)束”字符則啟動(dòng)SPI Write程序?qū)ⅰ敖Y(jié)束”字符直接寫入FLASH、然后結(jié)束。W79E632校驗(yàn)后數(shù)據(jù)無效,則立即向電腦系統(tǒng)發(fā)送響應(yīng)信號(hào)“ERROR”,然后結(jié)束。
5 結(jié)束時(shí),W79E632清除內(nèi)部RAM、I/O口緩沖寄存器和串行接口寄存器中的數(shù)據(jù)、將定時(shí)器、UART接口或I2C接口恢復(fù)為初始狀態(tài),讀出堆棧中保存的數(shù)據(jù)并寫入相應(yīng)的寄存器以恢復(fù)中斷前狀態(tài);綠燈繼續(xù)閃動(dòng)2S后開中斷,系統(tǒng)恢復(fù)正常運(yùn)行狀態(tài)。
作為主機(jī)發(fā)送升級(jí)
程序數(shù)據(jù)
升級(jí)系統(tǒng)作為主機(jī)的流程如圖4所示。
1 系統(tǒng)正常運(yùn)行,開串口中斷、外部中斷及定時(shí)器中斷,查詢I/O口P3的狀態(tài),等待中斷。
2 從I2C接口發(fā)送存儲(chǔ)的升級(jí)程序數(shù)據(jù)時(shí),按一下開關(guān)SW3產(chǎn)生外部中斷INTI。此時(shí)設(shè)置與產(chǎn)生INT0時(shí)相同。如果查詢到P3口有脈沖則屏蔽除串口中斷、定時(shí)器中斷外的所有中斷,其他設(shè)置與產(chǎn)生INTl中斷相同。
3 W79E632啟動(dòng)FLASH讀程序SPI_Read,讀取FLASH中存儲(chǔ)的升級(jí)程序數(shù)據(jù),每次連續(xù)讀完256字節(jié)存入W79E632的RAM中。W79E632每次存儲(chǔ)數(shù)據(jù)塊的第一個(gè)字符存儲(chǔ)前、判斷是否是“結(jié)束”字符。
4 W79E632讀到“結(jié)束”字符、表示數(shù)據(jù)發(fā)送完畢,進(jìn)入結(jié)束處理,反之則將通過串口或I2C接口發(fā)送數(shù)據(jù)。如果通過串口發(fā)送數(shù)據(jù),則啟動(dòng)UART write將RAM中的數(shù)據(jù)寫入串行接口寄存器進(jìn)行發(fā)送:如果是I2C接口發(fā)送數(shù)據(jù),則啟動(dòng)I2C Write將RAM中的數(shù)據(jù)寫入I2/o口緩沖器寄存器進(jìn)行發(fā)送。每發(fā)送完256字節(jié)的數(shù)據(jù),W79E632繼續(xù)發(fā)送一個(gè)累加校驗(yàn)和并等待電視機(jī)的響應(yīng)信號(hào)。收到電視機(jī)返回的“RIGHT”信號(hào)則繼續(xù)發(fā)送數(shù)據(jù),如果收到返回的“ERROR”信號(hào)則結(jié)束。
5 結(jié)束時(shí),W79E632清除內(nèi)部RAM、I/O緩沖寄存器和串行接口寄存器中的數(shù)據(jù),將定時(shí)器、UART或I2C接口恢復(fù)為初始狀態(tài),讀出堆棧中保存的數(shù)據(jù)并寫入相應(yīng)的寄存器以恢復(fù)中斷前狀態(tài):綠燈繼續(xù)閃動(dòng)2s后開中斷,系統(tǒng)恢復(fù)正常運(yùn)行狀態(tài)。
篇8
一. 計(jì)算機(jī)軟件行業(yè)的現(xiàn)狀
近年來,計(jì)算機(jī)軟件行業(yè)越發(fā)崛起,成為有發(fā)展?jié)摿Φ挠袆?chuàng)新精神和蓬勃生機(jī)的年輕行業(yè),得到社會(huì)的廣泛關(guān)注,得到年輕人的青睞,讓更多人置身于軟件開發(fā)行業(yè)中。這個(gè)行業(yè)的發(fā)展與外國(guó)發(fā)展相比還有很大的差距,沒有外國(guó)發(fā)展的那么迅速。軟件開發(fā)行業(yè)中很少有資深的人才,許多人都是在這個(gè)行業(yè)呆了一段時(shí)間后轉(zhuǎn)業(yè)或者離開開發(fā)前線。一些從經(jīng)驗(yàn)中總結(jié)得到的技術(shù)沒有傳承下來,進(jìn)而慢慢的被淹沒遺忘。
二.常見的計(jì)算機(jī)編程語(yǔ)言
(一)C語(yǔ)言
早在上個(gè)世紀(jì)七十年代到八十年代末期,C語(yǔ)言已經(jīng)被廣泛應(yīng)用在生活中,同時(shí)小型微機(jī)、大型主機(jī)也被應(yīng)用到C程序中,它不僅擁有良好的設(shè)計(jì)語(yǔ)言,還能為工作系統(tǒng)編制對(duì)應(yīng)的應(yīng)用程序。在編寫過程中,它不依賴計(jì)算機(jī)硬件以及相關(guān)功能。隨著時(shí)間的推移,C語(yǔ)言已經(jīng)擁有一定的歷史,到現(xiàn)在它仍然被利用,說明它具有極強(qiáng)的生命力。它已經(jīng)得到了很多人的認(rèn)可,并且成為現(xiàn)代性編程語(yǔ)言。在計(jì)算機(jī)開發(fā)中,它具有靈活方便、精悍短小等特征,雖然只有9類控制語(yǔ)句、32個(gè)關(guān)鍵性詞語(yǔ),但是它能將高級(jí)語(yǔ)言的語(yǔ)句、基本構(gòu)造以及低級(jí)語(yǔ)言有機(jī)的整合起來。另外,它還能計(jì)算機(jī)進(jìn)行字節(jié)、單元位以及選址工作。由于數(shù)據(jù)模型豐富,具有整型、實(shí)型、數(shù)組型、字符型、構(gòu)造型以及共用體類型,在豐富的數(shù)據(jù)來行中,它為計(jì)算機(jī)軟件成本提供了良好的運(yùn)算過程,從而逐步提升運(yùn)作效率。
它具有34種運(yùn)算符號(hào),在賦值、括號(hào)都能被C語(yǔ)言利用的過程中,具有表達(dá)方式靈活等特征,通過生成質(zhì)量有保障目標(biāo)代碼,從而不斷提高執(zhí)行效率。除此之外,它還能直接訪問物理區(qū)域,對(duì)軟件開發(fā)進(jìn)行實(shí)時(shí)性開發(fā),它允許對(duì)物理地址進(jìn)行訪問,具有表達(dá)能力好、移植性好等特征,幾乎所有的軟件商都會(huì)裝有C語(yǔ)言。
(二)C++與VC++
從目前的計(jì)算機(jī)軟件開發(fā)來看,視覺窗口已經(jīng)讓圖像成為標(biāo)準(zhǔn),但是運(yùn)用C語(yǔ)言具有很大的難度。在C語(yǔ)言的基礎(chǔ)上,通過革新與創(chuàng)造,開發(fā)了C++,它不僅具有C語(yǔ)言的特征,還對(duì)C語(yǔ)言進(jìn)行了大量的知識(shí)擴(kuò)充。C++的功能是,通過多種編程范式、程序設(shè)計(jì)以及類型檢查,讓其不僅適用于程序設(shè)計(jì),還被公認(rèn)為是擁有混合性程序設(shè)計(jì)的語(yǔ)言,通過該程序能便捷的設(shè)置窗口。在微軟的高功能地位中,VC++只要微軟在C++語(yǔ)言的基礎(chǔ)上,都能加快計(jì)算機(jī)軟件開發(fā)以及利用步驟。
(三)Access與Visual Basic
在計(jì)算機(jī)軟件開發(fā)與編程中,Visual Basic主要包括事件驅(qū)動(dòng)以及環(huán)境開發(fā)等編程語(yǔ)言,這個(gè)程序也是目前使用量最多的程序。GUI圖形用戶與RAD快速應(yīng)用都是VB編程語(yǔ)言的應(yīng)用功能。在計(jì)算機(jī)軟件開發(fā)中,數(shù)據(jù)庫(kù)作為一項(xiàng)不可缺少的語(yǔ)言。SQL機(jī)構(gòu)化查詢已經(jīng)成為數(shù)據(jù)庫(kù)使用最頻繁的語(yǔ)言,VB可圖像操作為其提供了良好的數(shù)據(jù)庫(kù)功能。另外,它還在內(nèi)部設(shè)置了SQL結(jié)構(gòu)查詢語(yǔ)言,和VC++比較,VB更加方便。而Access并聯(lián)式數(shù)據(jù)庫(kù)管理則主要運(yùn)用在小型數(shù)據(jù)庫(kù)中,并且具有強(qiáng)大的功能。通過Visual Basic語(yǔ)言工具不僅能讓VB與VBA產(chǎn)生良好的協(xié)作關(guān)系,還能讓VB語(yǔ)言更好的應(yīng)用在軟件開發(fā)中。
(四)Java語(yǔ)言
在計(jì)算機(jī)軟件開發(fā)中,運(yùn)用Java語(yǔ)言避免了C++與C+語(yǔ)言在軟件開發(fā)中的困難,能夠?qū)螜C(jī)的軟件開發(fā)編程對(duì)應(yīng)的網(wǎng)絡(luò)模式。它和普通的語(yǔ)言開發(fā)以及應(yīng)用相比,它的工作原理是將代碼翻譯成二進(jìn)制節(jié)碼,而不是利用多種平臺(tái)的機(jī)器對(duì)其翻譯。這樣,也就展示了一次翻譯、執(zhí)行的編程特性。在字節(jié)翻譯的環(huán)境下,它也會(huì)縮短Java運(yùn)行效率。在語(yǔ)法利用上,它和C++、C+類似,但是也在它們的基礎(chǔ)上進(jìn)行了發(fā)展,沒有多繼承、操作符重載等特征。根據(jù)封裝性、繼承性、多態(tài)性等語(yǔ)言特征,在提供接口、原語(yǔ)繼承的同時(shí),使用各種接口,確保多重功能順利完成。另外,Java還具有移植性、通用性、高效性、安全性等特征,已經(jīng)廣泛應(yīng)用于互聯(lián)網(wǎng)、數(shù)據(jù)處理、游戲控制與手機(jī)中,綜合Java特點(diǎn),它具有廣闊的應(yīng)用前景與優(yōu)勢(shì)。
三.原則
(一).整體結(jié)構(gòu)
開發(fā)項(xiàng)目的整理結(jié)構(gòu)決定了用什么樣的開發(fā)軟件,使用什么樣的編程語(yǔ)言,整個(gè)系統(tǒng)是由多個(gè)部分組成,并不是說整個(gè)系統(tǒng)都必須要使用同一種編程語(yǔ)言進(jìn)行編寫,編程語(yǔ)言的選擇應(yīng)該依據(jù)項(xiàng)目功能而定。對(duì)于成本投入較大的操作,如:圖形渲染、密碼學(xué)、視頻處理以及信號(hào)處理等,程序員要認(rèn)真考慮,盡量用一些靜態(tài)類型的語(yǔ)言。
(二)盡量使用最為熟悉的語(yǔ)言
熟練掌握的語(yǔ)言能夠運(yùn)用在開發(fā)軟件方面的話,可以節(jié)省大量的時(shí)間,并且能夠?qū)浖こ添?xiàng)目時(shí)間表進(jìn)行準(zhǔn)確預(yù)測(cè),及時(shí)完工。此外,熟悉的語(yǔ)言可以創(chuàng)新,如,開發(fā)的軟件是偏重復(fù)處理手工勞動(dòng)時(shí), 就可以根據(jù)實(shí)際情況選擇簡(jiǎn)單、靈活的編程語(yǔ)言,尤其是選擇那些自身就具備相應(yīng)功能的編程語(yǔ)言。
(三)充分考慮硬件環(huán)境
硬件環(huán)境是軟件開發(fā)的基礎(chǔ),所有軟件編程語(yǔ)言都應(yīng)該適應(yīng)硬件環(huán)境,所以軟件開發(fā)過程中要考慮外部硬件環(huán)境。
通常情況下,編程語(yǔ)言適應(yīng)了目前版本的硬件環(huán)境,但隨著硬件設(shè)備的更新,當(dāng)前的軟件可能就不適應(yīng)了,不匹配的問題仍然存在。
因此,在程序開發(fā)以前要選擇適應(yīng)環(huán)境的編程語(yǔ)言,這樣編出來的程序就能夠長(zhǎng)時(shí)間較好地運(yùn)行。只有這樣才能確保任何編程語(yǔ)言編出來的開發(fā)軟件都能夠?qū)崿F(xiàn)并能夠快速調(diào)整,因此,快速原型是很重要的,動(dòng)態(tài)語(yǔ)言在這方面表現(xiàn)出了突出的優(yōu)點(diǎn),可以和很多相關(guān)庫(kù)進(jìn)行結(jié)合。
(四)語(yǔ)言的選擇要考慮是否支持平臺(tái)
支持平臺(tái)也是在編程語(yǔ)言選擇過程中需要考慮的因素。
例如:在瀏覽器中運(yùn)行的程序語(yǔ)言,根據(jù)語(yǔ)言是否適應(yīng)就可以有選擇的使用一些語(yǔ)言。平臺(tái)是一個(gè)大環(huán)境,所有操作都應(yīng)該適應(yīng)于平臺(tái),一些程序開發(fā)過程中,程序語(yǔ)言的格式?jīng)Q定了要涉及大量的位操作,此時(shí),要充分考慮大量的位操作是否給軟件開發(fā)帶來困難,是否可以避免大量的工作,如果必須要進(jìn)行大量的位操作,那就應(yīng)該選擇那些具有容易位操作而且可以提供合適數(shù)據(jù)類型等特點(diǎn)的編程語(yǔ)言。
同時(shí), 在一些特殊領(lǐng)域,程序員應(yīng)該使用專業(yè)的編程語(yǔ)言,因?yàn)檫@些程序語(yǔ)言具有很強(qiáng)的針對(duì)性,使用起來既能夠節(jié)省很多的工作時(shí)間,還可以防止編程出現(xiàn)較大的失誤。
四.結(jié)語(yǔ):
編程語(yǔ)言是計(jì)算機(jī)軟件開發(fā)的靈魂,它決定了我們所開發(fā)軟件的效果。而編程語(yǔ)言的選擇則是計(jì)算機(jī)軟件開發(fā)的重要環(huán)節(jié),選擇了合適的編程語(yǔ)言進(jìn)行編寫,不僅能夠很好的提高編程效率也提高了計(jì)算機(jī)軟件的效率。選擇合適的編程語(yǔ)言進(jìn)行編寫并不是一件簡(jiǎn)單的事,所以我們要在編程語(yǔ)言的選擇上不斷的進(jìn)行探究,豐富及強(qiáng)化自身的知識(shí),進(jìn)行探索。如果不這樣的話,就很難在復(fù)雜而系統(tǒng)的計(jì)算機(jī)軟件開發(fā)中嶄露頭角,在競(jìng)爭(zhēng)激烈的計(jì)算機(jī)軟件行業(yè)中占有一席之地。
篇9
1、YY語(yǔ)音。
2、AudioRetoucher。
3、野狼音效軟件。
4、Wavosaur。
5、音頻k歌伴侶。
6、方訊音頻剪輯。
7、ocenaudio。
8、k歌音效軟件。
9、小丸工具箱。
篇10
關(guān)鍵詞:結(jié)對(duì)編程;交換編程;交換周期;迭代階段;輪流交換
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)22-688-02
Application of Exchange Programming Technology in Software Development
TIAN Yuan
(Department of computer,Henan Business College, Zhengzhou 450044,China)
Abstract: Be aimed at the insufficiency of independent programming technology and Pair Programming technology, bring forward that viewpoint of using the exchange programming technology in the software development, expounds the environment and the method of actualizing exchange programming technology, summarizes the value of the exchange programming technology’s applications in software development, finally points out the exchange programming’s development prospects.
Key words: Pair Programme; exchange programme; exchange cycle; Iterative stage; exchanges in turn
1 引言
在傳統(tǒng)的軟件開發(fā)過程中,通常采用兩種編程技術(shù):第一種是獨(dú)立編程技術(shù),即在軟件開發(fā)過程中,將一個(gè)項(xiàng)目按照功能分成若干個(gè)模塊,由一個(gè)開發(fā)者獨(dú)立完成一個(gè)模塊的需求分析、設(shè)計(jì)、編碼和單元測(cè)試階段,然后將結(jié)果再交給第二個(gè)人進(jìn)行另一個(gè)模塊的開發(fā)和測(cè)試,在這種編程技術(shù)中,開發(fā)人員獨(dú)立進(jìn)行各個(gè)模塊的開發(fā)和設(shè)計(jì),人員之間缺少交流,開發(fā)出來的產(chǎn)品在質(zhì)量上和功能上都不夠完備;第二種是結(jié)對(duì)編程技術(shù),即在軟件開發(fā)過程中,由兩位編程人員共同坐在同一臺(tái)計(jì)算機(jī)前,合作完成一個(gè)模塊中某一個(gè)階段的設(shè)計(jì)、編碼和測(cè)試[1],在這種編程技術(shù)中,雖然加強(qiáng)了開發(fā)人員之間的交流,提高了代碼質(zhì)量,但是,卻會(huì)造成人力資源的浪費(fèi),而且在項(xiàng)目開發(fā)團(tuán)隊(duì)中,如果技術(shù)人員比較少,或者開發(fā)人員頻繁變動(dòng),都會(huì)對(duì)項(xiàng)目的進(jìn)展產(chǎn)生較大的影響。
為了提高軟件開發(fā)的質(zhì)量和效率,合理利用各種資源,就必須對(duì)傳統(tǒng)編程技術(shù)進(jìn)行改革,正是在這樣的背景下,國(guó)內(nèi)外許多軟件開發(fā)公司都開始嘗試使用交換編程技術(shù)這種更高效、更合理的新技術(shù)。
2 交換編程技術(shù)簡(jiǎn)介
交換編程技術(shù)實(shí)際上是對(duì)結(jié)對(duì)編程技術(shù)的一種擴(kuò)展和延續(xù),在這種技術(shù)中,由兩位或者多位程序員輪流開發(fā)同一個(gè)軟件系統(tǒng)中同一個(gè)模塊不同階段的任務(wù)。
和結(jié)對(duì)編程技術(shù)一樣,在交換編程技術(shù)中仍然需要多位程序員進(jìn)行交流,共同完成某個(gè)項(xiàng)目階段的任務(wù),但是不需要兩人公用一臺(tái)計(jì)算機(jī),而是采用一人一機(jī)的工作形式,由兩位程序員輪流負(fù)責(zé)同一個(gè)模塊中不同階段的設(shè)計(jì)、編碼和測(cè)試過程,這樣就減少了時(shí)間的浪費(fèi);另外在任務(wù)分工方面,程序員分別負(fù)責(zé)不同階段任務(wù)的完整開發(fā),每一個(gè)階段的設(shè)計(jì)、編碼和測(cè)試過程,都是由一位程序員去執(zhí)行,但是在每個(gè)項(xiàng)目的開發(fā)階段或者迭代階段,需要進(jìn)行多人任務(wù)的輪流交換或者兩人任務(wù)的兩兩交換,這樣既保證了代碼的質(zhì)量,又提高了工作效益。
3 在軟件開發(fā)過程中實(shí)施交換編程技術(shù)的環(huán)境和方法
3.1 實(shí)施環(huán)境
交換編程技術(shù)的適應(yīng)性比較強(qiáng),在項(xiàng)目的規(guī)模上沒有要求,特別是對(duì)項(xiàng)目規(guī)模大,人員臨時(shí)調(diào)動(dòng)頻繁的情況同樣可以適用;另外,在項(xiàng)目開發(fā)團(tuán)隊(duì)的規(guī)模方面,由于在交換編程技術(shù)中,進(jìn)行一次任務(wù)交換至少需要兩個(gè)以上的開發(fā)人員,因此交換編程技術(shù)適用于那些人數(shù)超過兩個(gè)以上的開發(fā)團(tuán)隊(duì),而且在團(tuán)隊(duì)成員中,要求至少有一兩個(gè)具有兩三年以上開發(fā)經(jīng)驗(yàn)的技術(shù)人員,這是對(duì)一般項(xiàng)目最基本的要求。
3.2 實(shí)施方法
在軟件開發(fā)過程中應(yīng)用交換編程技術(shù),需要重點(diǎn)考慮交換周期的設(shè)置。交換周期一般需要根據(jù)實(shí)際項(xiàng)目的開發(fā)過程來設(shè)置,即根據(jù)項(xiàng)目迭代階段或者開發(fā)階段進(jìn)行劃分,階段劃分確定后,在一個(gè)階段內(nèi)至少進(jìn)行一次任務(wù)交換。
對(duì)于一般規(guī)模的項(xiàng)目,建議在軟件工程實(shí)施的各個(gè)迭代階段按照如下的方式進(jìn)行交換編程:
1)在軟件定義過程中,市場(chǎng)調(diào)研和需求分析可以進(jìn)行輪流交換(至少是三個(gè)以上的程序員之間相互交換所開發(fā)的內(nèi)容,如:程序員A的開發(fā)內(nèi)容交給程序員B,程序員B的交給程序員C,程序員C的交給程序員A)。
2)在概要設(shè)計(jì)開發(fā)中,需求分析到概要設(shè)計(jì)進(jìn)行輪流交換。
3)在詳細(xì)設(shè)計(jì)開發(fā)中,概要設(shè)計(jì)到詳細(xì)設(shè)計(jì)進(jìn)行一次輪流交換。
4)編碼實(shí)施啟動(dòng)后,詳細(xì)設(shè)計(jì)到編碼的交換采用兩兩交換(兩個(gè)程序員之間相互交換所開發(fā)的內(nèi)容,僅限于兩人之間),注意這個(gè)時(shí)候不再采用輪流交換[2]。
這里在編碼以前全部采用輪流交換的目的是為了讓更多的人了解項(xiàng)目進(jìn)展的全部?jī)?nèi)容,有利于增加團(tuán)隊(duì)內(nèi)的交流,使更多的人對(duì)項(xiàng)目所開發(fā)的內(nèi)容熟悉,并能讓他們提出自己的觀點(diǎn),也有利于使更多的人從更多的角度來研究某個(gè)系統(tǒng)模塊所需要實(shí)現(xiàn)的功能和用戶需要解決的實(shí)際問題,不會(huì)因?yàn)槟硞€(gè)人的定式思維而出現(xiàn)理解偏差,從而造成對(duì)需求的理解不到位。
詳細(xì)設(shè)計(jì)到編碼的測(cè)試采用兩兩交換,這是因?yàn)榍捌谛枨笠呀?jīng)基本上都穩(wěn)定下來了,這時(shí)候不需要對(duì)用戶需求進(jìn)行更多方面的理解,只需要進(jìn)行實(shí)施并進(jìn)行純粹的編碼工作即可。此時(shí)輪流交換就不存在任何意義,相反只會(huì)影響開發(fā)進(jìn)度。
以上交換編程的方法,是按照迭代階段設(shè)置交換周期的方法,另外,如果以項(xiàng)目開發(fā)階段設(shè)置交換周期的話,我們可以將軟件生存周期的每個(gè)階段再細(xì)分為幾個(gè)小階段,根據(jù)細(xì)分的階段數(shù)量確定進(jìn)行交換編程的人數(shù)(階段數(shù)量的劃分可以根據(jù)階段任務(wù)的規(guī)模和階段的重要性確定,如:對(duì)于一個(gè)普通項(xiàng)目的需求分析階段,我們可以將其細(xì)分為三個(gè)階段,分別由三個(gè)程序員輪流開發(fā))。和按照迭代階段設(shè)置交換周期的原因一樣,在編碼以前的每個(gè)階段,盡量全部采用至少三個(gè)以上程序員輪流交換編程的方式,而在編碼以后的每個(gè)階段,包括編碼階段,只需要采用兩兩交換的方式就可以了。
4 交換編程技術(shù)的價(jià)值
在軟件開發(fā)過程中應(yīng)用交換編程技術(shù),不僅可以節(jié)約各種資源,提高工作效率,而且也能增強(qiáng)代碼的可讀性和可維護(hù)性,保證代碼的質(zhì)量。具體體現(xiàn)如下:
1)避免人力資源的浪費(fèi)
交換編程技術(shù)采用由兩位以上程序員輪流負(fù)責(zé)某個(gè)階段的任務(wù),不會(huì)讓他們?cè)谕粫r(shí)間內(nèi)去做同一件工作,這就節(jié)約了人力資源;而且也不用擔(dān)心在軟件開發(fā)過程中出現(xiàn)的設(shè)計(jì)或代碼問題被隱藏,因?yàn)閮晌怀绦騿T在進(jìn)行任務(wù)交換時(shí)需要交流,這樣不但第二個(gè)程序員會(huì)發(fā)現(xiàn)第一個(gè)程序員設(shè)計(jì)所存在的問題,第一個(gè)程序員也會(huì)主動(dòng)地對(duì)自己的開發(fā)過程和思路進(jìn)行一次完整的重新評(píng)價(jià),從而及時(shí)解決問題。
2)加強(qiáng)團(tuán)隊(duì)內(nèi)部交流
在交換編程技術(shù)中,允許有較多的人參與某個(gè)模塊的前后期分析、設(shè)計(jì)和開發(fā)過程,在項(xiàng)目開發(fā)的每一個(gè)階段都可以找到兩個(gè)以上的人來進(jìn)行討論,加強(qiáng)了團(tuán)隊(duì)內(nèi)部的交流。
3)減少時(shí)間的浪費(fèi)
在交換編程技術(shù)的任務(wù)交換過程中,時(shí)間的浪費(fèi)主要體現(xiàn)在第二位程序員理解前一位程序員的設(shè)計(jì)思路上,但是在一般情況下,出于對(duì)項(xiàng)目統(tǒng)一規(guī)劃的考慮,團(tuán)隊(duì)中所有成員都需要對(duì)項(xiàng)目的整體開發(fā)和各個(gè)階段的任務(wù)有所熟悉,在這種情況下時(shí)間的總體耗費(fèi)相對(duì)較短。
4)提高項(xiàng)目組穩(wěn)定性
在交換編程技術(shù)中,由于一個(gè)模塊需要按照階段數(shù)量進(jìn)行分工,這樣就保證了一個(gè)模塊至少有兩個(gè)人對(duì)其十分熟悉,在后面的開發(fā)過程中,無論哪個(gè)人發(fā)生變動(dòng),隨時(shí)都可以有其它人來接替工作,而不會(huì)對(duì)團(tuán)隊(duì)和開發(fā)進(jìn)度產(chǎn)生較大影響,所有的任務(wù)都能夠很好的延續(xù)下來。
另外,允許有較多的人參與到這個(gè)模塊的前后期開發(fā)中來,系統(tǒng)的架構(gòu)設(shè)計(jì)可以由很多人一同討論出來,所以交換編程技術(shù)適合于沒有絕對(duì)高手的團(tuán)隊(duì)。
5 結(jié)束語(yǔ)
因?yàn)榻粨Q編程技術(shù)的優(yōu)勢(shì),目前國(guó)內(nèi)外許多軟件開發(fā)公司已經(jīng)嘗試應(yīng)用這項(xiàng)新技術(shù)。將來如果條件允許,交換編程技術(shù)還可以和結(jié)對(duì)編程技術(shù)配合起來使用,這將會(huì)使得對(duì)同一個(gè)模塊了解的人數(shù)達(dá)到一般交換編程的兩倍人數(shù),同時(shí)因?yàn)轭l繁的交流,從而更多地降低因?yàn)樯贁?shù)人的考慮偏差造成對(duì)用戶需求理解不足等問題,工作效率會(huì)更高[3]。
參考文獻(xiàn):
[1] 谷秀巖.關(guān)于極限編程理論的研究[J].計(jì)算機(jī)與網(wǎng)絡(luò),2004(Z1):97-99.
熱門標(biāo)簽
編輯技術(shù)論文 編輯人員 編輯部 編輯學(xué) 編輯課程論文 編輯思想 編輯工作 編輯主任 編輯部副主任 編輯網(wǎng)絡(luò) 社區(qū)衛(wèi)生服務(wù) 社區(qū)衛(wèi)生 社區(qū)文化 社區(qū)文化建筑