Barry Boehm

Barry Boehm
University of Southern California | USC · Departments of Computer Science, Systems Engineering, Astronautics

PhD

About

390
Publications
204,853
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
25,712
Citations
Additional affiliations
November 1992 - November 2016
University of Southern California
Position
  • Managing Director

Publications

Publications (390)
Preprint
Full-text available
Quantization has been applied to multiple domains in Deep Neural Networks (DNNs). We propose Depthwise Quantization (DQ) where $\textit{quantization}$ is applied to a decomposed sub-tensor along the $\textit{feature axis}$ of weak statistical dependence. The feature decomposition leads to an exponential increase in $\textit{representation capacity}...
Preprint
Full-text available
Transformer architectures have been successfully used in learning source code representations. The fusion between a graph representation like Abstract Syntax Tree (AST) and a source code sequence makes the use of current approaches computationally intractable for large input sequence lengths. Source code can have long-range dependencies that requir...
Preprint
Full-text available
As opposed to natural languages, source code understanding is influenced by grammatical relationships between tokens regardless of their identifier name. Graph representations of source code such as Abstract Syntax Tree (AST) can capture relationships between tokens that are not obvious from the source code. We propose a novel method, GN-Transforme...
Preprint
Full-text available
Background. The software architecture recovery method RELAX produces a concern-based architectural view of a software system graphically and textually from that system's source code. The method has been implemented in software which can be run on subject systems whose source code is written in Java. Aims. Our aim was to find out whether the availab...
Article
Estimating the cost and schedule of agile software projects is critical at an early phase to establish baseline budgets and schedules for the selection of competitive bidders. The challenge is that common agile sizing measures such as story points and user stories are not practical for early estimation as these are often reported after contract awa...
Article
Many systems and software processes overfocus on getting a project and product from an initial set of requirements to an Initial Operational Capability (IOC). Examples are most waterfall and V models. Projects following such processes may pass acceptance tests for functionality and performance, but may leave the product with serious maintainability...
Article
Consumer product reviews are an invaluable source of data because they contain a wide range of information that could help requirement engineers to meet user needs. Recent studies have shown that tweets about software applications and reviews on App Stores contain useful information, which enable a more responsive software requirements elicitation....
Chapter
It has been observed that multitasking can cause inefficient (or unproductive) work. Modern lean and agile practices in software engineering processes also acknowledge the problem and attempt to eliminate waste by limiting work in progress and using better team organization and work scheduling techniques. Existing research has studied multitasking...
Article
Full-text available
Context:More than half the literature on software effort estimation (SEE) focuses on comparisons of new estimation methods. Surprisingly, there are no studies comparing state of the art latest methods with decades-old approaches. Objective:To check if new SEE methods generated better estimates than older methods. Method: Firstly, collect effort est...
Conference Paper
Full-text available
Software developers often work on multiple projects and tasks throughout a work day, which may affect their productivity and quality of work. Knowing how working on several projects at a time affects productivity can improve cost and schedule estimations. It also can provide additional insights for better work scheduling and the development process...
Article
Full-text available
Evidence-based SE is an extension of model-based SE that emphasizes not only using SysML or other system models as a basis of program decisions, but also the use of other models to produce evidence that the system models describe a feasible system. Such evidence is generally desired, but often is not produced because it is not identified as a proje...
Article
Background: Given information on just a few prior projects, how do we learn the best and fewest changes for current projects? Aim: To conduct a case study comparing two ways to recommend project changes. 1) Data farmers use Monte Carlo sampling to survey and summarize the space of possible outcomes. 2) Case-based reasoners (CBR) explore the neighbo...
Article
Parametric cost estimation models need to be continuously calibrated and improved to assure more accurate software estimates and reflect changing software development contexts. Local calibration by tuning a subset of model parameters is a frequent practice when software organizations adopt parametric estimation models to increase model usability an...
Article
From the Book:Why We Wrote This BookTrue believers represent software development alternativesIn the last few years, two ostensibly conflicting approaches to software development have competed for hegemony. Agile method supporters released a manifesto that shifts the focus from traditional plan-driven, process-based methods to lighter, more adaptiv...
Article
With the increasing demands for affordable system capabilities that can be provided quickly to the user community, developers must explore a variety of options for identifying "satisficing" solutions. The system capability affordability tradespace must balance expedited systems engineering to reduce schedule and cost, encourage flexibility in archi...
Conference Paper
Accelerating development schedules is increasingly important in a competitive world. Reduced time-to-market is a key response to competitive threats in the commercial sphere, and rapid response in deploying military systems may save lives in a geopolitical environment characterized by rapidly emerging and ever-changing physical threats. Agile/lean...
Conference Paper
Risk identification, management, and mitigation are essential to the success of any software development projects. At the University of Southern California (USC), CSCI577ab is a graduate level software engineering course sequence that teaches the best software engineering practices, and allows students to apply the learned knowledge in developing r...
Patent
Among others, techniques and systems are disclosed for analyzing security threats associated with software and computer vulnerabilities. Stakeholder values relevant for a software system are identified. The identified stakeholder values are quantified using a quantitative decision making approach to prioritize vulnerabilities of the software system...
Chapter
To provide better service to customers and remain competitive in the business environment, a wide variety of ready-to-use software and technologies are available for one to “grab and go” in order to build up software systems at a rapid pace. Currently, a wide variety of Web services are available and ready to use for this purpose. Current software...
Article
Full-text available
This paper summarizes several iterations in developing a compact set of four key principles for successful systems engineering, which are 1) Stakeholder Value-Based System Definition and Evolution 2) Incremental Commitment and Accountability 3) Concurrent Multidiscipline System Definition and Development, and 4) Evidence-Based and Risk-based Decisi...
Article
SUMMARY For a successful software project, acceptable quality must be achieved within an acceptable cost, demonstrating business value to customers and satisfactorily meeting delivery timeliness. Testing serves as the most widely used approaches to determine that the intended functionalities are performed correctly and achieve the desired level of...
Article
Full-text available
Team synchronization and stabilization are essential - especially for large software projects. However, often little is done to assess and reduce the uncertainties and knowledge gaps that exist within the project. As the project progresses through its life cycle, the team can gain more information about the project and team's capabilities. These ne...
Article
Full-text available
While methodologies, management techniques, and technical approaches are valuable, a study of agile and plan-driven approaches has confirmed that the most critical success factors are much more likely to be in the realm of people factors. This paper discusses five areas where people issues can have a significant impact: staffing, culture, values, c...
Article
Full-text available
This paper presents the Threat Modeling method based on Attacking Path Analysis (T-MAP) which quantifies security threats by calculating the total severity weights of relevant attacking paths for Commercial Off The Shelf (COTS) based systems. Compared to existing approaches, T-MAP is sensitive to an organization's business value priorities and IT e...
Article
Full-text available
This paper is an experience report on a first attempt to develop and apply a new form of software: a full- service testbed designed to evaluate alternative software dependability technologies, and to accelerate their maturation and transition into project use. The SCRover testbed includes not only the specifications, code, and hardware of a public...
Conference Paper
Background: Continuously calibrated and validated parametric models are necessary for realistic software estimates. However, in practice, variations in model adoption and usage patterns introduce a great deal of local bias in the resultant historical data. Such local bias should be carefully examined and addressed before the historical data can be...
Conference Paper
Background: Software engineering practices have evolved considerably over the last four decades, changing the way software systems are developed and delivered. Such evolvement may result in improvements in software productivity and changes in factors that affect productivity. Aims: This paper reports our empirical analysis on how changes in softwar...
Conference Paper
General software cost parameters such as size, effort distribution, and productivity are necessarily imprecise due to variations by domain. To improve this situation, empirical software cost analysis using the primary US DoD cost database has been segmented by domain. This analysis supports a software cost estimation metrics manual for improvements...
Article
This paper describes an empirical study undertaken to investigate the quantitative aspects of the phenomenon of requirements elaboration which deals with transformation of high-level goals into low-level requirements. Prior knowledge of the magnitude of requirements elaboration is instrumental in developing early estimates of a project’s cost and s...
Conference Paper
This paper is a contribution to the Impact Project in the area of software resource estimation. The objective of the Impact Project has been to analyze the impact of software engineering research investments on software engineering practice. The paper begins by summarizing the motivation and context for analyzing software resource estimation; and b...
Conference Paper
An empirical study is provided on teaching Verification & Validation (V&V) process practice in a real-client graduate level software engineering course which makes students and researchers mutual winners. From our observation and experiences during the course, on the education side, several reflection-in-action techniques are used to educate and tr...
Article
ContextSoftware maintenance is an important software engineering activity that has been reported to account for the majority of the software total cost. Thus, understanding the factors that influence the cost of software maintenance tasks helps maintainers to make informed decisions about their work.
Conference Paper
Our two-semester USC core software engineering project course CS577ab devotes its first semester to having students learn and do systems engineering on a real-client project. This requires a good deal of just-in-time lectures, tutorials, and homework to prepare the students, and feedback in terms of mentoring, artifact grading, and live milestone r...
Presentation
Full-text available
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...
Article
Full-text available
Net-centric enterprises increasingly are found in government and industry contexts. In this research, a net-centric enterprise consists of a number of semi-autonomous organizations that collaborate within the context of a federated structure. Such collaborations may be temporary and of known duration, temporary and of unknown duration, or permanent...
Article
Using Commercial Off-The-Shelf (COTS) products to build software systems requires the evaluation of existing COTS products, the selection of the COTS that best fit system requirements, and the integration of the selected COTS into the system. During ...
Conference Paper
Today's and tomorrow's complex, interdependent, dynamic systems require richer process principles than the simplistic principles in the Agile Manifesto or in simplistic sequential waterfall or Vee models. The resulting principles should capitalize on the strengths of these while avoiding their weaknesses.
Conference Paper
As a new contribution to Value-based V&V process development, a systematic and multi-criteria process is proposed to quantitatively determine the Value-based V&V artifact priority that reviewers can follow for their reviews. This process enables reviewers to prioritize artifacts to be reviewed in a more cost-effective way based on more sophisticate...
Article
Full-text available
The primary objective of the research presented in this briefing is to develop convincing quantitative methods, processes, and tools (MPTs) for determining the value of flexibility in DoD contexts. A system is flexible to the extent that it can be cost-effectively modified to meet new needs or to capitalize on new opportunities.
Conference Paper
Requirements for a software development project are gradually refined as more information becomes available. This process of requirements elaboration can be quantified using the appropriate set of metrics. This paper reports the results of an empirical study conducted to analyze the requirements elaboration of an industrial software process managem...
Article
Full-text available
The Department of Defense (DoD) increasingly faces a mix of relatively foreseeable and unforeseeable threat and opportunity profiles. This means that DoD technological superiority relies on rapid and assured development, fielding, and evolution of progressively more complex and interoperable defense systems. Meeting these challenges requires DoD to...
Conference Paper
Full-text available
Many software projects fail because they commit to a set of plans and specifications with little evidence that if these are used on the project, they will lead to a feasible system being developed within the project’s budget and schedule. An effective way to avoid this is to make the evidence of feasibility a first-class developer deliverable that...
Conference Paper
Full-text available
Many of today’s problems are in search of new, innovative solutions. However, the development of new and innovative solutions has been elusive to many, resulting in considerable effort and dollars and no solution or a mediocre solution late to the marketplace or customer. This paper describes the results of research conducted to identify the critic...
Conference Paper
It is becoming increasingly clear that there is no one-size-fits all process for software projects. Requirements-first, top-down waterfall or V-models work well when the requirements can be determined in advance, but are stymied by emergent requirements or bottom-up considerations such as COTS- or legacy-driven projects. Agile methods work well for...
Conference Paper
To provide better services to customers and not to be left behind in a competitive business environment, a wide variety of ready-to-use software and technologies are available for one to grab and build up software systems at a very fast pace. Rapid fielding plays a major role in developing software systems to provide a quick response to the organiz...
Conference Paper
Review, process audit, and testing are three main Quality Assurance activities during the software development life cycle. They complement each other to examine work products for defects and improvement opportunities to the largest extent. Understanding the effort distribution and inter-correlation among them will facilitate software organization p...
Article
Summary form only given. Traditionally, software evolution took place after software development put a system in place. However, the pace of change in technology and competition has changed the nature of software evolution to a continuous process, in which there's no neat boundary between development and evolution. Many traditional software develop...
Article
Full-text available
Systems are becoming increasingly reliant on software due to needs for rapid fielding of ―70%‖ capabilities, interoperability, net-centricity, and rapid adaptation to change. The latter need has led to increased interest in agile methods of software development, in which teams rely on shared tacit interpersonal knowledge rather than explicit docume...
Article
Full-text available
Complex, software intensive systems — especially those with multiple software compo-nent developers — and Directed System of Systems (DSOS) or Acknowledged Systems of Systems (ASOS) need approaches to control the development and estimate the software development costs and schedules. This paper will introduce a next-generation synthesis of the spira...
Article
Full-text available
This paper summarizes the results of a DoD Systems Engineering Research Center (SERC) project to synthesize analyses of DoD SE effectiveness risk sources into a lean framework and toolset for early identification of SE-related program risks. It includes concepts of operation which enable project sponsors and performers to agree on the nature and us...
Conference Paper
Full-text available
Accurate software cost and schedule estimations are essential especially for large software projects. However, once the required efforts have been estimated, little is done to recalibrate and reduce the uncertainty of the initial estimates. To address this problem, we have developed and used a framework to continuously monitor the software project...
Conference Paper
Full-text available
Different classes of information system stakeholders depend on different values to be successful. Understanding stakeholders' value dependencies is critical for developing software intensive systems. However, there is no universal one-size-fits-all stakeholder/ value metric that can be applied for a given system. This paper presents an analysis of...
Conference Paper
Defining requirements without satisfying success critical stakeholders often leads to expensive project failures. Enabling interdisciplinary stakeholders to rapidly and effectively collaborate in development of globally-usable software-intensive systems remains a major challenge. At USC, 32 real-client, graduate- level team projects experimented wi...
Conference Paper
This paper provides an update and extension of a 2006 paper, “Some Future Trends and Implications for Systems and Software Engineering Processes,” Systems Engineering, Spring 2006. Some of its challenges and opportunities are similar, such as the need to simultaneously achieve high levels of both agility and assurance. Others have emerged as increa...
Conference Paper
The wide variety of software-intensive systems needed to support the new horizons of evolving technology, system and software complexity, high dependability, global interoperability, emergent requirements, and adaptability to rapid change make traditional and current one-size-fits-all process models infeasible. This tutorial presents the process fr...
Conference Paper
Since software is developed to run on computers, there is a tendency to focus computer science and software engineering on how best to get software to run on computers. But, engineering is different from science: the Webster definition of "engineering" is "the application of science and mathematics by which the properties of matter and the sources...
Article
Full-text available
Building on the synergy between Systems Engineering and Software Engineering, the Center for Software Engineering (CSE) at the University of Southern California (USC), has initiated an effort to develop a parametric model to estimate Systems Engineering costs. The goal of this model, called COSYSMO (Constructive Systems Engineering Cost Model), is...
Chapter
As organizations strive to expand system capabilities through the development of system-of-systems (SoS) architectures, they want to know “how much effort” and “how long” to implement the SoS. In order to answer these questions, it is important to first understand the types of activities performed in SoS architecture development and integration and...
Conference Paper
Full-text available
This paper describes a controlled experiment of student programmers performing maintenance tasks on a C++ program. The goal of the study is to assess the maintenance size, effort, and effort distribution of three different maintenance types and to describe estimation models to predict the programmer's effort on maintenance tasks. The results of our...
Conference Paper
In an investigating study to trace the productivity changes of a commercial software project, which uses incremental and iterative development model, we've found evidence that attributes such as staffing stability, design compatibility/ adaptability to incremental and iterative development, and integration and testing would have significant impact...
Article
A major problem in empirical software engineering is to determine or ensure comparability across multiple sources of empirical data. This paper summarizes experiences in developing and applying a software engineering technology testbed. The testbed was designed to ensure comparability of empirical data used to evaluate alternative software engineer...
Conference Paper
Full-text available
In an investigating study to trace the productivity changes of a commercial software project, which uses incremental and iterative development model, we've found evidence that attributes such as staffing stability, design compatibility/ adaptability to incremental and iterative development, and integration and testing would have significant impact...