Hi,
1. Through interviews and JAD sessions, you can interactively create a business process model, a conceptual (domain) class model, a use case model, and whatever else you need for analysis (requirements, org charts, etc.). You can now generate a good-looking, professional, business and/or systems analysis documentation. This is great, but you can also…
2. From the conceptual model and use cases (and requirements, in general), you can derive a database model. This will be your most natural departing point for forward engineering your model: you can now generate your CREATE TABLE…, PKs, FKs, constraints… from a model that is visible to the whole development team (and that is also neatly documented for your stakeholders). This is even better that having just a good analysis and requirement documentation, and it is also fairly straight-forward, but you can also…
3. Build a class model for your windows, web pages, and so forth. You can now create operations that logically interface with your database (just copy the attributes from your tables and/or conceptual model...) Forward engineering will initially generate skeleton code for these classes, and (as you get more and more proficient) your will generate readily-executable/compilable code. For .NET, you can manually write whatever is necessary, and reverse-engineer it into your classes.
4. If you are bold (or reckless enough), you can customize the code generating templates for your own needs. There is a learning curve, of course; so you have to balance between immediate and long-term gains.
Cheers,
Jaime