A software engineering assignment.