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

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

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

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

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

3面向對象的四個原則:抽象,繼承,多態(tài),封裝。4抽象概念的理解:對抽象事物的理解;歸納概括;總結事物共同點;進行邏輯思維和推理 java最大特點:簡單,面向對象,可移植,最大限度利用網(wǎng)絡 java與c++區(qū)別:全局變量;goto語句;指針;內存管理;類型轉換;頭文件

7軟件危機: 軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。不僅只軟件不能運行,幾乎所有的軟件都存在這些問題,所包含:如何開發(fā)軟件;如何維護

軟件過程 一系列任務步驟和框架

8軟件工程: 是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經(jīng)濟地開發(fā)出高質量的軟件并有效地維護它,這就是軟件工程。

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

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

14軟件開發(fā)趨勢

開源:兩個作用,社區(qū)和標準的建立。soa:面向服務的體系結構;it治理:公司治理的一部分。

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

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

向對象開發(fā)方法(3)統(tǒng)一軟件開發(fā)過程(4)敏捷軟件開發(fā).軟件的體系結構:一個程序或系統(tǒng)各構件的結

構,他們之間的相互關系及進行設計的原則和指導方針;本質:對復雜事物的抽象; 一定時間內保持穩(wěn)定 三要素:構件的層次結構;構件之間交互方式;數(shù)據(jù)結構

組成元素從靜態(tài)模式轉向動態(tài)模式,組件模塊有被動調用轉向主動調用以適應系統(tǒng)環(huán)境 軟件架構技術:根據(jù)項目情況分析系統(tǒng)行為,設計系統(tǒng)組件,給出構架表示方式,描述構架的各個方面,最后對系統(tǒng)構架進行精化。框架比架構更加具體 數(shù)據(jù)庫設計 方法:(1)屬性主導設計(2)實體主

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

循一定規(guī)范的應用程序結構編寫出來的程序。呈現(xiàn)方式:運行時根據(jù)外部配置文件來定 基本功能:插件注冊,管理和調用 軟件質量定義 明確聲明的功能和性能需求,明

確文檔化過得開發(fā)標準,以及專業(yè)人員開發(fā)的軟件應具有的所有隱含特征 軟件需求是進行質量度量的基礎,軟件質量特性反應了軟件的本質。影響軟件質量的4個方面:開發(fā)技術;人員素

質;成本時間,進度;過程質量 軟件項目管理 為了使軟件項目能夠按照預定的成本,進度,質量順利完成,對成本,人員,進度,質量,風險等進行分析和管理的活動。24 軟件配置: 計算機程序(源代碼和可執(zhí)行程序);

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

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

jdbc工作的四個主要組件 java應用程序,jdbc驅動器管理器、驅動器,數(shù)據(jù)源

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

作業(yè) 1簡述servlet設計中涉及的類和接口

(1)servlet interface: 所有的servlet直接或間接實現(xiàn)這個interface, 它提供安排servlet與客戶端聯(lián)系的方法.最關鍵的方法是service,負責處理servletrequest對象和servletresponse對象。2)httpservlet class: 實現(xiàn)servlet interface,重寫了service方法以區(qū)分請求(常見的http請求類型是get和post),并調用相應的方法來處理(doget、dopost)。

servlet接收來自客戶端的調用請求, 它接收兩個對象: 一個是servletrequest,另外一個是servletresponse。

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

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

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

服務器上,用戶名為sa,密碼為空,請編寫數(shù)據(jù)庫連接dbconnect類,實現(xiàn)數(shù)據(jù)庫的連接、返回連接對象及重載有關的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();

}

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

內部

648軟件開發(fā)介紹

一 dm648介紹

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

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

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

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

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

需準備的安裝軟件 ccs3.3

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

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

建議所有軟件安裝到默認目錄下,安裝完后

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

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

點“開始->所有程序->ti->component manager,修改target content(dsp/bios)->tms320c64xx為當前版本的dsp/bios

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

默認安裝到c:dvsdk_1_11_00_00_dm648目錄下,其中

edma3_lld_1_05_00是edma3驅動包

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

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

圖2-2 2.4仿真器

tds560usb plus

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

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

目前,capture和display模式都采用8bit bt656子模式,pal視頻編碼芯片和解碼芯片也設置為bt656模式。3.2 bt656標準簡介

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

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

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

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

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

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

每個vport對應6個edma事件,分別是

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

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

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

四 應用程序及驅動解析

4.1兩個重要文件

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

圖4-1

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

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

紅圈5 添加bios/dsp的線程

cfg文件包含了庫鏈接路徑信息,使用javascript語言,如圖紅圈6。使用xdc工具編譯cfg文件,生成庫鏈接信息,供c編譯器鏈接庫時使用。cfg文件常鏈接的庫有vport驅動,edma驅動程序。

4.2圖像緩存分配和管理

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

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

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

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

捕獲和顯示驅動的緩存管理方法不同,如下面兩圖4-2和4-3:

圖中藍塊表示應用程序的圖像緩存區(qū),白塊表示驅動程序的圖像緩存區(qū)。

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

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

當應用程序調用fvid_queue()函數(shù)時,將一個空的緩存區(qū)交給驅動程序并加入隊列,如圖(b)到(a)和(e)到(b)。

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

圖4-2

圖像顯示緩存區(qū),初始時只有一個緩沖區(qū)用于顯示,其它緩存區(qū)等待出隊,如圖(a),黃塊表示顯示驅動隊列里準備出隊的緩存區(qū)。顯示驅動程序重復顯示一個緩存區(qū)的圖像。

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

當應用程序調用fvid_exchange()函數(shù)時,應用程序給驅動一個準備顯示的緩存區(qū),從驅動得到一個空的緩存區(qū),相當于同時調用fvid_dequeue()和fvid_queue()函數(shù),如圖(d)到(e)。

圖4-3

4.3 應用程序框架介紹

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

應用程序主要包含三部分:

main函數(shù)

video_preview線程

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

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

dsp/bios支持4種線程:

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

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

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

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

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

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

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

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

第四步調用fvid_dequeue()從capchan和dischan的緩存隊列中各出一個緩存。

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

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

4.4添加圖像處理算法

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

4.5 vport驅動調試方法

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

mini層通過csl層訪問外圍硬件的寄存器,存儲器,中斷資源,如圖4-6。

圖4-6 video_preview應用工程中使用了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目錄下,的依賴工程(dependent projects),如圖4-8,這樣應用工程重新編譯之后就可以同時調試應用工程

和mini driver層。

圖4-8 五 flash芯片燒寫程序

,生成對應的ais文件。

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

準備好ais文件后,加載運行norwrite工程dvsdk_install_dirflashutildm647_8ccsdm648_norwriter,norwriter包含四個步驟:

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

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

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

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

有感于網(wǎng)盤開發(fā)過程

有感于網(wǎng)盤開發(fā)過程..............................................................................................................................1

一、軟件開發(fā)個人體會:.................................................................................................................2

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

三、在開發(fā)中遇到問題應該怎么去解決?......................................................................................2

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

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

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

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

八、網(wǎng)盤項目開發(fā)的最大體會.........................................................................................................4

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

常熟理工學院sig小組

3/28/2013

一、軟件開發(fā)個人體會:

1.軟件領域中的知識在于積累。

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

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

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

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

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

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

三、在開發(fā)中遇到問題應該怎么去解決?

1.2.3.4.不明白就多問,不要自已一直去琢磨。

一個問題如果30分鐘還沒有解決就應該考慮是不是問問別人。一個問題在沒有用過3種以上的方法解決過就不要去問別人。解決問題思路是關鍵:

相信問題總歸有解決的辦法,就算連技術上都沒法實現(xiàn)的問題,相信通過良好的溝通終究也會有解決的方法。

5.解決問題的前提是:理解別人的意思,理解別人的需求,多溝通,及時給客戶反饋信息。

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

1.程序員怎么樣進步最快? - 理論結合實踐

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

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

1.首先要明白解決的問題是什么,理解問題,其次再決定怎么解決這個問題 2.碰到很復雜的問題,我們就簡單想,把問題簡單化,細化到能夠實現(xiàn)為止

常熟理工學院sig小組

3/28/2013

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

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

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

5.其實我覺得開發(fā)人員說實在應該要比使用系統(tǒng)的人更了解系統(tǒng)需求,只有真正徹底的了解了項目的業(yè)務需求,我們才能做真的做好這個項目

六、文檔的重要性

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

小項目沒有文檔關系不大,但如果遇到一個大項目的時候,那這樣的開發(fā)方式就很有問題很危險的。

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

七、我的收獲

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

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

3/28/2013

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

最忙的時候就是我們成長和收獲最多的時候。

八、網(wǎng)盤項目開發(fā)的最大體會

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

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

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

測試,說的直接點就是給軟件找錯誤。

很多人認為發(fā)現(xiàn)錯誤是軟件測試的唯一目的,查找不出錯誤的測試就是沒有價值的測試,實際上我們不這么認為。

我們覺得對開發(fā)人員來說,我們要把測試出來的bug都應該做個分析,知道錯的原因之后,我們就應該在下個項目中防止類似的錯誤發(fā)生,而真正來提高我們開發(fā)的效率。

常熟理工學院sig小組

3/28/2013

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

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

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

謹以此文獻給那個自己為你奉獻3年青春與激情的開發(fā)團隊。還有團隊成員:ppl、yt、yk、tyf、lgl、chl、cdy、cb、dpd。

1、分享第一條經(jīng)驗:“學歷代表過去、能力代表現(xiàn)在、學習力代表未來?!?/p>

其實這是一個來自國外教育領域的一個研究結果。相信工作過幾年、十幾年的朋友對這個道理有些體會吧。但我相信這一點也很重要:“重要的道理明白太晚將抱憾終生!”所以放在每一條,讓剛剛畢業(yè)的朋友們早點看到哈!

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

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

4、詳細制定自己軟件開發(fā)專業(yè)知識學習計劃,并注意及時修正和調整(軟件開發(fā)技術變化實在太快)。請牢記:“如果一個軟件開發(fā)人員在1、2年內都沒有更新過自己的知識,那么,其實他已經(jīng)不再屬于這個行業(yè)了。”不要告訴自己沒有時間。來自時間管理領域的著名的“三八原則”告誡我們:另外的那8小時如何使用將決定你的人生成敗!本人自畢業(yè)以來,平均每天實際學習時間超過2小時。

5、書籍是人類進步的階梯,對軟件開發(fā)人員尤其如此。

書籍是學習知識的最有效途徑,不要過多地指望在工作中能遇到“世外高人”,并不厭其煩地教你。對于花錢買書,我個人經(jīng)驗是:千萬別買國內那幫人出的書!我買的那些家伙出的書,!00%全部后悔了,無一本例外。更氣憤的是,這些書在二手市場的地攤上都很難賣掉?!皳碛袝⒉槐硎緭碛兄R;擁有知識并不表示擁有技能;擁有技能并不表示擁有文化;擁有文化并不表示擁有智慧?!敝挥袑咀兂傻淖约褐腔郏潘闶钦嬲龘碛辛怂?。

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

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

8、養(yǎng)成總結與反思的習慣,并有意識地提煉日常工作成果,形成自己的個人源碼庫、解決某類問題的通用系統(tǒng)體系結構、甚至進化為框架。

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

9、理論與實踐并重,內外雙修。

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

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

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

11、盡量參加開源項目的開發(fā)、或者與朋友共同研制一些自己的產品,千萬不要因為沒有錢賺而不做。

網(wǎng)絡早已不再只是“虛擬世界”,網(wǎng)上有很多的開源項目、合作開發(fā)項目、外包項目,這都是涉獵工作以外的知識的絕好機會,并且能夠結識更廣的人緣。不要因為工作是做erp,就不去學習和了解嵌入式、實時、通信、網(wǎng)絡等方面的技術,反過來也是一樣。如果當他別人拿著合同找你合作,你卻這也不會,那也不熟時,你將后悔莫及。

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

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

13、本文的總結與反思:

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

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

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

全文閱讀已結束,如果需要下載本文請點擊

下載此文檔