Embedded.com Tech Focus Newsletter (6-11-12): The challenging future of embedded software development - Embedded.com

Embedded.com Tech Focus Newsletter (6-11-12): The challenging future of embedded software development

Embedded Newsletter for 06-11-2012

» Click here to view online I » Forward to a friend I » Sign up for an EE Times Newsletter

Share this Newsletter:

facebook linkedin twitter digg

June 11, 2012

Tech Focus: The challenging future of embedded software development


Using requirements traceability with model-driven development

Using formal methods for sophisticated static code analysis

Trends in embedded software design

Latent defects

Editor's Note

Bernard Cole Bernard Cole
Site Editor

Several of our regular columnists have been looking at what's in store for embedded software development in future years. They all agree that the challenges ahead – such as 32-bit MCUs, more and larger systems dependent on reliable code development, and greater use of embedded systems in almost all aspects of our lives – dictate that software engineers will have to rethink their traditional solutions. But they offer a diverse array of solutions.

In “Latent Defects , ” Jack Ganssle looks at increasing code sizes. He reiterates his belief that in addition to more and better tools for code analysis, the future lies with more disciplined methodologies such as software requirements specification and testing, test-driven development, Agile programming, and the Personal Software Process.

In “It's not the processor , ” Dan Saks notes that despite his belief that C++ is perhaps the best approach to achieving the goals that Jack Ganssle outlines, the C programming language is still dominant. He assesses the reasons that might be so, and what that implies for future development in these languages.

Agile columnist Mike Hogg in “Working software, iteratively , ” places great hope in the use of the scrum framework to help developers generate more high quality C-code.

According to columnist and former ESD editor Michael Barr in “Trends in embedded software design , ” because of system complexity and the dearth of programmers receiving university training, future software development will be the job of auto-generated software modeling frameworks. Despite this trend, he believes expertise in languages such as C and C++ will continue to play a small but important role in embedded design.

Many of the articles, white papers and webinars submitted by the embedded developer community reflect a similar diversity of opinion on how to address these challenges. My Editor's Top Picks among recent submissions are:

Using requirements traceability with model-driven development
Statecharts can provide you with software quality insurance
Agile embedded software development

What do you think? I would like to hear from you online, by email, or in the form of contributed articles and columns you would like to share with the embedded design community.

Design How-Tos

Using requirements traceability with model-driven development

Model-driven development presents safety-critical applications with several new challenges that relate to reconciling this approach with requirements traceability due to the fact that MDD blurs the lines between design, requirements, and implementation, making it easy to misplace the model in the traceability process.

Using formal methods for sophisticated static code analysis

In this Product How-To design article, Jay Abraham of Mathworks uses the company's Polyspace code verifier to explain the use formal methods-based static code analysis to ensure high quality and verifiable embedded software.

Agile embedded software development

Developers flee engineering for marketing and management. Why? Big processes are not delivering, and neither is coding chaos. This author says Agile helps address the problems of late projects, high defect levels, and stressed teams.

Using finite state machines to design software

A straightforward guide to adding structure to your software project using a finite state machine design pattern, requiring no exceptional knowledge other than basic programming and some common sense.

Using static code analysis for Agile software development

Since the goal of Agile development is to have working software early, source code analysis enables developers to analyze the quality and security of code from day one of coding ” one of the earliest points in the software development process

Tracing requirements through to object-code verification

Verifying object code can mean the difference between success and failure, quality and crap. But skipping the step because a standard doesn't require it or because it theoretically eats into profits is a surprisingly common practice. The author postulates that this practice is not only shortsighted but no longer valid.

State charts can provide you with software quality insurance

Peter Mueller provides five reasons why embedded developers should know more about statecharts and how that knowledge can be used to ensure software quality.

Using requirements based testing to find defects in your software builds

RBT can help you expose and track bugs and determine the root cause of your software quality problems, allowing you to tightly link this with application requirements and various other considerations through out the software lifecycle.

Paying attention to your software processes to achieve higher quality code

Software methodologies such as the waterfall method or its mutated cousin, the V-Model will result in high qualiity code only if they are backed up with a structured software development process.

How to use new unit testing tools & techniques to improve software quality

Long used mainly in high integrity environments, new unit test tools can now also streamline and improve the quality and reliability of mainstream, less critical environments, even those involving undocumented legacy code.

PRODUCT HOW-TO: Automating Compliance to MISRA C/C++ Standards

While C and C++ has the features a software development team need to write well laid out, structured, and expressive code, in the wrong hands this flexibility can lead to perverse and extremely hard to understand code.

Using requirements planning in embedded systems design: Part 1 – Dissecting the requirements document

In this six part tutorial, Keith Curtis takes you step by step through development of an embedded systems design requirements document for a seven digit electronic alarm clock. Part 1: Dissecting the requirements document.

2012 Embedded Market Survey webinar

UBM Electronics' 17th annual survey of embedded systems designers worldwide shows trends in software and hardware usage. The 2012 Embedded Market Survey also looks at languages, productivity, and the challenges design teams rank as most important. A webinar on Friday April 20 will examine the results from over 1,700 respondents from across the embedded industry, the dataset enables a deep analysis to track key changes in this important electronics industry segment. There will also be the opportunity to ask questions online. To register click here .


Digital advanced bus converters lower power consumption

Ericsson's latest fully regulated digital DC/DC converters are based on a 32-bit ARM microcontroller that embeds its most advanced firmware to date.

Version 2.04 of IAR Embedded Workbench for RX features higher performance, new features

IAR Systems has released a new version of IAR Embedded Workbench for RX, the company's high-performing development tool suite for Renesas RX microcontrollers.

TI Sitara ARM processors now support Android 4.0

A new software development kit (SDK) from Texas Instruments Incorporated (TI) brings Android 4.0 to TI's Sitara AM335x and AM37x ARM-Cortex-A8 processors.

Pareon tool smooths multicore software optimization

The Pareon development tool from Vector Fabrics allows software developers to optimize their applications for multicore systems in hours or days.

Nanoampere MCU is designed to serve sensors

Lapis Semiconductor Co. Ltd., a Rohm Group company formerly known Oki Semiconductor, has developed a low-power microcontroller designed to serve as a sensor hub and potentially as a host for sensor-fusion software.


Latent defects

Some numbers illustrate the cost of ignoring quality.

Agile embedded?

Here's why many embedded systems developers prefer agile techniques or their related precursors such as XP and scrum.

It's not the processor

Although over two thirds of embedded systems developers are programming 32- and 64-bit processors, C is surprisingly still more commonly used than C++.

Working software, iteratively

How does Scrum framework work in an embedded systems programming environment?

Code reviews – not just for code

Code reviews are not just for code. And now there's a tool available.

Trends in embedded software design

As the magazine that catered to embedded systems programmers closes, the future lies in less hands-on programming and more auto-generated code.

Five more top causes of nasty embedded software bugs

What do memory leaks, deadlocks, and priority inversions have in common? They're all Hall of Famers in the pantheon of nasty firmware bugs.

Sponsored White Papers

Statecharts for Programmers

State Machines and Statecharts

Creating Safe State Machines

Improving software quality using ‘Lint’

UML for the C programming language

Source Code Analysis in an Agile World

Practical Statecharts for Embedded Systems Part 1: Statecharts

Synthesizing Algorithms from MATLAB and Model-based Descriptions

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.