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










