It is no secret that software is, perhaps, the faultiest product of human civilization. Yet it is hard to find an area of human life these days where software would not be used. When software is an integral part of the end product, such as a computer, Internet application or the entire operating system, a software fault means the failure of the product. We are all familiar with never-ending “blue rotating circle” or user-unfriendly error messages. All of a sudden a website that we often use, e.g. for Internet shopping or TV listings, starts behaving erratically. The problem remains unfixed for days or even weeks, well until the company notices an “unexplained” drop in sales or a number of customers’ complaints exceed a critical level. The cause of the problem could be that a programmer made a “minor” change to a single line of code.
However, when faulty software is present in security products, this is much more troublesome than a drop in sales or mere nuisance of a blue rotating circle. We have to realize that no system can really be declared secure if it is based on faulty software. The existing approaches to testing and fixing software faults work at best in 75% of cases.
This paper introduces a new approach to fault-free software based on semantic analysis – a paradigm shift and a revolutionary alternative to current software testing. The paper posits semantic analysis as an enabler of Privacy and Security by Design in terms of software quality.