• No results found

A Graduate Program on Embedded Software Engineering in China

N/A
N/A
Protected

Academic year: 2021

Share "A Graduate Program on Embedded Software Engineering in China"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

A Graduate Program on Embedded Software Engineering in China

Kang Yimei

Software College of BeiHang University 37 Xueyuan Rd, Haidian District, Beijing, PRC, 100083

[email protected]

Abstract

Software has become a key component of embedded systems as more and more complex embedded systems have been developed. Currently most embedded system developers in China are graduated from Electronics, Mechanics, Automatic control and other majors. These developers are familiar with the application fields, but unfamiliar with systematic development process, method and management of software project. Moreover, the embedded software development is different from general software development. To provide more qualified software developers for embedded systems, we have founded a graduate program in embedded software engineering (ESE), which combines the embedded system development and software engineering (SE), with emphasis in state-of-art embedded software development methods and techniques. In this program, we teach students complex software analysis and design, construction and test. To name a few, students enrolled in this program learn (1) how to apply software architectures and software design patterns to embedded systems, (2) how to manage a large and complex software project, (3) Co-develop hardware and software, etc. This program includes a series of courses and a multilevel practice model. Some courses are provided by industries. The practice model includes four levels. In the fourth practice level, students will finish a complete project in industries under the project manager's instruction. They not only learn techniques and put into practice on embedded software development, but also experience the industry cultures. This 2-5 years graduate program is to train graduates to be well qualified for embedded software development positions in software industry.

1. Introduction

Embedded system is ubiquitous. It has been employed in aeronautics, aviation, industry control system, telecommunication, wireless equipment, network, medical instruments, mobile electronics, etc. Even many peripheral devices of general computers, e.g., printers and DVD drivers are embedded systems. With the development of techniques and requirements, embedded software are more important than ever in implementation of functionality and performance of embedded system.

Embedded software engineering (ESE) has been recognized as a new emerging discipline. ESE is an engineering discipline that is concerned with all aspects (e.g. pointed in SWEBOK) of software for embedded system in whole life-cycle of the embedded software system. Recently, the demands in world market for embedded software development have increased rapidly. Moreover, Chinese market grows faster than global average. In China, 30% of the revenue in software industry comes from embedded software products. Six of the top ten companies in Chinese software industry are dedicated in embedded software development, and 35.3% revenue of the top 100 software companies in China is from embedded software products. As Chinese market is becoming globalized, embedded software is developing more rapidly in China. Meanwhile, the Chinese market of mobile phone and household digital devices is also a potential huge market for embedded software development [1].

(2)

The rapid advance in embedded system demands more and more experts in ESE urgently. Among all the current job websites, the number of positions advertised for embedded software developers is among top five in the list in IT jobs. The current situation of lacking qualified developers in ESE may detrimentally impede the advance of the embedded software development in China. Thus, we developed a Master of Engineering Degree program dedicated to train qualified graduate students in this field in China.

The development of the program introduced in this paper at Software School of Beijing University of Aeronautics and Astronautics started in March 2005. The first group of students enrolled in the program in September 2005. In this paper, I will present the requirements and the organization of the course structure of this graduate program.

2. Requirements of the Program

2.1 Characteristics of ESE

The field of embedded systems is quite broad. Figure 1 shows some main rapidly developing application fields for ESE and skills required for developers in ESE in china. With the development of network and mobile techniques, the embedded system has become more and more complex and larger in scale. Meanwhile, the basic simple embedded systems are still indispensable. Therefore, the techniques and knowledge requirements for developers are much diversified depending on the application fields. For example, many controllers are designed and implemented with a 8-bit single chip and at most several hundreds C LOC without embedded operating system, while a telecommunication device is implemented in several hundred thousands C/C++ LOC with the Motorola 68040 general-purpose processor and VxWorks real-time operating system.

Figure 1. The main application fields and skills required for developers in ESE in china

Embedded system differs from other systems in the following aspects:

Integrated application of multidisciplinary approaches such as microelectronics, computer hardware engineering, telecommunication, electronic engineering, and software engineering etc.

Performance requirements more dominant than functional requirements: near-optimal performance, rigid real-time, robustness, tough reliability and security, distribution, concurrent, dynamism, mobility.

Resources constrained: limited CPU, memory, power, display window, push button or key board, etc.

Application Fields Mobile Application Telecommunication Automatic Control Instruments Information Appliances

Embedded OS (Linux, WinCE, VxWorks, UCOS) MCU (SCM, ARM, XScale, PowerPC, DSP, etc.)

Programming Language (C, C++, Java, Assemble language, etc.)

System analysis and design, testing, Process Management, etc.

Application Area Knowledge

(3)

Domain-Oriented: different hardware and software design depending on application domain.

A high degree of integration of software and hardware components [2].

Correspondingly, the methods, techniques, and tools for developing embedded software systems are heterogeneous and those applied in general purpose computers are not readily applicable in embedded devices. ESE is different from common SE in the following aspects:

Methodologies of software and hardware co-design.

Special methods for design (e.g. for rigid real-time requirements and concurrent requirements), integration, debugging, testing and maintaining along with formal methods in SE.

Algorithms of control, signal processing, communication, etc. And more, optimization to implement those in resource-limited environments.

Core application business description, design and construction (e.g. very complex behavior, characterized by numerous intricate scenarios in an artificial robot). Difference in development processes, methods, techniques and tools with respect

to application areas (figure 1).

Board-based device driver programs design and implementation.

Special-purpose programming languages, development tools and environments for cross-platform development [2].

2.2 Chinese software industry demands experts in ESE

As the proportion of embedded software in the entire software industry getting higher and higher, and the involved system getting more and more complex, the requirements for developers getting more and more diversified. A layered structure for the requirements at different development and management level is illustrated in Figure 2.

Figure 2. Current market requirements for experts in ESE in china

The embedded system analysis specialists are on the top level of the pyramid structure. They are required to have not only solid background knowledge in the application field but also possess the hardware, software analysis, design, and management skills.

The BSP developers are on the second level, which are required to have both software programming skills and background knowledge in hardware design and application field.

BSP developers System analyzer and

designer

Core application business developers

Application presentation and management developers

Knowledge in application field, hardware design, and software design, analysis and management.

Knowledge in hardware, interface design, and programming

Programming skills and in-depth knowledge in application field. Software development

(4)

The core application business developers are at the third level. They are required to have software programming skills and core application business experience. Because the core business logics are quite different in different embedded systems, the markets need more of these engineers.

The forth level is application presentation and management developers. Common software developers are qualified for such positions.

The goal of our program is to train qualified developers at the top three levels in the pyramid structure.

3. ESE professional model

In our graduate program, we intend to train graduates to be professional in all aspects. A model of skill and profession for embedded software engineers is illustrated in Figure 3. The model has three layers, which are profession makings, knowledge field and engineering ability.

Figure 3. A skill and profession model for embedded software engineers

Profession Makings is the fundamental level in the skill and profession model. When industries select employees, profession makings such as profession ethics, teamwork and communication skills are ranked at higher level.

Knowledge field is the second level. Since embedded software development is a method widely used in industry and academic research, the developers need not only skills in software development but also knowledge in the specific application filed. Therefore the prerequisite for the master’s degree program in ESE is an undergraduate education in Electrical Engineering, Automatic control, Mechanical Engineering, or other engineer or science fields to ensure that our students will be qualified in developing software in those fields. Currently, 30% students in this program have more than one year working experience in industry.

Engineering ability is at the top level in the skill and profession model. Engineering ability is a necessity for embedded software engineers to make a practical embedded system work [3]. To build a complete system, they need to learn new development environment and tools, and to integrate software and hardware. To build a complex system, they also need to learn the control of the development process and the management of the project.

4. Description of the Program

4.1 Program Goals

In China,

some of EE, CS or SE programs offer one or more courses in embedded system development on ARM or DSP, on WinCE or Linux. Those programs only provide students limited ESE development skills. In contrast, our program is dedicated to training

Project Management System

Integration Development Tools

Profession Makings Knowledge field Engineering Ability

Profession Ethic Teamwork ability Communication Skills Software Engineering

(5)

embedded software engineers equipped with integrative interdisciplinary knowledge (e.g. EE, CS, SE and ESE, application area knowledge), combine scientific thinking (especially system-level thinking) with an engineering ability in development and managing complex embedded software projects that involve teams in different areas, and aptitude for constantly learning new technologies

4.2 program structure

Figure 4. ESE master’s degree program courses

Figure 4 showed the 5-level courses for the master’s program. Students are required to take Foundation Required Courses, SE Required Courses and Engineering Practice I before enrolling in Specialty Required Courses. All other courses should be completed before Industry Practice.

Specialty Electives (select at least 7 credits)

Embedded Database

Mobile Telecom Technology and Embedded Application Embedded Software Development Based on J2ME WinCE and Embedded Software Development VxWorks and Embedded Software Development Programmable Logic Device and Application Industrial Networks and Fieldbus

DSP Embedded Software Development

Algorithms and Application in Embedded Systems

Specialty Required Courses (160 hours/8 credits)

Panorama of Embedded Systems Embedded Operating Systems

Analysis and Design of Embedded Software Testing of Embedded Software

Software Engineering Required Courses (128 hours/8 credits)

Software Engineering I (Methods) Software Engineering II (Process) Software Engineering III (Management) Lectures in New Technology

Foundation Required Courses (156 hours/8 credits)

English Mathematics

Technical Writing and Communication Skills Profession Ethics and Career Planning Industry Practice and Degree Thesis Engineering Practice II

Engineering Practice I (60 hours) Course projects

(6)

At the early stage of developing this program, we have written a set of text-books including Panorama of Embedded Systems, Embedded Software Design, Embedded Software Testing, Mobile Telecom Technology and Embedded Application, and Algorithms and Application in Embedded Systems.

Foundation Required Courses train students’ fundamental knowledge and skills, for example, document norms and standards, behavioral norms and standards.

SE Required Courses present student software development methods (e.g. JAD, DFD, UML, etc.), process (e.g. RUP, CMM, etc.) and management (e.g. SPP, SCM, SQA, etc.) in general SE. Because SE grows rapidly both in industry and academia, we invite experts from industry and academia to give student lectures discussing up-to-date approaches.

Specialty Required Courses are developed exclusively for ESE. These courses are new courses offered in this field and we are writing text-books for these courses which will be published in 2007.

Panorama of Embedded Systems course offers students fundamental knowledge of hardware and software in embedded systems, embedded software development process, methods, development environments and tools [4]. In this course, ARM 9 is introduced as a case for 32-bit processors, and uCOS-II is introduced as a case for real-time OS core. Assigned project is to develop a simple embedded system based on ARM9 as a class project. Embedded Operating Systems course introduces special features of embedded operating systems (e.g. OS for hard real-time systems), and analyze RTLinux core. In this course, students will learn how to cut down Linux and are assigned to write BSP.

Analysis and Design of Embedded Software course introduces classical analysis and design methods such as DARTS (design and analysis of real-time system) to design real-time software, and new approaches such as process and methods in software and hardware co-design, new analysis and design methods in SE into ESE such as software architecture to design more effective software in system level, software design patterns to design more flexible software (e.g. use adapter design pattern to design abstract interface). And more, trains students system-level thinking and engineering ability, for example how to choose right platform and tools (e.g. DFD or UML and Why) and use them correctly.

Testing of Embedded Software course introduces special features of embedded software testing. In this course, students will learn theories, methods and tools for testing and managing embedded software.

Specialty Electives teach students methods, technologies and tools in areas of specialized applications of ESE. For example, Industrial Networks and Fieldbus course teaches students concepts, technologies and applications of fieldbus and industrial networks, Algorithms and Application in Embedded Systems course teaches students algorithms (e.g. filter algorithms, optimization algorithms) in industrial control, telecommunication and data collection, etc, in emphasis how to optimize resource limited embedded systems.

Practice helps students improve the skills they learned from classes. In this program, we developed a series of practice to train students to apply the theories, methods and technologies in practice in advancing levels of projects from foundation to specialty, from simple to complex, from single person development to a team corporately development.

(7)

The practice structure in this program showed in Figure 4 has four gradually advancing levels as followings:

Engineering Practice I (60 hours)

Students are required to take Engineering Practice I before they take SE Required Courses, Specialty Required Courses, Specialty Electives, Engineering Practice II and Industry Practice.

Engineering Practice I is a foundation practice training which trains students C, C++ programming skills, a popular programming language in embedded software development. In Engineering Practice I, students are required to finish a software project using C/C++ independently.

Course projects

In order to teach students how to apply the theories, methods and technologies in practice, we show students case studies and assign course projects to students to practice. We provide the following labs for this program:

ARM Lab

DSP Lab.

Embedded Software Testing Lab

The labs are equipped with ARM 9/DSP development board, uCOS, Linux, WinCE, IAR JLink debugging tools and embedded software testing tools developed by Beijing Autosoft Jitong Technologies Ltd. In these laboratories, students work on their course projects for Specialty Required Courses and Specialty Electives, such as BSP (e.g. for Serial port, USB, GSM/GPRS, etc.). Course project is a part of Specialty Required Courses and Specialty Electives.

Engineering Practice II

Engineering Practice II is a thread to join the pearls, which requires students finish an embedded software project in groups with 5-6 persons/group. Each group selects their project, and finishes the design and implementation of the project within 3 months.

To provide students real industry practice opportunities, we have established a network with industry for a one-year industry practice at the end of their program. In this practice, students will face to solve various industry problems. Students are required to take Engineering Practice II course before they begin Industry Practice.

Industry Practice

Industry Practice is the most special course in the whole practice structure. After students complete all other required courses and practice, they will go to an IT company to do their Industry Practice. Currently, 51 IT companies have signed as our Industry Practice Base. These companies provide internship positions for students with a mentor for each student.

Each student will work in an Industry Practice Base company for at least one year. During this one year, they will take part in embedded system developing projects as a developer. Some students work on not only programming part but also designing part of the system. In general, after three months industry practice, most students can work independently; and after six months industry practice, many students will turn into good developers in the company,

(8)

and some students become group leaders. After one year’s practice, the student is expected to be a qualified professional embedded software engineer.

During Industry Practice, students are required to finish their Master’s degree thesis under the guidance of two mentors. One mentor is from the Industry Practice Base company, who helps the student to adapt to the real company environment and take responsibility in embedded system developing. Another mentor is from the Software School, who guides the student to do research on a subject related to the project in the Industry Practice Base company and write the degree thesis.

The students who enrolled in this program showed that upon the finish of the Industry Practice, 50% of the students chose to stay at the Industry Practice Base company, and the other students chose to apply for positions in new companies. Most students were very welcome by employers because they are equipped with interdisciplinary knowledge and practical skills before they enter the companies.

4.4. Evaluation

For required and elective courses, homework and projects count for 50-60% of final grade; test counts for 40-50% of final grade.

For Practice II, a QA team (a teacher and five students) evaluates each group on process quality (e.g. the meeting of planned schedule) which counts for 10% final grade, and software quality (e.g. document and code style) which counts for 20% final grade; a committee including three teachers evaluates presence and performance of the systems developed by each group which counts for 70% final grade.

Students will get 5 credits if they pass the Degree Thesis examined by a committee with five teachers.

5. Summary

To facilitate the tremendous demands for embedded software engineers in China, we have developed a ESE Master of Engineering Degree program in china which integrates interdisciplinary knowledge into embedded software development and combines theories and practices together to systematically train students in designing and implementing embedded software systems.

6. Reference

[1] CCID 2005-2006 Annual Report on Embedded Software Industry in China, Feb. 2006

[2] Bruria Haberman, Mark Trakhtenbrot, An Undergraduate Program in Embedded Systems Engineering, Proceedings of the 18th Conference on Software Engineering Education & Training (CSEET’05)

[3] Liu Xiang, Exploring and Practice in Training Embedded Software Engineers, IT Education, May 2005, P53-55

[4] Wei hongxing, Wang Tianmiao, Curriculum of Embedded System for Software Colleges, IEEE and ASME MESA06, P240-244, 2006;

References

Related documents

While Ehlers’ framework ad- dresses many of the operational issues involved in e-learning measure- ment, he does not address the questions for whom the measurement should take

(3) The relationship between social support and smoking cessation outcomes (change in cotinine scores, cigarette use, withdrawal, urges, motivations for quitting smoking, and LDA

Despite national recognition of the need for pregnant women to be assessed and treated by acute physicians with training in obstetric medicine during an acute medical illness, there

Daniel orifice flange unions meet the most stringent tolerances and recommendations for flanges as specified in ASME B16.36, STEEL ORIFICE FLANGES , and API’s MPMS Chapter 14 ,

The small-scale variation of benthic diatom assemblages on different substrates is not very well studied in freshwater and it is not known what impact it has on the bioindices

In their research on the Chinese immigrant experience, Liao and Seeborg (2015) find that variables such as year of alTival, citizenship status and English-speaking abilities

§  Online behavioral advertising refers to the practice of ad- networks tracking users across web sites in order to learn user interests and preferences.

As is indicated in 9.1 above, the funding framework makes provision for a normative total of research outputs for the public higher education system to be calculated by