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.
Software evolves; this phenomenon causes increase in maintenance efforts, problem in comprehending the ever-changing code base and difficulty in verifying software correctness. As software changes, often the documented specification is not updated. Outdated specification adds challenge to the understanding of the code base during maintenance tasks. Also, software changes might induce bugs, anomalies...
Typical enterprise applications are built upon different platforms, operate in a heterogeneous, distributed environment, and utilize different technologies, such as middleware, databases and Web services. Diagnosing the root causes of problems in such systems is difficult in part due to the number of possible configuration and tuning parameters. Today a variety of tools are used to aid operators of...
More than 90% of the cost of software is due to maintenance and evolution. Understanding the evolution of large software systems is a complex problem, which requires the use of various techniques and the support of tools. Several software evolution approaches put the emphasis on structural entities such as packages, classes and structural relationships. However, software evolution is not only about...
Some characteristics of source code are perceived as harmful because they evidence that design principles were not applied in certain parts of the application. This work proposes a methodology that assesses the effect of so called source code flaws in changeability. Our methodology is based on measures and indicators of the effort of changing methods. The measures are calculated with information automatically...
Improved product quality and accelerated software development through systematic reuse of common software assets have been the key attractions behind software product lines. Magnitude of improvement in industrial practices has been reported in the literature. However, experiences with software product line also showed that it is a rather chall enging task to maintain software product lines and families...
Ontology has been investigated in the context of knowledge representation among heterogeneous and disparate knowledge base systems. Our study and experiments suggest that ontology also has a great potential for program comprehension. The main idea is to extract the ontological perspective of existing software system, which is a combination of two kinds of ontology: domain ontology and source code...
Little is known about of how software embedded in complex industrial technical systems is maintained. In this paper, we identify industrial maintenance process steps and position software maintenance activities within them. We do this in the context of JAS 39 Gripen, a multi-role combat aircraft developed by Saab.
Analyzing the change-proneness of design patterns and the kinds of changes occurring to classes playing role(s) in some design pattern(s) during software evolution poses the basis for guidelines to help developers who have to choose, apply or maintain design patterns. Building on previous work, this paper shifts the focus from design patterns as wholes to the finer-grain level of design pattern roles...
We present a metrics-based study of the evolution of Eclipse, an open source integrated development environment, based on data from seven major releases, from releases 1.0 to 3.3. We investigated whether three of the laws of software evolution were supported by the data. We found that Eclipse displayed continual change and growth, hence supporting laws 1 and 6. Six size indicators, out of eight, closely...
Prior work has shown that computing dynamic slices of erroneous program values can greatly assist in locating the root cause of erroneous behavior by identifying faulty statements in sequential programs. These dynamic slices represent backward transitive closure over exercised read-after-write data dependences and control dependences. However, for a multithreaded program executing on a processor,...
Customers of modern enterprise applications commonly engage the vendor of the application for on-site troubleshooting and fine tuning of large deployments. The results of these engagements are documented in customer engagement reports. The reports contain valuable information about the observed symptoms, identified problems, attempted workarounds and the final solution. Such information is valuable...
Several refactoring methods have been proposed in the literature to improve the cohesion of classes. Very often, refactoring operations are guided by cohesion metrics based on the structural information of the source code, such as attribute references in methods. In this paper we present a novel approach to guide the extract class refactoring (M. Fowler, 1999), taking into account structural and semantic...
The invasiveness of aspects is beneficial to modularize crosscutting concerns that require the modification of the data or control flow. However, it introduces subtle errors that are hard to locate and fix in case of evolution. In this paper we illustrate this issue by evolving a program implemented using aspects. Interaction issues, between aspects and the program, emerge from this evolution. We...
Change impact analysis is a useful technique for software evolution. It determines the effects of a source editing session and provides valuable feedbacks to the programmers for making correct decisions. Recently, many techniques have been proposed to support change impact analysis of procedural or object-oriented software, but seldom effort has been made for aspect-oriented software. In this paper...
Managers are often unable to explain objectively why or when effort was misplaced during the development process. In this paper, we present a formal technique to depict the expended effort during the life-cycle of a software feature using feature development manifolds (FDMs). Using the FDMs we can compute the preferred development path for a given feature. This development path includes the versions...
The author's dissertation explores a new approach to construct tools in the domain of reverse engineering. The approach leverages already available (off-the-shelf) components and products, assembling and customizing them programmatically. This approach can be characterized as component-based tool-building (CBTD). While many academic tools follow CBTD - presumable with the goal to save time and effort...
During the last years Free/Libre/Open Source Software (FLOSS) has gained much attention in the software evolution and maintenance research community. This is due to various reasons that range from the availability of the software product to the archival of past software and non-software artifacts in versioning repositories, bug tracking systems and mailing lists, among others. The most interesting...
Autonomic computing has become more prevalent in recent years for its vision of developing applications with self-adaptive and self-managing behavior. Due to the inherent complexity of such applications and the nature of the built-in closed-loop feedback control, maintainability issues of autonomic systems are emerging as significant concerns in autonomic system designs. This paper identifies and...
A principal goal of agent-oriented software engineering (AOSE) is to provide the mechanisms for reusing, maintaining and allowing the evolution of agent-based software systems. Our AOSE methodology, Gaia-PL, enables the design and development of multi-agent system product lines (MAS-PL)1 by providing the software engineering processes to define and reuse requirements specifications and design artifacts...
The paper explores Static Execute After (SEA) dependencies in the program and their dual Static Execute Before (SEB) dependencies. It empirically compares the SEA/SEB dependencies with the traditional dependencies that are computed by System Dependence Graph (SDG) and program slicers. In our case study we use about 30 subject programs that were previously used by other authors in empirical studies...
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.