Mary Shaw

dblp:93/5634 · DBLP profile ↗
← Back
47ranked-venue papers
21as first author
2since 2021 · last 2025
0000-0003-1337-4557ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 33 · 15 first-author · 2 since 2021Human-computer interaction and ubiquitous computing · 11 · 3 first-authorArtificial intelligence and machine learning · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 2 first-authorTheory of computation · 1 · 1 first-author
YearPublicationVenuePosition
2025 Revisiting Abstractions for Software Architecture and Tools to Support Them
abstract
The mid-1990s saw the design of programming languages for software architectures, which define the high-level aspects of software systems including how code components were composed to form full systems. Our paperAbstractions for Software Architecture and Tools to Support Thempresented a conceptual view of software architecture based on abstractions used in practice to organize software systems, a language that supported these abstractions, and a prototype implementation of this language (Shaw et al., 1995). By invitation, we reflect on the paper’s principal ideas about system-level abstractions, place the work in a historical context of steadily increasing abstraction power in software development languages and infrastructure, and reflect on how progress since the paper’s 1995 publication has been influenced, directly or indirectly, by this work. We describe current manifestations of architectural ideas and current challenges. We suggest how the strategy we used to identify and reify architectural abstractions may apply to current opportunities.
Mary Shaw, Daniel V. Klein, Theodore L. Ross
IEEE Trans. Software Eng.1
2024 tl;dr: Chill, y'all: AI Will Not Devour SE
abstract
Social media provide a steady diet of dire warnings that artificial intelligence (AI) will make software engineering (SE) irrelevant or obsolete. To the contrary, the engineering discipline of software is rich and robust; it encompasses the full scope of software design, development, deployment, and practical use; and it has regularly assimilated radical new offerings from AI. Current AI innovations such as machine learning, large language models (LLMs) and generative AI will offer new opportunities to extend the models and methods of SE. They may automate some routine development processes, and they will bring new kinds of components and architectures. If we're fortunate they may force SE to rethink what we mean by correctness and reliability. They will not, however, render SE irrelevant.
Eunsuk Kang, Mary Shaw
Onward!2
2011 Panel on the role of graduate software and systems engineering bodies of knowledge in formulating graduate software engineering curricula
abstract
The Software Engineering Body of Knowledge (SWEBOK), published in 2004, and now under revision, has influenced many software engineering graduate programs worldwide. In 2009, guidelines were published for graduate programs in software engineering (GSWE2009). GSWE2009, now sponsored by both the IEEE Computer Society and the Association for Computing Machinery, strongly rely on the SWEBOK but also recommends specific systems engineering knowledge for students to master. Today, an international team is creating a rigorous Systems Engineering Body of Knowledge (SEBoK) with the help of the IEEE Computer Society and the International Council on Systems Engineering and other professional societies. As it matures, the SEBoK should influence future versions of GSWE2009 and graduate program curricula worldwide. This panel will examine the influence of bodies of knowledge on both the creation of new graduate software engineering programs and the evolution of existing ones.
Barry W. Boehm, Pierre Bourque, Don Gelosh, Thomas B. Hilburn, Arthur B. Pyster, Mary Shaw, J. Barrie Thompson
CSEE&T6
2011 Software architecture: reflections on an evolving discipline
abstract
Software Architecture emerged in the 1990's as an important sub-field of software engineering. While good architectural design had long been recognized as critical to the success of any complex software system, before then the practice of architecting had relied largely on ad hoc, uncodified, and idiosyncratic techniques and knowledge. By the 2000's the field had matured to the point where there were widely-recognized taxonomies of architectural patterns, techniques for formally representing and analyzing architectures, methods for reviewing an architectural design, widespread adoption of architectural product lines and composition frameworks, and techniques for ensuring conformance between an architecture and an implementation of it. In this talk we reflect on the key enablers of a discipline of software architecture that led to these advances, the central ideas that form its core, and its enduring principles that continue to shape the field of software engineering. We consider both the important concepts on which it builds, as well as those that have built on top of it. Finally, we examine some of the important new trends and challenges that are likely to have an impact on how software architecture will evolve in the future.
David Garlan, Mary Shaw
SIGSOFT FSE2
2009 Intelligently creating and recommending reusable reformatting rules
abstract
When users combine data from multiple sources into a spreadsheet or dataset, the result is often a mishmash of different formats, since phone numbers, dates, course numbers and other string-like kinds of data can each be written in many different formats. Although spreadsheets provide features for reformatting numbers and a few specific kinds of string data, they do not provide any support for the wide range of other kinds of string data encountered by users. We describe a user interface where a user can describe the formats of each kind of data. We provide an algorithm that uses these formats to automatically generate reformatting rules that transform strings from one format to another. In effect, our system enables users to create a small expert system called a "tope" that can recognize and reformat instances of one kind of data. Later, as the user is working with a spreadsheet, our system recommends appropriate topes for validating and reformatting the data. With a recall of over 80% for a query time of under 1 second, this algorithm is accurate enough and fast enough to make useful recommendations in an interactive setting. A laboratory experiment shows that compared to manual typing, users can reformat sample spreadsheet data more than twice as fast by creating and using topes.
Christopher Scaffidi, Brad A. Myers, Mary Shaw
IUI3
2009 The challenge of pervasive software to the conventional wisdom of software engineering
abstract
The conventional wisdom of software engineering holds that software systems are developed by software professionals, that they have knowable (if evolving) requirements, that project managers control system configurations, that results can be computed directly, and that the systems can, at least in principle, be validated.
Mary Shaw
ESEC/SIGSOFT FSE1
2009 Predicting reuse of end-user web macro scripts
abstract
Repositories of code written by end-user programmers are beginning to emerge, but when a piece of code is new or nobody has yet reused it, then current repositories provide users with no information about whether that code might be appropriate for reuse. Addressing this problem requires predicting reusability based on information that exists when a script is created. To provide such a model for web macro scripts, we identified script traits that might plausibly predict reuse, then used IBM CoScripter repository logs to statistically test how well each corresponded to reuse. We then built a machine learning model that combines the useful traits and evaluated how well it can predict four different types of reuse that we saw in the repository logs. Our model was able to predict reuse from a surprisingly small set of traits. It is simple enough to be explained in only 6-11 rules, making it potentially viable for integration in repository search engines for end-user programmers.
Christopher Scaffidi, Christopher Bogart, Margaret M. Burnett, Allen Cypher, Brad A. Myers, Mary Shaw
VL/HCC6
2008 Empirical challenges in ultra large scale systems
abstract
No abstract available.
Mary Shaw
ESEM1
2008 Topes: reusable abstractions for validating data
abstract
Programmers often omit input validation when inputs can appear in many different formats or when validation criteria cannot be precisely specified. To enable validation in these situations, we present a new technique that puts valid inputs into a consistent format and that identifies "questionable" inputs which might be valid or invalid, so that these values can be double-checked by a person or a program. Our technique relies on the concept of a "tope", which is an application-independent abstraction describing how to recognize and transform values in a category of data. We present our definition of topes and describe a development environment that supports the implementation and use of topes. Experiments with web application and spreadsheet data indicate that using our technique improves the accuracy and reusability of validation code and also improves the effectiveness of subsequent data cleaning such as duplicate identification.
Christopher Scaffidi, Brad A. Myers, Mary Shaw
ICSE3
2008 Tool support for data validation by end-user programmers
abstract
End-user programming tools for creating spreadsheets and webforms offer no data types except "string" for storing many kinds of data, such as person names and street addresses. Consequently, these tools cannot automatically validate these data.
Christopher Scaffidi, Brad A. Myers, Mary Shaw
ICSE3
2006 Experiences and results from initiating field defect prediction and product test prioritization efforts at ABB Inc
abstract
Quantitatively-based risk management can reduce the risks associated with field defects for both software producers and software consumers. In this paper, we report experiences and results from initiating risk-management activities at a large systems development organization. The initiated activities aim to improve product testing (system/integration testing), to improve maintenance resource allocation, and to plan for future process improvements. The experiences we report address practical issues not commonly addressed in research studies: how to select an appropriate modeling method for product testing prioritization and process improvement planning, how to evaluate accuracy of predictions across multiple releases in time, and how to conduct analysis with incomplete information. In addition, we report initial empirical results for two systems with 13 and 15 releases. We present prioritization of configurations to guide product testing, field defect predictions within the first year of deployment to aid maintenance resource allocation, and important predictors across both systems to guide process improvement planning. Our results and experiences are steps towards quantitatively-based risk management.
Paul Luo Li, James D. Herbsleb, Mary Shaw, Brian Robinson
ICSE3
2006 Dimensions Characterizing Programming Feature Usage by Information Workers
abstract
Information workers such as administrative staff, consultants, and their managers constitute one of the largest groups of end users, yet little research about their usage of programming features is available to guide development of end user programming tools. In this paper, we describe our survey of over 800 information workers and our analysis of their feature usage in applications such as spreadsheets, browsers, and databases. Our factor analysis reveals three clusters of features - macro features, linked structure features, and imperative features - such that information workers with an inclination to use a feature in each cluster also were inclined to use other features in that cluster, even though each cluster spans several tools. We discuss the implications for research aimed at providing end user programming tools for information workers
Christopher Scaffidi, Amy J. Ko, Brad A. Myers, Mary Shaw
VL/HCC4
2006 Task-based adaptation for ubiquitous computing
abstract
An important domain for autonomic systems is the area of ubiquitous computing: users are increasingly surrounded by technology that is heterogeneous, pervasive, and variable. In this paper we describe our work in developing self-adapting computing infrastructure that automates the configuration and reconfiguration of such environments. Focusing on the engineering issues of self-adaptation in the presence of heterogeneous platforms, legacy applications, mobile users, and resource variable environments, we describe a new approach based on the following key ideas: 1) explicit representation of user tasks allows us to determine what service qualities are required of a given configuration; 2) decoupling task and preference specification from the lower level mechanisms that carry out those preferences provides a clean engineering separation of concerns between what is needed and how it is carried out; and 3) efficient algorithms allow us to calculate in real time near-optimal resource allocations and reallocations for a given task
João Pedro Sousa, Vahe Poladian, David Garlan, Bradley R. Schmerl, Mary Shaw
IEEE Trans. Syst. Man Cybern. Syst.5
2005 Deciding what to design: closing a gap in software engineering education
abstract
Software has jumped "out of the box" - it controls critical systems; it pervades business and commerce; it is embedded in myriad mechanisms; it infuses entertainment, communication, and other activities of everyday life. Designs for these applications are constrained not only by traditional considerations of capability and performance but also by economic, business, market, and policy issues and the context of intended use. The diversity of applications requires adaptability in responding to client needs, and the diversity of clients and contexts requires the ability to discriminate among criteria for success.As a result, software designers must also get out of their boxes: in addition to mastering traditional software development skills, they must understand the contextual issues that discriminate good solutions from merely competent ones. Current software engineering education, however, remains largely "in the box": it neglects the rich fabric of issues that lie between the client's problem and actual software development. At Carnegie Mellon we have addressed this major shortcoming with a course that teaches students to understand both the capabilities required by the client and the constraints imposed by the client's context.This paper presents our view of the engineering character of software engineering, describes the content and organization of our new course, reports on our experience from the first three offerings of our course, and suggests ways to adapt our course for other educational settings.
Mary Shaw, James D. Herbsleb, Ipek Ozkaya
ICSE1
2005 Forecasting Field Defect Rates Using a Combined Time-Based and Metrics-Based Approach: A Case Study of OpenBSD
abstract
Open source software systems are critical infrastructure for many applications; however, little has been precisely measured about their quality. Forecasting the field defect-occurrence rate over the entire lifespan of a release before deployment for open source software systems may enable informed decision-making. In this paper, we present an empirical case study often releases of OpenBSD. We use the novel approach of predicting model parameters of software reliability growth models (SRGMs) using metrics-based modeling methods. We consider three SRGMs, seven metrics-based prediction methods, and two different sets of predictors. Our results show that accurate field defect-occurrence rate forecasts are possible for OpenBSD, as measured by the Theil forecasting statistic. We identify the SRGM that produces the most accurate forecasts and subjectively determine the preferred metrics-based prediction method and set of predictors. Our findings are steps towards managing the risks associated with field defects
Paul Luo Li, James D. Herbsleb, Mary Shaw
ISSRE3
2005 Estimating the Numbers of End Users and End User Programmers
abstract
In 1995, Boehm predicted that by 2005, there would be "55 million performers" of "end user programming" in the United States. The original context and method which generated this number had two weaknesses, both of which we address. First, it relies on undocumented, judgment-based factors to estimate the number of end user programmers based on the total number of end users; we address this weakness by identifying specific end user sub-populations and then estimating their sizes. Second, Boehm's estimate relies on additional undocumented, judgment-based factors to adjust for rising computer usage rates; we address this weakness by integrating fresh Bureau of Labor Statistics (BLS) data and projections as well as a richer estimation method. With these improvements to Boehm's method, we estimate that in 2012 there will be 90 million end users in American workplaces. Of these, we anticipate that over 55 million will use spreadsheets or databases (and therefore may potentially program), while over 13 million will describe themselves as programmers, compared to BLS projections of fewer than 3 million professional programmers. We have validated our improved method by generating estimates for 2001 and 2003, then verifying that our estimates are consistent with existing estimates from other sources.
Christopher Scaffidi, Mary Shaw, Brad A. Myers
VL/HCC2
2005 Sparking Research Ideas from the Friction Between Doctrine and Reality
abstract
Good research ideas often arise from critical observation of inconsistencies between researchers’ assumptions about software development and practical reality. This dissonance creates a kind of friction that can spark research ideas. This is the text for the Stevens Award Lecture on November 8, 2005. The Stevens Award was created to recognize outstanding contributions to the literature or practice of methods for software and systems development.
Mary Shaw
WICSA1
2005 Software Architecture Education Session Report
abstract
In the software architecture education session, we discussed four main issues: how to make a software architecture course sufficiently realistic, how to teach non-technical competencies of software architects, the place of such a course in a university curriculum, and how to grow software architects beyond the university. The session resulted in a first sketch of software architecture knowledge areas, and the extent to which these are deemed required for certain classes of software professionals.
Mary Shaw, Hans van Vliet
WICSA1
2004 Dynamic Configuration of Resource-Aware Services
abstract
An important emerging requirement for computing systems is the ability to adapt at run time, taking advantage of local computing devices, and coping with dynamically changing resources. Three specific technical challenges in satisfying this requirement are to (1) select an appropriate set of applications or services to carry out a user's task, (2) allocate (possibly scarce) resources among those applications, and (3) reconfigure the applications or resource assignments if the situation changes. In this paper, we show how to provide a shared infrastructure that automates configuration decisions given a specification of the user's task. The heart of the approach is an analytical model and an efficient algorithm that can be used at run time to make near-optimal (re)configuration decisions. We validate this approach both analytically and by applying it to a representative scenario.
Vahe Poladian, João Pedro Sousa, David Garlan, Mary Shaw
ICSE4
2004 Automated Assistance for Eliciting User Expectations
Orna Raz, Rebecca B. Buchheit, Mary Shaw, Philip Koopman, Christos Faloutsos
SEKE3
2004 Empirical evaluation of defect projection models for widely-deployed production software systems
abstract
Defect-occurrence projection is necessary for the development of methods to mitigate the risks of software defect occurrences. In this paper, we examine user-reported software defect-occurrence patterns across twenty-two releases of four widely-deployed, business-critical, production, software systems: a commercial operating system, a commercial middleware system, an open source operating system (OpenBSD), and an open source middleware system (Tomcat). We evaluate the suitability of common defect-occurrence models by first assessing the match between characteristics of widely-deployed production software systems and model structures. We then evaluate how well the models fit real world data. We find that the Weibull model is flexible enough to capture defectoccurrence behavior across a wide range of systems. It provides the best model fit in 16 out of the 22 releases. We then evaluate the ability of the moving averages and the exponential smoothing methods to extrapolate Weibull model parameters using fitted model parameters from historical releases. Our results show that in 50% of our forecasting experiments, these two naïve parameter-extrapolation methods produce projections that are worse than the projection from using the same model parameters as the most recent release. These findings establish the need for further research on parameter-extrapolation methods that take into account variations in characteristics of widely-deployed, production, software systems across multiple releases.
Paul Luo Li, Mary Shaw, James D. Herbsleb, Bonnie K. Ray, Peter Santhanam
SIGSOFT FSE2
2003 Writing Good Software Engineering Research Paper
abstract
Software engineering researchers solve problems of several different kinds. To do so, they produce several different kinds of results, and they should develop appropriate evidence to validate these results. They often report their research in conference papers. I analyzed the abstracts of research papers submitted to XSE 2002 in order to identify the types of research reported in the submitted and accepted papers, and I observed the program committee discussions about which papers to accept. This report presents the research paradigms of the papers, common concerns of the program committee, and statistics on success rates. This information should help researchers design better research projects and write papers that present their results to best advantage.
Mary Shaw
ICSE1
2002 Semantic anomaly detection in online data sources
abstract
Much of the software we use for everyday purposes incorporates elements developed and maintained by someone other than the developer. These elements include not only code and databases but also dynamic data feeds from online data sources. Although everyday software is not mission critical, it must be dependable enough for practical use. This is limited by the dependability of the incorporated elements.It is particularly difficult to evaluate the dependability of dynamic data feeds, because they may be changed by their proprietors as they are used. Further, the specifications of these data feeds are often even sketchier than the specifications of software components.We demonstrate a method of inferring invariants about the normal behavior of dynamic data feeds. We use these invariants as proxies for specifications to perform on-going detection of anomalies in the data feed. We show the feasibility of our approach and demonstrate its usefulness for semantic anomaly detection: identifying occasions when a dynamic data feed is delivering unreasonable values, even though its behavior may be superficially acceptable (i.e., it is delivering parsable results in a timely fashion).
Orna Raz, Philip Koopman, Mary Shaw
ICSE3
2002 What makes good research in software engineering?
Mary Shaw
Int. J. Softw. Tools Technol. Transf.1
2001 Software Engineering Body of Knowledge (SWEBOK)
Peter Freeman 0001, Donald J. Bagert, Hossein Saiedian, Mary Shaw, Robert Dupuis, J. Barrie Thompson
ICSE4
2001 The Coming-of-Age of Software Architecture Research
abstract
Over the past decade, software architecture research has emerged as the principled study of the overall structure of software systems, especially the relations among subsystems and components. From its roots in qualitative descriptions of useful system organizations, software architecture has matured to encompass broad explorations of notations, tools, and analysis techniques. Whereas initially the research area interpreted software practice, it now offers concrete guidance for complex software design and development. We can understand the evolution and prospects of software architecture research by examining the research paradigms used to establish its results. These are, for the most part, the paradigms of software engineering. We advance our fundamental understanding by posing research questions of several kinds and applying appropriate research techniques, which differ from one type of problem to another, yield correspondingly different kinds of results, and require different methods of validation. Unfortunately, these paradigms are not recognized explicitly and are often not carried out correctly; indeed not all are consistently accepted as valid. This retrospective on a decade-plus of software architecture research examines the maturation of the software architecture research area by tracing the types of research questions and techniques used at various stages. We will see how early qualitative results set the stage for later precision, formality, and automation and how results build up over time. This generates advice to the field and projections about future impact.
Mary Shaw
ICSE1
2001 Third International Workshop on Economics-Driven Software Engineering Research
Kevin J. Sullivan, Mary Shaw, Barry W. Boehm, David Notkin, Warren Harrison
ICSE2
2001 Career-Long Education for Software Professionals: A US View of the Educational Challenges in a Rapidly-Changing Technology
Mary Shaw
PROFES1
2001 When System Boundaries Dissolve: Research Opportunities in Software Architectures for Ubiquitous Computing and Communication
abstract
Summary form only given, as follows. The complete presentation was not made available for publication as part of the conference proceedings. Modern computing technology is creating a growing infrastructure for high performance, nearly ubiquitous computing and communication. This infrastructure extends the reach of computation and information beyond the traditional framework of a computer application running on a fixed set of machines. The architectures that suffice for such traditional software do not address the challenges of highly distributed, dynamically reconfigured software systems that depend on resources controlled by someone other than the developer. I will discuss the architectural challenges of this new setting, describe some promising approaches to handling those challenges, and suggest some research strategies for exploring and developing solutions.
Mary Shaw
WICSA1
2000 Component-based software engineering and the issue of trust
abstract
Software component consumers are entitled to trusted components. This panel addresses the criteria for trusted components and presents generally accepted definitions for all terms used to describe both software components and the methods and processes required to verify trusted software components.
George T. Heineman, William T. Councill, Janet S. Flynt, Alok Mehta, John R. Speed, Mary Shaw
ICSE6
1997 A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems
abstract
Software architects use a number of commonly-recognized "styles" to guide their design of system structures. Each of these is appropriate for some classes of problems, but none is suitable for all problems. How, then, does a software designer choose an architecture suitable for the problem at hand? Two kinds of information are required: (1) careful discrimination among the candidate architectures and (2) design guidance on how to make appropriate choices. In this paper, we support careful discrimination with a preliminary classification of styles. We use a 2D classification strategy with control and data issues as the dominant organizing axes. We position the major styles within this space and use finer-grained discriminations to elaborate variations on the styles. This provides a framework for organizing design guidance, which we partially flesh out with rules of thumb.
Mary Shaw, Paul C. Clements
COMPSAC1
1997 Lessons on Converting Batch Systems to Support Interaction (Experience Report)
abstract
Software often evolves from batch to interactive use.Because these two usage styles are so different, batch systems usually require substantial changes to support interactive use.Specific issues that arise during conversion include assumptions about duration of system execution, incremental and partial processing, scope of processing, unordered and repeated processing, and error handling.Addressing these issues affects the implementation in the areas of memory management, assumptions and invariants, computational organization, and error handling.We use as a working example our conversion of the batch processor .for the UniCon architecture description tool into an interactive architecture development tool.To capture the lessons for practitioners undertaking this type of conversion, we summarize with a checklist of design and implementation considerations.
Robert DeLine, Gregory Zelesnik, Mary Shaw
ICSE3
1995 Abstractions for Software Architecture and Tools to Support Them
abstract
Architectures for software use rich abstractions and idioms to describe system components, the nature of interactions among the components, and the patterns that guide the composition of components into systems. These abstractions are higher level than the elements usually supported by programming languages and tools. They capture packaging and interaction issues as well as computational functionality. Well-established (if informal) patterns guide the architectural design of systems. We sketch a model for defining architectures and present an implementation of the basic level of that model. Our purpose is to support the abstractions used in practice by software designers. The implementation provides a testbed for experiments with a variety of system construction mechanisms. It distinguishes among different types of components and different ways these components can interact. It supports abstract interactions such as data flow and scheduling on the same footing as simple procedure call. It can express and check appropriate compatibility restrictions and configuration constraints. It accepts existing code as components, incurring no runtime overhead after initialization. It allows easy incorporation of specifications and associated analysis tools developed elsewhere. The implementation provides a base for extending the notation and validating the model.>
Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young, Gregory Zelesnik
IEEE Trans. Software Eng.1
1993 Software Architecture: The Next Step for Object Technology (Panel)
abstract
Architectures are the structuring paradigms, styles and patterns that make up our software systems.They are important in many ways: they allow us to talk usefully about systems without talking about their detail; a knowledge of them gives us design choices; attention to this level can make systems and families of systems have the non-functional properties we want, especially changeability.Each panelist will address the following issues: l What is architecture?l What is the value you have had so far from this concept?l What is the next step for you?l What is the next step for the community?
Bruce Anderson, Mary Shaw, Larry Best, Kent L. Beck
OOPSLA2
1990 Toward Higher-Level Abstractions for Software Systems
Mary Shaw
Data Knowl. Eng.1
1989 Remembrances of a Graduate Student
abstract
No abstract available.
Mary Shaw
ICSE1
1986 An input-output model of interactive systems
abstract
Interactive user interfaces depend critically on underlying computing system facilities for input and output. However, most computing systems still have input-output facilities designed for batch processing. These facilities are not adequate for interfaces that rely on graphical output, interactive input, or software constructed with modern methodologies. This paper details the deficiencies of batch-style input-output for modern interactive systems, presents a new model for input-output that overcomes these deficiencies, and suggests software organizations to take advantage of the new model.
Mary Shaw
CHI1
1984 Goals for computer science education in the 1980s
abstract
The nature of computing, and hence of computer science, is changing rapidly. Many topics that now seem interesting will be obsolete or irrelevant within ten years, and our perspective on other topics will change. If a curriculum designed now is to remain effective through 1990 or beyond, we must try to understand the forces that are shaping the field and to anticipate the roles that computing and computer science will play in the future.
Mary Shaw
SIGCSE1
1984 The role of mathematics in computer science education
abstract
No abstract available.
Mary Shaw, Abraham Kandel, John Werth
SIGCSE1
1981 A Comparison of Programming Languages for Software Engineering
abstract
Abstract Four programming languages (Fortran, Cobol, Jovial and the proposed DoD standard) are compared in the light of modern ideas of good software engineering practice. The comparison begins by identifying a core for each language that captures the essential properties of the language and the intent of the language designers. These core languages then serve as a basis for the discussion of the language philosophies and the impact of the language on gross program organization and on the use of individual statements.
Mary Shaw, Guy T. Almes, Joseph M. Newcomer, Brian K. Reid, William A. Wulf
Softw. Pract. Exp.1
1980 An Alphard Specification of a Correct and Efficient Transformation on Data Structures
abstract
In this paper we study the problem of designing and specifying standard program components applicable to a wide variety of tasks; we choose for this study the specific problem domain of data structures for general searching problems. Within this domain Bentley and Saxe [1] have developed transformations for converting solutions of simple searching problems to solutions of more complex problems. We discuss one of those transformations, specify precisely the transformation and its conditions of applicability, and prove its correctness; we accomplish this by casting it in terms of abstract data types–specifically by using the Alphard form mechanism. The costs of the structures derived by this transformation are only slightly greater than the costs of the original structures, and the correctness of the transformation definition together with the correctness of the original structure assure the correctness of the derived structure. The transformation we describe has already been used to develop a number of new algorithms, and it represents a new level of generality in software engineering tools.
Jon Louis Bentley, Mary Shaw
IEEE Trans. Software Eng.2
1979 Curriculum 78 (Panel Discussion): Consequences for the student profile
abstract
Mathematics has been called “the critical filter” for entrance into most scientific professions — a filter through which many female students do not pass and one which may also be screening out members of ethnic minorities. Changes in the mathematics pre-requisites for computer science courses form a major difference between Curriculum 78, the recommendations of the ACM Committee on Curriculum for the undergraduate program in computer sciences, and its predecessor, Curriculum 68.
Richard H. Austing, Lynne J. Baldwin, Lucia McKay, Mary Shaw, Nell Dale
SIGCSE4
1978 Introducing "theory" in the second programming course
abstract
Traditionally, the first two programming courses have emphasized basic techniques and skills—the details of a programming language, basic problem solving and program development, “structured programming”, the manipulation of simple data structures and files, basic sorting and searching algorithms, etc.
Paul N. Hilfinger, Mary Shaw, William A. Wulf
SIGCSE2
1977 Selection of Good Algorithms from a Family of Algorithms for Polynomial Derivative Evaluation
Mary Shaw, Joseph F. Traub
Inf. Process. Lett.1
1976 An Introduction to the Construction and Verification of Alphard Programs (Abstract)
William A. Wulf, Ralph L. London, Mary Shaw
ICSE3
1976 An Introduction to the Construction and Verification of Alphard Programs
abstract
The programming language Alphard is designed to provide support for both the methodologies of "well-structured" programming and the techniques of formal program verification. Language constructs allow a programmer to isolate an abstraction, specifying its behavior publicly while localizing knowledge about its implementation. The verification of such an abstraction consists of showing that its implementation behaves in accordance with its public specifications; the abstraction can then be used with confidence in constructing other programs, and the verification of that use employs only the public specifications.
William A. Wulf, Ralph L. London, Mary Shaw
IEEE Trans. Software Eng.3
1974 On the Number of Multiplications for the Evaluation of a Polynomial and Some of Its Derivatives
abstract
A family of new algorithms is given for evaluating the first m derivatives of a polynomial. In particular, it is shown that all derivatives may be evaluated in 3 n - 2 multiplications. The best previous result required 1/2 n ( n + 1) multiplications. Some optimality results are presented.
Mary Shaw, Joseph F. Traub
J. ACM1