190 likes | 288 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.
E N D
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)
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
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