An Introduction to Software Architecture

論文作者:David Garlan and Mary Shaw

論文時間:January 1994

論文地址(pdf):http://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.pdf

論文地址(HTML):https://www.researchgate.net/publication/229124515_An_Introduction_to_Software_Architecture

Abstract

    As the size of software systems increases, the algorithms and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system—the software architecture—presents a new set of design problems. This level of design has been addressed in a number of ways including informal diagrams and descriptive terms, module interconnection languages, templates and frameworks for systems that serve the needs of specific domains, and formal models of component integration mechanisms.

    In this paper we provide an introduction to the emerging field of software architecture. We begin by considering a number of common architectural styles upon which many systems are currently based and show how different styles can be combined in a single design. Then we present six case studies to illustrate how architectural representations can improve our understanding of complex software systems. Finally, we survey some of the outstanding problems in the field, and consider a few of the promising research directions.

    “隨着軟件系統規模的增長,算法和數據結構不再是主要的設計問題。當系統由多個組件組成的時候,整個系統的組織——也就是所謂的軟件架構——會導致一系列新的問題。”

    設計不同規模的軟件系統,所面對的複雜度是不一樣的。系統設計和模塊設計,明顯抽象的層次不一樣。模塊設計更具體,關注模塊的邏輯和實現,面臨的複雜度一般可以通過設計模式、算法和數據結構來解決;而系統設計更抽象,是根據當前要設計的系統複雜度做判斷和取捨,面對的複雜度往往是高性能、高併發、高可靠、可擴展、可伸縮、安全性中的一個或多個,再根據複雜度去設計解決方案。

    每一種複雜度都有自己範疇的問題本質、方法論和工具(抽象一點就是道、術、器)。在運用方法論和使用工具的時候,不能偏離問題本質;方法論用於設計該複雜度的解決方案,而工具則可以將該方案實施落地。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章