Object-oriented specification languages in the software life cycle