Software architecture: many faces, many places, yet a central discipline

Software architecture is the set of principal design decisions about a system. As such, it has been around since the design of the very first computer programs. Nonetheless, as a discipline and body of knowledge, it has greatly changed and matured over the years, emerging as a critical component of our field. This talk will examine a few of the many faces of software architecture, particularly since it emerged as a named field of study in the late 80's and early 90's. From an early focus on components, connectors, and configurations of systems, the focus of work is shifting to encompass a broader range of critical design decisions. A particular emphasis of this talk will be the articulation of fundamental principles of architectural styles and consideration of how they can dominate system design. From some early examples consideration will proceed to REST and hence to some emerging styles and the novel features they support. Along the way we will also consider notations and tools for supporting architecture-based design, and the perhaps most important winning proposition for the discipline: domain-specific software architectures.

[1]  D Manyu,et al.  Hypertext transfer protocol , 2009 .