An Agile Approach for
Web Systems
Engineering
A Presentation of an Article by V.E.S. Souza and R.A. Falbo
In the beginning. . .
Web sites were static HTML
More power! Server side dynamic sites!
1993 CGI
1994 PHP
1995 ASP
1996 Java Servlets
1999 JSP
Discovery of Business Value
Web applications are born
Value in anywhere access
Easy to deploy
No need to install software on client
O/S independent (for the most part)
Web Engineering
Ad hoc web app development in the beginning
Web engineering borrows many SE concepts
Has its own special set of models, methods &
technologies
Web Engineering Frameworks
Java
.NET
PHP
Faster and more productive development
Lends its self well to agile development
Rapid Development of Web Apps
Using Java & Frameworks
Identify business needs
Plan project
Generate requirements
Model
Implement
Test
Deliver
Allow end
-
user feedback & evolution
Requirements Specification
Model with a purpose
Use multiple models
Discard non long
-
term value models
Content before representation [not strict UML]
Know the models & how to use the tools
Design
Heavily dependent on the platform
WAE (web application extension of UML)
WAE
-
UML
Presentation logic layer
Classes that are for the UI (web pages)
Controls the interaction (controller package)
Controller classes receive user input from the
view call system functions (application package)
and return the control to the view to display the
results
Business Logic Layer
Application Package (intelligence that was
defined in use cases, create, retrieve, update and
delete domain package objects)
Domain Package (represents business domain
concepts identified in requirements)
Data Access Layer
Store persistent objects in long
-
term duration
media such as databases
Advocate use of DAO design pattern
Decouples the data access logic from the
database
Frameworks recommended by the authors
Object/Relational mapping
framework
Hibernate
http://www.hibernate.org/
Allows us to thing in terms of an object and its
properties rather than a certain set of fields . e.g.
person.firstName = Fred rather than INSERT INTO
peopleTable.firstName Fred, not being concerned with
the SQL taking place behind the scenes.
Allows expression of queries in a SQL extenstion called
(HQL), native SQL, or an OO
Criteria and Example
API
.
Controller Component
WebWork
http://www.opensymphony.com/webwork/
Reusable UI templates, form controls, UI
themes, form field validation, form
parameter
mapping to JavaBeans
View Component
FreeMarker
http://freemarker.sourceforge.net/
Allows web designers to work in parallel with
programmers
A generic tool that generates text output from
templates
SiteMesh
http://www.opensymphony.com/sitemesh/
Web page decoration and layout framework
Used to keep a consistent layout throughout all pages
All Layers
Spring Framework
http://www.springframework.org/
Performs dependency injection to integrate the
different packages
Acegi Security integrated with Spring
http://www.acegisecurity.org/
Performs authentication and authorization
services for both controller and application
packages.
Conclusion
The creation of agile processes for web
development is promising
The agile approach we use in traditional SE can
be adapted for engineering of web applications.
Web applications need to be developed that can
help refine an agile approach to web engineering
The frameworks that are out there need to be
evaluated further for their applicability to such
an approach
Citation
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο