As always, the question in the form "what's the difference between {0} and {1}" is incorrect in principle. What's the difference between apple and Apple?
In this particular case, I'm not 100% agree that the two terms are basically the same thing.
Yes, "Software Development Process" and "Software Development Life Cycle" are basically the same, see
http://en.wikipedia.org/wiki/Software_development_process[
^].
However, "Software Process Model" is something different.
"Software Development Process" and "Software Development Life Cycle" mean some phenomena of nature which actually happens during software developing, while "Software Process Model" reflects some
conception about software development which someone tries to put into practice. I would say, very often a misconception :-). Answers.com defined "Software Process Model" as a "a simplified description of a software process", see
http://wiki.answers.com/Q/What_are_the_software_process_model[
^], but I would say, first of all this description grows from some
conception.
I stress this difference because I come to understanding that actual software development method generally suffer from huge misconceptions and baseless ambitions of the leaders putting forward or pushing those conceptions rather then actual knowledge or science. All this is done sacrificing practical and project-specific considerations, human factor and other important aspects. This explains why those conceptions are subject of fashion and change so often.
At the same time, lack of conceptual thinking makes things even worse and massively produce unsupportable projects going out of control seemingly regardless or often contrary to management effort. Development conceptions should be created, but they should be more realistic, more related to each concrete set of development goals and qualities of the members of development team. There is too much of fake knowledge in this area already. For now, I think the best development conception is: "there is no a silver bullet".
—SA