Abstract:
Software architecture has become an increasingly important subject to software engineers, both researchers and practitioners alike. At the heart of every well-engineered software system is its software architecture. The architecture is the set of principal design decisions about a system. Architecture permeates and manifests itself in all major facets of a software system, including the system’s high-level building blocks—components (units of computation in a system), connectors (models of the interactions between software components), and configurations (arrangements of software components and connectors, and the rules that guide their composition); the system’s deployment (mappings of software elements to hardware nodes); the system’s non-functional properties (e.g., reliability, scalability, security, efficiency); and the system’s evolution patterns (including runtime adaptation). Software architectures that are found particularly useful for families of systems are often codified into architectural patterns, architectural styles, and reusable, parameterized reference architectures.
This tutorial will afford the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those described above. Additionally, the tutorial will introduce the participants to the state-of-the-art as well as the state-of-the-practice in software architecture, and will look at emerging and likely future trends in this field. The discussion will be illustrated with several real-world examples.
Presenters:
Nenad Medvidović is an Associate Professor in the Computer Science Department and the Director of the Center for Systems and Software Engineering at the University of Southern California. He is the Program Co-Chair of ICSE 2011. He is a recipient of the National Science Foundation CAREER award, the Okawa Foundation Research Grant, and the IBM Real-Time Innovation Award. His ICSE 1998 paper was named that conference’s Most Influential Paper. Medvidović’s research interests are in the area of software architecture, with a focus on distributed, mobile, and embedded computing environments. He is a co-author of a new textbook on software architectures.
Richard N. Taylor is a Professor of Information and Computer Sciences and the Director of the Institute for Software Research at the University of California at Irvine. His research interests are centered on design and software architectures, especially event-based and peer-to-peer systems. Taylor has served as chairman of ACM SIGSOFT and of the ICSE steering committee. He was general chair of FSE 2004 and is the General Chair for ICSE 2011. Taylor is an ACM Fellow and has been awarded the ACM SIGSOFT’s Distinguished Service Award and Outstanding Research Award. In 2008 he received ICSE's “Most Influential Paper Award”.