waashk/dblp huggingface dataset:
hdd: hierarchical delta debugging. inputs causing a program to fail are usually large and often contain information irrelevant to the failure. it thus helps debugging to simplify program inputs. the delta debugging algorithm is a general technique applicable to minimizing all failure-inducing inputs for more effective debugging. in this paper, we present hdd, a simple but effective algorithm that significantly speeds up delta debugging and increases its output quality on tree structured inputs such as xml. instead of treating the inputs as one flat atomic list, we apply delta debugging to the very structure of the data. in particular, we apply the original delta debugging algorithm to each level of a program's input, working from the coarsest to the finest levels. we are thus able to prune the large irrelevant portions of the input early. all the generated input configurations are syntactically valid, reducing the number of inconclusive configurations that need to be tested and accordingly the amount of time spent simplifying. we have implemented hdd and evaluated it on a number of real failure-inducing inputs from the gcc and mozilla bugzilla databases. our hierarchical delta debugging algorithm produces simpler outputs and takes orders of magnitude fewer test cases than the original delta debugging algorithm. it is able to scale to inputs of considerable size that the original delta debugging algorithm cannot process in practice. we argue that hdd is an effective tool for automatic debugging of programs expecting structured inputs.
demand-driven structural testing with dynamic instrumentation. producing reliable and robust software has become one of the most important software development concerns in recent years. testing is a process by which software quality can be assured through the collection of information. while testing can improve software reliability, current tools typically are inflexible and have high over-heads, making it challenging to test large software projects. in this paper, we describe a new scalable and flexible framework for testing programs with a novel demand-driven approach based on execution paths to implement test coverage. this technique uses dynamic instrumentation on the binary code that can be inserted and removed on-the-fly to keep performance and memory overheads low. we describe and evaluate implementations of the framework for branch, node and defuse testing of java programs. experimental results for branch testing show that our approach has, on average, a 1.6 speed up over static instrumentation and also uses less memory.
effects of software industry structure on a research framework for empirical software engineering. the authors describe a new research framework for applying empirical software engineering methods in industrial practice and accomplishments in using it. the selected target for applying the framework is a governmentally funded software development project involving multiple vendors. this project involved in-process project data measurement in real time, data sharing with industry and academia, data analysis, and feedback to the project members. today the project is in the system integration process. this paper shows the value of this research framework and describes issues of empirical data sharing between industry and academia which have emerged while using it. this experiment raised two major issues. one is the necessity of a new research framework for project measurement called the "macro measurement tool". the other is effects of the software industry structure on this framework.
a reliability model combining representative and directed testing. directed testing methods, such as functional or structural testing, have been criticized for a lack of quantifiable results. representative testing permits reliability modeling, which provides the desired quantification. over time, however, representative testing becomes inherently less effective as a means of improving the actual quality of the software under test. a model is presented which permits representative and directed testing to be used in conjunction. representative testing can be used early, when the rate of fault revelation is high. later results from directed testing can be used to update the reliability estimates conventionally associated with representative methods. the key to this combination is shifting the observed random variable from interfailure time to a post-mortem analysis of the debugged faults, using order statistics to combine the observed failure rates of faults no matter how those faults were detected.
some considerations in database application programming. this paper describes the experimental approach to achieve the higher productivity, reliability, maintainability and the performance in the database application programming or of the programs. we have practiced the structured programming on the database processings in order to write the reliable database application programs. then we introduce the simulated forms of the basic control structures in cobol which is the host language, the structured representations of the dml (data manipulation language) statements to be precompiled to the cobol statements, and the programming standards firstly, and the program structuring guidelines to the highly efficient database processings nextly, based on the fact that the database processing performance is affected by the data reference behavior which is called as a data locality of the database application program. the way to structure the database application program which has a good data locality and the tool which is useful to examine the program structure are described. finally, we describe the results got through the experiments.
toward an effective software reliability evaluation. effective software reliability evaluation requires theories of software reliability which define and deal with software reliability quantitatively, technologies for reliability data measurement and data analysis, techniques to estimate or predict software reliability, and practical reliability evaluation methodologies which effectively reflect the characteristics of software. this paper assesses the extents to which these requirements are currently met, and introduces improved approaches for an effective software reliability evaluation. introduced are the methodologies for software reliability evaluation and the software reliability evaluation-aid tools.
cocomo evaluation and tailoring. this paper gives the results of our efforts to evaluate and tailor a software cost estimation model called cocomo.1 the precise data for the analysis was collected from the records of 33 completed projects. we evaluate the original cocomo model, which overestimates the efforts required to develop software in our environment. then we tailor the model according to the cocomo tailoring methodology. to increase the precision and stability of the tailored model, we delete some unnecessary cost drivers in a heuristic manner with the aid of nonparametric statistical method. as a result, we can greatly improve the model. finally we suggest a method to tailor the cocomo effort multipliers. we believe we maintain the same direction as the originator's philosophy, and that our efforts can contribute to the progress of the cocomo tailoring methodology.
software metrics using deviation value. the deviation-value (d-value) is a new measure for software data involved during software development. the d-value provides an alternative to software metrics based upon &ldquo;per number of lines of code&rdquo; such as error rate (number of errors per thousand lines of code) and documentation rate (number of pages of module design documentation per thousand lines of code). using d-value, the data of software modules are much more fairly evaluated than these conventional metrics.this paper presents the derivation of the d-value using the theoretical background of a control chart called u chart and weighted regression analysis. the advantage of using the d-value rather than metrics based upon &ldquo;per number of lines of code&rdquo; is demonstrated through an analysis of the data of four projects. the d-value is used to find the data items which actually relate to software quality, and we find that the quality of each module measured by d-value becomes better as the documentation rate d-value increases. finally, using the theory behind the d-value, a new software acceptance guideline is discussed.
the portable communication protocol program compas for data terminal systems. the communication protocol program compas (dcna communication processing packages), which is portable to various data terminal systems, has been developed according to the data communication network architecture dcna. the method used in compas and its practicability are described in this paper.
analyzing effects of cost estimation accuracy on quality and productivity. this paper discusses the effects of estimation accuracy for software development cost on both the quality of the delivered code and the productivity of the development team. the estimation accuracy is measured by metric re (relative error). the quality and productivity are measured by metrics fq (field quality) and tp (team productivity). using actual project data on thirty-one projects at a certain company, the following are verified by correlation analysis and testing of statistical hypotheses. there is a high correlation between the faithfulness of the development plan to standards and the value of re (a coefficient of correlation between them is -0.60). both fq and tp are significantly different between projects with -10%<re<+10% and projects with re&ges;+10% (the level of significance is chosen as 0.05)
characterization of risky projects based on project managers' evaluation. during the process of software development, senior managers often find indications that projects are risky and take appropriate actions to recover them from this dangerous status. if senior managers fail to detect such risks, it is possible that such projects may collapse completely.in this paper, we propose a new scheme for the characterization of risky projects based on an evaluation by the project manager. in order to acquire the relevant data to make such an assessment, we first designed a questionnaire from five viewpoints within the projects: requirements, estimations, team organization, planning capability and project management activities. each of these viewpoints consisted of a number of concrete questions. we then analyzed the responses to the questionnaires as provided by project managers by applying a logistic regression analysis. that is, we determined the coefficients of the logistic model from a set of the questionnaire responses. the experimental results using actual project data in company a showed that 27 projects out of 32 were predicted correctly. thus we would expect that the proposed characterizing scheme is the first step toward predicting which projects are risky at an early phase of the development.
comparison of concurrent software reliability models. a comparsion of three concurrent software reliability models (littlewood/verrall, musa, and goel/okumoto) has been performed. a set of criteria for evaluating a software reliability model is devoloped and a method for model assessment is presented. then this assessment method is applied to the three selected models.
a case study of open source software development: the apache server. according to its proponents, open source style software development has the capacity to compete successfully, and perhaps in many cases displace, traditional commercial development methods. in order to begin investigating such claims, we examine the development process of a major open source application, the apache web server. by using email archives of source code change history and problem reports we quantify aspects of developer participation, core team size, code ownership, productivity, defect density, and problem resolution interval for this oss project. this analysis reveals a unique process, which performs well on important measures. we conclude that hybrid forms of development that borrow the most effective techniques from both the oss and commercial worlds may lead to high performance software processes.
expertise browser: a quantitative approach to identifying expertise. finding relevant expertise is a critical need in collaborative software engineering, particularly in geographically distributed developments. we introduce a tool that uses data from change management systems to locate people with desired expertise. it uses a quantification of experience, and presents evidence to validate this quantification as a measure of expertise. the tool enables developers, for example, easily to distinguish someone who has worked only briefly in a particular area of the code from someone who has more extensive experience, and to locate people with broad expertise throughout large parts of the product, such as module or even subsystems. in addition, it allows a user to discover expertise profiles for individuals or organizations. data from a deployment of the tool in a large software development organization shows that newer, remote sites tend to use the tool for expertise location more frequently. larger, more established sites used the tool to find expertise profiles for people or organizations. we conclude by describing extensions that provide continuous awareness of ongoing work and an interactive, quantitative resume.
understanding and predicting effort in software projects. we set out to answer a question we were asked by software project management: how much effort remains to be spent on a specific software project and how will that effort be distributed over time? to answer this question we propose a model based on the concept that each modification to software may cause repairs at some later time and investigate its theoretical properties and application to several projects in avaya to predict and plan development resource allocation. our model presents a novel unified framework to investigate and predict effort, schedule, and defects of a software project. the results of applying the model confirm a fundamental relationship between the new feature and defect repair changes and demonstrate its predictive properties.
predictors of customer perceived software quality. predicting software quality as perceived by a customer may allow an organization to adjust deployment to meet the quality expectations of its customers, to allocate the appropriate amount of maintenance resources, and to direct quality improvement efforts to maximize the return on investment. however, customer perceived quality may be affected not simply by the software content and the development process, but also by a number of other factors including deployment issues, amount of usage, software platform, and hardware configurations. we predict customer perceived quality as measured by various service interactions, including software defect reports, requests for assistance, and field technician dispatches using the afore mentioned and other factors for a large telecommunications software system. we employ the non-intrusive data gathering technique of using existing data captured in automated project monitoring and tracking systems as well as customer support and tracking systems. we find that the effects of deployment schedule, hardware configurations, and software platform can increase the probability of observing a software failure by more than 20 times. furthermore, we find that the factors affect all quality measures in a similar fashion. our approach can be applied at other organizations, and we suggest methods to independently validate and replicate our results.
academic software engineering: what is and what could be? results of the first annual survey for international se programs. according to data received from an international survey, almost 6800 students are enrolled in software engineering degree programs in 11 countries, as of january, 2001. a total of 94 academic programs in software engineering are in place at 60 univcrsities with 350 full-time faculty and nearly 200 part-time faculty teaching hundreds of undergraduate and graduate courses in the discipline. over 5500 people have obtained degrees in software engineering since 1979. the authors are conducting the first of an ongoing annual survey of international academic software engineering programs, as a joint acm/ieee-cs project. this status report covers: history, audience, initial survey, initial partial results available on the www, request for evaluation of www-site, request for additional questions for next version of survey, time-line for next version of the survey, &ldquo;lessons learned,&rdquo; and some future directions. the annual report and survey results will be posted on a wide variety of web pages. a more current report, based on the sabbatical of the first author, will be presented at the conference. the sabbatical involves the initial development of an &ldquo;international software engineering university consortium - iseuc.&rdquo; a sample scenario for an employee in industry who becomes a student in iseuc is given.
effort estimation of use cases for incremental large-scale software development. this paper describes an industrial study of an effort estimation method based on use cases, the use case points method. the original method was adapted to incremental development and evaluated on a large industrial system with modification of software from the previous release. we modified the following elements of the original method: a) complexity assessment of actors and use cases, and b) the handling of non-functional requirements and team factors that may affect effort. for incremental development, we added two elements to the method: c) counting both all and the modified actors and transactions of use cases, and d) effort estimation for secondary changes of software not reflected in use cases. we finally extended the method to: e) cover all development effort in a very large project. the method was calibrated using data from one release and it produced an estimate for the successive release that was only 17% lower than the actual effort. the study identified factors affecting effort on large projects with incremental development. it also showed how these factors can be calibrated for a specific context and produce relatively accurate estimates.
an empirical study of software reuse vs. defect-density and stability. the paper describes results of an empirical study,where some hypotheses about the impact of reuse ondefect-density and stability, and about the impact ofcomponent size on defects and defect-density in thecontext of reuse are assessed, using historical data ("datamining") on defects, modification rate, and software sizeof a large-scale telecom system developed by ericsson.the analysis showed that reused components have lowerdefect-density than non-reused ones. reused componentshave more defects with highest severity than the totaldistribution, but less defects after delivery, which showsthat that these are given higher priority to fix. there arean increasing number of defects with component size fornon-reused components, but not for reused components.reused components were less modified (more stable) thannon-reused ones between successive releases, even ifreused components must incorporate evolvingrequirements from several application products. thestudy furthermore revealed inconsistencies andweaknesses in the existing defect reporting system, byanalyzing data that was hardly treated systematicallybefore.
methods for improving controlled experimentation in software engineering. within the past decade computer science researchers have begun to use controlled experimentation to address questions of human factors in the programming process. however, some of this work has been criticized for lack of experimental controls, insufficient sample sizes, and questionable generality. in a study of 160 student and professional programmers, several key biographical factors have been identified which account for a large proportion of performance variation on typical experimental tasks. the study has implications for subject selection and interpretation of results in software experimentation. our findings should lead to improved experimental design and analysis techniques with increased confidence in the results of software psychology studies.
pdas: an assistant for detailed design and implementation of programs. the development of reliable documents is an important challenge facing the software industry today. this paper presents the programming and design assist system (pdas), which supports detailed design and implementation of system programs. pdas uses a design language as the kernel of the system. japanese/english documents and programs are generated from specifications written in the design language. the design language is a forms-oriented language based on pdl. to standardize the level of abstraction of document description, the language introduces a data model called a &ldquo;set&rdquo;. the model is an abstraction of linked lists, arrays, queues, and stacks. in operating systems, there are many such data structures, and the ability to simplify their manipulation is very helpful.
evaluating the quality of information models: empirical testing of a conceptual model quality framework. this paper conducts an empirical analysis of a semiotics-based quality framework for quality assuring information models. 192 participants were trained in the concepts of the quality framework, and used it to evaluate models represented in an extended entity relationship (er) language. a randomised, double-blind design was used, in which each participant independently reviewed multiple models and each model was evaluated by multiple reviewers. a combination of quantitative and qualitative analysis techniques were used to evaluate the results, including reliability analysis, validity analysis, interaction analysis, influence analysis, defect pattern analysis and task accuracy analysis. an analysis was also conducted of the framework's likelihood of adoption in practice. the study provides strong support for the validity of the framework and suggests that it is likely to be adopted in practice, but raises questions about its reliability and the ability of participants to use it to accurately identify defects. the research findings provide clear directions for improvement of the framework. the research methodology used provides a general approach to empirical validation of quality frameworks.
project leap: personal process improvement for the differently disciplined. software developers and managers have faced the problem of producing quality software since the beginning of the computer age. many people have studied the software quality problem and have proposed many solutions. we can categorize these different solutions into two groups: (1) "topdown" solutions, that focus on software development as a group effort and (2) "bottom-up" solutions, that focus on the individual software developer. some of the many top-down solutions include: the capability maturity model, clean room development, software quality assurance groups, and formal. technical review. these top down methods help improve the quality of the software, however they may not be enough.
quantifying the value of architecture design decisions: lessons from the field. this paper outlines experiences with using economic criteria to make architecture design decisions. it briefly describes the cbam (cost benefit analysis method) framework applied to estimate the value of architectural strategies in a nasa project, the ecs. this paper describes the practical difficulties and experiences in applying the method to a large real-world system. it concludes with some lessons learned from the experience.