Software Product Line Reengineering: A Case Study on the Geographic Domain
Keywords:open source development, component-based software development, GIS Standards, Reengineering, Software Product Lines
The growing adoption of software product lines (SPL) represents perhaps a paradigm shift in software development aiming at improving cost, quality, time to market, and developer productivity. While the underlying concepts are straightforward enough building a family of related products or systems by planned and careful reuse of a base of generalized software development assets the problems can be in the details, as successful product line practice involves domain understanding, technology selection, and so forth. Today, there is an important increment on reporting experiences and lessons about SPL development by capturing aspects that have been gathered during daily practice. Following this line, in this paper we start from our experiences of developing a software product line on the Marine Ecology domain highlighting our reasons for reengineering a previous SPL. Then, we explain step-bystep reengineering activities in terms of motivation, solutions, and lessons learned, which summarize strengths and limitations of the applied practices. Differently from other cases, here we take advantage of using domain standards as well as open source implementations within the geographic domain.
 J. Bosch, Design and use of software architectures: adopting and evolving a product-line approach. New York, NY, USA: ACM Press/Addison-Wesley Publishing Co., 2000.
 P. C. Clements and L. Northrop, Software Product Lines: Practices and Patterns. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2001.
 M. Matinlassi, “Comparison of software product line architecture design methods: Copa, fast, form, kobra and qada,” in Proceedings of the ICSE ’04: 26th International Conference on Software Engineering, (Washington, DC, USA), pp. 127–136, IEEE Computer Society, 2004.
 K. Pohl, G. B ̈ockle, and F. J. v. d. Linden, Software Product Line Engineering: Foundations, Principles and Techniques. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2005.
 M. Fajar, K. Hisazumi, T. Nakanishi, and A. Fukuda, “Introducing software product line development for wireless sensor/actuator network based agriculture systems,” in AFITA 2010 International Conference on Quality Information for Competitive Agricultural Based Production System and Commerce, (Bogor, Indonesia), pp. 83–88, IPB (Bogor Agricultural University), 2010.
 F. van der Linden, K. Schmid, and E. Rommes, Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2007.
 J. Bosch and P. M.. Bosch-Sijtsema, “Introducing agile customer-centered development in a legacy software product line,” Software Practice & Experience, vol. 41, pp. 871–882, July 2011.
 W. Jirapanthong, “Experience on reengineering applying with software product line,” CoRR, vol. abs/1206.4120, 2012.
 D. B.. Smith, L. O’Brien, and J. Bergey, “Using the options analysis for reengineering (oar) method for mining components for a product line,” in Second International Conference of Software Product Lines, pp. 316–327, 2002.
 Y. Wu, X. Peng, and W. Zhao, “Architecture evolution in software product line: An industrial case study,” in Proceedings of the 12th International Conference on Top Productivity Through Software Reuse, ICSR’11, (Berlin, Heidelberg), pp. 135–150, Springer-Verlag, 2011.
 G. Zhang, L. Shen, X. Peng, Z. Xing, and W. Zhao, “Incremental and iterative reengineering towards software product line: An industrial case study,” in Proceedings of the 2011 27th IEEE International Conference on Software Maintenance, ICSM ’11, (Washington, DC, USA), pp. 418–427, IEEE Computer Society, 2011.
 P. Pernich, A. Buccella, A. Cechich, S. Doldan, and E. Morsan, “Reusing geographic e-services: A case study in the marine ecological domain,” in Software Services for e-World (W. Cellary and E. Estevez, eds.), vol. 341 of IFIP Advances in Information and Communication Technology, pp. 193–204, Springer Boston, 2010.
 P. Pernich, A. Buccella, A. Cechich, S. Doldan, E. Morsan, M. Arias, and M. Pol’la, “Product-line instantiation guided by subdomain characterization: A case study,” Journal of Computer Science and Technology, Special Issue 12(3), vol. 12, no. 3, pp. 116–122, 2012.
 A. Buccella, A. Cechich, M. Pol’la, M. Arias, S. Doldan, and E. Morsan, “Marine ecology service reuse through taxonomy-oriented SPL development,” Computers & Geo-sciences, vol. 73, no. 0, pp. 108 – 121, 2014.
 I. Haddad and B. Warner, “Understanding the open source development model,” Linux Journal, 2011. JCS&T Vol. 16 No. 1, April 2016 26
 M. Sojer and J. Henkel, “Code reuse in open source software development: Quantitative evidence, drivers, and impediments,” Journal of the Association for Information Systems, vol. 11, no. 12, 2010.
 L. Chen and M. A.. Babar, “A systematic review of evaluation of variability management approaches in software product lines,” Information and Software Technology, vol. 53, pp. 344–362, Apr. 2011.
 S. Mahdavi-Hezavehi, M. Galster, and P. Avgeriou, “Variability in quality attributes of service-based software systems: A systematic literature review,” Information and Software Technology, vol. 55, no. 2, pp. 320 – 343, 2013. Special Section: Component-Based Software Engineering (CBSE), 2011.
 K. Czarnecki, Domain Engineering, ch. 3. John Wiley & Sons, Inc., 2002.
 M. Harsu, “A survey on domain engineering,” Report 31, Tampere University of Technology, 2002.
 L. B. Lisboa, V. C. Garcia, D. Lucrédio, E. S. de Almeida, S. R. de Lemos Meira, and R. P. de Mattos Fortes, “A systematic review of domain analysis tools,” Information and Software Technology, vol. 52, no. 1, pp. 1–13, 2010.
 J. Bayer, , J. Girard, M. W ̈urthner, J. De-Baud, and M. Apel, “Transitioning legacy assets to a product line architecture,” SIG-SOFT Softw. Eng. Notes, vol. 24, no. 6, pp. 446–463, 1999.
 C. Stoermer and L. O’Brien, “Map - mining architectures for product line evaluations,” in Proceedings of the Working IEEE/IFIP Conference on Software Architecture, WICSA ’01, (Washington, DC, USA), pp. 35–, IEEE Computer Society, 2001.
 M. A.. Laguna and Y. Crespo, “A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring,” Science of Computer Programming, vol. 78, no. 8, pp. 1010–1034, 2013.
 W. Fenske, T. Th ̈um, and G. Saake, “A taxonomy of software product line reengineering,” in Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS ’14, (New York, NY, USA), pp. 4:1–4:8, ACM, 2013.
 M. A.. Noor, R. Rabiser, and P. Gr ̈unbacher, “Agile product line planning: A collaborative approach and a case study,” Journal of Systems and Software, vol. 81, no. 6, pp. 868 –882, 2008. Agile Product Line Engineering.
 H. P. Breivold, S. Larsson, and R. Land, “Migrating industrial systems towards software product lines: Experiences and observations through case studies,” in Proceedings of the 2008 34th Euromicro Conference Software Engineering and Advanced Applications, SEAA’08, (Washington, DC, USA), pp. 232–239, IEEE Computer Society, 2008.
 D. Faust and C. Verhoef, “Software product line migration and deployment,” Software Practice & Experiences, vol. 33, no. 10, pp. 933–955, 2003.
 K. Kang, M. Kim, J. Lee, and B. Kim, “Feature-oriented re-engineering of legacy systems into product line assets: A case study,” in Proceedings of the 9th International Conference on Software Product Lines, SPLC’05, (Berlin, Heidelberg), pp. 45–56, Springer-Verlag, 2005.
 M. Fowler, Refactoring: Improving the Design of Existing Code. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1999.
 S. Apel and C. K ̈astner, “An overview of feature-oriented software development,” Journal of Object Technology, vol. 8, no. 5, pp. 49–84, 2009.
 S. Schulze, T. Th ̈um, M. Kuhlemann, and G. Saake, “Variant-preserving refactoring in feature-oriented software product lines,” in Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems, VaMoS ’12, (New York, NY, USA), pp. 73–81, 2012.
 K. Czarnecki, S. Helsen, and U. W. Eisenecker, “Formalizing cardinality-based feature models and their specialization,” Software Process: Improvement and Practice, vol. 10, no. 1, pp. 7–29, 2005.
 K. Kang, S. Cohen, J. Hess, W. Nowak, and S. Peterson, “Feature-Oriented Domain Analysis (FODA) Feasibility Study,” Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University Pittsburgh, PA., 1990.
 D. Bruno and H. Richmond, “The truth about taxonomies,” Information Management Journal, vol. 37, no. 2, 2003.
 C. E. B. Choksy, “8 steps to develop a taxonomy,” Information Management Journal, vol. 40, no. 6, pp. 30–41, 2006.
 I. Hunink, E. Rene, S. Jansen, and S. Brinkkemper, “Industry taxonomy engineering: the case of the european software ecosystem,” in Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, ECSA ’10, (New York, NY, USA), pp. 111–118, ACM, 2010.
 R. C. Nickerson, U. Varshney, J. Muntermann, and H. Isaac, “Taxonomy development in information systems: Developing a taxonomy of mobile applications,” in 17th European Conference on Information Systems, ECIS 2009, (Italy), pp. 1138–1149, 2009.
 D. A.. Garbin and J. L.. Fisher, “Open source for enterprise geographic information systems,” IT Professional, vol. 12, no. 6, pp. 38–45, 2010.
 B. Burke and R. Monson-Haefel, Enterprise JavaBeans 3.0 (5th Edition) . O’Reilly Media, Inc., 2006.
 A. Buccella, A. Cechich, M. Arias, M. Pol’la, S. Doldan, and E. Morsan, “Towards systematic software reuse of GIS: Insights from a case study,” Computers & Geosciences, vol. 54, no. 0, pp. 9 – 20, 2013.