• DocumentCode
    2078943
  • Title

    Software architecture: foundations, theory, and practice

  • Author

    Medvidovic, Nenad ; Taylor, Richard N.

  • Author_Institution
    Comput. Sci. Dept., Univ. of Southern California, Los Angeles, CA, USA
  • Volume
    2
  • fYear
    2010
  • fDate
    2-8 May 2010
  • Firstpage
    471
  • Lastpage
    472
  • Abstract
    Software architecture has become a centerpiece subject for software engineers, both researchers and practitioners alike. At the heart of every software system is its software architecture, i.e., "the set of principal design decisions about the system". Architecture permeates all major facets of a software system, for principal design decisions may potentially be made at any time during a system\´s lifetime, and potentially by any stakeholder. Such decisions encompass structural concerns, such as the system\´s high-level building blocks -components, connectors, and configurations; the system\´s deployment; the system\´s non-functional properties; and the system\´s evolution patterns, including runtime adaptation. Software architectures found particularly useful for families of systems - product lines - are often codified into architectural patterns, architectural styles, and reusable, parameterized reference architectures. This tutorial affords the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those mentioned above. Additionally, the tutorial introduces the participants to the state-of-the-art as well as the state-of-the-practice in software architecture, and looks at emerging and likely future trends in this field. The discussion is illustrated with numerous real-world examples. One example given prominent treatment is the architecture of the World Wide Web and its underlying architectural style, REpresentational State Transfer (REST).
  • Keywords
    Internet; object-oriented programming; software architecture; REpresentational State Transfer; World Wide Web; architectural pattern; architectural style; design decision; reusable parameterized reference architecture; runtime adaptation; software architecture; software engineering; software system; structural concern; system components; system configuration; system connectors; system deployment; system evolution pattern; system high-level building blocks; system lifetime; Architecture; Buildings; Computer architecture; Software architecture; Software systems; Tutorials; component; connector; design; non-functional property; software architecture;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2010 ACM/IEEE 32nd International Conference on
  • Conference_Location
    Cape Town
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-60558-719-6
  • Type

    conf

  • DOI
    10.1145/1810295.1810435
  • Filename
    6062253