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