Each base you pick (Eng, Tac, Sci) gives a certain amount of points to be spent on Engineering parts (cruiser/dreadnought), Science parts (sci vessel/carrier) and Tactical (escort/destroyer).
Then for every part you add it uses a set amount of points to prevent players from building the "heavy escort tactical carrier cruiser".
This is much like the skill point system already in use for characters and boffs.
Also each part could have an inertia number or a size or weight. The bigger the parts or more parts you add the slower your ship will be. Nobody will create a Galaxy based Escort Carrier because it'll be really slow. It would make sense to build a Galaxy based Cruiser.
The bigger nacelles you fit will make it faster in sector space but will reduce it's turn rate and impulse speed. The more console slots also have an impact on system power so you can't have more than 4 or 5 Engineering slots because you'll have next to no Engineering power to run them all. This can also be offset by fitting a larger warp core but again this will reduce turn rate and impulse speed.
There's a million ways that this can be controlled.
I think it's a good idea but, I would like to see it where Captain's can update their existing ships as they level. An option, you can either get a new ship or you can add slots or bridge officer stations.