Research journey towards industrial application of reuse technique

Component-based reuse in mission critical Command and Control system domain was a starting point for a long lasting research collaboration between National University of Singapore (NUS) and ST Electronics Pte. Ltd. (STEE). STEE industrial projects as well as NUS lab studies revealed limitations of conventional architecture-centric, component-based reuse in the area of generic design to unify similarity patterns (e.g., similar classes, components or architectural patterns) commonly found in software. Further research showed that meta-level extensions to conventional techniques could strengthen their generic design capabilities, considerably improving effectiveness of reuse solutions, and increasing productivity gains due to reuse. These experiences led to development of "mixed strategy" approach based on synergistic application of meta-level generative programming technique of XVCL, together with conventional programming techniques. In the paper, we describe university-industry collaboration that proved beneficial for both parties: STEE advanced reuse practice via application of XVCL in several software product line projects. Early inputs from STEE helped NUS team validate and refine XVCL reuse methods, and expand into new research directions. We describe a sequence of projects that led to successful application of XVCL in industrial projects. We describe experiences from those projects and their significance for both industrial practice and understanding principles of flexible software, i.e., software that can be easily changed and adapted to various reuse contexts.

[1]  Stan Jarzabek,et al.  Industrial experience with building a web portal product line using a lightweight, reactive approach , 2005, ESEC/FSE-13.

[2]  Weishan Zhang,et al.  Reuse without Compromising Performance: Industrial Experience from RPG Software Product Line for Mobile Devices , 2005, SPLC.

[3]  Stan Jarzabek,et al.  XML-based method and tool for handling variant requirements in domain models , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[6]  Stan Jarzabek,et al.  Eliminating redundancies with a "composition with adaptation" meta-programming technique , 2003, ESEC/FSE-11.

[7]  Marco Sinnema,et al.  Experiences in Software Product Families: Problems and Issues During Product Derivation , 2004, SPLC.

[8]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[9]  Stan Jarzabek,et al.  An investigation of cloning in web applications , 2005, WWW '05.

[10]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[11]  Stan Jarzabek,et al.  XVCL: a mechanism for handling variants in software product lines , 2004, Sci. Comput. Program..

[12]  Yang Jun,et al.  Applying a generative technique for enhanced genericity and maintainability on the J2EE platform , 2005, GPCE'05.

[13]  Don S. Batory,et al.  Scalable software libraries , 1993, SIGSOFT '93.

[14]  Weishan Zhang,et al.  XVCL: XML-based variant configuration language , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Damith C. Rajapakse,et al.  Beyond templates: a study of clones in the STL and some general implications , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[16]  Stan Jarzabek,et al.  An Investigation of Cloning in Web Applications , 2005, ICWE.

[17]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[18]  Stan Jarzabek,et al.  Detecting higher-level similarity patterns in programs , 2005, ESEC/FSE-13.

[19]  P. Bassctt Framing software reuse - lessons from real world , 1997 .

[20]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.