An Agile Approach for Web Systems Engineering A

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 n More power! Server side dynamic sites! n 1993 CGI n 1994 PHP n 1995 ASP n 1996 Java Servlets n 1999 JSP n

Discovery of Business Value Web applications are born n Value in anywhere access n Easy to deploy n No need to install software on client n O/S independent (for the most part) n

Web Engineering Ad hoc web app development in the beginning n Web engineering borrows many SE concepts n Has its own special set of models, methods & technologies n

Web Engineering Frameworks Java n. NET n PHP n Faster and more productive development n Lends its self well to agile development n

Rapid Development of Web Apps Using Java & Frameworks Identify business needs n Plan project n Generate requirements n Model n Implement n Test n Deliver n Allow end-user feedback & evolution n

Requirements Specification Model with a purpose n Use multiple models n Discard non long-term value models n Content before representation [not strict UML] n Know the models & how to use the tools n

Design Heavily dependent on the platform n WAE (web application extension of UML) n

WAE - UML

Presentation logic layer Classes that are for the UI (web pages) n Controls the interaction (controller package) n Controller classes receive user input from the view call system functions (application package) and return the control to the view to display the results n

Business Logic Layer Application Package (intelligence that was defined in use cases, create, retrieve, update and delete domain package objects) n Domain Package (represents business domain concepts identified in requirements) n

Data Access Layer Store persistent objects in long-term duration media such as databases n Advocate use of DAO design pattern n Decouples the data access logic from the database n

Frameworks recommended by the authors

Object/Relational mapping framework n n 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. first. Name = Fred rather than INSERT INTO people. Table. first. Name 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 Web. Work n http: //www. opensymphony. com/webwork/ n Reusable UI templates, form controls, UI themes, form field validation, form parameter mapping to Java. Beans n

View Component n n n n Free. Marker http: //freemarker. sourceforge. net/ Allows web designers to work in parallel with programmers A generic tool that generates text output from templates Site. Mesh http: //www. opensymphony. com/sitemesh/ Web page decoration and layout framework Used to keep a consistent layout throughout all pages

All Layers Spring Framework n http: //www. springframework. org/ n Performs dependency injection to integrate the different packages n Acegi Security integrated with Spring n http: //www. acegisecurity. org/ n Performs authentication and authorization services for both controller and application packages. n

Conclusion The creation of agile processes for web development is promising n The agile approach we use in traditional SE can be adapted for engineering of web applications. n Web applications need to be developed that can help refine an agile approach to web engineering n The frameworks that are out there need to be evaluated further for their applicability to such an approach n

Citation
- Slides: 19