Read the book written by malvino it is very helpful.
Asynchronous used mostly when timing in between IC is no concern. Like for example a clock that displays seconds, minutes and hours . Synchronous use it for projects that requires a common clock and timing of signals within circuit is important.