Can someone explain to me in detail why this question was closed as off-topic, and how I might change the question to an appropriate form?
What is meta?
- Any Stack Exchange user can ask a question
- The community provides support, votes on ideas, and reports bugs
- Your voice helps shape the way Stack Exchange operates
Your question doesn't involve any concrete programming problem, which is a good indicator for being off-topic on Stack Overflow. Check out the FAQ again:
You don't have one. You're merely asking for references on a certain concept. This, in essence, boils down to a "Here's a list of …" collection. We don't encourage these kinds of questions. Nowhere on the network these are on topic.
It's easy to say "Migrate this to Programmers.SE!". People often suggest this, not being familiar with both communities, but the folks from Programmers have made it clear often enough that this is not what they want.
That's what I meant by my original comment. Programmers is not the trash can of Stack Overflow, in the sense that not every question that is marginally related to programming and off-topic for SO is good for Programmers.
If you were asking for a specific explanation of the concepts instead, that'd be way more constructive. The references to books and papers should follow in the course of a good answer.
Software engineering is on-topic at Stack Overflow. Your question wasn't closed because it was about software engineering.
Your question was closed because it's a "list of X" request — in this case, X is "books and papers" — and those are considered inappropriate across the Stack Exchange network.
The issue is (I believe) that there's not a "right" answer to this question - it's more of a discussion type question.