THE DIFFICULTIES INHERENT with the development of software has led many computerscientists to suggest that software development should be treated as an engineeringactivity. They argue for a disciplined approach where the software engineer usescarefully thought out methods and processes