an agile approach for web systems engineering

19
An Agile Approach An Agile Approach for Web Systems for Web Systems Engineering Engineering A Presentation of an Article by V.E.S. Souza and A Presentation of an Article by V.E.S. Souza and R.A. Falbo R.A. Falbo

Upload: sean-francis

Post on 02-Jan-2016

16 views

Category:

Documents


1 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Agile Approach for Web Systems Engineering

An Agile Approach An Agile Approach for Web Systems for Web Systems

EngineeringEngineeringA Presentation of an Article by V.E.S. Souza and R.A. FalboA Presentation of an Article by V.E.S. Souza and R.A. Falbo

Page 2: An Agile Approach for Web Systems Engineering

In the beginning. . .In the beginning. . .

Web sites were static HTMLWeb sites were static HTML More power! Server side dynamic More power! Server side dynamic

sites!sites! 1993 CGI1993 CGI 1994 PHP1994 PHP 1995 ASP1995 ASP 1996 Java Servlets1996 Java Servlets 1999 JSP1999 JSP

Page 3: An Agile Approach for Web Systems Engineering

Discovery of Business Discovery of Business ValueValue

Web applications are bornWeb applications are born Value in anywhere accessValue in anywhere access Easy to deployEasy to deploy No need to install software on clientNo need to install software on client O/S independent (for the most part)O/S independent (for the most part)

Page 4: An Agile Approach for Web Systems Engineering

Web EngineeringWeb Engineering

Ad hoc web app development in the Ad hoc web app development in the beginningbeginning

Web engineering borrows many SE Web engineering borrows many SE conceptsconcepts

Has its own special set of models, Has its own special set of models, methods & technologiesmethods & technologies

Page 5: An Agile Approach for Web Systems Engineering

Web Engineering Web Engineering FrameworksFrameworks

JavaJava .NET.NET PHPPHP Faster and more productive Faster and more productive

developmentdevelopment Lends its self well to agile Lends its self well to agile

developmentdevelopment

Page 6: An Agile Approach for Web Systems Engineering

Rapid Development of Web Rapid Development of Web Apps Using Java & Apps Using Java &

FrameworksFrameworks Identify business needsIdentify business needs Plan projectPlan project Generate requirementsGenerate requirements ModelModel ImplementImplement TestTest DeliverDeliver Allow end-user feedback & evolutionAllow end-user feedback & evolution

Page 7: An Agile Approach for Web Systems Engineering

Requirements Requirements SpecificationSpecification

Model with a purposeModel with a purpose Use multiple modelsUse multiple models Discard non long-term value modelsDiscard non long-term value models Content before representation [not Content before representation [not

strict UML]strict UML] Know the models & how to use the Know the models & how to use the

toolstools

Page 8: An Agile Approach for Web Systems Engineering

DesignDesign

Heavily dependent on the platformHeavily dependent on the platform WAE (web application extension of WAE (web application extension of

UML)UML)

Page 9: An Agile Approach for Web Systems Engineering

WAE - UMLWAE - UML

Page 10: An Agile Approach for Web Systems Engineering

Presentation logic layerPresentation logic layer

Classes that are for the UI (web Classes that are for the UI (web pages)pages)

Controls the interaction (controller Controls the interaction (controller package)package)

Controller classes receive user input Controller classes receive user input from the view call system functions from the view call system functions (application package) and return the (application package) and return the control to the view to display the control to the view to display the resultsresults

Page 11: An Agile Approach for Web Systems Engineering

Business Logic LayerBusiness Logic Layer

Application Package (intelligence Application Package (intelligence that was defined in use cases, that was defined in use cases, create, retrieve, update and delete create, retrieve, update and delete domain package objects)domain package objects)

Domain Package (represents Domain Package (represents business domain concepts identified business domain concepts identified in requirements)in requirements)

Page 12: An Agile Approach for Web Systems Engineering

Data Access LayerData Access Layer

Store persistent objects in long-term Store persistent objects in long-term duration media such as databasesduration media such as databases

Advocate use of DAO design patternAdvocate use of DAO design pattern Decouples the data access logic from Decouples the data access logic from

the databasethe database

Page 13: An Agile Approach for Web Systems Engineering

Frameworks recommended by the Frameworks recommended by the authorsauthors

Page 14: An Agile Approach for Web Systems Engineering

Object/Relational mapping Object/Relational mapping frameworkframework

HibernateHibernate http://www.hibernate.org/http://www.hibernate.org/ Allows us to thing in terms of an object and Allows us to thing in terms of an object and

its properties rather than a certain set of its properties rather than a certain set of fields . e.g. person.firstName = Fred rather fields . e.g. person.firstName = Fred rather than INSERT INTO peopleTable.firstName than INSERT INTO peopleTable.firstName Fred, not being concerned with the SQL Fred, not being concerned with the SQL taking place behind the scenes.taking place behind the scenes.

Allows expression of queries in a SQL Allows expression of queries in a SQL extenstion called (HQL), native SQL, or an extenstion called (HQL), native SQL, or an OO Criteria and Example API.OO Criteria and Example API.

Page 15: An Agile Approach for Web Systems Engineering

Controller ComponentController Component

WebWorkWebWork http://www.opensymphony.com/http://www.opensymphony.com/

webwork/webwork/ Reusable UI templates, form Reusable UI templates, form

controls, UI themes, form field controls, UI themes, form field validation, form parameter mapping validation, form parameter mapping to JavaBeansto JavaBeans

Page 16: An Agile Approach for Web Systems Engineering

View ComponentView Component FreeMarkerFreeMarker http://freemarker.sourceforge.net/http://freemarker.sourceforge.net/ Allows web designers to work in parallel Allows web designers to work in parallel

with programmerswith programmers A generic tool that generates text output A generic tool that generates text output

from templatesfrom templates SiteMeshSiteMesh http://www.opensymphony.com/sitemesh/http://www.opensymphony.com/sitemesh/ Web page decoration and layout frameworkWeb page decoration and layout framework Used to keep a consistent layout Used to keep a consistent layout

throughout all pagesthroughout all pages

Page 17: An Agile Approach for Web Systems Engineering

All LayersAll Layers

Spring FrameworkSpring Framework http://www.springframework.org/http://www.springframework.org/ Performs dependency injection to Performs dependency injection to

integrate the different packagesintegrate the different packages Acegi Security integrated with SpringAcegi Security integrated with Spring http://www.acegisecurity.org/http://www.acegisecurity.org/ Performs authentication and Performs authentication and

authorization services for both authorization services for both controller and application packages.controller and application packages.

Page 18: An Agile Approach for Web Systems Engineering

ConclusionConclusion The creation of agile processes for web The creation of agile processes for web

development is promisingdevelopment is promising The agile approach we use in traditional The agile approach we use in traditional

SE can be adapted for engineering of SE can be adapted for engineering of web applications.web applications.

Web applications need to be developed Web applications need to be developed that can help refine an agile approach to that can help refine an agile approach to web engineeringweb engineering

The frameworks that are out there need The frameworks that are out there need to be evaluated further for their to be evaluated further for their applicability to such an approachapplicability to such an approach

Page 19: An Agile Approach for Web Systems Engineering

CitationCitation