Ruby on Rails
Direct

Direct Object Relational Mapping Wish

Active Record doesn’t provide direct Object Relational Mapping. Rather it delegates and stores object data in an @attributes hash. It would be nice if it used Direct Object Relational Mapping instead.

To clarify, Direct Object Relational Mapping means that the fields in database table have corresponding accessor methods in the class. In addition the class gets a few methods for loading and saving, and little else.

There are a number of advantages to this. First, pre-existent Object Models can be more easily “activated”, with less recoding —achieveing cleaner SOC (Seperation Of Concerns). It also makes it easier to implement different data backends like Madeleine.

Of course, this requires a great deal of refactoring to the Active Record Base code. It esspecially requires clean-up the namespace.

One of Active Record’s primary goals is the automatic link between class and database table. This can still be maintained with Direct Mapping thanks to Ruby’s dynamicism. The code that makes the link need only be a bit more intelligent about what the class might have already pre-defined.

DB Visual Architect : http://www.visual-paradigm.com/dbva.php
A Object Relational Mapping toolset that generate and reverse database from/to class diagram.