=============================== ABSTRACTS OF TECHREPORTS 2001 =============================== #Reference: vub-prog-tr-01-01 "Transformational Software Evolution by Assertions" Tom Mens CSRM 2001 Workshop on Formal Foundations of Software Evolution, Lisbon, March 2001. #Abstract: This paper explores the use of software transformations as a formal foundation for software evolution. More precisely, we express software transformations in terms of assertions (preconditions, postconditions and invariants) on top of the formalism of graph rewriting. This allows us to tackle scalability issues in a straightforward way. Useful applications include: detecting syntactic merge conflicts, removing redundancy in a transformation sequence, factoring out common subsequences, etc. #Keywords: software evolution, software merging, graph rewriting, assertions, pre- and postconditions #Reference: vub-prog-tr-01-02 "Experiences in Mobile Computing: The CBorg Mobile Multi-Agent System" Werner Van Belle, Johan Fabry, Karsten Verelst, Theo D'Hondt Published in ... #Abstract: This paper reports on our experiences in the field of mobile components. In the past 4 years we developed a mobile component system, which allowed us to experiment with code mobility in distributed systems. These experiments have given us a unique opportunity to study two major issues in mobile component systems. The first issue is how to develop and provide a robust mobile component architecture. The second issue is how to write code in these kinds of systems. This paper discusses our experience in both of the above. #Keywords: #Reference: vub-prog-tr-01-03 "Proceedings of the Workshop on Formal Foundations of Software Evolution" Tom Mens, Michel Wermelinger March 2001 Technical Report UNL-DI-1-2001 Departamento de Inform\'{a}tica Faculdade de Ci\^{e}ncias e Tecnologia Universidade Nova de Lisboa 2825-114 Caparica, Portugal #Abstract: Numerous scientific studies of large-scale software systems have shown that about 80% of the total cost of software development is devoted to software maintenance. This is mainly due to the fact that software systems are under constant evolution to cope with changing requirements. Today this is more than ever the case, because of the dramatic evolution of technology, the ever changing legislation, etc. Despite this omnipresence of software evolution, existing tools that try to offer support are far from ideal. They are often implemented in an ad-hoc way, are not generally applicable, are not scalable, or they are difficult to integrate with other tools. The goal of this workshop is to try and find out how formal techniques can alleviate those problems, and how they can lead to tools for large-scale software systems that are more robust and more widely applicable without sacrificing efficiency. Preferably, provided techniques should not be restricted to a particular phase in the software life-cycle, but should be generally applicable throughout the entire software development process. #Keywords: software evolution, formal foundations, graph rewriting, software maintenance, tool support, scalability #Reference: vub-prog-tr-01-04 "Features and Feature Interaction in Software Engineering using Logic" Ragnhild Van Der Straeten, Johan Brichau ECOOP 2001 workshop on Feature Interactions in Composed Systems #Abstract: Feature interactions are common when composing a software unit out of several features. We report on two experimental approaches using logic to describe features and feature interactions. The first approach proposes description logic as a formalization of feature models which allow reasoning about features. In the second approach, a metalevel representation of the software is proposed to capture conditions on features. These conditions are written in terms of the software's implementation providing a uniform formalism that can be applied to any software unit. #Keywords: feature interactions, description logic, logic meta-programming #Reference: vub-prog-tr-01-05 "Evolution Metrics" Tom Mens, Serge Demeyer Proc. Int. Workshop Principles of Software Evolution, Vienna, September 2001 #Abstract: Since the famous statement "What is not measurable make measurable" of Galileo Galilei (1564 - 1642) it has been a major goal in science to quantify observations as a way to understand and control the underlying causes. With the growing awareness that evolution is a key aspect of software, an increasing number of computer scientists is investigating how metrics can be applied to evolving software artifacts. This paper provides a classification of the various approaches that use metrics to understand and control the software evolution process, gives concrete examples for each of the approaches, and identifies topics that require further research. As such, we expect that this paper will stimulate this emerging research area. #Keywords: software evolution, evolution metrics #Reference: vub-prog-tr-01-06 "Formal Foundations of Software Evolution: Workshop Report" Tom Mens, Michel Wermelinger Published in ACM Software Engineering Notes, July 2001 #Abstract: This paper summarises the results of the discussions held during the workshop on Formal Foundations of Software Evolution in Lisbon on March 13, 2001. These results can be used as guidelines when dealing with software evolution in general, and when providing formal tool support for it in particular. #Keywords: software evolution, software engineering, formal foundations, software change, software maintenance #Reference: vub-prog-tr-01-07 "Towards a Software Evolution Benchmark" Serge Demeyer, Tom Mens, Michel Wermelinger Proc. Int. Workshop Principles of Software Evolution, Vienna, September 2001 #Abstract: Case-studies are extremely popular in rapidly evolving research disciplines such as software engineering because they allow for a quick but fair assessment of new techniques. Unfortunately, a proper experimental set-up is rarely the case: all too often case-studies are based on a single small toy example chosen to favour the technique under study. Such lack of scientific rigor prevents fair evaluation and has serious consequences for the credibility of our field. In this paper, we propose to use a representative set of cases as a benchmark for comparing various techniques dealing with software evolution. We hope that this proposal will launch a consensus building process that eventually must lead to a scientifically sound validation method for researchers investigating reverse and re-engineering techniques. #Keywords: software evolution, empirical survey, case studies, benchmark #Reference: vub-prog-tr-01-08 "A Declarative Evolution Framework for Object-Oriented Design Patterns" Tom Mens, Tom Tourwe Proc. Int. Conf. Software Maintenance, pp. 570-579, IEEE Computer Society Press #Abstract: Object-oriented design patterns and high-level refactorings are popular means of implementing and evolving large object-oriented software systems. Unfortunately, these techniques are inadequately supported at implementation level by current-day software development environments. To alleviate this problem, we propose to use the promising technique of declarative metaprogramming. It offers a tight, yet flexible, symbiosis between a base language and a metalevel declarative reasoning engine. It provides a uniform and language-independent way to specify design patterns and transformations declaratively, to instantiate patterns and generate code for them, and to deal with the evolution of these pattern instances. Providing support for evolution of a software system in terms of the design pattern instances it uses is the main emphasis of this paper. #Keywords: software evolution, design patterns, refactoring, transformation #Reference: vub-prog-tr-01-09 "A Formal Foundation for Object-Oriented Software Evolution" Tom Mens Proc. Int. Conf. Software Maintenance, pp. 549-552, IEEE Computer Society Press #Abstract: My PhD thesis claims that the principles behind object-oriented software evolution are independent of a particular domain or phase in the software lifecycle. To validate this claim, a formalism based on graphs and graph rewriting was developed and applied to a particular aspect of software evolution, namely the problem of software upgrading and software merging. When the same piece of software is modified in parallel by different software developers, unexpected inconsistencies can arise. Formal support can be provided to detect and resolve these inconsistencies in a general way. #Keywords: software evolution, merging, evolution conflict #Reference: vub-prog-tr-01-10 "Supporting Software Development through Declaratively Codified Programming Patterns" Kim Mens, Isabel Michiels, Roel Wuyts Proc. Int. Conf. Software Engineering and Knowledge Engineering, June 2001 #Abstract: In current-day software development, programmers often use programming patterns to clarify their intents and to increase the understandability of their programs. Unfortunately, most software development environments do not adequately support the declaration and use of such patterns. To explicitly codify these patterns, we adopt a declarative meta-programming approach. In this approach, we reify the structure of an (object-oriented) program in terms of logic clauses. We declare programming patterns as logic rules on top of these clauses. By querying the logic system, these rules allow us to check, enforce and search for occurrences of patterns in the software. As such, the programming patterns become an active part of the development and maintenance environment. #Keywords: programming patterns, logic programming, meta-programming, tool support #Reference: vub-prog-tr-01-11 "Supporting Software Development through Declaratively Codified Programming Patterns" Kim Mens, Isabel Michiels, Roel Wuyts In Journal on Expert Systems with Applications, Elsevier publications #Abstract: In current-day software development, programmers often use programming patterns to clarify their intents and to increase the understandability of their programs. Unfortunately, most software development environments do not adequately support the declaration and use of such patterns. To explicitly codify these patterns, we adopt a declarative meta programming approach. In this approach, we reify the structure of an (object-oriented) program in terms of logic clauses. We declare programming patterns as logic rules on top of these clauses. By querying the logic system, these rules allow us to check, enforce and search for occurrences #Keywords: programming patterns, logic programming, meta programming, tool support, object-oriented programming #Reference: vub-prog-tr-01-12 "Software-architectuur als middel tegen software-erosie" Kim Mens AKADEMOS --- Informatieblad van de Vrije Universiteit Brussel, jaargang 4, nummer 1, 2001 #Abstract: based on an interview with Dr. Kim Mens, written by S. Van Den Bossche #Keywords: #Reference: vub-prog-tr-01-13 "Algoritme controleert computerprogramma's" Persbericht, 02/03/2001, afdeling Wetenschapscommunicatie VUB #Abstract: based on an interview with Dr. Kim Mens, written by S. Van Den Bossche #Keywords: #Reference: vub-prog-tr-01-14 "4th Workshop on Object-Oriented Architectural Evolution" Tom Mens, Galal Hassan Galal ECOOP 2001 Workshop Reader, Springer Verlag, 2001 #Abstract: The aim of the fourth workshop on Object-Oriented Architectural Evolution was to discuss into more detail a number of important issues raised during the previous workshop: the relationship between domain analysis and software architecture, the importance of architectural views and layering techniques, and the applicability of existing object-oriented principles and evolution techniques. This paper summarises the results of the debates held about these issues, reports on convergences of view taken place during the workshop, and suggests some research topics that are worthwhile to pursue in the future. #Key words: object orientation, software architecture, software evolution, domain analysis #Reference: vub-prog-tr-01-19 "Using meta-level constructs in Web personalization" Sofie Goderis, Gustavo Rossi, Andres Fortier, Juan Cappi, Daniel Schwabe Proc. ICC2001, Special Session on Web Personalization; Lecture Notes in Artificial Intelligence series (LNCS/LNAI), Springer-Verlag, 2001 #Abstract: #Keywords: personalization #EndABSTRACTS OF DISSERTATIONS 2001 ------------------------------- #Reference: vub-prog-phd-01-01 "A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation" Roel Wuyts PhD dissertation, Programming Technology Lab, January 2001 #Abstract: #Keywords: #Reference: vub-prog-ms-01-01 "Personalization in Object-Oriented Systems" Sofie Goderis EMOOSE Masters dissertation, August 2001 #Abstract: #Keywords: #Reference: vub-prog-ms-01-02 "Comparison between different Tree Flattening techniques in an Indirect Reference Listed DGC" Kristof De Vos EMOOSE Masters dissertation, August 2001 #Abstract: #Keywords: #Reference: vub-prog-lic-01-01 "Aspect-Oriented Programming using a Logic Meta Programming Language to express cross-cutting through a dynamic joinpoint structure" Kris Gybels Licenciate Dissertation, August 2001 #Abstract: #Keywords: #Reference: vub-prog-lic-01-02 "A Finite State Machine Approach to Real-Time Scheduler Generation for Embedded Systems" Jessie Dedecker Licenciate Dissertation, July 2001 #Abstract: Component-based development is a paradigm that explicitly emphasizes the reusability problem. Components are software pieces that are plugged together to form a program. Each component can be seen as a reusable part that can be plugged in other software compositions. Unfortunately embedded software has special characteristics (such as robustness, timing behaviour, ...), which compromise the reusability of such software. Therefore, components are not adapted to the characteristics common to embedded software. A real-time system runs software in which the correctness of the program depends not only on the logical results, but also on the time at which the results are produced. Timing constraints are used to specify the temporal corectness of the software. A real-time system is often concurrent by nature. A scheduler determines which concurrent process has priority over the others to keep up with the timing constraints. We use an adapted component model in which all component communication is asynchronous. This thesis proposes a way to extract semantic data from the component source code. The extracted data can be converted to a deterministic finite automata (DFA) which can be used by a finite state machine (FSM) to track the progress of the software. The information of the tracker can be used to make scheduling decisions on a single-processor embedded system. The techniques presented in this dissertation are a first step towards the reusability of software components in real-time embedded software. #Keywords: #End