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.
Developers introduce novel and undocumented micro-architectures when performing evolution tasks on object-oriented applications. We are interested in understanding whether those organizations of classes and relations can bear, much like cataloged design and anti-patterns, potential harm or benefit to an object-oriented application. We present SGFinder, a sub-graph mining approach and tool based on...
Concern mapping is the activity of assigning a stakeholder's concern to its corresponding elements in the source code. This activity is primordial to guide software maintainers in several tasks, such as understanding and restructuring the implementation of existing concerns. Even though different techniques are emerging to facilitate the concern mapping process, they are still manual and error-prone...
Update in maintenance, which is an important step in the software development cycle, is an necessary support of almost all the software in various application fields. Online update, which can reduce the cost and is convenient to the customer, is of great practical value. An idea of software update program, which can run across platforms, is brought forward and realized in this paper. The device of...
Software on mobile devices has become increasingly complicated as end users demand a PC-converged user experience on the mobile Internet. This has complicated the software configuration and boot procedures, resulting in a longer boot time. This is damaging to the mobile user experience. Many legacy techniques to enable the fast boot time differentiation in mobile handsets are not applicable to the...
We propose an automated approach for design defect detection. It exploits an algorithm that automatically finds rules for the detection of possible design defects, thus relieving the designer from doing so manually. Our algorithm derives rules in the form of metric/threshold combinations, from known instances of design defects (defect examples). Due to the large number of possible combinations, we...
Software systems tend to grow larger with time, become less structured with changes and less understandable with stuff turnover. These systems are not isolated in their landscape, rather connected to several other systems with heterogeneous architectures supported by wide diverse of communications. These systems are applied to maintenance efforts from the moment they are delivered. Within the maintenance...
The amount of automotive software functions is continuously growing. With their interactions and dependencies increasing, the diagnosis' task of differencing between symptoms indicating a fault, the fault cause itself and uncorrelated data gets enormously difficult and complex. For instance, up to 40% of automotive software functions are contributable to diagnostic functions, resulting in approximately...
Any changes for maintenance or evolution purposes may break existing working features, or may violate the requirements established in the previous software releases. Regression testing is essential to avoid these problems, but it may be ended up with executing many time-consuming test cases. This paper tries to address prioritizing requirements-based regression test cases. To this end, system-level...
Service-based architectures have now become commonplace, creating the need to address their systematic maintenance and evolution. We propose to enable transformation-driven evolution for service architectures in a semi-automated fashion. In contrast to the existing solutions like service wrapping, migration or run-time adaptation etc., the proposal supports primitive and customisable architectural...
Test-suite augmentation for evolving software -- the process of augmenting a test suite to adequately test software changes -- is necessary for any program that undergoes modifications as part of its development and maintenance cycles. Recently, we presented a new technique for test-suite augmentation based on leveraging the propagation conditions for the effects of changes. Although empirical studies...
The widespread acceptance of refactorings as a simple yet effective approach to improve the design of object-oriented systems, has stimulated an effort to develop semi-automatic tools for detecting design flaws, with simultaneous suggestions for their removal. However, even in medium-sized projects the number of detected occurrences can be so large that the refactoring process becomes intractable...
An identifier is an important key in mapping program elements onto domain knowledge for the purpose of program comprehension. Therefore, if identifiers in a program have inappropriate names, developers can waste a lot of time trying to understand the program. This paper proposes a method for extracting and gathering verb-object (V-O) relations, as good examples of naming, from source code written...
Reengineering in all its facets is now a well recognized field within information technology literature and practice for more than 25 years. This paper gives a review of reengineering over this period. It is neither intended as a scientific assessment of the "myriad" of papers ever published about this subject area nor as an extensive review of pros and cons of the various reengineering...
Modern large-scale software development is a complex undertaking and coordinating various processes is crucial to achieve efficiency. The alignment between requirements and test activities is one very important aspect. Production and maintenance of software result in an ever-increasing amount of information. To be able to work efficiently under such circumstances, navigation in all available data...
Analytical approaches based on rigorous mathematical foundation are getting more importance in service-oriented computing (SOC) research area. Defining appropriate metrics to measure service quality attributes is one of the key activities in this context which plays an important role in construction of quality service-oriented solutions. In this paper, some metrics are introduced for measuring structural...
Software developers typically incorporate error-detection code to find and report faults at all levels. A system's reliability and maintainability can be significantly improved thorough wider use of error detection, better detection methods, and more informative reporting, but the benefits come at a price. This paper explores practical techniques in real-world applications that can greatly improve...
Dynamic software updates (DSU) are one of the top-most features requested by developers and users. As a result, DSU is already standard in many dynamic programming languages. But, it is not standard in statically typed languages such as Java. Even if at place number three of Oracle's current request for enhancement (RFE) list, DSU support in Java is very limited. Therefore, over the years many different...
Software clones are identical or similar pieces of code, design or other artifacts. Clones are known to be closely related to various issues in software engineering, such as software quality, complexity, architecture, refactoring, evolution, licensing, plagiarism, and so on. Various characteristics of software systems can be uncovered through clone analysis, and system restructuring can be performed...
In this paper, we propose a new semantic clone detection technique by comparing programs' abstract memory states, which are computed by a semantic-based static analyzer. Our experimental study using three large-scale open source projects shows that our technique can detect semantic clones that existing syntactic- or semantic-based clone detectors miss. Our technique can help developers identify inconsistent...
In today's business environment, multiple organizations must routinely work together in software supply chains when acquiring, developing, operating, and maintaining software products. The programmatic and product complexity inherent in software supply chains increases the risk that defects, vulnerabilities, and malicious code will be inserted into a delivered software product. As a result, effective...
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.