Application of Human Error Theories in Managing Human Errors in Software Engineering