Mage::getModel('catalog/product');
Mage::helper('catalog/product');
The string 'catalog/product' is called a Grouped Class Name. It's
also often called a URI. The first portion of any Grouped Class Name
(in this case, catalog), is used to lookup which Module the class
resides in. The second portion ('product' above) is used to determine
which class should be loaded.
So, in both of the examples above, 'catalog' resolves to the Module app/code/core/Mage/Catalog.
Meaning our class name will start with Mage_Catalog.
Then, product is added to get the final class name
Mage::getModel('catalog/product');
Mage_Catalog_Model_Product
Mage::helper('catalog/product');
Mage_Catalog_Helper_Product
These rules are bound by what's been setup in each Module's config
file. When you create your own custom Module, you'll have your own
grouped classnames (also calles classgroups) to work with Mage::getModel('myspecialprefix/modelname');.
You don't have to use Grouped Class Names to instantiate your classes. However, as we'll learn later, there are certain advantages to doing so.