- 論壇徽章:
- 0
|
轉:hougbin
如何進行架構設計
軟件架構設計的目的
對于外包業(yè)務類型的項目,軟件架構設計的目的與產(chǎn)品類型的項目有所不同,在這里主要討論外包類型項目的軟件架構設計目的。
1、為大規(guī)模開發(fā)提供基礎和規(guī)范,并提供可重用的資產(chǎn),軟件系統(tǒng)的大規(guī)模開發(fā),必須要有一定的基礎和遵循一定的規(guī)范,這既是軟件工程本身的要求,也是客戶的要求。架構設計的過程中可以將一些公共部分抽象提取出來,形成公共類和工具類,以達到重用的目的。
2、一定程度上縮短項目的周期,利用軟件架構提供的框架或重用組件,縮短項目開發(fā)的周期。
3、降低開發(fā)和維護的成本,大量的重用和抽象,可以提取出一些開發(fā)人員不用關心的公共部分,這樣便可以使開發(fā)人員僅僅關注于業(yè)務邏輯的實現(xiàn),從而減少了很多工作量,提高了開發(fā)效率。
4、提高產(chǎn)品的質(zhì)量,好的軟件架構設計是產(chǎn)品質(zhì)量的保證,特別是對于客戶常常提出的非功能性需求的滿足。
軟件架構設計的原則
軟件架構設計必須遵循以下原則:
1、滿足功能性需求和非功能需求。這是一個軟件系統(tǒng)最基本的要求,也是架構設計時應該遵循的最基本的原則。
2、實用性原則,就像每一個軟件系統(tǒng)交付給用戶使用時必須實用,能解決用戶的問題一樣,架構設計也必須實用,否則就會“高來高去”或“過度設計”。
3、滿足復用的要求,最大程度的提高開發(fā)人員的工作效率。
軟件架構設計的幾種視圖
我們常常在討論架構設計該做些什么的時候,或是在架構設計評審的會議上,會提出各種各樣的問題,例如開發(fā)人員該如何記錄Log,事務如何控制?怎樣才能提高我們的開發(fā)人員的工作效率,即在單位時間內(nèi)更有品質(zhì)的完成更多的功能?怎樣滿足客戶的非功能性需求?怎樣讓生產(chǎn)環(huán)境的平臺管理人員更好的維護系統(tǒng)?
上面這些問題,實際上是軟件系統(tǒng)的不同的干系人站在不同的角度上提出的問題,要回答上面這些問題,我們就得從不同的視角來看待軟件架構設計這項工作。
1、邏輯架構視角,從系統(tǒng)用戶的角度考慮問題,設計出來的軟件架構能夠滿足業(yè)務邏輯的需求,能夠處理現(xiàn)在越來越復雜的業(yè)務邏輯需求。
2、開發(fā)架構視角,從系統(tǒng)開發(fā)人員的角度來考慮問題,設計的架構要易于理解,易于開發(fā),易于單元測試,最好做到讓開發(fā)人員可以用最少的代碼行數(shù)完成功能的開發(fā)。
3、運行架構視角,從系統(tǒng)運行時的質(zhì)量需求考慮問題,特別關注于系統(tǒng)的非功能需求,客戶常常都會要求我們系統(tǒng)的功能畫面的最長響應時間不超過4秒,能滿足2000個用戶同時在線使用,基于角色的系統(tǒng)資源的安全控制等。
4、物理架構視角,關注系統(tǒng)安裝和部署在什么樣的環(huán)境上,例如現(xiàn)在最流行的企業(yè)應用服務解決方案IBM Http Server + WebSphere Application Server + DB2,WebLogic + Oracle等。
5、數(shù)據(jù)架構視角,如今我們開發(fā)的各類系統(tǒng),如MIS,ERP,SAP,基本上都是對各類數(shù)據(jù)的操作,把一堆不太好懂的數(shù)據(jù)展現(xiàn)成用戶容易看懂的數(shù)據(jù),自動處理各類數(shù)據(jù)的運算等,所以數(shù)據(jù)的持久化是十分重要的一件事情。 |
|