Home
Robotics and Intelligent Systems
High Integrity Software
Engineering Services Partners
News
Contact
 
     
 
> The Software
Crisis
   
  > Software
Engineering
   
  > Software
Development
>

Software Engineering -
A Discipline,  Not a Craft

It is perfectly possible to develop software that is almost error-free - in fact we’ve the means at our disposal to do so for almost 40 years. Since the early 1970s, formal or mathematical methods have been available for specifying and designing computer programs, and for proving that a program that is developed satisfies its requirement specification. Mathematical proof is the most powerful technique we have for analysing problems – and it is good enough to ensure that we can trap almost any mistake made during development.

Despite the availability and considerable development effort that has gone into formal methods for software, most companies still remain wedded to manual design. The most frequent complaint is that the methods are difficult, and require skills that most engineers do not possess. Some believe that the cost of hiring staff with the relevant skills, or re-training existing staff, exceeds the cost savings achieved. It may also be the case of simple fear of, or distaste for, mathematics within the prevailing corporate culture.

Whatever the reason may be, it nonetheless remains a fact  that formal techniques are used in only a minority of software companies, and the world software industry remains locked in a crisis.

Our Beliefs about Software Engineering

At Avian Technologies, we believe that the reason for the software crisis – all the wasted money and the system failures - lies in the manual design methods and practices used by most other software companies today. We believe that manual software design techniques are inadequate to the task of safety critical system design, and when human lives or large sums of money are at stake, we consider that there is no excuse for inadequate practice. As a company that believes in applying a high standard of software engineering, we seek to apply formal mathematical methods to all our engineering practices, as far as the state of the art in any discipline may allow. We believe that it is not difficult for staff to be trained in the relevant skills, and that the use of formal methods will not only provide the necessary assurance of our products, but also that the costs and commercial risks of software development can be improved, for systems of any kind.

 

 

 
         
2006 Avian Technologies Ltd.