Session 11b7 Integrating an Industrial Practicum into a ... - CiteSeerX

1 downloads 0 Views 34KB Size Report
November 10 - 13, 1999 San Juan, Puerto Rico ... The GU/GETS program goal is to give the electrical ... To meet these goals, the GU/GETS program has two.
Session 11b7 Integrating an Industrial Practicum into a Graduate Embedded Software Engineering Program Stephen T. Frezza & Samuel L. Hazen Department of Electrical and Computer 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. Described herein is the role of the mentor and details of the industrial practium.

Introduction

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]. Our observations of undergraduate Electrical and Computer Engineers recruited for embedded software positions have supported these assertions. 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 goals are to give the graduate students

1. Experience in the industrial setting, particularly As computers have become ubiquitous, computer-based with large, on-going embedded software control is replacing both mechanical and electrical controls development efforts, and that existed in the past. Computer-based control systems 2. Rigorous, integrated education and training in with quality software increase flexibility, decrease Embedded and Software Engineering processes, manufacturing costs, and increase both reliability and principles, and methods. maintainability. To develop this software, heavy manufacturing companies are hiring and training large To meet these goals, the GU/GETS program has two numbers of engineers in software engineering. This shift essential parts. The first is the formal (classroom) reflects the growth in software engineering concerns such as instruction; the second is mentored work experience software analysis, design, implementation strategies, and combined with appropriate rotations to allow the student to software quality assurance[1]. The need for engineers to experience various facets of embedded software have knowledge and experience in these areas was minor a development. The following section briefly describes few years ago, but it is of utmost concern today. As a result, Gannon University’s Embedded Software Engineering these companies have a huge need for good engineers who program, which is the academic portion of the GU/GETS understand real-time control of electric machinery, ESE Program. The overall implementation of the program, understand microprocessor implementation, and can specifically the issues involved in establishing an effective implement quality software for large embedded industrial partnership for a successful integrated program applications. Thus, these companies need engineers not 0-7803-5643-8/99/$10.00 © 1999 IEEE November 10 - 13, 1999 San Juan, Puerto Rico 29th ASEE/IEEE Frontiers in Education Conference 11b7-21

Session 11b7 have been described elsewhere [5]. This paper details the integration of the academic program and industrial practicum, and in particular describes how the success was measured and the results of those measurements. In this paper, the program curriculum is reviewed briefly, and the key aspects of the practicum are discussed in detail. These sections are followed by a short discussion of the program successes, lessons learned, and concluding remarks.

GU/GETS Program Curriculum The graduate curriculum was designed to give the students the formal education necessary to be effective software engineers. The student outcomes are the following: 1. 2. 3. 4. 5. 6. 7.

Knowledge of program implementation strategies and when to use specific ones. Knowledge of “good” code. Knowledge of C and C++ Knowledge of software design structures and algorithms and when to use them. Knowledge of different software quality measures. Knowledge of different software design techniques Knowledge of software development tools and environments

The curriculum consists of three to five technical electives and seven required courses: two mathematics courses, four ESE courses, and the master project. The four required ESE courses were developed to meet the above objectives. A short course description for the required embedded software courses follows: 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. GE586 - Software Engineering Methodologies Covers fundamental embedded software analysis, design and testing techniques. Included are the goals of quality, repeatability, and measurability. Focus is on UML-based analysis and design methods, and ObjectOriented Testing techniques. GE675 - Embedded Software Paradigms Covers embedded software design techniques and considerations. Abstract data types and implementations including lists, trees, hashing, and heaps are covered. Includes sorting algorithms, algorithm design techniques

as well as an introduction to automata and abstract machine models. 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 code-generation tools are also discussed. The technical electives allow the students to develop in area of particular interest, and usually encompass control theory, machine modeling, microprocessor development, or advanced digital logic. These courses are spaced out over the two-year (four-semester) duration of the GU/GETS program. The integrated program is 36 credits (9 credits per semester) and includes a 3 credit Masters project. These Masters projects typically focus on a substantial GETS project that may be partially completed during their working hours.

GU/GETS Program Practicum The necessary experience in large embedded projects that these engineers need is not provided by the standard model of additional university (graduate) training, nor by specialized job-site seminars. This integrated practicum was developed with joint industrial and academic participation in an effort to provide this necessary experience and to meet the differing needs of new engineers as both graduate students and new employees. The practicum goal is to help degreed engineers develop into experienced embedded software engineers, and consists of two major components, mentoring and rotations. For this, the student works in GETS design teams on individual projects in embedded software development, all under the mentorship of a Gannon professor. Furthermore, the student is rotated through several assignments to permit them to experience the various facets of software development. 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 nontechnical). One of the most unique and successful aspects of this program has been the mentor relationship - 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 and advising 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

0-7803-5643-8/99/$10.00 © 1999 IEEE November 10 - 13, 1999 San Juan, Puerto Rico 29th ASEE/IEEE Frontiers in Education Conference 11b7-22

Session 11b7 AC6000 Lead Software Engineer Faculty Mentor

Engine Cooling Student 1

Traction Alternator Student 2

Engine Management Contractor

Propulsion Faculty Mentor

Figure 1: Project Manager Model for the GETS AC6000 development project environment and gradually increases the scope and the difficulty of the projects as the student becomes more competent. 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. 5. 6.

technical where to obtain information how to behave in the workplace written and oral communications (including ISO9001-required reviews and documentation) “soft-skills” of teamwork, leadership, and aggressiveness direction to proceed

There are two models for the implementation of the mentor role: (1) the project manager model and (2) the project advisor model. Project Manager Model In the project manager model, the mentor acts as a lead software engineer, working with several graduate students and leading them in the completion of several closely related projects. In this model, the mentor not only works on his own portion of the project, but also supervises students and GE employees in the completion of their tasks. Like other lead engineers, the mentor is also responsible to the overall GETS management, and is responsible for the quality and timely delivery of his portion of the project. An example of the project manager model came during the recent development of the AC6000 locomotive, a 200,000+ -line embedded system for the control of a 6000

horsepower diesel-electric locomotive. For this project, the faculty mentor became a lead software engineer for the development of software to control four locomotive subsystems shown in Figure 1 below. As a project manager, the mentor was responsible for the software development of the Engine Cooling, the Traction Alternator, the Engine Management System, and the Propulsion and four other subsystems. The mentor directed the students through all of the software development phases, including the completion of Software Requirement Specifications, Software Design Documents, code development, Software Test Plans, and testing (unit testing, simulator testing and locomotive testing). Each of the deliverable documents plus code was subject to peer reviews by other developers including other students and seasoned GETS engineers. The mentor also took on the responsibility to develop the software for the propulsion subsystem himself. The AC6000 project lasted 2 years during which the mentor and the graduate students developed and tested about 100,000 lines of code. During field tests, one of the graduate students made several trips to the field to trouble shoot software and install new upgrades. Although the AC6000 was a large project, there are smaller projects using the same model. These often consist of development, testing, and implementation of real-time simulator models. The mentor is given full responsibility with the needed time schedule and has one or more graduate student working for him. These projects last from 3 to 6 months. Examples include simulation of (1) traction alternator; (2) shorted diode protection panel, and (3) engine cooling system. Project Advisor Model In the project advisor model (see Figure 2), the faculty mentor serves only the role of advisor and does not have direct project responsibilities. Here there is a GETS lead

0-7803-5643-8/99/$10.00 © 1999 IEEE November 10 - 13, 1999 San Juan, Puerto Rico 29th ASEE/IEEE Frontiers in Education Conference 11b7-23

Session 11b7 engineer with project responsibilities and the graduate students are simply engineering resources he has been assigned to get the job done. The faculty mentor works to make the student’s inexperience invisible to the GETS management and to remove obstacles to the student’s advancement. As such the mentor advises the student on all aspects of the job and reviews all work before it goes to the other engineers for peer review. The mentor is also available to the lead engineer in an advising capacity, and works with the lead to monitor the students’ progress. An example of this model in operation is the DC locomotive software. The DC locomotive is a mature product with most of the software development being done in response to either problems operational locomotives experience or enhancements ordered on a new requisition. The graduate students along with GETS software engineers are given specific assignments for which they refine the software requirements, write the design documents and test plans, and modify the locomotive code. These assignments vary from several weeks to six months. Examples include changing (1) the display units from English units to metric units, (2) implementing a new motor thermal model, and (3) writing code to collect locomotive operating statistics. The implementation of these two mentoring models is dependent on two factors: The immediate needs at GETS and the availability of the faculty mentor. The GETS managers and the current availability of their staff and requisitions track the first factor, while the second is dependent on the teaching load and University-related responsibilities of the mentor. Currently, there are three faculty mentors working with nine students in the program;

Simulator Group

Off Highway Vehicle

Locomotive Requisition Group

Custom Services Engineering

Systems Integration Group

Figure 3: Possible GU/GETS Student Rotations

the mentor hours range from 20+ hours/week at GETS to 5 hours/week.

Student Rotations The second major component of the industrial practicum is the planned rotation of students through different projects to obtain a wider experience base. These rotations are coordinated by the mentor coordination group consisting of the faculty mentors and GETS managers. In making assignments, the coordination group takes into account the desires and capabilities of the student, as well as the GETS’ project needs. The possible rotation groups consist of the following: Simulator Group – Develops and maintains the locomotive simulators used for integration testing. They are responsible for integrating the control panels (used on the locomotive) with locomotive software with simulators that contain dynamic models for the remainder of the locomotive. They also are mainly responsible for the development of the real-time dynamic models. Locomotive Requisition (Product Software) Group – Responsible for implementing new software required by the locomotive requisitions. This could range from changing a few displays to implementing totally new functionality. Focuses on new locomotives leaving the factory. Systems Integration Group – This group is responsible for writing the system design specifications for the locomotive subsystems, for integrating the hardware and software, and for doing integration testing on the simulator and locomotive. Advance Products Group – Provides enhancements (hardware and software) for improved facilities on existing customer locomotives. Off Highway Vehicle Group– Responsible for implementing new and enhanced software largecapacity vehicles typically used in mining operations. Students often start on a simulator project (see Figure 3) where they learn about software testing, configuration management, and locomotive operations. Then they can rotate through assignments on locomotive or off-highway vehicle requisitions, simulator development, or advanced products. The system integration group is for experienced engineers, and the students must be in their second year and have completed at least one assignment with the locomotive requisition group before they can do a systems integration

0-7803-5643-8/99/$10.00 © 1999 IEEE November 10 - 13, 1999 San Juan, Puerto Rico 29th ASEE/IEEE Frontiers in Education Conference 11b7-24

Session 11b7 1.20

assignment. Each assignment typically lasts from three to six months and the students can do more than one assignment with a group. Currently there are two students with the systems analysis group (not shown), three students with the simulator group, three students with the advanced product group (not shown), no students with the systems integration group, and five students working with the locomotive requisition group.

1.10

Measuring Program Success

Help Effectively

Solved?

Correct Issues

Completed?

Documentation

Reviews Held?

Time?

Completed on

Content

Technical

To measure the success of the students and ultimately of the program, project evaluation forms are completed at the end of each project by their supervisors. The individual items in both of these forms are given numeric values and the results are complied and tracked to indicate success. Comparisons of 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. 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, thirteen students have completed the program with two more due to finish in December 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, twelve students have been offered positions at GETS and all of them accepted and are permanent employees of GETS. The other 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

1.00

Figure 4: Student Project Performance Ratings Gannon mentors, both in the project management role and the project advisor role participate heavily and continuously in the day-to-day GETS activities. This enables the mentors to successfully bridge the gap between their academic training and their industrial experience 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.

Lessons Learned While these measures of success have been clearly evident, difficulties have also been observed. Over the eight 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 schoolwork.

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

0-7803-5643-8/99/$10.00 © 1999 IEEE November 10 - 13, 1999 San Juan, Puerto Rico 29th ASEE/IEEE Frontiers in Education Conference 11b7-25

Session 11b7 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 embedded software engineering, and the academe can move successfully to fill this need. The integration of 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.

Carefully managed student selection, including active industrial participation - once selected, it is the mentor’s job to see that the students are successful.

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) Hazen, S. L, and Frezza, S.T., “Integrating Embedded Software Engineering Program and Practicum,” Frontiers in Education Conference, November 1997, Pittsburgh, PA.

Acknowledgments The authors wish to acknowledge the contributions to this program made by Mr. Michael Anderson, Mr. Brian Scallan, 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.

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. 0-7803-5643-8/99/$10.00 © 1999 IEEE November 10 - 13, 1999 San Juan, Puerto Rico 29th ASEE/IEEE Frontiers in Education Conference 11b7-26

Suggest Documents