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.
In this paper we present a modeling and analysis tool for service-oriented systems. The tool enables graphical modeling of service-based systems, within the resource-aware timed behavioral language Remes, as well as a textual system description. We have developed a graphical environment where services can be composed as desired by the user, together with a textual service composition interface in...
In this paper we present and evaluate the power of best-first search over AND/OR search spaces for multi-objective constraint optimization. The main virtue of the AND/OR representation of the search space is its sensitivity to problem structure, which can translate into significant time savings. We introduce a linear-space best-first search algorithm that explores an AND/OR search tree and uses a...
While significant progress has been made over the last ten years in the research field of quality assessment, developers still can't take full advantage of the benefits of these new tools and technique. We believe that there at least two main causes for this lack of adoption: (i) the lack of integration in mainstream IDEs and (ii) the lack of support for a continuous (daily) usage of QA tools. In...
The principles and best practices of object oriented design require that modules in a program should match logical decomposition of the knowledge that the program implements. The violation of these modularization rules leads to several undesired consequences: (i) non-cohesive modules that mix different kinds of knowledge and (ii) logically coupled modules due to a dispersion of conceptually cohesive...
Distributed applications address the needs of heterogeneous networks of human activities, therefore they must consist of balanced, relatively autonomous intercommunicating components. Unfortunately, real-world systems do often not follow these requirements, or their architecture gets degraded in time by many ad-hoc changes. Consequently, these systems have to go frequently through the costly and oftentimes...
When aiming to understand object-oriented distributed applications, reverse engineering processes can model the systems by representing the aspects specific to the object orientation. While these representations provide means for in-depth analysis of various characteristics of the applications, such approaches may ignore their most important traits, specifically those related to the distribution itself...
Despite many advances in program comprehension, polymorphism and inheritance are still the cause of many misunderstandings in object-oriented code. In this paper, we present a suite of such concrete, recurrent patterns where particular ways of using inheritance and polymorphism can easily mislead developers and maintainers during software understanding activities. We define these as comprehension...
The software industry is increasingly facing the issues of understanding and maintaining a particular type of software systems, namely distributed systems. While these systems are usually implemented in an object-oriented fashion, they raise very specific, and technology-dependent, understandability and quality assessment challenges. In this paper we present a novel approach for understanding a distributed...
Many reverse engineering approaches have been developed to analyze software systems written in different languages like C/C++ or Java. These approaches typically rely on a meta-model, that is either specific for the language at hand or language independent (e.g. UML). However, one language that was hardly addressed is Lisp. While at first sight it can be accommodated by current language independent...
Several reengineering environments have been created to provide for a unified infrastructure in which various approaches can be employed together. While the collaboration between tools is very strong within such environments, currently the inter-environmental collaboration is very weak and happens mainly at the level of data-files exchange. Consequently, the different groups of researchers are only...
In the last years, as object-oriented software systems have become more and more complex, the need of performing automatically reverse engineering upon such systems has significantly increased. It is well known that one step toward a research infrastructure accelerating the progress of reverse engineering is the creation of an intermediate representation of software systems. In the current demonstration...
The software industry is increasingly confronted with the issues of understanding and maintaining a special type of software systems, namely distributed systems. Although these systems are usually implemented in an object-oriented fashion, they raise very specific, and technology-dependent, understandability and quality assessment challenges. This paper presents a visual approach for comprehending...
Copy-paste programming is dangerous as it may lead to hidden dependencies between different parts of the system. Modifying clones is not always straight forward, because we might not know all the places that need modification. This is even more of a problem when several developers need to know about how to change the clones. In this paper, we correlate the code clones with the time of the modification...
In order to compute metrics automatically, these must be implemented as software programs. As metrics become increasingly complex, implementing them using imperative and interrogative programming is oftentimes cumbersome. Consequently, their understanding, testing and reuse are severely hampered. In this paper we identify a set of key mechanisms that are involved in the implementation of design metrics...
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.