Keep It Simple: Bring Software Complexity Under Control
European Union-funded researchers working on the industrial deployment of advanced system engineering methods for high productivity and dependability (DEPLOY) project, have developed an approach for building software systems that is safer, less expensive, and more robust. The research aims to improve traditional software engineering processes that are not equipped to handle the complexity and diversity of modern software systems. "As more and more elements and more functionality are packed into systems, engineers say they are losing control of complexity and worry they won't be able to provide the quality assurances required," says University of Newcastle professor Alexander Romanovsky. He says the DEPLOY project approach follows formal engineering methods, which are starting to gain acceptance among industry experts as a more efficient, practical way to develop complex software systems. Formal engineering methods are based on mathematical modeling and analysis, supporting reasoning at multiple levels of abstraction to enable a systematic engineering flow. Romanovsky says the advantage of formal engineering methods is that errors are caught early in the development and complexity is kept within predefined limits, all of which reduces the need for testing at the final stages. "In the long run, software systems are only going to keep getting more complex--formal engineering, as we have shown, is one way to address that problem," he says.