ppt

indexadjustmentInternet and Web Development

Nov 13, 2013 (3 years and 6 months ago)

90 views

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