The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
NASA has been successfully sustaining the continuous operation of its critical navigation software systems for over 12 years. To accomplish this, NASA scientists must continuously monitor their process, report on current system quality, forecast maintenance effort, and sustain required staffing levels. This report presents some examples of the use of a robust software metrics and analytics program...
Feedback communication channels allow end-users to express their needs, which can be considered in software development and evolution. Although feedback gathering and analysis have been identified as an important topic and several researchers have started their investigation, information is scarce on how software companies currently elicit end-user feedback. In this study, we explore the experiences...
Automatic testing is a widely adopted technique for improving software quality. Software developers add, remove and update test methods and test classes as part of the software development process as well as during the evolution phase, following the initial release. In this work we conduct a large scale study of 61 popular open source projects and report the relationships we have established between...
One of the most common causes of bugs is overlooking changes. To prevent bugs and improve the quality of the products, numerous studies have been undertaken on change guides based on logical couplings extracted from developers' past process histories, such as change history. While valuable change rules based on logical couplings can be gleaned found from the change history, these rules often fail...
The detection of duplicate bug reports can help reduce the processing time of handling field crashes. This is especially important for software companies with a large client base where multiple customers can submit bug reports, caused by the same faults. There exist several techniques for the detection of duplicate bug reports; many of them rely on some sort of classification techniques applied to...
Human's natural ability to perform software maintenance is compromised as a project gets bigger, older, and more complex. Software visualization tools can be used to mitigate this problem, easing software understanding. However, no such tools are available for Swift, a new programming language that is experiencing widespread adoption by developers. In this paper we present SwiftCity, a software visualization...
Continuous Delivery (CD) enables mobile developers to release small, high quality chunks of working software in a rapid manner. However, faster delivery and a higher software quality do neither guarantee user satisfaction nor positive business outcomes. Previous work demonstrates that app reviews may contain crucial information that can guide developer's software maintenance efforts to obtain higher...
Bug localisation is a core program comprehension task in software maintenance: given the observation of a bug, where is it located in the source code files? Information retrieval (IR) approaches see a bug report as the query, and the source code files as the documents to be retrieved, ranked by relevance. Such approaches have the advantage of not requiring expensive static or dynamic analysis of the...
Developers may follow a tedious process to find the cause of a bug based on code reviews and reproducing the abnormal behavior. In this paper, we propose an automated approach to finding and ranking potential classes with the respect to the probability of containing a bug based on a bug report description. Our approach finds a good balance between minimizing the number of recommended classes and maximizing...
Technical debt is a metaphor in software engineering interpreted as a trade-off between short-term benefits of postponing development activities and long-term consequences of postponing those activities. Most of the research in technical debt literature focus on identifying technical debt, justifying what to include and what to exclude in the technical debt scope and how to deal with them: either...
In software development we are faced with the problem to comprehend and take over source code from other developers. The key challenge is to understand the underlying specification implemented by the software system. Regaining this understanding is more difficult when the source code is the only reliable source of information, documentation is outdated or only present in fragments, and original developers...
Predictive models for software projects' characteristics have been traditionally based on project-level metrics, employing only little developer-level information, or none at all. In this work we suggest novel metrics that capture temporal and semantic developer-level information collected on a per developer basis. To address the scalability challenges involved in computing these metrics for each...
Software metrics are very helpful in measuring the different aspects of software like cohesion, coupling, polymorphism, inheritance etc. The objective of measuring software metrics are quality assurance, defect prediction, maintainability prediction, cost estimation, debugging, etc. Many authors proposed the use of static metrics for the software maintainability prediction (SMP) and were successful,...
Both information and automated production systems (aPS) evolve during their lifetime, e.g. due to changes in requirements and infrastructure. In order to estimate maintenance effort in information systems the KAMP method is applied. This paper discusses the necessary classification of changes as a prerequisite to apply such a method. Aggravating aPS consist not only of software but also include mechanics...
A quality model for assessing the changeability level of java code is important for software development. It permits developer to know which classes to be improved for having a better software maintainability. Moreover, a good quality model must be created based on a set of well-selected attributes and metrics. Currently, no research work proposes a changeability assessment model that takes into consideration...
When a new bug report is received, developers usually need to reproduce the bug and perform code reviews to find the cause, a process that can be tedious and time consuming. A tool for ranking all the source files with respect to how likely they are to contain the cause of the bug would enable developers to narrow down their search and improve productivity. This paper introduces an adaptive ranking...
Automated, efficient software deployment is essential for today's modern cloud hosting providers. With advances in cloud technology, on demand cloud services offered by public providers are becoming increasingly powerful, anchoring the ecosystem of cloud services. Cloud infrastructure services are appealing in part because they enable customers to acquire and release infrastructure resources on demand...
In software development, debugging is indispensable to guarantee the reliability. However, debugging is becoming more difficult because software is becoming larger and more complex. Thus, techniques for supporting debugging, especially automatic program repair techniques based on genetic programming distinguish themselves due to their capability. Genetic programming produces many modified programs...
Software must be well developed and maintainable to adapt to the constantly changing requirement of the competitive world. In this article, we distinct different software maintainability prediction models and techniques which can help us to predict the maintainability of software, and can lead us to minimum the effort required to fix the faults in the software and the software will be more maintainable...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.