Incremental Quality Improvement in Web Applications Using Web Model Refactoring
Web applications must be usable and accessible; besides, they evolve at a fast pace and it is difficult to sustain a high degree of external quality. Agile methods and continuous refactoring are well-suited for the rapid development of Web applications si
- PDF / 373,290 Bytes
- 12 Pages / 430 x 660 pts Page_size
- 104 Downloads / 271 Views
2
GIDIS_Web, Universidad Nacional de La Pampa, Argentina LIFIA, Universidad Nacional de La Plata and CONICET, Argentina 3 RCOST, University of Sannio, Italy [email protected], {gustavo,garrido}@lifia.info.unlp.edu.ar, {distante,canfora}@unisannio.it
Abstract. Web applications must be usable and accessible; besides, they evolve at a fast pace and it is difficult to sustain a high degree of external quality. Agile methods and continuous refactoring are well-suited for the rapid development of Web applications since they particularly support continuous evolution. However, the purpose of traditional refactorings is to improve internal quality, like maintainability of design and code, rather than usability of the application. We have defined Web model refactorings as transformations on the navigation and presentation models of a Web application. In this paper, we demonstrate how Web model refactorings can improve the usability of a Web application by using a mature quality evaluation approach (WebQEM) to assess the impact of refactoring on some defined attributes of a Web product entity. We present a case study showing how a shopping cart in an e-commerce site can improve its usability by applying Web model refactorings. Keywords: refactoring, Web applications, usability, quality evaluation.
1 Introduction The evolution of Web applications (WAs) is driven by a myriad of different factors: new requirements (stable and volatile), users’ feedback, new technologies giving the chance to change the look and feel or the interaction style of the application, etc. In all cases, this evolution usually follows unpredictable patterns that imply a constant pressure on development teams. Agile methods have emerged to help developers cope with, and even welcome, continuous change in requirements [1]; as such, these methods are particularly suitable for developing WAs. Refactoring is one of the fundamental practices of agile development used to add flexibility and extensibility before introducing new functionality [3]. Refactoring was defined in the context of object-oriented systems to “factor out” new abstractions and perform other small transformations to the source code of an application without changing its behavior [11]. These transformations aim at improving the design of the code, making it more reusable and flexible to subsequent M. Weske, M.-S. Hacid, C. Godart (Eds.): WISE 2007 Workshops, LNCS 4832, pp. 411–422, 2007. © Springer-Verlag Berlin Heidelberg 2007
412
L. Olsina et al.
semantic changes. Though refactorings are performed in small steps, they are usually composable, yielding larger transformations that improve readability, reusability and maintainability of a system [15]. Refactoring to patterns has also been proposed to help keep the balance between under-engineering (continuously adding new functionality without a previous clean-up) and over-engineering (applying design patterns to create overly complex designs) [6]. In the context of WAs, refactoring may not only be applied to improve internal quali
Data Loading...