FORMATION AND DEVELOPMENT OF SOFTWARE ENGINEERING AS A KNOWLEDGE AREA - Striuk, А. М. (Journal of Information Technologies in Education (ITE), 2018)
The article presents an analysis of the main stages of the development of software engineering (SE) as a branch of knowledge, highlights the fundamental components of the training of future software engineers, identifies trends in the development of this industry for the next decade. The modern SE is based on three groups of key principles: the basic concepts of computer science, related to data structures, algorithms, programming languages and their semantics, analysis, computational, computational models, etc.; engineering fundamentals related to architecture, engineering processes, trade-offs and costs, standardization, quality and warranties, and other components that provide an approach to design and problem-solving; socio-economic foundations that include the process of creating and evolving artifacts, as well as issues related to politics, markets, user-friendliness and socio-economic impacts; it provides the basis for the formation of engineering artifacts that will fit their purpose. Modern SE is an integral part of the overwhelming majority of innovations in all areas of the development of society, science and technology, offering systemic, practical, cost-effective solutions for computing tasks and information processing tasks. During the SE development as a separate industry, considerable experience in designing, implementing, testing and documenting software has been accumulated; system scientific, technological approaches and methods for designing and designing computer programs have been highlighted. At the same time, researchers note that SE has not yet reached the level of sustainability as other areas of engineering. Analysis of the historical stages of the development of the SE showed that despite the universal recognition of the importance of using the mathematical apparatus of logic, automata theory and linguistics in software development, it was created empirically without its use. The factor forcing practitioners to turn to the mathematical foundations of an SE is the increasing complexity of software and the inability of empirical approaches to its development and management to cope with it. The professional training of software engineers highlighted the problem of the rapid obsolescence of the technological content of education, the solution of which lies in its fundamentalization through the identification of the basic foundations of the industry.