Academia.eduAcademia.edu

Reusability in electronic services development

2004, Proceedings of the CSITeA

Electronic government employs electronic services to facilitate interaction with citizens and enterprises and deliver a rich and high quality spectrum of services. Development of electronic services can be greatly assisted, both in terms of development cost and roll-out time, by exploiting the ...

REUSABILITY IN ELECTRONIC SERVICES DEVELOPMENT Costas Vassilakis Department of Computer Science and Technology University of Peloponnese Terma Karaiskaki, 22100, Tripolis, Greece [email protected] Abstract Electronic government employs electronic services to facilitate interaction with citizens and enterprises and deliver a rich and high quality spectrum of services. Development of electronic services can be greatly assisted, both in terms of development cost and roll-out time, by exploiting the reusability inherent in them. Reusability may be promoted by identifying reusable objects in the context of electronic service development, building and populating a repository with such components and providing the means for developers to locate, extract and adapt them to suit the task at hand. In this paper we analyse electronic services to recognise reusable components and present means and techniques that empower electronic service developers to build electronic services through reusable components. 1 INTRODUCTION Electronic services, especially transactional ones, are a central tool in electronic government, since a considerable number of services offered to the citizens or enterprises, in the context of electronic government, are modelled through such transactional services. It is worth noting that among the basic public services listed in [1], 15 of them (75%) are transactional services, i.e. services that involve filling-in and submission of electronic forms. An electronic service is a complex software artefact, whose development requires the cooperation of numerous experts with diverse skills. Firstly, domain experts are needed who possess the know-how regarding the business processes that must be modelled and the rules that govern them. Secondly, analysts are needed who will interact with domain experts to extract the requirements for the electronic service. These requirements will then be passed to the IT staff who will implement not only the service logic and the code to enforce business rules, but connections to back-end repositories as well, regarding data storage and retrieval. Finally, the visual layout of the service needs to be refined and optimised by experts in computerhuman interaction. During the maintenance phase, some tasks may be revisited to cater for accommodating changes in the environment (e.g. change of legislation, specifications or IT environment such as databases) or to improve the quality of the service provided. The current practice for developing electronic services makes little or not at all benefit of the reusability concept: for each electronic service, all analysis, development and maintenance tasks are George Lepouras Department of Computer Science and Technology University of Peloponnese Terma Karaiskaki, 22100, Tripolis, Greece [email protected] performed anew, even though the same or similar tasks have been performed in the context of other electronic services. This can be attributed to the fact that electronic services are mainly viewed from the business point of view, with respect to which each electronic service performs an altogether different function than other deployed electronic services, thus the opportunities to employ reusability are limited. From a software architect’s point of view, however, an electronic service actually consists of smaller, simpler building blocks, that can be reused across electronic services in the same way that software libraries [2], object classes and packages [3] and patterns [4] can be reused for building software applications. Actually, in the context of electronic services reusability opportunities may be even higher than in traditional application development, since reuse may extend to requirements analysis – for example, if the “personal detail collection” requirement is analysed for a specific service that is based on some legislation, then this analysis (and all derived design and implementation) can be reused for other services based on the same legislation. In this paper we propose an approach for electronic service development that promotes reusability. We first analyse electronic services to identify their basic building blocks and recognise the opportunities to employ reusability at various levels (single elements, element groups etc) and varying scopes (departmental, inter-departmental, inter-organisational and so on). We then propose means and techniques that will allow service developers to reuse existing components, or create their own and make them available for other developers to reuse. Our proposal is based around a reusable component repository, which is complemented with browsing and search facilities that enable developers to examine and query its content. The rest of the paper is organised as follows: in section 2 the basic building blocks for electronic services are identified. Section 3 presents a repositorybased electronic service development approach that promotes reusability and examines facilities that need to be available for this approach to be effective. Finally section 4 concludes and outlines future work. 2 ELECTRONIC SERVICE BUILDING BLOCKS FOR REUSABILITY Electronic services are, generally, computerised equivalents of business processes involving filling in and submission of forms, processing of submitted forms and possibly return of a reply to the submitting citizen. When using an electronic service, the user is presented with a number of forms, which must be filled in. Short documents may be represented using a single electronic form, whereas lengthy documents may be partitioned into multiple forms. A form may comprise of several areas, and each area commonly contains individual fields, which are conceptually interrelated. For example, in a tax return form distinct areas may be dedicated to collecting data regarding the taxpayer’s personal details, income and expenditures. Form fields are the individual elements that citizens need to fill in, either by direct typing of data in the area pertaining to the field (e.g. typing 13765 in the input area of the Zip code field) or by selecting one of the available field options (e.g. Yes or No for the Do you own the house you live in? field). Fields usually come complete with labels, i.e. descriptions of their purpose on the form. In some cases, the number of fields needed for some purpose cannot be predetermined. For example, if the Protected family members need to be declared, the number of entries may vary from one (single person) to twenty or more, and for each one of them the name, the surname and the relationship to the declaring citizen must be declared, as shown in Figure 1. Figure 1 – Repeating fields to accommodate input In the context of electronic services, two extra facilities are available for fields, as compared to the paper-based versions: firstly, some fields may be automatically filled in by the system; for instance, if the user presents a username and a password to log into a service, the user’s personal details may be retrieved from a registry and be automatically placed in the corresponding fields. Another facility is to automatically compute the contents of some fields, representing for example percentages of a value or column/row sums. In most cases, fields that are automatically filled in or computed are not allowed to be directly changed by the electronic service user. While the above elements of an electronic service (forms, areas, fields) provide the required functionality to the end user, of equal importance are the instructions that are made available to the citizens, regarding the use of the electronic service. Instructions may contain explanations, examples, step-by-step guides, help desk contact details or any other material that will assist the citizens to use the electronic service. Typically, specific instructions are accessible via hyperlinks that are located close to the fields they pertain to; general instructions and examples covering field areas or whole forms may be anchored in a more global context, e.g. close to the top of the form or in a separate toolbox. In addition to these components, which are targeted for use by the citizen accessing the electronic service, an electronic service normally encompasses a number of complementary elements that are counterparts of the back-office work that is associated with the modelled business process. One important part of this work is the conducting of validation checks, to ascertain that the forms are filled-in by the citizen in conformance to the instructions. Validation criteria may dictate that some elements are mandatory (e.g. the submitting citizen’s surname must be filled-in), limit the value range that can be input within a single field (e.g. the text entered in the Date of birth field should represent a valid date, whereas the inputs in the Gross income field must be a positive number). The most complex type of validation criteria includes cross-checking of different fields or different forms (for example “if the net profits field is filled in then the net loss field should be left blank”; “the net profit cannot drop below the 30% of the gross profit”; “form A cannot be submitted before form B”). In paper-based environments, conformance of submitted documents with respect to validation checks is conducted by either front-desk workers receiving the document from the citizen, or by the back-office workers that will process the form. Validation checks that apply to a particular service stem from the relevant legislation, which also defines the purpose of the service, the format and content of the documents that must be submitted, the citizen classes that can submit the documents and the related submission periods, etc. In some cases, certain portions of legislation may affect multiple electronic services; for instance, the legislation defining the format of the VAT number affects all electronic services that include VAT numbers. Legislation needs to be related to electronic services and their components for a number of reasons, including reference by citizens and workers of PA, documentation of the service and tracking of elements affected by legislation changes. Finally, when a form is submitted it needs to be filed, for future processing and reference. In the context of electronic services, filing is equivalent to storing the document in the appropriate repository of the organisational information system, in a form appropriate for further processing within the organisational workflow. Since the system delivering the electronic service to the citizens is usually separate from the main organisational system (due to both technological and security considerations), a communication scheme between the two systems must be established to fulfil this task. Summarising the components of electronic services, the following building blocks may be identified: 1. forms 2. form areas 3. fields 4. instructions 5. validation checks 6. legislation 7. communication with back-office systems Having identified the elementary electronic service building blocks, an issue that must be investigated is whether these building blocks can be directly used for the purpose of promoting reusability in the context of electronic services. The criteria that a component must meet in order to be considered as a reusable part may be extracted from [5], according to which “a component is a non-trivial, nearly independent, and replaceable part of a system that fulfils a clear function in the context of a well-defined architecture. A component conforms to and provides the physical realization of a set of interfaces”. We will now review the extent to which the identified electronic service building blocks meet the component reusability criteria. Firstly, fields, as defined above fail to meet the triviality criterion. Indeed, an input area coupled with a label, can be easily created by the electronic service developer, with a total effort less than the one needed to locate and extract the corresponding element from the reusable component repository. The triviality criterion is met by all other building blocks, although some instances of specific components may be trivial, but this cannot be generalised for the whole building block category (e.g. some instructions may simply be “type in a number”, but not all instructions are that trivial). Another important criterion that the identified building blocks fail to meet is that of the near independence. Indeed, validation checks cannot be viewed independently of the fields, form areas, forms or services they pertain to; a validation check can only be used in a context that the fields involved in the validation check exists. For example a validation check checking that the pre-paid taxes are less than 25% of the gross income can only be used in a context that both a field for declaring the pre-paid taxes and a field for declaring gross income exist. Such a context may be a form area, a form or the whole electronic service. The same remark holds in some cases for instructions, legislation and documentation. For example, the instructions on how to fill in a VAT number and the legislation defining the form of VAT numbers should always be coupled with a field accepting input corresponding to a VAT number. However there do exist cases where instructions, legislation and documentation may be reusable (nearly) independently of other components, such as instructions regarding generic navigation issues, working with forms and fields or legislation related to the use of electronic services in general. Thus, two categories for instructions, legislation and documentation may be identified (a) items that should be coupled with other building blocks to achieve “near independence” and (b) items that are nearly independent on their own right. Packaging of the first category is discussed below, while items of the second category are allowed to exist autonomously in the reusable component repository. In order to better serve the reusability purposes, the building blocks of electronic services are repackaged as follows: A form field is bundled together with the related instructions, the validation checks and the legislation or any other documentation that pertains to the specific form field. Such a bundle is called a transaction service element (TSE). An examples of reusable component at TSE level is the US SSN, which is a nine-digit number with dashes after the third and fifth digit, bundled together with the validation checks enforcing such a form, instructions for the end-user on how to enter a valid SSN and any related legislation and documentation. Note that reusability scope of such a bundle is quite high, since it may be used in any electronic service involving US SSNs. Figure 2 – Entering dates without typing A form area is packaged along with the instructions, validation checks and legislation or any other documentation that are related to the form area as a whole. The form area package also contains the transaction service elements that appear within the form area and, transitively, all the instructions, the validation checks and the legislation bundled with the individual transaction service elements. The validation checks packaged into a form area may involve any transaction service elements included in the form area. Such a package is called transaction service element group (TSE group). A first example of a reusable TSE group may be a bundle of three individual TSEs allowing the user to enter dates without typing, as illustrated in Figure 2 (typing dates is a common source of errors in electronic services, thus the ability to enter dates without typing is strongly desired [6]). The TSE group contains the three individual TSEs, the related validation checks (e.g. disallowing the specification of the 31st of February), and all pertinent instructions and documentation. A second, more specialised example is that of a TSE group allowing the electronic service user to enter a taxpayer’s country and VAT number. Since different rules apply to VAT number in different countries, the validity of a VAT number can only be determined if the country it has been issued in is known, thus the proper validation check cannot be directly associated with any individual TSE. The instructions, documentation and legislation in this TSE group will also need to cover all countries that can be specified in the relevant TSE. A form is bundled together with the instructions, validation checks and legislation or any other documentation that are related to the form as a whole. The bundle also contains the visual form layout, the individual transaction service elements and transaction service element groups that appear on the form and, transitively, all the instructions, the validation checks and the legislation packaged with the individual transaction service elements and transaction service element groups. Validation checks in the context of the form may reference any field appearing on the form either directly or indirectly through a transaction service element group. Such bundles are called transaction service forms (TS forms). An example of a reusable form is a form collecting personal details, which is directly reusable in any electronic service. In some cases, amendments may be needed, as for example in the detail forms of the Greek VIES acquisitions and VIES deliveries services (accessible through http://www.e-oikonomia.gr, for registered users only), between which only minor differences exist. Finally, a whole service is packed along with the forms that constitute it, the instructions, validation checks and legislation or any other documentation that pertain to the service as a whole. Validation checks in the context of a service may reference any combination of fields appearing within the transaction service, either within a single form or on multiple forms. Such packages are called transaction services (TS). The packaging described above tackles both the issues of triviality and independence, since any bundle is (a) all packages contain significant information and constitute an amount of work that is not easily repeatable in its full extent and (b) each package is selfcontained and can be meaningfully used in an appropriate context. Note that all remaining component reusability criteria are also met: (1) Components are replaceable, since any component may be replaced by any other component of the same class, in any valid context. (2) All components perform a clear function. For instance, fields may be filled, validated and included in transaction service element groups and transaction forms while forms can be submitted, validated and included in transaction services. In both cases, also, the associated instructions and legislation may be viewed. Notice that all the component reusability criteria are directly met for the communication with back-office systems building block, since it is definitely non-trivial, it is independent to a large extent of all other functions, some implementation may be easily replaced by another component of equivalent functionality and its function within the system is clear. As note before, electronic services are usually delivered through a dedicated system, which communicates the submitted data to an installed organisational IT system. This task can be further analysed into the following subtasks: 1. collection of the values submitted by the citizen 2. transmission of the collected values to the back-end system 3. restructuring of the information in a form appropriate for the back-end system and insertion into the relevant repository of the organisational workflow. Out of these three subtasks, the two first may be standardised, since the collection of values from a specific service delivery environment is usually performed in a standard way (e.g. in a PHP [7] environment values are usually stored in the user session variable HTTP_SESSION_VARS; in ColdFusion [8] programmers usually store such values in an array-type variable; in a Java environment values are generally collected through the relevant bean [9]). The transmission between the two systems can also be performed using a number of standard techniques, e.g. RMI [10] or XML [11] messages on top of TCP/IP [12] or SSL/TLS [13]. The third subtask is highly dependent on the actual organisational information system, so no global solution can be provided; instead, the organisation’s IT staff can write custom modules to perform this subtask, as detailed in [14]. 3 PROMOTING REUSABILITY IN ELECTRONIC SERVICES In order to promote reusability in the development of electronic services, developers must be empowered to (a) locate reusable components that are pertinent to the task at hand (b) customise these components to exactly suit the task and (c) create and make available to other users their own reusable components. To facilitate this task a reusable component repository is introduced, complemented with tools enabling users to browse, query, populate and customise its contents. The repository approach is illustrated in Figure 3. The transaction element management (TSE management) facility enables users to create templates of reusable TSEs. A reusable TSE template contains exactly the same information as an individual transaction service element (i.e. label, input area, validation checks, instructions, documentation and legislation), but is not directly used in transaction services. Instead, users create instances of this template and customise it to suit the needs of particular circumstances, since a TSE need not appear identical in all its occurrences. For instance, a TSE representing a person’s VAT number may appear in a tax return form as “Taxpayer’s VAT number” in the area for personal details, as “Landlord’s VAT number” in the section in which housing expenses are declared and as “Employer’s VAT number” in the incomes section. Besides the changes in labels, the validation checks associated with each occurrence may need to be customised (e.g. the Taxpayer’s VAT number is always mandatory while the landlord’s VAT number is mandatory only if housing expenses are declared; the employer’s VAT number may need to be verified to correspond to an enterprise, rather than an individual). Once a TSE template has been instantiated and (possibly) customised, it can be used within a form of transactional service. Note that customisation still possible after the establishment of the link between the instantiated TSE and the transactional service. TSE management TSE group management TS forms management TS management Reusable component repository Linking/ Browsing Searching Composite search Figure 3 – Introducing the reusable component repository A similar approach is used for TSE groups, i.e. users create instances of generic TSE groups, which then appropriately customise for use in services. For transaction service forms and transaction services, however, it was considered preferable to not introduce the concepts of transaction service form templates and transaction service templates, respectively, since the cases in which whole forms or whole transaction services will be reused are less frequent than the cases in which TSEs or TSE groups will be. Instead, for transaction service forms and transaction services a clone facility has been provided, which create exact duplicates of the source object. The developer can then customise any component of the cloned object. For the reusable component repository to be effective, however, developers must be provided with appropriate tools to locate reusable components. The classic mechanisms for locating items within a repository are searching and browsing, which are both provided in the proposed approach. Through searching, users enter patterns, which are matched against the contents of the repository, and the components that qualify with respect to the matching are included in the result. The search pattern may include free text search, either in all sections of elements or in specific ones (e.g. label, documentation, validation rules, author, keywords or any combination of fields) and the type of the desired result may also be indicated (for example, “TSEs only”). The simple form of querying, however, can prove ineffective in the context of the reusable component repository, because search mechanisms usually target single objects, while the elements of the repository are composite, thus the relevant information is dispersed among several objects. Consider for example the case of a developer searching for a TSE group representing a citizen’s details, i.e. name, surname, address, social security number and phone. Searching for an item containing the strings “Name”, “Surname”, “Address”, “SSN” and “Phone” will probably fail, because each of these strings is contained within the relevant TSE, while the TSE group contains only links to these TSEs. Searching for a TSE group named “Citizen details” might also fail, because the TSE group may have been named “Citizen data”, “Personal details” etc. In order to address this shortcoming, structured searching is provided, which allows for the developer to specify criteria that contained elements should fulfill, for the containing object to qualify for the result. Using structured search, the query to locate the citizen’s details TSE group could be formulated as retrieve TSE groups having (a) a contained TSE matching “Name” (b) a contained TSE matching “Surname” and so on. Users are assisted in entering structured queries by a graphical user interface, illustrated in Figure 4. In the depicted query, the type of the result objects is specified (TSE group), it is also stated that the resulting object should be linked to (a) an object whose description matches “Name” and (b) an object whose description matches “Surname”. In structured queries, a criteria relaxation approach is followed, according to which an object may appear in the query result, even though not all defined criteria for linked objects are met. This feature has been considered useful since developers may thus locate reusable components that are similar to the components they seek, and can then instantiate (or clone) customise these components. In the previous example, a developer might locate a TSE group containing the TSEs “Name”, “Surname”, “Address” and “SSN”, but not the “Phone”, which could however be added to the specific instance created for the service under development. The relaxation degree (i.e. the number of criteria for linked objects that an item in the result set may not meet) can be set by the user stating the structured query. Complementary to searching, browsing mechanisms are offered to the users. In this case, users are presented with a classification scheme (or taxonomy) for reusable components, and are able to drill down this scheme to locate the desired components (see Figure 5). The classification scheme may reflect the organisation’s structure (e.g. by department), be based on the components’ semantic aspects (e.g. income tax components, real estate components), or follow any other convenient structure. Multiple classifications may also be present, to provide for alternative concept paths for locating specific reusable components. The actual reusable components are located at the leaf nodes of the classification scheme, whereas non-leaf nodes correspond to classes of reusable components. Regarding the structure of the classification scheme, it must be noted that although it is displayed as a tree, the internal structure is a direct acyclic graph. This allows for linking the same reusable component into multiple concept categories, enabling developers to more easily locate an item. For example, the “Personal details TSE group” may be linked under the categories “Generic reusable components”, “Income tax/generic reusable components”, “VAT/ generic reusable components” and “VAT/periodic declaration” (slashes indicate drill down points within categories). The gain offered by multiple linking to concept categories incurs however a cost, since these links have to be established manually by domain experts. It must be noted though that linking may be performed incrementally after an item is placed in the repository, so no heavy burden is placed on the creator of an item to establish all the necessary links upon the insertion of a reusable component into the repository. Figure 4 – Using structured search Figure 5 - Locating reusable components through taxonomies 4 CONCLUSIONS – FUTURE WORK In this paper we have discussed the issue of reusability in the development of electronic services. We have showed that by appropriately decomposing electronic services in their constituent parts, it is possible to identify portions that may be reused across electronic services, minimising both the recourses needed for development and testing and the service roll- out time. We have also presented a repository-based development approach for electronic service, which allows for components to be placed within a repository and then be extracted for use in other services. Future work will focus on intelligent agents that will analyse the components created by users and automatically propose the use of existing components. Using semantics-based techniques, as those discussed in [15] for facilitating browsing and searching within reusable component repositories will be also investigated. 5 REFERENCES [1] eEurope, 2000. Common list of basic public services. Available at http://europa.eu.int/information_society/eeurope/20 02/ action_plan/pdf/basicpublicservices.pdf [2] B. A. Burton, R. W. Aragon, S. A. Bailey, K. D. Koehler, L. A. Mayes, “The reusable software library”, in Software reuse: emerging technology, IEEE Computer Society Press, 1988, pp. 129-137 [3] M. W. Price, S. Demurjian, “Analyzing and Measuring Reusability in Object-Oriented Designs”, Proceedings of the OOPSLA conference, Atlanta, Georgia, 1997, pp. 22-33 [4] M. Fowler, “Analysis Patterns: Reusable Object Models”, Addison-Wesley Professional, 1996. [5] Philippe Kruchten, “Modeling Component Systems with the Unified Modeling Language”, Proceedings of the 1998 International Workshop on ComponentBased Software Engineering, 1998 [6] SmartGov consortium, “D41: User Requirements, Services and Platform Specifications”, available from http://www.smartgov-project.org [7] Lerdorf, R., Tatroe, K. 2002. Programming PHP. O'Reilly & Associates, 2002, ISBN: 1565926102 [8] Hewitt, E. 2001. Core ColdFusion 5. Prentice Hall, 2001, ISBN: 0130660612 [9] Englander, R., Developing Java Beans, O’ Reilly, 1997 [10] Sun Microsystems (1999) JavaTM Remote Method Invocation, available at java.sun.com/j2se/1.3/docs/guide/rmi/index.html [11] World Wide Web Consortium (2001) The XML Specification, available at http://www.w3.org/xml [12] Stevens W. R., TCP/IP Illustrated: Volume 1. The protocols, 10th Edition, Addison-Wesley Pub Company, 1997 [13] Thomas S. A. (2000) SSL & TLS Essentials: Securing the Web, John Wiley & Sons, ISBN: 0471383546 [14] C. Vassilakis, G. Lepouras, S. Rouvas and P. Georgiadis, “Integrating e-Government Public Transactional Services in the Public Authority Workflow”, Electronic Government J., vol. 1, Inderscience Publications, pp. 49-60. [15] Haining Yao, Letha Etzkorn, “Towards A Semantic-based Approach for Software Reusable Component Classification and Retrieval”, Proceedings of the 2004 ACM SouthEast Conference, April 2-3, 2004, Huntsville, Alabama, USA, pp. 110-115.