軟件架構(architecture)是有關軟件總體結構與組件的抽象描述,用於指導大型軟件系統各個方面的設計。程序員
軟件體系結構是構建計算機軟件實踐的基礎。與建築師設定建築項目的設計原則和目標,做爲繪圖員畫圖的基礎同樣,一個軟件架構師或者系統架構師陳述軟件架構以做爲知足不一樣客戶需求的實際系統設計方案的基礎。從和目的、主題、材料和結構的聯繫上來講,軟件架構能夠和建築物的架構相比擬。一個軟件架構師須要有普遍的軟件理論知識和相應的經驗來實施和管理軟件產品的高級設計。軟件架構師定義和設計軟件的模塊化,模塊之間的交互,用戶界面風格,對外接口方法,創新的設計特性,以及高層事物的對象操做、邏輯和流程。架構
軟件架構師與客戶商談概念上的事情,與經理商談普遍的設計問題,與軟件工程師商談創新的結構特性,與程序員商談實現技巧,外觀和風格。框架
軟件架構是一個系統的草圖。軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的鏈接則明確和相對細緻地描述組件之間的通信。在實現階段,這些抽象組件被細化爲實際的組件,好比具體某個類或者對象。在面向對象領域中,組件之間的鏈接一般用接口來實現。模塊化
——from wekipedia—— spa
軟件框架(Software framework),一般指的是爲了實現某個業界標準或完成特定基本任務的軟件組件規範,也指爲了實現某個軟件組件規範時,提供規範所要求之基礎功能的軟件產品。設計
框架的功能相似於基礎設施,與具體的軟件應用無關,可是提供並實現最爲基礎的軟件架構和體系。軟件開發者一般依據特定的框架實現更爲複雜的商業運用和業務邏輯。這樣的軟件應用能夠在支持同一種框架的軟件系統中運行。中間件
簡而言之,框架就是制定一套規範或者規則(思想),你們(程序員)在該規範或者規則(思想)下工做。或者說使用別人搭好的舞臺來作編劇和表演。對象