Abstracts
The
following abstracts are for papers presented at the Embedded
Systems Conferences, by Niall Murphy. If you can not attend
one of the conferences listed above, but are interested in getting
more details on one of these papers then contact
Niall Murphy by e-mail.
User
Interface Design
Duration:
Full Day Tutorial
Target
Audience: Engineers implementing user interfaces who have
to design the interaction between user and device.
Will
Learn: The attendee will learn the process of designing
the user interaction by performing task analysis and usability
trials. They will also learn to identify properties in an interface
such as equal opportunity, directed and undirected interfaces,
and then to decide when to use these properties in their own
design.
Abstract:
Ease of use can be a major selling factor in a modern product.
As embedded systems become more sophisticated, making new features
intuitive is a huge challenge. This course teaches the software
engineer or user interface designer the skills required to design
a new user interface or recognize where an existing interface
can be improved. The class strikes a balance between concrete
topics such as menus and icons, and providing the student with
general principles for good design, such as direct manipulation.
Common user errors such as mode errors are discussed. The class
also examines the process of developing a user interface by
task analysis and how it is evaluated in user trials.
Both
graphical and non-graphical interfaces are considered, and examples
discussed include industrial equipment, medical equipment and
consumer devices, drawn from the instructors wide experience
consulting, writing and teaching about user interface design.
Top
Ten Usability Mistakes
Duration:
1.5 Hour
Target
Audience: Engineers implementing user interfaces who have
to design the interaction between user and device.
Will
learn: The attendees will learn how to identify end remove
the most common mistakes made in the design of the user interface
of an embedded device. The class teaches how to apply a critical
eye to a usability design to identify where the user is likely
to be confused or feel caught out.
Abstract:
In embedded user interfaces, the same mistakes appear again
and again. A device with multiple modes confuses the user, or
a screen times out just when the user is about to press a key.
The text of the display uses terms that make sense to the engineer
that designed the device but baffle the ordinary user. The user
keeps hitting the wrong button, but can not figure out why.
This class will address these problems as we look at a set of
examples of real products to identify the most common and easily
eliminated usability mistakes.
Memory
Management Part 1
Duration:
1.5 Hour
Target
Audience: C programmers that use or are considering using
a heap for dynamic memory management.
Will
learn: Attendees will learn how to evaluate the memory management
options available to them and decide if malloc and free is appropriate
to their project. They will learn exactly how the standard malloc
and free work, and how they could implement an alternative version
with properties better suited to an embedded system.
Abstract:
Embedded systems face a number of challenges in the area of
memory allocation. Use of memory whether global, stack based
or heap based, must be measured to ensure the resources available
are sufficient. The general purpose allocation mechanism available
with most compilers can suffer from fragmentation, regardless
of how carefully it is used. This is not acceptable for systems
that have to run for long periods. Also a general purpose allocation
scheme usually has undeterministic real-time properties as it
may have to perform a search for memory of the appropriate size.
This class looks at some custom alternatives that eliminate
fragmentation and searches, such as fixed size pools.
Memory
Management Part 2
Duration:
1.5 Hour
Target
Audience: C programmers that use or are considering using
a heap for dynamic memory management. Will learn: Attendees
will learn how to measure heap usage and how to locate memory
leaks by identifying the source code line that allocated a block
that was never freed.
Abstract:
When using malloc and free there is a danger that memory
leaks will be introduced into your program. In the case where
there is no memory leak, the programmer may still want to measure
the amount allocated and freed to confirm that there is no problem.
When there is a leak it is vital to identify the exact line
where the allocation took place so that the bug can be fixed.
This class looks at debugging code that can be inserted into
your program to give the programmer a measurement of heap use.
Graphical
User Interfaces for Embedded Systems
Level:
Beginner and Intermediate
Duration:
Full Day Tutorial
Prerequisite:
A knowledge of C programming. Knowledge of C++ and Real Time
Operating Systems also helpful, but not essential.
Abstract:
Many developers of small embedded systems are faced with the
challenge of developing a graphical user interface, possibly
without the support of a third party graphical operating system.
This class explores the design of a library to support simple
graphical objects such as lines, boxes, circles, text, bitmaps
and buttons. These objects can be created on the display and
later the application can alter attributes such as position
or color. A container hierarchy will allow us to manage different
areas of the display independently and to switch between different
screen layouts. We will look at managing the refresh of the
display by tracking the areas of the display that have changed
between updates. We will investigate sources of bitmaps and
fonts and the conversions necessary to make them useful on an
embedded system. Queuing and handling events from a mouse or
touchscreen is also discussed.
Safety
and the User Interface
Level:
All Levels
Duration:
1.5 Hour
Abstract:
This class identifies many of the safety hazards inherent in
the design of the man machine interface. Many risks are present
in systems where the software and hardware are functioning perfectly.
If the way in which information is presented to the user is
confusing or ambiguous then the user may take longer to make
critical decisions. Safety is often traded off against ease
of use. The design of alarm systems will be discussed. A number
of case studies will pinpoint dangers in the user interface
of real world designs. Learning from other's mistakes is far
cheaper than learning from your own.