EEE3074W Icon

EEE3074W: Embedded Systems

Use of ESAOA

UCT Logo




Introduction Details Definitions


Scope: This page described how the Embedded System Artifact Organization and Adaptation (ESAOA) framework is used in EEE3074W.



The Embedded System Artifact Organization and Adaptation (ESAOA) framework is used in the laboratory practicals and in the project for this course. The ESAOA framework is still under development, but we have tried to eliminate the most troublesome faults in order to ensure that it is useable by students doing this course. ESAOA integrates three aspects: 1) an embedded system application framework that contains digital design artifacts and implementation artifact; 2) a knowledge base that associates digital artifacts within the application framework and captures contexts, problems and solution strategies; and 3) knowledge management process documents that describes the way ESAOA is used. Figure provides a UML diagram showing the design of ESAOA.
Figure1: Design of ESAOA framework (click on a block for definition).
The first practical for the course explains use of ESAOA and how to develop a simple application using it as part of your development process. Additional detail on using ESAOA is provided with the ESAOA-Tools distribution.


In this document, knowledge is considered to reside within the mind of an individual, and an individualís knowledge is defined as information in context combined with the individuals understanding and capability within a context [1]. For this course, the context relates to embedded system implementation methods, and the particular platform and tools used to implement aspects of an embedded system. A personís understanding is the way that person interprets information related to a certain context, while capability is a personís ability to take action (e.g. being able to use tools, write C code, and build circuits).
Implementation knowledge aggregates context, information, capability, and understanding that an embedded software engineer needed to carry out an implementation method within a context defined by the platform and tools used in the embedded system project. Implementation methods are the actions that are carried out by the engineer to implement a component of an embedded system. Embedded system engineers can be considered as a type of "knowledge worker", since these individuals predominately their minds, more than their hands, to accomplish work. Knowledge work is work performed by a knowledge worker that is largely accomplished through mental effort (such as drawing UML models and writing code). Knowledge workers are educated individuals who use their education and experience to achieve their objectives [2].
Knowledge management involves the capture, organization, classification and dissemination of knowledge, and it can be viewed as a method to treat information, and the interaction between people interested in that information [3].

Knowledge work can be made more efficient through the use of a knowledge management system (KMS). Since knowledge is context dependent, a knowledge management system used to manage a certain type of knowledge needs to be appropriately designed for the context concerned; and this is where the ESAOA framework fits in.

What is ESAOA?

The ESAOA framework combines a knowledge management system and application framework. The aim of ESAOA is towards an almost seamless integration between embedded system development activities and knowledge management activities, so that while an engineer is developing a system, knowledge management methods associated with these activities can be carried out efficiently without imposing excessive overhead. It is intended that ESAOA will be highly intuitive, and become as a second nature to engineers using the framework, so that as development activities are performed in conjunction with a small amount of additional effort to ensure effective knowledge management is achieved.

In the ESAOA framework, development activities are divided into a number of aspects, such as: experiment with possible solutions, writing logs, searching for information, and reading datasheets. Each aspect involves best practices, based largely on the literature, and tasks that involve certain artifacts in an ESAOA application framework and their associated knowledge base artifacts.

Reason for Using ESAOA in EEE3074W

The ESAOA framework resulted from a decision made in 2004 to establish a new electrical engineering course at the undergraduate level which focuses on the development of embedded systems. EEE3074W was the course code allocated to the new course. A pilot study was used in designing the course in order to discover how students doing this course can be more independent in learning to use development tools and electronic components applied in the practical component of the course. The term development tools used here covers software programs, such as compilers, linkers, CAD programs, embedded operating systems and laboratory equipment, such as oscilloscopes and multimeters. The term electronic components refer to microcontrollers, peripherals and other circuit elements from which an embedded system is assembled. Due to the task-specific nature of embedded systems, the choice of tools and components used to construct these are often differ significantly between projects. Consequently, even professional engineers working on embedded systems often spend many hours learning how to use development tools and electronic components that they have not encountered before.

Embedded systems are becoming a popular part of electrical engineering research projects both at the fourth-year project level and in more advanced contexts, such as MSc and PhD research projects. This is true both locally and in overseas universities. Here at UCT, the use of embedded systems in research projects are not limited to the electrical engineering department: indeed, these systems are being seen in other departments such as computer science, mechanical engineering and civil engineering. At present, the engineering department is focused on supporting their own need for embedded system support. Consequently, part of the motivation of EEE3074W is to ensure computer engineering students are knowledgeable of embedded systems development methods so that they are well prepared to solve development problems in future projects, such as in fourth-year final projects. EEE3074W has been opened to computer science students, although computer science students who have not completed all the prerequisite courses for this course need to seek permission from the lecturer to register for this course (this may include a short written examination).

The emphasis in EEE3074W is not to coerce students into learning routine procedures for using a specific choice of tools. Rather, the course is intended to enable students to build their own engineering methods so that they are well prepared to guide themselves in learning how to use specialized development tools and electronic components used in constructing or customizing an embedded system, in effect accounting for the fact that the students are likely to work on future projects using tools and electronic components that were not covered in the labs of this course. The main objective of this rather elaborate strategy is to provide the students with a high quality learning experience which will provide lasting techniques that will serve them in future academic projects, and in a possible future career as a computer engineer.

Use of ESAOA In Laboratory Practicals

EEE3074W does not follow the traditional laboratory tutorial, repeat-after-me approach. The laboratory tutorial approach is the traditional way of teaching engineering students how to use development tools and components. Project courses are an alternate method practiced by some universities, in which students are given the task of developing an embedded system and accomplish this task without support of tutorials and tutors. In project courses, students are usually allowed to collaborate with their classmates to a certain degree, which includes showing each other how development tools and components work.

There are benefits to both the tutorial approach and the project course approach. In terms of practical experience in this course, we chose to use a strategy which involves some aspects of laboratory tutorials and some aspects of project courses, together with guidelines for learning to use (as apposed to showing how to use) development tools. We used theories of knowledge engineering in our investigation to provide ways of classifying knowledge, and for looking at how knowledge is acquired and built upon. The ESAOA framework plays a principle part in the this strategy: the students build on the framework, both in terms of capturing development methods and maintaining implementation artifacts in a comprehensive structure.

The practicals are done in groups of two, and we advise students to choose a lab partner who is not part of their own project group. This way, students can have close interaction, and leverage knowledge, from outside their own project groups.

Use of ESAOA In The Project

The project in this course is essentially an extension to the design of the practicals: the projects focus on directing the students to solve certain types of development problems while constructing (or adapting) an embedded system. Artifacts developed during lab practicals can be added in to the project framework. Since the pracs are designed to touch on some of the more difficult aspects encountered in stages of the project, each project group has a wider network of expertise to draw on if each member of the group associates with different individuals when doing their lab practicals.

Obtaining ESAOA

ESAOA involves three types of distributions (i.e. files to download), these are:

Visit the directory /EEE3074W/Software to obtain distributions of ESAOA-Tools and the development tools used on forge if you want to install the same software on your own PC. At this stage, only the Linux (Debian) versions of the software are available; if you have time to find and download the equivalent Windows variants, I would appreciate if you can pass on the downloads to that I can add them to the software directory.


[1] Groff, T., and Jones, T. (2003) Introduction to Knowledge Management: KM in Business, Butterworth-Heinemann, Amsterdam

[2] Drucker, P. (2000) Leader to Leader.

[3] McDermott, R. (1999) Knowledge and Communities, Butterworth Heinemann. Lesser et al (Eds)., 21Ė35.

Navigation: [Start]

Copyright (c) 2006, S. Winberg, University of Cape Town. Site maintained by: S. Winberg, Department of Electrical Engineering, University of Cape Town.