IJHSA

Search
Close this search box.

On this page

The Software Engineering Education in Computer Software Development with Big Data

By: Jian Chen1
1Education Information Center, Qingdao Hotel Management Vocational and Technical College, Qingdao 266100, Shandong, China.

Abstract

With the gradual improvement of the overall data context and the increase of the amount of data to be processed, the relationship between software projects and data processing becomes interdependent. In order to better adapt to wider data dissemination, software development technology is also gradually updated, and higher requirements are put forward for college engineering education courses. The article analyzes in detail the impact on software engineering education in the era of big data, and how to achieve software teaching reform by enriching the teaching content, strengthening the teaching staff, and finding scientific teaching methods, so as to effectively encourage the comprehensive software training of engineering college students and cultivate more outstanding talents for China. The experimental results show that the strategies in this paper can effectively improve the promotion of software engineering education and software development, and effectively improve the quality of software engineering students.

Copyright © 2023  Jian Chen. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

1. Introduction

Translated In recent years, the software industry has been growing with the development of science and technology, and its proportion in the national economy has also increased year by year. The contradiction between the strong demand for software and information technology service industry in various fields and the imbalance of software talent structure caused by industrial coordinated development, integration innovation and rapid iteration hinders the high-quality development of China’s software industry [1]. The development of emerging industries has rapidly increased the demand for software talents in related fields. The demand gap for talents in emerging industries such as big data, blockchain and industrial Internet has gradually expanded [2]. There is a shortage of leading talents, complex talents, and basic programming talents. On the other hand, the late starting point of basic software education, the lagging talent training mechanism, the inefficient integration system of “production, learning, research and application”, and the single and outdated curriculum of the new generation of information technology in colleges lead to insufficient supply of talents in China’s software industry, which is difficult to meet the actual needs of new software technologies and industrial development [3].

The software engineering course is a compulsory course for software engineering majors in various undergraduate colleges in China. Under the new situation of social and economic development, all walks of life need to use software, which requires many software design and development and related technical personnel [4]. At present, the teaching situation of the software engineering course is not satisfactory. The main problem is that there are many basic theories and practical methodologies in the course teaching content. The teaching content is too boring, which leads to the low participation of students in the classroom and the ineffective improvement of teaching quality. In addition, the classroom teaching mode is still the monologue classroom teaching centered on the traditional classroom teachers. Most of the education and teaching activities still focus on the “teaching” of teachers to impart knowledge to students [5]. Students mainly receive knowledge from teachers and do little by themselves. As a result, students have mastered software engineering knowledge but have no engineering awareness and cannot use what they have learned to develop actual software. The final teaching effect is poor [6]. In colleges that practice software engineering teaching cases, software engineering course is a professional compulsory course for students majoring in software in software colleges.

The demand of enterprises for talents with big data background is increasing year by year. According to relevant data statistics, at present, the number of enterprises with big data technology professionals in China is less than one third of the total number of enterprises [7]. A large number of technical talents are monopolized by large enterprises, and the demand of SMEs for relevant talents is increasing. Many enterprises hope that relevant IT technicians can receive relevant training with big data background. The market needs many professionals with big data background [8]. Since 2013, the era of big data background has officially started. With Alibaba’s sales breaking through 35 billion yuan in the Double 11 single day, the big data background has occupied the entire Internet at a fast speed. With the IT talents with big data background are conducive to better development in their work. The development of big data background has brought severe challenges to the software engineering teaching in colleges. Colleges cannot stick to the traditional teaching methods of software engineering. They should adapt to the trend, adjust the teaching content, cultivate more relevant talents with big data background, and provide excellent talents with big data background for enterprises [9].

The basic requirements of this course for students are to understand and master the basic theory, basic technology, and methods of software engineering, and learn to use systematic and standardized software engineering methods with engineering thinking to combine relevant knowledge, technology, management and software development environment, and apply them to actual software development and maintenance [10]. The problems mentioned above also exist in the teaching of software engineering courses in this university. In the actual teaching, most students are not interested in the course. In addition, the current software engineering teaching is mostly theoretical explanation, and the practice link class hours are limited, so the teaching effect is naturally unsatisfactory.

2. Methods

At that time, many Internet users swarmed into the social programming community. Take Github community as an example. Since it was launched in 2008, the number of registered users has exceeded 100000 only one year later, with an exponential growth every year [11]. Figure 1 shows the number of new users in the community every month, of which the peak number of new registered users in a single month is 330295. Large scale users and peripheral contributors are becoming new subjects in the open-source world.

As shown in Figure 2, the development methods in traditional curriculum practice mainly include file copy based or version library-based methods, among which the most common method is file copy based [12]. This method is mainly to use mobile storage media to realize the integration of code and document class curriculum practice project resources in the development process. The team members first copy the curriculum materials and collect curriculum assignments through mobile storage media, and then form the executable version and related documents of the software by summarizing and integrating the curriculum practice project resources [13] of different task divisions of small members, Finally, the executable version of software and related documents shall be submitted to the teacher or the designated platform by copying or uploading; The version library based method is mainly to create the version library of the project to be developed through Git and other version control systems [14].

Then, the version base changes of different task divisions are submitted from the workspace to the staging area through the command line. Finally, the person in charge updates the directory tree in the main version base. Although this kind of development method has brought convenience to a certain extent, it still has some limitations compared with the emerging modern industrial development model, such as the whole development process of students is not transparent enough, and the contribution of project team members is not easy to quantify and evaluate [15]. At the same time, this kind of development method lacks the due code review mechanism in the code submission process, and the development quality is difficult to be well guaranteed.

Before introducing software development into the teaching mode of software engineering courses, teachers of software engineering courses should go deep into relevant project posts to carry out hands-on experience and in-depth research. Teachers can work with real software development related staff to discuss the specific task categories in project development, and how to avoid the problems that many projects cannot be completed or cannot complete the expected quality according to the specified time and cost. Teachers should grasp the classic, practical and popular software development methods in advance, and constantly improve teachers’ professional ability and quality. Make more complete teaching preparation for better organization, guidance, help and promotion of project development, learning guidance and better teaching effect in the process of software engineering course development. The pattern design of software development in software engineering curriculum mainly combines the characteristics of software engineering curriculum and teaching characteristics to determine the construction principle, teaching objectives, teaching process and teaching evaluation methods of pattern design. After the pattern design is formed, the teaching is implemented in the software engineering course according to the pattern design. Finally, according to the results of the teaching implementation, teaching reflection is carried out to improve the pattern design of software development in software engineering courses. The thinking of teaching mode exploration in software engineering course is shown in Figure 3.

Based on the engineering certification standard, the reform of software engineering talent training focuses on students, takes the school enterprise cooperation as the platform, and takes the actual needs of the software industry as the background to reconstruct the talent training program based on big data. The proposed program adopts the method of “output oriented, reverse design, layer by layer decomposition”. The overall reform design scheme of the talent training program is shown in Figure 4. The program introduces the concept of big data, an industry oriented, student-centered, and continuously improved talent training model; The framework of the design scheme is demand oriented. According to the National Standards for the Teaching Quality of Undergraduate Specialty, the knowledge and skills required by the specialty are broken down, and the overall teaching objectives of the specialty are established, as shown in Table 1. In the scheme, project driven technical ability objectives are adopted, competition projects and scientific research projects are integrated into the design process, so as to cultivate students’ professional knowledge ability and engineering thinking quality; With the professional promotion ability and professional quality goal as the main line, the political quality, engineering professional quality, engineering professional knowledge and ability, and innovation ability are progressive level by level; Continuously improve, establish the evaluation mechanism and cycle, and the evaluation results must be used for improvement.

Table 1: Student expectations
Expected objectives Content of decomposed index points and ideological and political goals
T1: Political Objectives Cultivate correct world outlook, outlook on life, values, and good political, ideological, and moral qualities.
T2: Professional knowledge and ability objectives Comprehensively apply mathematics, natural science, professional foundation, and other discipline knowledge, be able to engage in basic analysis, design, and development of computer systems, and have basic knowledge of computer engineers
T3 Project Technical Capability Objectives Master software development, software testing and mobile computing technologies, be able to complete complex engineering projects of computer software application systems and have basic skills of computer engineers.
T4 Career Improvement Ability Objectives Be familiar with technical standards in computer science and technology, policies, laws and regulations of IT industry, and be able to cooperate with teams, track technology development, self-learning, improve technical ability, and have engineering and application innovation awareness.
T5: Professional quality objectives Understand the job responsibilities and professional requirements of the computer industry, clarify the relationship between computer engineering and social development and environment, have humanistic quality and sense of social responsibility, and have good professional ethics

According to the General Standards for Engineering Education Certification, there are also 12 graduation requirements, as shown in Table 2. The decomposition of graduation requirements indicators is based on the three aspects of process, output, and goal. The goal of software engineering talents is to have patriotism, responsibility and responsibility, software professional knowledge, basic skills, software engineering practice ability, good software engineering quality, teamwork spirit, and comprehensive quality of lifelong learning and cross-cultural communication educational institutions and other relevant industries are engaged in the software field and can reach the technical level of software engineers about 5 years after graduation.

Table 2: Graduation requirements of software engineering based on engineering certification standards
Graduation requirements Key points of main contents of decomposed indicators
D1: Engineering knowledge Software engineering thinking, solving complex engineering problems in computer engineering and application.
D2: Problem analysis Document research and analysis ability, application of basic principles of engineering science, application to solve problems, and obtaining effective conclusions
D3: Design/development solutions Design computer engineering application problems, propose solutions, develop systems with specific needs, and be innovative in design.
D4: Research questions Use scientific methods and scientific principles to analyze computer engineering problems and design experiments to obtain reasonable and effective conclusions.
D5: Use modern tools Computer tools and techniques are used to predict and simulate computer science engineering problems
D6: Engineering and Society Use professional technology to analyze and solve various social problems and assume social responsibilities.
D7: Environment and sustainable development The impact of evaluation on social and environmentally sustainable development in software engineering practice.
D8: Professional norms Fulfill social responsibilities and abide by professional ethics and norms of software engineering industry.
D9 Individuals and Teams Correct core values, assume the corresponding responsibilities and roles of individuals, team members and responsible persons.
D10: Communication A correct view of science and effective communication of software engineering issues have an international perspective.
D11: Project Management Correct scientific spirit, innovation and entrepreneurship awareness, software project management ability, software system RD and operation ability
D12: Lifelong learning Correct world outlook, life-long learning awareness, continuous renewal, and national integration ability

Among them, the teaching goal exists before the teaching content, and the curriculum should focus on the expected results. Based on the engineering education certification standards, combined with the expected training objectives for software engineering students (Table 1) and the graduation requirements for software engineering majors (Table 2), the proposed curriculum system is shown in Figure 5. The curriculum system follows the goal of big data to achieve the students’ learning effect specified in the professional training standards, takes students as the center, and takes clear teaching concepts as guidance to ensure the integrated development of students’ knowledge and ability. The vocational curriculum group focuses on career improvement, professional quality training and lifelong learning ability. Under the guidance of big data, the system integrates theoretical and practical courses through reverse design. According to the training objectives (Table 1) and graduation requirements (Table 2), it combines and selects teaching contents of similar or content related courses, increases the content of students’ independent learning, increases elective courses, reduces the credits of required courses, and cultivates students’ software engineering thinking, software professional knowledge ability, project management ability, professional innovation ability Lifelong learning ability.

A clear, open, and measurable graduation requirement supports the realization of training objectives. The clear and definite graduation requirements index points define the connotation of graduation requirements. The achievement of graduation target points needs to be measured through teaching activities, that is, courses. Therefore, the realization of graduation requirements cannot be separated from a scientific and reasonable professional curriculum system. As the core connotation of specialty construction, the construction of curriculum system can reflect the educational concept, school running characteristics and software engineering quality of a specialty. The construction of curriculum group is a development direction of the current curriculum construction reform in colleges. To improve the cognitive structure of the unified teaching object, it integrates into different series of courses according to the internal logical relationship of the curriculum in terms of knowledge, methods, and problems.

The curriculum modules are formed by integrating relevant backbone courses (curriculum components), and then the curriculum modules are combined according to the knowledge structure of software engineering specialty to form a curriculum group. Finally, the curriculum system is organized and managed in the way of “curriculum group curriculum module curriculum components”. Keep the curriculum group relatively stable, and dynamically adjust the curriculum components and class hours according to the internal and external needs and the development trend of software technology. On this basis, timely update the teaching content, decompose the graduation requirements into ability indicators, and implement them into specific teaching links, to finally achieve the goal of software engineering. The curriculum architecture is shown in Figure 6.

The mathematics and natural science curriculum group cultivates students’ mathematical ability, the general education curriculum group cultivates students’ political awareness, professional ethics and foreign language ability, and the humanities curriculum group cultivates students’ humanistic spirit. The basic engineering courses group enables students to master the knowledge structure of solving complex engineering problems and form a certain degree of logical thinking ability and programming skills through learning, which is the basis of professional courses. Focusing on the cultivation of complex software engineering ability, the professional curriculum group has designed three modules of software development, software testing and Web application development based on the method, process, and tool configuration of corresponding curriculum components to cultivate students’ core skills and literacy in software engineering. The professional elective course group provides students with career direction and employment competitiveness. The frontier technology curriculum group is to expand students’ vision and improve their ability to adapt to the technological needs of enterprises. The curriculum group forms a supporting relationship in the “vertical”, which conforms to the teaching law of “from simple to deep”.

The course experiment only solves the problem that students understand the basic knowledge of software programming, the basic structure of the program and the method of program design. This curriculum includes the process design practice of cultivating students’ ability to use mathematics, natural science, engineering fundamentals and other knowledge; Cultivate students’ ability to analyze problems, design solutions and use modern tools by using scientific principles; Graduation design combining with enterprises to cultivate students’ engineering awareness, cooperation, and communication capacity.

In practice, by modifying the original training program, the graduation practice was adjusted to the eighth semester, creating conditions for scientific and reasonable practice teaching. The construction of practical teaching system follows the principle of incremental progression, from foundation to complexity, from verification program results to design programs, from program design to software design, from single function realization to comprehensive system realization, and constructs four levels of practical teaching system, namely, “curriculum experiment, programming practice, curriculum design practice, and engineering project practice”. Among them, “curriculum experiment and programming practice” help students learn and master basic engineering principles; The “curriculum design practice” enables students to get training in project development, be familiar with the standardized software development process, and cultivate their professional quality and ability to solve complex software engineering problems; “Engineering project practice” refers to students’ internship in enterprises, participation in enterprise projects and completion of graduation design. The practical teaching system is shown in Figure 7.

Improve the evaluation mechanism of practical teaching quality. Course experiment is the evaluation basis for mastering engineering principles. Students’ ability to solve complex engineering problems is measured by designing, comprehensive and innovative experiments. The laboratory should provide a corresponding environment for practical teaching, so that students can comprehensively use technology, tools, and methods to build complex projects in the experimental process. According to the graduation requirements supported by the curriculum, determine the topics and contents of practice to avoid separation from theoretical teaching. The content of practice should involve design, implementation, and analysis, which can guide students to use in-depth engineering principles to solve complex engineering problems, rather than simply verifying the knowledge of engineering principles learned. Good management, maintenance and updating mechanisms, laboratories, and experimental equipment convenient for students, and practice and training bases are the conditions for effective practice teaching. In addition to the corresponding hardware environment, the software engineering laboratory should also provide the corresponding software resource environment. Based on the original experimental conditions, increase the investment in the construction of teaching case library, practice project library, engineering project library, various laboratories, and practice education teaching base. Based on conventional laboratories that can complete validation experiments, it is also necessary to build laboratories in corresponding knowledge fields according to the knowledge fields, professional characteristics, and software technology development of software engineering. The campus laboratory of software engineering specialty should be able to provide corresponding software and hardware conditions for cultivating the ability to solve complex engineering problems. On the other hand, we should build and make good use of the off-campus practice education base. A stable off campus practical education base can ensure the smooth development of graduation practice and enterprise training. According to the basic requirements of the school for the construction of practical education, enterprises suitable for the software engineering specialty are selected for joint construction. Based on practical plans, both schools and enterprises carry out teacher training and joint teaching, and enterprises receive teachers for on-the-job learning to increase teachers’ engineering experience; Students go to enterprises to complete skill practice and comprehensive project practice.

3. Case Study

This paper attempts to understand students’ work practice in the software development mode. Therefore, this paper first analyzes the historical software development data in the Trust platform to understand the main intention of students’ application software development and the combined processing time. In addition, this paper collected specific feedback from students after the application software development model through questionnaires to further understand their collaborative practice in this process.

Software development intention. Based on the title and description of software development, this paper divides software development into five categories: documents, update DOC, PPT and other document files, such as requirements specifications, UML diagrams, etc. Function, add the corresponding function. Fix, fix errors or code quality problems. This paper analyzes 98 software developments produced by 5 course practice groups in the process of collaborative development of application software development mode, and the statistical data is shown in Figure 8. As can be seen in the figure below, students’ intention to use software development is mainly to add corresponding functions and update document files. Among them, 35 submitted software development projects are used to update documents, and 44 submitted software development projects are used to add corresponding functions. In addition, a small part of the submitted software development is used to submit defect repair and test documents, including 11 software development projects to submit defect repair, 3 software development projects to submit test documents, and 5 software development projects submitted for other purposes. In the modern industrial development environment, submitting software development is mostly used to add functions and repair defects, which is different in the curriculum practice teaching environment. Students’ intention to use software development is mainly to add functions and update documents, but rarely to repair defects. This paper assumes that this may be caused by students’ programming tasks in the curriculum practice teaching environment: compared with code quality, students are more concerned about the realization of functions; And teachers tend to evaluate the corresponding teaching objectives through the task arrangement in the document and give students the final score.

To further understand how students, use software development for collaborative development, this paper analyzes the processing time for the course practice team to accept software development by calculating the time span between the creation time and the closing time of software development as in Table 3. From this article, we can see that the processing time span of software development acceptance is 11 seconds, the shortest time is 2 seconds, the longest time is 573361 seconds, the first quartile is 6 seconds, the average time is 15846 seconds, and the third quartile is 46 seconds, that is, more than 75% of software development integration time is less than one minute.

Table 3: Descriptive statistics
Nin 1 quarter Median Mean 3 quarter Max
2 6 11 15847 47 573362

This paper sets up a group of questions about the actual behavior of students using the software development model for collaborative development, mainly including the communication between team members about software development, the situation of conflicts encountered when merging software development, the situation of focusing on the quality of submitted software development, etc., and then measures the frequency of these actual behaviors with “always”, “often”, “occasionally”, and “never”, so as to further understand the collaboration mode of students’ application software development model. The analysis language is R-3.3.3, and the analysis tool is RStudio-1.0.44, The question feedback of various questionnaires forms this understanding as shown in Figure 9 below. In addition, more than 70% of the respondents will communicate with the team leader or members about software development and will also care about the quality of software development submitted by themselves.

This paper also uses multiple choice questions to understand the way students communicate with software development. Some common communication channels, such as face-to-face, IM instant messaging, mobile phones, software development comments, are listed in the question options of the questionnaire. As a supplement, this paper provides the “other” option to collect students’ supplementary information. The results are shown in Figure 10, which is the common way for students to communicate with software development.

The students have chosen the communication method of the options provided in this article, and there is no other supplementary information. It can be seen from Figure 10 that Figure 12 team members and 5 team leaders have chosen face-to-face communication, 10 team members and 4 team leaders also use IM tools for communication, and fewer people choose to use mobile phones and software development comments for communication. This paper can draw a conclusion: in the project development of the curriculum practice teaching environment, students tend to use a more direct way to communicate their software development. For example, they prefer to communicate and collaborate through face-to-face and IM tools.

A) Analysis of teaching effect of software development in software engineering course

After the whole teaching activity of software engineering course is completed, software development is the last and indispensable link to carry out necessary teaching and teaching effect analysis. The corresponding summary of the teaching results of the software development in the software engineering course in the previous stage will also be a reference for the follow-up teaching. Timely and effective teaching experience summary will help teachers better grasp the teaching quality. For the analysis of the teaching effect of software development in software engineering courses, it is mainly carried out from the following aspects: student project products, student participation in teaching, improvement of students’ comprehensive ability, and student interviews. The detailed analysis results are shown below.

1) Student project product analysis

The teaching process is driven and organized by several problems. After the project implementation and development activities, a series of components are generated, which ultimately form the final software product to solve the driving problems. The final project product of students is a comprehensive embodiment of the student problem solution that reflects the continuous construction of student knowledge. The whole project development process is guided by teachers. The most important thing is that each member of the student project team chooses and controls what the project team should do, how to do it, and what software products to generate. For example, students choose project questions; It determines how to deal with this problem, what steps to take, which resources to use, how to assign responsibilities, how to select artifacts to construct, and how to construct them. In this software engineering course, the students really completed a relatively complete project product. The project product completion of each student project team exceeded the expectations of the teacher and this article. Through the students’ project products, most students can coordinate the design and implementation of the overall project of their project team and their own problems repeatedly according to the teaching arrangement in the software engineering teaching process, continuously modify and improve their respective project products to ensure the quality of project products.

2) Analysis of students’ participation in teaching

Analyze the scale of students’ teaching participation in software engineering courses filled in by students after teaching, and the analysis results are shown in Figure 11.

It can be seen from the analysis results of students’ teaching participation that most students’ participation in software engineering teaching is much higher than the average. Especially in the teaching, the students themselves inquired about the required materials, submitted project works on time, and actively communicated and discussed with classmates, all of which were highly involved, indicating that the students’ interest in the teaching of software engineering courses was still high, and the students’ learning enthusiasm was high in this teaching process. However, it can also be seen that the students’ evaluation of one of them is still low, so how to better attract students’ learning interest in the software engineering knowledge teaching stage needs further research and improvement.

3) Analysis on the improvement of students’ comprehensive ability

Analyze the identification scale for students’ comprehensive ability improvement in software engineering course teaching filled in by students after teaching (see Appendix C for the identification scale for students’ comprehensive ability improvement), and the analysis results are shown in Figure 12. Through the survey and analysis of the scale of students after the implementation of software engineering teaching, 38 (82.6%) of them think that their self-study ability has improved after software development; 28 people (60.9%) believed that their inquiry ability was improved through the implementation of teaching in software engineering courses; 30 people (65.2%) believed that their ability to cooperate with others was improved in project development; 25 people (54.3%) thought their communication ability had improved; 21(45.6%) believed that they had improved their analytical and problem-solving skills; 22 (47.8%) felt that their innovation ability had been improved; None of the students had no obvious ability to improve their own cognition.

After the implementation of teaching, half or more of the students think they have improved in every ability, that is, most students agree that the implementation of teaching in software engineering courses can exercise their various abilities. Obviously, more than four fifths of the students agree that their self-study ability has improved and taking the initiative to learn will be the first step to learn well. In teaching, students need to build their own knowledge and solutions to problems and have more opportunities to practice and operate by themselves. During the whole process of project development, they are familiar with and use software engineering knowledge, and use the old knowledge to generate new knowledge. Working with other members of the project development team, students can discuss ideas, communicate clearly, systematically consider solutions, monitor their own understanding, compare their own views with others’, and propose clear problems and solve them.

4. Conclusion

In a word, all colleges should optimize the educational means of software engineering, improve the teaching and cultivation mechanism, strengthen students’ solid memory of basic knowledge, effectively improve their ability to cooperate with each other, improve students’ mastery of theoretical knowledge and cutting-edge technology, and promote them to adapt to the constantly developing era of big data background. This paper believes that if we want to change this situation in teaching, in the future software engineering courses and even in most courses, we need to continue to apply the new teaching model to specific courses, gradually change the way students rely too much on teachers to teach, and at the same time try to provide students with richer learning resources in the future teaching, so as to better solve problems, improve themselves and provide security.

References

  1. Arvanitou EM, Ampatzoglou A, Chatzigeorgiou A, Carver JC. Software engineering practices for scientific software development: A systematic mapping study. Journal of Systems and Software. 2021 Feb 1;172:110848.
  2. Althar RR, Samanta D. The realist approach for evaluation of computational intelligence in software engineering. Innovations in Systems and Software Engineering. 2021 Mar;17(1):17-27.
  3. Piattini M, Peterssen G, Pérez-Castillo R. Quantum computing: A new software engineering golden age. ACM SIGSOFT Software Engineering Notes. 2021 Oct 3;45(3):12-4.
  4. Zughoul O, Zaidan AA, Zaidan BB, Albahri OS, Alazab M, Amomeni U, Albahri AS, Salih MM, Mohammed RT, Mohammed KI, Momani F. Novel triplex procedure for ranking the ability of software engineering students based on two levels of AHP and group TOPSIS techniques. International Journal of Information Technology \& Decision Making. 2021 Jan 18;20(01):67-135.
  5. Campero S. Hiring and intra-occupational gender segregation in software engineering. American Sociological Review. 2021 Feb;86(1):60-92.
  6. Russo D, Stol KJ. PLS-SEM for software engineering research: An introduction and survey. ACM Computing Surveys (CSUR). 2021 May 3;54(4):1-38.
  7. Ford D, Storey MA, Zimmermann T, Bird C, Jaffe S, Maddila C, Butler JL, Houck B, Nagappan N. A tale of two cities: Software developers working from home during the covid-19 pandemic. ACM Transactions on Software Engineering and Methodology (TOSEM). 2021 Dec 24;31(2):1-37.
  8. Yang Y, Xia X, Lo D, Grundy J. A survey on deep learning for software engineering. ACM Computing Surveys (CSUR). 2022 Sep 14;54(10s):1-73.
  9. Apiola M, Sutinen E. Design science research for learning software engineering and computational thinking: Four cases. Computer Applications in Engineering Education. 2021 Jan;29(1):83-101.
  10. Lo SK, Lu Q, Wang C, Paik HY, Zhu L. A systematic literature review on federated machine learning: From a software engineering perspective. ACM Computing Surveys (CSUR). 2021 May 23;54(5):1-39.
  11. Murciano-Goroff R. Missing women in tech: The labor market for highly skilled software engineers. Management Science. 2022 May;68(5):3262-81.
  12. Pereira R, Couto M, Ribeiro F, Rua R, Cunha J, Fernandes JP, Saraiva J. Ranking programming languages by energy efficiency. Science of Computer Programming. 2021 May 1;205:102609.
  13. Abdellatif A, Badran K, Costa DE, Shihab E. A comparison of natural language understanding platforms for chatbots in software engineering. IEEE Transactions on Software Engineering. 2021 May 7;48(8):3087-102.
  14. Mehmood F, Zulfqar S. Effect of human related factors on requirements change management in offshore software development outsourcing: A theoretical framework. Soft Computing and Machine Intelligence. 2021;1(1):36-52.
  15. Moin A, Challenger M, Badii A, Günnemann S. A model-driven approach to machine learning and software modeling for the IoT: Generating full source code for smart Internet of Things (IoT) services and cyber-physical systems (CPS). Software and Systems Modeling. 2022 Jun;21(3):987-1014.