- 實用軟件架構:從系統環境到軟件部署
- (印)蒂拉克·米特拉
- 686字
- 2019-09-02 17:48:36
2.3.2 對項目規劃施加影響力
我們在前面講過,宏觀層面上的軟件架構,可以由一系列ABB以及這些ABB之間的相互關系和依賴情況所確定。我們也說過,ABB還可以繼續向下分解為一系列組件,這些組件之間,依然有著相互依賴的關系。在一般的軟件開發過程中,我們通常要根據很多參數來排列系統的各項功能,以決定其優先順序,這些參數包括:是否需要立刻展示系統的特性、是否需要先解決棘手的問題(用軟件架構的術語來說,這些問題通常稱為架構上重要的用例),以及季度的資本支出預算等。無論具體原因是什么,我們一般都需要對系統中某些特性之間的優先順序進行規劃。
對軟件組件的實現進行規劃時,可以參照ABB之間的依賴情況來進行,如圖2-2所示。

圖2-2 舉例說明組件之間的依賴關系
以圖2-2為例,組件C2和組件C3,都依賴于組件C1的功能,而組件C2與組件C3之間,則是相互獨立的,于是,架構師就可以利用這一現象來對項目的規劃過程施加影響。比如,如果有足夠的資源(也就是有足夠多的設計師),那么架構師就可以并行地規劃C1、C2和C3的設計工作,此外,(在有足夠資源的前提下)也可以先把C1實現出來,然后再去并行地實現C2和C3。要想做好項目規劃工作,就一定要對架構及其組件有適當的了解。架構師通常是項目經理的好搭檔,在進行項目規劃時,尤其如此。
架構師可以給項目的規劃過程提供幫助,但是另一方面,項目規劃團隊通常也想更多地參與到架構事務中。架構組件的復雜程度,會對時間和資源(也就是專業技能和各種水平的專業知識)的指派和分配造成影響。
如果利益相關者不能夠徹底地理解架構,那么對于具有一定規模的系統來說,其后續的設計、實現、測試計劃以及部署等階段,就會遇到巨大的困難。