Carnegie Mellon University

Mary Shaw

Dr. Mary Shaw

Alan J. Perlis University Professor of Computer Science, Software and Societal Systems

Address
5000 Forbes Avenue
Pittsburgh, PA 15213

Bio

Mary Shaw is the Alan J. Perlis Professor of Computer Science in SCS at Carnegie Mellon. She has been on the CMU faculty since earning her PhD in Computer Science at CMU. She previously worked in systems programming and research at the Research Analysis Corporation and Rice University.

She has made fundamental contributions to an engineering discipline for software through developing data abstraction with verification (with W. Wulf and R. London), establishing software architecture as a major branch of software engineering (with D. Garlan), designing influential and innovative curricula in software engineering and computer science supported by two influential textbooks, and helping to found the Software Engineering Institute at Carnegie Mellon.

Her current research focuses on software design particularly software architecture and design of systems created and used by real people. Her research interests have spanned the areas of programming systems and software engineering, particularly design spaces, software architecture, adaptive systems, software engineering, programming languages, specifications, and abstraction techniques. Particular areas of interest have included software architectures (Vitruvius), engineering practice, technology transition (SEI), program organization for quality human interfaces (Descartes), programming language design (Alphard, Tartan), abstraction techniques for advanced programming methodologies (abstract data types, generic definitions), reliable software development (strong typing and modularity), evaluation techniques for software (performance specification, compiler contraction, software metrics), and analysis of algorithms (polynomial derivative evaluation).

Dr. Shaw is the recipient of the United States' National Medal of Technology and Innovation, the nation’s highest honor for achievement and leadership in advancing the fields of science and technology. She has also received the IEEE TCSE Lifetime Achievement Award, the Stibitz Computer Pioneer Award, and the ACM SIGSOFT Outstanding Research Award, as well as the IEEE TCSE Distinguished Educator and Distinguished Women in Software Engineering Awards. At Carnegie Mellon she has received Carnegie Mellon’s Robert E. Doherty Award for Sustained Contributions to Excellence in Education and the Allen Newell Award for Research Excellence (with David Garlan and Bradley Schmerl). She is an elected Fellow and Life Member of the ACM and the IEEE and an elected Fellow of the American Association for the Advancement of Science.

Education

Mary has her PhD in Computer Science, from Carnegie Mellon University and her BA in Mathematics, from Rice University

Dr. Shaw created pioneering courses and textbooks in abstract data structures ("Fundamental Structures of Computer Science") and software architecture ("Software Architecture: Perspectives on an Emerging Discipline").

Research

Areas of Research Interest:

  • Architecture & Design
  • Autonomous Systems

Software Architecture

With David Garlan, Dr. Shaw identified the architecture of software systems as a major research area in software engineering, established the leading results, and stimulated widespread interest in the area. Software architecture is concerned with the fundamental large-scale structure and performance of a software system, with emphasis on the abstract patterns that characterize the types of components and interactions among components. Software designers use recognizable styles to select system structure; these styles depend on distinct kinds of components and of interactions among components. Architectural design can be supported by languages, models, tools, and analysis. This work was recognized with Carnegie Mellon's Allen Newell Award for Research Excellence in 2017 and the ACM SIGSOFT Outstanding Research Award in 2011. It was called out in the citation for her election to ACM Fellow in 1996. [Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996; "The Coming-of-Age of Software Architecture Research" Invited keynote, ICSE 2001; Stevens Award 2005; "The Golden Age of Software Architecture", IEEE Software, 2006, IEEE Software 25th anniversary editors' "top pick".]

Engineering Practice, Design, and Software Engineering

The startup of the Software Engineering Institute led Dr. Shaw to review the status and needs of software engineering. The current emphasis of the field was on management activities. In order to become an engineering discipline, she argued that the emphasis needed to shift to the technical substance that supports customary engineering practice: models, analysis techniques, design criteria, and so on. An invited paper reviewed the evolution of traditional engineering disciplines and the implications for software engineering. ["Prospects for an Engineering Discipline of Software," IEEE Software, 1990, runner-up to the Best Paper in IEEE Software in 1990, IEEE Software 25th anniversary editors' "top pick"]. She has worked to clarify the paradigms of software engineering research and make them more rigorous and explicit. ["Writing Good Software Engineering Research Papers", ICSE 2003; "Progress Toward an Engineering Discipline of Software", invited keynote ICSE 2016 and several other conferences].

Self-Adaptive Systems

With the advent of autonomous cyberphysical systems since the beginning of this century, self-adaptive systems – adaptive systems that monitor their operating environment and determine their own adaptations – have become significant. However, this branch of software engineering has been slow to embrace techniques from control theory that, although not directly applicable to systems of this complexity, provide guidance about design obligations that should be honored. Dr. Shaw advocated for these techniques at a series of Dagstuhl workshops, including as an organizer in 2010, and in the wider self-adaptive systems community. ["What Can Control Theory Teach Us About Assurances in Self-Adaptive Software Systems?" Software Engineering for Self-Adaptive Systems III 2017; "A Design Space for Adaptive Systems" Software Engineering for Self-Adaptive Systems II, 2013].

Vernacular Software Development

There will soon be 100 million end users of computing in the United States, perhaps half of them engaged in programming-like activity. These vernacular programmers are ill-equipped to select, adapt, and integrate software, communication, and data components that are sufficiently good for their tasks. She and her colleagues developed techniques suitable for everyday users to develop sufficient confidence in software that is used routinely for everyday activities. ["Semantic Anomaly Detection", ICSE 2002; "Estimating the Number of End Users and End User Programmers", VL/HCC 05 (named most influential paper of 10+/-1 at VL/HCC 14); "Characterizing Feature Usage by Information Workers", VL/HCC 06]. This work was done largely with the EUSES collaboration ["The state of the art in end-user software engineering", ACM Computing Surveys, April 2011, "Myths and mythconceptions: What does it mean to be a programming language, anyhow?" HOPL 2021].

Projects

Dr. Shaw's current major project is a book titled "There Must Be a Better Way." This work collects and synthesizes decades of her essays, position papers and research results. The book represents a culmination of her extensive career in computer science and software engineering, offering insights drawn from her long-standing contributions to the field.

Publications

M. Shaw and D. Garlan, Software Architecture: Perspectives on an Engineering Discipline. Prentice Hall, 1996. ISBN 978-0131829572

E. Kang and M. Shaw, "tl;dr: Chill, y'all – AI will not devour SE," in Onward! Essays at SPLASH 2024.

M. Shaw and M. Petre, "Design spaces and how software designers use them: a sampler," in Proc. Designing 2024 Workshop collocated with ICSE 2024, 2024, pp. 1-8. https://doi.org/10.1145/3643660.3643941

M. Shaw, "Aha! Strategies for Gaining Insights into Software Design," in Proc. PLoP 2023: Pattern Languages of Programs Conference, ACM, 2023. [Online]. Available: arXiv:2406.05210

M. Shaw, "Myths and Mythconceptions: What Does it Mean to be a Programming Language, Anyhow?" in Proc. ACM Program. Lang., vol. 4, HOPL, Article 234, Jun. 2020, pp. 1-44. doi:10.1145/3480947

C. Le Goues, C. Jaspan, I. Ozkaya, M. Shaw, and K. Stolee, "Bridging the Gap: From Research to Practical Advice," IEEE Software, vol. 35, no. 5, pp. 50-57, Sep-Oct 2018. doi:10.1109/MS.2018.3571235

M. Litoiu, M. Shaw, G. Tamura, N. M. Villegas, H. A. Mueller, H. Giese, R. Rouvoy, and E. Rutten, "What Can Control Theory Teach Us About Assurances in Self-Adaptive Software Systems?" in Software Engineering for Self-Adaptive Systems III, Assurances, R. de Lemos, D. Garlan, C. Ghezzi, H. Giese, Eds. Lecture Notes in Computer Science, vol. 9640, Springer, 2017, pp. 90-134. doi:10.1007/978-3-319-74183-3_4

M. Shaw, "The Role of Design Spaces in Guiding a Software Design," in Software Designers in Action: A Human-Centric Look at Design Work, M. Petre and A. van der Hoek, Eds. CRC Press, 2013. ISBN 978-1466501096