Designing databases using agile methodology for web applications By Belkacem Mezhoud ITK 478 Student Abstract A typical web application consists of a presentation, a business and a data parts. In the presentation and the business parts, the designer focus is on the user interface and the business processes and rules. In the data part, the concern is on the data base and its access. Requirements changes are natural in agile methodology during any development phase. Development approaches, whether structured or object oriented, are used to requirements changes. Today, the large web applications are still using the existing databases and their accesses to fetch or update data. In our study, we will investigate about building databases when designing a full web application including a new database using agile methodology. To achieve our goal, we will present the architecture of a web application with different approaches for designing the database. After introducing the agile methodology, we will show its usage in database design for web applications. 1. Web application architecture Partitioning a web application into a presentation, business and data layers separate the roles of each part. The presentation tier is concerned with displaying the data. The business logic performs the business processing. All the logic for fetching and storing data reside in the data layer. This separation of concerns allows parallel development and therefore applications can be delivered as planned. To speed up web application development, a component based approach is proposed in [1]. The idea as described in [1] is to start with some framework where the database access statements are coded into components. With Object Oriented approach, application developers adopt agile methodology. The nature of object oriented paradigm allows simplicity and flexibility. Changing the presentation and the business logic to respond to new requirements during the course of a project is simple and natural. However, updating a data base to reflect the new requirements is time consuming, not simple and might have an impact on some other applications using it. To respond quickly to new data requirements, agile database techniques were proposed in [2]. 2. Agile Database Design Agile data method follows the Agile Methodology principles, which are shown in [2]. The answers for some questions about Agile methodology can be found in [5]. The concepts of agile database design, as described in [2], [3] and [4] are based on data enterprise issues and groups, uniqueness of a project, teamwork and compromises. Agile database design is about delivering a database, which the application logic can use so that an iteration of a web application can be built and become operational. In the next iteration, an updated database can also be built along with the updated presentation and business logics. For a Rapid development of a web application using Java and Frameworks, an agile approach is proposed in [6]. This approach suggests a controller and view for the presentation logic, an application and domain for the business logic, and persistence for the data logic. To be agile in database design, we can follow the object oriented approach. We can normalize the classes like we do data normalization in the relational database design. The technique for class normalization is explained in [2]. 3. Usage and challenges of agile data base design Agile methodology allows the project team to focus on the necessary processes and documentation. Testing can start before writing the code. A Test Driven Development methodology, described in [8]and [9], can be used during development. This Test Driven Development approach is evaluated in [9]. Using the agile methodology in the industry poses some cultural issues. This is true for any new methodology. Some challenges and traditional versus agile software development are described in [10]. 4. Conclusion Considering the evolving environment and new technology, to respond quickly to a demand, a database designer needs to adopt techniques such as agile. Following all the processes and documenting every single item before implementing it will cause delays in other parts such as business and presentation logics in a web application. This position paper supports the idea of using agile data modeling and techniques. References [1] George I. Stassinopoulos, Yiannis Dimitriadis, Anthony Markopoulos, “Component Based Integration of Presentation, Data Access And Application Logic”, IEEE John Vincent Atanasoff 2006 International Symposium on Modern Computing (JVA’06), pp. 184-188, October 2006. [2] Scott W. Ambler, “Agile Database Techniques: Effective Strategies for the Agile Software Developer”, 2003, ISBN: 0471202835. [3] Scott W. Ambler, “Agility in the Database: Data Doesn't Have to be a Four-Letter Word Any More”, 2006, IBM Corporation. Agile Database Techniques: Data Doesn’t Have To Be A Four-Letter Word Anymore - Google Video [4] Scott W. Ambler, “Agile Techniques for Object Databases”, http://www.odbms.org/download/015.01%20Ambler%20Agile%20Techniques%20for%20Object%20Databa ses%20September%202005.PDF [5] Frank Maurer, Grigori Melnik, “What You Always Wanted To Know About Agile Methods But Did Not Dare To Ask”, Proceedings of the 27th informational Conference on Software engineering XCSE’05, May 2005. [6] Vitor Estevao Silva Souza, Ricardo de Almeida Falbo, “An Agile Approach for Web System Engineering”, Proceedings of the 11th Brazilian Symposium on Multi Media and the Web Web Media ’05, December 2005. [7] Tom Briggs, C. Dudley Girard, “Tools and Techniques For Test-Driven Learning in CS1”, Journal of Computing Sciences in Colleges”, Volume 22 Issue 3, January 2007. [9] Thirumalesh Bhat, Nachiappan Nagappan, “Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies”, Proceedings of the 2006 ACM/IEEE international Symposium on empirical Software Engineering ISESE’06, September 2006. [10] Sridhar Nerur, Radhakanta Mahapatra, George Mangalaraj, “Challenges of Migrating to Agile Methodologies”, Communications of the ACM, Volume 48 Issue 5, May 2005.