系统架构

系统架构是定義系統结构行為及其他視圖(view)的概念模型[1]。架构敘述(architecture description)是有關系統的正式描述以及呈現,以有助於瞭解系統结构行為的方式來組織。

系统架构可以包括系統中的組件以及子系統,這些元件以及子系統共同工作來實現整個系統。有許多人設法將描述系統架構的語言形式化,這些語言稱為架构描述语言(ADL)[2][3]

簡介

許多組織用不同的方式在定義系統架構,以下是一些例子:

  • 系統的基本組織,由其組件、組件之間的關係以及組件和環境的關係、主導其設計以及演進的原則所組成[4]
  • 一個系統的呈現,包括從機能到硬體組件和軟體組件的映射、從软件架构硬體架構的映射,以及這些介面和人的互動[5]
  • 實體元件的分配安排,針對消費產品或是產品生命週期提供其設計方案,目的是要滿足機能架構的需求,以及需求的基線(baseline)[6]
  • 包括最重要、普遍、頂層、策略性發明、決策的架構,以及這些和整體架構之間的基本原理(即其基本要素和關係),以及其相關的特徵以及行為[7]
  • 有關电子计算机設計以及內容的敘述。若有文件,可能會包括目前硬體、軟體以及網路能力的細節清單,有關長期計劃以及後續優先購買項目的敘述,以及昇級或更換過期設備或軟體的計劃[8]
  • 系統的正式敘述,或是在組件層級的系統詳細計劃,目的是為了做為實作的指引[9]
  • 產品設計架構的組成,以及其生命週期過程[10]
  • 組件的結構,組件之間的關係,主導其設計以及演進的定律及指引[9]

系統架構可以視為是一組已有系統(或是未來系統)呈現方式的組合。其呈現一開始會說明一般性,高階的機能組織,漸漸會到更細節,更具體的敘述。

系統架構承載了組成系統元素的資訊、元素之間的關係、主導這些關係的原則。系統架構可能包括硬體、軟體、文件、設備、人工程序或是由組織或是人員所扮演的角色。

系統架構一般會專注在系統組件或是子系統的介面,以及系統和外部環境(特別是用户)之間的介面。系統和使用者之間的界面會稱為用户界面人机交互

系統架構可以和系統架構工程(system architecture engineering、SAE)對比,系統架構工程是有效實現系統架構的方法以及原則[11]

  • 系統架構工程是一種方式,因為其中有提到許多步驟,在許多條件的約束下,產生系統架構或是更改系統架構。
  • 系統架構工程是一種原則,因為使用了知识體系來告知實作者,在許多條件的約束下,最有效設計系統的方式是什麼。

和其他領域的關係

系統架構和許多領域中長時間發展的技術和實務緊密相關,其中最重要的領域應該是土木架構。

在數位電腦發明之前,在電子學以及其他領域都已使用「系統」一詞,其意義也和現代的意義相近。不過隨著數位電腦的出現,軟體工程也發展成獨立的學科,因此開始需要區分工程製作的硬體工件、軟體工件,以及合併硬體和軟體的工件。可程式化的硬體工件(電腦的硬體)若沒是沒有軟體,無法發揮其作用,而軟體工件若是沒有可以執行其程序的硬體,也無法發揮作用。而硬體和軟體配合,就可以進行非常多的工作。因此,在電腦及軟體領域(也包括其他工程領域,例如通訊)中,常會用「系統」來表示有所有基本元件(一般來說,會包括硬體和軟體),可以執行特定工作的工件。

在上述的領域中,系統多半是指可程式的硬體以及其中的軟體,系統工程師會關注整體的設備(包括硬體和軟體),特別關注其中各單元之間的介面,也包括軟體和硬體的介面,以及設備和人之間的界面(人機介面)。硬體工程師會負責硬體元件的開發,軟體工程師會負責軟體的開發,而系統工程師的工作是確認軟體可以在硬體上正常執行,以及使用者是否可以正常使用此一設備,執行預期的功能。

系統架構會用到硬體元件和軟體元件,用這些元件來設計整體的系統。好的系統架構可以視為是分割方案,將系統現有(或是預期會有)的功能分割到一組可以清楚劃分的有界子系統中,沒有任何遺漏。分割的主要目的是安排各個子系統中的元件,使元件之間的相互相依性降到最低。不論是軟體或是硬體,好的子系統多半本身就是一個有意義的「物件」。而且,好的系統可以將使用者的需求以及對應的測試相對應。理想上,每一個元件也都會有對應的需求以及測試。

種類

以下是不同種類的系统架构(其基本原則都相同[12][13]

相關條目

參考資料

  1. Hannu Jaakkola and Bernhard Thalheim. (2011) "Architecture-driven modelling methodologies." In: Proceedings of the 2011 conference on Information Modelling and Knowledge Bases XXII. Anneli Heimbürger et al. (eds). IOS Press. p. 98
  2. Paul C. Clements (1996) "A survey of architecture description languages 页面存档备份,存于." Proceedings of the 8th international workshop on software specification and design. IEEE Computer Society, 1996.
  3. Nenad Medvidovic and Richard N. Taylor (2000). "A classification and comparison framework for software architecture description languages. 页面存档备份,存于" Software Engineering, IEEE Transactions on 26.1 (2000): 70-93.
  4. 來自美國國家標準協會/电气电子工程师学会 IEEE 1471
  5. From the Carnegie Mellon University 页面存档备份,存于's Software Engineering Institute 页面存档备份,存于.
  6. From The Human Engineering Home Page's Glossary. 存檔,存档日期2015-02-13.
  7. From OPEN Process Framework (OPF) Repository 存檔,存档日期2006-03-05..
  8. From The National Center for Education Statistics glossary 页面存档备份,存于.
  9. 开放组体系结构框架
  10. From 电气电子工程师学会 1220-1998 as found at their glossary 存檔,存档日期2006-05-17..
  11. The Method Framework for Engineering System Architectures, Donald Firesmith et al., 2008
  12. The fundamental principles of Systems Architecture 页面存档备份,存于, by Boris Golden
  13. The Art of Systems Architecture, Mark Maier and Eberhardt Rechtin, 2nd ed 2002
  14. Choosing A Strategic Systems Architecture, by Brad Day

外部連結

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.