星期五, 8月 14, 2009

什麼是軟體架構(software architecture)

到底什麼是「軟體架構」(software architecture)?無論是網路上或是書籍雜誌中,對這個詞彙的定義五花八門,所以我們特別以IEEE 1471-2000標準文件中的定義為基礎,進一步定義出軟體架構。IEEE 1471-2000這份標準文件的全名為《IEEE Recommended Practice for Architectural Description of Software-Intensive Systems》,它是一份關於軟體架構敘述的建議標準。

對於,系統、架構、架構敘述(architecture description)、關係人(stakeholder)、視圖(view)、觀點(viewpoint)等等這些跟架構有關的重要詞彙,IEEE 1471-2000的定義如下:
系統——是一組有組織的元件(component),用來完成一項或一些具體的功能。
架構——是系統的基礎組織,它被具體呈現於,系統的元件、元件彼此間的關係、元件與環境之間的關係,以及系統設計與發展的指導原則上。
架構敘述——是一組文件,專門用來描述架構。
關係人——可以是個人、團體、或組織,它或它們關心系統,或者對系統有興趣。
視圖——是系統在特定觀點下所呈現的圖像。
觀點——是一個樣板(template),用來描述如何產生與使用架構視圖。觀點包含了名稱、關係人(stakeholders)、在這個觀點下所關切的事情、以及建模與分析規範。

因此,我們以「架構是系統的基礎組織,它被具體呈現於,系統的元件、元件彼此間的關係、元件與環境之間的關係,以及系統設計與發展的指導原則上。」這個架構定義為基礎,進一步定義出軟體架構,如下:
軟體架構——是一組軟體元件、次系統、關係、互動、以及將這一切基礎元素與軟體限制揉合在一起的一套指導原則。

簡單來說,如果我們將軟體架構具體化,它就會具體呈現在元件、次系統、關係、互動上頭。元件、次系統,元件之間的關係、互動,或者是次系統之間的關係、互動,這些都是軟體架構的一部分。

原文

Facebook留言板:

0 意見: