1) https://www.amazon.com/Object-Oriented-Modeling-Design-Rumba...
2) https://www.amazon.com/OMT-Insights-Perspective-Object-Orien...
1) https://www.amazon.com/Executable-UML-Foundation-Model-Drive...
And the work of daniel Jackson from MIT :
http://people.csail.mit.edu/dnj/
Look at this course, at the videos at the bottom:
https://stellar.mit.edu/S/course/6/fa18/6.170/materials.html
Jackson is also behind Alloy:
https://mitpress.mit.edu/books/software-abstractions-revised...
Well [1] that book you're referring to, has changed my perspective on abstractions and how to communicate them to other people. There's probably no "Holy Grail" of abstraction guides better than that IMHO.
Designing and implementing useful and maintainable abstractions comes from experience in both consuming and designing abstractions for API's. Having empathy for both the consumers and future developer's of the API gives you a good perspective on how to structure the abstraction.
The best abstractions are from people who have used bad abstractions, and are usually incrementally developed over time...
[1] https://www.amazon.com.au/Design-Patterns-Elements-Reusable-...
* XML Schema - https://www.amazon.com/Definitive-XML-Schema-Priscilla-Walms...
* DOM - https://www.amazon.com/DOM-Scripting-Design-JavaScript-Docum...
* I don’t have a book for this, but learn data structures instead of algorithms. If you can learn to think in data structures the concepts of algorithms will come to you naturally like dreaming or thinking about driving directions.
* I also don’t have a book for this but the relationships between data is more important than the data itself. This is realized by how you express your abstraction.
Concise, readable, and highly applicable.