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