編輯軟件范文
時間:2023-04-06 08:23:14
導語:如何才能寫好一篇編輯軟件,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
1、EDIUS。一款非線性編輯軟件,擁有實時、多軌道、多格式混編、合成、色鍵、字幕和時間線輸出功能。
2、會聲會影。一款由加拿大corel公司制作的非線性編輯軟件,具有圖像抓取和編修功能,并提供超過一百多種的編制功能與效果。
3、Premiere。一款由Adobe公司制作的非線性編輯軟件,提供了采集、剪輯、調色、美化音頻、字幕添加、輸出、DVD刻錄的一整套流程,廣泛應用于廣告制作和電視節目制作中。
4、AfterEffects。一款由Adobe公司制作的非線性視頻
(來源:文章屋網 )
篇2
中圖分類號:TP311文獻標識碼:A
文章編號: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是運動圖像專家組(Moving Picture Experts Group)的簡稱,其任務是制定世界通用的視音頻編碼標準。MPEG組織于1994年推出MPEG-2壓縮標準,用以實現視/音頻服務與應用互操作的可能性。MPEG-2標準是針對標準數字電視和高清晰度電視在各種應用下的壓縮方案和系統層的詳細規定,標準的正式規范定義在ISO/IEC13818中。MPEG-2特別適用于廣播級數字電視的編碼和傳送,被認定為SDTV和HDTV的編碼標準。
MPEG-2圖像壓縮的原理是利用圖像中的兩種特性:空間相關性和時間相關性。這兩種相關性使得圖像中存在大量的冗余信息。通過去除冗余信息,只保留少量非相關信息進行傳輸,可以大大節省傳輸頻帶,而接收方利用這些非相關信息,按照一定解碼算法,可以在保證一定的圖像質量的前提下重建原始圖像。
1 MPEG-2編碼方法
MPEG-2視頻流可分為視頻序列層、圖像組層、圖像層、宏塊條層、宏塊層和像塊層共6個層次。各層之間的作用與關系如下:
(1) 視頻序列層(Sequence):一系列圖像組構成一個視頻序列。包含圖像尺寸、寬高比、圖像速率等信息。
(2) 圖像組層(GOP):由相互關聯的一組I,B,P幀組成,I幀為第一幀。GOP頭包括時間信息。
(3) 圖像層(Picture):一系列像條可以構成一幅圖像,圖像分為I,B,P三類,包括圖像編碼類型和時間參考信息。
(4) 宏塊條層(Slice):一連串的宏塊構成一個宏塊條,包括一定數量的宏塊,其順序與掃描順序一致。
(5) 宏塊層(MacroBlock):在4∶2∶2取樣中,一個宏塊由4個亮度像塊,2個Cr像塊和2個Cb像塊構成;另外還有4∶2∶0,4∶4∶4的取樣方式。MPEG-2定義3種宏塊結構,代表構成一個宏塊的亮點像塊和色差像塊的數量關系。
(6) 像塊層(Block):由8×8個像素點構成的DCT變化基本單元。
MPEG-2的編碼圖像被分為三類,分別稱為I幀,P幀和B幀。I幀圖像采用幀內編碼方式,只利用單幀圖像內的空間相關性,而沒有利用連續幀之間的時間相關性。P幀和B幀圖像采用幀間編碼方式,同時利用了空間和時間上的相關性。P幀圖像只采用前向時間預測,可以提高壓縮效率和圖像質量。P幀圖像中可以包含幀內編碼的部分,即P幀中的每一個宏塊可以是前向預測,也可以是幀內編碼。B幀圖像采用雙向時間預測,可以大大提高壓縮倍數。
2 基于MPEG-2視頻流的剪輯方案
2.1 MPEG-2視頻流的構成
MPEG-2視頻流分為程序流和傳輸流兩種編碼方式。通常用于存儲的視頻文件都是由程序流構成的。程序流由組首部、系統首部和PES分組構成,程序流的構成如圖1所示。
組以一個32位(0x00-00-01-BA)碼字開始。組首部包含系統參考時的(SCR)數據,表明了程序流中最后一個解碼單元到達解碼器的預定時間。系統首部僅存在于第一個圖像組中。PES分組由分組首部與分組數據組成。分組的頭部包含有分組長度、時間戳PTS,DTS等關鍵信息。
2.2 剪切點的選擇
一個視頻序列由一個或多個圖像組連接而成。一個圖像組內的編碼序列可能是 I1 B2 B3 P4 B5 B6 P7 B8 B9 I10,而輸出的解碼序列是I1 P4 B2 B3 P7 B5 B6 I10 B8 B9。因此,若當前選取的剪切點在一個圖像組內部,則牽涉到源視頻序列的解碼再編碼過程。一個簡便的方法是將剪切點的起始位置移至一個圖像組的起始處,也就是尋找一個I幀作為程序的切入點。因此一對起終點的選擇方法如下:
(1) 從當前文件之處讀取4個字節,與圖組頭關鍵字group_start_code(0x00-00-01-b3)或序列頭關鍵字(0x00-00-01-ba)進行比較,若相同,則記為合適的剪切點。
(2) 若不相同且當前點為剪切的起點,則從文件中向上讀取一個字節,重復(1)的過程,直到找到一個合適的切入點。
(3) 若不相同且當前點為剪切的終點,則從文件中向下讀取一個字節,重復(1)的過程,直到找到一個合適的切入點。
經過如上的過程,就能夠找到一系列的起終點,使得在每一對起終點的區間內包含完整的圖像信息,可以獨立地從現有幀序列中得到所有的視頻信息。避免了因幀之間存在依賴關系,導致圖像不能正確解碼而生成的馬賽克與拖幀現象。
2.3 時間戳的修正
得到圖像的信息后,由于已經將不需要的圖像信息丟棄,剪輯下來的圖像信息已經不能用原有的時間標記回放,所以要修正保留下來的圖像的時間戳。
PTS,DTS,SCR被用于解碼器中的同步操作。其中PTS(Presentation Timestamp)是一個33位的字節流。表明此分組中第一個訪問單元在系統目標解碼器中的預定顯示時間;DTS(Decoding Time Stamp)也是一個33位的字節流,表示在分組中開始的第一個訪問單元預計在系統目標解碼器中的解碼時間;SCR(System Clock Reference)也是一個33位的字節流,表示系統目標解碼器SCR域最后字節到達所需要的時間,編碼器用數據碼率和90 kHz的時鐘頻率把SCR字節域轉換為SCR值。
將剪切前視頻流首部的時間標志(SCR0,PTS0,DTS0)提取出來,替換剪切后第一段文件相對應的數據,依次修改該段文件中的所有SCR,PTS,DTS,并記下最后一組SCR1,PTS1,DTS1,將它們與SCR0,PTS0,DTS0對應相加,作為剪切后第二段文件的起始SCR,PTS,DTS。重復此過程,直到修改完所有的時間戳標記位。
最后,先將源文件的第一個分組中的系統首部等相關信息提取出來,拼接到剪切后的文件頭部,再給剪切后的文件尾加上結束碼字(0x00-00-01-b9)。
經過以上的過程,一段MPEG-2文件的剪切過程完成。
3 基于DirectShow技術的剪輯方案
3.1 DirectShow簡介
DirectX軟件開發包是微軟公司提供的在Windows操作平臺上開發高性能圖形、聲音、輸入、輸出和網絡游戲的一套編程接口。DirectX被定義為“硬件設備無關性”,可以用與設備無關的方法提供設備相關的高性能。
DirectShow是DirectX中的一套組件,用來處理各種格式媒體文件的回放、音視頻采集等多媒體應用。DirectShow的設計初衷是盡量要讓應用程序開發人員從復雜的數據傳輸、硬件差異、同步性等工作中解脫出來,總體應用框架和底層工作由DirectShow來完成。DirectShow的構成如圖2所示。
DES(DirectShow Editing Services)是一套基于DirectShow核心框架的編程接口,它的出現簡化了視頻編輯任務。DES的系統結構如圖3所示。
基于時間線的模型如圖4所示。
3.3 實現方法
運用DirectShow的DES方法,實現方案如下:
(1) 首先選定待剪切文件上的起點與終點。以時間為標記,記為startpoint,endpoint。
(2) 為目標文件生成一個時間線對象(TimeLine):
IAMTimeline*pTL=NULL;
CoCreatelnstance(CLSID_IAMTimeline,NULL,CLSCTX_INPROC_SERVER,IID_IAMTimeline,(void* *)&pTL);
接下來要將時間線上的視頻組和音頻組的信息填寫完整。
(3) 為時間線對像生成一個組,以視頻組為例,首先生成一個視頻組(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) 為軌道添加視頻時間點和文件信息:
首先,設置時間線上的時間,這個時間是源文件中的時間點在剪切后的文件中出現的時間:
pVideoSrcObj->SetStartStop(startpoint1,endpoint1);
接下來要設置源媒體的時間,這個時間就是想得到的源媒體文件中的視頻信息出現的時間:
pVideoSrcObj->SetMediaTimes(startpoint.endpoint);
還要設置源媒體文件的名字:
pVideoSrcObj->SetMediaName(源媒體文件名)
將信息加入的軌道中:
pVideoTrack->SrcAdd(pVideoSrcObj);
(5) 把時間線對象放入DirectShow回放控制引擎中:
IRenderEngine *pRenderEngine = NULL;
CoCreatelnstance(CLSID_RenderEngine,NULL,CLSCTX_INPROC_SERVER,IID_IRenderEngine,(void**)&pRenderEngine);
pRender->SetTimelineObject(pTL);
pRenderEngine->ConnectFrontEnd( );
(6) 為時間線對象指定輸出信息的壓縮方法。DirectShow默認只支持AVI格式的輸出,因此,要指定一個自己定義的輸出格式,這里選擇一個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) 為時間線對象指定輸出文件:
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) 啟動回放功能:
pGraph->QueryInterface(IID_IMediaControl,(void **)&pControl);
pControl->Run();
回放時,DirectShow會把輸出的數據以MPEG-2的形式輸出到指定的文件中去。
最后,當時間線對象的數據流回放完畢后,所生成的就是剪輯完畢的文件了。
4 結 語
通過對比上述兩種實現方案,可以得出如下結論:
(1) 基于解析MPEG-2文件視頻文件的剪輯方案需要對MPEG-2格式內容進行深入的了解,程序的設計與實現的復雜度很高,而通過DirectShow技術則大大簡化了這種復雜性。
(2) DirectShow本身的開放性框架使得它可以處理更多更復雜的媒體內容,通過給它接上不同的目標輸出控制單元,可以處理更多格式類型媒體文件。
(3) 通過DirectShow框架,設計人員可以從繁雜的背景知識的學習中解脫出來,從而更加專注于視頻的應用處理中,這無疑使它更容易為應用人員所掌握。
參考文獻
[1]陸其明.DirectShow開發指南[M].北京:清華大學出版社,2003.
[2]Microsoft Corporation.DirectX 9.0 Programmerps Reference[CP/DK].2002.
[3]余兆明.MPEG標準及其應用[M].北京:北京郵電大學出版社,2002.
[4]陸其明.DirectShow 實務精選[M].北京:科學出版社,2004.
[5]張勇,羅靜.基于DirectShow的多媒體文件音視頻的重新壓縮[J].現代電視技術,2005(5):87-91.
[6]楊欣穎.非線性視頻編輯技術在多媒體課件制作中的處理與應用[J].文教資料,2006(21):183-184.
[7],曹元大,張磊.基于DirectShow的視頻流媒體存儲系統的設計與實現[J].計算機工程與設計,2003(11):31-33.
[8]胡海峰,陳喜,張文淵,等.DirectShow非線性音頻-視頻編輯應用的實現[J].微計算機應用,2004,25(1):58-63.
篇3
關鍵詞:非線性編輯;軟件技術;節目制作
1非線性編輯系統的綜述
1.1意義
非線性編輯以編輯系統和專業硬件設備為基礎,通過計算機完成視頻編輯工作,然后再按照時間順序開展非線性編輯工作[1]。與傳統的編輯模式相比,非線性編輯的效率更高,工作效率更明顯。
1.2原理
在非線性編輯的開展過程中,首先利用視音頻模擬、錄像機,以及攝像機等進行信號源的采集,在通過計算機實現視音頻處理卡的有效轉換,然后,充分利用計算機數字壓縮技術,將實際轉換過程中所形成的數字信號進行高效整合,最終,將其保存在電腦硬盤中。轉換或者數字解壓縮方式,完成模擬信號的錄制工。
1.3特征
在計算機中實現編輯工作以及以存儲方式代替磁盤,是非線性編輯系統較為明顯的特性。此外,非線性編輯系統也將高效解決了傳統編輯模式中,工作效率偏低以及操作繁瑣的問題。非線性編輯系統明顯增強了視頻的圖像質量,硬盤存儲能有效避免傳統磁帶所出現的磨損,極大程度的改善了視頻失真或者噪音現象。在編輯過程中,SDI技術與分量化采集手段的有效應用,有效解決了信號接收效果差,以及圖像質量不佳的問題。同時,實現了視頻格式的任意轉化。
2非線性編輯軟件技術在電視節目制作中的運用
2.1素材管理
素材管理是全面、高效的編輯功能的重要內容,具體包括了素材存儲、整理、索引、傳輸等。非線性編輯系統的另一個重要功能是批采集處理,具體體現在兩方面。一是一次性選擇多段換面進行打點,節省了大量的時間;二是批采集處理,讓采集過程更加的便捷,進而提高整體的編輯效率。
2.2特技制作
特技制作是編輯系統的重要內容,3D功能與特效的充分融合,是區分系統是否專業的重要標志。在硬件板卡作用下,專業的非線性編輯系統,能對實時預演特技效果與各種特技參數進行及時的修改。非線性編輯系統包含了多種特技類型,具體包括運動特技、鍵控與分層特技,以及過渡特技等。
2.3音頻功能
在完善其它技術要求的前提下,加強對音頻的處理與編輯功能的檢查工作,檢查內容具體包括以下方面,一是能否分別調節聲像位置以及電平;二是波形的顯示速度能否與檢索相匹配;三是是否具備簡單的實時均衡功能;四是音頻數據流的同步方式。最后,確定那種系統與自身的實際條件相匹配。
2.4備份
存儲的局限性是一種現實問題,造成了諸多素材的流失,進而給制作帶來一定的阻力。因此,用戶在素材的存儲過程中,要充分考慮存儲介質的性價比,并充分發揮數據流磁帶對硬盤存儲的輔助作用[2]。
2.5時間線上的編輯
傳統設備需要工作人員充分利用畫面的淡出淡入,將黑白底充分的透出。在特效的制作過程中,實現了畫面之間的緊密銜接,讓畫面更加的流暢。
2.6視頻變速
將時間線設定到固定的位置,選擇“變速到游標”按鈕,能便捷的實現所需的效果。例如,在片花的制作過程中,經常會出現一些快鏡頭的表述,將時間線上前移動,可以讓造成一種急迫感,在播放煙花時,能體現出緩慢綻放的效果,給人極大程度的視覺沖擊。
2.7字幕處理
將字幕層視為視頻軌道,并將其引入到非線性編輯系統中,實現了對字幕多角度的特技處理。具體的特效手段包括拉近式、旋轉式、爆炸式,以及縮放式等。此外,充分突出字幕的顏色效果,帶來不同的視覺感應。例如,紅字與黃字結合,展現出輝煌的感覺;黑字與黃字結合,展現出了高貴與信賴的感覺;白字與藍字的結合,給人以高品質、清爽、干凈、精密的感覺。
2.8聲音采集
在聲音信號的處理上,編輯方式沒有太大的區別,通常從CD上獲取一段音樂,并將其當做素材導人非線性編輯系統中。具體的步驟:利用抓軌軟件,從CD中抓取一段音樂,再匹配系統格式后將其引入系統。非線編輯通常有多個軌道,充分發揮音樂、字幕、解說等元素的整體效果,給人以極大程度的震撼力與感染力。
2.9電視廣告特技
良好的特技效果,不僅能增加廣告的吸引力,還能促進觀眾對畫面信息的理解,充分發揮電視廣告特技的意圖。廣告特技效果只有將情感與視覺體驗充分結合在一起,才能讓特技的成為的應用到廣告中。
篇4
【關鍵詞】C語言;軟件編程;混合編程
引言
傳統上,B語言只有計算機字這一種數據類型,其功能有限、語言簡單,貝爾實驗室歷時多年研究開發的C語言很好地解決了這一缺陷。C語言作為程序員的入門語言,具有上機執行過程簡潔,操作自由的特點。C語言是一種更接近數學的具有較強移植性能力的一種語言,獨特的算法決定了其特點人性化,以便用于多種操作系統。,作為計算機軟件編程中重要的程序設計應用語言,C語言集合了匯編語言的優越性和高級語言的特點。隨著互聯網技術的飛速發展,C語言的運用已經成為計算機軟件編程技術的核心。
1概述
C語言是在B語言的基礎上完善形成的。我們的計算機辯稱人員在使用B語言作為軟件開發的過程中發現B語言其結構過于簡單,而且在編寫程序的過程中靈活性不強,針對于軟件在開發過程中需要應對不同的復雜程序完全不能夠匹配。因此在這些問題下,研發人員經過多次試驗,深入研究計算機編程語言,最終,C語言于1972年被美國貝爾實驗室D.M正式推出。C程序語言是早期的時候在u-nix操作系統中被使用的。1978年以后各種計算機開始對C語言進行使用,C語言既可以對應用程序進行設計,也可以我們在日常計算機工作的語言。經過多年發展,C語言成為低級語言的升級版,而且更多更便捷的后續語言也被研發出來,對軟件開發起到了非常重要的作用。計算機的主要組成語言就是通過C語言來實現的,只有能夠靈活的使用C語言進行程序的編寫才能對計算機軟件的開發起到重要的推動作用。
2C語言編程的主要特點
2.1模塊化思想在我們使用C語言進行軟件編輯的時候,我們因該將每一個大的程序沒款進行分解,通過分解的方式式的大模塊編程小模塊,將每一個小模塊設計完整后,再通過彼此之間確定聯系,從而發展成一個完善的大模塊。2.2函數庫強大在C語言程序編輯的時候,我們所使用的軟件已經建立了一個完整的函數庫,程序眼在編輯過程中不需要再定義相關函數,調用方法是使用系統編輯指令中的“#inClude”指令,搭配著各種相關文件,即可以實現直接進行函數的使用,編譯程序簡化,出錯率也大大降低。2.3指針使用靈活C語言中每一個內存單元都有其相對的地址,我們將變量存放在內存空間中,指針是一種賦值操作,其通過對變量的地址的描述,實現動態的存儲分配。當我們對函數指針進行定義時,需要根據函數指針的名稱、指針所具有的數值和指針所對應的類型去進行指針的選擇。所以當我們在使用指針時,我們先要了解我們所調用的指針后再進行調用。2.4運算范圍廣C語言的34種運算符能夠對運輸結果采用各種不同的表達方式,以此為基礎,C語言的數據可以針對不同計算機軟件開發的數據結構進行運算,正是因為這種原因才使得C語言得以廣泛的使用。2.5移植泛用性由于C語言具備廣泛的移植性能,使得各類不同型號的計算機和操作系統環境都能夠加以應用,基本不需要做任何修正,因此多種不同版本的C語言由此而形成。2.6程序設計有較大自由度使用C語言編寫程序相對而言是比較自由的,因為C語言在其語法限制方面比較小。我們只需要掌握C語言的語法通過合理的構思就可以實現程序的編寫,假如當我們我們編寫程序A-B時,程序員只需直接輸入A、B的值并配合我們所調用的函數,就可以直接進行A-B的運算。
3C語言在軟件編程中需要掌握的技巧
因為C語言具有模塊化特點,在發揮其靈活性和方便性的同時,我們需要提升自身的編程技巧,進一步的對編輯軟件和開發軟件進行提升。3.1合理設置變量數據和運算模式為了滿足計算機軟件編程的條件,我們需要注意使用最小的無符號數據,以減少程序中出現的代碼,進而提升我們計算機編程的效率。在設置運算時我們應該使用定點運算的方式使運算結果更為準確。3.2合理定義變量存貯器類型變量存貯器中所存儲的變量包含了動態變量、靜態變量、寄存器變量和外部變量。當我們使用存貯器時一定要根據程序要求選取不同的存貯器。3.3正確選擇編譯控制指令C語言針對計算機的軟件在進行編程時會提供很多的控制指令,其主要組成是由首要控制指令和一般控制指令,其中我們可以對一般控制指令進行多次的選擇調用,但是首要指令只能放在程序的開頭,以防止因重復而導致停止編譯。3.4使用特有函數因為在編程過程中我們需要經常的使用函數,所以程序員因該根據C語言編輯軟件自帶的函數庫進行合理的選擇,程序員可以通過輸入#include指令”,找到所需要的函數直接進行使用。
4C語言與匯編語言的混合編程方法探析
在使用C語言與匯編語言混合編程時,一定要注重程序的開頭后結尾的模式。當匯編語言調用C語言子程序只需主程序和子程序的格式保持一致。因為C語言和匯編語言所應對的方式不同,所以我們必須將C語言和匯編語言組合在一起進行使用,其中兩者最重要的問題就是如何進行數據的傳遞。所以C語言和匯編語言在組合使用時我們需要注意的是:一是要根據函數的值來確定傳送的方式,二是將程序的反輸入到堆棧,三是通過“ExTERN,”進行函數說明并根據函數來說明身份;四是說明代碼段,并且以“一ETXT’’作為代碼段命名的原則,五通過程序的參數來選取匯編語言,六是兼顧保護寄存器的原則。
5C語言與匯編語言連接的問題研究
C語言和匯編語言進行互連時,我們要注意其中的三個問題:調用關系、解決參數和模塊連接。混邊稱重時我們要注意參數關系對其造成的影響,大多數程序員采用堆棧來尋找錯誤,它的過程是:把BP當做一個寄存器,將C語言反序使用后添加到堆棧中,使用BP將添加的參數數據偏移使用。在確認了他們之間的調用關系后,程序需要對使用函數或者過程進行解釋,然后明確互相的調用關系。特別要注意的是,當我們使用程序時,我們需要對于外部模塊的作用和名字進行介紹。
6結語
當今世界,科學信息技術飛速發展,所以C語言所應用得月越來越多,計算機軟件編程的要求也越來越高。在計算機軟件編程中,匯編語言與C語言的合理使用,大大簡化了編寫過程,提高了軟件的使用效率,C語言對促進科技發展也起到不可替代的作用。
參考文獻
[1]劉秀明.基于C語言的計算機軟件編程實驗研究[J].電子技術與軟件工程,2014(05):263.
[2]李悝.計算機C語言計算機編程實驗研[J].數字技術與應用,2012(11):229.
[3]王晶晶.基于計算機軟件開發的JAVA編程語言分析[J].河南科技,2013(02):17,134.
[4]梁甜.基于C語言的計算機軟件編程分析[J].田電腦編程技巧與維護,2014(22).
篇5
1、聊天變聲器,是一款支持各種聲音效果變化的聲音處理軟件,支持蘋果手機系統,該軟件包含系統預定義的湯姆貓、男聲、女聲、老人、機器人等效果,且支持用戶自定義切換各種聲音效果;
2、蝴蝶結變聲器,是一款支持蘋果手機的變化聲音軟件,用戶可使用該軟件變換多種不同音效的聲音,具有增大或減小特效聲音的音量等功能;
3、變聲器,是一款支持蘋果系統手機的變聲軟件,該軟件提供6種不同的變聲特效和2種背景音,可作為音頻文件分享到相冊,適配簡體中文、繁體、英文,支持應用內自由切換語言;
(來源:文章屋網 )
篇6
關鍵詞:數據庫;計算機軟件工程;編程技術
編程技術其實是辦公實現自動化的重要基礎和關鍵組成部分,因為編程技術不僅能夠支持辦公類各種計算機軟件的正常和運行,還能夠保證辦公電腦硬件設備的安全。也就是說將計算機軟件應用在計算機數據庫之中,不僅能夠最大程度上辦公的工作效率和辦公整體水平,還能夠提升企業的綜合能力和競爭力,從而使企業在金融危機這個大環境下,一直長遠的發展下去。
1計算機軟件工程中數據庫文件的建立
1.1類型比較
數據庫文件的建立一般情況下都要在能夠讀取相關信息的前提下進行,所以在初期準備建立數據庫時,一定要針對數據庫的相關信息來進行有效的對比,而在觀察文件時還要根據信息讀取過程中容易出現的問題來進行選擇建立數據庫文件方式。
1.2建立數據庫
數據庫的創建一般情況下都是在文件類型確定之后才展開的一項工作,而在建立數據庫之后對于數據庫相關信息的訪問權限也會有較大的改變,所以在一般情況下設計都是針對相關功能不夠完善的項目來進行整改,通過更加合理的改善來解決計算機運行過程中出現的各種問題。
2計算機數據庫的概念
計算機數據庫其實就是通過編程技術來進行一系列工作的信息處理系統,其實計算機數據庫出現的根本原因就是因為現如今信息技術發展十分迅速,所以計算機數據庫應運而出,其最大的作用就是能夠為企業構建一個自動化屬性的企業內部信息處理系統,從而最大限度上為企業提供一個計算機數據庫平臺,使辦公人員能夠借助編程技術進行工作,其中包括信息的儲備、更新、維護和傳輸等等。其實從本質上看來,計算機數據庫就是一個對相關信息收集和整理的過程,這種技術十分適用于企業的辦公。
3編程技術在計算機數據庫中的作用
3.1可用性
可用性的提出是為了針對快速恢復故障和平衡負載。當計算機的主接口出現問題時,備份的接口將會自動的代替其進行工作,從而保證網絡能夠有條不紊的運行。而當網絡的數據接受量過大時,備份接口還可以幫助主接口進行數據的接收和發送,從而起到均衡的作用。
3.2信息隱藏性
主體在進行通訊連接時,可以利用計算機的NAT技術系統,來隱藏內網的網址,并且在數據上是以公網的網址訪問的網絡,也就是說企業的用戶可以直接訪問外網的因特網,但是外網的所有網絡都無法進行企業內部網絡查看企業中的任何信息和資源。
3.3身份鑒別
身份鑒別是面向所有用戶進行的驗證程序,計算機的身份鑒別主要是指訪問計算機的身份鑒別和端口計算機的身份鑒別。訪問該計算機的用戶必須通過SSH或者HTTP(HTTPS)的連接,通過輸入用戶和密碼的方式來進行連接和鑒別,并且要保證密碼以私密文件的方式保存在TACACS認證的服務器上,也就是說在計算機數據庫中應用編程技術將能夠最大限度上保證企業辦公信息和數據的安全性。
4計算機數據庫中存在的問題
編程技術和傳統的計算機網絡技術其實都是一樣的,都是對于計算機的使用人員相關網絡信息的總結和整理,只是編程技術要相較于傳統計算機網絡技術來說更加的便捷和方便。但是計算機網絡技術存在著一個至關重要的問題,那就是相關信息的安全性,因為計算機網絡技術依賴于編程技術和網絡,所以編程技術具有容易修改、容易刪除、容易查閱的特點,所以計算機網絡技術中的信息很容易就被人他人進行查閱和修改,缺乏一定程度上的安全性。也正是因為這一問題,所以導致了計算機網絡技術安全信息上的安全隱患。
5數據庫文件的訪問技術改革
5.1給予計算機數據庫硬件支持
企業的工作流程內,計算機占據著其中百分之八十工作量,也就是說要想實現計算機數據庫就必須要將編程技術應用在辦公中。由于計算機數據庫涉及的業務內容較多且相關信息比較繁雜,所以不論是計算機辦公的軟件還是硬件設備都需要編程技術的支持才能夠保證辦公中所有工作的順利進行。計算機數據庫中的特定軟件有很多,其中以設備管理的軟件為主,而支持自動化辦公軟件的系統主要是計算機數據庫、SQLserver2008和Access。
5.2實現辦公軟件自動化
在辦公的文檔管理中應用編程技術,不僅能夠保證使用者在計算機辦公過程中能夠在計算機的網絡平臺進行信息文件的審閱和查看批復,還能夠在網絡信息平臺對文件信息進行審批和修改,這對于辦公來說不僅提升了工作效率,還最大程度上減少了工作量。企業的工作人員在接收到文件之后,可以先將文件錄入在網絡信息平臺內,然后再信息平臺內進行修改和存檔,存檔完畢之后,可以對其進行準確的命名,以便他日查閱文件,并且存檔的工作人員還可以將文件進行加密,針對不同用戶設置訪問權限,從而保證文件的安全性和共享性。
5.3創建全新信息平臺
現如今很多企業都將編程技術應用在企業管理和信息中,其中信息使用的最為廣泛和頻繁,企業信息主要就是利用編程技術創建一個網絡信息平臺,其中最常見的就是電子網絡論壇或者電子公告,在這個網絡信息平臺內,企業可以隨時隨地的公布企業公告和企業交流等等。
6結束語
綜上所述,只有了解了編程技術的全部應用內容,才能夠更好的將編程技術應用在計算機數據庫內,這不僅能夠提升企業的辦公質量,還能夠最大限度上的提升企業的辦公效率,多方位的保障企業辦公所有工作的順利進行,從而最大限度上企業在整個市場環境下的競爭能力。
參考文獻
[1]范麗萍.基于計算機軟件工程的數據庫編程技術[J].電子技術與軟件工程,2017,01(22):164-165.
[2]侯艷輝.礦區生態環境評估及預警實現技術研究[D].山東:山東科技大學,2014.
[3]尤晶晶.工程軟件中VB數據庫編程技術的應用及選擇思路解析[J].電腦編程技巧與維護,2016,04(134):71-72+94.
篇7
隨著電視機數字化程度的提高和功能的增強,電視機軟件升級越來越重要,各種各樣的電視機故障需要軟件升級來解決。而目前電視機軟件升級的方法主要通過專門的軟件燒錄儀將軟件燒錄入存儲器,然后將存儲器焊接到電視機主板上:或者將電腦與電視機相連,通過電腦將升級程序寫入電視機存儲器。這兩種電視機軟件升級的方法存在操作復雜、時間長、成本高,且需要專業性知識等缺陷。
系統原理
便攜式電視機軟件升級系統原理如圖1。電視機軟件升級系統是以單片機W79E632為基礎的可以獨立運行的系統。首先升級系統作為從機接收電腦系統發送過來的升級程序數據并進行存儲、然后升級系統作為主機將存儲的升級程序數據發送給電視機系統,電視機系統將升級程序數據存儲、運行,從而實現軟件升級。
目前電視機的升級接口一般是UART串行接口和I2C接口,該軟件升級系統可以選用兩種接口來升級。電腦系統若沒有這兩個接口,需要通過接口轉換裝置來與升級系統相連。
系統硬件實現
便攜式電視機軟件升級系統硬件框圖如圖2所示。系統主要包括單片機W79E632、FLASH存儲器、UART串口接口電路、I2C接口電路、中斷電路以及狀態指示燈等。
WINBOND公司單片機W79E632具有128k ISP(In-System Program)FLASH ROM、4k的LD (Loader program)FLASH ROM、軟件指令完全與51單片機兼容、執行效率高和速度快等優點。
W79E632有UART串行接口,沒有I2C接口及SPI接口,采用I/O口P8、P9模擬I2C接口,I/O口P4~P7模擬SPI接口。FLASH存儲采用NORFLASH,3.3V供電。由于FLASH是3.3V供電,W79E632 I/O口電平為SV,為保證數據的可靠性,系統有一個5V/3.3VSPI總線轉換電路。
系統自身的引導程序、初始化程序以及UART接口數據讀寫程序、I2C接口數據讀寫程序、SPI接口數據讀寫程序等都放在內部ROM中,FLASH存儲器專門存儲電視機升級程序數據。開關SW2、SW3產生低脈沖來觸發外部中斷INT0、INT1,以控制I2C接口數據的接收和發送:串行接口中斷控制UART接口數據的接收,而SWl產生低脈沖通過I/O口P3控制UART接口數據的發送。升級系統通過W79E632內部定時器以及I/O口p2、p1控制紅/綠指示燈來表達當前狀態,例如紅綠燈都亮,升級系統運行正常,準備讀寫;紅燈亮,綠燈閃動,升級系統正在寫或讀FLASH存儲器。
系統軟件實現
升級系統的軟件實現包括兩部分:作為從機接收并存儲電腦系統發送的電視機升級程序數據和作為主機向電視機系統發送存儲的電視機升級程序數據。
系統主頻設計為22.1184MHz,UART接口采用8位移位寄存器模式,波特率是系統主頻率的1/12,每接收完或發送完一個數據字節將產生中斷:I2C接最高傳輸速率為100kb/s,SPI接口最高傳輸速率為2.2Mb/s。
系統自檢、初始化等程序以1000H為起始地址。上電后直接跳到1000H處,進行初始化設置,建立好堆棧,設置好UART接口、I2C接口以及SPI接口相關參數:紅綠指示燈都亮,允許中斷。此后系統正常運行,等待中斷并監視I/O口P3的狀態,以決定系統是作為主機還是從機進行下一步運作。
作為從機接收并存儲升級程序數據
升級系統作為從機接收并存儲電腦系統發送的電視機升級程序數據,流程如圖3所示
1 系統正常運行,開串口中斷、外部中斷及定時器中斷,等待中斷。
2 從I2C接口接收升級程序數據時,按一下開關SW2,產生外部中斷INTO。屏蔽除定時器中斷外所有的中斷,將與當前狀態相關的寄存器及程序指針數據暫時存入堆棧。同時設置定時器相關參數,使W79E632能夠向I/O口P1發送周期為S00ms的脈沖信號以控制綠燈閃動,表示正在接收數據。串口中斷由W79E632自動產生。如果產生串口中斷,則屏蔽除串口中斷、定時器中斷外所有的中斷,其它設置與INTO中斷相同。
3 產生INT0中斷時,則啟動I2C接口讀程序I2C Read將I/o口緩沖寄存器中的數據寫入W79E632內部RAM;如果產生串行中斷,則啟動串行接口讀程序UART Read。將串行接口寄存器中的數據寫入W79E632內部RAM內,并清除串口接收中斷標志R1,以使下一個數據能準確接收。
4 電腦系統以256字節作為一個數據塊進行發送。每發送完256字節后發送一個累加校驗和進行校驗。W79E632校驗數據有效后,啟動FLASH寫程序SPI Write,將RAM中的256字節數據寫入FLASH;寫完后向電腦系統發送響應信號“RIGHT”,電腦系統繼續發送數據。W79E632判斷下一個字符是否是“結束”字符(即每一個數據塊的第一個字符),不是“結束”字符則繼續接收數據:如果是“結束”字符則啟動SPI Write程序將“結束”字符直接寫入FLASH、然后結束。W79E632校驗后數據無效,則立即向電腦系統發送響應信號“ERROR”,然后結束。
5 結束時,W79E632清除內部RAM、I/O口緩沖寄存器和串行接口寄存器中的數據、將定時器、UART接口或I2C接口恢復為初始狀態,讀出堆棧中保存的數據并寫入相應的寄存器以恢復中斷前狀態;綠燈繼續閃動2S后開中斷,系統恢復正常運行狀態。
作為主機發送升級
程序數據
升級系統作為主機的流程如圖4所示。
1 系統正常運行,開串口中斷、外部中斷及定時器中斷,查詢I/O口P3的狀態,等待中斷。
2 從I2C接口發送存儲的升級程序數據時,按一下開關SW3產生外部中斷INTI。此時設置與產生INT0時相同。如果查詢到P3口有脈沖則屏蔽除串口中斷、定時器中斷外的所有中斷,其他設置與產生INTl中斷相同。
3 W79E632啟動FLASH讀程序SPI_Read,讀取FLASH中存儲的升級程序數據,每次連續讀完256字節存入W79E632的RAM中。W79E632每次存儲數據塊的第一個字符存儲前、判斷是否是“結束”字符。
4 W79E632讀到“結束”字符、表示數據發送完畢,進入結束處理,反之則將通過串口或I2C接口發送數據。如果通過串口發送數據,則啟動UART write將RAM中的數據寫入串行接口寄存器進行發送:如果是I2C接口發送數據,則啟動I2C Write將RAM中的數據寫入I2/o口緩沖器寄存器進行發送。每發送完256字節的數據,W79E632繼續發送一個累加校驗和并等待電視機的響應信號。收到電視機返回的“RIGHT”信號則繼續發送數據,如果收到返回的“ERROR”信號則結束。
5 結束時,W79E632清除內部RAM、I/O緩沖寄存器和串行接口寄存器中的數據,將定時器、UART或I2C接口恢復為初始狀態,讀出堆棧中保存的數據并寫入相應的寄存器以恢復中斷前狀態:綠燈繼續閃動2s后開中斷,系統恢復正常運行狀態。
篇8
一. 計算機軟件行業的現狀
近年來,計算機軟件行業越發崛起,成為有發展潛力的有創新精神和蓬勃生機的年輕行業,得到社會的廣泛關注,得到年輕人的青睞,讓更多人置身于軟件開發行業中。這個行業的發展與外國發展相比還有很大的差距,沒有外國發展的那么迅速。軟件開發行業中很少有資深的人才,許多人都是在這個行業呆了一段時間后轉業或者離開開發前線。一些從經驗中總結得到的技術沒有傳承下來,進而慢慢的被淹沒遺忘。
二.常見的計算機編程語言
(一)C語言
早在上個世紀七十年代到八十年代末期,C語言已經被廣泛應用在生活中,同時小型微機、大型主機也被應用到C程序中,它不僅擁有良好的設計語言,還能為工作系統編制對應的應用程序。在編寫過程中,它不依賴計算機硬件以及相關功能。隨著時間的推移,C語言已經擁有一定的歷史,到現在它仍然被利用,說明它具有極強的生命力。它已經得到了很多人的認可,并且成為現代性編程語言。在計算機開發中,它具有靈活方便、精悍短小等特征,雖然只有9類控制語句、32個關鍵性詞語,但是它能將高級語言的語句、基本構造以及低級語言有機的整合起來。另外,它還能計算機進行字節、單元位以及選址工作。由于數據模型豐富,具有整型、實型、數組型、字符型、構造型以及共用體類型,在豐富的數據來行中,它為計算機軟件成本提供了良好的運算過程,從而逐步提升運作效率。
它具有34種運算符號,在賦值、括號都能被C語言利用的過程中,具有表達方式靈活等特征,通過生成質量有保障目標代碼,從而不斷提高執行效率。除此之外,它還能直接訪問物理區域,對軟件開發進行實時性開發,它允許對物理地址進行訪問,具有表達能力好、移植性好等特征,幾乎所有的軟件商都會裝有C語言。
(二)C++與VC++
從目前的計算機軟件開發來看,視覺窗口已經讓圖像成為標準,但是運用C語言具有很大的難度。在C語言的基礎上,通過革新與創造,開發了C++,它不僅具有C語言的特征,還對C語言進行了大量的知識擴充。C++的功能是,通過多種編程范式、程序設計以及類型檢查,讓其不僅適用于程序設計,還被公認為是擁有混合性程序設計的語言,通過該程序能便捷的設置窗口。在微軟的高功能地位中,VC++只要微軟在C++語言的基礎上,都能加快計算機軟件開發以及利用步驟。
(三)Access與Visual Basic
在計算機軟件開發與編程中,Visual Basic主要包括事件驅動以及環境開發等編程語言,這個程序也是目前使用量最多的程序。GUI圖形用戶與RAD快速應用都是VB編程語言的應用功能。在計算機軟件開發中,數據庫作為一項不可缺少的語言。SQL機構化查詢已經成為數據庫使用最頻繁的語言,VB可圖像操作為其提供了良好的數據庫功能。另外,它還在內部設置了SQL結構查詢語言,和VC++比較,VB更加方便。而Access并聯式數據庫管理則主要運用在小型數據庫中,并且具有強大的功能。通過Visual Basic語言工具不僅能讓VB與VBA產生良好的協作關系,還能讓VB語言更好的應用在軟件開發中。
(四)Java語言
在計算機軟件開發中,運用Java語言避免了C++與C+語言在軟件開發中的困難,能夠將單機的軟件開發編程對應的網絡模式。它和普通的語言開發以及應用相比,它的工作原理是將代碼翻譯成二進制節碼,而不是利用多種平臺的機器對其翻譯。這樣,也就展示了一次翻譯、執行的編程特性。在字節翻譯的環境下,它也會縮短Java運行效率。在語法利用上,它和C++、C+類似,但是也在它們的基礎上進行了發展,沒有多繼承、操作符重載等特征。根據封裝性、繼承性、多態性等語言特征,在提供接口、原語繼承的同時,使用各種接口,確保多重功能順利完成。另外,Java還具有移植性、通用性、高效性、安全性等特征,已經廣泛應用于互聯網、數據處理、游戲控制與手機中,綜合Java特點,它具有廣闊的應用前景與優勢。
三.原則
(一).整體結構
開發項目的整理結構決定了用什么樣的開發軟件,使用什么樣的編程語言,整個系統是由多個部分組成,并不是說整個系統都必須要使用同一種編程語言進行編寫,編程語言的選擇應該依據項目功能而定。對于成本投入較大的操作,如:圖形渲染、密碼學、視頻處理以及信號處理等,程序員要認真考慮,盡量用一些靜態類型的語言。
(二)盡量使用最為熟悉的語言
熟練掌握的語言能夠運用在開發軟件方面的話,可以節省大量的時間,并且能夠對軟件工程項目時間表進行準確預測,及時完工。此外,熟悉的語言可以創新,如,開發的軟件是偏重復處理手工勞動時, 就可以根據實際情況選擇簡單、靈活的編程語言,尤其是選擇那些自身就具備相應功能的編程語言。
(三)充分考慮硬件環境
硬件環境是軟件開發的基礎,所有軟件編程語言都應該適應硬件環境,所以軟件開發過程中要考慮外部硬件環境。
通常情況下,編程語言適應了目前版本的硬件環境,但隨著硬件設備的更新,當前的軟件可能就不適應了,不匹配的問題仍然存在。
因此,在程序開發以前要選擇適應環境的編程語言,這樣編出來的程序就能夠長時間較好地運行。只有這樣才能確保任何編程語言編出來的開發軟件都能夠實現并能夠快速調整,因此,快速原型是很重要的,動態語言在這方面表現出了突出的優點,可以和很多相關庫進行結合。
(四)語言的選擇要考慮是否支持平臺
支持平臺也是在編程語言選擇過程中需要考慮的因素。
例如:在瀏覽器中運行的程序語言,根據語言是否適應就可以有選擇的使用一些語言。平臺是一個大環境,所有操作都應該適應于平臺,一些程序開發過程中,程序語言的格式決定了要涉及大量的位操作,此時,要充分考慮大量的位操作是否給軟件開發帶來困難,是否可以避免大量的工作,如果必須要進行大量的位操作,那就應該選擇那些具有容易位操作而且可以提供合適數據類型等特點的編程語言。
同時, 在一些特殊領域,程序員應該使用專業的編程語言,因為這些程序語言具有很強的針對性,使用起來既能夠節省很多的工作時間,還可以防止編程出現較大的失誤。
四.結語:
編程語言是計算機軟件開發的靈魂,它決定了我們所開發軟件的效果。而編程語言的選擇則是計算機軟件開發的重要環節,選擇了合適的編程語言進行編寫,不僅能夠很好的提高編程效率也提高了計算機軟件的效率。選擇合適的編程語言進行編寫并不是一件簡單的事,所以我們要在編程語言的選擇上不斷的進行探究,豐富及強化自身的知識,進行探索。如果不這樣的話,就很難在復雜而系統的計算機軟件開發中嶄露頭角,在競爭激烈的計算機軟件行業中占有一席之地。
篇9
1、YY語音。
2、AudioRetoucher。
3、野狼音效軟件。
4、Wavosaur。
5、音頻k歌伴侶。
6、方訊音頻剪輯。
7、ocenaudio。
8、k歌音效軟件。
9、小丸工具箱。
篇10
關鍵詞:結對編程;交換編程;交換周期;迭代階段;輪流交換
中圖分類號:TP311文獻標識碼:A文章編號: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 引言
在傳統的軟件開發過程中,通常采用兩種編程技術:第一種是獨立編程技術,即在軟件開發過程中,將一個項目按照功能分成若干個模塊,由一個開發者獨立完成一個模塊的需求分析、設計、編碼和單元測試階段,然后將結果再交給第二個人進行另一個模塊的開發和測試,在這種編程技術中,開發人員獨立進行各個模塊的開發和設計,人員之間缺少交流,開發出來的產品在質量上和功能上都不夠完備;第二種是結對編程技術,即在軟件開發過程中,由兩位編程人員共同坐在同一臺計算機前,合作完成一個模塊中某一個階段的設計、編碼和測試[1],在這種編程技術中,雖然加強了開發人員之間的交流,提高了代碼質量,但是,卻會造成人力資源的浪費,而且在項目開發團隊中,如果技術人員比較少,或者開發人員頻繁變動,都會對項目的進展產生較大的影響。
為了提高軟件開發的質量和效率,合理利用各種資源,就必須對傳統編程技術進行改革,正是在這樣的背景下,國內外許多軟件開發公司都開始嘗試使用交換編程技術這種更高效、更合理的新技術。
2 交換編程技術簡介
交換編程技術實際上是對結對編程技術的一種擴展和延續,在這種技術中,由兩位或者多位程序員輪流開發同一個軟件系統中同一個模塊不同階段的任務。
和結對編程技術一樣,在交換編程技術中仍然需要多位程序員進行交流,共同完成某個項目階段的任務,但是不需要兩人公用一臺計算機,而是采用一人一機的工作形式,由兩位程序員輪流負責同一個模塊中不同階段的設計、編碼和測試過程,這樣就減少了時間的浪費;另外在任務分工方面,程序員分別負責不同階段任務的完整開發,每一個階段的設計、編碼和測試過程,都是由一位程序員去執行,但是在每個項目的開發階段或者迭代階段,需要進行多人任務的輪流交換或者兩人任務的兩兩交換,這樣既保證了代碼的質量,又提高了工作效益。
3 在軟件開發過程中實施交換編程技術的環境和方法
3.1 實施環境
交換編程技術的適應性比較強,在項目的規模上沒有要求,特別是對項目規模大,人員臨時調動頻繁的情況同樣可以適用;另外,在項目開發團隊的規模方面,由于在交換編程技術中,進行一次任務交換至少需要兩個以上的開發人員,因此交換編程技術適用于那些人數超過兩個以上的開發團隊,而且在團隊成員中,要求至少有一兩個具有兩三年以上開發經驗的技術人員,這是對一般項目最基本的要求。
3.2 實施方法
在軟件開發過程中應用交換編程技術,需要重點考慮交換周期的設置。交換周期一般需要根據實際項目的開發過程來設置,即根據項目迭代階段或者開發階段進行劃分,階段劃分確定后,在一個階段內至少進行一次任務交換。
對于一般規模的項目,建議在軟件工程實施的各個迭代階段按照如下的方式進行交換編程:
1)在軟件定義過程中,市場調研和需求分析可以進行輪流交換(至少是三個以上的程序員之間相互交換所開發的內容,如:程序員A的開發內容交給程序員B,程序員B的交給程序員C,程序員C的交給程序員A)。
2)在概要設計開發中,需求分析到概要設計進行輪流交換。
3)在詳細設計開發中,概要設計到詳細設計進行一次輪流交換。
4)編碼實施啟動后,詳細設計到編碼的交換采用兩兩交換(兩個程序員之間相互交換所開發的內容,僅限于兩人之間),注意這個時候不再采用輪流交換[2]。
這里在編碼以前全部采用輪流交換的目的是為了讓更多的人了解項目進展的全部內容,有利于增加團隊內的交流,使更多的人對項目所開發的內容熟悉,并能讓他們提出自己的觀點,也有利于使更多的人從更多的角度來研究某個系統模塊所需要實現的功能和用戶需要解決的實際問題,不會因為某個人的定式思維而出現理解偏差,從而造成對需求的理解不到位。
詳細設計到編碼的測試采用兩兩交換,這是因為前期需求已經基本上都穩定下來了,這時候不需要對用戶需求進行更多方面的理解,只需要進行實施并進行純粹的編碼工作即可。此時輪流交換就不存在任何意義,相反只會影響開發進度。
以上交換編程的方法,是按照迭代階段設置交換周期的方法,另外,如果以項目開發階段設置交換周期的話,我們可以將軟件生存周期的每個階段再細分為幾個小階段,根據細分的階段數量確定進行交換編程的人數(階段數量的劃分可以根據階段任務的規模和階段的重要性確定,如:對于一個普通項目的需求分析階段,我們可以將其細分為三個階段,分別由三個程序員輪流開發)。和按照迭代階段設置交換周期的原因一樣,在編碼以前的每個階段,盡量全部采用至少三個以上程序員輪流交換編程的方式,而在編碼以后的每個階段,包括編碼階段,只需要采用兩兩交換的方式就可以了。
4 交換編程技術的價值
在軟件開發過程中應用交換編程技術,不僅可以節約各種資源,提高工作效率,而且也能增強代碼的可讀性和可維護性,保證代碼的質量。具體體現如下:
1)避免人力資源的浪費
交換編程技術采用由兩位以上程序員輪流負責某個階段的任務,不會讓他們在同一時間內去做同一件工作,這就節約了人力資源;而且也不用擔心在軟件開發過程中出現的設計或代碼問題被隱藏,因為兩位程序員在進行任務交換時需要交流,這樣不但第二個程序員會發現第一個程序員設計所存在的問題,第一個程序員也會主動地對自己的開發過程和思路進行一次完整的重新評價,從而及時解決問題。
2)加強團隊內部交流
在交換編程技術中,允許有較多的人參與某個模塊的前后期分析、設計和開發過程,在項目開發的每一個階段都可以找到兩個以上的人來進行討論,加強了團隊內部的交流。
3)減少時間的浪費
在交換編程技術的任務交換過程中,時間的浪費主要體現在第二位程序員理解前一位程序員的設計思路上,但是在一般情況下,出于對項目統一規劃的考慮,團隊中所有成員都需要對項目的整體開發和各個階段的任務有所熟悉,在這種情況下時間的總體耗費相對較短。
4)提高項目組穩定性
在交換編程技術中,由于一個模塊需要按照階段數量進行分工,這樣就保證了一個模塊至少有兩個人對其十分熟悉,在后面的開發過程中,無論哪個人發生變動,隨時都可以有其它人來接替工作,而不會對團隊和開發進度產生較大影響,所有的任務都能夠很好的延續下來。
另外,允許有較多的人參與到這個模塊的前后期開發中來,系統的架構設計可以由很多人一同討論出來,所以交換編程技術適合于沒有絕對高手的團隊。
5 結束語
因為交換編程技術的優勢,目前國內外許多軟件開發公司已經嘗試應用這項新技術。將來如果條件允許,交換編程技術還可以和結對編程技術配合起來使用,這將會使得對同一個模塊了解的人數達到一般交換編程的兩倍人數,同時因為頻繁的交流,從而更多地降低因為少數人的考慮偏差造成對用戶需求理解不足等問題,工作效率會更高[3]。
參考文獻:
[1] 谷秀巖.關于極限編程理論的研究[J].計算機與網絡,2004(Z1):97-99.