Posted on 2016-01-12 15:26
morcble的blog 閱讀(297)
評論(0) 編輯 收藏 所屬分類:
Java
問題:
在我們的軟件立項階段,我們通常會預估軟件開發周期,成本預算,人員配置,版本迭代時間節點.
但是大量的軟件研發在實際的操作上都不可能按我們計劃順利實施。
因為有很多綜合的因素是人為不可控的,
1,不斷變更的需求
最有可能導致軟件研發失敗的因素。客戶本身不一定是軟件專業人士,大多是用一堆可能互不相干的松散的功能點來講訴他們所設想的軟件。他們
需要什么樣的軟件和他們所能描述的可能差距很大。在研發的過程中,甚至交付階段,客戶也會不斷的提出新需求和變更需求。
2,業務模型設計有誤
需求調研不明確或者涉及到需求大的變更都會影響業務模型,直接導致數據庫大幅度增刪數據表及字段
3,系統編程結構繁瑣
多模塊及分布式遠程調用系統與研發環境緊耦合。在研發中需要調用多個遠程服務(不包括第三方系統),測試一個子功能設計到庫打包到maven庫再遠程包含,極大增加了編程測試的步驟與難度。
4,前端和后端研發的時間差
后端研發比前端慢,前端需要的模擬數據需要等待后端的服務,或者前端根據業務寫模擬數據
5,研發人員差異
人員的素質參差不齊,編程風格不統一,邏輯思維不夠嚴密常常引發很多BUG。
改變:
文檔驅動的模板系統設計
顧名思義,以需求文檔為驅動,模板為材料,以架構為核心,通過模式映射軟件組裝我們的軟件系統,M-SYS。
M-SYS的必須包含的模塊:
前端頁面,前端JS框架,后端服務模塊,后端數據庫操作模塊,緩存模塊,日志模塊,權限系統,Session子系統。
針對移動服務,需要增加后端數據加密系統,后端服務系統。
針對分布式系統,需要增加分布式遠程調用模塊,服務發現子系統,分布式消息子系統,分布式緩存系統。
M-SYS的幾個必要特征:
1,簡單邏輯的代碼自動化:根據文檔生成增刪查改看的前端和后端代碼。當需求導致文檔變更時,也可簡單的重新生成代碼。
2,功能模塊插件模式:根據需求自由搭配不同需求文檔組裝成新的系統。
3,簡化研發和測試:把系統設計,細節,容易犯錯的地方與研發人員高度隔離,軟件開發人員僅僅專注于業務邏輯的實現,便捷的測試環境和步驟。
模板,模塊,特征及子系統的設計此篇文章不做詳述。以下以簡單的實現做為說明,
需求文檔以Excel為載體

利用模式映射軟件在幾十毫秒生成以下所有的模塊



在M-SYSTEM體系下,一個不會編程的人都能非常方便的編寫出一個龐大的軟件及分布式系統。M-SYSTEM強調每個獨立的輕服務模塊,在名空間管理下,利用已有的各種服務可以像搭積木一樣組成一個復雜的界面,