軟件架構

軟件架構是有關軟件整體結構與組件的抽象描述 ， 用於指導大型軟件系統各個方面的設計 。 軟件架構會包括軟體組件 、 組件之間的關係 ， 組件特性以及組件間關係的特性 。 軟件架構可以和建築物的架構相比擬 。 軟件架構是構建計算機軟件 ， 開發系統以及計劃進行的基礎 ， 可以列出開發團隊需要完成的任務 。 軟件架構是在軟體的基礎架構上進行決策 ， 一但決定後 ， 再修改的代價很大 。 軟件架構中的決策包括在軟體設計時的一些特殊結構性選項 ， 例如要控制太空船登陸艇的系統需要快速而且可靠 ， 因此需要選擇適合實時計算的語言 ， 而且爲了滿足可靠度的需求 ， 程式需要有數個冗餘的複本 ， 各複本運作在不同的硬體上 ， 以便比對各程式的結果 。 將軟體架構文檔化有助於和之間的溝通 ， 在高層設計時就可以提早進行決策 ， 也可以在各專案之間複用設計組件 。