喬明中
(常州輕工職業(yè)技術學院,江蘇 常州 213164)
軟件開發(fā)需要大量的開發(fā)人員。軟件公司都愿意招聘具有開發(fā)經(jīng)驗的開發(fā)人員,剛畢業(yè)的大學生,在學校的學習期間更多地關注書本上的理論知識,學與用相互脫節(jié),很少具備實際軟件開發(fā)能力和經(jīng)驗,結果造成一方面IT人才短缺,另一方面卻又是相當一部分大學生求職無門。怎樣采取措施,培養(yǎng)畢業(yè)生的軟件開發(fā)能力,具有十分重要的現(xiàn)實意義。近年來,.NET技術在軟件開發(fā)中占據(jù)極其重要的位置,C#作為一種面向對象的計算機語言,兼?zhèn)銫、C++、Java和Visual Basic等語言的優(yōu)點,是進行.NET開發(fā)的首選語言,使用安全而又相對簡單。
采用面向對象的編程思想。相比結構性的程序,面向對象的程序結構體改稱為類,成員分為公有和私有類型,并且出現(xiàn)類的繼承和多態(tài)。面向對象的編程思想可以讓程序更適合人的思維方法,有助于采用系統(tǒng)分析和軟件工程的方式來完成。
其次,具備團隊合作觀念,重視人與人之間的溝通和理解能力。團隊合作可以完成個人無法獨立完成的大項目,另外集合眾人智慧有利于產(chǎn)生新創(chuàng)意,在很大程度上可以實現(xiàn)優(yōu)勢的互補。團隊中相互交流,在研發(fā)過程中遇到的困難才能最有效、最快地得到解決。
對于一個大型的系統(tǒng)工程來說,在開發(fā)過程中,從開始的需求分析到最終的代碼實現(xiàn)、系統(tǒng)測試,會產(chǎn)生很多文檔,這些文檔要統(tǒng)一規(guī)范,確保在開發(fā)過程高效管理。在該環(huán)節(jié)采用任務實施主體多元化和實施內(nèi)容多樣化的形式。
所謂“分析需求”,是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結果,最后應輸出什么。就是確定要計算機“做什么”,要達到什么樣的效果。很多人認為需求分析是整個軟件工程中最簡單的一個步驟。但實際上,需求分析是整個開發(fā)過程中最關鍵的一個環(huán)節(jié)。如果不能做好需求分析,那么最后的軟件產(chǎn)品很難達滿足顧客的需要,也無法在規(guī)定的時間里完成項目。可把開發(fā)團隊的人員分為兩個小組,分別扮演用戶與項目開發(fā)者角色,站在不同角度共同去分析需求。另外,深入用戶進行調查研究,明確要開發(fā)產(chǎn)品的性能、功能需求等綜合要求。
該階段實質上就是進行系統(tǒng)設計,是把需求轉化為軟件系統(tǒng)的最重要的環(huán)節(jié),設計的優(yōu)劣在根本上決定了軟件系統(tǒng)的質量。
體系結構就是軟件的框架,優(yōu)秀的體系結構意味著穩(wěn)定和高效。最常見的體系結構是層次結構,大部分項目可以用層次結構表示:把事情分為多層,一層一層地去做,每一層次就是一個模塊,高層的工作總是建立在低層的工作之上。分層結構中要處理好相鄰層之間及上下層之間的接口。
剛開始練習編程題時,先把要解決的問題的過程大致分為幾個大步驟,并且把每一步驟用簡練的文字總結出來。然后在每一個大步驟中再細分若干中等步驟,接著再細分??這樣逐步細化,直到細分得到的步驟與計算機編程語言中的某些語句(或功能模塊)的功能一樣或相近為止。把這些解決問題的步驟再適當?shù)剡M行整理、完善和優(yōu)化,就可以得到一個功能比較完整的,具有簡單層次的解決問題的方案,這一過程為設計“程序文檔”。文檔中的每一步,基本對應著程序中的一個或一組語句.文檔中的步驟順序,基本對應著程序的流程。
在軟件開發(fā)的過程中,項目按照模塊化思想拆分成若干個相對獨立的功能模塊,如:變量定義塊、初始化塊、輸入塊、處理塊、輸出塊等。一個大模塊可分為多個獨立的小模塊,一個小模塊的行數(shù)以不超過一個顯示屏幕為準,便于分析程序。整個項目由幾組或幾位開發(fā)人員分別完成,最后合并成為一個大的功能塊。軟件的體系結構設計完成后,各個模塊應應放在體系結構的什么位置、對應什么功能都已經(jīng)確定。習慣上從功能上劃分模塊,保持各個模塊的功能獨立,從而提高模塊的利用率且便于測試和維護。在相對獨立的基礎上確保各個模塊能夠進行信息交流和相互配合,增強在軟件開發(fā)過程中相互配合的團隊意識。
對于劃分好的各個功能模塊,它們之間相對獨立,團隊成員分工合作,設計算法,并將算法軟化為事件、方法的具體任務代碼,編寫、調試可分別進行,然后將代碼合起來。在此過程中主要強調項目實施注意事項,比如,使用公司內(nèi)部的標準文檔樣式,唯一的用詞標準、規(guī)范準確的程序書寫,采用縮進式格式,合理充分地利用注釋語句,增加程序的可讀性,使其他編程者快速準確地了解本程序要解決的問題、解決問題的方法和思路。注意程序錄入的技巧如對成對的符號,不管成對符號之間的內(nèi)容,先輸入成對符號,再輸入成對符號之間的內(nèi)容等。這將能使學生在開發(fā)過程中有效地避免很多不必要的麻煩
一個軟件界面就如同人的外表,影響用戶對軟件的第一印象。象人類追求心靈美和外表美那樣,軟件系統(tǒng)也追求(內(nèi)在的)功能強大和(外表的)界面友好。Microsoft visual stdio工具集成了C#語言的開發(fā)環(huán)境,可以快速地開發(fā)出各種形狀的圖形用戶界面。界面設計中要保持一致性,在尊重用戶習慣的基礎上盡可能采用在相同應用領域中最流行的界面。
眾所周知,一個軟件產(chǎn)品上線運營之前,都要進行嚴格的內(nèi)部測試和公開測試。測試的目的是為了發(fā)現(xiàn)盡可能多的缺陷,并期望通過改錯來把缺陷統(tǒng)統(tǒng)消滅,以期提高軟件的質量。不論是對軟件的模塊還是整個系統(tǒng),總有共同的內(nèi)容要測試,如正確性測試,容錯性測試,性能與效率測試,易用性測試,文檔測試等?!鞍缀袦y試”是指開發(fā)人員從程序內(nèi)部對上述內(nèi)容進行測試,而“黑盒測試”是指獨立的測試人員從程序外部對上述內(nèi)容進行測試。項目測試完畢,可邀請用戶進行驗收。
對于初學者來說,一個項目完成后,要邀請有經(jīng)驗的教師或開發(fā)人員對各個項目的實施情況進行合理的考核與評價,及時發(fā)現(xiàn)存在的問題與不足,快速積累開發(fā)經(jīng)驗,盡快適應企業(yè)需求。
由于.NET技術在軟件開發(fā)中的應用廣泛,容易上手,能有效地解決了大學生畢業(yè)時動手能力弱、實踐經(jīng)驗少,而企業(yè)卻大量需要“拿來即用”型的實戰(zhàn)人才的要害癥結??傊?,樹立良好的軟件開發(fā)思想、熟練掌握和運用C#語言特性進行軟件開發(fā),同時培養(yǎng)良好的溝通能力、自覺的規(guī)范意識、獨立分析問題解決問題的能力,將會使學生掌握良好的專業(yè)核心能力,很快具備行業(yè)認可的通用能力。
[1]韓敬峰.基于Web的高??荚囅到y(tǒng)的設計構思[J].吉林教育學院學報,2010.
[2]張小剛.自行研制軟件系統(tǒng)的可行性[J].中國農(nóng)村教育,2004.
[3]胡曉光.在C語言教學過程中培養(yǎng)學生軟件開發(fā)能力[J].天津市經(jīng)理學院學報,2007.
[4]徐覺元.如何培養(yǎng)學生的軟件開發(fā)經(jīng)驗[J].天津市財貿(mào)管理干部學院學報,2006.
[5]姚麗麗.軟件開發(fā)的測試與改錯探討[J].中國科技縱橫,2011.