Развитие базовой модели SEMAT для жизненного цикла заказных ответственных программных систем
The SEMAT kernel describes aspects of software engineering related to the development of software systems. There are classes of software systems, with specificity , which is determined by the fact that these systems are operated within a few years after their development. For such systems it is necessary to consider other stages of the life cycle of software systems such as operation and maintenance.
The article represents some information technologies of a search for similar researches, projects or just ideas in catalogues of dissertations and suggests a software web-based system of automated search of the kind. The relevance of the system is justified by impossibility of doing the same work by people and absence of systems which can input a large text for this kind of search. There are several methods described which the system is based upon as well as several mini-researches results which have been conducted in order to understand structures of the dissertations catalogues and to interpret results of the system’s work. The system’s architecture, database structure and algorithm are presented in the article along with the rules of its running automatically using one of the planning tasks mechanisms of operating systems (cron). There are several user's and the system administrator's interface examples and system outputs provided from the user’s and the system administrator’s points of view. In the conclusion, key features and difficulties of the system and of the process of using it are outlined together with the outcome of the research with advantages and disadvantages of the system along with mentioning its practical value. Also, as a part of the conclusion there are results of another mini-research about the system's search script lifetime and some outcomes of server and the script settings necessary for getting correct results with the help of the system.
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 article describes the project approach to learning as a way of formation of professional competence of software engineering. Since this sphere is quite different from engineering as such, the process of learning and competencies performed in a special way : training project selected on the basis of those competencies that need to master.
The article describes the use of guidelines for the individual and collective (team) processes software development (Personal Software Process - PSP and Team Software Process - TSP), developed by the Software Engineering Institute (SEI) Carnegie Mellon University (CMU), to help understand what concrete actions, skills and knowledge necessary for the development of specific competences. Highlighted the benefits that gives distinction competency areas. The basic features of educational projects and the positive characteristics of project-based learning were formulated in terms of increased demand for specialists in the labor market.
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.