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.
Modern applications often rely on XML to represent data internally and to interact with other applications and with end users. XSL transformations are commonly employed to transform between the internal representations of XML documents manipulated by an application and representations used for interaction with end-users and with other applications. These XSL transformations need to be updated whenever...
Reasoning about information flow can help software engineering. Static information flow inference analysis is a technique which automatically infers information flows based on data or control dependence. It can be utilized for the purposes of general program understanding, detection of security attacks and security vulnerabilities, and type inference for security type systems. This paper proposes...
To avoid unnecessary maintenance costs in large IT systems resulting from poorly planned changes, it is essential to manage and control changes to the system and to verify that all items impacted by each change are updated as needed. This paper presents a method of decision support that helps guarantee that each change set (those items to be updated in the change) contains all the software or hardware...
Change impact analysis techniques that underestimate impact may cause important financial losses from the point of view of an IT services company. Thus, reducing false-negatives in these techniques is a goal with strong practical relevance. This work presents a technique that uses both static and dynamic analysis of object-oriented source code to improve resulting impact estimates in terms of recall...
This paper presents a method for automatic reconstruction of polymorphic class hierarchies from the assembly code obtained by compiling a C++ program. If the program is compiled with run-time type information (RTTI), class hierarchy is reconstructed via analysis of RTTI structures. In case RTTI structures are missing in the assembly, a technique based on the analysis of virtual function tables, constructors...
Software is playing a crucial role in modern societies. Not only do people rely on it for their daily operations or business, but for their lives as well. For this reason, correct and consistent behaviour of software systems is a fundamental part of end user expectations. Additionally, businesses require cost-effective production, maintenance, and operation of their systems. Thus, the demand for good...
For many enterprises, introduction and maintenance of service orientation is still a daunting task and there is often no distinct idea of how to approach respective projects. Especially the migration of legacy systems functionality into a new service-oriented environment - the SOA enabling - is key to the success of SOA projects. Another challenge arises for enterprises having SOA already introduced...
Dependency injection is a recent programming mechanism reducing dependencies among components by delegating them to an external entity, called a dependency injection framework. An increasingly popular approach to dependency injection implementation relies upon using Java annotations, a special form of syntactic metadata provided by the dependency injection frameworks. However, uncontrolled use of...
Frequent changes to groups of software entities from different parts of the system may indicate structural issues in the system's decomposition. Analyzing such groups is needed to understand the underlying reasons for co-changes, and also determine how to resolve the issues. To date, static visualizations have been proposed to identify possible structural issues, but they help only to a certain extent...
In contrast to conventional multi-page Web applications, an Ajax application is developed as a single-page application in which content and structure are changed at runtime according to user interactions, asynchronous messages received from the server and the current state of the application. These features make Ajax applications quite hard to understand for programmers. In this paper, we summarize...
Antipatterns are poor object-oriented solutions to recurring design problems. The identification of occurrences of antipatterns in systems has received recently some attention but current approaches have two main limitations: either (1) they classify classes strictly as being or not antipatterns, and thus cannot report accurate information for borderline classes, or (2) they return the probabilities...
Web software development is one of the most active areas and fastest growing industries in software and services development in Europe. In particular, Java Enterprise Edition is the mainstream European technology option for one million European developers. Since web development is not still a mature area, the proliferation of frameworks and components has both increased the required skills of web...
The research field of change impact analysis plays an important role in software engineering theory and practice nowadays. Not only because it has many scientific challenges, but it has many industrial applications too (e.g., cost estimation, test optimization), and the current techniques are still not ready to fulfill the requirements of industry. Typically, the current solutions lack a whole-system...
Determining dependencies between different components of an application is useful in lots of applications (e.g., architecture reconstruction, reverse engineering, regression test case selection, change impact analysis). However, implementing automated methods to recover dependencies has many challenges, particularly in systems using databases, where dependencies may arise via database access. Furthermore,...
In the context of multi-developer projects, where several people are contributing code, developers must deal with concurrent development. Collaboration among developers assumes a fundamental role, and failing to address it can result, for example, in shipping delays. We argue that tool support for collaborative software development augments the level of awareness of developers, and consequently, help...
Software clustering algorithms can automatically decompose a software system into modules by analyzing the network of dependencies between its components (e.g., classes in object-oriented systems). Empirical evaluation of these algorithms is difficult because few software systems have reference decompositions to be compared with the decompositions found by the algorithms. Alternatively, the algorithms...
Software clustering algorithms can automatically decompose a software system into modules by analyzing the network of dependencies between its components (e.g., classes in object-oriented systems). Empirical evaluation of these algorithms is difficult because few software systems have reference decompositions to be compared with the decompositions found by the algorithms. Alternatively, the algorithms...
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.