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