Программная инженерия. Методологические основы
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.
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.
The issue contains the papers presented at the 4th Spring/Summer Young Researchers’ Colloquium on Software Engineering (SYRCoSE 2010) held in Nizhny Novgorod, Russia on 1st and 2nd of June, 2010. Paper selection was based on a competitive peer review process being done by the program committee. Both regular and research-in-progress papers were considered acceptable for the colloquium. The topics of the colloquium include software development methods and tools, functional testing and formal verification, telecommunication software, high-performance computing, software engineering education, and others.
The International Conference on Software and Systems Process (ICSSP) 2014 was held in Nanjing, China, between May 26th and 28th, 2014.The main theme of ICSSP 2014 is “Processes for Emerging and Evolving Software Systems”, emphasizing and encouraging the research and experiences related to the emerging trends in software and systems engineering from a process perspective as well as the support of continuous changes and evolution in software systems. The accepted papers present completed research or advanced work-in-progress in all areas of software and systems process as well as domains outside the traditional software process community.