Download as pdf or txt
Download as pdf or txt
You are on page 1of 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
kangyimei@yahoo.com

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

20th Conference on Software Engineering Education & Training (CSEET'07)


0-7695-2893-7/07 $20.00 © 2007
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.

Application Fields Techniques & Knowledge Requirements

Mobile Application  Embedded OS (Linux, WinCE, VxWorks, UCOS)


Telecommunication  MCU (SCM, ARM, XScale, PowerPC, DSP, etc.)
Automatic Control  Programming Language (C, C++, Java, Assemble language,
etc.)
Instruments
 System analysis and design, testing, Process Management,
Information Appliances etc.
 Application Area Knowledge

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.

20th Conference on Software Engineering Education & Training (CSEET'07)


0-7695-2893-7/07 $20.00 © 2007
 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.

System Knowledge in application field, hardware


analyzer and design, and software design, analysis and
designer management.

Knowledge in hardware, interface design, and


BSP developers programming

Core application business Programming skills and in-depth


developers
knowledge in application field.

Application presentation and management developers Software development

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.

20th Conference on Software Engineering Education & Training (CSEET'07)


0-7695-2893-7/07 $20.00 © 2007
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.
Engineering Ability Project Management System Development Tools
Integration

Software Engineering Application Area


Knowledge field Hardware
Method

Communication Skills
Profession Makings Profession Ethic Teamwork 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

20th Conference on Software Engineering Education & Training (CSEET'07)


0-7695-2893-7/07 $20.00 © 2007
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


Practice (9 credits)

 Industry Practice and Degree Thesis


 Engineering Practice II
 Engineering Practice I (60 hours)
 Course projects

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

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.

20th Conference on Software Engineering Education & Training (CSEET'07)


0-7695-2893-7/07 $20.00 © 2007
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.

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

20th Conference on Software Engineering Education & Training (CSEET'07)


0-7695-2893-7/07 $20.00 © 2007

You might also like