About
396
Publications
269,271
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
28,325
Citations
Additional affiliations
November 1992 - November 2016
Publications
Publications (396)
Context: Repaying all technical debt (TD) in a system may be unviable, as there is typically a shortage of resources allocated for TD repayment activities. Therefore, TD prioritization is essential to best allocate such limited resources. Fortunately, one can utilize a static code analysis tool, such as SonarQube, to aid in expediting the TD priori...
Technical debt (TD) is a metaphor used to refer to the added software system costs acquired from taking shortcuts. Unfortunately, large amounts of TD can lead to serious consequences, and, thus, the management of TD is essential. Due to TD being a relatively new subject of study, many aspects of TD remain ambiguous. Fortunately, Twitter has been pr...
Technical debt (TD) is a term coined by agile software pioneer Ward Cunningham to account for the added software system effort or cost resulting from taking early software project shortcuts. Previous research on TD has extensively outlined and discussed the various consequences derived from accumulating TD and the difficulty in managing it. A revie...
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}...
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...
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...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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.
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.
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...
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...
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...
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...
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 ...
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.
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
Models of software projects input project details and output predictions via their internal tunings. The output predictions, therefore, are affected by variance in the project details P and variance in the internal tunings T. Local data is often used to constrain the internal tunings (reducing T).
While constraining internal tunings with local data...
The Incremental Commitment Model (ICM) organizes systems engineering and acquisition processes in ways that better accommodate the different strengths and difficulties of hardware, software, and human factors engineering approaches. As with other models trying to address a wide variety of situations, its general form is rather complex. However, its...
"Faster, Better, Cheaper" (FBC) was a development philosophy adopted by the NASA administration in the mid to late 1990s. that lead to some some dramatic successes such as Mars Pathfinder as well as a number highly publicized mission failures, such as the Mars Climate Orbiter & Polar Lander. The general consensus on FBC was "Faster, Better, Cheaper...
For a software project to succeed, acceptable quality must be achieved within an acceptable cost, providing business value
to the customers, and keeping delivery time short. Software testing is a strenuous and expensive process and is often not
organized to maximize business value. In this article, we propose a practical value based software testi...