Embedded Software Development Track
 

E1: Agile Development for Embedded Software – James Grenning, Object Mentor

Embedded software development projects are late, defect levels are high. Developers are fleeing engineering for marketing and management. Why? Up-front documentation centric processes are not delivering, and neither is hacking. Doing the same thing and expecting different results… We’ll do it right next time.
 
Agile development is designed to solve problems of late projects and high defects. Agile’s roots incorporate the risk management techniques of the iterative development. Its concrete software engineering practices support the iterative model and the team work needed to build complex software systems. This session will describe using the principles and practices of Agile embedded-software development for embedded software development.
 

E2: Object Oriented Design Software – James Grenning, Object Mentor

Object Oriented Design has been widely used in software development over the last 15 years. OO is not a common practice in embedded software development. The embedded community is missing out on these valuable techniques.
 
There are many advantages to using object oriented design concepts, principles and patterns in your designs, even if you program in C.
 
One common problem is that hardware dependencies become intermixed with the application logic. This means complex changes as the hardware and the features evolve, and they will evolve. This class shows the proven OO techniques used to build more modular software that can extend the longevity of your software investment. You will see how to apply these techniques in C and C++ as well as discuss the trade-offs in using C or C++
 

E3: Mocking the Embedded World – Greg Williams and Mike Karlesky, Atomic Object

Test-Driven Development (TDD) has been documented to reduce software flaws by an order of magnitude or more. Unit testing is central to TDD strategies. A mock object is an advanced unit testing tool used to thoroughly test module interactions and facilitate good decoupling in test-first design. Mock objects stand in for real modules with which the code under test interacts; this provides the means to code coverage test all the logic in a given function. Further, mock objects allow subsystems to be developed in parallel using only the interfaces discovered in test-first development. Applying mock objects to embedded software testing is new. We present an introduction to unit testing and mocking in embedded software with tools and working examples. Attendees will be provided copies of our open source unit testing and mocking frameworks as well as our example project.
 

E4: Keeping Your Sanity with Automated System Testing – Mark VanderVoord, X-Rite; Greg Williams and Mike Karlesky, Atomic Object

System tests prevent costly embedded software defects from going into production. Writing system tests first before the features under test are implemented (Test-Driven Development) produces good design. Adding automation to system testing provides a push button sanity check on each new change in the system during development. We present the practices and tools necessary to kick start automated system testing in your projects. We also introduce automated pseudo-random system tests for reliability testing.
 

E5: Safety-Critical Software Standards and Practices: Aerospace and Medical Domains – Timothy Skutt, GE Aviation; Andy Staats, Stryker Interventional Pain; Steven VanderLeest, DonorWorks and Calvin College

Electronic systems are becoming increasingly safety critical in many industries. Systems that once relied primarily on mechanical controls and safety systems are now migrating to electronics. With this migration comes a significant growth in the software content for safety critical domains. As industries are faced with increased safety criticality, product certification mechanisms become necessary to protect customers and users. The outgrowth of the certification mechanisms is the definition of standards for product development. DO-178B, IEC 62304, and IEC 61508 are examples of the multitude of standards used in various industries for safety critical development.
 
This presentation addresses the software aspects of safety critical design across industries. In this presentation, we (1) provide a brief overview of safety critical software in multiple industries, (2) identify the specific software aspects of safety critical design in the medical and aerospace industries, and (3) compare and contrast safety critical software development between the medical and aerospace industries. The presentation will clarify the principles and practices that apply to safety critical development across industries and will provide a springboard for not only understanding the two specific industries, but also for application of the principles and processes to industries with less mature standards.
 

E6: Dispatching Difficult Bugs in Embedded Systems – Paul Newton, Gentex Corp

This workshop will teach attendees how to diagnose and dispatch Deep Lingering Bugs.
 
Deep Lingering Bugs (DLBs) are the kind of obscure or intermittent system anomalies that appear during use in the field or plague embedded software development projects late in the process. Even with advances in software quality control and the application of Test Driven Development to embedded software, Deep Lingering Bugs remain a key driver of expense and uncertainty in developing products that contain embedded software.
 
Participants will learn how to organize a bug hunt and how to follow the available evidence to get at the underlying mechanisms and root causes of an obscure or elusive problem. Debugging techniques, strategies, and rules of engagement will be applied to an actual real world embedded bug.
 

About Us | Site Map | Privacy Policy | Contact Us | ©2006-7 GLSEC

GLSEC