We've been learning a bit about Abstraction in my software engineering class. As part of our assigned reading we had to read the following Wikipedia articles:
http://en.wikipedia.org/wiki/Abstraction_(computer_science)
http://en.wikipedia.org/wiki/Abstraction_inversion
http://en.wikipedia.org/wiki/Encapsulation_(computer_science)
http://en.wikipedia.org/wiki/Specification_(technical_standard)
I also found this article on the Pragmatic Programmer website that I think is pretty good:
http://www.pragprog.com/magazines/2011-02/abstraction
I found the relation between Abstraction & Duplication interesting, as well as putting TDD in the abstraction context as well.
Many of these things seem to also be related to the famous "information hiding" paper from David Parnas:
http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf