Dedicated to the Assignment for CZ3003 Software Analysis And Design