Proceedings of the Third Spring Young Researchers’ Colloquium on Software Engineering (SYRCoSE 2009)
This issue contains papers presented at the Third Spring Young Researchers’ Colloquium on Software Engineering (SYRCoSE 2009) held in Moscow, Russia during May 28-29, 2009. The selection was based on peer reviewing by program committee. Both regular and research-in-progress papers were considered acceptable for this colloquium. The topics of the colloquium include compatibility and portability of software, graphical modeling, computer networks and telecommunication protocols, functional and performance testing, automata-based programming, and others.
This paper presents an approach of developing a special environment to help application developers to create programs compliant with some interface standard. The paper suggests a design of the informational system aimed to make it easier to develop and to maintain such an environment on the basis of the existing systems, with necessary modiﬁcations in the areas concerned by the standard. To store information about existing systems and to facilitate their modiﬁcation, it is suggested to use a database with a set of accompanying tools. Necessary aspects of the database schema design are described, as well as some aspects of the tool architecture.
A shared library is a ﬁle that contains library code and data in binary form. Application built against the library references the data via symbols and the contents of what’s being referenced get known only during the application startup. Library is shipped with header ﬁle(s) the program is compiled with. The problem of the binary compatibility arises when the new version of library is installed into system and the program, having not been recompiled, is attempted to run in the environment with the new library. The incompatibility may result in fatal errors during the startup or even during the runtime. In this article we deduce the rules that must be followed in order to keep the binary compatibility of a shared library. Unlike most of researches in this area, we also assume that the library may contain its own restrictions upon its usage, more powerful than restrictions of C++ language itself. So the possible restrictions are analyzed as well, and we attempt to weaken the rules of binary compatibility when such restrictions are enforced. As a conclusion we list the rules a programmer should follow to keep his or her library binary compatible. We also conclude that possible restrictions limiting the use of library allow to weaken these rules in relatively small number of cases. For the purpose of this study, we create formal notation for the process of building and using a library, introduce formal deﬁnitions of source and binary compatibility and of program behavior. We base the assumptions about mapping source code entities to binary level on the Itanium C++ ABI standard, which describes gcc’s way of emitting binary code and data.
In this paper the method of the automated analysis of header files intended for support of the standardization process LSB is described. The offered approach is based on use of the high-level representations of the preprocessor cpp and the compiler gcc, their extensions and additional analyzers. The basic stages of tool’s work implementing the offered method and its application for the analysis of header files of the library Qt are considered.