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