Software design methods final project