2.3 METODOLOGÍA
2.3.5 CONTROL
The lack of software flexibility causes problems when software requirements change. Some researchers (EUD-Net, 2003; Klann, Paternò, & Wulf, 2006) suggest that substantial
adaptability should be an important goal of all EUDAs. Therefore, the adaptability of applications is an important criterion to measure EUDAs success.
3.3.1 Approaches
In this section we will discuss studies about how to support EUDs to create customisable applications based on their specific requirements.
Reusable applications and databases
Some professionally developed applications are designed for a generic purpose based on a specific problem domain and can be customised and extended based on customers’
requirements (Sommerville, 2007). There are many good examples, such as payroll or
personnel management applications in an Enterprises Resource Planning (ERP) system. These COTS applications are designed as a base system that supports business processes in a general way. The same base system can be reused and customised to create a family of applications for different companies who are carrying the similar data processing. For example, many ERP modules are configurable for different business processes and rules.
Many end users are looking for reusable applications (especially open source versions) and would like to customise the application for their specific needs. However, customisation often requires advanced database and programming skills. This issue been studied for many years (Mackay, 1990). For example,(Cushing et al., 2007) provided domain specific database templates for managing data. However, the study found that the database entities were too generic to be understood by end users. As a result, database customisation still needs to be carried out by IT professionals. In addition, it also has some limitations in supporting the definition of data field constraints and user friendly data entry.
Component based approach
Component based application development involves component creation and component assembling. Professional developers create components as well as define the interactions between components. End users use composition tools to assemble components together to form applications based on their specific needs. A number of studies have focused on helping end users to understand how components interact and how to assemble them to accomplish
20
particular tasks, such as assembling a document searching tool (Anders et al., 2004; Wulf, Pipek, & Won, 2008).
The advantage of this approach is that assembling predefined components can make creating end user applications quick. However, a lack of support for end users to extend existing components and integrate external components can limit the usefulness of this approach (Anders et al., 2004).
Software shaping workshop
Software Shaping Workshops (SSWs) help end users to extend and tailor application
functionality. (Costabile et al., 2003) claim that SSWs allow applications to be extended and redesigned by end users after the software is completed by professional developers. SSWs are used in many application domains to help end users enhance application functionality. For example, a toolbox was provided for radiologists to create and share annotations for X-rays (Costabile et al., 2006) . Another example is tools provided for end users to perform basic content management tasks, such as tailoring web site contents and layout for different user groups.(Costabile et al., 2008)
Software modification tool for end users
Customisable applications can only be customised among predefined options (Letondal, 2006) . It is hard to meet rapidly changing data management requirement, such as new data queries and algorithms. A solution must be provided for non-professional developers to directly modify existing applications to include new data and functionality. In order to help end users to modify existing software functionalities, Letondal (2006) provided an end user development environment that helps users locate and modify methods (in the source code) from the UI.
Both SSWs and end user development environments can help end users customise and extend software applications. However these studies only allowed end users to create applications or customise functionality based on an existing data model. If the underlying data model needs to be evolved, it is still difficult for end users to modify the database and update exiting applications to reflect the database changes.
Service based approaches
Web services are a platform and language independent way to expose application functionality to other, external, applications. Common functions (e.g. database access) are often implemented as generic web services to simplify end user development. Web services
21
provide great flexibility for application interaction, data integration and data exchange in different programming environments.
There are some studies about using web services to provide software functionality for
extending and customising end user applications. For example, a web service approach is used to provide database access methods in order to help EUDs create customised data entry
applications in a familiar development environment, such as Excel (Deng, Abell, Churcher, & McCallum, 2007) (Deng, McCallum, Churcher, & Abell, 2009). Researchers discuss the potential of using web services to exchange data between end user and enterprise applications (Christian et al., 2008). In addition, some web services help end users tailor applications to their specific needs (Nestler, Namoun, & Schill, 2011) and allow workflow customisation (Wajid, Namoun, & Mehandjiev, 2011) .
Web Mash-ups applications
One of the aspects of Web 2.0 (O'Reilly, 2005) is that it provides a way for end users to participate in web application development, such as creating mash-up applications to combine data from many different sources. For example, Yahoo Pipes (Yahoo, 2011) provide web based development tools for creating mash-up applications. End users can simply select data from different sources (such as web sites, news feeds and web services) and create a new application with the data. Mash-up tools are designed to make it easy for end users to integrate data and filter data without programming skills. Many researchers (Cappiello, Daniel, Matera, Picozzi, & Weiss, 2011; Floch, 2011; Ghiani, Paternò, & Spano, 2011) have provided mash-ups tools for inexperienced users to create applications with minimal effort. However, mash-up applications mainly provide data retrieval functionality. They do not easily support end users to populate or update their databases.
3.3.2 Challenges
This section covered a number of approaches to help end users to develop and customise applications. However, there are still many difficulties facing EUDs. The biggest challenge is how to help end users understand and use customisation systems. A good example is
discussed by Dittrich, Lindeberg and Lundberg (2006), who provided a prototype database with tailoring capabilities that allowed end users to customise data entities. However, the study reported that end users were not confident to make changes to the application and database; they preferred to leave the changes to IT professionals. Even though a system may be designed to be highly flexible, there still needs to be supporting tools as well as proper training for end users to make effective use of the system.
22