iAgile: A Tool for Database Generation Guided by Graphical User Interface Shaimaa Galal 1 and Ehab Hassanein 2 1 Information systems department, Cairo university Cairo, Egypt 2 Information systems department, Cairo university Cairo, Egypt Abstract The agile development of the database and software systems is highly productive activity; it reduces time consumed, cost and effort invested in project development, but many agile projects do not apply agile practices to database development and still consider it in a serial manner as heavy-weight methodologies exactly work, while agile methodologies were introduced to overcome the problems experienced with the heavy-weight methodologies. The Enhanced Early Development of Graphical User Interface Practice Framework was introduced to enable performing the database development process in an evolutionary manner. In this article a proposed tool will be presented to help generating the final software product through applying and automating this framework to support agility in both directions of coding and data modeling as well, using such a tool will provide a high level of customer collaboration and help data professionals to work in an agile manner to avoid the problem of having overbuilt systems along with automatically generating portions of the software code based on available modern software architecture models. Keywords: Agile database development; Agile data modeling; Graphical user interface; Data access Layer generation. 1. Introduction to Agile Database Development Most data-oriented techniques are serial in nature, requiring the creation of fairly detailed models before implementation is “allowed” to begin. These models are often base line and put under change management control to minimize changes (at the end, this will be actually called a change prevention process) [3]. Agile data modeling allows data professionals to adopt evolutionary approaches to all aspects of their work; examples of those techniques are [3]: 1. Database refactoring: evolve an existing database schema by implementing few changes at every time to improve the quality of its design without changing its semantics. 2. Evolutionary data modeling: Model the data aspects of a system iteratively and incrementally, just like all other aspects of a system, to ensure that the database schema evolves in step with the application code. 3. Database regression testing: Ensure that the database schema actually works. 4. Configuration management of database artifacts: Your data models, database tests, test data, and so on are important project artifacts that should be managed just like any other artifact. 5. Developer sandboxes: Developers need their own working environments in which they can modify the portion of the system that they are building and get it working before they integrate their work with that of their teammates. The Enhanced Early Development of Graphical User Interface practice Framework (EEUID framework for short) applied the evolutionary data modeling technique on the Early Development of Graphical User Interface practice [8, 9] to provide data professionals with an agile data modeling technique that will have the following advantages: 1. Remove frustration that happens during the development process, as developers ignore data professionals’ advice, standards, guidelines, and enterprise models, While developers often do not even know about these people and things in the first place, this problem illustrated in[3]. 2. Accelerate the development process by automatically generating code portions that formulate essential parts of the system. 3. Increases the documentation level for the agile methodologies, which is considered a competitive advantage. In this article, a tool is proposed to put the EEUID Framework in action, which in turn will help to reach an IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 6, No 1, November 2011 ISSN (Online): 1694-0814 www.IJCSI.org 292