Software Design homework