ISP (o ICP) significa que es posible descargar un programa de aplicación (nuevo) a su microcontrolador sin sacarlo de su circuito. (Contrasta esto con el estilo de la edad de piedra de quitar un chip de su zócalo, colocarlo en el programador para que sea programado, y luego volver a colocarlo en el circuito para probarlo, solo para descubrir el siguiente error ...)
ICD significa que, mientras el chip está en el circuito objetivo como se describe para el ISP, puede establecer puntos de interrupción, ejecutar el programa, detener el programa, examinar y cambiar variables, etc.
JTAG es un mecanismo de comunicación (hardware) entre un host y un sistema de destino. IIRC fue originalmente diseñado para probar hardware complejo. Muchos chips (especialmente los chips ARM) lo utilizan como (un) enlace entre sus funciones de ISP y / o ICD.