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 Java languages introduce several new features that offer significant improvements over older Java technology. In this article we consider the new enum construct, which provides language support for enumerated types. Prior to recent Java languages, programmers needed to employ various patterns (e.g., the weak enum pattern) to compensate for the absence of enumerated types in Java. Unfortunately,...
As applications grow more and more complex, the current software faces a great challenge in dynamism. This paper proposes to modernize legacy software towards runtime plug-and-play architecture using service-oriented component model. Our object is to provide runtime plug-and-play feature for software to simplify development and adapt to changing execution environment. We propose a two-stage modernization...
The design of modern embedded systems becomes more complex every day, due to the increasing amount of components and distinct functionalities incorporated into a single system. To address this situation, projects' abstraction level is continuously raised. In addition, techniques to speed up the code production process have emerged. These new trends lead to an important issue: the development of a...
When programmers copy, paste, and then modify source code, the once-identical code fragments (code clones) can become indistinguishable as the software evolves over time. In this paper, we present three features of our software tool, a set of Eclipse plug-ins named CnP (CnP's clone visualization, CReN, and LexId), which aids the programmer during copy-and-paste programming. We believe that the clone-awareness...
Research on feature location that applies information retrieval techniques have experimented the kinds of inputs to the corpus and the algorithms that could be used. At first, only source code was used. Later extraction techniques were improved, and data from other software tools and analyses were used to expand or augment the repository. But, does having more diverse data in the repository always...
Feature-centric comprehension of source code is necessary for incorporating user-requested modifications during software evolution and maintenance. However, such comprehension is difficult to achieve in case of large object-oriented programs due to the size, complexity, and implicit character of mappings between features and source code. To support programmers in overcoming these difficulties, we...
Copying and pasting source code results in code duplication. A common form of software reuse involves modifying the new duplicate to fit a current task. The similar code fragments (code clones) may be edited inconsistently by the programmer, for various reasons, leaving a bug in the software that may remain undetected by both the programmer and the compiler. A previously published tool, CReN, helps...
The addition of support for genericity to mainstream programming languages has a notable influence in refactoring tools. This also applies to the JAVA programming language. Those versions of the language specification prior to JAVA 5 did not include support for generics. Therefore, refactoring tools had to evolve to modify their refactoring implementations according to the new language characteristics...
The life cycle of software applications in general is very short and with extreme volatile requirements. Within these conditions programmers need development tools and techniques with an extreme level of productivity. We consider the code reuse as the most prominent approach to solve that problem. Our proposal uses the advantages provided by the Aspect-Oriented Programming in order to build a reusable...
Developers often change software in ways that cause tests to fail. When this occurs, developers must determine whether failures are caused by errors in the code under test or in the test code itself. In the latter case, developers must repair failing tests or remove them from the test suite. Repairing tests is time consuming but beneficial, since removing tests reduces a test suite's ability to detect...
Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. We present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program...
Component migration is an effective way for legacy software systems reuse and evolution. The process of component migration for legacy systems involves two major phases: identifying reusable components, and adapting source code to the newly identified component-based system architecture, that is, componentization. Our work concerns the latter phase. In this paper, focusing on improving reusability...
Back in 2001, the MIT announced aspect-oriented programming as a key technology in the next 10 years. Nowadays, 8 years later, AOP is not widely adopted. Several reasons can explain this distrust in front of AOP, and one of them is the lack of robust tools for analysis, testing and maintenance. In order to develop dedicated solutions for assisting the development with AOP, and increase its adoption,...
Java annotations and their predecessors XDoclet annotations are well positioned to offer a substantial benefit for developing and maintaining software by combining relevant metadata together with the code that makes use of them. In this paper we share the insights that we gained by developing the J2EE Connector Tools suite, which is part of IBM Rational Application Developer. This tools suite is used...
This paper mainly studies the JasperReports that is an open-source report tool, which has realized a dynamic design and reusable report system combined with IReport a visual report designer and the Hibernate framework. Finally, we applied the report system in the project management system which based on WebWork framework. This application has shorten the development cycle of overall system and make...
The FermaT Maintenance Environment (FME) is a platform independent graphical user interface for the FermaT program transformation system. It is able to represent WSL code and apply FermaT transformations on single statements.
Static analysis tools are used for the detection of errors and other problems on . The detected problems related to the internal structure of a software can be removed by source code transformations called refactorings. To automate such source code transformations, refactoring tools are available. In modern integrated development environments, there is a gap between the static analysis tools and the...
Java 5 has introduced a number of new syntactical language features that make development faster, easier, and safer. However, at the same time, it has also introduced downward incompatibilities: code written for Java 5 cannot be used on pre-Java 5 platforms. This tool demonstration presents a number of source-to-source transformations that backport source code written for the Java 5 platform to legacy...
The model-driven approach to software development has not only changed the way software systems are built and maintained but also the way they are tested. For such systems, a model-based testing approach is much recommended since it is aligned with the new model-driven development paradigm that favors models over code with the objective being to reduce time to market while improving product quality...
Developers use unit testing to improve the quality of software systems. Current development tools for unit testing help with automating test execution, with reporting results, and with generating test stubs. However, they offer no aid for designing tests aimed specifically at exercising the effects of changes to a program. This paper describes a unit testing tool that leverages a change model to assist...
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.