loading

CAD/CAM SOFTWARE?

Hello, i am T.Y. Mech Engg. student.
I want to know how software's like PRO/E are made.
I mean how do they create the graphics (links of free download available graphics library's would be appreciated).
Also how do they connect that(graphics) with their kernel?
I know c++ already, which else languages or concepts do i need to know to create such a software?
Also i would like to know how FEA is integrated in these software's.
Expecting detailed reply's from all the experienced people who have worked on PARASOLID or Granite (PTC) or any other CAD/CAM software!