Upload
gilbert-spencer
View
212
Download
0
Embed Size (px)
Citation preview
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
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
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)
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
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
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
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
DesignDesign
Heavily dependent on the platformHeavily dependent on the platform WAE (web application extension of WAE (web application extension of
UML)UML)
WAE - UMLWAE - UML
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
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)
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
Frameworks recommended by the Frameworks recommended by the authorsauthors
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.
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
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
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.
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
CitationCitation