One major weakness with the Tyranid army is that it is largely very slow and close combat orientated. Most armies can run away as fast as we can chase them which means you need a way to stop your enemy from just running rings around you (this has become especially important in today's mech heavy meta-game). Here are some ways to 'pin' your opponents army sot hat you will always be able to get into CC.
This technique is very simple to understand but not so to use. Simply it is surrounding your opponent with so many threats and models that they have to be in range of something big and threatening. This is usually the objective of a horde army as you have so many models it is impossible to avoid them all. Orks are the masters of this technique.
However, you must be careful when applying your forces as there is often a 'no-mans-land' your army must stomp through before getting to grips with the enemy. If caught out there most Tyranids, with their bad/non-existent armour save will get mowed down, very quickly. That is unless you can overwhelm your opponent with targets so that they cannot possibly kill everything even though it is out of cover. After that turn is over you have them.
The easiest way to make this not work is by rushing as fast as you can towards your opponent with everything. Everything should be going through cover and although most nids have move through cover some will get slowed down. Your opponent will then just destroy the closest target each turn and leave you with not enough stuff to trap them. Not good. To avoid this just move units up equally, keep them in cover and don't provide obvious threats. Remember that your opponent will be constantly moving too (or should be) so you need to adjust and evolve.
This is the technique I use mostly as I love fast units which is what this is all about. The idea is to have a few 'grapple' units which can jump ahead of the main army in one turn and get into CC with a unit so as to tie it up and wait for slower, yet better equipped models. A great example of this is Raveners. They have amazing speed being beasts so can catch almost anything; they are durable with 3 wounds and given cover are even better; they are fairly cheap so you can get a lot of them and they can have Rending which makes them a threat to anything.
However they are best used on the assault and cannot survive incredibly long in combat having only a 5+ armour save. This means they need some support the turn after they assault to 'bail them out'. This is for me in the form of lots of Termagaunts who can drag down the toughest of opponents with help from a Tervigon.
Seeing a trend yet? Everything supports everything else and covers the other weaknesses so as to maximise their strengths. The Raveners are fast, the Gaunts are slow. The Raveners are fragile, the Gaunts are plentiful/expendable.
My Shrikes can also fulfill this niche but are best used as a counter-assault unit which I will talk about next time.....