時間:2022-04-03 09:46:46
序論:在您撰寫軟件開發(fā)論文時,參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的1篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
提要
本文結(jié)合筆者實際工作經(jīng)驗,分析了國內(nèi)給排水專業(yè)CAD軟件開發(fā)及應(yīng)用現(xiàn)狀,探討了給排水CAD軟件開發(fā)的原則、思路、方法及步驟等,并給出了開發(fā)實例。
一、給排水專業(yè)CAD開發(fā)應(yīng)用現(xiàn)狀
在工程設(shè)計行業(yè),CAD技術(shù)的應(yīng)用大大提高了設(shè)計及繪圖效率。CAD應(yīng)用軟件的開發(fā)也越來越重要。
在給排水設(shè)計領(lǐng)域,CAD開發(fā)應(yīng)用起步較晚。有些設(shè)計院從八十年代末開始嘗試進(jìn)行CAD開發(fā),但進(jìn)展比較慢,多數(shù)是圖塊和小型實用程序,在深度和廣度上都存在著差距。從1993年以后給排水CAD開發(fā)步伐開始加快。1994年底全國給排水學(xué)會和給排水技術(shù)情報網(wǎng)組織召開了“計算機技術(shù)在給排水專業(yè)應(yīng)用研討會”,對給排水軟件開發(fā)起了積極的促進(jìn)作用。
目前在給排水CAD開發(fā)方面已經(jīng)取得了可喜的成績,尤其是建筑室內(nèi)給排水方面涌現(xiàn)出一些比較優(yōu)秀的給排水CAD軟件,如洛陽的一家軟件和北京的幾家軟件。這些軟件都具有計算機輔助設(shè)計建筑給排水平面圖、自動生成系統(tǒng)圖、自動統(tǒng)計材料表;進(jìn)行室外給排水管網(wǎng)計算、自動生成圖形等功能,其中個別軟件已在室外設(shè)計和泵房設(shè)計等方面有了新的進(jìn)展。
現(xiàn)有軟件都偏重于民用建筑給排水方面,而且也有待于繼續(xù)完善、發(fā)展。在給排水的其它領(lǐng)域,由于難度大,投資回報較低,軟件公司還不愿涉足,所以進(jìn)展緩慢。應(yīng)用CAD進(jìn)行給排水及水處理系統(tǒng)的優(yōu)化設(shè)計更是少有人涉足。此外,目前還沒有專業(yè)設(shè)計CAD軟件的標(biāo)準(zhǔn)和規(guī)范。商業(yè)化軟件多數(shù)都不經(jīng)過權(quán)威部門嚴(yán)謹(jǐn)?shù)募夹g(shù)測試和鑒定,所以其數(shù)據(jù)庫、計算方法、設(shè)計方法和生成圖形的準(zhǔn)確性還沒有嚴(yán)格保障,這一點還可能成為工程設(shè)計質(zhì)量的隱患。
現(xiàn)在設(shè)計部門的給排水CAD應(yīng)用水平也參差不齊。有的購買或自行開發(fā)了給排水專業(yè)軟件,提高了設(shè)計繪圖效率。有的只是在用AutoCAD的簡單命令繪圖,雖提高了CAD出圖率,卻根本談不上利用CAD提高效率。給排水專業(yè)CAD應(yīng)用水平還有待于進(jìn)一步提高。
目前許多有精力的設(shè)計院及研究部門都在研究開發(fā)本單位適用的專業(yè)軟件及應(yīng)用程序,但由于開發(fā)經(jīng)驗不足,成績不明顯。本文將結(jié)合筆者的工作經(jīng)驗,著重論述有關(guān)給排水軟件開發(fā)的原則、思路、方法及步驟,旨在拋磚引玉,促進(jìn)給排水CAD軟件開發(fā)工作。
二、給排水軟件包開發(fā)思路及原則
由于現(xiàn)有建筑給排水軟件已經(jīng)比較成熟,且仍在繼續(xù)開發(fā)、升級。一般開發(fā)者在水平和起點上均與這些軟件開發(fā)有一定差距,所以應(yīng)該購買此類軟件,而著重開發(fā)適合本單位使用的實用程序、應(yīng)用軟件或優(yōu)化設(shè)計軟件。高起點開發(fā)者則應(yīng)在深度及廣度上向更高層次沖擊。
1.給排水CAD軟件開發(fā)依據(jù)及原則
(1)設(shè)計依據(jù)為有關(guān)設(shè)計規(guī)范、制圖標(biāo)準(zhǔn)以及設(shè)計手冊等;保證數(shù)據(jù)庫、計算方法和設(shè)計方法的準(zhǔn)確性。
(2)軟件包開發(fā)設(shè)計首先要突出專業(yè)水平,把專業(yè)設(shè)計思想轉(zhuǎn)化為計算機語言是專業(yè)軟件包的關(guān)鍵所在。
(3)符合設(shè)計人員思維習(xí)慣及設(shè)計習(xí)慣,人機界面友好,操作簡單,易掌握。
(4)適用性強,容易修改,容易擴充,容易發(fā)展。
(5)盡量使用效率高、功能強的計算機語言及開發(fā)工具。
(6)嚴(yán)格執(zhí)行標(biāo)準(zhǔn)化及規(guī)范化。
(7)通過自動繪圖以及建立標(biāo)準(zhǔn)圖庫,提高圖紙復(fù)用率等途徑,提高設(shè)計繪圖速度,真正發(fā)揮計算機的優(yōu)勢,把設(shè)計人員從圖板上解脫出來。
2.設(shè)計開發(fā)步驟
(1)開發(fā)適合于給排水專業(yè)應(yīng)用的CAD軟件環(huán)境,包括AutoCAD的優(yōu)化配置及常用專業(yè)圖塊及繪圖工具。
(2)開發(fā)一些獨立的專業(yè)繪圖軟件,發(fā)展標(biāo)準(zhǔn)圖形庫,由淺到深,從易到難,逐步提高自動成圖及圖紙復(fù)用比例,使軟件包成為覆蓋面廣,功能齊全的專業(yè)繪圖軟件包。
(3)開發(fā)給排水專業(yè)高階段設(shè)計方案優(yōu)化軟件,以及設(shè)計、繪圖一體化軟件,逐步成為智能化、自動化程度較高的專家系統(tǒng)軟件包。
3.開發(fā)人員配備軟件開發(fā)是一項較復(fù)雜的腦力勞動,對開發(fā)人員要求也較高,專業(yè)軟件開發(fā)人員大致可分為以下幾個檔次:
(1)初級水平:專業(yè)人員掌握一些基本計算機知識及開發(fā)工具可以進(jìn)行一些專業(yè)圖塊制作,簡單的實用程序開發(fā)。
(2)中等水平:較高專業(yè)水平加上較高計算機水平。熟悉專業(yè)設(shè)計習(xí)慣,有較豐富的設(shè)計經(jīng)驗的專業(yè)人員,如果掌握先進(jìn)的CAD開發(fā)技術(shù),可以開發(fā)出較高水平的CAD應(yīng)用軟件,可以提高設(shè)計效率,特別是可以大大提高繪圖效率。
(3)高級水平:高深的專業(yè)水平加上先進(jìn)的計算機開發(fā)技術(shù)。在專業(yè)方面應(yīng)該熟練掌握專業(yè)基礎(chǔ)知識,有豐富的工程設(shè)計經(jīng)驗,善于總結(jié)專業(yè)設(shè)計思路,發(fā)現(xiàn)規(guī)律,具有較強的系統(tǒng)工程及方案優(yōu)化水平。在計算機方面要掌握LSP、ADS、DCL等開發(fā)工具(或其它高級開發(fā)工具)。這類人員開發(fā)專業(yè)CAD軟件是最理想的。
由于給排水專業(yè)涉及面廣,而且不同行業(yè)給排水設(shè)計習(xí)慣也不盡相同,不可能有軟件可以覆蓋所有給排水領(lǐng)域,適用于所有設(shè)計院,所以目前仍然需要分行業(yè)、分類進(jìn)行開發(fā)。前述的個別建筑給排水軟件包及開發(fā)人員屬于較高水平,其開發(fā)設(shè)計思路非常值得向給排水其它領(lǐng)域延伸。
4.開發(fā)工具(軟件方面)
目前較常用的CAD開發(fā)工具主要有AutoLISP語言、ADS、DCL語言以及數(shù)據(jù)庫處理,也有的開發(fā)者使用BASIC、FORTRAN等高級語言與AutoCAD的圖形數(shù)據(jù)交換接口進(jìn)行開發(fā);還有用C++開發(fā)或用VB等在Windows界面下開發(fā)的;此外,網(wǎng)絡(luò)技術(shù)也越來越重要。
開發(fā)CAD軟件,需要非常熟悉Auto CAD命令,以及其中的各參數(shù)、系統(tǒng)變量、圖層、圖塊、線形等,這樣才能方便靈活地在程序中執(zhí)行各種命令,掌握CAD開發(fā)技巧,例如圖塊的屬性可以帶許多信息,一條LINE線的厚度可以存入管道的管徑等。此外現(xiàn)在有些軟件使用數(shù)據(jù)的后處理方式,使軟件和AutoCAD結(jié)合得更好,這些技術(shù)還需要對AutoCAD圖元數(shù)據(jù)庫和數(shù)據(jù)圖形交換等有更深的了解。
AutoLISP是在AutoCAD內(nèi)部使用的語言,用AutoLISP編輯的程序可以定義變量,對數(shù)據(jù)進(jìn)行處理和作出圖形,并可能自定義函數(shù),比較適合搞人工智能工作,特別是它的表處理功能以及遞歸等功能比較獨特,在CAD工作中它可以獨立工作,也可能與DXF圖形交換文件互相配合。其不足之處是速度慢,且程序代碼幾乎無法保護(hù)。
ADS是AutoCAD11.0版以后新增加的用來開發(fā)應(yīng)用的一個C語言編程環(huán)境。它運行速度快,代碼保護(hù)性好,能更有效地利用內(nèi)存空間以及訪問設(shè)備與系統(tǒng),具有更強大的開發(fā)功能。但掌握ADS要比LISP困難,要求開發(fā)人員具備C語言編程經(jīng)驗并熟悉ADS庫中各函數(shù)用法。一般商業(yè)軟件應(yīng)該用ADS。
AutoCAD還提 供了可編程對話框(PDB)工具,使用戶可以結(jié)合自身專業(yè)特點,用DCL語言構(gòu)造自己的對話框,從而改善界面,提高CAD軟件效率。
目前最流行、最實用的專業(yè)CAD開發(fā)工具是ADS、DCL,加上少量AutoLISP。
三、開發(fā)過程1.專業(yè)繪圖環(huán)境的開發(fā)
(1)AutoCAD的配置及改善
a.選擇AutoCAD版本。目前最常用的是漢化AutoCAD12.0版。但其漢字輸入不太方便,應(yīng)配上較先進(jìn)的漢字系統(tǒng),或用12.0版forWindows(中文)。
b.對AutoCAD系統(tǒng)變量進(jìn)行重新優(yōu)化配置及設(shè)定,主要包括系統(tǒng)變量及尺寸變量設(shè)置,層、線形設(shè)置等,使acad.dwg成為理想的樣板圖。
c.對acad.mnu進(jìn)行優(yōu)化,將許多常用命令放在最容易拾取的位置或固定位置。專業(yè)菜單部分可加入acad.mnu,也可以獨立編寫。
d.利用acad.pgp做簡化命令(10.0版以前的版本可在acad.lsp中用defun函數(shù)設(shè)定),編寫acad.lsp。
(2)專業(yè)繪圖功能
a.專業(yè)圖框繪制:可由菜單點取或用屏幕幻燈菜單點取,自動生成各種圖框。
b.專業(yè)常用圖塊:由菜單點取生成,自動插入斷線。
c.開發(fā)實用的專業(yè)繪圖工具程序:如標(biāo)注標(biāo)高、管徑、坐標(biāo)、管道立管、代號、各種管件等的程序,繪制單、雙線管道的程序,生成專業(yè)設(shè)計說明、圖例、專業(yè)詞組的程序,以及文字、線形、線寬編輯和表格操作等實用程序。
d.開發(fā)或引進(jìn)建筑圖繪圖程序。
專業(yè)CAD軟件包都應(yīng)具有高效的繪圖環(huán)境,否則一旦自動生成等功能出現(xiàn)故障或不能適用時,用戶就只能用AutoCAD簡單命令來畫圖了。
2.專業(yè)繪圖軟件的開發(fā)
在專業(yè)繪圖環(huán)境的基礎(chǔ)上逐步開發(fā)一些相對獨立的專業(yè)繪圖軟件,逐步形成功能強,覆蓋面廣的給排水綜合軟件包。
目前已開發(fā)的較成熟的軟件有:民用建筑給排水CAD軟件包、室外給排水管網(wǎng)計算軟件、給排水管道縱斷面圖繪圖軟件、給排水外部管網(wǎng)設(shè)計軟件等。
正在開發(fā),初見成效的軟件有泵房設(shè)計軟件、平流沉淀池軟件、機械加速澄清池軟件、和市政管網(wǎng)CAD軟件等。
尚未深入開發(fā),開發(fā)難度大,但預(yù)期效果好的軟件包括:輻射沉淀池、旋流沉淀池、水塔、綜合管溝、架空管網(wǎng)、過濾間、軟水站、污泥脫水間設(shè)計等項目。
給排水軟件開發(fā)的另一條思路是發(fā)展給排水設(shè)備和構(gòu)筑物的標(biāo)準(zhǔn)CAD圖形庫,從而提高圖紙復(fù)用率,這比編制自動成圖的軟件要容易得多。標(biāo)準(zhǔn)CAD圖形庫還可以由權(quán)威部門編制后,作為標(biāo)準(zhǔn)圖出版。此外,標(biāo)準(zhǔn)圖還可作為軟件包的一部分,即軟件包可以交互式自動生成圖形,也可以通過自動計算直接調(diào)用相應(yīng)的標(biāo)準(zhǔn)圖。
3.高階段設(shè)計及方案優(yōu)化設(shè)計軟件的開發(fā)在
利用CAD進(jìn)行高階段設(shè)計及方案優(yōu)化設(shè)計方面,除在民用建筑給排水領(lǐng)域有個別公司研究外,在其它給排水領(lǐng)域中的研究國內(nèi)還未見到報道。方案優(yōu)化軟件的難點在于系統(tǒng)化的設(shè)計思路和設(shè)計經(jīng)驗向計算機程序的轉(zhuǎn)化,其中給排水及循環(huán)水流程的方案優(yōu)化模型的建立本身就是給排水設(shè)計的一個難題。目前這方面進(jìn)展緩慢的原因首先是它對開發(fā)人員要求高,這一領(lǐng)域的理想人選稀少;其次是給排水專業(yè)行業(yè)多,領(lǐng)域廣,需開發(fā)的軟件工作量巨大,具備這方面精力的研究部門或公司還很少。
總之,給排水專業(yè)繪圖軟件包開發(fā)是一項艱苦的工作,需要創(chuàng)造一個規(guī)模生產(chǎn),流水線開發(fā)的環(huán)境,投入一大批高層次的人才。各部門的研究人員既要知難而進(jìn),又要避免重復(fù)勞動,在各行業(yè)、各領(lǐng)域開發(fā)出各有特色的實用專業(yè)軟件。
四、給排水CAD軟件包開發(fā)實例———BYWAT
1.軟件包結(jié)構(gòu)
專業(yè)繪圖環(huán)境-CA AutoCAD12.0漢化版
AutoCAD配置及改- 系統(tǒng)配置
參數(shù)設(shè)置
菜單優(yōu)化
命令簡化
專業(yè)繪圖功能-
專業(yè)圖框繪制
專業(yè)圖塊繪制
專業(yè)工具程序
繪建筑圖程序
BYWAT-(2.0)b.
專業(yè)繪圖軟件- IS泵及S泵基礎(chǔ)繪圖軟件
水泵底座繪圖軟件
材料表等填充軟件
給水管縱斷面圖繪圖軟件
排水管縱斷面圖繪圖軟件等多常
2.軟件包主要技術(shù)特點
(1)符合設(shè)計人員設(shè)計習(xí)慣,簡便易學(xué)。
(2)速度快,可提高設(shè)計繪圖速度3到5倍。
(3)可由用戶幻燈菜單自動點取專業(yè)圖框。
(4)有豐富的專業(yè)圖形符號,插入時管道自動斷線。
(5)可方便地繪制建筑圖。
(6)具有各種類型的標(biāo)高、管徑、坐標(biāo)等標(biāo)注功能以及一些方便實用的程序。
(7)繪材料表只需在屏幕菜單中點取材料名稱即可將名稱、材料、單位、標(biāo)準(zhǔn)圖號等填入材料表中的合適位置,序號、數(shù)量也特別方便,速度快,輔助功能及提示功能強。如果需要,還可以自動填入單重,自動計算并填入總重。
(8)各型號水泵基礎(chǔ)自動繪制,半自動生成水泵底座圖形,自動計算和生成材料表。
(9)給排水管道縱斷面圖軟件交互式、參數(shù)化繪圖,可自動計算,并有輔助功能。
3.專業(yè)軟件實例———排水縱斷面圖繪圖軟件
給排水縱斷面圖在冶金給排水設(shè)計中約占施工圖總量的近10%,規(guī)律性也較強,較適合開發(fā)專業(yè)繪圖軟件。本軟件原采用LISP語言編寫,由主程序及輔助功能組成,包括程序600多句和幾個圖塊、幻燈等。其中主程序結(jié)構(gòu)較復(fù)雜,多處使用循環(huán)語句及LISP語言擅長的表處理語句。軟件完全按照冶金設(shè)計院設(shè)計繪圖習(xí)慣及順序設(shè)計,操作特別簡單,用戶只需交互式輸入簡單的參數(shù),即可完成完整理想的縱斷面圖。
輸入比例尺后,程序自動繪制排水縱斷面圖表頭。此后按順序輸入節(jié)點,節(jié)點平面距離、管徑、地面標(biāo)高、管內(nèi)底標(biāo)高、坡度、管材代號、平面示意圖種類后,程序即可畫出這段管及有關(guān)的全部文字、圖形,并計算出下一點的管內(nèi)底標(biāo)高。以后每輸入一段管的參數(shù),即可畫一段管,與前段管相同不必重新輸入。每個井均可有跌水,軟件還可自動畫出各種平面示意圖。同一表頭內(nèi)可結(jié)束一條管,再給起點畫下一條管。軟件的輔助功能可進(jìn)行交叉等處理。此外軟件還有較強的容錯功能。
改進(jìn)以后,加入可編程對話框,每確認(rèn)一個對話框即可畫一段管,使輸入更加簡潔。軟件還可以從已編寫的數(shù)據(jù)文件中提取數(shù)據(jù)自動生成圖形,這也為從外網(wǎng)平面圖直接提取信息生成縱斷面圖打下基礎(chǔ)。
用給排水縱斷面圖軟件繪圖,比手工快5倍以上。
1在設(shè)計方面要考慮用戶對軟件的印象
根據(jù)調(diào)查顯示,網(wǎng)絡(luò)用戶在快速閱讀過程中通常會呈現(xiàn)出“F”型的習(xí)慣,也就是在特定時間內(nèi),用戶迅速瀏覽網(wǎng)站的時候會先看到網(wǎng)站的頂端與左側(cè)內(nèi)容,而中間的內(nèi)容只能夠被閱讀到一部分。所以我們在設(shè)計網(wǎng)站界面的時候可以遵循“F視線追蹤原則”,將各個部門按照主次次序放置到框架之中。如果一個網(wǎng)絡(luò)用戶在瀏覽到一個新的網(wǎng)站的時候,如果在三分鐘之內(nèi)還沒有發(fā)現(xiàn)能夠吸引自己興趣的內(nèi)容,那么這個網(wǎng)站就會100%地失去這個客戶。在近幾年,許多軟件開發(fā)公司喜歡用過去的項目模版來設(shè)計主界面,這無形中是有利于提高軟件開發(fā)速度,并且減少耗費創(chuàng)新技術(shù)、思路的時間與風(fēng)險,然而如果一個軟件產(chǎn)品長期保持一成不變的風(fēng)格,那么就不會為用戶留下深刻的印象,進(jìn)而失去市場競爭力。軟件開發(fā)商必須要根據(jù)商業(yè)營銷學(xué)的理論,尋找到自己的目標(biāo)客戶群體,之后根據(jù)這個客戶群體的偏好、特征來設(shè)計軟件界面的整個風(fēng)格,讓使用者可以看到產(chǎn)品第一眼后產(chǎn)生一種與眾不同的感受。
2在程序選擇方面要注重優(yōu)化與處理效率
我們在軟件產(chǎn)品設(shè)計的算法方面要注重優(yōu)化設(shè)計,當(dāng)軟件運行過程中耗時較多就需要我們注意處理、降低廣大用戶在等待過程中的不滿情緒。隨著科學(xué)技術(shù)的不斷發(fā)展,計算機性能與運算速度的不算提升,諸多程序開發(fā)工作中將程序運行緩慢的原因歸咎于計算機的問題,不會從自身編程過程找原因,因此軟件開發(fā)工作效率較低,許多軟件產(chǎn)品惡評較多,所以我們需要在能夠控制的范圍中優(yōu)化程序代碼,給予用戶們科學(xué)、高效的產(chǎn)品體驗過程。針對一些確實耗費時間的操作軟件,我們可以通過進(jìn)度條顯示、后臺運行等方式來調(diào)整,讓用戶心理上順暢。筆者曾經(jīng)有幸親自參觀了某通訊公司新任務(wù)的運行體驗,工作人員每次點擊用戶的查詢請求,在系統(tǒng)返回的時候需要幾秒鐘甚至幾十秒鐘,使得該公司用戶抱怨數(shù)量眾多,而這正是缺乏優(yōu)化功能的原因。
3產(chǎn)品功能設(shè)計要結(jié)合人性化與靈活性的特征
傳統(tǒng)設(shè)計受到信息化社會發(fā)展的影響,使其正處在改造進(jìn)程的關(guān)注對象。當(dāng)前計算機發(fā)展所帶動的現(xiàn)代技術(shù)發(fā)展并沒有到達(dá)高潮,但是計算機作為理想化的設(shè)計工具,正在逐步改革自身的設(shè)計途徑、方法、過程,并逐漸邁向到數(shù)字化設(shè)計的時期。如果我們說數(shù)字化是現(xiàn)代社會的發(fā)展特征,那么人性化的設(shè)計就是對這種存在具象的詮釋。我們在產(chǎn)品設(shè)計過程中,盡管存在著模塊化設(shè)計的理論,但是作為產(chǎn)品設(shè)計者的我們不能忘記軟件產(chǎn)品最終是為大眾服務(wù)的,必須要將用戶體驗過程放在首要位置。另外,在軟件產(chǎn)品設(shè)計過程中,要注重業(yè)務(wù)模塊之間相互搭配的靈活性屬性,不能盲目追求大眾的操作形式。在廣大用戶使用計算機產(chǎn)品過程中,隨著人們的個人喜歡與聚焦點不同,使用產(chǎn)品的方式也是具有差異性的。筆者曾經(jīng)設(shè)計過一套工程方面的預(yù)算系統(tǒng),部分用戶關(guān)注最后的造價,而另一部分用戶關(guān)注的是建筑材料的使用狀況,側(cè)重點不同導(dǎo)致自身操作步驟也是不同的,因此我們在設(shè)計產(chǎn)品過程中需要注意到這一點。
4結(jié)束語
隨著科學(xué)技術(shù)的不斷發(fā)展,用戶對于計算機軟件設(shè)計水平的需求不斷提高,軟件開發(fā)工作者務(wù)必要對目標(biāo)群體進(jìn)行深入性研究分析,要真正地了解到用戶群體喜歡什么樣的軟件,需要什么樣的軟件,關(guān)注什么樣的團(tuán)結(jié),從每種軟件的運行界面、使用功能、運用條件等諸多方面來實現(xiàn)軟件的優(yōu)化設(shè)計,站在用戶的角度來面對軟件的多個問題,只有遵循這樣的原則,才能夠滿足諸多用戶群體的需求,開發(fā)出優(yōu)質(zhì)的軟件。
筆者所在學(xué)院的軟件工程系是成立于2005年的新專業(yè),為校級特色專業(yè)。近年來,隨著對軟件工程特色專業(yè)建設(shè)進(jìn)程的推進(jìn),課程體系日趨完善。針對軟件工程學(xué)科具有理論多且實踐性極強的特點,本系較大幅度地加大了實踐類課程和環(huán)節(jié)所占的比例,“軟件開發(fā)設(shè)計實訓(xùn)”便是其中很重要的一門實踐課程。由于軟件工程學(xué)科發(fā)展速度很快,在軟件產(chǎn)業(yè)不斷發(fā)展,全國對高素質(zhì)的軟件人才的需求量激增的形式下,迫切需要研究和探索實踐類課程的教學(xué)模式,激發(fā)學(xué)生學(xué)習(xí)興趣,以更有效的手段和方式提高教學(xué)和指導(dǎo)質(zhì)量,為培養(yǎng)更加符合社會實際需要的軟件開發(fā)人才打下堅實基礎(chǔ)。在我校教改基金的資助下,依托軟件工程教學(xué)團(tuán)隊,本文對將軟件工程應(yīng)用于“軟件開發(fā)設(shè)計實訓(xùn)”課程的教學(xué)模式及主要措施進(jìn)行探討。
1 選擇適當(dāng)?shù)能浖こ踢^程
“軟件開發(fā)設(shè)計實訓(xùn)”課程的主要目的是使學(xué)生學(xué)會用面向?qū)ο蟮脑O(shè)計方法設(shè)計實際系統(tǒng)。結(jié)合軟件工程學(xué)科的發(fā)展和應(yīng)用現(xiàn)狀,軟件開發(fā)過程主要采用rup(rational unified process,統(tǒng)一軟件開發(fā)過程)的方式組織軟件開發(fā)。rup是風(fēng)險驅(qū)動的、基于use case(用例)技術(shù)的、以架構(gòu)為中心的、迭代的、可配置的軟件開發(fā)流程。
rup分為初始、精化、構(gòu)造和交付四個階段,各階段涉及多種工作流【1】。rup的核心工作流主要包括:
需求捕獲工作流:需求捕獲通過對問題的理解和分析,確立問題涉及的信息、功能和系統(tǒng)行為,將用戶需求精確化、完全化。需求的焦點主要在初始和精化階段,在精化階段后期,需求捕獲的工作量大幅下降。
分析工作流:分析的主要工作開始于初始階段的結(jié)尾,和需求一樣是精化階段的主要焦點。精化階段的大部分活動是捕獲需求,分析工作與需求捕獲在很大程度上重疊。
設(shè)計工作流:設(shè)計的主要工作是位于精化階段的最后部分和構(gòu)造階段的開始部分的主要建?;顒印O到y(tǒng)建模最初的焦點是需求和分析,在分析活動逐步完善后,建模的焦點開始轉(zhuǎn)向設(shè)計。
實現(xiàn)工作流:實現(xiàn)(實施)是關(guān)于把設(shè)計模型轉(zhuǎn)換成可執(zhí)行代碼的過程。從系統(tǒng)分析師或系統(tǒng)設(shè)計師的角度看,實現(xiàn)工作流的重點就是完成軟件系統(tǒng)的可執(zhí)行代碼。實現(xiàn)工作流是構(gòu)建階段的焦點。
測試工作流:測試是一項相當(dāng)主要的工作。測試工作流貫穿于軟件開發(fā)的整個過程。它開始于軟件開發(fā)的初始階段,而細(xì)化階段和構(gòu)造階段是測試的焦點。測試是為了找出程序中的錯誤與缺限,而不能證明程序無錯。
rup就像一個元過程,通過對rup進(jìn)行裁剪可以得到很多不同的開發(fā)過程,非常靈活,所以可以將其按本課程需要進(jìn)行精簡,從而把深奧的理論指導(dǎo)融入具體軟件項目的開發(fā)設(shè)計中,讓學(xué)生更加深切地體會到什么叫學(xué)以致用,消除畏難情緒,培養(yǎng)和增強在軟件開發(fā)設(shè)計中自覺遵從軟件工程思想的習(xí)慣。本課程使用的case(computer aided software engineering,計算機輔助軟件工程)工具集采用sybase公司的powerdesigner。
2 將有價值的軟件工程知識引入課堂,教學(xué)采用項目貫通案例
為讓學(xué)生在中小規(guī)模的實訓(xùn)項目中也能體會到較大型項目通常會用到的一些軟件工程技術(shù),讓本課程更有實用價值,教師需要對學(xué)生補充一些軟件工程相關(guān)知識,包括:設(shè)計模式、架構(gòu)設(shè)計、類的持久化以及數(shù)據(jù)庫設(shè)計、面向?qū)ο髮崿F(xiàn)以及文檔的書寫這四個方面。
為配合上述四個方面的軟件工程相關(guān)知識的介紹,教師采取“項目驅(qū)動的案例教學(xué)”方法【2】,在課堂講授中引入一個完整的、規(guī)模適中、難易適度的軟件項目案例。該案例需要通俗易懂而又具有實際意義,涉及的應(yīng)用領(lǐng)域應(yīng)該是學(xué)生較為熟悉的,這樣理解起來更為容易。以此案例完整的開發(fā)設(shè)計過程為主線,借助這個貫穿整個課程教學(xué)進(jìn)程、文檔齊全的完整案例來將軟件項目開發(fā)設(shè)計過程中的各個環(huán)節(jié)串連起來,著重展現(xiàn)上述四個方面的知識運用,讓學(xué)生熟悉和掌握軟件開發(fā)設(shè)計的具體實施步驟和技術(shù)。
3 學(xué)生實踐環(huán)節(jié)分小組按項目方式進(jìn)行
由于在本實訓(xùn)課程之前學(xué)生已經(jīng)學(xué)習(xí)過一門先導(dǎo)課程:“軟件需求分析實踐”,所以可以把學(xué)生仍然按照在“軟件需求分析實踐”課程中的各小組成員組成來進(jìn)行項目分組,這樣各小組便可將該課程中的最終成果——《軟件需求分析規(guī)格說明書》作為本課程的起點來進(jìn)行,需求捕獲工作流便只需粗略進(jìn)行。由于本課程側(cè)重于軟件開發(fā)過程的分析工作流和設(shè)計工作流,對實現(xiàn)工作流和測試工作流也只作粗略涉及。
每個項目小組通常為3到5人,分組時采用了優(yōu)勢互補的方式,注意合理搭配,盡量讓每組各個成員具有不同的優(yōu)勢能力,并讓其民主推選一名組長負(fù)責(zé)組內(nèi)的組織和協(xié)調(diào)【3】。
教師的項目貫通案例教學(xué)分階段間插在學(xué)生實踐過程中,每介紹一個階段的rup理論,就緊跟幾次課的學(xué)生實踐環(huán)節(jié),如此交替進(jìn)行,當(dāng)教師的教學(xué)案例施教完畢,學(xué)生的項目也同步進(jìn)行到最后階段。
項目進(jìn)行中模仿軟件公司的例會形式,定期由項目小組長召開小組討論會(如每周一次),對最近這段時間的項目進(jìn)展情況和技術(shù)問題進(jìn)行討論。每個開發(fā)設(shè)計階段結(jié)束時教師均要求各小組給出相應(yīng)的文檔,且每個階段完畢要進(jìn)行一個模擬的里程碑式的評審(教師參與作為評審團(tuán)的一員)【4】。
教師還應(yīng)在課程即將結(jié)束的最后課時中對各小組的項目完成情況及普遍存在的共性問題作一個分析總結(jié),并讓各小組組長總結(jié)本組項目完成的經(jīng)驗教訓(xùn),以利于同學(xué)之間取長補短,活躍思維,提高分析總結(jié)問題的能力。
4 依托教學(xué)團(tuán)隊,理論及案例部分采用輪流授課法
筆者所在的軟件工程系于2009年底成立了軟件工程教學(xué)團(tuán)隊。團(tuán)隊兼顧了職稱、學(xué)歷、教學(xué)、科研的合理搭配,由有大型項目開發(fā)和管理經(jīng)驗的老教師提供指導(dǎo)來提升年輕教師的教學(xué)能力,并讓其參與到科研項目中積累項目經(jīng)驗。本課程的任課教師均由該團(tuán)隊中選出。本課程所用的《軟件開發(fā)設(shè)計實訓(xùn)指導(dǎo)書》的編寫由各任課教師分工完成,每人負(fù)責(zé)完成一章內(nèi)容。本課程每個教學(xué)班安排30人左右,各教學(xué)班的教師全程負(fù)責(zé)該班整個課程的實踐指導(dǎo)環(huán)節(jié)。而理論及案例講授部分的教學(xué)則采用輪流授課法,實施方案是每個階段的課堂講授由編寫實訓(xùn)指導(dǎo)書的相應(yīng)章節(jié)的教師對全體教學(xué)班集體授課,其他教師同時到場輔導(dǎo)。具體各階段的課堂講授內(nèi)容安排如下:
1)rup總論以及課程概述
2)設(shè)計模式
3)常用的軟件架構(gòu)風(fēng)格及適用情況分析
4)對象持久化與數(shù)據(jù)庫設(shè)計
5)面向?qū)ο髮崿F(xiàn)及文檔編寫與整理
對應(yīng)進(jìn)行的學(xué)生的各階段實踐任務(wù)如下:
1)按既定方式確定各小組成員和組長,并且重新審核各組在先導(dǎo)課程“軟件需求分析實踐”中的最終成果《軟件需求分析規(guī)格說明書》,進(jìn)一步完成分析模型,得出用例圖,分析類圖,序列圖及協(xié)作圖。這一階段學(xué)生需提交分析模型文檔。
2)按照設(shè)計模式重新設(shè)計類。這一階段學(xué)生需完成兩個任務(wù):一是實現(xiàn)設(shè)計模型中的具體設(shè)計類,具體要求學(xué)生:使用設(shè)計模式和機制;創(chuàng)建初始設(shè)計類;確定持久類;定義類可視性;定義操作;定義方法;定義狀態(tài);定義屬性;定義依賴關(guān)系;定義關(guān)聯(lián);定義內(nèi)部結(jié)構(gòu);定義泛化關(guān)系;解決用例沖突。二是完成用例實現(xiàn)的設(shè)計,主要設(shè)計模型內(nèi)的協(xié)作關(guān)系,以設(shè)計類及其對象為基礎(chǔ),描述各個特定用例的實現(xiàn)和協(xié)作。這一階段學(xué)生需提交設(shè)計模型、類圖和用例實現(xiàn)。
3)完成架構(gòu)設(shè)計。這一階段學(xué)生需要設(shè)計包結(jié)構(gòu),完成系統(tǒng)設(shè)計模型圖的實現(xiàn)子系統(tǒng)、接口設(shè)計類及架構(gòu)模型(組件圖),重新審查用例模型,得出用例模型的架構(gòu)視圖。這一階段學(xué)生需提交子系統(tǒng)設(shè)計文檔、接口設(shè)計文檔及架構(gòu)模型文檔。
4)根據(jù)持久類以及數(shù)據(jù)庫知識對數(shù)據(jù)庫進(jìn)行設(shè)計(包括字段編碼設(shè)計)。這一階段學(xué)生需提交數(shù)據(jù)庫設(shè)計文檔。
5)本課程的最后階段。完成實施模型(部署圖);完成界面以及輸入輸出(報表等)設(shè)計;完成具體子系統(tǒng)的編程工作,并進(jìn)行二次迭代重新審核前面的設(shè)計部分;整理測試報告;整理文檔并編寫軟件使用說明書。這一階段學(xué)生需提交組件圖、部署圖、輸入輸出設(shè)計說明及具體子系統(tǒng)代碼執(zhí)行程序。
5 考核方式強調(diào)過程考核,開發(fā)設(shè)計能力與書寫文檔能力并重
本課程的實訓(xùn)目標(biāo)是使學(xué)生能綜合運用所學(xué)的知識進(jìn)行中小型應(yīng)用項目的軟件開發(fā)設(shè)計。為此,我們提出了本課程考核的指導(dǎo)思想:重視實訓(xùn)過程,看重軟件開發(fā)設(shè)計能力的提高,采用復(fù)合考核的方式,課程成績由平時考核、過程考核和項目驗收答辯成績組成。重點突出“會不會做”,強調(diào)對學(xué)生的實際開發(fā)設(shè)計能力考核,同時注意防止輕視書寫文檔的觀念。這種考核方式不但能更客觀地反映學(xué)生的學(xué)習(xí)情況,還能引導(dǎo)學(xué)生有意識地加強軟件開發(fā)設(shè)計技能的培養(yǎng),開發(fā)設(shè)計能力與書寫文檔能力并重,更利于達(dá)到預(yù)期的教學(xué)效果。本課程具體的課程考核成績組成如下:
1)平時成績*10%(考勤成績*50%+小組開發(fā)設(shè)計工作中的合作精神表現(xiàn)*50%);
2)階段考核成績*60%(五個階段,各階段的能力表現(xiàn)及提交的文檔各占20 %);
3)項目驗收成績*30%(項目文檔匯總整理占50%,項目答辯50%)。
6 結(jié)束語
“軟件開發(fā)設(shè)計實訓(xùn)”課程是軟件工程專業(yè)實踐類課程中非常核心的一門,其實踐性和綜合性都很強,能集中訓(xùn)練和提高學(xué)生進(jìn)行軟件項目開發(fā)和設(shè)計的實際技能。其教學(xué)實施過程不應(yīng)被視為只要學(xué)生針對項目要求能編寫出相應(yīng)的軟件即可,而更應(yīng)注重軟件開發(fā)設(shè)計過程的方法和技能的培養(yǎng),以培養(yǎng)具有軟件工程思想的真正符合社會需求的軟件人才。本課程應(yīng)緊隨軟件工程學(xué)科的發(fā)展而不斷更新。在今后的課程開展過程中,其教學(xué)模式和措施還需要不斷創(chuàng)新、總結(jié)和改進(jìn),需要持續(xù)不斷地研究和探索。
21世紀(jì)是計算機化、信息化的時代,在這個時代,計算機網(wǎng)絡(luò)成為信息傳輸媒介,軟件開發(fā)技術(shù)成為計算機未來發(fā)展的導(dǎo)向。為了滿足計算機網(wǎng)絡(luò)對軟件不斷增多的需求,軟件開發(fā)技術(shù)必須不斷發(fā)展,才能為構(gòu)建完善的計算機網(wǎng)絡(luò)系統(tǒng)提供可能。
1 計算機軟件開發(fā)技術(shù)概述
計算機軟件主要指系統(tǒng)軟件、應(yīng)用軟件。系統(tǒng)軟件是監(jiān)控、管理和維護(hù)計算機的軟件,比如操作系統(tǒng)和自檢程序等。而應(yīng)用軟件則是解決用戶具體問題的軟件,比如人事管理軟件和學(xué)習(xí)管理軟件等等。不管是系統(tǒng)軟件還是應(yīng)用軟件,都為用戶提供了利用計算機代替或簡化一種計算機的工作環(huán)境,對于用戶來說,接觸計算機其實是接觸計算機軟件。早在20世紀(jì)五六十年代,計算機軟件的開發(fā)多是手工方式,這種軟件開發(fā)技術(shù)不僅出錯率較高、生產(chǎn)效率低下,而且不能滿足軟件生產(chǎn)需要。隨著商品化、大型化軟件的開發(fā),人們意識到計算機軟件的開發(fā)需要規(guī)范的文檔來確保程序設(shè)計、調(diào)試和運行。到了20世紀(jì)八十年代,人們將軟件工程定義為:實現(xiàn)計算機程序功能采取的規(guī)則、方法及與之相關(guān)聯(lián)的文檔和在計算機上運行程序所需的數(shù)據(jù)都是計算機軟件。
軟件工程的發(fā)展大體經(jīng)歷了程序設(shè)計時代、軟件時代和軟件工程三個時代。以建筑工程開發(fā)為例,可以看出計算機軟件開發(fā)過程與建筑工程開發(fā)有較大的差異。建筑工程開發(fā)過程中,設(shè)計藍(lán)圖設(shè)計之后,之后的每一步都不存在回溯的問題,但計算機軟件工程在開發(fā)的過程中,每一步都有可能經(jīng)歷多次的修改、適應(yīng)等回溯問題,另外,軟件開發(fā)成功投入使用后,要考慮到軟件運行和維護(hù)的問題等等。
2 計算機軟件開發(fā)技術(shù)的重要性
軟件開發(fā)技術(shù)是軟件工程較為關(guān)鍵的技術(shù)之一,對計算機網(wǎng)絡(luò)發(fā)展有著極大的助推作用,計算機軟件開發(fā)技術(shù)能夠促使計算機網(wǎng)絡(luò)技術(shù)的創(chuàng)新,使一些網(wǎng)絡(luò)支持、遠(yuǎn)程控制成為可能。軟件開發(fā)技術(shù)的應(yīng)用使得計算機網(wǎng)絡(luò)形成開發(fā)性、共存性的一種網(wǎng)絡(luò)模式,對于計算機網(wǎng)絡(luò)的發(fā)展有促進(jìn)作用。計算機軟件開發(fā)技術(shù)的應(yīng)用解決了軟件開發(fā)落后計算機網(wǎng)絡(luò)需求的問題,隨著軟件開發(fā)技術(shù)的不斷提高,軟件的安全性、可靠性和便捷性也有了較大的提高。上述的計算機軟件開發(fā)重要性推動了計算機軟件開發(fā)技術(shù)的應(yīng)用。
3 計算機軟件開發(fā)方法
目前,計算機軟件開發(fā)方法主要有原型化方法、軟件生命周期法和自動形式的系統(tǒng)開發(fā)方法三種。原型化方法:軟件開發(fā)之前要進(jìn)行嚴(yán)格定義和預(yù)說明,要求用戶及軟件開發(fā)人員對系統(tǒng)整體功能及信息需求有全面、深刻、準(zhǔn)確的認(rèn)定。如果用戶給出的軟件目標(biāo)不能詳盡描述輸入處理及輸出需求,或者軟件開發(fā)者不能確定算法效果、系統(tǒng)適用性或未來使用的人機界面形態(tài),此時,適合采用原型化方法進(jìn)行軟件開發(fā)設(shè)計。軟件生命周期法:軟件生命周期法從時間角度出發(fā)對軟件開發(fā)、定義、維護(hù)等問題分解成若干階段,每一個節(jié)段的開始和結(jié)束均有標(biāo)準(zhǔn)。軟件生命周期通常由6個時期,也就是6個階段。自動形式的系統(tǒng)開發(fā)方法:這個方法是利用第4代技術(shù)[3]中的軟件作為開發(fā)工具,其要求軟件開發(fā)者說明軟件實現(xiàn)的內(nèi)容和目標(biāo),而不需要說明如何實現(xiàn),這種開發(fā)方法根據(jù)系統(tǒng)的要求自動設(shè)計和編碼。
4 計算機軟件開發(fā)技術(shù)的應(yīng)用
計算機作為一個工具,計算機軟件開發(fā)者的存在使為了讓計算機能更好地服務(wù)于人類,因此計算機軟件開發(fā)技術(shù)要真正實現(xiàn)其應(yīng)用價值才能被稱得上成功。這里我通過一個計算機軟件開發(fā)實例說明計算機軟件開發(fā)技術(shù)的應(yīng)用價值。采用兩種方式開發(fā)兩個產(chǎn)品,其中第一個產(chǎn)品是運用vb6.0+acess、單機版運行模式進(jìn)行開發(fā)設(shè)計,第二個產(chǎn)品是運用web+xml+activex和高級數(shù)據(jù)庫服務(wù)器進(jìn)行開發(fā)設(shè)計?,F(xiàn)利用兩種產(chǎn)品分別安裝客戶機端,其中,采用第一個產(chǎn)品的話,在客戶機可直接安裝,因為vb虛擬機和acess驅(qū)動均是微軟歷史版本,所以系統(tǒng)可自動兼容;采用第二個產(chǎn)品的話,在客戶機要安裝activex組件,這時,要更改瀏覽器安全設(shè)置,這就要求客戶端安裝第二個產(chǎn)品的時候需要多個安裝步驟。客戶端安裝成功后,經(jīng)過一段時間運行,第一種安裝方法運行穩(wěn)定、無問題,若需備份還原數(shù)據(jù)或修復(fù)安裝,用戶可單獨完成,缺點是隨著客戶端使用時間的增長用戶數(shù)據(jù)越來越多,在客戶端運行后期運行速度會下降,這時需要人為轉(zhuǎn)檔。而第二種安裝方法在安裝、運行上受瀏覽器安全設(shè)置或系統(tǒng)操作版本的限制,給用戶的使用帶來了一定的不便。這兩個例子引起軟件開發(fā)者對問題的認(rèn)知。計算機作為一種工具,其存在是為了更好地服務(wù)于人類,目前,計算機已經(jīng)成為大眾化工具,計算機軟件開發(fā)者不能要求使用計算機的工作人員都是專業(yè)化人才,因此,在計算機軟件開發(fā)的過程中要根據(jù)需求、實際情況進(jìn)行投入和開發(fā)。在計算機軟件開發(fā)中要本著“以人為本”的理念,體現(xiàn)軟件的易用及功能強大。
5 結(jié)束語
計算機軟件以硬件為載體,是計算機思想的體現(xiàn),其處理大量的邏輯、信息,為人們提供一種方便、快捷的信息處理手段。在當(dāng)前這個信息化時代,軟件開發(fā)技術(shù)有極大的應(yīng)用價值,因此,科學(xué)運用計算機和軟件開發(fā)知識,以期通過較少的投入獲 取高質(zhì)量、高效率、滿足人們需求的軟件產(chǎn)品,對于推動現(xiàn)代化、信息化發(fā)展大有裨益。
論文關(guān)鍵詞:軟件開發(fā)技術(shù) 網(wǎng)絡(luò)教育 重要性
論文摘要:隨著計算機技術(shù)在教育領(lǐng)域的廣泛應(yīng)用,網(wǎng)絡(luò)教育應(yīng)運而生。軟件開發(fā)技術(shù)的日趨完善為網(wǎng)絡(luò)教育飛速發(fā)展提供了技術(shù)支持。本文從軟件開發(fā)技術(shù)與網(wǎng)絡(luò)教育的關(guān)系角度闡述了軟件開發(fā)技術(shù)在計算機網(wǎng)絡(luò)教育中的重要性。
計算機自20世紀(jì)40年代誕生以來,經(jīng)過近二十多年來教育技術(shù)的發(fā)展,已經(jīng)向社會的各個領(lǐng)域滲透。隨著計算機應(yīng)用的普及、深化,計算機軟件技術(shù)的規(guī)模越來越大。1968年,北約組織的一次研討會上提出了“軟件工程”一詞。今天,隨著網(wǎng)絡(luò)教育的不斷發(fā)展,軟件工程的重要性也隨之突顯出來。
1 計算機軟件開發(fā)技術(shù)的發(fā)展過程
軟件開發(fā)是一個非常復(fù)雜的過程,軟件開發(fā)技術(shù)的發(fā)展經(jīng)歷了漫長的歷史階段。在軟件開發(fā)的初期,人們對軟件開發(fā)的認(rèn)識主要集中在“軟件危機”的解決辦法上。20世紀(jì)60年代末k.w.dijkstra提出的結(jié)構(gòu)化程序設(shè)計技術(shù)曾被看作是克服“軟件危機”的靈丹妙藥,但面對大型軟件系統(tǒng),系統(tǒng)的重要性、穩(wěn)定性、擴充性卻難以實現(xiàn),20世紀(jì)70年代產(chǎn)生的面向?qū)ο蠓椒ǎo軟件工程產(chǎn)生了活力。對象管理組織omg在1997年11月將幾經(jīng)修改的uml正式作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言,從此又經(jīng)不斷發(fā)展、推新,uml目前已成為可視化建模語言事實上的工業(yè)標(biāo)準(zhǔn)。
隨著soa體系結(jié)構(gòu)的產(chǎn)生以及case技術(shù)的不斷發(fā)展,軟件工程技術(shù)日趨成熟,發(fā)生了質(zhì)的飛躍,對現(xiàn)代網(wǎng)絡(luò)教育產(chǎn)生了深遠(yuǎn)的影響。
2 現(xiàn)代網(wǎng)絡(luò)教育的特點
隨著計算機技術(shù)在教育領(lǐng)域的廣泛應(yīng)用,網(wǎng)絡(luò)教育應(yīng)運而生,相對傳統(tǒng)教育模式而言,網(wǎng)絡(luò)教育的出現(xiàn)不僅是對傳統(tǒng)教育形式的有益補充,同時隨著時代的發(fā)展,網(wǎng)絡(luò)教育也越來越呈現(xiàn)出自身的優(yōu)勢,其特點明顯體現(xiàn)為:促進(jìn)了教育形式的變革,實現(xiàn)了傳統(tǒng)面授教育向網(wǎng)絡(luò)遠(yuǎn)程教育的過渡;促進(jìn)了教育資源的有效利用,實現(xiàn)了由傳統(tǒng)的書本、紙介文字學(xué)習(xí)材料向多媒體課件、學(xué)習(xí)軟件、網(wǎng)絡(luò)資料等教學(xué)資源轉(zhuǎn)變,最大限度地有效利用學(xué)習(xí)資源;促進(jìn)了學(xué)習(xí)者自主學(xué)習(xí),實現(xiàn)了學(xué)習(xí)者根據(jù)自身學(xué)習(xí)時間和知識基礎(chǔ)設(shè)計學(xué)習(xí)計劃,獲取知識的自主方式;促進(jìn)了教學(xué)管理的自動化,實現(xiàn)了教學(xué)管理的軟件化、平臺化,提升了管理水平和工作效率。
3 軟件開發(fā)技術(shù)對網(wǎng)絡(luò)教育的意義
網(wǎng)絡(luò)教育的飛速發(fā)展依賴于大量計算機軟件的開發(fā)和技術(shù)發(fā)展,軟件開發(fā)技術(shù)為實現(xiàn)并發(fā)展網(wǎng)絡(luò)教育提供了操作平臺和技術(shù)保障。
3.1 教育資源庫的開發(fā)為網(wǎng)絡(luò)教育提供了資源儲備
目前,我國的教育資源庫開發(fā)模型有很多種,資源的內(nèi)容和采集的模式得到了極大的豐富,為網(wǎng)絡(luò)教育提供了充足的資源儲備。各類學(xué)科資源庫、開放式教育資源庫、資源中心等教育資源與資源數(shù)據(jù)庫緊密結(jié)合,大大提高了資源管理的效率。改變了傳統(tǒng)的教育資源庫脫離數(shù)據(jù)庫而造成數(shù)據(jù)不可重復(fù)使用,數(shù)據(jù)關(guān)聯(lián)性弱和人工浪費的現(xiàn)狀,使教育資源儲備形成了快捷、高效、安全的良好發(fā)展態(tài)勢。
3.2 教育管理軟件的開發(fā)豐富了網(wǎng)絡(luò)教育的管理手段
技術(shù)進(jìn)步不僅推動人類文明的發(fā)展,同時也給教育提供了學(xué)習(xí)的新知識,對教育觀念的轉(zhuǎn)變起到積極地促進(jìn)作用。教育管理軟件的開發(fā)豐富了教育的管理手段,使教育的管理方式由傳統(tǒng)的認(rèn)為管理向軟件化、信息化管理轉(zhuǎn)化,有效地提高了管理效率,提升了信息準(zhǔn)確率,同時也極大地方便了管理信息的存儲和備份。隨著教育管理軟件的普及、應(yīng)用,也間接地促進(jìn)了教師和學(xué)校管理人員的現(xiàn)代教育技術(shù)水平的提高。
3.3 學(xué)科分類軟件的開發(fā)使網(wǎng)絡(luò)教育更具針對性
學(xué)科分類是教育教學(xué)資源內(nèi)容劃分的基本方式,它能夠?qū)⒚恳粚W(xué)科根據(jù)類別劃分并進(jìn)一步細(xì)化知識點,促進(jìn)知識的拓展。因而,在網(wǎng)絡(luò)教育中學(xué)科分類軟件的開發(fā)與應(yīng)用對學(xué)科分類細(xì)化和突出網(wǎng)絡(luò)教育針對性具有積極的促進(jìn)作用。學(xué)科分類軟件的廣泛應(yīng)用促進(jìn)了課程資源的整合,使整個學(xué)科類別和知識的層級劃分更加合理清晰、條理分明,結(jié)合不同學(xué)科的知識特點,更好地突出學(xué)科個性。學(xué)科分類軟件的應(yīng)用,在細(xì)化知識分類的同時也為學(xué)生構(gòu)建了良好的知識資源環(huán)境,為教師與學(xué)生間的教與學(xué)的過程提供了依托平臺,促進(jìn)了互動交流。在這一過程的循環(huán)中,也能夠較好地體現(xiàn)教師的教學(xué)風(fēng)格,突顯教學(xué)個性。這也是網(wǎng)絡(luò)教育的重要特點。
3.4 輔助教學(xué)軟件的開發(fā)使網(wǎng)絡(luò)教育更具靈活性
軟件輔助教學(xué)是現(xiàn)代教育理論倡導(dǎo)的新型教育模式。輔助教學(xué)軟件的大量開發(fā)和實踐應(yīng)用使網(wǎng)絡(luò)教育具有更加靈活的教育方式,突顯網(wǎng)絡(luò)教育的時代特色。同時教學(xué)軟件的廣泛應(yīng)用有利于促進(jìn)學(xué)生學(xué)習(xí)自主性的培養(yǎng),豐富的教學(xué)軟件資源使學(xué)生根據(jù)自身特點制定學(xué)習(xí)計劃、選擇學(xué)習(xí)內(nèi)容、把握學(xué)習(xí)時長、掌控學(xué)習(xí)進(jìn)度,極大地調(diào)動了學(xué)生自主學(xué)習(xí)的積極性;有利于學(xué)生自學(xué)能力的培養(yǎng),培養(yǎng)了學(xué)生自我教育、自我管理、自我服務(wù)的良好意識,提高了有效獲取知識的能力。
4 結(jié)論
網(wǎng)絡(luò)教育開創(chuàng)了現(xiàn)代教育開放、交互、自主、和諧的教育新模式,適應(yīng)了現(xiàn)代教育的發(fā)展變革,軟件開發(fā)技術(shù)為網(wǎng)絡(luò)教育的發(fā)展提供了有效技術(shù)依據(jù)。實踐證明,隨著計算機應(yīng)用的普及和網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用,依托于計算機網(wǎng)絡(luò)的軟件開發(fā)技術(shù)將以多形式、多層次、多角度發(fā)展態(tài)勢,在教育領(lǐng)域乃至人類學(xué)習(xí)、工作、生活等全方位面臨更加廣闊的發(fā)展未來。
達(dá)芬奇,是文藝復(fù)興時期一位意大利籍、極富創(chuàng)新精神的科學(xué)家和藝術(shù)家;如今在半導(dǎo)體領(lǐng)域,它是強大視頻軟硬件技術(shù)的代名詞,是ti德州儀器又一soc開發(fā)的心血結(jié)晶。
德州儀器dsp業(yè)務(wù)發(fā)展經(jīng)理鄭小龍說,“達(dá)芬奇”(davinci)平臺的推出,旨在讓客戶成為“數(shù)字視頻的創(chuàng)意大師”;希望客戶能通過達(dá)芬奇平臺,更好地實現(xiàn)數(shù)字視頻的創(chuàng)意,這也是此平臺命名的初衷。鄭小龍介紹說,面向不同的應(yīng)用,達(dá)芬奇平臺目前共有三大家族;首先問世的是dm6446,它包括arm9和c64+內(nèi)核,以及視頻協(xié)處理器和視頻前端,并具有豐富的外圍和網(wǎng)絡(luò)接口,適合做講求視頻效能的編解碼工作。
ip可視電話的開發(fā)便是其一。需要同時對影像和聲音進(jìn)行編解碼,且對“雙向通信”的要求高。它的另一個典型應(yīng)用是高端攝像機,需內(nèi)置支持d1視頻壓縮碼流的編解碼功能(25幀/秒),以及支持h.264的視頻前端,才能獲得清晰圖像。第二個系列是dm6443,它是履行“裁減藝術(shù)”的低成本達(dá)芬奇平臺。雖然同樣包括arm9和c64+內(nèi)核,但主要側(cè)重在d1解碼的輸出功能。最后一種是專門針對數(shù)碼相機所推出的dsc系列,鎖定其低功耗和靜態(tài)影像的特性,特別強化電源管理增強型芯片和jpg2000算法部分,并對高端功能進(jìn)一步進(jìn)行裁減。同時由于其屬于最終消費品,故而也特別注重對高速總線的支持。
強化組態(tài)配置功能 加快設(shè)計速度
上市時間永遠(yuǎn)是數(shù)字多媒體產(chǎn)品研發(fā)團(tuán)隊工作壓力的最大來源,特別是soc化之后,系統(tǒng)的硬件成本雖然顯著降低,但固件開發(fā)的復(fù)雜度也因而提升。如果沒有適當(dāng)?shù)墓ぞ邊f(xié)助,研發(fā)團(tuán)隊可能得耗費數(shù)周以上的時間在整合并最佳化各種固件模塊的工作上。以手機系統(tǒng)設(shè)計為例,由于硬件的整合度已經(jīng)很高,因此研發(fā)團(tuán)隊在手機硬件設(shè)計上花不了太多時間,反倒是手機的軟件與固件的編寫與整合,占據(jù)了整個手機開發(fā)流程中大多數(shù)的時間。
在davinci這種高度整合的硬件平臺上,開發(fā)團(tuán)隊也會面臨相同的問題。因此德州儀器在最近所推出的軟件開發(fā)套件中,提供了一套expressdsp組態(tài)配置套件(configuration kit),讓開發(fā)人員可以把多個獨立軟件模塊整合成一個系統(tǒng)可執(zhí)行的輸出文件,這能為他們省下數(shù)個月繁雜耗時的手動整合工作。這套組態(tài)配置工具還能針對特定規(guī)格產(chǎn)生一組量身訂制的編碼解碼器,這不僅簡化程序代碼的重復(fù)使用,開發(fā)人員也有更多時間利用他們的工程資源為產(chǎn)品增加更多功能與價值。
此外,鑒于嵌入式系統(tǒng)采用linux操作系統(tǒng)已經(jīng)成為風(fēng)潮,在新版開發(fā)套件中,ti也從善如流地為davinci平臺的核心──dm644x處理器提供一套數(shù)字視頻最佳化linux操作系統(tǒng)。除了操作系統(tǒng)之外,此平臺也包含一套由montavista提供并通過系統(tǒng)測試和實際考驗的視頻應(yīng)用最佳化linux電路板支持套件。使用此平臺的廠商將直接從ti取得montavista操作系統(tǒng)和devrocket整合開發(fā)環(huán)境的使用授權(quán)和支持,他們可借此取得業(yè)界最豐富的linux應(yīng)用資源。
視頻codec一應(yīng)俱全 系統(tǒng)開發(fā)更容易
除了硬件效能與成本具有競爭力之外,完善的軟件開發(fā)工具環(huán)境與龐大的第三方支持社群,一直是德州儀器能夠穩(wěn)居手機應(yīng)用處理器市場與dsp器件市場的關(guān)鍵。在針對視頻應(yīng)用設(shè)計的達(dá)芬奇平臺推出后,ti也正試圖將以往帶來成功的策略復(fù)制到新平臺上,同時以更積極的做法來深化其市場優(yōu)勢。去年9月達(dá)芬奇產(chǎn)品正式發(fā)表,初試啼聲之后,日前另一波達(dá)芬奇效應(yīng)高潮宣告來臨!
隨著ti這套兼?zhèn)湟纛l/視頻、語音/影像編碼格式的全集成開發(fā)套件問世,將有效減小數(shù)字視頻系統(tǒng)的設(shè)計復(fù)雜性。此次的開發(fā)套件由3個部分組成:
expressdsp配置工具:利用首款優(yōu)化的數(shù)字視頻配置工具,盡可能減小設(shè)計工作的復(fù)雜性。
數(shù)據(jù)可視化工具:利用首款全面的圖形系統(tǒng)可視化工具實現(xiàn)設(shè)計效率與性能的最大化;這套首創(chuàng)圖形系統(tǒng)可視化技術(shù)可幫助實現(xiàn)系統(tǒng)互動分析、負(fù)載分布分析、瓶頸隔離、意外狀態(tài)識別、基準(zhǔn)應(yīng)用性能,并可在同一圖象上同時顯示arm與dsp的任務(wù)運行情況。
montavistalinux主板支持套件:充分利用首款針對達(dá)芬奇數(shù)字視頻而精心優(yōu)化的linux內(nèi)核加速應(yīng)用開發(fā),既可獲取montavista經(jīng)過驗證且通過系統(tǒng)測試的內(nèi)核與devrocketide以進(jìn)行l(wèi)inux編程,并可直接從ti獲得認(rèn)證與支持。
細(xì)心的讀者想必會納悶:為什么要刻意區(qū)別“音頻/語音”,以及“視頻/影像”呢?我們同樣也向ti提出了這么一個疑問。鄭小龍的回答是:因為目的不同。動態(tài)視頻的質(zhì)量指針是編解碼,而靜態(tài)影像是的關(guān)鍵詞在“像素”;同理,音頻看重的是“壓縮率不能太低”,但單純的語音應(yīng)用卻想盡可能地把碼流降到最低,因此有必要加以區(qū)別。
除了在組態(tài)配置與操作系統(tǒng)方面提供更完善的支持之外,ti與其開發(fā)社群在davinci平臺上所提供的codec種類與數(shù)量也正在快速提升。從圖3就可以看出,目前能在davinci平臺上執(zhí)行的codec幾乎已經(jīng)完整涵蓋所有視頻應(yīng)用。此外,為加速先期推廣,ti在推出此款開發(fā)套件時,同時也祭出60天免費評估計劃。所有ti自行研發(fā)的編解碼軟件將免費提供給采用davinci平臺的客戶免費評估60天,讓客戶的研發(fā)團(tuán)隊可以對各種視頻編解碼算法的效進(jìn)行深入評估之后,再決定是否要掏錢購買。在這60天內(nèi),如果客戶需要相關(guān)技術(shù)支持,ti的授權(quán)軟件供應(yīng)者也將提供4小時免費的支持服務(wù)。
1 項目可行性和建設(shè)目標(biāo)
1.1 編寫目的
互聯(lián)網(wǎng)行業(yè)對人才的需求量巨大。由于軟件行業(yè)是當(dāng)前平均薪酬最高、需求增長最快的行業(yè),不少年輕人并沒有考慮自身的特點,盲目地跨進(jìn)了這一行業(yè)而深感無所適從。同時不少公司也為如何選擇有潛力的軟件精英而傷透腦筋。
優(yōu)秀的軟件從業(yè)人員在認(rèn)知風(fēng)格上表現(xiàn)出顯著的群體特征。他們大多具有很強的推理能力、重組信息的能力和用計算機語言描述思維的能力。如何科學(xué)地量化這些特征,事關(guān)整個社會人力資源的合理分配和效益發(fā)揮。
本軟件的設(shè)計與編寫正是為了測評軟件開發(fā)人員的認(rèn)知風(fēng)格,通過對軟件設(shè)計人員的認(rèn)知風(fēng)格的研究來挖掘其顯著特性,以便為人們在專業(yè)選擇、職業(yè)選擇、職業(yè)教育、公司人才甄別和培訓(xùn)(根據(jù)認(rèn)知風(fēng)格進(jìn)行有目的的培訓(xùn))等方面提供指導(dǎo)和幫助,從而促進(jìn)軟件行業(yè)更健康、持久地發(fā)展。
1.2 理論基礎(chǔ)
賴丁和雷納給出一個結(jié)構(gòu)模式[1],開發(fā)了一套認(rèn)知風(fēng)格的綜合測評系統(tǒng)——認(rèn)知風(fēng)格評測系統(tǒng)(csa)。此系統(tǒng)直接測量“整體/分析”和“言語/表象維度”的兩端,由3個子測驗構(gòu)成[1]。第一個子測驗通過每次呈現(xiàn)一個要求判斷“對”和“錯”的陳述,來測試“言語/表象維度”。測驗中關(guān)于認(rèn)知范疇的信息的陳述和描述外觀的題目的陳述各占一半。賴丁假定表象型的個體由于物體相對容易被表征成心理表象,能夠迅速獲得用于比較的信息,從而對外觀性的陳述做出的反應(yīng)更快。同時假定言語型個體對認(rèn)知范疇的項目的反應(yīng)時間會更短,計算機記錄對每個項目的反應(yīng)時,并且計算“言語/表象”比率。低比率反應(yīng)的是言語型,高比率反應(yīng)的是表象型,居于中間位置的被認(rèn)為是雙重型。筆者采用這種方法,要求個體必須既閱讀言語型項目,又閱讀表象型項目,以便于閱讀能力和速度同時得到測試。
另外的兩個子測驗用于評估“整體/分析”維度。其中的第一個子測驗的項目要求個體判斷成對的復(fù)雜幾何圖形是否相同。假定“整體型”的個體對這種任務(wù)的反應(yīng)可能相對較快,其中的第二個子測驗的項目要求被試通過按兩個有標(biāo)記的鍵中的一個,來指出作為參考的簡單幾何圖形是否包含在復(fù)雜的幾何圖形中。假定“分析型”的個體把簡單圖形從鑲嵌它在內(nèi)的復(fù)雜幾何圖形中找出來的速度相對要快些。在進(jìn)行這一子測驗時,計算機同樣要記錄反應(yīng)時,計算整體加工與分析加工的比率。低比率反應(yīng)了整體性加工傾向。顯然,高比率反應(yīng)了分析性加工傾向,介于兩者之間的比率被稱為“中間型”。
由于在做這些測驗時,被試并不知道該測驗記錄反應(yīng)時,他們就能以一種輕松的方式接受測試任務(wù),反映出他們通常加工信息的方式。由于使用比率,總體的反應(yīng)速度并不影響風(fēng)格的測試結(jié)果。在賴丁的研究[2]中給出了開發(fā)相應(yīng)的csa的背景資料。
1.3 改進(jìn)與實現(xiàn)
假定軟件從業(yè)人員的認(rèn)知風(fēng)格在某維度更偏好些,采取ali reza rezaeia(2003)[3]等人對csa系統(tǒng)的建議,根據(jù)csa的測試模型進(jìn)行修正后制定了具體的4個子測驗。小組的成員對csa測試系統(tǒng)進(jìn)行改進(jìn),設(shè)計了一個“軟件行業(yè)從業(yè)人員的認(rèn)知風(fēng)格測試系統(tǒng)”。
賴丁的csa系統(tǒng)的“表象維度”的測試是用文字描述的,這可能使表象型的被試先要進(jìn)行“言語/表象”的轉(zhuǎn)換,增加對每個項目的反應(yīng)時。考慮到這一點,在測試系統(tǒng)的設(shè)計中,將表象測試題設(shè)計為用圖形來呈現(xiàn)。顯然,這將提高“表象維度”的測試效度。
考慮到測試時系統(tǒng)主要是根據(jù)“反應(yīng)時”作為衡量不同風(fēng)格的依據(jù),筆者首選c#系統(tǒng)進(jìn)行編程。用c#語言工具設(shè)計出用于測試軟件人員認(rèn)知風(fēng)格的系統(tǒng),將4個子測驗進(jìn)行綜合測試。由于在做這些測驗時,被試并不知道該測驗記錄反應(yīng)時,這樣他們就能以一種輕松的方式接受測試任務(wù),從而反映出他們通常加工信息的方式。由于使用了比率,所以總體的反應(yīng)速度并不影響風(fēng)格的測試結(jié)果。軟件開發(fā)人員認(rèn)知風(fēng)格偏好評測系統(tǒng)如圖1所示。
2 業(yè)務(wù)和功能需求分析
2.1 總體功能模塊
本系統(tǒng)主要完成4個主模塊,即被試信息管理、試題項目管理、四個分測評和統(tǒng)計分析。其中四個分測評包含兩個維度的四個分測試,即整體/分析維度和言語/表象維度的四個分測試。
2.2 被試信息管理
被試信息管理是用于記錄被試信息,便于隨后的統(tǒng)計與分析的,所以應(yīng)該具備被試的職業(yè)背景選擇、性別、成長環(huán)境和學(xué)習(xí)偏好等相關(guān)數(shù)據(jù)。
2.3 四個子測驗
1)“表象維度”測試。第一個子測評是以圖形方式呈現(xiàn)的對外觀認(rèn)知的項目,用來測試“表象維度”。假設(shè)表象型的個體由于物體相對容易被表征成心理表象,從而對圖形題干將會做出更快的反應(yīng),并且從這些表象中能夠直接而迅速地獲得用于比較的信息。樣題如圖2所示,要求被試盡快反應(yīng)出右邊的字母是否是左邊字母平面旋轉(zhuǎn)的結(jié)果。
2)“言語維度”測試。第二個子測驗包含認(rèn)知范疇的信息來測試言語維度。言語測試題如:“服法:每日服四片,日服三次。兒童減半,或遵醫(yī)囑。溫開水送下”,表明兒童每天要服6片。言語型的個體對認(rèn)知范疇的項目反應(yīng)時間更短,因為表象型的個體需要先將抽象的言語轉(zhuǎn)換為形象來表征。計算機記錄被試對每個項目的反應(yīng)時。
3)“整體維度”測試。第三個子測驗包含有成對的簡單幾何圖形組(如圖3所示)。此子系統(tǒng)要求個體判斷同一組的圖形是否相同,從而用來評估整體維度。
4)“分析維度”測試。第四個子測驗項目包含一個簡單圖形和一個復(fù)雜圖形(如圖4所示),它要求被試在復(fù)雜圖形中找到簡單圖形用來評估分析維度,這一子測驗所考察的是個體對包含在復(fù)雜圖形里的簡單圖形的識別能力。它假定分析型的人在這一作業(yè)中做得更快。
2.4 被試認(rèn)知風(fēng)格所屬區(qū)間
測試時,系統(tǒng)會隨機從每個子測驗的測試題目中選擇10個題目共組成40題。由于測試中考慮到被試對題目可能沒有興趣,或者大多數(shù)題目沒有經(jīng)過大腦的認(rèn)真思考就回答會影響測試分析的最終結(jié)果,因此必須對測試卷的有效性進(jìn)行合理判斷。如果一個測試的每一個項目的錯誤率達(dá)到30%,系統(tǒng)可判定該測試卷為無效試卷,不計于有效樣本。
3 結(jié)語
系統(tǒng)在被試測試開始過程中,記錄下被試對每一個子測驗的各個項目的反應(yīng)時,然后通過計算言語和表象平均反應(yīng)時的比率,作為整體加工與分析加工比率值。低比率反應(yīng)了整體加工傾向,高比率反應(yīng)了分析加工傾向,界于這兩者之間的比率為中間型。同理,計算出言語和表象反應(yīng)時的比率。低比率反應(yīng)了言語維度傾向,高比率反應(yīng)了表象維度傾向,比率界于這兩者之間的屬于中間型。
計算機應(yīng)用軟件開發(fā)中編程語言的選擇研究
隨著社會的發(fā)展,應(yīng)用軟件在我們的生活中所發(fā)揮的作用越來越大。對于軟件開發(fā)企業(yè)而言,這既是機遇也是挑戰(zhàn),如何提升軟件開發(fā)的效率和質(zhì)量,進(jìn)而提升企業(yè)的競爭力成為了當(dāng)前的一個重要課題。這種背景下,做好計算機應(yīng)用軟件開發(fā)中編程語言選擇的研究有著重要的意義。
1 常用編程語言分析
了解常用編程語言的特征和優(yōu)缺點既是我們進(jìn)行語言選擇的前提,也是保證我們編程工作順利開展的有效手段。
1.1 c語言:c語言是介于高級語言和匯編語言之間的語言,也被我們稱之為中級語言,它集中了匯編語言和高級語言的很多優(yōu)勢。在最初的時候,c語言主要應(yīng)用于unix系統(tǒng),后來隨著人們對其強大性的認(rèn)識越來越多,到了上個世紀(jì)的90年代,這一語言已經(jīng)成功的應(yīng)用到了其他操作系統(tǒng)之中。它一直屬于最為優(yōu)秀的編程語言之一。
具體來說,c語言的特點主要可以分為以下幾個方面:首先,c語言屬于結(jié)構(gòu)化語言,因此,它具有非常清晰的層次,對于我們使用模塊化的方式進(jìn)行程序的組織非常有利,也便于維護(hù)和調(diào)試。其次,c語言中不僅數(shù)據(jù)類型以及運算符非常豐富,還能夠?qū)?nèi)存中的物理地址進(jìn)行直接的訪問,方便我們進(jìn)行位操作。第三,它的效率非常高,而且移植性比較強,因此,能夠移植到各種計算機上,這就方便形成很多版本的c語言。第四,由于可以利用c語言實現(xiàn)位操作以及字節(jié)操作,因此,相當(dāng)于利用這一語言能夠?qū)崿F(xiàn)部分匯編語言的作用。最后,c語言編寫的代碼具有較高的質(zhì)量,而且程序在執(zhí)行起來效率比較高。
1.2 c++語言。1986年,at&t貝爾實驗室開發(fā)出來了c++語言,主要是利用數(shù)據(jù)封裝來減少程序變量的不利影響,進(jìn)而提升程序的可靠性。它的多繼承機制可以更好的對對象的行為及屬性進(jìn)行描述,雖然c++屬于c語言的擴展,但是,我們可以將其作為一種全新的語言對待。
c++語言的特點主要有:面向?qū)ο?、封裝、繼承以及多態(tài)性。具體來說,由于c++語言屬于c語言的擴展,所以,它具有很多c語言的特點。另外,在c遠(yuǎn)的基礎(chǔ)上,c++加入了面向?qū)ο蟮木幊趟枷?,這就是其能夠更好地適應(yīng)當(dāng)前大規(guī)模項目的需求,舉例來說,當(dāng)前很多系統(tǒng)級編程使用的都是c++語言。
1.3 java語言。java語言相對于c++語言來說,在簡潔性以及安全性有著更大的優(yōu)勢,具體來說,其主要的特點有:
首先,簡單性:這一點和c++語言比較類似,但是它減少了c++語言中比較容易導(dǎo)致程序錯誤的地方,比如指針以及內(nèi)存管理。其次,java語言屬于完全面向?qū)ο笳Z言,這一點和smalltalk比較類似,當(dāng)然相對于smalltalk,它的很多方面又存在著巨大的優(yōu)勢。第三,分布式,在java語言中,包涵了支持基于tcp/ip協(xié)議的子庫。第四,健壯性,java語言中的類型檢查可以幫助我們查出很多軟件開發(fā)初期出現(xiàn)的錯誤,降低內(nèi)存出錯的幾率。第五,結(jié)構(gòu)中立,在使用java語言編程的時候,會把程序編譯為中間文件格式,也就是說只要存在java運行系統(tǒng)的機器都能夠?qū)@種中間代碼進(jìn)行執(zhí)行。第六,安全,它刪除了手動釋放內(nèi)存等,很好的防止了非法的內(nèi)存操作。
此外,除了以上的優(yōu)勢之外,java語言還具備可移植性好、解釋性強、高性能以及多線程等特點,這里限于篇幅不再對其進(jìn)行詳細(xì)的分析。當(dāng)前,java語言主要應(yīng)用在web瀏覽器以及網(wǎng)絡(luò)應(yīng)用系統(tǒng)之中。
1.4 c#語言。這種語言有著類型安全、精確、簡單以及面向?qū)ο蟮奶攸c。它屬于.net的代表語言。具體來說,其特點是:
首先,完全面向?qū)ο蟆F浯?,對于分布式有很強的支持,也就是說其處理的過程是分布在服務(wù)器以及客戶機上的,從這張語言的誕生過
程我們可以發(fā)現(xiàn)其注定就可以很好的解決分布式的問題。第三,健壯,在檢查程序錯誤以及運行錯誤方面,c#語言一點不比java語言要差,它使用的也是自動管理內(nèi)存機制。第四,靈活性比較高,比如在默認(rèn)情況下,c#語言是不可以使用指針的,但是如果有必要我們可以將指針打開來使用。第五,安全性比較高,它的安全性是由.net平臺來提供的。
此外,c#語言還具備可移植性、解釋性、高性能、多線程、組件模式等特點,總體來說,它屬于java流行之后的有一種語言,但是由于微軟系統(tǒng)的支持,使其在windows方面相對于java有著更大的優(yōu)勢。當(dāng)前,這一語言的主要應(yīng)用有網(wǎng)絡(luò)編程、數(shù)據(jù)庫、窗體編程等方面。
1.5 pascal語言。這是計算機通用的高級程序設(shè)計語言,它的主要特點是結(jié)構(gòu)化形式比較嚴(yán)格、數(shù)據(jù)類型非常豐富、查錯能力較高以及運行的效率高等。正是由于這些優(yōu)勢,使得這一語言可以對各種算法以及數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述。另外,利用這種語言,可以幫助我們編程者保持一個很好的習(xí)慣和設(shè)計風(fēng)格。
總體來說,每一種語言都有其獨特的優(yōu)勢和應(yīng)用范圍,在計算機應(yīng)用軟件開發(fā)過程中如果能夠使用最合適的語言將極大地降低我們的工作量,提升我們的工作效率。
2 計算機應(yīng)用軟件開發(fā)中編程語言選擇的原則
了解了各種編程語言的特點并不能幫助選擇出最合適的語言,我們還要掌握編程語言選擇過程中的原則:
首先,我們在確定編程語言以前充分考慮開發(fā)項目的整體架構(gòu),一般情況下,并不是說整個系統(tǒng)都必須要使用同一種編程語言進(jìn)行編寫,語言的選擇將會給組件分解及連接帶了較大的影響。其次,對開銷比較大的操作要我們要進(jìn)行認(rèn)真的考慮,比如圖形渲染、密碼學(xué)、視頻處理以及信號處理等操作,我們最好選擇靜態(tài)類型的語言。第三,如果條件允許,我們要盡量使用最為熟悉的語言,通過這種做法可以更好的對軟件工程項目時間表進(jìn)行預(yù)測,進(jìn)而降低了變數(shù)出現(xiàn)的幾率。第四,假如軟件主要應(yīng)用于重復(fù)處理手工勞動,那么我們要選擇靈活、簡單的編程語言,如果某種語言可以與生俱來來實現(xiàn)這些功能則最佳。第五,對開發(fā)硬件環(huán)境進(jìn)行充分的考慮,并不是全部的編程語言都可以很好地適應(yīng)于受限的硬件環(huán)境。一般來說,雖然當(dāng)前的硬件基本已經(jīng)足夠了,但是對于以下較為特殊的應(yīng)用來說,這一問題依舊嚴(yán)重。所以,要選擇使編出來的程序可以較好的運行在這種環(huán)境中的語言。第六,不論應(yīng)用軟件開發(fā)過程中使用了哪種編程語言,確保編出來的程序可以實現(xiàn)快速調(diào)整是一項重要的前提,所以,快速原型是很重要的,基于此,動態(tài)語言是一個不錯的選擇,它可以和和很多相關(guān)庫進(jìn)行結(jié)合。第七,支持平臺也是我們在編程語言選擇過程中需要考慮的因素,比如,假如我們代碼要在瀏覽器中運行,那么就可以排除很多不合適的編程語言。第八,在編程過程中,有些文件格式將會涉及到位操作,所以,我們還要對項目是否需要大量位操作進(jìn)行考慮,一般來說,如果有這方面的要求,我們最好選擇容易位操作而且可以提供合適數(shù)據(jù)類型的編程語言。最后,針對一些特殊領(lǐng)域,我們可以考慮使用專業(yè)的編程語言,它既能夠節(jié)省很多的工作時間,還可以防止編程出現(xiàn)較大的失誤。
3 結(jié)語
軟件開發(fā)過程中,編程語言的選擇和編程的效率、質(zhì)量有著非常大的關(guān)系,做好這一工作可以使我們的工作事半功倍。因此,在具體的工作中,我們應(yīng)加強學(xué)習(xí),對這些編程語言特點進(jìn)行深入的了解,以尋找出最合適的編程語言。
在一般應(yīng)用軟件系統(tǒng)開發(fā)時,程序員只需要考慮軟件系統(tǒng)的功能設(shè)計,硬件部分直接根據(jù)軟件需求購買即可。嵌入式軟件的開發(fā)則需要軟硬件綜合開發(fā),這有兩方面的原因:一方面,任何一個嵌入式產(chǎn)品都是軟硬件的結(jié)合體;另一方面,一旦嵌入式產(chǎn)品研制完成后,軟件就已經(jīng)固化在硬件環(huán)境中,用戶不能對其修改。嵌入式軟件的這一特點決定了嵌入式應(yīng)用開發(fā)方式不同于傳統(tǒng)的軟件工程方法。
1 嵌入式軟件開發(fā)的特點
嵌入式軟件的開發(fā)具有如下幾方面的特點:
1)需要交叉開發(fā)工具和環(huán)境。由于嵌入式軟件本身不具備自主開發(fā)能力,即使設(shè)計完成以后用戶通常也不能對其中的程序功能進(jìn)行修改,因此必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。這些工具和環(huán)境一般基于通用計算機上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號示波器等。開發(fā)時往往有主機和目標(biāo)機交叉開發(fā)的概念,主機用于程序的開發(fā)、調(diào)試,目標(biāo)機作為最后的執(zhí)行機構(gòu)。開發(fā)時主機和目標(biāo)機需要交替結(jié)合進(jìn)行。
2)軟硬件協(xié)同設(shè)計。軟硬件協(xié)同設(shè)計涉及以下方面:嵌入式軟件設(shè)計、實時系統(tǒng)設(shè)計、硬件設(shè)計和軟件設(shè)計。軟硬件協(xié)同設(shè)計強調(diào)硬件與軟件的協(xié)同性與整合性、軟件與硬件的可裁減,以滿足系統(tǒng)對功能、成本、體積和功耗等要求。
3)嵌入式軟件開發(fā)人員以應(yīng)用專家為主。通用計算機的開發(fā)人員一般是計算機科學(xué)或計算機工程方面的專業(yè)人士,而嵌入式軟件則是要和各個不同行業(yè)的應(yīng)用相結(jié)合的,要求更多的計算機以外的專業(yè)知識,其開發(fā)人員往往是各個應(yīng)用領(lǐng)域的專家。
4)軟件要求固態(tài)化存儲。為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲于磁盤等載體中。
5)軟件代碼高質(zhì)量、高可靠性。盡管半導(dǎo)體技術(shù)的發(fā)展使處理器速度不斷提高,片上存儲器容量不斷增加,但在大多數(shù)應(yīng)用中,存儲空間仍然是寶貴的,還存在實時性的要求。為此要求程序編寫和編譯工具的質(zhì)量要高,以減少程序二進(jìn)制代碼長度,提高執(zhí)行速度。嵌入式軟件的核心是系統(tǒng)軟件和應(yīng)用軟件,由于存儲空間有限,因而要求軟件代碼緊湊、可靠,大多對實時性有嚴(yán)格要求。
6)系統(tǒng)軟件的高實時性。在多任務(wù)嵌入式軟件中,對重要性各不相同的任務(wù)進(jìn)行統(tǒng)籌兼顧和合理調(diào)度是保證每個任務(wù)及時執(zhí)行的關(guān)鍵,單純通過提高處理器速度是無法完成和沒有效率的,這種任務(wù)調(diào)度只能由優(yōu)化編寫的系統(tǒng)軟件來完成,因此系統(tǒng)軟件的高實時性是基本要求。嵌入式軟件應(yīng)用程序雖然可以沒有操作系統(tǒng)直接在芯片上運行,但是為了合理地調(diào)度多任務(wù),利用系統(tǒng)資源,系統(tǒng)一般以成熟的實時操作系統(tǒng)作為開發(fā)平臺,這樣才能保證程序執(zhí)行的實時性、可靠性,并減少開發(fā)時間,保障軟件質(zhì)量。
2 軟硬件協(xié)同設(shè)計概念
嵌入式軟件設(shè)計是使用一組物理硬件和軟件來完成所需功能的過程。系統(tǒng)是指任何由硬件、軟件或者兩者的結(jié)合來構(gòu)成的功能設(shè)備。由于嵌入式軟件是一個專用系統(tǒng),所以在嵌入式產(chǎn)品的設(shè)計過程中,軟件設(shè)計和硬件設(shè)計是緊密結(jié)合、相互協(xié)調(diào)的。這就產(chǎn)生了一種全新的發(fā)展中的設(shè)計理論——軟硬件協(xié)同設(shè)計。這種方法的特點是,在設(shè)計時從系統(tǒng)功能的實現(xiàn)角度考慮,把實現(xiàn)時的軟硬件同時考慮進(jìn)去,硬件設(shè)計包括芯片級“功能定制”設(shè)計。既可最大限度地利用有效資源,縮短開發(fā)周期,又能取得更好的設(shè)計效果。
系統(tǒng)協(xié)同設(shè)計的整個流程從確定系統(tǒng)要求開始,包含系統(tǒng)要求的功能、性能、功耗、成本、可靠性和開發(fā)時間等。這些要求形成了由項目開發(fā)小組和市場專家共同制定的初步說明文檔。系統(tǒng)設(shè)計首先確定所需的功能。復(fù)雜系統(tǒng)設(shè)計最常用的方法是將整個系統(tǒng)劃分為較簡單的子系統(tǒng)及這些子系統(tǒng)的模塊組合,然后以一種選定的語言對各個對象子系統(tǒng)加以描述,產(chǎn)生設(shè)計說明文檔。其次,是把系統(tǒng)功能轉(zhuǎn)換成組織結(jié)構(gòu),將抽象的功能描述模型轉(zhuǎn)換成組織結(jié)構(gòu)模型。由于針對一個系統(tǒng)可建立多種模型,因此應(yīng)根據(jù)系統(tǒng)的仿真和先前的經(jīng)驗米選擇模型。
3 嵌入式軟件開發(fā)的方法論
在建立一個完整的嵌入式軟件或是產(chǎn)品時,大部分系統(tǒng)都很復(fù)雜,不但功能規(guī)格很多,還必須考慮例如價格、性能等其他因素,否則很容易做出一個失敗的系統(tǒng)或是產(chǎn)品。因此,在進(jìn)行系統(tǒng)開發(fā)之前,必須先了解一些系統(tǒng)設(shè)計技術(shù),使得在開發(fā)過程中更為順利。一般來說,產(chǎn)品設(shè)計的過程會經(jīng)歷幾個步驟,為了確保這些步驟的合理性,我們需要一個設(shè)計方法論來面對整個設(shè)計過程。采用方法論有以下三個重要理由。
確認(rèn)所做的每一件事情都是必須要做的,不做無謂的工作,也不漏掉關(guān)鍵性的重要工作,其中包含性能最佳化或是功能測試。
根據(jù)設(shè)計方法論可以發(fā)展出計算機輔助工具或是設(shè)計經(jīng)驗累積,汲取每一次產(chǎn)品開發(fā)的經(jīng)驗。再經(jīng)過量化之后,可以發(fā)展出一套工具或是方法,讓往后的產(chǎn)品設(shè)計步入自動化。
開發(fā)團(tuán)隊遵循同一套方法論,可以讓團(tuán)隊成員更容易彼此溝通。每個人都能在短時間內(nèi)了解整體過程中將經(jīng)歷哪些過程,需要何種支持與接收到何種結(jié)果。此外,也容易通過一套已經(jīng)定義好的方法論,彼此相互合作協(xié)調(diào)。設(shè)計過程的目標(biāo)是做出有一定用途且具有創(chuàng)新點的產(chǎn)品。產(chǎn)品的典型規(guī)格包含功能性、制造成本、性能表現(xiàn)、省電考慮和其他特性。
4 結(jié)束語
嵌入式系統(tǒng)開發(fā)是在開發(fā)過程中綜合考慮軟硬件環(huán)境和需求,這樣開發(fā)的軟件產(chǎn)品不僅能使系統(tǒng)與硬件的驅(qū)動默契更高,還能有效縮短開發(fā)周期。由于能夠有效解決軟件危機帶來的危害,嵌入式系統(tǒng)開發(fā)成為系統(tǒng)開發(fā)的主要趨勢也是不可避免的。
引言
嵌人式系統(tǒng)開發(fā)經(jīng)過30多年的發(fā)展,到現(xiàn)在算是一個成熟的技術(shù)了。由此可以從總體上確認(rèn)在嵌入式系統(tǒng)開發(fā)展過程中出現(xiàn)的幾種明顯趨勢,這些趨勢指出了一系列新興的關(guān)鍵技術(shù)。
1 微處理器技術(shù)
最早的微處理器是4位和8位器件。由于制造技術(shù)越來越復(fù)雜,集成的單片8位微處理器開始出現(xiàn),16位微處理器也開始使用。隨著微電子技術(shù)的發(fā)展,16位的微處理器已得到廣泛的應(yīng)用。32位架構(gòu)的器件逐漸占領(lǐng)了高端的應(yīng)用市場,第一代的32位器件都是cisc架構(gòu),但目前,越來越多的risc芯片正在提供更高的性能。嵌人式系統(tǒng)設(shè)計者選擇微處理器的范圍比以前大了,必須根據(jù)性能、需求、支持、可用性和價格來進(jìn)行選擇。
2 系統(tǒng)架構(gòu)
隨著微處理器的發(fā)展系統(tǒng)架構(gòu)也在進(jìn)步。最早的系統(tǒng),是由cpu和一些邏輯器件組成的。多年以來,系統(tǒng)變得日益復(fù)雜,但都還可以使用同樣的調(diào)試技術(shù)—電路仿真、芯片級調(diào)試、rom監(jiān)控器以及指令集模擬。嵌入式系統(tǒng)日益強勁,而功能需求的增長則更快很多設(shè)計者開始重新審視微處理器和它們的用法。
3 設(shè)計組成
嵌入式系統(tǒng)發(fā)展的最初階段。所有的開發(fā)包括軟件和硬件設(shè)計,通常都是一個工程師來承擔(dān)。軟件在整個工作址中的比例很小,大約5%-10%。隨著時間的推移軟件開發(fā)占工程時間的比例持續(xù)增長。至20世紀(jì)80年代中期,軟件開發(fā)已經(jīng)是由專業(yè)歡件人員來做,所占比例一般已超過整個開發(fā)工作量的50%。
在最近幾年,雖然硬件設(shè)計變得更加復(fù)雜,但軟件的份量也急劇增長,目前通常占到開發(fā)總量70%-80%。因此,需要有軟件團(tuán)隊參與,同時也產(chǎn)生了一些新的挑戰(zhàn)。這些挑戰(zhàn)中的一個,就是要有可用的硬件平臺來進(jìn)行軟件測試。由于要在更短的時間內(nèi)開發(fā)更多的軟件,就需要盡快建立測試環(huán)境。發(fā)出更多的軟件,就需要盡快建立測試環(huán)境。有多種可行的方法,如本地代碼執(zhí)行原型環(huán)境、指令集軟仿真(模擬),以及使用標(biāo)準(zhǔn)的、低成本的、現(xiàn)成的評估板。此外,低成本的主機一目標(biāo)機連接技術(shù),也變得越來越普及,有代表性的就是jtag接口。
4 軟件內(nèi)容
軟件開發(fā)所占總時間的比例一直在增加。同時,來自全球貿(mào)易和競爭的壓力使得產(chǎn)品投放市場的時間也一直在縮短。這極大地影響了設(shè)計的策略。最早的設(shè)計相當(dāng)簡單,僅僅由自己設(shè)計的應(yīng)用代碼組成。隨著系統(tǒng)的復(fù)雜度增加,多任務(wù)的模型被軟件開發(fā)者廣泛采納,很多開發(fā)者選擇標(biāo)準(zhǔn)的、商用的實時操作系統(tǒng)產(chǎn)品。隨著各個標(biāo)準(zhǔn)的進(jìn)一步被采納,買來的軟件,或者說有“知識產(chǎn)權(quán)”的軟件所占的比例正穩(wěn)步增長。這個趨勢給了軟件開發(fā)者很多啟示。集成標(biāo)準(zhǔn)的軟件組件—和應(yīng)用代碼及其他—是我們所關(guān)心的。在多任務(wù)背景下調(diào)試是另一個值得關(guān)注的問題。與選擇知識產(chǎn)權(quán)有關(guān)的商業(yè)決定尤為復(fù)雜;除了當(dāng)前的要求之外,還有將來的(例如移植到別的處理器)也必須加以考慮。
5 編程語言
對于早期的4位和8位微處理器,匯編語言是唯一的選擇。隨著16位微處理器技術(shù)成為現(xiàn)實,出現(xiàn)了幾種可供選擇的語言。有pascal和c語言和pl/m語言。對某些類型的系統(tǒng)來說,forth語言也曾很流行,隨著時間推移,32位技術(shù)的使用日益增多,出現(xiàn)了c和ada。后者在國防部的系統(tǒng)中被普遍使用。
在嵌入式軟件開發(fā)中,c++開始逐步取代c語言?,F(xiàn)在,1/4~1/3的嵌入式系統(tǒng)代碼是用c++編寫的。java語言當(dāng)初是專門為嵌人式應(yīng)用開發(fā)的,在要求運行時重新配置的應(yīng)用場合,它找到了一席之地。統(tǒng)一建模語言(uml)也成為高級設(shè)計方法學(xué)的最流行選擇。
6 軟件隊伍的規(guī)模和分布
正如先前討論的一樣,最初的嵌人式系統(tǒng)設(shè)計只要一個人就夠了。在適當(dāng)?shù)臅r候,因?qū)I(yè)化,產(chǎn)生了致力于軟件開發(fā)的工程師。下一步就是建立嵌人式軟件開發(fā)團(tuán)隊。管理軟件開發(fā)在任何情況下都是一個挑戰(zhàn),嵌入式系統(tǒng)開發(fā)也不例外,只是有細(xì)微差別。使用傳統(tǒng)的編程技術(shù)———過程語言,如c語言和匯編語言,團(tuán)隊里的大部分成員都需要對整個系統(tǒng)了解比較全面。隨著團(tuán)隊變大,這就變得越來越不可行。價況住往是,團(tuán)隊里有一些特殊的人才,他們對某些專門領(lǐng)域很在行。為了有效地管理團(tuán)隊必須使用合適的策略,將他們的專長封裝起來。盡可能使一個專家的工作成果能夠被非專家以安全、可靠和直觀的方式加以使用.在這種情況下,面向?qū)ο缶幊碳夹g(shù)找到應(yīng)用點。
雖然有很多非常大的公司,但軟件隊伍不是簡單的人員擴充他們正在變成分布式的。團(tuán)隊的一些成員在一個地方,而其他的可能在別處。這些地點甚至有可能位于不同的國家。這種安排在歐洲很常見,在那里,真正關(guān)心的可能是交流的語言。其他地方,時區(qū)可能是個問題(可能也是一個優(yōu)勢,因為分布式的團(tuán)隊可以全天候工作)。隨著新興的技術(shù)中心(如印度)廣泛崛起,上述情況越來越普遍。在這一背景不,軟件組件的可重用性需求就變得很常見了。
7 uml和建模
最近幾年,uml己經(jīng)成為一項關(guān)鍵的設(shè)計方法,它和逐漸增七的嵌人式軟件團(tuán)隊規(guī)模關(guān)系密切。廣義上說,使用設(shè)計工具的方式有2種:或者是作為編寫代碼的指導(dǎo),或者就作為直接生成代碼的一種手段。對于嵌人式軟件來說,代碼生成是有爭議的,它可能會被爭論(而且還很有道理)—每一個系統(tǒng)都是不同的,都有各自的特殊需求。這正是xtuml(可執(zhí)行和可翻譯的uml)吸引人的地方,因為它使得應(yīng)用與架構(gòu)清晰地分離了。這里所遵循的,是與面向?qū)ο缶幊掏瑯拥脑瓌t—使用工具和技術(shù)來平衡專家意見。
追蹤所有被當(dāng)前各種嵌人式系統(tǒng)開發(fā)趨勢所驅(qū)動的新技術(shù)并非易事。孤立地看待其中任何一項技術(shù)也是毫無意義的,因為它們之間有著許多聯(lián)系。例如,多任務(wù)與多處理器調(diào)試相關(guān);基于標(biāo)準(zhǔn)的rtos技術(shù)對處理器移植來說真是件幸事;使用設(shè)計方法學(xué)可以令實現(xiàn)更容易。
隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)已經(jīng)廣泛滲透到我們的工作、生活中,從家用電器、手持通信設(shè)備、汽車、到信息終端、儀器儀表、航天航空、軍事裝備、制造工業(yè)、過程控制等,都充斥著嵌入式系統(tǒng)的應(yīng)用。
隨著嵌入式軟件快速發(fā)展,傳統(tǒng)嵌入式系統(tǒng)的開發(fā)手段已越來越難以滿足日益增長的復(fù)雜性和質(zhì)量要求。當(dāng)前,嵌入式軟件開發(fā)大多采用文檔形式。但文檔形式嵌入式軟件開發(fā)存在著許多弊端:文檔本身在傳遞過程中是不可測試的,因此在軟件開發(fā)的各個階段之間形成了溝通障礙。由于不可測試,需求的錯誤被逐層積累,只有系統(tǒng)測試時才能發(fā)現(xiàn)。這就產(chǎn)生了矛盾:大部分錯誤已積累形成,但只能在后面發(fā)現(xiàn)。因此在糾正錯誤時,文檔架構(gòu)代價高昂。
為了解決上述傳統(tǒng)嵌入式軟件開發(fā)存在的問題,提高嵌入式軟件開發(fā)的開發(fā)效率、保證嵌入式軟件的質(zhì)量,本文探討將模型驅(qū)動開發(fā)技術(shù)應(yīng)用到嵌入式軟件開發(fā)過程。
一、模型驅(qū)動開發(fā)技術(shù)
模型驅(qū)動開發(fā)(model-driven development,mdd )是mda中的一部分。mda是模型驅(qū)動體系架構(gòu)(model-driven architecture)的簡稱,由對象管理組織(object management group,omg)所驅(qū)動。mda表示了一種模型驅(qū)動開發(fā)方法的概念框架。然而,盡管完整的mda還沒有成為現(xiàn)實,但模型驅(qū)動開發(fā)現(xiàn)在已成為可能[1]。
軟件開發(fā)一般要經(jīng)歷軟件需求分析、軟件概要設(shè)計、軟件詳細(xì)設(shè)計、編碼實現(xiàn)、軟件測試幾個階段。每個階段都可以產(chǎn)生每個階段的相應(yīng)模型。這些產(chǎn)生的模型,可以在工具環(huán)境中進(jìn)行調(diào)試驗證,盡可能在系統(tǒng)開發(fā)的早期發(fā)現(xiàn)其中的錯誤,同時也可以克服采用自然語言作為文檔工具出現(xiàn)的不準(zhǔn)確、不科學(xué)的描述。在開發(fā)的最后階段,考慮軟硬件平臺的實現(xiàn),保證開發(fā)過程與軟硬件平臺的無關(guān)性,有利于系統(tǒng)的開放性和可移植性的提高。整個過程也是一個不斷迭代開發(fā)的過程,這種通過可調(diào)試模型驅(qū)動的迭代方式,由于不是首先從浩瀚復(fù)雜的代碼中入手,而是首先從清晰易懂的模型出發(fā),使得系統(tǒng)的更新變得比較容易[2]。
二、模型驅(qū)動開發(fā)的優(yōu)勢
模型驅(qū)動開發(fā)的一個優(yōu)點是可以消除開發(fā)過程中各參與方之間的隔閡,需求工程師,系統(tǒng)分析員,軟件開發(fā)人員和測試者都可以使用同一種預(yù)言。他們可能專注于語言的不同部分,以滿足他們的需要,但他們都會共用一些基本的結(jié)構(gòu),并對他們工作的系統(tǒng)有一個統(tǒng)一的認(rèn)識。而且使用統(tǒng)一的語言有助于消除角色間的界限,使得在項目的不同階段人員轉(zhuǎn)換到被需要的角色更加容易。還有另外一些人需要知道項目的進(jìn)展情況,包括項目領(lǐng)導(dǎo)、經(jīng)理和評估委員會。更重要的是,用戶也需要知道什么將會被交付,需要加入到整個開發(fā)過程中,與創(chuàng)建系統(tǒng)的不同人員進(jìn)行交流。一種圖形建模語言,比如統(tǒng)一建模語言(unified modeling language,uml),使得各參與方之間的交流成為可能,幫助架起參與方與某些系統(tǒng)復(fù)雜功能之間的橋梁。模型驅(qū)動開發(fā)正逐漸獲得公司高級管理者注意,其中的一個主要原因就是這種能夠逐漸增加用戶、管理層和大的組織機構(gòu)參與的能力。
模型驅(qū)動開發(fā)的另一個優(yōu)點是把系統(tǒng)和軟件開發(fā)更多地納入到系統(tǒng)和軟件工程規(guī)則中。模型驅(qū)動開發(fā)是關(guān)于開發(fā)和維護(hù)系統(tǒng)的,系統(tǒng)并不只是由應(yīng)用程序組成,還包括其他的部分,使得人們可以理解這個應(yīng)用程序。一個模型可以包含明顯可執(zhí)行的部分,但它幾乎總是還有其他部分,并不能被運行,比如需求、系統(tǒng)的粗略框架、分析模型。在項目開發(fā)時,所有這些都應(yīng)該被創(chuàng)建出來并保持最新,它們對于將來的維護(hù)非常重要。
模型驅(qū)動開發(fā)可以使嵌入式軟件開發(fā)過程花費更少的時間用于實現(xiàn)和測試階段,更多的時間用于分析和設(shè)計階段,當(dāng)?shù)貜?fù)這些過程時,會發(fā)現(xiàn),這種方式的好處是實實在在的。
三、模型驅(qū)動開發(fā)在嵌入式軟件開發(fā)中的應(yīng)用前景
目前,模型驅(qū)動開發(fā)技術(shù)還處于新興階段,在嵌入式軟件開發(fā)領(lǐng)域的發(fā)展仍然處于起步階段。在一段時間內(nèi),傳統(tǒng)的文檔形式軟件開發(fā)仍將是主流的嵌入式軟件開發(fā)手段。但傳統(tǒng)的嵌入式軟件開發(fā)存在的諸多弊端決定了其必將被新的開發(fā)技術(shù)所取代,而模型驅(qū)動開發(fā)技術(shù)正是解決這些問題的有效手段。
嵌入式軟件開發(fā)領(lǐng)域?qū)I(yè)技術(shù)人員正在不斷年輕化,他們能夠更快的接受新的技術(shù)理念,積累新的技術(shù)知識。因此,他們會持續(xù)關(guān)注模型驅(qū)動開發(fā)技術(shù)的發(fā)展,并研究將模型驅(qū)動開發(fā)技術(shù)應(yīng)用到嵌入式軟件開發(fā)過程中的契合點。在年輕的專業(yè)技術(shù)人員逐漸占據(jù)主導(dǎo)地位后,必將會逐漸把積累的先進(jìn)技術(shù)理念和知識應(yīng)用到工程實踐中去,采用模型驅(qū)動開發(fā)技術(shù)這種更合理、更有效的技術(shù)手段去保證項目開發(fā)的效率和質(zhì)量。
四、結(jié)論
隨著模型驅(qū)動開發(fā)技術(shù)的不斷發(fā)展、完善和推廣,相關(guān)模型驅(qū)動開發(fā)工具環(huán)境的不斷出現(xiàn),以及嵌入式軟件領(lǐng)域的系統(tǒng)設(shè)計人員和開發(fā)人員對于模型驅(qū)動技術(shù)的不斷深入了解,模型驅(qū)動開發(fā)技術(shù)在嵌入式軟件開發(fā)中必將得到廣泛應(yīng)用。
論文關(guān)鍵詞:網(wǎng)絡(luò)應(yīng)用軟件 軟件開發(fā)生命周期osd動 安全性測試 項目設(shè)計 單元測試 集成測試 驗收側(cè)試
論文摘要:文章論述了軟件開發(fā)生命周期中每個階段添加的一系列關(guān)泣安全性的活動,提出將安奮瀏試整合到軟件開發(fā)生命周期中,分析了軟件安全性瀏試片祠試人員的要求,并以一個sql注入實例來具體說明安全性瀏試在軟。
信息網(wǎng)絡(luò)安全事件發(fā)生比例的不斷攀升、病毒利用軟件漏洞猖狂地傳播使得人們越發(fā)認(rèn)識到信息安全的重要性。一般認(rèn)為,傳統(tǒng)的信息安全技術(shù)可以借助防火墻(包括軟件和硬件防火墻)審核通過網(wǎng)絡(luò)的報文、限定用戶的訪問權(quán)限等來防止非授權(quán)用戶對重要數(shù)據(jù)的訪問,但是這一觀點是建立在軟件安全基礎(chǔ)上的。網(wǎng)絡(luò)應(yīng)用軟件需要暴露在網(wǎng)絡(luò)環(huán)境下,并且授權(quán)外部用戶可以透過網(wǎng)絡(luò)來訪問此軟件。通過網(wǎng)絡(luò),攻擊者有機會接觸到軟件,如果軟件本身存在漏洞,那么所有的防火墻就形同虛設(shè)。暴露于網(wǎng)絡(luò)的應(yīng)用軟件往往成為被攻擊的目標(biāo),是網(wǎng)絡(luò)應(yīng)用軟件安全的重災(zāi)區(qū)。美國國家標(biāo)準(zhǔn)與技術(shù)研究院(nist)2002年的一項研究表明,美國花費在軟件缺陷方面的費用達(dá)到595億美元。公安部2008年全國信息網(wǎng)絡(luò)安全狀況與計算機病毒疫情調(diào)查分析報b說明,在發(fā)生的安全事件中,未修補或防范軟件漏洞仍然是導(dǎo)致安全事件發(fā)生的最主要原因。
1安全測試的定義
安全測試是鑒別信息系統(tǒng)數(shù)據(jù)保護(hù)和功能維護(hù)的過程。安全測試需要涵蓋的6個基本安全概念是:保密性、完整性、權(quán)限(身份驗證)、授權(quán)(權(quán)限分配)、可提供性、不可抵賴性陰。軟件開發(fā)商都存在解決安全威脅方古的問題。對軟件開發(fā)商來說,安全性是其核心要求,這是由市場力量所驅(qū)動,也是由保護(hù)關(guān)鍵基礎(chǔ)結(jié)構(gòu)及建立和保持計算的廣泛信任的需要所決定的。所有軟件開發(fā)商面對的一個主要挑戰(zhàn)就是創(chuàng)建更加安全的軟件,使其不需要頻繁地通過修補程序進(jìn)行更新。軟件安全已經(jīng)成為評判軟件質(zhì)量的一個重要標(biāo)準(zhǔn),軟件安全測試則成為保證軟件產(chǎn)品能夠符合這一標(biāo)準(zhǔn)的重要手段。軟件的安全性測試主要是測試在正常和非正常情況下,軟件能否對數(shù)據(jù)進(jìn)行安全有效的操作。
2軟件開發(fā)生命周期流程(參見圖1)
對于軟件行業(yè)來說,要滿足當(dāng)今提升安全性的需要,軟件供應(yīng)商必須轉(zhuǎn)為采用一種更嚴(yán)格的、更加關(guān)注安全性的軟件開發(fā)流程。這種流程旨在盡量減少設(shè)計、編碼和文檔編寫過程中存在的漏洞,并在軟件開發(fā)生命周期中盡可能早地檢測到并消除這些漏洞。用于處理來自internet的輸人、控制可能被攻擊的關(guān)鍵系統(tǒng)或處理個人身份信息的企業(yè)和消費者軟件最需要實施這種流程。在很多實際的軟件開發(fā)項目中,安全測試已經(jīng)成為sdl一個不可或缺的組成部分,并成為整個項目過程中的長期任務(wù)。黑盒一白盒測試方法往往執(zhí)行在產(chǎn)品遞交客戶之前,但有的甚至在投人使用之后都未進(jìn)行安全檢測和風(fēng)險評估;在一些安全性要求較高的項目中,雖然將安全風(fēng)險評估納人預(yù)算,但在實際操作中卻對其并未作過多考慮。這樣,所導(dǎo)致的直接后果是在開發(fā)工作幾近完成的情況下進(jìn)行問題分析處理所造成的成本將遠(yuǎn)遠(yuǎn)大于在軟件開發(fā)階段進(jìn)行缺陷修改的成本。即便是從充分利用現(xiàn)有的有限資金和資源的角度來考慮,也有必要將安全測試囊括到sdl中。這樣做雖然不能取代軟件開發(fā)后期的滲透測試和脆弱性測試,卻可以有效減少后者在施過程中的投人。
開發(fā)人員應(yīng)該根據(jù)客戶的功能需求來制定相應(yīng)的安全規(guī)約,利用內(nèi)建的明確的控制機制來降低安全風(fēng)險。開發(fā)人員可以根據(jù)風(fēng)險評估的結(jié)果來確定測試項目:軟件能否可靠運行(safety)以及軟件運行結(jié)果是否可靠(security)。
軟件開發(fā)生命周期((sdl)中常用的測試方法有:單元測試、集成測試和驗收測試。
2.1需求、設(shè)計階段—安全性分析
在軟件項目的設(shè)計過程中,人們往往只是關(guān)注系統(tǒng)的特性和功能,而沒有充分考慮其他重要的非功能問題(例如性能、可用性、平臺支持、安全,及要在稍后的軟件開發(fā)生命周期中需要解決的安全性),導(dǎo)致了項目中許多不必要的波動和延遲。由于安全性分析影響了整個的設(shè)計和架構(gòu),因此應(yīng)該在項目設(shè)計階段充分地審查和了解它們。
安全性考慮包括一系列問題,例如訪問控制和授權(quán)、敏感數(shù)據(jù)的適當(dāng)處理、數(shù)據(jù)和存儲器訪問的適當(dāng)使用,以及加密方法。一些安全性需求不是非功能的需求,如所實施的加密類型。另外,許多安全性需求是更直接地面向用例的,并且需要定義主要場景,以及定義備選路徑和異常路徑。在沒有將功能的和非功能的需求適當(dāng)?shù)囟x及并人軟件中的情況下,編碼錯誤和設(shè)計缺陷會表現(xiàn)出關(guān)鍵的信息和操作處于危險。我們應(yīng)該像對待其他的需求那樣處理安全性需求,并將安全性需求劃分出優(yōu)先級,設(shè)定范圍,同時作為整體用例和功能需求的一部分進(jìn)行管理。
2.2實施階段—單元測試
受測試方式的影響,開發(fā)者對軟件安全風(fēng)險的評估不可能面面俱到。最典型的就是在代碼設(shè)計階段,開發(fā)者可以通過單元測試來檢驗代碼行為,這些結(jié)果都是可以預(yù)知的,但是受到范圍的局限,不能測試這些類或者模塊集成后的行為。
實施單元測試可以從軟件基本單位(單個類)的檢測上保證輸人的有效性;在可能出現(xiàn)惡意攻擊的地方,也可以利用這一思想來組織針對單個類或者方法的單元測試,從而組織起軟件內(nèi)部的縱深防御策略,防止惡意行為對軟件安全造成的損害。但是,這一方法將軟件各組件進(jìn)行強制孤立,因此對于因大量組件交互而引起的軟件缺陷,利用此種方法無法檢測。
單元層的安全測試比較適合于防止緩沖區(qū)溢出,格式化字符串以及數(shù)據(jù)缺失的審核。
2.3驗證階段—集成測試
在集成層,軟件的整體安全屬性變得可見和可測試,使得這一層的可測試屬性數(shù)量相對單元層而言要多得多,但是對于跨站腳本和網(wǎng)絡(luò)服務(wù)器提供的一些服務(wù)(例如安全套接層ssl和url過濾)的測試,存在一定的困難。我們可以將實際案例和風(fēng)險分析的結(jié)果作為組織集成測試的指南。
集成測試要求測試人員通過安全測試培訓(xùn),并且是有熟練技術(shù)的軟件開發(fā)人員。
在這一層,我們可以開展諸如注人缺陷驗證、旁路驗證以及訪問控制等方面的安全測試,來源于外部代碼的安全審查結(jié)果也應(yīng)該以集成測試的方式加以確認(rèn)。
2.4階段—驗收測試
驗收測試是軟件產(chǎn)品交付客戶之前的最后一個測試階段,是在真實的測試環(huán)境中,利用基于惡意事件的安全檢測模板,測試在典型的滲透活動中可被識別的安全缺陷。驗收測試的這一特性(基于安全檢測模板),使得我們可以借助于強大的自動化測試軟件進(jìn)行檢測,并且可以用驗收測試的結(jié)果來完善滲透測試報告內(nèi)容,從而有助于開發(fā)人員理解軟件的脆弱性以及針對軟件脆弱性所采取的補救措施是否有效。
驗收測試針對軟件的外部api,因此不如單元測試和集成測試松散,并且只能測試當(dāng)前已知且暴露的漏洞或者缺陷。非定制的商業(yè)軟件重新設(shè)計的關(guān)鍵功能或者其他改變都會影響到軟件的整體安全性,因此,如果改變會使得軟件產(chǎn)生不可預(yù)知的缺陷,針對這些缺陷的測試就應(yīng)該在單元層或者集成層開展,而不是在驗收層。
在驗收層,我們可以測試針對解釋性程序(sql, xpath,ldap等)的注人式攻擊、跨站腳本攻擊、跨站請求偽造等。緩沖區(qū)溢出及格式化字符串等軟件缺陷也可以在驗收測試層得到檢測。
3安全測試隊伍
軟件測試一度被認(rèn)為是編程能力偏低的員工的工作,直到今天,仍然有許多公司把優(yōu)秀的人才安排在編碼工作上,也有更多公司讓優(yōu)秀的人才進(jìn)行設(shè)計,僅有很少公司讓優(yōu)秀的人才進(jìn)行測試工作。實際的軟件工程實踐證明,讓對軟件思想有深刻理解的工程師進(jìn)行軟件測試,可以大幅度地提高軟件質(zhì)量軟件供應(yīng)商還必須認(rèn)識到組織測試人員進(jìn)行“安全進(jìn)修”對安全測試的成功實施至關(guān)重要。在這些情況下,軟件供應(yīng)商必須負(fù)責(zé)對其工程人員進(jìn)行適當(dāng)教育。根據(jù)組織的規(guī)模和可用的資源,擁有大批工程人員的組織可建立一個內(nèi)部計劃對其工程師進(jìn)行在職安全培訓(xùn),而小型組織則可能需要依賴外部培訓(xùn)。
測試人員要像攻擊者那樣帶有“惡意的”想法去思考,而且在測試軟件時還要扮演攻擊者,攻擊自己的系統(tǒng),以此來幫助發(fā)現(xiàn)軟件的安全漏洞。安全測試并不會總是直接導(dǎo)致安全溢出或者暴露可利用的漏洞,從而引出安全缺陷。要安全測試盡可能地發(fā)揮作用,測試人員需具備較強的分析能力,而這更多的是依靠熟練的開發(fā)技術(shù)和開發(fā)經(jīng)驗。
4漏洞舉例:一個sql的注入式漏洞
有幾種情形使得sql注人攻擊成為可能。最常見的原因是,使用拼接形成的sql語句去操作數(shù)據(jù)庫。譬如,傳入用戶輸人的管理員用戶名和密碼,把這2個參數(shù)拼接形成sql語句,通過執(zhí)行該sql語句,以便驗證用戶輸人的管理員用戶名和密碼的正確性。具體過程如下:
一般情況下,用戶傳人正常的用戶名和密碼進(jìn)行驗證,如傳人“myname”和“mypassword”進(jìn)行驗證,得到的sql語句將是:
這個sql語句很正常。但是,這只是開發(fā)人員預(yù)期的做法:通過管理員用戶名和密碼來驗證賬戶信息。但因為參數(shù)值沒有被正確地加碼,黑客可以很容易地修改查詢字符串的值,以改變sql語句的邏輯。譬如,分別傳人“myname’ ori=1--” , "mypassword",得到的sql語句將是:
在用戶名“myname’ or i=i--”中,第一個“”’結(jié)束了原有字符串中第一個單撇號的配對,"or”后面的“i=i”會導(dǎo)致不管前面的驗證結(jié)果如何,都會返回真true值,而隨后的“一”將把其后的sql語句注釋掉?,F(xiàn)在問題出現(xiàn)了,不管使用什么用戶名和密碼,都能驗證通過。在存在漏洞的數(shù)據(jù)顯示頁面,如果注人join語句,就能獲取數(shù)據(jù)庫里的所有數(shù)據(jù),顯示在頁面上,如獲取用戶名、密碼等;而注入up-date/insert/delete語句將改變數(shù)據(jù),如添加新的管理員賬號等。這樣,數(shù)據(jù)庫將不再安全。
sql注人安全漏洞的形成,根本在于sql語句的拼接,只要放棄sql語句拼接,適用規(guī)范的加碼訪問方式,問題自然迎刃而解。以下便是修改后的安全驗證方法:
5結(jié)論
為符合軟件的安全性要求,開發(fā)人員在開發(fā)過程中應(yīng)盡可能多地進(jìn)行安全分析、安全性測試。安全檢測效能的充分發(fā)揮依賴于開發(fā)人員與安全測試人員的密切配合以及對相關(guān)人員在安全教育方面的再投資。對于安全問題,在軟件完成后進(jìn)行處理比在代碼編寫階段處理付出的代價要大得多。包含了安全因素在內(nèi)的經(jīng)過完全測試的最終產(chǎn)品,自然具有保密性、完整性、權(quán)限(身份驗證)、授權(quán)(權(quán)限分配)、可提供性、不可抵賴性。
隨著計算機技術(shù)的飛速發(fā)展,軟件開發(fā)也已經(jīng)有了五六十年的發(fā)展歷史了,從上個世紀(jì)90年代以來,世界軟件產(chǎn)業(yè)獲得了飛速的發(fā)展。
一、軟件開發(fā)中小型項目發(fā)展的現(xiàn)狀
首先項目管理意識差,在項目開發(fā)過程中,一定程度的存在有人無事情做以及有事情無人做的現(xiàn)象。項目開發(fā)中的技術(shù)經(jīng)理一心專研技術(shù),無暇顧及各種管理事務(wù),同時,專門聘請的項目管理經(jīng)理又由于不了解項目具體問題,不涉及系統(tǒng)的分析設(shè)計,出現(xiàn)了無事情可做的現(xiàn)象。其次是項目成本意識差,很多項目經(jīng)理都是從技術(shù)骨干當(dāng)中而來,對規(guī)格、進(jìn)度和成本之間的平衡知之甚少,所以在對資源進(jìn)行申請的時候很好考慮成本的因素。第三是項目計劃制定不合理,在制定項目計劃的時候不嚴(yán)謹(jǐn)、可操作性差、隨意性大,并且也沒有能夠貫穿于整個項目之中。第四是文檔編寫不規(guī)范,沒有能夠進(jìn)行及時的更新,往往是文檔寫在功能模塊實現(xiàn)完之后,并且是憑工程師的記憶來寫。第五是不重視軟件測試,在開發(fā)中沒有規(guī)范的測試文檔、沒有詳盡的測試用例。第六是團(tuán)隊意識差,各成員之間不夠團(tuán)結(jié),甚至是存在矛盾,導(dǎo)致技術(shù)交流缺乏,出現(xiàn)很多模塊之間的問題。
二、軟件開發(fā)的特點
軟件是由程序、文檔和數(shù)據(jù)組成,是為實現(xiàn)軟件產(chǎn)品而進(jìn)行的活動,首先它具有臨時性,對于軟件開發(fā)的開始和結(jié)束都很明確,和一般的日常工作不相同。其次是獨特性,每一個軟件開發(fā)都有自己明確的目標(biāo),和其他項目不相同。第三是漸進(jìn)明細(xì)性,軟件開發(fā)是一個不斷改進(jìn)、不斷完善的過程,軟件開發(fā)不可能一次性完成并永久使用,在信息技術(shù)的不斷發(fā)展中,以及軟件技術(shù)人員的水平不斷提高的基礎(chǔ)上,軟件開發(fā)肯定是一個不斷進(jìn)取的過程。第四是知識與技術(shù)特性,在軟件開發(fā)中,存在著大量的智力型活動,需要用到管理學(xué)、現(xiàn)代信息技術(shù)等知識。第五是要以客戶為中心,軟件開發(fā)最終是需要客戶接受的,通過客戶接受才能實現(xiàn)它的價值,因此軟件開發(fā)不僅要滿足系統(tǒng)功能和性能,還要適應(yīng)不同的用戶以及不同觀點的人的使用。
三、軟件開發(fā)中小型項目的開發(fā)流程
結(jié)合軟件開發(fā)的特點,為了更好的解決軟件開發(fā)中小型項目開發(fā)現(xiàn)狀中存在的問題,提高項目管理意識、控制項目成本,軟件開發(fā)中小型項目開發(fā)的流程主要分為以下幾個階段。首先是軟件開發(fā)中小型項目開發(fā)的啟動階段,在這個階段中,要建立項目管理過程規(guī)范,對各種軟件項目計劃和需求管理進(jìn)行建立,保證工作計劃在軟件項目活動管理中的可行性。比如制定軟件質(zhì)量保證計劃、軟件開發(fā)計劃、軟件測試計劃、軟件配置管理計劃、過程改進(jìn)計劃、風(fēng)險管理計劃等。在軟件開發(fā)計劃中要明確項目組的費用預(yù)算和資源安排、項目組與客戶之間的介入關(guān)系、項目組各成員分工安排等。特別是在軟件項目啟動的時候就需要開展軟件質(zhì)量保證活動,對項目明顯和潛在的風(fēng)險進(jìn)行分析識別,明確各風(fēng)險管理項的跟蹤管理方式。其次是軟件項目的實施階段,在這個階段中重點關(guān)注風(fēng)險和需求的跟蹤,開發(fā)成果、開發(fā)計劃與進(jìn)度和活動的一致性。成立sqa部門,指定軟件質(zhì)量保證負(fù)責(zé)人,通過建立bug,實現(xiàn)對問題的跟蹤。在同一的標(biāo)準(zhǔn)結(jié)構(gòu)下建立項目配置庫,有效的和客戶進(jìn)行溝通,對客戶新的需求進(jìn)行及時的更改,對工作的成果進(jìn)行及時的標(biāo)識和管理??刂坪庙椖砍晒娜霂臁⒊鰩旌透?,更新和都由專門的管理人員統(tǒng)一進(jìn)行,將工作成果在的時候打上標(biāo)簽,保證項目成員手頭是統(tǒng)一版本的工作成果,避免在階段工作中,由于工作成果不一致導(dǎo)致版本混亂,甚至是出現(xiàn)返工的現(xiàn)象,從而影響到整個項目的進(jìn)度。同時,要定期或不定期的對配置庫內(nèi)容和軟件產(chǎn)品基線的狀態(tài)進(jìn)行檢查,保證庫內(nèi)成果的可用性和配置庫的完整性。項目階段成果和項目重要計劃都必須經(jīng)過嚴(yán)格評審,并且要取得相關(guān)方的承諾和一致認(rèn)同。在項目編碼階段,互查單個工作產(chǎn)品的普及代碼,保證單位模塊的質(zhì)量。在工作成果的每一次評審之前,給各位評審人員通報評審內(nèi)容和范圍,使評審人員更加充分的了解評審內(nèi)容,從而提高評審效率,起到保證評審質(zhì)量的作用。在評審中發(fā)現(xiàn)的缺陷,應(yīng)該立即糾正,并且同時指定責(zé)任人跟蹤缺陷解決過程,使缺陷能夠全部被解決掉。第三是可行性研究和分析階段,在這個階段中要進(jìn)行充分的調(diào)研、了解、分析,有項目經(jīng)理和開發(fā)部經(jīng)理參與完成可行性研究報告、軟件需求說明書、產(chǎn)品需求說明書和項目開發(fā)計劃。第四是軟件開發(fā)設(shè)計階段,在這個階段中,主要是進(jìn)行設(shè)計、軟件平臺選型、數(shù)據(jù)庫和數(shù)據(jù)文件的設(shè)計、io設(shè)計、編碼設(shè)計、操作流程設(shè)計、模塊接口設(shè)計等。第五是軟件實現(xiàn)階段,在這個階段中,主要是代碼的實現(xiàn)、軟件的跟蹤調(diào)試、軟件的單元和整體測試、修訂軟件設(shè)計說明書、編寫測試文檔等。第六是軟件發(fā)放和維護(hù)階段,這個階段主要是對產(chǎn)品進(jìn)行評價,編寫產(chǎn)品發(fā)放報告、綜合評價產(chǎn)品、交付給用戶使用、跟進(jìn)用戶的問題等。
【摘要】在軟件項目開發(fā)的過程中,軟件項目管理的成功與否是決定一個項目是否能夠順利高效率完成的重要保證。但是我國大部分的軟件企業(yè)在進(jìn)行項目管理時都存在著各種問題,從而使項目不能順利有效地完成。文章探討了在項目管理過程里出現(xiàn)的常見問題,并給出了相應(yīng)的解決策略。
【關(guān)鍵詞】軟件項目管理;項目經(jīng)理;項目計劃
軟件行業(yè)在現(xiàn)在的眾多行業(yè)里是一個極具挑戰(zhàn)性和創(chuàng)造性的行業(yè),體現(xiàn)了軟件開發(fā)者的智慧和汗水,同時軟件開發(fā)是一項復(fù)雜的系統(tǒng)工程,牽涉到許多方面的因素,在實際工作中,經(jīng)常會出現(xiàn)各種各樣的問題,甚至?xí)媾R失敗。如何總結(jié)、分析失敗的原因,得出有益的教訓(xùn),對于項目開發(fā)人員來說,是在今后的項目中取得成功的關(guān)鍵。
一、軟件開發(fā)中實行項目管理的意義
項目管理就是在項目活動中運用一系列的知識、技能、工具和技術(shù),以滿足或超過相關(guān)利益者對項目的要求,實際上就是通過項目各方干系人的合作,把各種資源應(yīng)用于項目,以實現(xiàn)項目的目標(biāo),滿足項目干系人的需求,其本質(zhì)就是對時間、質(zhì)量和成本的管理。
隨著軟件開發(fā)的深入、各種技術(shù)的不斷創(chuàng)新以及軟件產(chǎn)業(yè)的形成,人們越來越意識到軟件過程管理的重要性,管理學(xué)的思想逐漸融入軟件開發(fā)過程中,項目開發(fā)的管理日益受到重視。
二、目前在軟件項目管理中存在的誤區(qū)
現(xiàn)在大多數(shù)企業(yè)都認(rèn)識到了在項目中進(jìn)行管理的重要性,但是仍然有許多企業(yè)在實施項目管理的過程中存在著這樣那樣的誤區(qū),主要表現(xiàn)在:
1.項目經(jīng)理不夠?qū)I(yè)。在軟件企業(yè)中,缺乏專業(yè)的項目管理人員來實施項目管理及擔(dān)任項目經(jīng)理,通常被任命的項目經(jīng)理主要是因為他們能夠在技術(shù)上獨當(dāng)一面,但是他們在管理方面特別是項目管理方面的知識比較缺乏。
2.項目計劃缺乏綱領(lǐng)性。項目經(jīng)理對總體計劃、階段計劃的作用認(rèn)識不足,因此制定總體計劃時比較隨意,不少事情沒有仔細(xì)考慮;階段計劃因工作忙等理由經(jīng)常拖延,造成計劃與控制管理脫節(jié),無法進(jìn)行有效的進(jìn)度控制管理。
3.缺乏有效的管理意識。部分項目經(jīng)理不能從總體上把握整個項目,而是埋頭于具體的技術(shù)工作,造成項目組成人員之間忙的忙、閑的閑,計劃不周、任務(wù)不均、資源浪費。有些項目經(jīng)理沒有很好的管理方法,不好安排的工作只好自己做,使項目任務(wù)無法有效、合理地分配給相關(guān)成員,以達(dá)到“負(fù)載均衡”。
4.缺乏有效的溝通制度和機制。在項目中一些重要信息沒有進(jìn)行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術(shù)問題或成果等方面與相關(guān)人員的溝通不足,造成各做各事、重復(fù)勞動,甚至造成不必要的損失;有些人沒有每天定時收郵件的習(xí)慣,以至于無法及時接收最新的信息。
5.風(fēng)險管理意識淡泊。有些項目經(jīng)理沒有充分意識到風(fēng)險管理的重要性,對計劃書中風(fēng)險管理的章節(jié)簡單應(yīng)付了事,隨便列出幾個風(fēng)險,隨便地寫一些簡單的對策,對于后面的風(fēng)險防范起不到什么指導(dǎo)作用。
6.項目干系人的不確定性。在范圍識別階段,項目組對客戶的整體組織結(jié)構(gòu)、有關(guān)人員及其關(guān)系、工作職責(zé)等沒有足夠了解以至于無法得到完整需求或最終經(jīng)權(quán)威用戶代表確認(rèn)的需求;或者是多個用戶代表各說各話、昨是今非,但同時又要求項目盡早交付;項目后期需求變化隨意,造成項目范圍的蔓延,進(jìn)度的拖延,成本的擴大。
7.缺乏項目團(tuán)隊的合理分工 。項目團(tuán)隊內(nèi)部有時由于各階段不同角色或同階段不同角色之間的責(zé)任分工不夠清晰而造成工作互相推諉、責(zé)任互相推卸的現(xiàn)象;有時各階段不同角色或同階段不同角色之間的責(zé)任分工比較清晰,但是各項目成員只顧完成自己那部分任務(wù),不愿意與他人協(xié)作。這些現(xiàn)象都將造成項目組內(nèi)部資源的損耗,從而影響項目進(jìn)展。
三、解決軟件項目管理中存在的誤區(qū)的有效策略
要想解決上面描述的誤區(qū),歸根到底還是要從管理學(xué)的角度入手,即在軟件項目的開發(fā)過程中加入過程管理的內(nèi)容,這樣我們可以在軟件開發(fā)中對各個過程的質(zhì)量加以控制,從而達(dá)到保證軟件產(chǎn)品質(zhì)量的目的。為了有效提高管理水平,我們應(yīng)該努力做到:
1.項目經(jīng)理接受系統(tǒng)的項目管理知識培訓(xùn)是非常必要的,有了專業(yè)領(lǐng)域的知識與實踐,再加上項目管理知識與實踐和一般管理的知識和經(jīng)驗的有機結(jié)合,必能大大提高項目經(jīng)理的項目管理水平。
2.計劃的制定需要在一定條件的限制和假設(shè)之下采用漸近明細(xì)的方式進(jìn)行不斷完善。提高項目經(jīng)理的計劃意識,采用項目計劃制定相關(guān)知識、技術(shù)、工具,加強對開發(fā)計劃、階段計劃的有效性進(jìn)行事前事后的評估。
3.加強項目管理方面的培訓(xùn),并通過對考核指標(biāo)的合理設(shè)定和宣傳引導(dǎo)項目經(jīng)理更好地做好項目管理工作。技術(shù)骨干在擔(dān)任項目經(jīng)理之前,最好能經(jīng)過系統(tǒng)的項目管理知識,特別是其中的人力資源管理、溝通管理的學(xué)習(xí),并且在實際工作中不斷提高自己的管理素質(zhì),豐富項目管理經(jīng)驗,提高項目管理意識。
4.制定有效的溝通制度和溝通機制,提高溝通意識;采取多種溝通方式,提高溝通的有效性。通過制度規(guī)定對由于未及時收取郵件而造成損失的責(zé)任歸屬;對于特別重要的(下轉(zhuǎn)第198頁)(上接第196頁)內(nèi)容要采用多種方式進(jìn)行有效溝通以確保傳達(dá)到位,例如:除發(fā)送郵件外還要電話提醒、回執(zhí)等,重要的內(nèi)容還要通過舉行各種會議進(jìn)行傳達(dá)。
5.通過學(xué)習(xí)項目管理知識掌握風(fēng)險識別、量化、對策研究、反應(yīng)控制的工具和方法,掌握項目風(fēng)險管理所必備的知識。通過加強對項目規(guī)劃中風(fēng)險管理計劃的審核提高項目組的風(fēng)險管理意識。總結(jié)本行業(yè)項目中常見的風(fēng)險及其對策作為風(fēng)險管理計劃中必要的風(fēng)險內(nèi)容,并切實評估相應(yīng)對策的有效性和可行性。
6.項目的目的就是實現(xiàn)項目干系人的需求和愿望。項目干系人管理應(yīng)當(dāng)從項目的啟動開始,項目經(jīng)理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協(xié)調(diào)對他們施加影響,驅(qū)動他們對項目的支持,調(diào)查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
7. 項目經(jīng)理應(yīng)當(dāng)對項目成員的責(zé)任進(jìn)行合理的分配并清楚地說明,同時應(yīng)強調(diào)不同分工、不同環(huán)節(jié)的成員應(yīng)當(dāng)相互協(xié)作,共同完善。
實施有效的項目管理絕非易事,對于軟件企業(yè)而言,這不是一個小的改變,而是一種變革,企業(yè)需要為此付出艱苦的努力,同時,成熟有效的項目管理無疑將對企業(yè)起著至關(guān)重要的作用,項目管理的水平將是企業(yè)核心競爭力之一。
摘要:在特定框架的基礎(chǔ)上建立目標(biāo)應(yīng)用系統(tǒng)是當(dāng)前web應(yīng)用開發(fā)的主流,如面向j2ee平臺的struts、spring、jsf、cocoon、axis和xalan等框架都得到了廣泛的應(yīng)用。這些框架是軟件開發(fā)人員從以往的經(jīng)驗和教訓(xùn)中總結(jié)出的設(shè)計模式。這些模式的應(yīng)用,不僅降低了軟件開發(fā)的成本,同時也保證了web應(yīng)用系統(tǒng)的質(zhì)量。
關(guān)鍵詞:j2ee平臺;web應(yīng)用;jsp
一.j2ee平臺概述
sun的java 2 enterprise edition(j2ee)平臺已經(jīng)成為使用最廣泛的web程序設(shè)計技術(shù)。該技術(shù)主要支持兩類軟件的開發(fā)和應(yīng)用。一類是做高級信息系統(tǒng)框架的web應(yīng)用服務(wù)器(web application server),另一類是在web應(yīng)用服務(wù)器上運行的web應(yīng)用程序(web application)。全球主要的商業(yè)網(wǎng)站和管理信息系統(tǒng)大多采用j2ee平臺作為首選的web開發(fā)技術(shù),每一個web應(yīng)用服務(wù)器都將需要企業(yè)開發(fā)和運行多種web服務(wù)軟件。
二.j2ee平臺web應(yīng)用結(jié)構(gòu)分析
j2ee平臺的核心技術(shù)是java server page[1]和servlet。整個j2ee平臺的應(yīng)用結(jié)構(gòu)模型如圖1所示。從應(yīng)用結(jié)構(gòu)圖明顯看出j2ee完全遵從mvc設(shè)計模式[2]。下面分別對每個組件做一個介紹。
servlet組件:servlet在web應(yīng)用中擔(dān)任重要角色。servlet運行于servlet容器中,可以被servlet容器動態(tài)加載,來擴展服務(wù)器的功能,并提供特定的服務(wù)。servlet按照請求/相應(yīng)得方式工作。在j2ee平臺下,控制器組件就是由servlet來構(gòu)成的。
jsp組件:在傳統(tǒng)的html文件中加入java程序代碼和jsp標(biāo)簽,就構(gòu)成了jsp頁面。java程序段可以操控數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送e-mail等,實現(xiàn)建立動態(tài)網(wǎng)站所需要的功能。jsp技術(shù)大大降低了對用戶瀏覽器的要求,即使用戶瀏覽器端不支持java,也可以訪問jsp頁面。
javabean組件:javabean是一種符合特定規(guī)范的java對象,在javabean中定義了一系列的屬性,并提供了訪問和設(shè)置這些屬性的公共方法。javabean可以作為共享數(shù)據(jù),存放在page、request、session或application范圍內(nèi)。在jsp文件中,可以通過專門的標(biāo)簽來定義或者訪問javabean。
自定義jsp標(biāo)簽:jsp標(biāo)簽技術(shù)是在jsp1.1版本后出現(xiàn)的。這些可重用的標(biāo)簽?zāi)軌蛱幚韽?fù)雜的邏輯運算和事務(wù),或者定義jsp頁面的輸出內(nèi)容和格式。自定義標(biāo)簽可以使jsp代碼更加簡潔,有助于將jsp文件中的java程序代碼分離出去,使jsp文件側(cè)重于提供html表示層數(shù)據(jù)。對于j2ee下不同的框架,會有自己不同的標(biāo)簽庫。
ejb組件:enterprise java bean(ejb)組件是基于標(biāo)準(zhǔn)分布式系統(tǒng)對象技術(shù)、corba和rmi的服務(wù)器端java組件。ejb組件和javabean組件一樣,都用于實現(xiàn)企業(yè)應(yīng)用的業(yè)務(wù)邏輯,它們的根本區(qū)別在于:ejb組件總是分布式的,sun公司制定的ejb組件模型要求ejb組件運行于ejb服務(wù)器中,而javabean組件可以和servlet或jsp運行在由servlet/jsp容器提供的同一個java虛擬機中。
xml語言:即可擴展標(biāo)記語言(extensible markup language),是一種用來創(chuàng)建自定義標(biāo)記的標(biāo)記語言。xml在web應(yīng)用以及web服務(wù)開發(fā)中得到廣泛的應(yīng)用,可用來描述結(jié)構(gòu)化的數(shù)據(jù)。如在struts框架中,有兩個重要的配置文件:web.xml和struts-config.xml。web.xml文件用于配置web應(yīng)用;struts-config.xml用于配置struts框架。
三.j2ee平臺下web開發(fā)框架
框架 (framework)[3]不同于類庫(library)??蚣芴峁┑牟皇且唤M功能性的組件,而是一個軟件結(jié)構(gòu),一種業(yè)務(wù)流程,以及hollywood法則(“don’t call us,we’ll call you”)。選擇框架,意味著web應(yīng)用開發(fā)人員只需且只能在框架限制的范圍內(nèi)編寫業(yè)務(wù)組件和顯示組件,由框架管理這些組件之間的協(xié)作。這雖然喪失了一定的自由,但是卻能得到結(jié)構(gòu)更加良好,質(zhì)量更加可靠的web應(yīng)用軟件?,F(xiàn)在,常用的j2ee平臺下web應(yīng)用框架包括struts、spring、jsf、webwork等。
四.展望web應(yīng)用開發(fā)
縱觀web應(yīng)用的發(fā)展過程,有兩個現(xiàn)象值得注意。首先,底層功能的完善會優(yōu)化上層功能,上層功能的推廣對底層功能提出更高的要求。當(dāng)web硬件能提供高速度的帶寬時,軟件公司才能開發(fā)出滿足用戶需要的程序。web系統(tǒng)被大量使用往往使現(xiàn)有系統(tǒng)不能滿足要求。這就要求開發(fā)出新的硬件和軟件系統(tǒng)。例如,在http協(xié)議上,最先只有html作為文檔編輯語言。當(dāng)web瀏覽器(ie,netscape)成為計算機必不可少的上網(wǎng)工具時,動態(tài)的web設(shè)計語言(java,servlet/jsp,asp,cgi,等)應(yīng)運而生。其后由于這些語言需要占用系統(tǒng)得計算資源,高速的web應(yīng)用軟件和主機成為大型網(wǎng)站必不可少的配置。在此背景下,web應(yīng)用技術(shù)在整個人類的生活中開始占據(jù)重要的位置,隨著web應(yīng)用平臺和框架的增多,如何快速有效的進(jìn)行web應(yīng)用開發(fā),而且如何盡可能的使前期開發(fā)可以為多個web框架應(yīng)用,成為it業(yè)界的研究方向。