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