Preparation of software requirement specifications and functional descriptions