XML Implementation of Frame Processor Tak Wai Wong, Stan Jarzabek, Soe Myat Swe, Ru Shen, Hongyu Zhang Department of Computer Science School of Computing National University of Singapore Singapore 117543 +65 874 2863 (phone), +65 779 4580 (fax) {wongtakw, stan, soemyats, shenru, zhanghy}@comp.nus.edu.sg ABSTRACT A quantitative study has shown that frame technology [1] supported by Fusion toolset can lead to reduction in time-to- market (70%) and project costs (84%). Frame technology has been developed to handle large COBOL-based business software product families. We wished to investigate how the principle of frame approach can be applied to support product families in other application domains, in particular to build distributed component-based systems written in Object-Oriented languages. As Fusion is tightly coupled with COBOL, we implemented our own tools based on frame concepts using the XML technology. In our solution, a generic architecture for a product family is a hierarchy of XML documents. Each such document contains a reusable program fragment instrumented for change with XML tags. We use a tool built on top of XML parsing framework JAXP to process documents in order to produce a custom member of a product family. Our solution is cost-effective and extensible. In the paper, we describe our solution, illustrating its use with examples. We intend to make our solution available to public in order to encourage investigation of frame concepts in other application domains, implementation languages and platforms. Categories and Subject Descriptors D.2.13 [Reusable Software]: Domain Engineering General Terms Design, Experimentation, Languages Keywords Frame technology, XML, product families, variant requirements 1. INTRODUCTION The key issue in domain engineering approach is to identify and represent commonality and variability among the members of a product family. This must be done at the product family requirements, generic architecture and architecture implementation levels. A generic product family architecture defines an architecture shared by product family members and provides components to be reused across the members. Both architecture and its components must be flexible, to facilitate accommodation of variants into a specific product. Software engineering techniques to handle variants in product families can be broadly classified into two categories, namely program construction time techniques (such as pre-processing, configuration management, parameterization, OO inheritance, templates, meta-programming, generation techniques and frame technology) and runtime techniques (such as dynamic binding, late binding and design patterns). The decision whether a given variant should be handled during program construction or during runtime is an important one as it affects product attributes such as usability, performance, complexity of code (therefore maintainability) and many other product attributes. We refer the reader to [6] for detailed discussion and comparative study of both categories of techniques for handling variants. In this paper, we are interested in handling variants during program construction time. Among construction-time techniques, frame technology [1] has particularly good record in industrial applications. A quantitative study has shown that frame technology can lead to reduction in time-to-market (70%) and project costs (84%). It can also dramatically improve the effectiveness of project teams. Percentage reuse can vary from 50% to about 95%. This data results from independent assessment by consulting firm QSM, based on project benchmark database including productivity data from thousands of software projects using a wide range of techniques [1]. These productivity gains are due to flexibility of frame-based architectures and their ability to evolve over years. Excellent record of frame technology in large scale industrial applications encouraged us to explore frame approach in our domain engineering projects. In early projects, we applied frames to component-based product families in facility reservation system domain [4], [10]. In the current project, we are developing methods to support a family of distributed Computer Aided Dispatch systems (CAD for short). CAD systems are used by police, fire & rescue, health and port. Basically, CAD systems support dispatch of units to incidents (e.g., a police unit to the place of car accident). However, the specific context of the operation (such as police or fire & rescue) results in many Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SSR’01, May 18-20, 2001, Toronto, Ontario, Canada. Copyright 2001 ACM 1-58113-358-8 /01/0005…$5.00. 164