Pebble Bay Enables CSR to Manage Complex Code Architecture

Leading embedded software development consultants, Pebble Bay have announced that they have completed a major project with Cambridge Silicon Radio (CSR plc) to provide an innovative documentation framework that enables their client’s engineering marketing teams to fully understand the company’s extensive software code base and enable collaboration and future documentation of the design and architecture.

Working with Garry Shooter,  BlueCore Project Manager, and his team, Pebble Bay assisted CSR in using the MediaWiki platform to create an easily navigable, on-line framework for the documentation of an embedded software code base that extends to approximately 500,000 lines of C. A Wiki is a website that allows the easy creation and editing of any number of interlinked web pages via a web browser.

“We developed an initial framework prototype which we populated using information extracted from the software and existing documentation,” said John Efstathiades, Technical Director of Pebble Bay. “The framework focussed on a number of key aspects such as constraints, design patterns, execution environment and architecture, which we referred to as ‘views’. The framework allows embedded engineers to navigate through the Wiki based on the software architecture itself, that is, in a hierarchical way, or by choosing one of the views and looking for information that fits within the view.”

Pebble Bay are specialists in building and improving foundation embedded software, and have extensive experience working with customers and third-party-provided software across a wide range of applications. Pebble Bay have undertaken projects that require them to comprehend, maintain and improve software systems of similar complexity to CSR’s software. Their independence from specific products and their focus on foundation software rather than specific applications gave them an ideal perspective to help define the framework for the documentation of the Customer’s software.

“Because of various factors including the size of the code base and the fact that it has to operate in severely resource constrained environments, the software was not easy to comprehend and navigate,” said John Efstathiades. “The software was well documented but the architecture and design documentation had lagged behind changes to the code base. The work we have done has enabled the ownership and responsibility for the software documentation to be taken on by the software team as a whole, which will result in documents being kept up to date without too much overhead or burden on busy engineering staff. The nature of the Wiki solution fits easily into their work flow”

The Pebble Bay team also identified useful external tools and plug-ins for the wiki software, such as a plug-in to create template pages with self-contained help that engineers could use as starting points when creating new documentation pages. They also found a plug-in that could be used to create diagrams and pictures in text form that could be embedded in the Wiki pages.

“The project was conducted as a series of iterations based on frequent deliveries of the framework,” said John Efstathiades, “with feedback from the customer going into the subsequent iterations. This kept Garry and the BlueCore team closely involved in the evolution of the framework and ensured that they got something they could use immediately.” Garry Shooter commented ”The team at Pebble Bay did a great job in developing the framework for us, finding an agile working style that really suited what we were trying to achieve. The framework has proved invaluable in making it so easy for my engineers to update and maintain the architecture documentation. We now have a new resource that many teams at different CSR sites across the world can use and benefit from.”

Pebble Bay are currently running workshops that will introduce engineers to the basics of embedded systems development and hardware/software interfacing. The aim of the session is to help developers who are unfamiliar with embedded systems quickly get to grips with the special techniques used to build and debug embedded software.  It includes demonstrations using an embedded target system.