In the Electronic Design Automation (EDA) field it is widely acknowledged that the state of the software has not kept up with the rapid advance of the hardware. At the 2009 Design Automation Conference (DAC) in his keynote speech “The Tides of EDA“, Albert Sangiovanni-Vincentelli, co-founder of Cadence and Synopsys, said “At the system level, we should look closely at embedded-software design as a great opportunity to innovate…For the past six years, keynotes at DAC pointed out the great importance of software for electronics, even for the semiconductor industry…There is consensus about the need to change the way we design software in general…”
So what is it about software tool development that has meant the tools are not up to scratch ? Here are four challenges developers have to contend with.
1. Tool complexity – the tools do a lot, whether it is dealing with routing algorithms or enabling one to build a system-on-a-chip, there is a great deal of functionality to contend with. All this has to be handled while ensuring the tool remains fast, robust and easy-to-use.
2. Short timescales and limited resources – as ever time is of the essence as the rewards are huge for being first to market. However the current economic crisis makes things worse as it means companies have to work out how to deliver in short timescales with limited resources. This often leads to compromises being made which detract from the tools.
3. Sophisticated users – today’s users are increasingly sophisticated. They have specific notions of what tools should look like and how they should work. Often embedded tools suffer from usability issues as they have not spent enough effort focusing on the end-users needs and optimizing key task flows
4. Integration Demands – an extra burden is put on developers to get integration right. Today tools cannot exist in a vacuum and must play nicely with the existing systems out there, whether they are build systems, revision control or text editors. Dealing with integration issues complicates the lives of tool developers as these requirements often arise further down the project life cycle and require a high level of adaptability.