2c2ace01d01

8
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 softw are project, (3) Co-develo p  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 e mbedded software development [1]. 20th Conference on Software Engineering Education & Training (CSEET'07) 0-7695-2893-7/07 $20.00  © 2007

Upload: juciara-nepomuceno

Post on 08-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 1/8

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 tencompanies 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].

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 2: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 2/8

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 BeijingUniversity 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 aremuch 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

Techniques & Knowledge Requirements

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 3: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 3/8

  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

Systemanalyzer and

designer

Core application business

developers

Application presentation and management developers

Knowledge in application field, hardwaredesign, and software design, analysis and

management.

Knowledge in hardware, interface design, and

programming

Programming skills and in-depth

knowledge in application field.

Software development

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 4: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 4/8

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 insoftware 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

IntegrationDevelopment Tools

Profession Makings

Knowledge field

Engineering Ability

Profession Ethic Teamwork abilityCommunication Skills

Software EngineeringMethod

Hardware Application Area

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 5: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 5/8

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 Plannin

  Industry Practice and Degree Thesis

  Engineering Practice II

  Engineering Practice I (60 hours)   Course projects 

Practice (9 credits)

 

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 6: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 6/8

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, wedeveloped 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.

 

4.3. Intensive practices for the graduate program

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 7: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 7/8

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,

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007

Page 8: 2C2ACE01d01

8/7/2019 2C2ACE01d01

http://slidepdf.com/reader/full/2c2ace01d01 8/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 Basecompany 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 forSoftware Colleges, IEEE

and ASME MESA06, P240-244, 2006;  

20th Conference on Software Engineering Education & Training (CSEET'07)0-7695-2893-7/07 $20.00  © 2007