Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
In some projects, the development of an application is driven by developers analyzing the business domain in object-oriented terms. In others, it's heavily influenced by an existing relational data model: either a legacy database or a brand-new schema designed by a professional data modeler. There are many choices to be made, and the following questions need to be answered before you can start:
Can you start from scratch with a clean design of a new business requirement, or is legacy data and/or legacy application code present?
Can some of the necessary pieces be automatically generated from an existing artifact (for example, Java source from an existing database schema)? Can the database schema be generated from Java code and Hibernate mapping metadata?
What kind of tool is available to support this work? What about other tools to support the full development cycle?