Dr. Mary Shaw
Alan J. Perlis University Professor, Software and Societal Systems
Bio
Mary Shaw is the A.J. Perlis Professor of Computer Science in the SCS at Carnegie Mellon. She was one of the founders of the SEI and its chief scientist from 1984 to 1987; she now holds a joint appointment at the SEI and SCS. She previously worked in systems programming and research at the Research Analysis Corporation and Rice University.
Her research interests in computer science lie primarily in the areas of programming systems and software engineering, particularly software architecture, programming languages, specifications, and abstraction techniques. Particular areas of interest and projects have included software architectures (Vitruvius), 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 National Medal of Technology and Innovation, the nation’s highest honor for achievement and leadership in advancing the fields of science and technology, as well as the Stibitz Computer Pioneer Award. She is a Fellow of the IEEE Computer Society and the American Association for the Advancement of Science. She received the Warnier Prize for contributions to software engineering in 1993. She is a member of the Association of Computing Machinery, the New York Academy of Sciences, Sigma Xl, She serves on Working Group 2.4 (System Implementation Languages) of the International Federation of Information Processing Societies and the IEEE Technical Committee on Software Engineering.
Education
- PhD in Computer Science, Carnegie Mellon University
- BA in Mathematics, 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 Software25th 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