2023年軟件開(kāi)發(fā)年終工作總結(jié)(4篇)

格式:DOC 上傳日期:2023-01-12 05:31:30
2023年軟件開(kāi)發(fā)年終工作總結(jié)(4篇)
時(shí)間:2023-01-12 05:31:30     小編:zdfb

總結(jié)是指對(duì)某一階段的工作、學(xué)習(xí)或思想中的經(jīng)驗(yàn)或情況加以總結(jié)和概括的書(shū)面材料,它可以明確下一步的工作方向,少走彎路,少犯錯(cuò)誤,提高工作效益,因此,讓我們寫(xiě)一份總結(jié)吧。寫(xiě)總結(jié)的時(shí)候需要注意什么呢?有哪些格式需要注意呢?以下我給大家整理了一些優(yōu)質(zhì)的總結(jié)范文,希望對(duì)大家能夠有所幫助。

軟件開(kāi)發(fā)年終工作總結(jié)篇一

1軟件開(kāi)發(fā)的本質(zhì):高層概念到低層概念的映射。2.軟件的本質(zhì)特征:構(gòu)造性,演化性

3面向?qū)ο蟮乃膫€(gè)原則:抽象,繼承,多態(tài),封裝。4抽象概念的理解:對(duì)抽象事物的理解;歸納概括;總結(jié)事物共同點(diǎn);進(jìn)行邏輯思維和推理 java最大特點(diǎn):簡(jiǎn)單,面向?qū)ο?,可移植,最大限度利用網(wǎng)絡(luò) java與c++區(qū)別:全局變量;goto語(yǔ)句;指針;內(nèi)存管理;類(lèi)型轉(zhuǎn)換;頭文件

7軟件危機(jī): 軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。不僅只軟件不能運(yùn)行,幾乎所有的軟件都存在這些問(wèn)題,所包含:如何開(kāi)發(fā)軟件;如何維護(hù)

軟件過(guò)程 一系列任務(wù)步驟和框架

8軟件工程: 是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門(mén)工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。

9中間件 定義:是位于平臺(tái)(硬件和操作系統(tǒng))和應(yīng)用之間的通用服務(wù),這些服務(wù)具有標(biāo)準(zhǔn)的程序接口和協(xié)議。目的:提出中間件的概念是為解決分布異構(gòu)問(wèn)題。分類(lèi):基礎(chǔ)中間件;業(yè)務(wù)中間件;領(lǐng)域中間件。構(gòu)件:是系統(tǒng)中實(shí)際存在的可更換部分,它實(shí)現(xiàn)特定的功能,符合一套接口標(biāo)準(zhǔn)并實(shí)現(xiàn)一組接口 組件:組件技術(shù)就是利用某種編程手段,將一些人們所關(guān)心的,但又不便于讓最終用戶(hù)去直接操作的細(xì)節(jié)進(jìn)行了封裝,同時(shí)對(duì)各種業(yè)務(wù)邏輯規(guī)則進(jìn)行了實(shí)現(xiàn),用于處理用戶(hù)的內(nèi)部操作細(xì)節(jié),甚至于將安全機(jī)制和事物機(jī)制體現(xiàn)的淋漓盡致。而這個(gè)封裝體就常常的被我們稱(chēng)作組件。12 軟件生產(chǎn)線:是共享同樣的體系結(jié)構(gòu)和實(shí)現(xiàn)平臺(tái)的軟件系統(tǒng)的集合,它是具有公共的系統(tǒng)需求集的軟件系統(tǒng)。這些需求是針對(duì)一組共享公共的設(shè)計(jì)和標(biāo)準(zhǔn)(或構(gòu)件)的產(chǎn)品族,或者是一類(lèi)特定的行為或任務(wù)。

13操作系統(tǒng)發(fā)展趨勢(shì):操作系統(tǒng)內(nèi)核將呈現(xiàn)多平臺(tái)統(tǒng)一的趨勢(shì)

14軟件開(kāi)發(fā)趨勢(shì)

開(kāi)源:兩個(gè)作用,社區(qū)和標(biāo)準(zhǔn)的建立。soa:面向服務(wù)的體系結(jié)構(gòu);it治理:公司治理的一部分。

15軟件開(kāi)發(fā)技術(shù)趨勢(shì)(1)下一代web開(kāi)發(fā);(2)企

業(yè)應(yīng)用2.0(soa).(3)系統(tǒng)開(kāi)發(fā).(4)開(kāi)發(fā)工具和語(yǔ)言.(5)項(xiàng)目管理及安全 不同的軟件開(kāi)發(fā)方法(1)結(jié)構(gòu)化開(kāi)發(fā)方法(2)面

向?qū)ο箝_(kāi)發(fā)方法(3)統(tǒng)一軟件開(kāi)發(fā)過(guò)程(4)敏捷軟件開(kāi)發(fā).軟件的體系結(jié)構(gòu):一個(gè)程序或系統(tǒng)各構(gòu)件的結(jié)

構(gòu),他們之間的相互關(guān)系及進(jìn)行設(shè)計(jì)的原則和指導(dǎo)方針;本質(zhì):對(duì)復(fù)雜事物的抽象; 一定時(shí)間內(nèi)保持穩(wěn)定 三要素:構(gòu)件的層次結(jié)構(gòu);構(gòu)件之間交互方式;數(shù)據(jù)結(jié)構(gòu)

組成元素從靜態(tài)模式轉(zhuǎn)向動(dòng)態(tài)模式,組件模塊有被動(dòng)調(diào)用轉(zhuǎn)向主動(dòng)調(diào)用以適應(yīng)系統(tǒng)環(huán)境 軟件架構(gòu)技術(shù):根據(jù)項(xiàng)目情況分析系統(tǒng)行為,設(shè)計(jì)系統(tǒng)組件,給出構(gòu)架表示方式,描述構(gòu)架的各個(gè)方面,最后對(duì)系統(tǒng)構(gòu)架進(jìn)行精化??蚣鼙燃軜?gòu)更加具體 數(shù)據(jù)庫(kù)設(shè)計(jì) 方法:(1)屬性主導(dǎo)設(shè)計(jì)(2)實(shí)體主

導(dǎo)設(shè)計(jì); 遵循原則:(1)信息隱藏(2)適當(dāng)冗余(3)慎用外鍵 數(shù)據(jù)一致性:域完整性,實(shí)體完整性,引用完整性,數(shù)據(jù)有效性 插件 定義:系統(tǒng)運(yùn)行時(shí)的功能單元,是一種遵

循一定規(guī)范的應(yīng)用程序結(jié)構(gòu)編寫(xiě)出來(lái)的程序。呈現(xiàn)方式:運(yùn)行時(shí)根據(jù)外部配置文件來(lái)定 基本功能:插件注冊(cè),管理和調(diào)用 軟件質(zhì)量定義 明確聲明的功能和性能需求,明

確文檔化過(guò)得開(kāi)發(fā)標(biāo)準(zhǔn),以及專(zhuān)業(yè)人員開(kāi)發(fā)的軟件應(yīng)具有的所有隱含特征 軟件需求是進(jìn)行質(zhì)量度量的基礎(chǔ),軟件質(zhì)量特性反應(yīng)了軟件的本質(zhì)。影響軟件質(zhì)量的4個(gè)方面:開(kāi)發(fā)技術(shù);人員素

質(zhì);成本時(shí)間,進(jìn)度;過(guò)程質(zhì)量 軟件項(xiàng)目管理 為了使軟件項(xiàng)目能夠按照預(yù)定的成本,進(jìn)度,質(zhì)量順利完成,對(duì)成本,人員,進(jìn)度,質(zhì)量,風(fēng)險(xiǎn)等進(jìn)行分析和管理的活動(dòng)。24 軟件配置: 計(jì)算機(jī)程序(源代碼和可執(zhí)行程序);

描述計(jì)算機(jī)程序的文檔(針對(duì)開(kāi)發(fā)技術(shù)者和用戶(hù)); 數(shù)據(jù)(包含程序內(nèi)部和外部)軟件維護(hù)和軟件配置管理的區(qū)別: 維護(hù)是發(fā)生

在軟件以交付給客戶(hù),并且投資運(yùn)行后的一系列軟件工程活動(dòng);軟件配置管理則是當(dāng)軟件項(xiàng)目開(kāi)始,并且僅僅當(dāng)軟件退出運(yùn)行后在終止的一組跟蹤和控制活動(dòng) 軟件過(guò)程成熟度:指一個(gè)特定的軟件過(guò)程被顯示定義、管理、度量、和能行的程度 javabean開(kāi)發(fā)的三個(gè)階段:構(gòu)造階段,內(nèi)造階段,執(zhí)行階段; 包含的基本元素:屬性,方法,事件 一個(gè)java對(duì)象具有以下特征就可以是javabeans 定制、持久性、通信、反省 簡(jiǎn)單的時(shí)說(shuō)(1)作為一個(gè)類(lèi)必須被聲明為public(2)必須要有g(shù)et/set方法(3)有構(gòu)造函數(shù)但不能有參數(shù) 29 引發(fā)事件 當(dāng)javabean觸發(fā)某個(gè)事件是,javabean講點(diǎn)用該事件的監(jiān)聽(tīng)對(duì)象的響應(yīng)函數(shù) 30 監(jiān)聽(tīng)事件 javabean被添加到某個(gè)類(lèi)改事件的監(jiān)聽(tīng)隊(duì)列中,并且具有該事件的響應(yīng)函數(shù),被監(jiān)聽(tīng)類(lèi)的此事件被激發(fā)時(shí)被監(jiān)聽(tīng)類(lèi)就會(huì)調(diào)用javabean的響應(yīng)函數(shù)

jdbc工作的四個(gè)主要組件 java應(yīng)用程序,jdbc驅(qū)動(dòng)器管理器、驅(qū)動(dòng)器,數(shù)據(jù)源

數(shù)據(jù)源的種類(lèi) 用戶(hù)dns、系統(tǒng)dns 文件dns 33 java多線程的生命周期 新建狀態(tài);就緒狀態(tài)或可運(yùn)行狀態(tài);運(yùn)行狀態(tài)、阻塞狀態(tài)、消亡狀態(tài) 33 j2ee規(guī)定的web曾包括 jsp頁(yè)面、基于web的java applet、以及用于動(dòng)態(tài)生成的html頁(yè)面的servlet構(gòu)成。

作業(yè) 1簡(jiǎn)述servlet設(shè)計(jì)中涉及的類(lèi)和接口

(1)servlet interface: 所有的servlet直接或間接實(shí)現(xiàn)這個(gè)interface, 它提供安排servlet與客戶(hù)端聯(lián)系的方法.最關(guān)鍵的方法是service,負(fù)責(zé)處理servletrequest對(duì)象和servletresponse對(duì)象。2)httpservlet class: 實(shí)現(xiàn)servlet interface,重寫(xiě)了service方法以區(qū)分請(qǐng)求(常見(jiàn)的http請(qǐng)求類(lèi)型是get和post),并調(diào)用相應(yīng)的方法來(lái)處理(doget、dopost)。

servlet接收來(lái)自客戶(hù)端的調(diào)用請(qǐng)求, 它接收兩個(gè)對(duì)象: 一個(gè)是servletrequest,另外一個(gè)是servletresponse。

3)httpservletrequest interface: 概括從客戶(hù)端到服務(wù)器之間的聯(lián)系,實(shí)現(xiàn)該接口的對(duì)象包含了客戶(hù)端的請(qǐng)求信息。

4)httpservletresponse interface: 概括從servlet返回客戶(hù)端的聯(lián)系,實(shí)現(xiàn)該接口的對(duì)象提供了方法,使servlet向客戶(hù)端發(fā)回響應(yīng)。

1.現(xiàn)有數(shù)據(jù)庫(kù)db位于名為lz的ms sql server

服務(wù)器上,用戶(hù)名為sa,密碼為空,請(qǐng)編寫(xiě)數(shù)據(jù)庫(kù)連接dbconnect類(lèi),實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接、返回連接對(duì)象及重載有關(guān)的close()方法。public class dbconnect {

public dbconnect(){

try{

e(“

verdriver”);

}

catch(classnotfoundexception ee){

}

}

public static connection getconn()throws sqlexception{

string url

=

“jdbc:microsoft:sqlserver://lz:1433;databasename=

db”;

string username= “sa”;

string password= "";

return

nection(url,username,password);

}

public static void close(resultset rs){

try{

();

}

catch(exception ex){

}

}

public static void close(statement stmt){

try{

();

}

catch(exception ex){

}

}

public static void close(connection conn){

try{

();

}

catch(exception ex){

}

}

private static dbconnect dbconn = new dbconnect();

}

軟件開(kāi)發(fā)年終工作總結(jié)篇二

內(nèi)部

648軟件開(kāi)發(fā)介紹

一 dm648介紹

dm648屬于ti達(dá)芬奇系列,采用單核c64x+定點(diǎn)cpu,支持最高頻率1.1ghz,有兩個(gè)乘法器支持四個(gè)16bits*16bits(結(jié)果32bits)單個(gè)clock cycle或者八個(gè)8bits*8bits(結(jié)果16bits)單個(gè)clock cycle。還有6個(gè)alu。

648的片上存儲(chǔ)器有l(wèi)1p(32kb),l1d(32kb),l2(512kb)648集成了五個(gè)視頻口vport,省去fpga做fifo,可以節(jié)省產(chǎn)品成本。

648集成了豐富的外設(shè),包括edma(64個(gè)通道),spi,i2c,uart,emif,ddr2,ethernet,gpio(32個(gè)),mcasp,pci。

二 搭建軟件開(kāi)發(fā)環(huán)境 2.1操作系統(tǒng)環(huán)境

win7 32位或win-xp環(huán)境 2.2軟件安裝和配置

需準(zhǔn)備的安裝軟件 ccs3.3

bios3.08 648dvsdk perl bios是ti針對(duì)dsp開(kāi)發(fā)的實(shí)時(shí)嵌入式操作系統(tǒng)。

dvsdk是基于bios系統(tǒng)的視頻開(kāi)發(fā)包。perl是腳本工具,燒寫(xiě)程序時(shí)將out文件轉(zhuǎn)換為ais文件。

建議所有軟件安裝到默認(rèn)目錄下,安裝完后

配置操作系統(tǒng)環(huán)境變量

修改bios_install_dir變量為 c:/ccstudio_v3.3/bios_5_31_08 配置ccs的組件管理器,如圖2-1

點(diǎn)“開(kāi)始->所有程序->ti->component manager,修改target content(dsp/bios)->tms320c64xx為當(dāng)前版本的dsp/bios

圖 2-1 2.3 dvsdk目錄文件介紹

默認(rèn)安裝到c:dvsdk_1_11_00_00_dm648目錄下,其中

edma3_lld_1_05_00是edma3驅(qū)動(dòng)包

examples 包含很多基于bios的示例應(yīng)用工程,我們參考video_preview示例程序作為框架,添加圖像處理算法和通訊驅(qū)動(dòng)。flashutil 包含flash燒寫(xiě)工程norwriter,bootloader程序ubl,ais文件生成腳本

ndk_1_92_00_22_eval 網(wǎng)絡(luò)開(kāi)發(fā)軟件包 pspdrivers_1_10_00 包含了ti提供的很多基于bios系統(tǒng)的驅(qū)動(dòng),我們參考其中vport的驅(qū)動(dòng),將按幀采集修改為按場(chǎng)采集的功能 xdc_2_95_02 xdc工具安裝路徑,xdc是ccs的子工具,是一個(gè)javascript編譯工具,用于編譯cfg文件,cfg文件在后面講。如圖2-2安裝xdc后,會(huì)在工程的編譯選項(xiàng)界面增加xdc選項(xiàng)。

圖2-2 2.4仿真器

tds560usb plus

在ccs setup界面選擇tds560usb plus platform和c64x+ family的dm648。如圖2-3.圖2-3 三 vport+edma工作原理 3.1 vport介紹

dm648集成了五個(gè)vport口,用于視頻輸入輸出,每個(gè)vport可以配置為capture或display模式。capture模式又分為雙通道8bit bt656,單通道16 bit y/c模式。display模式又分為單通道8bit bt656, 單通道16 bit y/c模式。

目前,capture和display模式都采用8bit bt656子模式,pal視頻編碼芯片和解碼芯片也設(shè)置為bt656模式。3.2 bt656標(biāo)準(zhǔn)簡(jiǎn)介

bt656標(biāo)準(zhǔn)將4:2:2格式y(tǒng)cbcr數(shù)據(jù)統(tǒng)一封裝在一個(gè)數(shù)據(jù)流中,按照cbycry順序排列,y的數(shù)據(jù)數(shù)量是cb,cr的2倍。

bt656數(shù)據(jù)流中,ffh和00h保留用于時(shí)序標(biāo)示。在視頻數(shù)據(jù)每行的開(kāi)頭和結(jié)尾有標(biāo)示sav(start of video),eav(end of video)。sav和eav的格式是ffh,00h,00h,xyh,前三個(gè)字節(jié)固定,第四個(gè)字節(jié)包含場(chǎng)標(biāo)示,場(chǎng)消隱狀態(tài)和行消隱狀態(tài),如圖3-1。

圖3-1 3.3 vport fifo 每個(gè)vport有一個(gè)fifo存儲(chǔ)進(jìn)入的數(shù)據(jù)或者從fifo輸出。

bt656 capture模式中,fifo分成a、b兩個(gè)通道,如圖3-2,a通道接收vdin[9-2]管腳的數(shù)據(jù),b通道接收vdin[19-12]管腳的數(shù)據(jù)。每個(gè)通道又分y,cb,cr三個(gè)緩存,每個(gè)緩存區(qū)有獨(dú)立的讀寄存器。

圖3-2 bt656 display模式中,如圖3-3,只有一路輸出,fifo分為y,cb,cr三個(gè)緩存區(qū),每個(gè)緩存區(qū)有獨(dú)立的寫(xiě)寄存器。

圖3-3 vport和edma配合在fifo和外部或片上存儲(chǔ)器之間移數(shù)。我們可以編程fifo的閾值寄存器,當(dāng)fifo達(dá)到設(shè)置滿(mǎn)度(fullness)(對(duì)于捕獲模式)或者低于設(shè)置滿(mǎn)度(對(duì)于顯示模式)時(shí),生成edma事件,觸發(fā)相應(yīng)edma通道移數(shù)。

每個(gè)vport對(duì)應(yīng)6個(gè)edma事件,分別是

vpxyevta,vpxcbevta,vpxcrevta,vpxyevtb,vpxcbevtb,vpxcrevtb 例如,我們用vp0口的a通道做為bt656視頻輸入,vp1口做為bt656視頻輸出。

設(shè)置vp0口a通道y,cb,cr三個(gè)緩存區(qū)的閾值為720,360,360。當(dāng)pal圖像數(shù)據(jù)傳輸完一行后,三個(gè)緩存區(qū)都達(dá)到閾值,生成vp0yevta,vp0cbevta,vp0crevta三個(gè)事件,觸發(fā)對(duì)應(yīng)的三個(gè)edma通道將三個(gè)fifo緩存區(qū)的一行圖像數(shù)據(jù)移入ddr2緩存區(qū)。

設(shè)置vp1口y,cb,cr三個(gè)緩存區(qū)的閾值為720,360,360。當(dāng)三個(gè)緩存區(qū)數(shù)據(jù)數(shù)量低于閾值時(shí),生成vp1yevta,vp1cbevta,vp1crevta三個(gè)事件,觸發(fā)對(duì)應(yīng)的三個(gè)edma通道將ddr2緩存區(qū)的一行圖像數(shù)據(jù)移入三個(gè)fifo緩存區(qū)。

四 應(yīng)用程序及驅(qū)動(dòng)解析

4.1兩個(gè)重要文件

基于bios/dsp系統(tǒng)開(kāi)發(fā)軟件,有兩個(gè)重要工程文件tcf和cfg文件,如圖4-1中紅圈1和2。

圖4-1

tcf文件包含了dsp/bios的配置信息。紅圈3的global settings設(shè)置dsp工作頻率,l1,l2 cache size,大小端,l2 cache 128kb。memory section設(shè)置程序和數(shù)據(jù)各部分在存儲(chǔ)器中的段地址。

紅圈4 hwi(hardware interrupt)處,添加硬件中斷處理函數(shù)

紅圈5 添加bios/dsp的線程

cfg文件包含了庫(kù)鏈接路徑信息,使用javascript語(yǔ)言,如圖紅圈6。使用xdc工具編譯cfg文件,生成庫(kù)鏈接信息,供c編譯器鏈接庫(kù)時(shí)使用。cfg文件常鏈接的庫(kù)有vport驅(qū)動(dòng),edma驅(qū)動(dòng)程序。

4.2圖像緩存分配和管理

edma在vport和sdram之間搬數(shù),cpu要訪問(wèn)sdram最新的圖像數(shù)據(jù),程序采用多個(gè)圖像緩存區(qū)循環(huán)的方式將這兩個(gè)過(guò)程并行化。

應(yīng)用層創(chuàng)建捕獲或顯示通道時(shí),調(diào)用驅(qū)動(dòng)層程序在ddr2分配存放圖像數(shù)據(jù)的緩存區(qū)。分配之前,驅(qū)動(dòng)根據(jù)通道的配置參數(shù)計(jì)算每個(gè)緩存區(qū)的大小。

例如,vp0按場(chǎng)采集,vp1按幀顯示。vp0的每個(gè)緩存區(qū)的大小是720*288*2,vp1的每個(gè)緩存區(qū)的大小是720*576*2。

應(yīng)用程序使用fvid_dequeue()出隊(duì)函數(shù)和fvid_queue()入隊(duì)函數(shù)或fvid_exchange()交換函數(shù),在應(yīng)用程序和驅(qū)動(dòng)程序之間交換圖像緩存區(qū)。

捕獲和顯示驅(qū)動(dòng)的緩存管理方法不同,如下面兩圖4-2和4-3:

圖中藍(lán)塊表示應(yīng)用程序的圖像緩存區(qū),白塊表示驅(qū)動(dòng)程序的圖像緩存區(qū)。

圖像捕獲緩存區(qū),初始時(shí)所有的緩存區(qū)都在捕獲隊(duì)列里,捕獲驅(qū)動(dòng)程序以循環(huán)的方式填充每個(gè)緩存區(qū)。

當(dāng)應(yīng)用程序調(diào)用fvid_dequeue()函數(shù)時(shí),將放有最新圖像數(shù)據(jù)的緩存區(qū)出隊(duì)并返回給應(yīng)用程序,驅(qū)動(dòng)在余下的隊(duì)列里循環(huán)填充,如(a)到(b)和(b)到(e)。

當(dāng)應(yīng)用程序調(diào)用fvid_queue()函數(shù)時(shí),將一個(gè)空的緩存區(qū)交給驅(qū)動(dòng)程序并加入隊(duì)列,如圖(b)到(a)和(e)到(b)。

當(dāng)應(yīng)用程序調(diào)用fvid_exchange()函數(shù)時(shí),應(yīng)用程序交給驅(qū)動(dòng)一個(gè)空的緩存區(qū),驅(qū)動(dòng)交給應(yīng)用程序放有最新圖像的緩存區(qū),相當(dāng)于同時(shí)調(diào)用fvid_dequeue()和fvid_queue()兩個(gè)函數(shù),如圖(b)到(c)和(c)到(d)。

圖4-2

圖像顯示緩存區(qū),初始時(shí)只有一個(gè)緩沖區(qū)用于顯示,其它緩存區(qū)等待出隊(duì),如圖(a),黃塊表示顯示驅(qū)動(dòng)隊(duì)列里準(zhǔn)備出隊(duì)的緩存區(qū)。顯示驅(qū)動(dòng)程序重復(fù)顯示一個(gè)緩存區(qū)的圖像。

當(dāng)應(yīng)用程序調(diào)用fvid_dequeue()函數(shù)時(shí),從驅(qū)動(dòng)獲得一個(gè)緩存區(qū),應(yīng)用程序向它填充顯示數(shù)據(jù),同時(shí)驅(qū)動(dòng)仍然顯示之前的緩存區(qū),如圖(b)和(d)。當(dāng)應(yīng)用程序調(diào)用fvid_queue()函數(shù)時(shí),應(yīng)用程序給驅(qū)動(dòng)程序一個(gè)準(zhǔn)備顯示的緩存區(qū),同時(shí)驅(qū)動(dòng)將它設(shè)置為當(dāng)前的緩存區(qū),如圖(b)到(c)到(d)。

當(dāng)應(yīng)用程序調(diào)用fvid_exchange()函數(shù)時(shí),應(yīng)用程序給驅(qū)動(dòng)一個(gè)準(zhǔn)備顯示的緩存區(qū),從驅(qū)動(dòng)得到一個(gè)空的緩存區(qū),相當(dāng)于同時(shí)調(diào)用fvid_dequeue()和fvid_queue()函數(shù),如圖(d)到(e)。

圖4-3

4.3 應(yīng)用程序框架介紹

基于dvsdk_install_dir/example目錄下的video_preview示例程序,做為項(xiàng)目軟件框架

應(yīng)用程序主要包含三部分:

main函數(shù)

video_preview線程

自添加的中斷處理函數(shù)

許多實(shí)時(shí)dsp應(yīng)用都需要同時(shí)執(zhí)行很多不相關(guān)的功能,這些功能一般是對(duì)外部事件的響應(yīng),這些功能就加線程。

dsp/bios支持4種線程:

(1)硬件中斷(hwi):頻率可達(dá)200khz(5us)(2)軟件中斷(swi):swi允許hwi將一些非關(guān)鍵處理在低優(yōu)先級(jí)上延遲執(zhí)行,這樣可以減少在中斷服務(wù)程序中的駐留時(shí)間。

(3)任務(wù)(tsk):任務(wù)與中斷不同點(diǎn)在于,任務(wù)在執(zhí)行過(guò)程中可以被掛起。

(4)后臺(tái)線程(idl):空閑循環(huán),運(yùn)行那些沒(méi)有執(zhí)行時(shí)間限制的函數(shù)。

上電加載完操作系統(tǒng)內(nèi)核后,首先執(zhí)行main函數(shù)。

main函數(shù)執(zhí)行完后,啟動(dòng)video_preview線程,線程生命期直到執(zhí)行結(jié)束后。此線程主要功能有圖像采集,處理,字符疊加,顯示。

video_preview線程第一步調(diào)用fvid_create()函數(shù)為vp0口創(chuàng)建捕獲通道對(duì)象capchan,初始化vp0寄存器,為vp1口創(chuàng)建顯示通道對(duì)象dischan,初始化vp1寄存器。

第二步調(diào)用fvid_allocbuffer()為capchan和dischan分別分配三個(gè)圖像緩存區(qū),然后調(diào)用fvid_queue()將三個(gè)緩存區(qū)組成隊(duì)列,同時(shí)為capchan和dischan分配edma通道,設(shè)置edma參數(shù)表。

第三步調(diào)用fvid_control()函數(shù)使能vp0,vp1口,vp0開(kāi)始捕獲,vp1開(kāi)始輸出顯示。

第四步調(diào)用fvid_dequeue()從capchan和dischan的緩存隊(duì)列中各出一個(gè)緩存。

第五步 進(jìn)入while(1)循環(huán),在循環(huán)中執(zhí)行兩次fvid_exchange()。fvid_exchange(capchan,pimg1)捕獲新的一場(chǎng)圖像數(shù)據(jù),fvid_exchange(dischan,pimg)顯示新的一幀圖像。捕獲兩次,顯示一次。

fvid_exchange(capchan,pimg1)后面添加圖像處理算法和疊加字符。

4.4添加圖像處理算法

在fvid_exchange(capchan,img)函數(shù)捕獲圖像后添加圖像處理算法。為了減少cpu訪問(wèn)圖像數(shù)據(jù)時(shí)間,將圖像數(shù)據(jù)和訪問(wèn)頻率高的中間數(shù)組放在l2 ram里。dm648 l2的大小512kb,其中128kb用于cache,剩余384kb可用于應(yīng)用程序存放圖像數(shù)據(jù)。

4.5 vport驅(qū)動(dòng)調(diào)試方法

vport驅(qū)動(dòng)采用bios的兩層驅(qū)動(dòng)模型class/mini-driver,bios現(xiàn)在抽象定義了三種class驅(qū)動(dòng),pip/pio,sio/dio,gio,應(yīng)用程序通過(guò)這三類(lèi)bios api接口與mini driver通訊,在一個(gè)應(yīng)用工程中可以同時(shí)使用這三種api 接口。

mini層通過(guò)csl層訪問(wèn)外圍硬件的寄存器,存儲(chǔ)器,中斷資源,如圖4-6。

圖4-6 video_preview應(yīng)用工程中使用了bios gio接口api,如圖4-7是gio和mini spaner層包含的api,fvid函數(shù)是gio api的宏定義,如下:

#define fvid_create(name, mode, status, optargs, attrs)

gio_create(name, mode, status, optargs, attrs)#define fvid_exchange(giochan, bufp)

gio_submit(giochan, fvid_exchange, bufp, null, null)#define fvid_control(giochan, cmd, args)

gio_control(giochan, cmd, args)

圖4-7 vport的mini 在dvsdk_install_dir/pspdriver目錄下,的依賴(lài)工程(dependent projects),如圖4-8,這樣應(yīng)用工程重新編譯之后就可以同時(shí)調(diào)試應(yīng)用工程

和mini driver層。

圖4-8 五 flash芯片燒寫(xiě)程序

,生成對(duì)應(yīng)的ais文件。

ubl(user boot loader)是dsp啟動(dòng)加載器,dsp上電后會(huì)自動(dòng)將ubl代碼從 flash加載到存儲(chǔ)器中,開(kāi)始執(zhí)行ubl,ubl先初始化pll,ddr2,emif,再將video_preview_pal工程從flash加載到存儲(chǔ)器中,然后開(kāi)始執(zhí)行應(yīng)用程序。

準(zhǔn)備好ais文件后,加載運(yùn)行norwrite工程dvsdk_install_dirflashutildm647_8ccsdm648_norwriter,norwriter包含四個(gè)步驟:

(1)設(shè)備初始化,pll,ddr2,emif初始化。(2)擦寫(xiě)flash塊0xa000 0000-0xa002 0000,將ubl二進(jìn)制文件寫(xiě)入該flash塊。

(3)擦寫(xiě)flash塊0xa002 0000-0xa008 0000,將video_preview工程二進(jìn)制文件寫(xiě)入該flash塊。

(4)擦寫(xiě)flash塊0xa060 0000-0xa060 2000,將軸位寫(xiě)入該flash塊

軟件開(kāi)發(fā)年終工作總結(jié)篇三

有感于網(wǎng)盤(pán)開(kāi)發(fā)過(guò)程

有感于網(wǎng)盤(pán)開(kāi)發(fā)過(guò)程..............................................................................................................................1

一、軟件開(kāi)發(fā)個(gè)人體會(huì):.................................................................................................................2

二、做軟件開(kāi)發(fā)我覺(jué)得要明白:.....................................................................................................2

三、在開(kāi)發(fā)中遇到問(wèn)題應(yīng)該怎么去解決?......................................................................................2

四、怎么樣才能提高自身的能力?..................................................................................................2

五、怎么樣才能做好軟件開(kāi)發(fā)?.....................................................................................................2

六、文檔的重要性.............................................................................................................................3

七、我的收獲.....................................................................................................................................3

八、網(wǎng)盤(pán)項(xiàng)目開(kāi)發(fā)的最大體會(huì).........................................................................................................4

九、軟件測(cè)試(單體測(cè)試和連接測(cè)試)..........................................................................................4

常熟理工學(xué)院sig小組

3/28/2013

一、軟件開(kāi)發(fā)個(gè)人體會(huì):

1.軟件領(lǐng)域中的知識(shí)在于積累。

2.做軟件開(kāi)發(fā),就類(lèi)似算數(shù)學(xué)題和世界杯足球賽一樣:重在結(jié)果,而不在乎過(guò)程。3.軟件服務(wù)于人類(lèi),軟件是在解決一些生活中的問(wèn)題和錯(cuò)誤,問(wèn)題決定解決方案。

二、做軟件開(kāi)發(fā)我覺(jué)得要明白:

1.職業(yè)的樂(lè)趣:

(a)用自己的智慧去創(chuàng)建新事物的快樂(lè)(b)開(kāi)發(fā)對(duì)別人有用的東西(c)不斷學(xué)習(xí)來(lái)充實(shí)自己 2.職業(yè)的苦惱:(a)總是追求完美

(b)所有要實(shí)現(xiàn)的功能由他人而定

(c)概念設(shè)計(jì)計(jì)是有趣的,但找bug總是很苦惱的

三、在開(kāi)發(fā)中遇到問(wèn)題應(yīng)該怎么去解決?

1.2.3.4.不明白就多問(wèn),不要自已一直去琢磨。

一個(gè)問(wèn)題如果30分鐘還沒(méi)有解決就應(yīng)該考慮是不是問(wèn)問(wèn)別人。一個(gè)問(wèn)題在沒(méi)有用過(guò)3種以上的方法解決過(guò)就不要去問(wèn)別人。解決問(wèn)題思路是關(guān)鍵:

相信問(wèn)題總歸有解決的辦法,就算連技術(shù)上都沒(méi)法實(shí)現(xiàn)的問(wèn)題,相信通過(guò)良好的溝通終究也會(huì)有解決的方法。

5.解決問(wèn)題的前提是:理解別人的意思,理解別人的需求,多溝通,及時(shí)給客戶(hù)反饋信息。

四、怎么樣才能提高自身的能力?

1.程序員怎么樣進(jìn)步最快? - 理論結(jié)合實(shí)踐

2.不要怕出錯(cuò),不怕遇到錯(cuò)誤,有錯(cuò)誤就有挑戰(zhàn),這樣才可以進(jìn)步,但不要讓同一個(gè)石頭把你絆倒2次。

五、怎么樣才能做好軟件開(kāi)發(fā)?

1.首先要明白解決的問(wèn)題是什么,理解問(wèn)題,其次再?zèng)Q定怎么解決這個(gè)問(wèn)題 2.碰到很復(fù)雜的問(wèn)題,我們就簡(jiǎn)單想,把問(wèn)題簡(jiǎn)單化,細(xì)化到能夠?qū)崿F(xiàn)為止

常熟理工學(xué)院sig小組

3/28/2013

3.出了問(wèn)題,我們要先分析問(wèn)題,然后知道引起問(wèn)題的原因,最后并想出問(wèn)題的解決辦法 4.我們應(yīng)該從2個(gè)方面去把握一個(gè)項(xiàng)目:從業(yè)務(wù)角度和項(xiàng)目的關(guān)鍵問(wèn)題上去把握一個(gè)項(xiàng)目

(a)從不同的系統(tǒng)場(chǎng)景

(b)從不同的用戶(hù)角色(充當(dāng)什么角色)(c)從不同的系統(tǒng)使用角度(擁有那些權(quán)限)

5.其實(shí)我覺(jué)得開(kāi)發(fā)人員說(shuō)實(shí)在應(yīng)該要比使用系統(tǒng)的人更了解系統(tǒng)需求,只有真正徹底的了解了項(xiàng)目的業(yè)務(wù)需求,我們才能做真的做好這個(gè)項(xiàng)目

六、文檔的重要性

記得我當(dāng)初剛開(kāi)發(fā)項(xiàng)目的時(shí)候都是寫(xiě)個(gè)大致的需求說(shuō)明書(shū),做一個(gè)e-r圖,畫(huà)幾個(gè)大致的數(shù)據(jù)流程圖,然后建立數(shù)據(jù)字典和表結(jié)構(gòu)關(guān)系。再接著搭建一個(gè)開(kāi)發(fā)環(huán)境,配置幾臺(tái)服務(wù)器,劃分一下模塊,分工,我們就可以coding了,一直到項(xiàng)目結(jié)束了,也沒(méi)有完整的設(shè)計(jì)文檔,更沒(méi)有完整的測(cè)試文檔,雖然這樣的確是很快的完成了coding工作,感覺(jué)上好像節(jié)省了好多成本和開(kāi)發(fā)時(shí)間,但后期的維護(hù)和bug 就是經(jīng)常出現(xiàn)的事。

小項(xiàng)目沒(méi)有文檔關(guān)系不大,但如果遇到一個(gè)大項(xiàng)目的時(shí)候,那這樣的開(kāi)發(fā)方式就很有問(wèn)題很危險(xiǎn)的。

大項(xiàng)目沒(méi)有文檔: 首先維護(hù)就很麻煩,也很亂,寫(xiě)的代碼,過(guò)幾天都不知道它是完成什么功能的了,其次系統(tǒng)的穩(wěn)定性和可靠性也讓人懷疑,擴(kuò)展性就不用說(shuō)了。

七、我的收獲

a.程序員大多都不喜歡寫(xiě)文檔,我們以前也是特討厭,記得以前都是系統(tǒng)開(kāi)發(fā)完了,為了應(yīng)付項(xiàng)目驗(yàn)收,就匆匆忙忙的一組人在那里補(bǔ)文檔。在我們的思想里,所謂的文檔就是一些廢話,一句話硬是用十句話來(lái)代替的無(wú)聊透頂。b.代碼風(fēng)格要規(guī)范

以前做項(xiàng)目,我們都是不怎么去注意代碼風(fēng)格和寫(xiě)代碼的規(guī)范,都是稍微想一下就直接開(kāi)始寫(xiě)代碼了。注釋也很少用,總感覺(jué)我們自己寫(xiě)的代碼,我們?cè)趺磿?huì)不知道它做了些什么事呢 ?總覺(jué)得我們自己寫(xiě)的代碼我們?cè)趺磿?huì)不知道它是用來(lái)做什么的呢。一直都不相信這是個(gè)事實(shí),但事實(shí)上,項(xiàng)目驗(yàn)收后,系統(tǒng)剛開(kāi)始使用的人少,也就不會(huì)出現(xiàn)潛在的錯(cuò)誤,隨著時(shí)間的增加,久而久之,當(dāng)大量用戶(hù)并發(fā)訪問(wèn)的時(shí)候,系統(tǒng)的bug 就暴漏出來(lái)了,那時(shí)你再用熟悉的eclipse打開(kāi)整個(gè)項(xiàng)目的源碼時(shí),再去看自己寫(xiě)的代碼的時(shí)候,真的發(fā)現(xiàn),我們定義的這個(gè)變量名是什么意思啊 ? 我們的這個(gè)flag 是用來(lái)判斷什么的啊 ?我們的if()中條件不知道是判斷什么? function()也忘記是什么功能了? 想想好可怕啊。難道真的都忘記了嗎 ?回答是肯定的: 真的忘了。c.心得體會(huì): 通過(guò)做該網(wǎng)盤(pán)項(xiàng)目,在這2年的鍛煉中,我們才真的體會(huì)到,良好的文檔是正規(guī)研發(fā)流程中非常重要的環(huán)節(jié),一個(gè)好的程序是先寫(xiě)好設(shè)計(jì)文檔再進(jìn)行編程的,在設(shè)計(jì)文檔的指導(dǎo)下,才能寫(xiě)出安全的代碼。如果你不寫(xiě)文檔,一開(kāi)始就寫(xiě)程序,這樣你就不會(huì)按已設(shè)計(jì)好的路線走,而是想到哪寫(xiě)到哪。小功能還好說(shuō),要是大功能,就容易混亂.常熟理工學(xué)院sig小組

3/28/2013

剛開(kāi)始我們還很不習(xí)慣這一系列的編程風(fēng)格,很多的規(guī)范,尤其是命名,方法和注釋?zhuān)加羞@著很多限制,讓我們覺(jué)得真羅唆,寫(xiě)個(gè)程序完成功能不就可以了嗎,明明1小時(shí)做完的事情非得讓人用3、4個(gè)小時(shí)去做,我們現(xiàn)在真的明白這樣做的好處了,我們已經(jīng)習(xí)慣這樣的編程風(fēng)格了,這也養(yǎng)成了我們的一個(gè)編程習(xí)慣了,深有體會(huì)啊。

最忙的時(shí)候就是我們成長(zhǎng)和收獲最多的時(shí)候。

八、網(wǎng)盤(pán)項(xiàng)目開(kāi)發(fā)的最大體會(huì)

我們覺(jué)得項(xiàng)目開(kāi)發(fā)的開(kāi)始時(shí)候,應(yīng)該由項(xiàng)目負(fù)責(zé)人很好的對(duì)項(xiàng)目是什么項(xiàng)目,具體大概做什么事情,是誰(shuí)提出來(lái)的,目的是解決什么問(wèn)題,以及里面用到的很多專(zhuān)有名詞做個(gè)細(xì)致的說(shuō)明,而不是從一開(kāi)始就分幾本式樣書(shū),給個(gè)靜態(tài)html 的demo看看,然后搭建好開(kāi)發(fā)環(huán)境就按照式樣設(shè)計(jì)書(shū)來(lái)開(kāi)發(fā)。

九、軟件測(cè)試(單體測(cè)試和連接測(cè)試)

我們首先認(rèn)為,編寫(xiě)程序的時(shí)候不要想出了問(wèn)題再解決,而是要想如何不會(huì)出現(xiàn)問(wèn)題,要根據(jù)經(jīng)驗(yàn)來(lái)預(yù)測(cè)可能出現(xiàn)的問(wèn)題,然后避免出現(xiàn)。

測(cè)試,說(shuō)的直接點(diǎn)就是給軟件找錯(cuò)誤。

很多人認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目的,查找不出錯(cuò)誤的測(cè)試就是沒(méi)有價(jià)值的測(cè)試,實(shí)際上我們不這么認(rèn)為。

我們覺(jué)得對(duì)開(kāi)發(fā)人員來(lái)說(shuō),我們要把測(cè)試出來(lái)的bug都應(yīng)該做個(gè)分析,知道錯(cuò)的原因之后,我們就應(yīng)該在下個(gè)項(xiàng)目中防止類(lèi)似的錯(cuò)誤發(fā)生,而真正來(lái)提高我們開(kāi)發(fā)的效率。

常熟理工學(xué)院sig小組

3/28/2013

軟件開(kāi)發(fā)年終工作總結(jié)篇四

想想剛畢業(yè)那年到現(xiàn)在已經(jīng)快三年了,我也是做軟件開(kāi)發(fā)的。學(xué)軟件這一行業(yè),只要你智商不差,懂得總結(jié),基本上都能在一到兩年內(nèi)對(duì)軟件開(kāi)發(fā)有一定的了解。本來(lái)我想寫(xiě)寫(xiě)自己的軟件開(kāi)發(fā)經(jīng)驗(yàn),但是網(wǎng)上找了找,有一篇六年多開(kāi)發(fā)工作經(jīng)歷的朋友分享了一篇自己的軟件開(kāi)發(fā)總結(jié),我推薦給大家學(xué)習(xí)參考。軟件開(kāi)發(fā)年終總結(jié)

本文是自己工作6年的經(jīng)歷沉淀或者經(jīng)驗(yàn)提煉,希望對(duì)所有的軟件工程師們有所幫助,早日實(shí)現(xiàn)自己的人生目標(biāo)。本文主要是關(guān)于軟件開(kāi)發(fā)人員如何提高自己的軟件專(zhuān)業(yè)技術(shù)方面的具體建議,前面幾點(diǎn)旨在確定大的方向,算是廢話吧。

謹(jǐn)以此文獻(xiàn)給那個(gè)自己為你奉獻(xiàn)3年青春與激情的開(kāi)發(fā)團(tuán)隊(duì)。還有團(tuán)隊(duì)成員:ppl、yt、yk、tyf、lgl、chl、cdy、cb、dpd。

1、分享第一條經(jīng)驗(yàn):“學(xué)歷代表過(guò)去、能力代表現(xiàn)在、學(xué)習(xí)力代表未來(lái)?!?/p>

其實(shí)這是一個(gè)來(lái)自國(guó)外教育領(lǐng)域的一個(gè)研究結(jié)果。相信工作過(guò)幾年、十幾年的朋友對(duì)這個(gè)道理有些體會(huì)吧。但我相信這一點(diǎn)也很重要:“重要的道理明白太晚將抱憾終生!”所以放在每一條,讓剛剛畢業(yè)的朋友們?cè)琰c(diǎn)看到哈!

2、一定要確定自己的發(fā)展方向,并為此目的制定可行的計(jì)劃。不要說(shuō)什么,“我剛畢業(yè),還不知道將來(lái)可能做什么?”,“跟著感覺(jué)走,先做做看”。因?yàn)?,這樣的觀點(diǎn)會(huì)通過(guò)你的潛意識(shí)去暗示你的行為無(wú)所事事、碌碌無(wú)為。一直做技術(shù),將來(lái)成為專(zhuān)家級(jí)人物?向管理方向走,成為職業(yè)經(jīng)理人?先熟悉行業(yè)和領(lǐng)域,將來(lái)自立門(mén)戶(hù)?還是先在行業(yè)里面混混,過(guò)幾年轉(zhuǎn)行做點(diǎn)別的?這很重要,它將決定你近幾年、十年內(nèi)“做什么事情才是在做正確的事情!”。

3、軟件開(kāi)發(fā)團(tuán)隊(duì)中,技術(shù)不是萬(wàn)能的,但沒(méi)有技術(shù)是萬(wàn)萬(wàn)不能的!在技術(shù)型團(tuán)隊(duì)中,技術(shù)與人品同等重要,當(dāng)然長(zhǎng)相也比較重要哈,尤其在mm比較多的團(tuán)隊(duì)中。在軟件項(xiàng)目團(tuán)隊(duì)中,技術(shù)水平是受人重視和尊重的重要砝碼。無(wú)論你是做管理、系統(tǒng)分析、設(shè)計(jì)、編碼,還是產(chǎn)品管理、測(cè)試、文檔、實(shí)施、維護(hù),多少你都要有技術(shù)基礎(chǔ)。算我孤陋寡聞,我還真沒(méi)有親眼看到過(guò)一個(gè)外行帶領(lǐng)一個(gè)軟件開(kāi)發(fā)團(tuán)隊(duì)成功地完成過(guò)軟件開(kāi)發(fā)項(xiàng)目,哪怕就一個(gè),也沒(méi)有看到。倒是曾經(jīng)看到過(guò)一個(gè)“高學(xué)歷的牛人”(非技術(shù)型)帶一堆人做完過(guò)一個(gè)項(xiàng)目,項(xiàng)目交付的第二天,項(xiàng)目組成員扔下一句“再也受不了啦!”四分五裂、各奔東西。那個(gè)項(xiàng)目的“成功度”大家可想而知了。

4、詳細(xì)制定自己軟件開(kāi)發(fā)專(zhuān)業(yè)知識(shí)學(xué)習(xí)計(jì)劃,并注意及時(shí)修正和調(diào)整(軟件開(kāi)發(fā)技術(shù)變化實(shí)在太快)。請(qǐng)牢記:“如果一個(gè)軟件開(kāi)發(fā)人員在1、2年內(nèi)都沒(méi)有更新過(guò)自己的知識(shí),那么,其實(shí)他已經(jīng)不再屬于這個(gè)行業(yè)了?!辈灰嬖V自己沒(méi)有時(shí)間。來(lái)自時(shí)間管理領(lǐng)域的著名的“三八原則”告誡我們:另外的那8小時(shí)如何使用將決定你的人生成??!本人自畢業(yè)以來(lái),平均每天實(shí)際學(xué)習(xí)時(shí)間超過(guò)2小時(shí)。

5、書(shū)籍是人類(lèi)進(jìn)步的階梯,對(duì)軟件開(kāi)發(fā)人員尤其如此。

書(shū)籍是學(xué)習(xí)知識(shí)的最有效途徑,不要過(guò)多地指望在工作中能遇到“世外高人”,并不厭其煩地教你。對(duì)于花錢(qián)買(mǎi)書(shū),我個(gè)人經(jīng)驗(yàn)是:千萬(wàn)別買(mǎi)國(guó)內(nèi)那幫人出的書(shū)!我買(mǎi)的那些家伙出的書(shū),!00%全部后悔了,無(wú)一本例外。更氣憤的是,這些書(shū)在二手市場(chǎng)的地?cái)偵隙己茈y賣(mài)掉?!皳碛袝?shū)籍并不表示擁有知識(shí);擁有知識(shí)并不表示擁有技能;擁有技能并不表示擁有文化;擁有文化并不表示擁有智慧?!敝挥袑?shū)本變成的自己智慧,才算是真正擁有了它。

6、不要僅局限于對(duì)某項(xiàng)技術(shù)的表面使用上,哪怕你只是偶爾用一、二次?!皩?duì)任何事物不究就里”是任何行業(yè)的工程師所不應(yīng)該具備的素質(zhì)。開(kāi)發(fā)windows應(yīng)用程序,看看windows程序的設(shè)計(jì)、加載、執(zhí)行原理,分析一下pe文件格式,試試用sdk開(kāi)發(fā)從頭開(kāi)發(fā)一個(gè)windows應(yīng)用程序;用vc++、delphi、java、.net開(kāi)發(fā)應(yīng)用程序,花時(shí)間去研究一下mfc、vcl、j2ee、.net它們框架設(shè)計(jì)或者源碼;除了會(huì)用j2ee、jboss、spring、hibernate等等優(yōu)秀的開(kāi)源產(chǎn)品或者框架,抽空看看大師們是如何抽象、分析、設(shè)計(jì)和實(shí)現(xiàn)那些類(lèi)似問(wèn)題的通用解決方案的。試著這樣做做,你以后的工作將會(huì)少遇到一些讓你不明就里、一頭霧水的問(wèn)題,因?yàn)?,很多東西你“知其然且知其所以然”!

7、在一種語(yǔ)言上編程,但別為其束縛了思想?!按a大全”中說(shuō):“深入一門(mén)語(yǔ)言編程,不要浮于表面”。深入一門(mén)語(yǔ)言開(kāi)發(fā)還遠(yuǎn)遠(yuǎn)不足,任何編程語(yǔ)言的存在都有其自身的理由,所以也沒(méi)有哪門(mén)語(yǔ)言是“包治百病”的“靈丹妙藥”。編程語(yǔ)言對(duì)開(kāi)發(fā)人員解決具體問(wèn)題的思路和方式的影響與束縛的例子俯拾皆是。我的經(jīng)驗(yàn)是:用面對(duì)對(duì)象工具開(kāi)發(fā)某些關(guān)鍵模塊時(shí),為什么不可以借鑒c、c51、匯編的模塊化封裝方式?用傳統(tǒng)的桌面開(kāi)發(fā)工具(目前主要有vc++、delphi)進(jìn)行系統(tǒng)體統(tǒng)結(jié)構(gòu)設(shè)計(jì)時(shí),為什么不可以參考來(lái)自java社區(qū)的ioc、aop設(shè)計(jì)思想,甚至借鑒像spring、hibernate、jboss等等優(yōu)秀的開(kāi)源框架?在進(jìn)行類(lèi)似于實(shí)時(shí)通信、數(shù)據(jù)采集等功能的設(shè)計(jì)、實(shí)現(xiàn)時(shí),為什么不可以引用來(lái)自實(shí)時(shí)系統(tǒng)、嵌入式系統(tǒng)的優(yōu)秀的體系框架與模式?為什么一切都必須以個(gè)人、團(tuán)隊(duì)在當(dāng)然開(kāi)發(fā)語(yǔ)言上的傳統(tǒng)或者經(jīng)驗(yàn)來(lái)解決問(wèn)題???“他山之石、可以攻玉”。

8、養(yǎng)成總結(jié)與反思的習(xí)慣,并有意識(shí)地提煉日常工作成果,形成自己的個(gè)人源碼庫(kù)、解決某類(lèi)問(wèn)題的通用系統(tǒng)體系結(jié)構(gòu)、甚至進(jìn)化為框架。

眾所周知,對(duì)軟件開(kāi)發(fā)人員而言,有、無(wú)經(jīng)驗(yàn)的一個(gè)顯著區(qū)別是:無(wú)經(jīng)驗(yàn)者完成任何任務(wù)時(shí)都從頭開(kāi)始,而有經(jīng)驗(yàn)者往往通過(guò)重組自己的可復(fù)用模塊、類(lèi)庫(kù)來(lái)解決問(wèn)題(其實(shí)這個(gè)結(jié)論不應(yīng)該被局限在軟件開(kāi)發(fā)領(lǐng)域、可以延伸到很多方面)。這并不是說(shuō),所有可復(fù)用的東西都必須自己實(shí)現(xiàn),別人成熟的通過(guò)測(cè)試的成果也可以收集、整理、集成到自己的知識(shí)庫(kù)中。但是,最好還是自己實(shí)現(xiàn),這樣沒(méi)有知識(shí)產(chǎn)權(quán)、版權(quán)等問(wèn)題,關(guān)鍵是自己實(shí)現(xiàn)后能真正掌握這個(gè)知識(shí)點(diǎn),擁有這個(gè)技能。

9、理論與實(shí)踐并重,內(nèi)外雙修。

工程師的內(nèi)涵是:以工程師的眼光觀察、分析事物和世界。一個(gè)合格的軟件工程師,是真正理解了軟件產(chǎn)品的本質(zhì)及軟件產(chǎn)品研發(fā)的思想精髓的人(個(gè)人觀點(diǎn)、歡迎探討)。掌握軟件開(kāi)發(fā)語(yǔ)言、應(yīng)用語(yǔ)言工具解決工作中的具體問(wèn)題、完成目標(biāo)任務(wù)是軟件工程師的主要工作,但從軟件工程師這個(gè)角度來(lái)看,這只是外在的東西,并非重要的、本質(zhì)的工作。學(xué)習(xí)、掌握軟件產(chǎn)品開(kāi)發(fā)理論知識(shí)、軟件開(kāi)發(fā)方法論,并在實(shí)踐中理解、應(yīng)用軟件產(chǎn)品的分析、設(shè)計(jì)、實(shí)現(xiàn)思想來(lái)解決具體的軟件產(chǎn)品研發(fā)問(wèn)題,才是真正的軟件工程師的工作。站在成熟理論與可靠方法論的高度思考、分析、解決問(wèn)題,并在具體實(shí)踐中驗(yàn)證和修正這些思想與方式,最終形成自己的理論體系和實(shí)用方法論。

10、心態(tài)有多開(kāi)放,視野就有多開(kāi)闊。不要抱著自己的技術(shù)和成果,等到它們都已經(jīng)過(guò)時(shí)變成垃圾了,才拿出來(lái)丟人現(xiàn)眼。

請(qǐng)及時(shí)發(fā)布自己的研究成果:開(kāi)發(fā)的產(chǎn)品、有創(chuàng)意的設(shè)計(jì)或代碼,公布出來(lái)讓大家交流或者使用,你的成果才有進(jìn)化和升華的機(jī)會(huì)。想想自己2000年間開(kāi)發(fā)的那些windows系統(tǒng)工具,5、6年之后的今天,還是那個(gè)樣子,今天流行的好多windows系統(tǒng)工具都比自己的晚,但進(jìn)化得很好,且有那么多用戶(hù)在使用。并且,不要保守自己的技術(shù)和思想,盡可能地與人交流與分享,或者傳授給開(kāi)發(fā)團(tuán)隊(duì)的成員?!芭c人交換蘋(píng)果之后,每個(gè)人還是只有一個(gè)蘋(píng)果;但交換思想之后,每個(gè)人都擁有兩種思想”,道理大家都懂,但有多少人真正能做到呢?

11、盡量參加開(kāi)源項(xiàng)目的開(kāi)發(fā)、或者與朋友共同研制一些自己的產(chǎn)品,千萬(wàn)不要因?yàn)闆](méi)有錢(qián)賺而不做。

網(wǎng)絡(luò)早已不再只是“虛擬世界”,網(wǎng)上有很多的開(kāi)源項(xiàng)目、合作開(kāi)發(fā)項(xiàng)目、外包項(xiàng)目,這都是涉獵工作以外的知識(shí)的絕好機(jī)會(huì),并且能夠結(jié)識(shí)更廣的人緣。不要因?yàn)楣ぷ魇亲鰁rp,就不去學(xué)習(xí)和了解嵌入式、實(shí)時(shí)、通信、網(wǎng)絡(luò)等方面的技術(shù),反過(guò)來(lái)也是一樣。如果當(dāng)他別人拿著合同找你合作,你卻這也不會(huì),那也不熟時(shí),你將后悔莫及。

12、書(shū)到用時(shí)方恨少,不要將自己的知識(shí)面僅僅局限于技術(shù)方面。

諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)得主西蒙教授的研究結(jié)果表明: “對(duì)于一個(gè)有一定基礎(chǔ)的人來(lái)說(shuō),他只要真正肯下功夫,在6個(gè)月內(nèi)就可以掌握任何一門(mén)學(xué)問(wèn)?!苯逃睦韺W(xué)界為感謝西蒙教授的研究成果,故命名為西蒙學(xué)習(xí)法。可見(jiàn),掌握一門(mén)陌生的學(xué)問(wèn)遠(yuǎn)遠(yuǎn)沒(méi)有想想的那么高難、深?yuàn)W。多方吸取、廣泛涉獵。極力夯實(shí)自己的影響圈、盡量擴(kuò)大自己的關(guān)注圈。財(cái)務(wù)、經(jīng)濟(jì)、稅務(wù)、管理等等知識(shí),有空花時(shí)間看看,韜光養(yǎng)晦、未雨綢繆。

13、本文的總結(jié)與反思:

a:不要去做技術(shù)上的高手,除非你的目標(biāo)如此。雖然本文是關(guān)于提高軟件開(kāi)發(fā)知識(shí)的建議,做技術(shù)的高手是我一向都不贊同的。你可以提高自己的專(zhuān)業(yè)知識(shí),但能勝任工作即止。b:提高軟件知識(shí)和技術(shù)只是問(wèn)題的表面,本質(zhì)是要提高自己認(rèn)識(shí)問(wèn)題、分析問(wèn)題、解決問(wèn)題的思想高度。軟件專(zhuān)業(yè)知識(shí)的很多方法和原理,可以很容易地延伸、應(yīng)用到生活的其它方面。c:在能勝任工作的基礎(chǔ)上,立即去涉獵其它領(lǐng)域的專(zhuān)業(yè)知識(shí),豐富自己的知識(shí)體系、提高自己的綜合素質(zhì),尤其是那些目標(biāo)不在技術(shù)方面的朋友?!?結(jié)束。

看完這位軟件開(kāi)發(fā)工程師寫(xiě)的年終工作總結(jié)(也是軟件開(kāi)發(fā)經(jīng)營(yíng)總結(jié)),我自己也想說(shuō)兩句,軟件開(kāi)發(fā)最重要的是軟件設(shè)計(jì)思想,我認(rèn)為用什么語(yǔ)言做開(kāi)發(fā)并不重要,因?yàn)楝F(xiàn)在學(xué)習(xí)一門(mén)語(yǔ)言基本上不用了一個(gè)禮拜(網(wǎng)上教程太多了),但最重要的是你對(duì)你要做的軟件有的需求、功能、實(shí)現(xiàn)思路等是否特別清楚,如果你能像做十位數(shù)的加減法那么簡(jiǎn)單的說(shuō)出你的想法,那沒(méi)問(wèn)題了,這個(gè)軟件肯定能做好。

【本文地址:http://www.aiweibaby.com/zuowen/1092719.html】

全文閱讀已結(jié)束,如果需要下載本文請(qǐng)點(diǎn)擊

下載此文檔