1. A method of generating and maintaining a data warehouse, the method comprising: providing a predefined reusable metadata model having a data information model including metadata describing models for generating a data warehouse including metadata describing business logic for extracting information from one or more source systems and transforming the information into a data warehouse structure, and an information needs model including metadata regarding information needs for building reports, wherein the information needs model of the data information model comprises metadata defining user roles, metadata defining measures important to the user roles, members of the user roles, and context filters that apply to the members; providing data management services by a data warehouse solution system engine that generates a source framework model which is a semantic layer providing a logical business representation of the one or more source systems, to automatically generate a data warehouse from the one or more source systems using the data information model and the source framework model; providing a modeling user interface for presenting the data information model to a user for allowing the user to manipulate objects of the data warehouse; automatically generating the data warehouse from the one or more source systems using the data information model and the source framework model; and automatically generating reports using the information needs model and the data warehouse based on the metadata defining user roles, metadata defining measures important to the user roles, members of the user roles, and context filters that apply to the members.
26. The method as claimed in claim 1 further comprising preserving modifications made to an existing data warehouse during upgrading.