讀古今文學網 > 程序員必讀之軟件架構 > 2. 設計軟件 >

2. 設計軟件

設計軟件的過程是軟件架構角色的一部分,這一點應該在意料之中。這涉及要理解如何解決架構驅動力帶來的問題,創建軟件系統的整體結構,並為交付設定一個願景。不管你想做到多敏捷,你可能都需要花一些 時間去明確思考架構要如何解決利益相關者提出的問題,因為你的軟件系統自己搞不定它們。

軟件設計的一個關鍵部分是技術選擇,這通常是一個有趣的練習,但也有一定的挑戰。例如,有些組織有一份允許使用的技術清單,你只能從中選擇,有些組織則規定不允許使用特定許可的開源技術。接下來是其他所有因素,比如成本、許可、供應商關係、技術戰略、兼容性、互操作性、支持、不熟、升級策略、最終用戶環境,等等。這些因素摻雜在一起,常常會把選擇一個富客戶端技術之類的簡單決策徹底搞成一場噩夢。需要有人負責這個技術選擇的過程,這完全屬於軟件架構角色的職責範圍。