=Paper= {{Paper |id=Vol-2506/Paper2-seed2019 |storemode=property |title=Toward Industry Oriented Software Engineering Project Course: A Pilot Study |pdfUrl=https://ceur-ws.org/Vol-2506/Paper2-seed2019.pdf |volume=Vol-2506 |authors=Yu Liu,Ju Yan,Daqing Hou |dblpUrl=https://dblp.org/rec/conf/apsec/LiuYH19 }} ==Toward Industry Oriented Software Engineering Project Course: A Pilot Study== https://ceur-ws.org/Vol-2506/Paper2-seed2019.pdf
                                                                                                                                9




         Toward Industry Oriented Software Engineering Project
                         Course: A Pilot Study

             Yu Liu                                        Ju Yan                                         Daqing Hou
        ECE Department                             Public Safety Product                               ECE Department
       Clarkson University                             Motorola Inc.                                  Clarkson University
     Potsdam, NY, U.S. 13699                     Plantation, FL, U.S. 33322                         Potsdam, NY, U.S. 13699
       yuliu@clarkson.edu                     juyan@motorolasolutions.com                             dhou@clarkson.edu


                                                               Abstract
                         Software engineering has become a prosperous industry sector due to the
                         widespread and successful applications of software products. Industry
                         oriented software engineering education is necessary to bridge academic
                         training and industry needs. To this end, this paper reports on a recent
                         pilot study at Clarkson University where a professional industry advisor
                         from a CMMI level 5 certified software institution was systematically
                         involved in an undergraduate software engineering project course. The
                         goal of this practice is to make a solid step toward providing students with
                         a formal introduction to industrial soft-ware engineering processes and
                         authentic professional experience in an academic environment. Informed
                         by a pre-course survey of student needs, the advisor participated in the
                         entire development cycle of the open source course projects and offered
                         multiple key lectures addressing industry needs. We describe the
                         textbook, the selection of course projects, and the workflow where
                         students interacted with the instructor and the industry advisor. Our
                         analysis of results from a post-course survey indicates that 91% students
                         “agreed” with adding the industry advisor role and that they have built
                         enough confidence for future career through our course. Good practice
                         and the future improvement plan have been summarized to share with
                         the broader software engineering education community.




1    Introduction
    Nowadays, software engineering has emerged as a prosperous business due to the pervasive adoption of
software products in almost all sectors of the economy. According to the United States Department of Labor, there
were 1,256,200 software engineering jobs in United States in 2016, with an annual growth rate outlook from 2016
through 2026 projected to be at an amazing level of 24%, and the median annual salary of software engineers is
reported to be $103,560 in 20171. Consequently, universities must educate enough highly qualified junior
professionals who are ready to take on these well-paid jobs with all the essential skills.
   It has been a long-term issue that in addition to the increase in demand for software engineers, software
companies have recognized that skills provided by exiting education do not completely meet their requirements




     1
       Bureau of Labor Statistics, U.S. Department               of   Labor:      https://www.bls.gov/ooh/computer-and-
     information- technology/software-developers.htm




Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
In: S. Chawla, B. Wadhwa, P. Muenchaisri (eds.): Proceedings of the 2nd Software Engineering Education Workshop (SEED 2019),
Putrajaya, Malaysia, 02-Dec-2019, published at http://ceur-ws.org
                                                                                                                               10


[Sai02].
   Garousi et. al. pointed that the software engineering shortage is not a lack of individual calling themselves
“engineers”, but one of quality - a lack of well-studied, experienced engineers with a formal and deep understanding
of software engineering [GGT+18]. Su, Jodis, and Zhang further pointed out that many of the challenges associated
with software engineering education are due to our inability to provide students with the “real world”, large-scale
software development experiences in an academic environment [SJZ07]. Thus, industry oriented software
engineering education has been called upon to bridge the gap between academic software engineering education
and expectation and needs of software companies.
   Clarkson University2, founded in 1896, is located in Potsdam, New York, United States, with an enrollment of
around 4,300 students, offering degrees ranging from Bachelor’s to Doctorate’s. A Clarkson education emphasises
the tight and win-win relationship with the industry, and the university was ranked #8 among “Top Salary- Boosting
Colleges” nationwide in 20153. Therefore, the industry oriented education practice has always been highly valued at
Clarkson. Clarkson’s software engineering program, a collaborative effort between Computer Science and Electrical
and Computer Engineering, provides students with the technical competence, knowledge and skills in software
processes and project management, as well as teamwork and professional skills for a successful career in today’s
software industry4.
   This paper describes our efforts in piloting an industry oriented software engineering course in this relatively
young program. The process of an industry oriented project course must be characterized by the involvement of
industry oriented staff along with key learning outcomes [MM14]. To meet this expectation, we seek to investigate
appropriate industry oriented practice in a software engineering project course EE418 in the Fall 2018 semester, as
follows:
    1. A professional industry advisor from a Capability Maturity Model Integration (CMMI)5 level 5 (top level)
         certified software institution provides authentic personal experience to our students regarding showcase
         projects, technical skills, ethics awareness, and interview soft skills in software engineering;
    2. Close interaction among students, the instructor, and the industry advisor in course projects is required for a
         formal introduction to authentic industrial software engineering processes and practice.

    To the best of our knowledge, this paper is the first to report a comprehensive plan as well as its piloting to
bridge the gap between software engineering education and industry needs through a course project based
approach. A senior industry advisor was heavily involved in the entire development cycle of software maintenance,
as well as offering lectures on important issues in a software engineering career.
   This paper describes the course design, evaluation results, and an analysis for the practice of introducing an
industry advisor role into EE418. The rest of this paper is structured as follows. Section 2 presents the related work.
Section 3 describes our design and practice of EE418. Section 4 presents an analysis of the students’ post-course
survey results, and our future plan to address the findings. Lastly, Section 5 concludes this paper.

2    Related Work
   In recent years, software engineering educators started to realize the importance of connecting software
engineering education with the industry needs. Saiedian emphasised the importance of bridging academic software
engineering education and industry needs, and listed several key aspects of educating software engineering students
in order to build this bridge, including education in risk management, software maintenance skills, etc [Sai02].
Recently, Garousi published results from a survey regarding closing the gap between software engineering education
and industrial needs [GGT+18]. Through a review and comparison of a large number of papers published in 1995-
2018 about the most important skills in the industry and the status of software engineering education, some
knowledge gaps have been highlighted, which include software engineering professional practice, project
management, software engineering processes, etc. Liebenberg discussed the industry’s perception of the relevance
of software development education through a mixed methods study, and then proposed some solutions, including
involving people from industry into software development classes, hiring lecturers with industry experience, project

     2
         Clarkson University: https://www.clarkson.edu/

     3
         https://money.cnn.com/2015/04/29/pf/college/college-biggest-salary-boost/index.html

     4
         Software Engineering Program of Clarkson University: https://www.clarkson.edu/undergraduate/software-engineering

     5
         CMMI Institute: https://cmmiinstitute.com/




Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
In: S. Chawla, B. Wadhwa, P. Muenchaisri (eds.): Proceedings of the 2nd Software Engineering Education Workshop (SEED 2019),
Putrajaya, Malaysia, 02-Dec-2019, published at http://ceur-ws.org
                                                                                                                               11


based education, etc [LHM 3]. Long illustrated the critical need for software engineering education especially for the
United States higher education system, indicating that this system did not follow the pace of the software industry
evolution. Long emphasised the education innovation regarding this matter [Lon08].
   Mishra investigated an industry oriented advanced software engineering education curriculum [MM14], of which
the purpose is to respond to the industrial skill expectation.
   Unfortunately, none of these publications have practiced and implemented their conclusions and suggestions.
Maras is the first to report their practice of performing an empirical study on students with an industry-relevant
topic taught by an industry expert in their software engineering course in Croatia [MU15]. However, during their
practice, only a three-hour lecture has been offered by an industry expert from the Ericsson Corp6, which is
obviously not enough to bridge these key knowledge gaps identified by prior work.

3      Course Design and Practice
3.1       Course and Industrial Advisor
   EE418 is a software engineering project course at Clarkson University where junior and senior students will
participate in managing and executing the process of carrying out a significant software development effort from a
conceptual idea through integration and testing of the new proposed features into an open source software. The
focus of the particular EE418 offering in Fall 2018 was software maintenance rather than new software
development, a topic that has been often inadequately covered in software engineering education. For example,
based on personal observation in his teaching career, Piere pointed out the educational difficulties with traditional
greenfield projects is that they often produce poor project results [Pie92]. Buchta et. al. pointed out that developing
small programs from scratch in the traditional software engineering course does not match industrial practice
[BPPR06]. Saiedian also pointed out that training software maintenance skills is a way to build the bridge between
academic education and industry needs [Sai02].
   The industry advisor, who is a co-author of this paper, is from Motorola Solutions Inc.7 with over twenty years’
experience of software developing and management. More importantly, the author and co-author were co-workers
in Motorola software design center for many years, and they once worked together to help Motorola to obtain the
CMMI level 5 certification [GGK06] through a showcase software maintenance project. Thus, the industry advisor
had great enthusiasm and capability for improving STEM education and was fully engaged in our course projects.

    3.2    Textbook and Lectures
   Rajlich’s software maintenance textbook [Raj12] has been adopted as an ideal supplementary to our course
projects. The chapters selected for EE418 lectures are as follows: (1). History of Software Engineering; (2). Software
Lifespan Model; (3). Software Technologies; (4). Software Models; (5). Introduction to Software Changes; (6).
Concepts and Concept Location; (7). Impact Analysis; (8). Actualization; (9). Refactoring; (10). Verification; (11).
Conclusion of Software Changes; (12). Introduction to Software Processes; (13). Final Stage.
   In addition, the industry advisor has given two lectures, one on software job interviews and the other on ethics in
software engineering. He has also contributed to the development of the course syllabus.

    3.3    Course Projects and Grading
   To determine the best practice for running this industry oriented project course, the instructor conducted a
course expectation survey in the first class, where the students’ expectation on the industry advisor were solicited.
The results showed that our students expected the advisor to provide more industry insights (45%), feedback to the
course project (30%), and interview tips (25%).
   The instructor designed the following process for selecting the course projects. First, students attending this
course were grouped into three teams, and each team chose an open-source software from the Github in the areas of
machine learning and artificial intelligence. Then, each team proposed three new features, and proposed one feature
for each of other teams. The industry advisor working with the instructor proposed one additional feature to each
team. He also gave feedback to the other new features based on his industrial view. Therefore, each team worked on
six new features in their project. The requirements of each feature were negotiable in the requirement phase. All
new features proposed were voted for acceptance by all stakeholders including all team leaders, the instructor and
the industry advisor. Open source software selected and sample features proposed by stakeholders are shown in
Table 1.


6
    Ericsson Inc.: https://www.ericsson.com/en
7
    Motorola Solutions Inc.: https://www.motorolasolutions.com/
                                                                     3



Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
In: S. Chawla, B. Wadhwa, P. Muenchaisri (eds.): Proceedings of the 2nd Software Engineering Education Workshop (SEED 2019),
Putrajaya, Malaysia, 02-Dec-2019, published at http://ceur-ws.org
                                                                                                                               12




        Figure 1: The interaction workflow among EE418 students, the instructor, and the industry advisor.

   The justification for our choice of open source projects on the theme of machine learning and artificial intelligence
is as follows. Recently, open-source projects are increasingly being used in software engineering education for their
benefits of easy and free source codes accessing and active development community [CK03, PBOP07, NGHL08].
Team based software engineering course projects are believed to be important for facilitating learning, fostering
student motivation as well as obtaining a successful project outcome [DAHB18]. In addition, machine learning and
artificial intelligence are the future of the industry, and are even called “the fourth industrial revolution” [Theil].

                                      Table 1: Course Projects and Sample New Features.
    Project Name       Description                                                    Sample Feature
    DeepLeague8        A deep learning and computer vision application                The system shall take .csv file as input
                       to analyze minimap recordings from League of Legends           to the UI portion
    DeepXplore9        A white-box testing framework of deep learning systems         A heatmap feature shall be added to
                       by introducing visual augmentations in images                  track the areas augmentation placed
    Magenta10          A tool to make music and art through                           Classical, modern, and rock specific output shall
                       machine learning based on Tensorflow                           be generated depending on pre-trained
                                                                                      datasets


   To best meet students’ expectation, the instructor designed the workflow among students, the instructor, and the
industry advisor (Figure 1). As advised by the industry advisor, each team member was assigned a role in the team
in the project kick-off meeting, including project leader, configuration manager, test leader, quality engineer, and
project website administrator. These are the common roles in the software development team in Motorola Software
Centers. Besides these roles, all team members were both developers and testers. The project leader was responsible
for project management plan and requirement book, the configuration manager setup the version control system to
manage the source codes, the test leader finished the test plan and test report, and the quality engineer was to
ensure quality, providing the quality data in the test report and maintaining traceability matrix between
requirements, design, coding, and testing. The industry advisor also participated in the review activities of all the
deliverables, including requirement book, design document, test plan, test cases and report, and the final product
demonstration, providing feedback from the perspective of industry needs. At the end, all stakeholders (team
leaders, the instructor, and the industry advisor) worked together to grade each new feature. Although the benefits
of group projects are well known, grading team projects is not an easy undertaking, with many inherent challenges
[HLP03]. To achieve fairness and consistence, we followed Hayes’ best practice of grading haye. First, the projects

8
  DeepLeague: https://github.com/farzaa/DeepLeague/
9
  DeepXplore: https://github.com/peikexin9/deepxplore
10
   Magenta: https://github.com/tensorflow/magent




Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
In: S. Chawla, B. Wadhwa, P. Muenchaisri (eds.): Proceedings of the 2nd Software Engineering Education Workshop (SEED 2019),
Putrajaya, Malaysia, 02-Dec-2019, published at http://ceur-ws.org
                                                                                                                                13


  were graded as a team base, and then each team member got the same score based on the team performance.
  Second, we allowed team members to evaluate the contribution of each other to a certain percentage of the entire
  project grades. Third, the attendance of group activities in class was checked and it took some points of the final
  grading.

  4    Evaluation and Analysis
     A post-course survey with eight questions was conducted in the last class. These questions and their key
  measures are shown in Table 2. The survey results and relevant analysis are presented in Table 3. On average, 85%
  students were satisfied with this industry oriented teaching innovation, and 70% students were very satisfied. Thus,
  based on the survey results, we can conclude that the basic goal of this education innovation has been achieved. Also,
  the analysis shows that it is the right decision to involve the industry advisor into the software engineering course
  (Q1), and that students believe that their interview skills (Q5), knowledge and confidence for software engineer jobs
  (Q2-Q4, Q6), and teamwork skills have improved (Q8).

                                       Table 2: Survey Questions and their Key Measures.
Questions                                                                                          Key Measures
Q1: How is your understanding about the industry advisor role value                                Industry advisor awareness and value
Q2: How do you think the value of industry knowledge and practices for your job interview          Industry knowledge value
Q3: How is your preparing for your job hunting                                                     Preparation for job hunting
Q4: What is your confidence in IT job interview                                                    Confidence for job interview
Q5: Do you think you have enough technical competence and soft skills in IT job interview          Enough technical competence and soft skill
Q6: How do you feel what you will learn from this course is useful in the real-world               Value of this course in real world
Q7: How do you feel your course project can be used as a show case in your job interview           Course can be a show case
Q8: How is your commitment to working in a team to develop the software project                    Commitment of working in a team


                                    Table 3: Results and Analysis of the Post-course Survey.
   Questions   Analysis                                                                   Satisfied/Agreed       Strong Satisfied/Agreed
   Q1          Right decision to introduce industry advisor role into this course         91%                    64%
   Q2          A very good start, and also an opportunity to adjust the future practice 91%                      82%
   Q3          Students have obtained knowledge to do better preparation                  91%                    82%
   Q4          Students have built more confidence for their future career                91%                    55%
   Q5          Students have gained stronger competence and skills                        100%                   82%
   Q6          Room to refine the course to be more practical                             82%                    64%
   Q7          Need drill down more to prepare better show case with proper scope         55%                    45%
   Q8          Good teamwork has been done, and it is very useful for their future career 82%                    82%


     Although 55% of students thought that their course project can be used as a good showcase for their future career
  in software engineering, we did observe that one of the three teams had unsatisfying performance in their course
  project and their project was not good enough for a showcase (Q7). In addition, the evaluation indicates that we have
  a good start (91% students “agreed” with the industry advisor role and they have built enough confidence for future
  career), but we also have the opportunities to improve our practice in future semesters (only 64% students “strongly
  agreed” with this role (Q1), and 55% of them “strongly agreed” that they had built enough confidence (Q4)).
     Our planned future actions are listed as follows:

      1. Course projects will be provided by the industrial advisor to reflect the real needs of industrial software
         product development (Q7);

      2. All lectures will be revised by the industry advisor to follow the technical trends in the real-world (Q4&Q6);

      3. Multiple guest lectures will be offered to share more authentic industry experience, and the topics span the
                 5    Conclusion
         entire software development cycles, such as risk management and budget planning (Q4&Q6).
                    We report on a preliminary practice and an analysis of an industry oriented software engineering educa
                 innovation at Clarkson University. A senior professional industry advisor from a CMMI level 5 certified softw
                 institution has been deeply involved in a software engineering project course to introduce our students to authe
                 industrial software engineering processes and practice. Our analysis of a post-course survey indicates




                 Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0)
                 In: S. Chawla, B. Wadhwa, P. Muenchaisri (eds.): Proceedings of the 2nd Software Engineering Education Workshop (SEED 2019),
                 Putrajaya, Malaysia, 02-Dec-2019, published at http://ceur-ws.org
                                                                                                                               14


91% students have “agreed” with adding the industry advisor role and believed that they have built enough
confidence for future career through such a course. We have also identified the opportunities and actions for future
improvement.

References
[BPPR06]        Joseph Buchta, Maksym Petrenko, Denys Poshyvanyk, and Vclav Rajlich. Teaching evolution of
                open-source projects in software engineering courses. In 22nd IEEE International Conference on
                Software Maintenance. IEEE, 2006.
[CK03]         David Carrington and Soon-Kyeong Kim. Teaching software design with open source software. In
               33rd Annual Frontiers in Education. ACM, 2003.
[DAHB18] Dora Dzvonyar, Lukas Alperowitz, Dominic Henze, and Bernd Bruegge. Team composition in
         software engineering project courses. In 2nd International Workshop on Software Engineering
         Education for Millennials. ACM, 2018.
[GGK06]        Diane L. Gibson, Dennis R. Goldenson, and Keith Kost. Performance results of cmmi-based process
               improvement. CMU Technical Report: CMU/SEI-2006-TR-004, August 2006.
[GGT+18]        Vahid Garousi, Gorkem Giray, Eray Tuzun, Cagatay Catal, and Michael Felderer. Closing the
                gap between software engineering education and industrial needs. IEEE Transactions on
                Software Engineering, 2018.
[HLP03]        Jane Huffman Hayes, Timothy C. Lethbridge, and Daniel Port. Evaluating individual
               contribution to- ward group software engineering projects. In 25th International Conference
               on Software Engineering. IEEE, 2003.
[LHM 3]         Janet Liebenberg, Magda Huisman, and Elsa Mentz. Industry perception of the relevance of
                software development education. The Journal for Transdisciplinary Research in Southern
                Africa, 2015, Vol. 11, No. 3.
[Lon08]        Lyle Norman Long. The critical need for software engineering education.                                   The Journal
               of Defense Software Engineering, 2008.
[MM14]         Alok Mishra and Deepti Mishra. Industry oriented advanced software engineering education
               curriculum. Croatian Journal of Education, 2012, Vol. 14.
[MU15]          Josip Maras, Ljiljana eri, Maja tula, and Nenad Uki. Combining education, industry, and
                empirical studies in software engineering: an experience report. In the 2015 European
                Conference on Software Architecture Workshops. ACM, 2015.
[NGHL08] Jagadeesh Nandigam, Venkat N Gudivada, and Abdelwahab Hamou-Lhadj. Learning software
         engi- neering principles using open source software. In 38th ASEE/IEEE Frontiers in
         Education Confer- ence. IEEE, 2008.
[PBOP07] Michela Pedroni, Till Bay, Manuel Oriol, and Andreas Pedroni. Open source projects in
         programming courses. In SIGCSE. ACM, 2007.
[Pie92]        Keith R. Piere. The benefits of maintenance exercises in project-based courses in software. In
               IEEE Conference on Software Maintenance. IEEE, 1992.
[Raj12]        Vaclav Rajlich. Software engineering: The current practice. Textbook ISBN:1138581690,
               2012.
[Sai02]        Hossein Saiedian. Bridging academic software engineering education and industrial needs.
               Computer Science Education, 2002.
[SJZ07]         H. Su, S. Jodis, and H. Zhang. Providing an integrated software development environment for
                undergraduate software engineering courses. Journal of Computing Sciences in Colleges,
                2007.
[Theil]         The Centre for Social Justice. The future of work: Technology and artificial intelligence part IV:
                The fourth industrial revolution. Report, 2019 April.




Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
In: S. Chawla, B. Wadhwa, P. Muenchaisri (eds.): Proceedings of the 2nd Software Engineering Education Workshop (SEED 2019),
Putrajaya, Malaysia, 02-Dec-2019, published at http://ceur-ws.org