Su uso es común para la captura de requisitos funcionales, especialmente con el paradigma de la programación orientada a objetos, donde se originaron, si bien puede utilizarse con resultados igualmente satisfactorios con otros paradigmas de programación.