Software reuse and evolutionWe believe the design of adaptable, high-variability software, and the problem of software change in general, is inherently difficult to tackle in the world of conventional OO and component technologies. We work towards flexible forms of Model-Driven Development and software generators that can play a bigger and central role as productivity solutions in software reuse and evolution. We developed XVCL (XML-based Variant Configuration Language), a variability management technique xvcl.comp.nus.edu.sg. With XVCL, we organize conventional programs into highly generic, adaptable, reusable and easy to change meta-level program representation. We apply XVCL to manage software variability and change, on top of conventional OO, component-based and architecture-centric development. In context of Software Product Line (SPL) approach to reuse, XVCL plays a role of variation mechanism and a generator that builds a custom product from specifications of features of that product. XVCL is based on frame concepts developed in industrial practice. Our work on XVCL concentrates on supporting SPL reuse in various application domains (Web portals, command & control systems, business applications, mobile phone games), using variety of programming languages and component platforms (JEE, .NET). We apply XVCL to manage variability in documentation (written in WORD) and in software models. We build XVCL Workbench to help developers build reusable and maintainable program representations. We have a long-term and fruitful research partnership with ST Electronics (Info-Software Systems) Pte Ltd. XVCL is described in: Jarzabek, S. Effective Software Maintenance and Evolution: Reused-based Approach, Auerbach, CRC Press Taylor and Francis, May 2007 (Order Here) Links: |