Before you start you should give careful consideration to the overall system design, taking into account the design specifications and the hardware/software constraints. You should adopt a systematic modular approach.