Possui graduação em Bacharelado Em Ciência da Computação pela Universidade Federal da Paraíba (1988), mestrado em Informática pela Pontifícia Universidade Católica do Rio de Janeiro (1991) e doutorado em Informática pela Pontifícia Universidade Católica do Rio de Janeiro (1998).
Atualmente é Professor Titular da Universidade Federal do Rio Grande do Norte.
Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, Arquitetura de Software e Interação Humano-Computador atuando principalmente nos seguintes temas: design de software, linguagens de modelagem de software e avaliação de usabilidade.
Foi pesquisador visitante an Universidade de Lancaster, no Reino Unido, em 2004/2005 e na Universidade de Bretanha-Sul, na França, em 2013/2014.