IEEE Computer Society Logo
Welcome to the Phoenix Chapter of the IEEE Computer Society

The Theory and Practice of Software Bugs

The word “bugs” is used in the software world to indicate both the faults and their manifestation as an error. Errors are detected both during testing and after deployment.

Using the error as the first clue for the search of the fault, programmers intervene by searching the code for detecting a presumed defect and correcting it. This search and the correction process are not done using rigorous analysis but only via an ad-hoc process relying mostly on past experience. In the meantime academic research has reached a level of understanding of the semantics of programs and of how to combine them to create complex systems that can be expressed in a highly formal manner. This body of knowledge is seldom used for designing new algorithms and almost never to improve the uncertain process of understanding existing code.

In the mid 90’s a company dedicated to software maintenance successfully introduced formal methods in the fault correcting process. The approach was rapidly recognized as a powerful method to understand existing code for supporting the system modification work. Considerable improvements, building upon research done in the years from 2000 to the present, have added capabilities with the objective of making the process applicable to all peculiar features of modern software including program composition, concurrency, executable code and real computer arithmetic.

A process including these improvements can be used manually, but it is tedious. However, because it is fully formal, requiring extensive symbol recognition and string manipulation, computer based tools can be constructed to make the process very efficient and reliable.

This presentation will describe both the theoretical foundations and their practical application. A number of real world examples will be shown.

About the Speaker

Dr. Antonio Pizzarello began his career as an aeronautical engineer at Nardi S.P.A., Milan, Italy, before moving into the computer science field with General Electric Information System Italia. While at General Electric, Tony held a number of responsible positions including manager of engineering and scientific applications and manager of application software and system support. He became a consulting software system designer with General Electric in Phoenix, AZ. When it was acquired by Honeywell Information Systems he rose to become a Chief Fellow, the highest technical position in the company. Antonio received his Doctorate in Aeronautical Engineering from the Politecnico di Milano, Milan, Italy, and has also been a Research Professor of Computer Science at Arizona State University.

Tony co-founded the Peritus Corporation growing it to multi-million dollar annual revenue before it was acquired. He was also a major influence in Finsiel (the second largest software company in Europe) and the information processing group of Banco Sabadel in Spain. Tony co-founded OntoPilot LLC in 2008 to facilitate commercialization of the current advanced state of the technology.