Sustainability in Software Engineering Education: a case of general professional competencies

The article considers the application of the sustainable development concept to software engineering specialists training. A system of general professional competencies is designed to build sustainable professional competence of software engineering specialist: 1) ability for abstract thinking, analysis and synthesis; 2) ability to apply knowledge in practical situations; 3) ability to communicate in native language; 4) ability to communicate in a foreign language; 5) ability to learn and acquire up-to-date knowledge; 6) ability to search, process and analyze information from various sources; 7) ability to work in a team; 8) ability to act on the basis of ethical considerations; 9) commitment to preserving the environment; 10) ability to act in a socially responsible and conscious manner; 11) ability to realize the rights and obligations as a member of society, to recognize the civil society values and the need for its sustainable development, the rule of law, human rights and freedoms; 12) ability to preserve and enhance the moral, cultural, scientific values and society achievements based on an understanding of the history and patterns of the subject area development, its place in the general system of knowledge about nature and society and in the development of society, equipment’s and technology, to use various types and forms of physical activity for active recreation and healthy lifestyle; 13) ability to apply fundamental and interdisciplinary knowledge to successfully solve software engineering problems; 14) ability to evaluate and take into account economic, social, technological and environmental factors affecting the sphere of professional activity; 15) ability for lifelong learning.


Introduction
The necessity to apply the sustainable development methodology to the training is shown by the historical and technological analysis of software engineering as a profession [45] and specialty in which specialists with higher education [46] are trained.
Nail K. Nuriev considers that the goal of training a software engineering specialist is to form a stable professional competence, which is characterized by both a sufficient level of knowledge, abilities, skills and the necessary level of development of special abilities that ensure the successful solution of problems arising in professional activities at a high pace of development of this area [31, p. 7]. The main activity of such specialist is a design and constructive work in "a cognitive-virtual environment aimed at creating objects as entities that automatically support certain phenomena" [31, p. 22].
The higher education standard in the specialty 121 "Software Engineering" for the first (bachelor's) level of higher education defines the general goal of studying as "training specialists who are able to set and solve problems associated with the development, maintenance and quality assurance of software" [36, p. 5]. The programmatic result of such training is the building of the integral competence of the graduate, namely the ability to solve complex specialized tasks or practical problems of software engineering, characterized by the complexity and uncertainty of the conditions, using theories and methods of information technology [36, p. 6]. This graduate characteristic corresponds to features of the specialist prepared for the sustainable support of innovations in a specific subject field through his own activities to create an innovative product [31, p. 30].
Nail K. Nuriev defines that the persistent professional competence ensures the efficient activities of a specialist in solving professional problems at high rates of development of the activity field [31, p. 55]. According to this interpretation, the integral competence of a specialist in software engineering should be built to obtain the properties of sustainability (sustainable development). Nail K. Nuriev proposes to design a professional training system aimed at its formation, according to such methodological approaches as technical-technological, object-oriented, ontological and acmeological. The last two approaches aimed at the system knowledge formation along with intersubject communications and professional skills in solving problems in the software engineering field with a person steady direction to achieve the professionalism heights [31, p. 8].
Nail K. Nuriev defines the technology of training activities in the software engineering field as a specially designed for an educational purpose simulation model of the technology of professional activities in the software engineering field [31, p. 196]. Nailia Kh. Valeeva points out that such educational and professional activities will be efficient, in particular, in the context of its gradual formation, reliance on a context-personal approach, the creation and development of information and educational environment aimed at increasing students' motivation to learn and activating the process of building professional competencies [53, p. [4][5].
Olga P. Iurkovetc refers gnostic, operationalalgorithmic, technological and team competencies to professional competencies of the junior specialist [18, p. 13]. They form a certain subset of the competencies of the bachelor in software engineering [36, p. 6-7] general and special (professional, subject) competencies.

Sustainable competencies of software engineer 2.1 Ability for abstract thinking, analysis and synthesis
Sanjay Goel includes analysis / methodological skills to the critical competencies of a Software Engineering Specialist [13, p. 37]. Richard T. Turley and James M. Bieman highlight thinking among software engineering competencies [51, p. 25] (according to Sanjay Goel clarification -algorithmic and structural [13, p. 48]). The authors emphasize that "the observed development process was not linear: designers operated simultaneously at various levels of abstraction and detail" [51, p. 35]. Sanjay Goel indicates the following components of such thinking: reasoning and critical thinking (ability to question, validate, and correct the purpose, problem, assumptions, perspectives, methods, evidence, inference, reliability, relevance, criteria, and consequences); analytical skills; listening skills; quality consciousness and pursuit of excellence; constructive criticism; research skills (methods of mathematical research, engineering research, design research, and social science research); reflection and meta-cognition; self-acceptance, self-regulation, self-awareness, selfimprovement; sensitivity towards global, societal, environmental, moral, and ethical issues, and sustainability; entrepreneurship, sense of mission, perseverance, commitment, self motivation, dedication; adaptability, flexibility, open-mindedness, and ability to multi-task [13, p. 131]. Among the factors of success of Software Engineering specialists, the authors [41] distinguish such components of competence as the level of abstract thinking (theoretical analysis), analytical thinking, the ability to concentrate, expressiveness (the ability to express one's own ideas to others in acceptable forms) and the ability to visualize (thought modelling, determination ways to "observe the invisible") [41, p. 167].

Ability to apply knowledge in practical situations
Sanjay Goel adds the ability to apply knowledge in the list of decisive competences of a Software Engineering Specialist [13, p. 57]. According to Vladyslav S. Kruhlyk, this competency is a component of the personal and professional competence of a Software Engineering specialist, which he associates with the lability of thought processes: "this property is important in the professional activities of programmers when there is often a need to complete their tasks quickly, ability to abstract, identify the main features in the subject of perception, switching from one work task to another without loss of productivity" [24, p. 149].

Ability to communicate in native language
"The defining feature of a successful programmer is the level of his verbal abilities -the higher it is, the more success the programmer will achieve in programming" [14, p. 12]. Marina S. Orlova submits that the professional communicative qualities of programmers include the ability to purposefully organize communication, listen to the opinions of others with understanding, the ability to discuss acute problems in a positive emotional mood and to mediate between conflicting individuals, the ability to correctly respond to various communication situations in the course of professional activity [33, p. 8] and other components professional communicative competence as the ability to build an effective focused professional interaction on the basis of a body of knowledge, abilities, and skills in the sphere of communication [33, p. 11]. The author distinguishes two goals of teaching programming in the process of professional training: 1) mastering students a culture of thinking and the ability to present the results of their professional activities in writing and orally; 2) professional training, which determines the need for the regulatory and technical features of the interaction between man and technology) [2, p. 11].
Ravzhaa Narantcetceg identifies the information and communication competence of foreign students as a component of the professional competence of Software Engineering specialists and indicates the following principles for setting up specialized terminology in bilingual education: the principle of using semantic and structural calques in translation; the principle of reliance on the native language to create new terms in the setup and enrichment of terminology; the principle of terminologisation of non-terms; the principle of combining the achievements of various industries for creation a joint terminology [38, p. 9-10].
Japan Accreditation Board for Engineering Education distinguishes communication skills including logical writing, presentation and debating among the common criteria for accreditation of professional education programs applicable in the years 2019 and among the key general engineering competencies in later years [19, p. 1]. Sanjay Goel analyzes the results of a survey of employers, including communication skills of the 10 most important engineering and general professional competencies of a Software Engineering specialist [13, p. 37], indicates that "the communication needs of software developers are very different from the communications needs of sales or marketing professionals. ... It mainly involves listening with understanding and empathy. The communication competence of software developers encompasses the need to communicate their difficulties and vision to their clients, management, colleagues, and end-users, and also preparing technical documentation, and also end-user documentation. One needs to keep himself in the shoes of the end-user to give a useful product. Communication encourages the exchange of ideas and project related knowledge among the people engaged in the project: clients, managers, and developers" [13, p. 106]. Communication competency is connected with ability to work in teams, listening skills, "be the customer" mentality, persuasion, negotiation, consensus building, and conflict resolution skills, mentoring, coaching, and training skills, organizational skills.

Ability to communicate in a foreign language
Sanjay Goel analyzes the results of a survey of Indian employers and includes English language skills in the list of 10 most important engineering and general professional competencies of a Software Engineering specialist [13, p. 37]. It should be noted that English is one of the two official languages and the language of international communication in India.
Maiia V. Bernavskaia points out that in the system of training competitive in the labour market specialists, the role of a foreign language significantly increases, knowledge of which becomes an integral part of the professional competence of Software Engineering specialists, and emphasizes the clearly expressed English-language nature of professional communication: "This fact is confirmed by that all algorithmic programming languages that are a means of a programmer's work, based on linguistic constructions of the English language, the speed of memorizing and interpreting programming language constructs depends on the level of proficiency in these constructions. In addition, the proficient in English programmer is improving the reaction of communication with the operating system during the interactive dialogue, the problem of setting up and editing the program and many other professional aspects of the activities of the software engineer is solved much faster. Today … the programmer's willingness to communicate in a foreign language is not only welcomed but also becomes an integral attribute of his professionalism" [2, p. 3]. Svetlana V. Diudiakova and Larisa M. Gorina point out that ensuring the graduate's competitiveness in the labour market directly depends on his knowledge of the English-speaking thesaurus in special disciplines, and highlight the combination of relevant skills needed in the professional work of future programmers: in the first place is the ability to read English texts (fluent effective viewing of authentic professional material for understanding its essence, quick detection of the necessary information, competent foreign language annotation, discussion of professionally obtained information), in the second -the ability to write in English (reviewing, expressing one's own motivated opinion on a specific professional issue, correctly writing foreign professional documentation), in the third -the ability to understand English by ear (quickly highlight the logic of authentic professional information, critical perception, analysis, effective response even in stressful situations), and in fourth place -the ability to pronounce English words (conducting presentations about the prepared perspective and critical projects using multimedia technologies, conducting effective foreign language spontaneous discourse on professional issues in compliance with the cross-cultural standards) [9, p. 3, 10, 11; 14, p. 13].
Larisa M. Gorina found that in relation to foreign language skills and abilities in professional competence, which are formed in student programmers due to using English language, the general part of the "professional competence" concept is structured into the following components: professional foreign language (using a professional English-language component as an integral unit of professional competence); professional foreign language communicative (experience at high quality and logical solving multi-purpose tasks about professional foreign language functionality); professional psychological (confirmed deterministic level of foreign language proficiency, due to requirements made by employers, cause by high variability of the professional environment, based on the stability, confidence and stress resistance of programmers in the process of foreign language professional activities, even in unforeseen situations). The author proposes a technology for the formation of a set of foreign language skills and abilities in the professional competence of student programmers (developed skills to logically, constructively and quickly perform multi-purpose tasks, carry out effective selection, optimal coherence in organizing an authentic professional material competently orally and in writing, fluently use Englishspeaking structures in variable sentences on professional topics, independently control the specifics of English pronunciation, intonation, the pace of speaking, the variability of the style spectra used when presenting professional information which aimed at achieving the stated goals and positive results), focused on the logical, consistent introduction of foreign language material on professionally-oriented topics, which minimizes the time spent (in the implementation of promising critical computer science projects using multimedia resources) [14].
Inna V. Chirva formulated the main methodological requirements for computer programs with differentiated training for future English-speaking programmers: computer educational program in English should be an integrated part of the language discipline, organically connected with its structure and content, as well as with the applied methodology, creating an integral whole and serving as a means of supporting it; focus on the formation of skills and abilities of English dialogical speech; compliance with the principle of communicativeness; creation of favourable conditions for each student to master educational material in accordance with the level of their knowledge and abilities; the organization of branched feedback in order to manage the educational work of students in the process of passing each individual trajectory of learning; professional orientation of the program content; inclusion in the training content of the regional geographical aspect; the use of multimedia tools to create a controlled language environment; warnings of common mistakes, etc. [6].

Ability to learn and acquire up-to-date knowledge
Japan Accreditation Board for Engineering Education distinguishes an ability to learn independently and continuously among the common criteria for accreditation of professional education programs applicable in the years 2019 and among the key general engineering competencies in later years [19, p. 1]. According to Vladyslav S. Kruhlyk, this competency is a component of the personal professional competence of a Software Engineering specialist, which he associates with the self-learning ability, namely focused, autonomous educational and cognitive activities of future software engineers aimed at independently acquiring and applying knowledge in the field: "selflearning ability implies understanding by future software engineers of the importance of updating professional information and implementing actions to monitor new products in the professional sphere, systematization and generalization of new knowledge in the IT field" [24, p. 150].

Ability to search, process and analyze information from various sources
In the structure of the professional competencies of a competitive specialist, Irina G. Frizen [11] identifies information competence based on the subject's ability to efficiently search, use and evaluate information. According to Larisa M. Gorina, the basis for the formation of this competency is the communicative component of professional competency [14, p. 13], which Mariia M. Gladysheva associates with the formation of research skills through skill assignments: navigate in a variety of software tools while searching for new information; determine the most effective methods of collecting and processing information; develop your own algorithm to solve the problem; prove the program correctness; evaluate the efficiency of the created software product; plan an experiment and process experimental data. To do this, students analyze diploma works that contain a description and results of the experiment, analysis of abstracts, course works, scientific articles, reports, etc. [12, p. 16].
Liudmila B. Tarenko identifies the analytical skills of future IT professionals, the content of which is combinations of special intellectual and analyticalsynthetic processes aimed at achieving qualitative personality changes and contribute to the growth of professional skills of a specialist [49, p. 7]. The conditions for the successful formation of the analytical skills of future specialists are the use of developing tasks, the students' independent work focuses on research activities, personality-oriented interaction between teachers and students based on the project method [49, p. 8]. The author refers cognitive skills (ability to operate with signs and symbols; ability to use generalized structures; ability to build dynamic models of the problem-solving process) and metacognitive skills that carry out self-regulation (the breadth of transfer of mental actions to new conditions; readiness for planning; ability to set new goals and put forward new ideas; ability to develop and use original ways of solving problems in various situations, including non-standard ones; ability to identify the difficulties of cognitive activities; ability and skills of self-control) to the analytical skills structure.
Dzhamilia A. Mustafina refers the professionalpersonal competencies to the structure of the competitiveness of a Software Engineering specialist (competency that ensures the efficiency of his professional activities and behaviours in a competitive environment): values and meanings of professional activities; knowledge, skills and abilities; decisionmaking experience in market situations; information competence, namely the ability to find information, which ensures the effective decision-making; engineering thinking, which includes a reflection of the quality of the process and the result of design and construction activities from the standpoint of market requirements; social competencies such as legal and communicative [29, p. 8-9].
Viktor P. Agaltcov considers the tetrad "knowledgetargeted search -analysis and synthesis of search results -experimental verification of the found solution" [1, p. 11] as the basis for an interactive approach to training Software Engineering specialists.

Ability to work in a team
This competency is closely related to the professional communicative competence of software engineering specialist, the basis of which is: a) communicative knowledge -knowledge about the types and phases, methods and techniques of communication, their capabilities and limitations, as well as knowledge about yourself (about the degree of development of your own various communicative skills, the efficiency of the application and own execution of effective communication methods) and about other people (knowledge about the degree of efficiency of certain methods regarding various people and situations); b) communicative skills -mastery of psychological and practical activity systems that allow you to purposefully regulate the subject's communicative activities on the basis of his communicative knowledge and abilities, for example, ability to form a message text in an adequate form, speech skills, ability to harmonize external and internal manifestations, ability receive feedback, ability to overcome various communication barriers, etc. [33, p. 12]. Marina S. Orlova points out that the development of professional communicative competence is facilitated by the implementation of complex group projects, which are also a means of training teamwork skills, ability to communicate with colleagues, listen to the opinions of others, defend one's point of view, competently present the project and colleagues' contribution in it [33, p. 18].
Sanjay Goel [13, p. 37, 57] and Japan Accreditation Board for Engineering Education include an ability to work in a team in the list of critical general engineering competencies of a Software Engineering specialist [19, p. 2]. As noted by Sanjay Goel, "as compared to the other kinds of engineering industries, the software industry places a much deeper level emphasis on group work. Large multi-locational, multi-cultural global teams concurrently work in different parts of the world to meet the requirements of clients of varied cultural backgrounds. The majority of an engineer's time in the software industry is spent working with other programmers. The nature of group work among software engineers is not limited to process-centered coordination" [13, p. 70].

Ability to act on the basis of ethical considerations
Liudmila N. Kanishcheva points to the need for developing personal-competency experience of future Software Engineering specialists, which reflects the peculiarities of humanitarian-oriented professional activities based on the principles of the absolute value of human life and human personality, people's safety, ethics and social ecology [21, p. 6-7].
Elena N. Ishakova includes a moral component in the structure of humanitarian knowledge of Software Engineering specialists that contains the most general principles of activity culture in general and professional in particular, which provide reliability and predictability of actions [17, p. 11].
Japan Accreditation Board for Engineering Education in criteria for accreditation of computing & IT-related education programs at bachelor level among key competencies puts in second place ability of understanding of effects and impact of professional activities on society and nature, and of professionals' social responsibility: "This item indicates professional ethics such as, relationship among technologies, society and nature, and understanding of professionals' social responsibility. Professional ethics of the ICT professionals are not so much different from professionals of the other fields however; sufficient understanding on issues related to copyright shall be particularly considered as ICT-oriented. As for the technologies, safety is critically important issue however in terms of information technology, "Information Security" is specific additional concern which requires sufficient understand." [20, p. 6].
Sanjay Goel offers the following principles of professional ethics for a Software Engineering Specialist [13, p. 52-53]: 1. The specialist must fulfil his professional duties, putting safety, health and welfare of the public in the first place.
2. The specialist must undertake technological tasks for others only if qualified by training or experience.
3. The specialist must act for each employer or client as faithful agents or trustees.
4. The specialist must issue public statements only in an objective and truthful manner.
5. The specialist must avoid improper solicitation of professional assignments.
6. The specialist shall continue to develop relevant skill, knowledge, and expertise throughout their careers and shall actively assist and encourage those under their direction to do likewise.
7. The specialist must promote an ethical approach among colleagues.
8. The specialist must continuously strive for quality, excellence, and adherence to highest professional standards.
Edward J. O'Boyle [32] proposed the six-step ethical decision-making process for computing professionals. The first stage involves moral perception and personal knowledge of the moral good, which depends on the awareness of the ethical problem and personal responsibility for it. The second stage is moral discernment and personal ability to think logically, which allows a person to clearly define an ethical problem. The third stage is moral resolution and personal ability to think analytically for formulating an individual position on the stated problem, acceptable to one's own conscience. The fourth stage is a moral assessment and personal ability to assess one's freedom (IT specialists must know about new developments, especially in the context of technology history, in order to properly handle new freedoms). The fifth stage concerns moral decision and personal knowledge of one's duties. The final step is moral action and personal willingness to follow one's intellect [32, p. 272-274].

Valentina
A. Danilenkova understands the environmental competence of future engineers as the creation of a system of knowledge, attitudes and beliefs necessary for general orientation in an environmental situation, prevention or limitation of environmental risk activities aimed at understanding the moral responsibility of a person for the state of the environment in all types of engineering activities [8].
Sanjay Goel includes (i) awareness of environmental issues, and (ii) sensitivity towards socio-economic aspects for sustainable technological development to the general professional competencies of a Software Engineering specialist [13, p. 36]. In the list of professional competencies for Software Engineering specialists at the University of Victoria, the group of competencies related to professional practice is consistent with the standards and ethical code of the Association of Professional Engineers and Geologists of British Columbia. The first professional competence of a Software Engineering specialist is to ensure the safety, health and well-being of the population, environmental protection and the promotion of health and safety in the workplace [7].
Mario Gerardo Piattini Velthuis and Coral Calero Muñoz [4] indicate that ICT, "on the one hand, it helps organisations to tackle environmental issues (using video conferences, dematerialisation, more efficient processes, etc.); on the other hand, technology itself is often responsible for major environmental degradation (amounts of energy consumed by the engineering processes used to manufacture products). This dual aspect of technology means that organisations also face two challenges: they need to have more sustainable processes and they must produce products that contribute to a more sustainable society" [5, p. 4]. Initiatives that promote respect for the environment through ICT, IT, software, etc., are called environmental or Green ICT/IT/Software [4, p. 5], linked with the concept of sustainable development.

Ability to act in a socially responsible and conscious manner
Speaking about the future foreign programmer's information and communication professional environment, Iuliia A. Bushmanova defines the community of professional open-source software developers as subjects of such an environment, namely "social groups that are formed by highly skilled programmers from around the world who create software on a voluntary basis" [3, p. 13].
Liudmila N. Kanishcheva also points out the socially-oriented nature of software projects, which requires future Software Engineering specialists to develop skills to identify the main consequences that the project may have for society, public morality, human health and environmental safety [21, p. 7-8]. Dmytro E. Schedrolosev identifies a socially significant value attitude to events, people and himself among the components of professional competence of a future software engineer [40].
Japan Accreditation Board for Engineering Education among common criteria for accreditation of professional education programs applicable in the years 2019 and later among key general engineering competencies puts an ability of understanding of effects and impacts of professional activities to the society and to the nature of, and understanding of professionals' social contributions and responsibilities [19, p. 1].
Among the structural components of the competitiveness of a Software Engineering specialist, Dzhamilia A. Mustafina distinguishes responsibility, which manifests itself in the moral qualities and humanitarian expertise of technical projects, and social competencies: legal (knowledge of the guidance and regulatory materials governing the development of algorithms and programs and the use of computer technology in processing information, the fundamentals of labour legislation, labour protection rules and norms, ways to solve legal problems) and also communicative which provides the ability to conduct discussions in the professional (formal) language [29, p. 14].
David Lorge Parnas [35] distinguishes the personal, social, and professional responsibility of a Software Engineering Specialist: -personal responsibilities are general obligations towards other individuals; most are shared by all persons (e.g. honesty, concern for others); -social responsibilities are responsibilities towards society as a whole: "We have a debt to repay because society has supported us when we needed it" (e.g. environmental activism, peace activism, national defence); -professional responsibilities are additional responsibilities shared by members of a particular profession.

Ability to realize the rights and obligations as a member of society, to recognize the civil society values and the need for its sustainable development, the rule of law, human rights and freedoms
Characterizing the social responsibility of software development, Diomidis Spinellis indicates that "... a software developer, for better or worse ... building the fabric of our society, tomorrow's world. ... Many of the things you do have ethical, social, and political implications. ... On a larger scale, new digital platforms, products, and services might disrupt the livelihood or working conditions of millions. Also, machine-learning algorithms might promote discrimination or produce invalid results in ways that are difficult to detect and analyze" [44, p. 4].
To build this competency, Diomidis Spinellis offers: 1) to study history, philosophy, political science, sociology, ethics and art; 2) to talk about the wider consequences of their own labor: "What will happen when your shiny prototype gets widely deployed or stops being maintained? Will your new web-based service disadvantage a particular minority? What if all the data you're gathering falls into the hands of organized crime or a totalitarian government? Is the cyberweapon you're developing more likely to be used for defense or for offensive actions and terrorism that can hurt countless civilians? What if criminals can gain control of the lawenforcement backdoor access you're providing? How will your new social-interaction feature affect children or families?" [44, p. 5]; 3) to act responsibly: "Strive to design and implement the software you work on so that it becomes a force for good rather than evil. Don't work for organizations whose mission is intrinsically detrimental to society. If your organization develops software that will harm society, speak up. ... seek alternatives, deliberate, and think through your actions. ... By depriving evildoers of your talent, you contribute to everyone's well-being. ... Also, if you see that your organization develops harmful software, try ... argue that in the medium or long term, being socially responsible might benefit your organization. Or, you can come up with win-win options: software that's good for both your organization and society" [44, p. 6]; 4) to teach others: "Modern software is mindnumbingly complex, and it often interacts with our world in subtle, unanticipated ways. As a software developer, you might understand these things ..., but your colleagues from other backgrounds and the public at large might not. Help by uncovering, explaining, and publicizing any issues... Discuss with your colleagues, post in social networks, write articles... As an educated professional, you have the duty to return to society part of the education it has endowed you with. And, if you're an educator, strive to include the topics in your lectures and the curriculum" [44, p. 6]; 5) to communicate with others, establish social connections: "Engage with your professional societies to raise awareness of these issues [social responsibility] and develop defence and support mechanisms... Mingle with people outside your (probably privileged) circle... Write free software that could help our world become a better place. Work with think tanks, civil-society organizations, and political parties to draft and promote sensible policies. Volunteer for office and, it should go without saying, get out and vote" [44, p. 6].
Thus, the last two competencies are not just interrelated: in fact, it is one competency, which is confirmed by the international standard ISO 26000: 2010 "Guidance on social responsibility", which links corporate social responsibility and sustainable development of society. This International Standard is intended to assist organizations in contributing to sustainable development -development that meets the needs of the present without compromising the ability of future generations to meet their own needs [16, p. 3]. Sustainable development is a combination of the goals of high quality of life, health and well-being with social justice and the Earth's ability to support life in all its diversity, with social, economic and environmental goals being interconnected and mutually supported [16, p. 4].
Therefore, corporate social responsibility can be defined through the responsibility of the organization for decisions and activities (products, services and processes) impact on society and environment through transparent and ethical behaviour, which contributes to sustainable development, including the health and wellbeing of society; takes into account the expectations of stakeholders; complies with the law and is consistent with international standards; integrated into the activities of the entire organization and is used in its relationships (the activities of the organization within its sphere of influence) [16, p. 3].
The Software Engineering Specialist, who works on the basis of the relevant code of ethics, already contributes significantly to the preservation of values and the sustainable development of civil society. Standard ISO 26000: 2010 includes ethical behaviour and a commitment to preserving the environment towards social responsibility, proposing organizations to comply with the following principles [16, p. 9-12]: 1. Accountability for influencing society, the economy and environment, accepting criticism and responding to it.
2. Transparency in decisions and activities that affect society and the environment.
3. Ethical behaviour based on values such as honesty, fairness and integrity, caring for people, animals and the environment. 4. Respect for stakeholder interests. 5. Respect for the rule of law: equality before the law -not a single individual and organization is above the law, and the government is also subject to the law. 6. Respect for international norms of behaviour so that in cases where the legislation of the country does not provide adequate environmental and social restrictions, the organization adheres to at least the minimum international standards. 7. Respect for human rights (civil, political, economic, social, cultural, labour), recognition of their importance and universality, prevention of discrimination.
The Standard defines a number of issues related to various aspects of socially responsible organizational management: -labour relations: working conditions, social protection, social dialogue, labour protection and safety at the workplace, human development and training at the workplace; -environment: pollution prevention, sustainable resource use, climate change mitigation and adaptation, protection and recovering the environment; -fair business practices: fight against corruption, responsible political involvement, fair competition, promotion of social responsibility within the sphere of influence, respect for property rights; -consumer issues: fair practices in marketing, providing information and contracting, protecting the health and safety of consumers, continuous consumption, data protection and consumer privacy, access to essential services, education and awareness-raising; -participation in communities life and their development through education and culture, employment and skills development, technology development, wealth and income creation, health and social investments.
Сonsidering the formation of the social and professional activities of the personality of a student of a technical institution of higher education in the context of civil society reform, Tatiana V. Solonshchikova highlights personality traits corresponding to competencies [43, p. 16-17]: -social and civic personality traits (social and civic activity and responsibility, patriotism, tolerance, etc.); -professionally oriented personality traits (love for the profession, activity in the professional sphere, initiative, self-confidence as a professional, communicability); -professional and labour personality traits (conscientiousness, responsibility, ability to fulfil commitments, professional duty, personal leadership, etc.); -professional and moral personality traits (humanism, collectivism, justice, goodwill, honesty, integrity, tact, intelligence); -general cultural personality traits (cognitive activity and independence, aesthetic culture, culture of appearance, language, breadth of interests and spiritual needs, creativity, etc.).
These qualities are the basis for the building of the following competence. Japan Accreditation Board for Engineering Education in criteria for accreditation of computing & IT-related education programs at bachelor level among key competencies puts at the first place ability of multidimensional thinking with knowledge from global perspective: "this item indicates education and ability to think required for the autonomous professionals who engage to build sustainable society, to change it from materialistic to one put emphasis on spiritual values and who are able to perform internationally" [20, p. 6].
Сharacterizing the subjective health status of IT professionals (including Software Engineering specialists), Maki Tominaga, Takashi Asakura, and Tsuyoshi Akiyama found that quantitative and qualitative workload was the most important predictor of both psychological disorders and cumulative symptoms of fatigue as subjective variables health conditions. Career growth and future uncertainty among other macro stresses were the most important predictors not only for staff turnover but also for the subjective health state of IT specialists [50, p. 478-479]. "Therefore, health management measures for computer professionals should include technical education corresponding to the accelerating technological innovation, provision of opportunities of personnel training with consideration given to various career paths such as management and related departments, and the announcement of a policy of medium-to long-term career development" [50, p. 479]. The results of this study confirm the concept of "organizational health", according to which organizational characteristics (such as management practices, organizational culture/climate, and organizational values) are important factors affecting "organizational health" such as workers' health/satisfaction and performance [50, p. 483].
Сharacterizing the physical and mental health of Software Engineering specialists [30], Mariko Nishikitani, Mutsuhiro Nakao, Kanae Karita, Kyoko Nomura and Eiji Yano indicate that the specific nature of their activities creates great psychophysiological stresses on the body (vision, hearing, muscles of the arms and hands, legs and torso), so they feel discomfort and decreased performance. Aleksei I. Kardashevskii points out that they need to learn how to organize their own behaviour, paying attention to professional selfpreservation, the program of which may include: readiness for continuous self-improvement; personal responsibility for their own health; developing adequate means to overcome undesirable conditions; mastering the methods of mental self-regulation and normalizing the level of performance, eliminating the consequences of professional fatigue; prevention of possible personal deformations in your profession; excluding selfdestructive behavioural strategies from your life [22, p. 3]. The author refers professional health-saving competencies to the ability in conducting short breaks for exercises to relieve eye fatigue in the process of professional activities: the ability to quickly, directly at the workplace, conduct periodic procedures for unloading the muscles of the hands, arms and fingers; ability to carry out exercises in a timely manner to relieve the fatigue of the back and legs muscles.
Galina E. Siakina points out that physical activity is a natural and specially organized person activity ensures his successful physical and mental development: "Properly selected and optimally planned physical activities contribute to maintaining a high functional level of all systems, provide sufficient general and special workability, make human life more economical, prevent the development of many pathological processes in the body. Physical activity promotes the assimilation of information coming from the external environment through sensory systems. ... Physical exercise is a means of outdoor activity in educational activities. Muscle movements create a huge number of nerve impulses, improving blood circulation in the brain. Available physical exertion has a positive effect on mental activity." [39, p. 10] Tatiana E. Veselkina indicates the following main factors contributing to the increase in the efficiency of students independent physical exercises: a) the formation of students' self-monitoring skills for the health and the dynamics of the physical qualities development at the initial stages of training in institutions of higher education; b) the creation of interactive methods of interaction between teacher and student using modern information technologies that allow teachers to monitor and actively influence the quality and safety of conducting independent classes [54, p. 19-20].
Aivar K. Khashkhanok points out that outdoor activity has a positive effect on health and well-being, mood and speed of recovery after work, on the attitude to physical activity and physical education, helps to increase working capacity and build healthy lifestyle skills [23, p. 3]. Leisure activities using physical exercises more than all other types of recreational activities correspond to the characteristics of a healthy lifestyle and allow you to achieve the necessary volumes of physical activity [23, p. 26].

Ability to apply fundamental and interdisciplinary knowledge to successfully solve software engineering problems
Analyzing the results of a survey of employers, Sanjay Goel puts problem-solving skills in the first place from 10 most important engineering and general professional competencies Software Engineering specialist [13, p. 37], and considers them as the key skills. The author includes knowledge of the strategy for solving problems and conceptual knowledge to the knowledge that relates to this competence. Japan Accreditation Board for Engineering Education, in common criteria for accreditation of professional education programs applicable in the year 2019 and later, puts in third place among key general engineering competencies knowledge of mathematics, natural science and information technology, and ability to apply [19, p. 1]. The criteria for accreditation of undergraduate IT programs specify that knowledge of mathematics including discrete mathematics, probability and statistics and natural sciences required in the related professional fields [20, p. 7].
On the basis of a professiographic and contextual approach to building a model for training programmers, Svetlana A. Gudkova [15] showed the importance of a foreign language not only as a means of communication in the professional sphere of a programmer's activities but also its role in constructing of formal languages constructions (based on the identity of morphological, syntactic, semantic constructions of the English language and programming languages), which is an integral attribute of the professional competence of programmers. The concept of "language" is considered by the author in the meanings: language as a sign system; language as a formal system (machine language, translators, etc.); language as a means of communication of "subject-subject", "object-object" and "subjectobject" type; language as a high-level programming language; language as a means of data processing of information systems (SQL).
Mariia S. Lezhneva notes that the qualification of an IT specialist depends on his ability to interprofessional interaction with representatives of other specialities for carrying out integrated projects, which determine the success of the country's economic development: "the main directions of training IT specialists ... should be: fundamental mathematical training; development of professional culture; readiness for continuous cognitive activity, both within the profession and beyond; formation of the motivational basis of professional interaction" [25, p. 12].
Minevali M. Minshin defines the professional and applied mathematical competence of software developers as a systematic personality formation of an engineer, which contains the capabilities of the thinking algorithm, the willingness to creatively use mathematical tools for solving engineering and practical problems in the field of professional activity and motivational need for continuous mathematical self-study and selfdevelopment [28, p. 7]. Characterizing the competent structure of specialist training results, the author determines the competencies necessary for successfully solving software engineering problems, including the ability to use linear algebra to describe objects and systems; generalization, perception of information, goal setting and choice of solutions to IT problems; analysis of professional and socially significant problems and processes associated with the computerization of production; self-development and improving the quality of automated systems design results; identification and development of algorithms; application of analogies and generalizations; application of modern programming technologies; database optimization based on mathematical criteria; the use of mathematical logic in the development of programs; the use of various calculus systems, coding theory and error correction codes, as well as the development of new software products based on mathematical models.
Сonsidering the use of mathematical methods in the professional activities of Software Engineering specialist, Elena R. Dubenetckaia suggests considering the use of mathematical statistics methods for calculating indicators of statistical characteristics of industry information, mathematical modelling methods for constructing information-logical models of developed software products, methods of mathematical logic for computing logical expressions when developing sectorspecific software, and others [10, p. 9-10]. The author defines the following competencies for the application of mathematical methods in professional activities: -the ability to choose mathematical methods for performing professional tasks (knowledge of the basic concepts of mathematical methods and the features of their use in professional activities, the ability to correlate the mathematical method to the data of the solving professional task and identify the capabilities of the software product that ensure its implementation, practical experience in the implementation of mentioned knowledge and skills); -willingness to apply mathematical methods to solve professional problems (knowledge of the features of the application of mathematical statistics, mathematical modelling, mathematical logic and numerical methods; the ability to apply: mathematical statistics methods for statistical analysis of industry information and calculation of indicators of its statistical characteristics, processing of measurement data and monitoring of operating parameters industry-specific equipment, calculation of quality characteristics of a sector-specific software product, calculating the cost, timing and risks of project operations; mathematical modelling methods for constructing information-logical and graphical models, creating dynamic and interactive content of industry-specific information resources; numerical methods for performing various computational operations in the processing of industry information; mathematical logic methods for calculating logical expressions in the development of industry-specific software, making a logical operation when determining the risks in project activities; practical experience in applying the specified knowledge and skills to solve professional problems); -willingness to use software products for the application of mathematical methods while performing professional tasks (knowledge of the capabilities of software products and the features of their implementation in the process of applying mathematical methods, the ability to: collect, analyze and process industry information; computational activities based on the calculation of the quality characteristics of an industry-oriented software product, cost, terms and risks of project operations; modelling and visualization of information objects on the screen; building graphs and charts that describe various indicators; developing sector-specific software and information resources; practical experience in applying the specified knowledge and skills to solve professional problems) [10, p. 16-17].
Svitlana I. Tyshchenko identifies the conditions under which the integration of mathematical and special disciplines content will increase the efficiency of professional training of future Software Engineering specialists: 1) an integrative approach to the study of mathematical and special disciplines; 2) strengthening the professional-applied nature of mathematical knowledge and skills while studying special disciplines; 3) coordination of the study of the selected content of mathematics material in the classroom and extracurricular activities with the aim of knowledge creation in special disciplines; 4) intensification of independent educational activities by applying a methodically balanced system of adjusting professionally directed knowledge in mathematics [52].
Elena N. Ishakova considers the blocks of humanitarian knowledge that a programmer needs to successfully perform professional functions at all stages of engineering: 1) at the stage of strategic planning and analysis of software requirements, humanitarian knowledge allows a software engineer to understand the social order, that is, social and production technical need for this software tool, based on the assessment of social, economic, environmental, ergonomic parameters of the software system and the consequences of its implementation; 2) design, implementation, testing and debugging of the software system is carried out at the stage of creating innovative software. The efficient implementation of these processes requires updating the following components of humanitarian knowledge: scientific search methodology, programming methodology, information engineering, psychology of thinking and perception, structural and applied linguistics, cognitive science (knowledge engineering), system analysis, decision theory, etc. The stage of software maintenance and operation includes user service and the elimination of possible minor errors. At this stage humanitarian knowledge allows the software engineer to evaluate the possible savings of material, human, financial resources, their optimization, take into account the physiological and hygienic characteristics of users' labour, legal and ethical aspects of the protection of software products and databases [17, p. 11-12].
2.14 Ability to evaluate and take into account economic, social, technological and environmental factors affecting the sphere of professional activity Liudmila N. Kanishcheva points out that forecasting and assessing the consequences of software projects implementation, impact on environmental safety, society, public morality, and human security actualize the problem of developing experience of future Software Engineering specialists in the humanitarian expertise of design and technical solutions, which is aimed at identifying compliance proposed solution to social, moral, environmental, cultural, aesthetic and other humanitarian standards [21, p. 3]. The humanitarian expertise of the project includes three main blocks: 1) the economic block: the relevance of it for the modern economy development; scientific equipment of the project, compliance with norms and standards in terms of technical performance; the integrity of the project, involves goal coordination, project objectives, implementation plan, the availability and rational selection of necessary resources; 2) the social block: environmental friendliness of the project; social security (compliance with legal norms); humanitarian orientation (absolute value and priority of human life and health, adherence to moral standards) 3) aesthetic block: creativity, flexibility and dynamism of the developed project; aesthetic appeal [21, p. 23].
According to Galina V. Prozorova, the formation of bachelors professional competencies taking into account the industry specifics of the region's enterprises is a process of "interconnected mastery of professional knowledge, generalized methods, the experience of professional activities and the development of a positive motivational-value attitude to professional activity, based on differentiation and complementarity of the basic training and preparation for the performance of professional tasks in a specific area of economy, relevant for the region" [37, p. 9-10]. The author proposes to orient the educational programs of bachelor training to sector-specifics enterprises in the region: 1) determining professional tasks that require special knowledge and skills in a specific field of activity (economic sector or knowledge sector); 2) clarification of the content of the identified professional tasks at the sector-specific enterprises, relevant for the region; 3) the definition of special knowledge and skills necessary to perform the identified professional tasks at the enterprises of the region, as components of professional competencies; 4) the inclusion of students in educational activities for the development of generalized methods for performing professional tasks specific to regional enterprises, through the development of a system of multilevel educational and professional tasks [37, p. 10, 15]. With this approach, graduates are more motivated to find employment in the region, which contributes to its socioeconomic development.
Japan Accreditation Board for Engineering Education in criteria for accreditation of computing & IT-related education programs at bachelor level distinguishes the design ability to respond to requirements of the society by utilizing various sciences, technologies and information among key competencies. "This item expects comprehensive ability required to apply information science and technology to the problemsolving process. Therefore, it means "design ability to respond to requirements of the society by utilizing various information sciences and technologies". Design ability is composed of items such as problem analysis, modelization, extract and define requirements and design, implement and evaluate systems, processes, components and programs. ... Design ability in practice includes: conceptualize ideas; identify and formulate problems; comprehensively apply various disciplines and technologies; create ideas; identify issues from the view points of public health and safety, culture, economics, environment, ethics etc. and find solutions to the problem under these constraints; verify the results; demonstrate the ideas in drawings, sentences, equations, programs etc.; communicate with others; collaborate with others (team work); and continuously plan and implement as planned, and it is expected to perform all of those in a holistic manner" [20, p. 7-8].

Ability for lifelong learning
Dmytro E. Schedrolosev [40] distinguishes a readiness for creative work and constant self-education among the components of professional competence of a future software engineer.
Liudmyla A. Matviychuk points out that the efficiency of the future professional activities of software engineers is determined by the need to form a modern scientific worldview, focusing on continuous self-improvement. By professional knowledge of future software engineers, the author understands the existing step-by-step system of "theoretical and practical knowledge of the professional activity, the elements of which are interconnected and depend on the student's desire to achieve a high level of professionalism in the chosen field of activity and ensure career growth" [27].
Svitlana I. Tyshchenko revealed that the modern criterion for effective professional training of Software Engineering specialist is the ability to update knowledge and skills throughout his life in accordance with the constantly growing requirements for his competency characteristics [52].
Nina Y. Padalko defines the professional skills of the future programmer as a dynamic education, including a system of scientific knowledge about the organization of solving various problems; awareness of future professional activities; the quality of assimilation of an indicative labour perspective; a set of professional skills that provide a high level of self-organization of professional activities [34].
Japan Accreditation Board for Engineering Education distinguishes ability of independent and lifelong learning among key competencies in criteria for accreditation of computing & IT-related education programs at bachelor level [20, p. 3].
Recommendations for the development of curricula for Software Engineering bachelors define the competency of continuous professional development as the study of new models, methods and technologies, as soon as they appear, and the understanding of the need for such continuous professional development: "students should demonstrate the presence of self-motivation to study during the life-long training program. Students should be encouraged to search for new knowledge and evaluate their usefulness and relevance in the process of professional training" [42, p. 21].
Among the professional ethics principles of Software Engineering specialist highlighted by Sanjay Goel [13, p. 52-53] sixth (specialist shall continue to develop relevant skill, knowledge, and expertise throughout their careers and shall actively assist and encourage those under their direction to do likewise) and eighth (specialist has to continuously strive for quality, excellence, and adherence to highest professional standards) principles are directly related to the building of this competency. Sanjay Goel points out that it is necessary for Software Engineering specialists to actively participate in lifelong learning for number of reasons [13, p. 146-147], in particular, the following: -the applications domains are highly diverse and continuously evolving, consequently software developers have to continuously learn more about these domains, mostly through self-learning, and work experience often without any long term formal education in the concerned domains; -various technological innovations and changing social trends are continuously and rapidly reshaping user expectations, understanding these continuously evolving expectations is very crucial for software developers; -the development technology and platforms keep changing constantly often without proper documentation and examples, hence, the developers need to explore the useful enhancements and changes themselves again usually without much formal training; -the developers usually have to understand other developers' work in order to extend, debug, maintain, integrate and/or re-engineer it; -creation of "simple and idiot-proof system interfaces" requires them to be curious about how an average person approaches technology.

Conclusion
The proposed competency system of software engineering specialist aimed at creating sustainable professional competence is not complete -it primarily includes general professional competencies that specify such key competences for lifelong learning as literacy competence, multilingual competence, mathematical competence and competence in science, technology and engineering, personal, social and learning to learn competence, citizenship competence, cultural awareness and expression competence. They form the fundamental social and humanitarian core of training a software engineering specialist, modules are attached to it and reflect the current state of software technologies development.