系統(tǒng)架構是一個極具彈性的概念,實際上就是對軟甲開發(fā)流程的規(guī)劃。中培偉業(yè)《詳細設計與系統(tǒng)架構最佳實踐》程老師指出,系統(tǒng)架構是對已確定的需求的技術實現(xiàn)構架、作好規(guī)劃,運用成套、完整的工具,在規(guī)劃的步驟下去完成任務。軟甲開發(fā)作為一個復雜和系統(tǒng)的工程,事前做好系統(tǒng)架構,是做好開發(fā)的前提。
但如何進行架構設計?是否有可借鑒的設計原則和方法呢?陳老師進一步指出,Mark Schultz在2007年3月發(fā)表《Architecture principles: Creating the foundation for robust architecture》一文,從通用架構、業(yè)務邏輯、技術、信息與數(shù)據(jù)、管理、發(fā)展趨勢、安全性、測試等8方面探討了在進行系統(tǒng)架構設計時需要考慮的 問題,除了一些軟件工程中經(jīng)常提到的保持易用性、可擴展性、安全性、可測試性等一般原則之外,他對某些問題的強調值得系統(tǒng)架構設計人員深思。
除了國外專家的觀點之外 ,對系統(tǒng)架構方面應該注意的問題,程老師也有自己的督導的見解,他從4個方面對系統(tǒng)架構應該注意的問題發(fā)表了自己的看法。
1.在通用架構方面
充分重視非功能性需求非功能性需求應該與功能性需求一樣進行認真地設計、開發(fā)、測試和管理。無論在何處訪問,以IT系統(tǒng)架構為基礎的應用應該能夠提供一個與業(yè)務流程集成的一致視圖。
2.在業(yè)務邏輯方面
在一個業(yè)務系統(tǒng)的生命周期內,其穩(wěn)定性很大程度上取決是所采用的技術是否是可控、可管理的。開發(fā)人員總是喜歡嘗試新技術的,但新技術能否融合入這個業(yè)務系統(tǒng)之中,則需要認真評估。
3.在發(fā)展趨勢方面
盡可能采用業(yè)界成熟的開放標準,在自己試圖定義某些協(xié)議之前,最好現(xiàn)考察一下是否有現(xiàn)成的協(xié)議可用。以前在開發(fā)一些智能控制產(chǎn)品時,我們采用了RS485串行總線,但由于RS485是底層協(xié)議,于是我們自己定義了一套上層通信協(xié)議,而事實證明這種做法很值得商榷。
4.在安全性方面
根據(jù)業(yè)務目標,風險與安全性之間應該達到一種平衡:不為無謂的風險強化安全性,也不為實在的風險弱化安全性。系統(tǒng)安全程度與系統(tǒng)構建維護成本總是成正比,在系統(tǒng)設計時就需要考慮如何達到一種適度的安全。