Lehman has given laws for software evolution. He divided the software into three different categories:
● S-type (static-type) – This is a software, which works strictly according to defined specifications and solutions.The solution and the method to achieve it, both are immediately understood before coding. The s-type software is least subjected to changes hence this is the simplest of all. For example, calculator program for mathematical computation.
● P-type (practical-type) – This is a software with a collection of procedures. This is defined by exactly what procedures can do. In this software, the specifications can be described but the solution is not obvious instantly. For example, gaming software.
● E-type (embedded-type) – This software works closely as the requirement of real-world environment.This software has a high degree of evolution as there are various changes in laws, taxes etc. in the real world situations. For example, Online trading software.