我們先來看看軟件開發(fā)過程中的兩個典型場景、這些場景在每個項目中都有可能會遇到,它們比較客觀的反映了國內(nèi)很多軟件公司項目開發(fā)過程的實際情況。
場景一:一個項目組剛剛接了一個比較大的項目,項目的需求很明確,客戶對功能的細(xì)節(jié)也不是很挑剔,只是對性能要求比較高,整個系統(tǒng)要能承受非常大的用戶量,對系統(tǒng)的響應(yīng)速度要求也很高,項目經(jīng)理感覺這個項目沒有什么大問題,一切都按照計劃進(jìn)行,可是最終部署到用戶的服務(wù)器上時,整個程序的效率很低,由于公司在這方面沒有什么技術(shù)積累,雖然以后修改了多次,性能仍然達(dá)不到要求。
場景二:某個大型電子政務(wù)系統(tǒng)年底需要生成大量的報表,可是報表系統(tǒng)突然出現(xiàn)了故障無法使用,這個報表系統(tǒng)是由一個老程序員編寫的,可是此時他已經(jīng)離開了這家公司,也沒留下什么文檔,別的開發(fā)人員根本無法維護(hù)這個報表系統(tǒng),由于時間緊迫項目經(jīng)理只好決定讓開發(fā)人員手工編寫了所有報表,浪費了大量的人力物力。
軟件開發(fā)面臨的主要問題
前面的場景顯示了國內(nèi)一些軟件公司存在著規(guī)模小、技術(shù)力量薄弱、管理薄弱、設(shè)計人員缺乏等問題,除此以外,我們認(rèn)為還有以下一些問題嚴(yán)重的制約著管理軟件的進(jìn)一步發(fā)展:
1、產(chǎn)品開發(fā)技術(shù)路線的選擇比較隨意,很難適應(yīng)未來產(chǎn)品的發(fā)展的需要,軟件不能進(jìn)行無縫的升級。產(chǎn)品和項目界限不分明,通用性、定制性比較差。產(chǎn)品缺乏良好的結(jié)構(gòu)設(shè)計,代碼難以維護(hù)。
2、產(chǎn)品的質(zhì)量很難保證,芏噯砑肥譴右桓魷钅抗衫吹模范園踩浴⑿閱堋⒉渴鴰肪懲悸遣還弧?lt;/P>
3、產(chǎn)品開發(fā)對開發(fā)人員的要求比較高、人員的流動對開發(fā)的進(jìn)度影響很大。在很多公司中開發(fā)人員沒有獨立的分工,每個人都負(fù)擔(dān)著一個模塊的需求、設(shè)計、實現(xiàn),很多開發(fā)人員甚至需要負(fù)擔(dān)一定的美工工作,產(chǎn)品的測試也不是很細(xì)致,開發(fā)人員負(fù)擔(dān)角色過多的后果就是每部分的工作都很難做得十分到位。
4、設(shè)計能力不足,很多項目經(jīng)理和開發(fā)人員對設(shè)計重視不夠,為了趕工期,很多項目的設(shè)計過程過于簡單,有的甚至根本沒有設(shè)計過程。
5、項目經(jīng)理的管理能力不足,沒有及時把握進(jìn)度項目經(jīng)理自己也不知道項目的狀態(tài),下屬人員報喜不報憂,害怕報告問題后給自己添麻煩。進(jìn)度管理必須隨時收集有關(guān)項目管理的數(shù)據(jù),開發(fā)人員總是擔(dān)心管理工作會增加自己的工作量,不愿配合。管理人員甚至不知道應(yīng)該收集哪些數(shù)據(jù)。
6、開發(fā)計劃不充分,沒有良好的開發(fā)計劃和開發(fā)目標(biāo),項目的成功就無從談起。
7、找不到軟件工程或者項目管理的方法能夠大幅度提高應(yīng)用軟件的開發(fā)效率,開發(fā)周期長、開發(fā)費用高,實施費用超支和工期延長,已經(jīng)司空見慣。更加可怕的是,隨著企業(yè)的環(huán)境和需求的不斷變化,“建成即成閑置”,形成軟件工程的災(zāi)難。
業(yè)務(wù)基礎(chǔ)軟件平臺
軟件開發(fā)的問題是由多方面原因造成的,有市場的原因、有公司管理水平的原因,也有技術(shù)的原因。目前基于業(yè)務(wù)基礎(chǔ)軟件平臺的開發(fā)方式是解決這些問題的一個比較好的解決辦法。業(yè)務(wù)基礎(chǔ)軟件平臺是一種技術(shù)創(chuàng)新,它使軟件平臺又多了一個層次,并將應(yīng)用軟件的業(yè)務(wù)邏輯和開發(fā)技術(shù)分開,使得應(yīng)用軟件的開發(fā)者可以僅僅關(guān)注應(yīng)用軟件的業(yè)務(wù)過程,而不必關(guān)注其技術(shù)的實現(xiàn)。這使管理與業(yè)務(wù)人員參與應(yīng)用軟件的開發(fā)成為可能。
業(yè)務(wù)基礎(chǔ)軟件平臺包括集成應(yīng)用平臺、開發(fā)體系兩個部分。從技術(shù)角度分析,業(yè)務(wù)基礎(chǔ)軟件平臺為復(fù)雜應(yīng)用軟件系統(tǒng)的開發(fā)提供了一個基本框架,并有與之相應(yīng)的、方便易用的開發(fā)與維護(hù)管理工具。這個框架給出了一些復(fù)雜應(yīng)用軟件的基本組成部分和實現(xiàn)方法,并且預(yù)置了很多供參考的軟件模塊。有了這樣的準(zhǔn)備,在業(yè)務(wù)基礎(chǔ)軟件平臺之上開發(fā)管理軟件就可以降低復(fù)雜性,省去很多基礎(chǔ)性的研發(fā)工作,從而大大縮短研發(fā)周期,提高研發(fā)效率。
具體來說,業(yè)務(wù)基礎(chǔ)軟件平臺能滿足復(fù)雜應(yīng)用軟件系統(tǒng)開發(fā)的如下要求:首先是速度要求。通過業(yè)務(wù)基礎(chǔ)軟件平臺提供的基本框架,以及預(yù)置好的模塊,軟件提供商能很快地研制出用戶所需要的復(fù)雜應(yīng)用軟件系統(tǒng)。其次是靈活性要求。通過業(yè)務(wù)基礎(chǔ)軟件平臺提供的開發(fā)與管理工具,軟件提供商能很方便地滿足用戶個性化的需求,以及用戶在發(fā)展過程中各種各樣變化的需求。再者是集成性要求。業(yè)務(wù)基礎(chǔ)軟件平臺為復(fù)雜應(yīng)用軟件系統(tǒng)提供了一個集成框架,不僅為集成同一平臺上的各種不同軟件提供了規(guī)則,還為集成其他應(yīng)用軟件系統(tǒng)提供了集成接口。
ezFramework一個佳例
ezFramework是一套面向中小項目的基于J2EE整體解決方案,是面向電子政務(wù)、電信、稅務(wù)、社保、金融等領(lǐng)域的業(yè)務(wù)基礎(chǔ)軟件平臺,它把開發(fā)項目過程中經(jīng)常遇到的問題進(jìn)行總結(jié),通過平臺的形式來解決這些問題。使用ezFramework可以讓開發(fā)人員把精力更多的集中于業(yè)務(wù),而不是技術(shù)本身,所有的技術(shù)問題和通用模塊都由ezFramework框架來處理。
ezFramework有一整套開發(fā)J2EE表現(xiàn)層的界面庫,這一點和AWT、SWING是一樣的,所不同的是ezFramework是面向BS結(jié)構(gòu)的J2EE表現(xiàn)層的界面庫,而AWT和SWING是面向桌面程序的界面庫。ezFramework的客戶端不需要安裝任何運行環(huán)境,只需要有一個標(biāo)準(zhǔn)的Internet瀏覽器就可以了,ezFramework運行在服務(wù)器端,能夠自動的生成界面需要的html代碼。基于ezFramework開發(fā)應(yīng)用軟件可以降低軟件開發(fā)的成本,由于有了界面庫,我們只需要把我們要顯示的界面描述清楚,框架可以按照我們的要求生成各種風(fēng)格的界面,而不再需要美工和程序員反復(fù)的修改程序。
ezFramework框架的表現(xiàn)層是這個產(chǎn)品的一大特色,除了表現(xiàn)層外,這個框架還包括業(yè)務(wù)層管理和持久層管理以及一些通用的模塊如用戶管理、服務(wù)管理、認(rèn)證與授權(quán)等等。ezFramework是一個整體解決方案,但是ezFramework不強迫用戶必須使用ezFramework的每個部分,用戶可以根據(jù)自己的需要自由的選擇自己需要的模塊。
ezFramework系統(tǒng)運行圖
基于ezFramework開發(fā)不僅能夠快速優(yōu)質(zhì)的完成項目,同時也有利于我們的標(biāo)準(zhǔn)化和業(yè)務(wù)積累,各個項目的模塊互相都可以使用,同時隨著ezFramework的不斷升級,軟件的質(zhì)量也可以不斷得到提升。
綜上所述,通過業(yè)務(wù)基礎(chǔ)軟件平臺的方式來進(jìn)行軟件的開發(fā)是一種有效解決目前開發(fā)軟件技術(shù)瓶頸的好辦法。
ezFramework已經(jīng)成為清華同方的開發(fā)框架標(biāo)準(zhǔn),形成了以ezFramework為基礎(chǔ)的一系列技術(shù)和行業(yè)套件,開發(fā)一個應(yīng)用可以從已有的構(gòu)件庫中選擇已有的構(gòu)件,而不必從頭到尾進(jìn)行開發(fā),最大程度實現(xiàn)了組件的重用。










