Top Five Benefits of Virtualized Software Development
Top Five Benefits of Virtualized Software Development
By Michel Genard
published: Tuesday, February 05 2008




Over the past years, server virtualization has made great inroads in the data center. It promises to improve data center efficiency and lower overall cost of ownership by solving persistent challenges, such as server proliferation, CPU underutilization and application isolation. But server virtualization is not the only game in town; both startups and established companies are racing to introduce application and OS virtualization products that will virtualize the desktop. And now, a third virtualization front is emerging in the area of virtualized software development (VSD).

VSD targets embedded applications, mostly software applications embedded into electronics devices, such as cell phones, set-to-box, routers, complex aerospace equipment and war devices. But embedded applications also are found in blade, server or any high performance computing equipment. VSD is a product development strategy that frees development from dependence on the real hardware on which your application will be deployed. Instead VSD enables the deployment of technology, products and best practices to execute development on the desktop.

Why VSD? The following mega trends and observations are driving the electronics industry:

Switch from hardware to software─The software component of devices is more important and more expensive in both relative and absolute costs than the underlying hardware. Despite the fact that software is not visible to the user and actually defines the product interface, companies have unbalanced resources between hardware and software. If the design and manufacturing of electronics part enjoyed +30 years [correlated to the introduction of processor] of industry best practices and standard, software development is very often after the fact, very ad-hoc and pathetic. This disconnect drives low product quality, frequent recall, and software updates, not mentioned disappointed P&L.

Complexity─Both the execution hardware platform and the software powering devices have become more and more complex─especially considering the execution power in MIPS and lines of codes─to the point where no single engineer can really understand all of the components. Choices and options of discrete components─from processor to chips devices, OS, middleware and tools to pick from have exploded─, thanks to the open source movement here. This global and multi-level complexity make choices difficult, trend-off challenging and where the decision resides unclear.

Time to market─Timing is everything and missing the product launch window can be lethal. Unfortunately, market pressures often drive companies to release product whether product quality or feature sets are complete.

Out-of-control cost─If the devices is cost sensitive (i.e. handheld devices), the Bill of Material (BOM) will be the focus point in the management dashboard. But BOM can drive poor decisions, and the if development costs are hidden from the dashboard, then they’re not really managed and like an iceberg with only a small piece visible.

Product development lifecycle shrink─Every industry has seen its lifecycle significantly reduced in the last ten years. Products are expected to be developed faster. Even industries known for long development cycles, such as aerospace, defense and automotive, are re-engineering their processes to release new product fatser.

Time to revenue─No industy can afford to have product on the shelf waiting for customers to buy. In the semiconductor industry, the situation is even more complex. Ideally, manufacturers would want to generate pre-bookings or design wins before the socket is generally available to minimize the time volume will kick-in generated revenue on each sockets.

Happily, all of the above challenges are well know. The bad news is that too often the solutions deployed to address these problems are more patches than cure. The quality and complexity part of the problem is typically solved by putting more people on the bench, mostly by outsourcing in India or Chin. Corporations are challenged to document and prove that they actually realized their expected savings. The complexity is supported by what is commonly called platform strategy, where enterprises define a pre-set of common and pre-tested components to build on it. The challenge there is defining the platform and its management from a roadmap point of view. The cost aspect is inevitably addressed by putting pressure on the suppliers. Meeting time to market/revenue objectives is a combination of hope (aka sales forecast!) and project review (aka BBQ where the meat are the product & project managers).

How VSD works
Imagine if instead of building the actual hardware, or using an evaluation board, companies used a software representation of the hardware they plan to replace. Once this model, or virtual platform, is simulated, developers can control, develop or debug any software that runs on the virtual platform from their desktops just as they would in a traditional cross development environment. But instead of having physical hardware connected to the host, the virtual hardware is a software module on the desktop. So, VSD is about virtualizing the hardware that would normally be used so development is native on the desktop.

Performance and level of abstraction also are crucial to success in VSD. For the software developer to be successful, performance should be close to the hardware in order to avoid performance deterioration. Performance conducts the level of abstraction you can afford. To make it simple, for true accuracy (including timing) there’s no performance, i.e. Linux boot in hours, if not day, with timing cycle accurate model. Functional accuracy, focusing on what and not how, can be acceptable for software developers. But the functional virtual platform needs to be so accurate from a software perspective that it can run unchanged binary code and use a standard tools chain, which in VSD is called a high fidelity high performance functional model. Actually the software doesn’t even know that it is running on a virtual platform. With a functional virtual platform, development occurs without the constraints of real hardware, such as flakiness or lack of availability.

Like server virtualization, VSD promises to be a game-changing technology for organizations willing to adopt software process improvements. Let’s look at the top five benefits of server virtualization and see how the expected benefits of VSD map to them.

  1. VSD reduces software development costs by eliminating the construction of physical environments.

    With VSD, instead of providing a hardware prototype or actual device to each engineer, everyone is outfitted with a virtual platform. This hardware replacement benefit is significant for almost any applications and delivers value not just in the development stage but long after. For example, a support organization helping customers can be run on a virtual platform. Or staff, partners and customers can be trained as well on the desktop. In a networking configuration, a virtualized environment can have infinite configuration options, no wire, no HW configuration. Lastly, a virtual platform can be emailed, which makes devices available anytime, anywhere on-demand.

  2. VSD enables hardware-software co-development, collapsing the development cycle.

    Traditional embedded development is a progression of events where for each new a new step to start the previous one needs to be completed or at least near completion. For example, developers start writing and debug hardware specifics code only when hardware is available to them. But VSD developers are freed from hardware dependencies from the beginning of the development cycle. With access to a functional high performance and high fidelity virtual platform, they can start writing low level firmware, driver BSP immediately and without any evaluation board. Overall VSD truly enables a co-development strategy where hardware and software begin in tandem on day one instead of waiting for each other. As a result, software/hardware integration becomes a front end activity and not a back-end event, which means more time to debug, test and even change design specification if needed.

  3. Standardization is a big benefit to VSD as well.

    Standardization happens at different level with VSD. VSD helps define a meaningful platform that both software and hardware teams can use, enhance and share. Since it’s not restricted to an inbound usage, companies share their VSD IP with partners and customers in a way that unifies communications. Additionally, scripting language can be built at any stages to drive simple, elegant but very efficient automation processes. Think about that, how do you script hardware?

  4. VSD has many unique benefits that do not parallel those of server virtualization, too.

    Most of these fall into the category of software performance innovation because they change the dynamics of software development in new and surprising ways Determinism is certainly the most intriguing one. Determinism is the capability of software to always execute the same way when the same conditions apply. It seems obvious but actually it is not. As processor and hardware design increases in complexity, what happens around CPU boundaries is not determinism, which leads to nasty bugs knows as race conditions or “Heisenbugs” syndrome. It has gotten so back with multi-core processors that there are now multiple execution engines living their own lifes! With VSD, a functional virtual platform is determinist, so time and time again code will execute the same way. As the simulator logs any event and relevant data, it provides the full control and visibility necessary for advanced debugging and testing. Checkpointing is neat as well. Just imagine, developers can stop and come back to a defined checkpoint to either skip boot time, or do reverse execution. A time machine without any code instrumentation or hardware, the virtualized environment delivers TiVo-like functionality that also lets developers change the future by returning in time to debug or play out “what-if” scenarios.

  5. VSD offers a parallel to virtualized server by enabling new business models

    Recently a Virtutech partner, Monta Vista Software, announced a new SaaS called TestDrive, which enables their customers to evaluate and test their Linux product offering from the web by connecting the customer to a virtual board farm built and run with a Virtutech VSD product called Simics. This is an example of how VSD supports new thinking and can redefine how corporate conduct their business.

Just as Moore’s Law has reached its plateau, traditional software development must change. The payback is not coming from just more tools, more open source availability, more people on the job. A new infrastructure enabling process improvement, changes and better risk mitigation to free up hardware and software team to their full potential is needed. Virtualization in software development with VSD can be the solution the industry has been looking for for sometime.

Michel Genard is vice president of marketing at Virtutech, the leading provider of virtualized software development solutions for embedded electronic systems. Genard is an industry veteran with more than 20 years of experience in the software and hardware embedded market.