Designing data bases using agile methodology for web applications

advertisement
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.
Download