Computer-aided software engineering