Richard Bloor
Monday, 12 January 2004
Metrowerks latest Symbian OS toolset will help device and application developers
track down quality issues with their code. SymbianOne talks with Greg Hemstreet
about Metrowerks latest offering.The range and depth of tools for Symbian OS, both for device manufacturers and
third party developers, has been steadily improving. The latest, Metrowerks CodeTEST
for Symbian OS, delivers developers working on reference boards, with production
devices or the emulator tools to help identify memory and performance problems,
as well as review code structure and code coverage.
Richard Bloor recently caught up with Greg Hemstreet, Director of Product Marketing,
Standard Products and Core Technologies for Metrowerks to find out more about
the tools.
Richard: Greg thanks for finding the time to talk with SymbianOne. I'd like to start
by just recapping on the addition of CodeTEST to the Metrowerks family, because
it was an acquisition I believe?
Greg: Yes we acquired the technology from Applied Microsystems about 18 months ago.
At that time the tool was focused mainly on the telecommunications and avionics
market. Over the course of 2003 we have been adding support for the operating
systems Metrowerks supports, both desktop and those in the wireless market. So
we support embedded Linux, which has some wireless applications, and now Symbian
OS.
Richard: What were reasons for adding Symbian OS early in the development cycle?
Greg: We have been making a concerted effort in the Symbian OS market, we are selling
CodeWarrior tools into that market and have good relationships with device manufactures
and developers. We believe we have identified a real opportunity to introduce
an analysis product because the industry is maturing and focusing on those quality
issues which CodeTEST helps address.
Richard: Having identified the need, what tools have you provided in CodeTEST?
Greg: There are four elements to the CodeTEST suite performance, memory, trace, and
code coverage tools. While code is running on a platform, the developer can ask
how it is performing both in execution times and memory usage, and what it doing,
where in the code it is and what code it is using over time. With these tools
developers can really understand the characteristics of the application as it
runs. As such, CodeTEST is the first comprehensive set of tools for Symbian OS
code analysis.
What makes CodeTEST unique is that we have a hardware version which allows developers
to connect a probe to a reference board and get information in the same way as
they would from a logic analyzer. So you are able to get very accurate information
without the analysis process affecting the software's performance. This allows
the developer to really understand what the application is doing.

The CodeTEST Hardware In-Circuit (HWIC) probe with Mictor-38 connections.
We also have a software version which runs with a production device and a native
version, so called because the probe runs on the same machine as the analysis
tools, which allows developers to work with the Virtio simulator or the Symbian
OS SDKs which come with the CodeWarrior IDE.
These tools all allow developers to understand how their applications are performing.
With the hardware version this can be over an extended time as we have a huge
data collection unit which allows the performance of the software to be recorded
over hours or days.
Richard: Most analysis tools have some limit to the details they can provide, how comprehensive
is CodeTEST?
Greg: We believe we can provide the developers with all the information they need.
For example we can instrument to be able to tell you how long each statement is
taking. This gives a clear and accurate picture of what is happening and is really
important when you have multiple tasks running simultaneously, something we are
seeing more of as Symbian OS applications become more complex.
Richard: So, for example, you get a detailed picture for each active thread?
Greg: Absolutely, each thread, or if you wish you can aggregate the information.
It is the developer's choice and one they make as they instrument the code. We
provide a utility that instruments the source code, which then gets compiled into
the application that is downloaded to the board, device or emulator. So as the
application runs we monitor the instrumentation through the probe and bring that
information back into CodeTEST for display and analysis, where you can aggregate
that information or leave it as independent tasks.
Richard: Instrument at the source level obviously slightly alters the application, what
effect does that have on the validity of the results?
Greg: The effect depends on the type of probe you are using. Instrumentation always
adds instruction to the executable code, but in the case of the hardware probe
all we are doing is adding 32 bit memory move instructions to identify the location
in the code. This is the smallest amount of code that you can add when instrumenting.
As a result we have very little intrusion, and that is why we created a hardware
version in the first place, so developers could get as close to the running code
as possible with little or no effect on the execution.
With the software version you are adding function calls into the code and linking
in a small library into your application so it is more intrusive. The software
version will give you relative information, so it is not absolute timing information
but still more than adequate to answer, with certainty, questions about application
performance.
Richard: The trace, performance and memory tools are all clearly dynamic, examining
running code, is the code coverage tool also dynamic? Does it simply assess logic
paths or does it look at what actually gets executed?
Greg: It's a dynamic tool so as test cases are executed we are looking at the code
which gets executed. We look at code coverage in several ways. We can look at
what statements are covered, we can look at the decision level, are all the decisions
executed. The greatest detail comes from our modified condition decision coverage
analysis which gets down to asking ?has every outcome of every decision been executed,'
given the test case that you are running.
Richard: I think we have spoken about all the analysis tools except perhaps memory analysis.
Greg: Yes. The memory analysis tools are designed around being able to understand
how memory allocation works in the Symbian OS. It gives you memory information
that covers not only the allocations being done by your code but also those being
done by the operating system.
In the UI all these allocations are color coded to make them easy to assess.
Actually an important point is that all these tools are part of an integrated
suite with a common user interface. So if you have the trace analysis and memory
analysis tools you can see the memory allocations as they relate to the module
traces, all in a clear visual interface. It also means that one set of instrumentation
support all the analysis tools which keeps the instrumentation overhead low.

The CodeTEST source viewer highlighting a memory allocation

The CodeTEST Memory module GUI which shows the minimum, maximum, and average
memory block allocations. It also shows the total current allocation by function
and the percentage of maximum.
Richard: Clearly elements of the product will appeal to different developers, a device
developer will want the hardware probe, a third party developer the software version.
Does licensing allow developers to just license what they need?
Greg: Each of the probes and each of the four analysis tools can be licensed separately.
We would see a device manufacturer taking maybe a couple of hardware probes and
a handful of software probes for devices and then just about every one who buys
the tool would have the native probe. What you license will really depend on how
closely you are working with hardware. Therefore we have designed the licensing
very much so customers can mix and match to suit specific needs.
Richard: What sort of interest are you seeing in the tools, I assume that betas have
already been with some of your clients?
Greg: We cannot talk about individual clients, but several major manufacturers have
already been evaluating the tools. We are seeing the manufacturers getting to
the point where they are looking for tools that can help them assure more tightly
the code quality of the systems they are producing. I think that 2004 will also
see an upsurge in interest from third party developers in these issues. As applications
get more complex we clearly have to tools the ride that wave of interest.
Richard: So what does 2004 hold in store for Symbian tools at Metrowerks?
Greg: We have a roadmap of releases scheduled for throughout the year which is intended
to synchronize with what Symbian is releasing into the market. Our Symbian tools
are really strong sellers in our wireless tools portfolio and we are committed
to working with Symbian to provide the tools to support making Symbian OS a world
class wireless platform.
Metrowerks CodeTEST tools are in our view a major step in the maturing of Symbian
OS, both in terms of the technical support for developers but also as a further
sign that Symbian OS is becoming a mainstream development environment.
CodeTEST is price at a level which will appeal to the more successful small Symbian
developers upwards to large software houses and device manufacturers. All four
native software probes are priced around US $3000, the software tools for use
on a device are around US $8000 for all four, or about US $3000 each. The probes
for the hardware in circuit version start at $15,000 and $15,000 for the modules.
Web: www.metrowerks.com
|