Possui graduação em Ciência da Computação pela Universidade Federal da Bahia (1987), mestrado em Ciência da Computação pela Universidade Estadual de Campinas (1992) e doutorado em Informática pela Pontifícia Universidade Católica do Rio de Janeiro (2004). Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: arquitetura de software (documentação, recuperação e avaliação), evolução de software e educação em engenharia de software