software development for embedded control systems. As. computer control has become predominant for controlling. machinery, heavy manufacturing companies ...
An Integrated Embedded Software Engineering Program and Practicum Samuel L. Hazen and Stephen T. Frezza Department of Electrical Engineering Gannon University Erie, PA 16541 Abstract - This paper describes an innovative approach to combining formal coursework and industrial experience in order to prepare engineering graduates for careers in software development for embedded control systems. As computer control has become predominant for controlling machinery, heavy manufacturing companies, such as General Electric Transportation Systems (GETS), have found an increasing need for engineers who understand real-time control of electric machinery, and can implement quality software for large embedded applications. To meet this need, Gannon University and GETS have developed a two-year integrated program and practicum leading to a Master of Science in Engineering degree with a concentration in embedded software engineering(ESE). The GU/GETS program goal is to give the electrical engineering graduate the education and practical experience needed to solve software design and implementation problems for large embedded systems. The eight-year-old program has involved on-site academic mentorship, active industrial involvement in program content, and has shown marked success with its graduates.
Introduction As computers have become ubiquitous, computer-based control is replacing both mechanical and electrical controls that existed in the past. Computer-based control systems with quality software increase flexibility, decrease manufacturing costs, and increase both reliability and maintainability. To develop this software, heavy manufacturing companies are hiring and training large numbers of engineers in software engineering. For example, in 1989, General Electric Transportation Systems (GETS) employing zero software engineers. By 1994, they employed 75 full-time software engineers. This shift reflects the growth in software engineering concerns such as software analysis, design, implementation strategies, and software quality assurance[1]. The need for engineers to have knowledge and experience in these areas was minor in 1989 but is of utmost concern today. As a result, these companies have a huge need for good engineers who understand real-time control of electric machinery, understand microprocessor implementation, and can implement quality software for large embedded applications.
The need for control engineers trained in software engineering stems from other sources as well. The quality standards movement in the global marketplace has pushed manufacturing companies to become ISO 9000 certified. ISO 9000 certification for computer-based systems requires that the company adhere to specified software development, testing, release, and maintenance processes. Also, companies with large software-design efforts (like GE) are adopting the Capability Maturity Model (CMM). Thus, these companies need engineers not only with embedded system development experience, they also need engineers with knowledge and experience in software process, design, analysis, and quality assurance - what we term Embedded Software Engineering. This need is complicated by the education common to most entry-level software engineers. The unstructured, individual-oriented programming techniques common to entry-level engineers are no longer sufficient, and can hamper companies’ efforts to improve their software processes[2,3,4]. These insufficiencies constitute a gap between undergraduate software engineering education and software engineering in practice. A recent Software Engineering Institute (SEI) report succinctly states the problem thus: “Students are not prepared to make the jump between computer science or software engineering in school to software engineering in the professional world”[3]. To meet this need, Gannon University and GETS have developed, over the last 8 years, a two-year integrated program and practicum leading to a Master of Science in Engineering degree with a concentration in embedded software engineering. The program goal is to give the electrical engineering graduate the education and training needed to solve software design and implementation problems for large embedded systems. This paper discusses the implementation of this integrated embedded software engineering program and practicum. After a brief discussion of related programs, we discuss the overall implementation of the program, specifically addressing issues involved in establishing an effective industrial partnership for a successful integrated program. We then describe the details of the industrial practicum and the academic program. This is followed by a description of how we measured the success of the GU/GETS ESE program, and the results of those
measurements. We follow with a brief discussion of the lessons learned over the first eight years of the program, as well as future directions for the program.
Background The educational model for this program shares its roots in the clinical model employed in health science professional programs including Medicine, Nursing, Pharmacy, and others. This educational model requires students to practice in their field under the guidance and tutelage of professional practitioners and their academic mentors in the professional setting unique to their discipline. The importance of bridging the gap in software engineering education and practice has been recognized by other Universities, particularly in the internship requirements integrated into programs such as the undergraduate Software Engineering program at Rochester Institute of Technology (RIT)[5]. Co-operative programs like RIT’s offer undergraduates the opportunity to develop profession skills. However, they only provide informal education in the technical and non-technical issues that separate academic training from professional practice. Bridging the industrial-academic gap in software engineering is formally attempted at the Software Center at Embry-Riddle Aeronautical University (ERAU) and their collaborative work with Lockheed Martin[4]. The Software Center began phase 1 of their academic-industrial collaboration in 1996. This phase, expected to last two years, involves a team of undergraduate and graduate students working on an off-site industrial project under the management of ERAU Faculty. While sharing the same goals, our program differs in both scope and focus. The GU/GETS program follows the health-science clinical model more closely, emphasizing the mentoring of students in the industrial setting over a significant period of time. This has the advantage (and disadvantage) of permitting students to experience the dayto-day work culture and pressures first-hand. Our program also focuses primarily on graduate Electrical Engineers, rather than undergraduate Computer Science and Graduate CS/Software Engineers as does the ERAU program.
Program Implementation and Industrial Participation In developing the program, both University faculty and GETS management collaborated to enable engineers to quickly gain the necessary experience and knowledge in embedded software. Specifically, they found that recentlygraduated engineers need: 1. Experience in the industrial setting, particularly with large, on-going embedded software development efforts, and .
2. Rigorous, integrated training in Embedded and Software Engineering processes, principles and methods . The difficulty was that the standard model of additional university (graduate) training did not provide the necessary experience in large embedded projects that these engineers need, nor would specialized job-site seminars provide the rigor or continuity in knowledge in software engineering that they also need. This integrated approach was developed with joint industrial and academic participation in an effort to meet the differing needs of new engineers as both graduate students and new employees. Gannon’s integrated embedded software engineering (ESE) program is jointly administered by a Gannon and a GETS representative. A Gannon project manager (GU faculty) heads the academic program, and works with a GETS project manager who is responsible for the overall administration of the practicum. In addition to the two managers, there is a mentor coordination committee consisting of all Gannon mentors and all GETS managers having ESE students working for them. This committee normally meets every two weeks, and has overall responsibility for the practicum. This committee also makes recommendations for the curriculum and course offerings. Specific items discussed regularly include work assignments, specific student- and project-problem areas, curriculum offerings and other items needed to keep the program running smoothly. There is also a joint ESE advisory committee that meets once per year. The members consist of members of the mentor coordination committee, other Gannon professors involved in the ESE offerings, several senior GETS software engineers, upper-level GETS managers, and GETS human resources personnel. This committee reviews the program and makes recommendations for change and funding. The relationship between the University and GETS is a contractual one. Funded ESE students are part-time GETS employees while the mentors are paid through Gannon from the contract. This has the distinct benefit of ensuring GETS ownership of work products and active participation of GETS management in program operation. The contractual arrangements also help to ensure student and mentor accountability. This means that GETS and the University must be intimately involved in the recruiting and review efforts. For the student selection, Gannon advertises the program regionally. The Gannon project manager gathers the resumes and transcripts which are reviewed by the mentor coordination committee. A group of candidates is brought in for interviews from which the selection is made. Due to the location of the program, most of the successful candidates, to date, have been Gannon undergraduate electrical engineering students.
The selected students are hired by GETS as interns and receive (1) a monthly stipend over the entire year and (2) Gannon tuition for 9 credits per semester. They work on a GETS projects 25 hours per week during the semester and 45 hours per week during the summer. During the year, the student works on projects approximately 1500 hours and completes 18 credits of graduate study. One of the most unique and successful aspects of this program has been the mentor relationships - the relation of the ESE mentor to GETS, and the relationship between the ESE mentor and the students. The faculty mentors are responsible for directing the students in their industrial work, but also serve as their academic advisor. The faculty mentor serves as the management interface until the students are ready for the rigors of the industrial environment and gradually increases the scope and the difficulty of the projects as the student becomes more competent. The mentors receive teaching-load reductions at Gannon and are at GETS approximately 1200 hours per year.
project leader evaluates the students on their performance relative to the expected job of a contract engineer doing the same job. A numeric grade is assigned with the contract engineer expectations being a value of one. Averages of these ratings are provided in Figure 1 below. Further student reviews are done approximately every 6 months. The students use the standard GETS forms for self-evaluation. As with other full-time employees, students participate in regular peer evaluations, using a 360 degree self-evaluation form. Both of these methods track progress and performance in the areas of leadership, communication, and professional behavior. Review material is gathered by the mentors who perform the final evaluation. This information is presented to the responsible GETS managers, and then reviewed with the students to keep them apprised of their progress. This continual interaction with the students provides a unique opportunity to coach students in their GETS, as well as their academic work.
Program Curriculum Industrial Practicum The practicum goal is to help degreed engineers develop into experienced embedded software engineers. For this, the student works in GETS design teams on individual projects in embedded software development, all under the mentorship of a Gannon professor. Since both mentors and students are available at the industrial site part-time, they are directly involved in ongoing industrial projects and can respond quickly to problems and new challenges (both technical and non-technical). Mentors play a key role, reviewing the student’s work before submission to the normal industrial review and quality assurance processes. The professor’s goal is to make the student’s inexperience invisible to the GETS management and to remove obstacles to the student’s advancement. As such he provides guidance in the following areas: 1. 2. 3. 4.
technical where to obtain information how to behave in the workplace written and oral communications (including ISO9001-required reviews and documentation 5. “soft-skills” of teamwork, leadership, and aggressiveness 6. direction to proceed As a part of this effort, each student prepares a short, bi-weekly report which is reviewed at the mentor coordination meetings. During the course of their industrial tenure (which typically begins the summer before they join the academic program), ESE students are given several three- to sixmonth projects. At the end of each project, the GETS
The graduate curriculum was designed to give the students the formal education necessary to be effective software engineers. A committee of Gannon professors and GETS managers constructed the curriculum with the following student outcomes: 1. Knowledge of program implementation strategies and when to use specific ones. 2. Knowledge of “good” code. 3. Knowledge of C and C++ 4. Knowledge of software design structures and algorithms and when to use them. 5. Knowledge of different software quality measures. 6. Knowledge of different software design techniques 7. Knowledge of software development tools and environments The embedded software program is an option in the Master of Engineering degree at Gannon, with more general Electrical Engineering and Mechanical Engineering options also being available. As part of a Masters in Engineering, ESE students are also required to develop knowledge in advanced mathematics expected of all graduate engineers. The technical electives allow the students to develop in areas of particular interest, and usually encompass control theory, machine modeling, microprocessor development, or advanced digital logic. The complete ESE program is listed below: Fall Semester First Year GE603 Engineering Analysis I GE585 Program Implementation in C and C++ Technical elective (3 credits) Spring Semester First Year GE703 Engineering Analysis II
GE676 Software Tools and Environments Addresses basic characteristics of coding environments including assemblers, compilers, and interpreters. The student should be able to identify operations of linkers, locators, and execution vehicles. CASE tools and codegeneration tools are also discussed.
Measuring Program Success To measure the success of the students and ultimately of the program, the material from the student reviews is compiled and assessed. The 360-degree forms measure how the student’s GETS peers view the leadership and the behavior in the industrial environment. The project evaluations indicate how the students are doing in getting their assignments completed. The individual items in both of these forms are given numeric values and the results are complied and tracked to indicate success. Comparisons of
Help Effectively Used?
Correct Issues Solved?
GE675 Embedded Software Paradigms Covers embedded software design techniques and considerations. Abstract data types and implementations including lists, trees, hashing, and heaps are covered. Also included are sorting algorithms, algorithm design techniques as well as an introduction to automata and abstract machine models.
1.00
Documentation Completed?
GE586 Software Engineering Methodologies Covers fundamental embedded software design techniques and considerations. Included are the goals of quality, repeatability, measurability. Design and analysis methodologies of structured analysis and object-oriented analysis and design are detailed.
1.10
Reviews Held?
GE585 Program Implementation in C and C++ Deals with the (1) construction of good algorithms independent of programming language, (2) translation of pseudo-code to implementation in C and C++, and (3) evaluation of program quality, time efficiency, memory efficiency, and program structure. Prerequisite is a working knowledge of C.
1.20
Completed on Time?
The four required ESE courses were developed in conjunction with GETS management, and the course content and methods are reviewed annually as a part of the ESE program review. A short course description for the required embedded software courses follows:
these self- and peer-evaluation measures to those of fulltime engineers on similar projects have consistently been above-average or better. A summary of the data collected over 24 months (16 projects, 9 students) is depicted in Figure 1 below. The students were rated by their industrial supervisors on a scale where 1.0 implied the level of performance expected of a qualified contract engineer. These mentored students performed at levels that consistently exceeded those expected of full-time (and more experienced) engineers.
Technical Content
GE586 Software Engineering Methodologies GE675 Embedded Software Paradigms Fall Semester Second Year GE676 Software Tools and Environments Technical electives (6 credits) Spring Semester Second Year GE 797 Master’s Project (6 credits) Technical elective (3 credits)
Figure 1. Avg. GU/GETS Project Ratings (1995-1996) A second measure of success is the feed-back and program steering received from GETS management in the regular student reviews and annual program reviews. The feedback has been excellent with the contract being renewed annually and the arrangement being emulated in other groups within GETS. Further opportunities for joint synergy have been pursued, to the advantage of the industry and academe. To date these mutual advantages have included on-site classes, adjunct teaching at Gannon, and availability of courses to regular GE employees. This measure of success can also be seen in the continued involvement of (incredibly busy) GETS managers in reviewing program materials and giving active feedback to the program. The final measure of success is the desirability of graduate students in their chosen industry. To date, eleven students have completed the program with two more due to finish in the Spring of 1997. These students are seasoned engineers equipped with tools to get the job done correctly. In competition with external candidates with much more experience, ten students have been offered positions at GETS and all of them accepted and are permanent
employees of GETS. The eleventh student finished during a hiring freeze and quickly found a job elsewhere. Based on our feedback from student self- and peerevaluations, GETS management, and the employment record of the participants, the program has been very successful. A primary reason for this success is that the Gannon mentors heavily participate in GETS activities and are available essentially every day. Thus the mentors can help bridge the gap from academe to industry by being available to the students for help and observing the students’ work on a daily basis. Direction to the students in the form of praise or admonition is available in a direct, personal and timely manner. In addition, the experience of having mentors consistently at the job site enables them to be aware of the GETS needs without being told. Thus they can respond very rapidly to opportunities and problems with the program or the students.
academic program and industrial practicum enables business and student needs to be mutually addressed resulting in well-seasoned, well-educated embedded software engineers. As a result, this embedded software engineering program and practicum has been very successful in developing recent engineering graduates into the experienced embedded software engineers sought by industry. The primary reasons for this success are: 1.
The consistent commitment to careful mentorship and communication on the part of academic mentors and industrial supervisors,
2.
Mentors and students availability at the industrial site part-time every day - thus both are directly involved in critical and ongoing industrial projects and can respond quickly to problems as they arise,
3.
Lessons Learned While these measures of success have been clearly evident, difficulties have also been observed. Over the seven years that the integrated program/practicum has been in existence, the following observations have been made: 1.
It is hard to predict from classroom performance how individual students will react in the work environment. In the classroom, students are (mostly) rewarded for individual work, not team efforts. In industry, team effort and accomplishments are prized. The “Lone Ranger” superstar does not always get the work done and follow the process in the work place. The difficulties this entails have become increasingly noticed with the push for ISO9001, CMM and other quality design efforts.
2.
Some students get so wrapped up in the GETS projects that they neglect their school work.
3.
The 25 hours per week during the semester with a load of 9 credits can be very intense. The GETS work has deadlines and the students may be called on to put in extra hours or travel which directly results in an inability to excel at class work.
4.
When a permanent position becomes available, the students often apply (and GETS hires) them before they get their Master’s project completed. Then company demands come first and the result is that a large number of students have never finished their projects (and consequently, their degree).
Conclusions There is a large need in industry for engineers with training and experience in software engineering, and the academe can move successfully to fill this need. The integration of
Carefully managed student selection, including active industrial participation - once selected, it is the mentor’s job to see that the students are successful. Based on the current success, the GU/GETS ESE program is currently being slowly expanded to include more students and mentors, and we are considering employing industrial mentors as well.
References 1) Wasserman, A., “Towards a Discipline of Software Engineering,” IEEE Software, (13:6), November, 1996. 2) Jones, C., “Gaps in Programming Education,” IEEE Computer, (28:4), April 1995 3) Martin, Richards, et al., “Proc. of the Workshop on Executive Software Issues,” (CMU/SEI-89-TR-6), Carnegie Mellon University, Pittsburgh, PA. 4) Kornecki, Hirmanpour, et al., “Strengthening Software Engineering Education through Academic Industry Collaboration,” Proc. 10th Conf. on Software Engineering Education & Training, April, 1997, pp. 204-211. 5) Nevada, J. F. and Lutz, M. J., “Crafting a Baccalaureate Program in Software Engineering,” Proc. 10th Conf. on Software Engineering Education & Training, April, 1997, pp. 74-80.
Acknowledgments The authors wish to acknowledge the contributions to this program made by Mr. Michael Anderson and Mr. James Nash of General Electric Transportation Systems and Dr. Fong Mak of Gannon University. They have been instrumental in the development of the program and guiding it to the success it enjoys today.