The graphics model requirements (e.g. SM2.0+) depends on the API/features that you use.
e.g. if you're using the D3D9 API, but not using an SM3 features, or you're using the D3D11 API with "feature level 9", then your game will run on SM 2+ video cards.
Similarly when you use OpenGL, different versions of OpenGL have different features. If you only use functions from OpenGL 2.1, then you'd say your game requires an OpenGL2.1+ compliant GPU.
For RAM requirements, you'd take measurements. Go through the worst-case part of your game and see how much RAM it consumes. Most game engines have built-in tools to help with these measurements, because it's extremely important for console games. e.g. PS3 only has 256MiB of main RAM -- so actually running out of RAM (and crashing) is a real possibility.
Usually during development you come up with some "budgets" for RAM usage -- e.g. the AI system gets xxMB, the animation systems get yyMB, the graphics systems get zzMB (and xx + yy + zz < 256), etc...
IIRC, when you launch a java program, there's a command line parameter that specifies a maximum RAM limit that the program can use. You could experimentally lower this limit until you find the point where your game crashes
For CPU requirements, you've just got to test. Usually you'll develop on your 'recommended' hardware, and keep an eye on frame-rates (or: milliseconds per frame) at all times. Again, you'd usually create "budgets" for CPU usage -- e.g. AI gets xx ms per frame, animation gets yy ms per frame, graphics gets zz ms per frame, etc, etc... (where xx + yy + zz < 16.6ms for a 60Hz game, or < 33.3ms for a 30Hz game).
Again, most game engines will have built-in tools to help you measure the number of milliseconds per system per frame.
To discover the minimum requirements, the only real option is empirical testing. Get a bunch of test machines and make observations. If you observe it running at your minimum acceptable framerate in the worst-case part of the game, then that hardware is ok. Repeat until you find hardware that isn't ok...
Edited by Hodgman, 16 February 2014 - 03:28 AM.