Análisis y diseño preliminar de software basado en el modelado de requisitos y casos de uso. Un enfoque teórico y práctico
Programación en Java. Orientada a objetos a través de ejemplos