Abstract
Large object-oriented applications have complex and numerous dependencies, and usually do not have explicit software architectures. Therefore they are hard to maintain, and parts of them are difficult to reuse. Component-based development paradigm emerged for improving these aspects and for supporting effective maintainability and reuse. It provides better understandability through a high-level architecture view of the application. Thereby migrating object-oriented applications to component-based ones will contribute to improve these characteristics (maintainability and reuse). In this paper, we propose an approach to automatically transform object-oriented applications to component-based ones. More particularly, the input of the approach is the result provided by software architecture recovery: a component-based architecture description. Then, our approach transforms the object-oriented source code in order to produce deployable components. We focus in this paper on the transformation of source code related to instantiation and inheritance dependencies between classes that are in different components. We experimented the proposed solution in the transformation of a collection of Java applications into the OSGi framework. The experimental results are discussed in this paper.
- S. Allier, S. Sadou, H. Sahraoui, and R. Fleurquin. From object-oriented applications to component-oriented applications via component-oriented architecture. In Software Architecture (WICSA), 2011 9th Working IEEE/IFIP Conference on, pages 214– 223, June 2011. Google Scholar
Digital Library
- Simon Allier, HouariA. Sahraoui, Salah Sadou, and Stphane Vaucher. Restructuring object-oriented applications into component-oriented applications by using consistency with execution traces. In Lars Grunske, Ralf Reussner, and Frantisek Plasil, editors, Component-Based Software Engineering, volume 6092 of Lecture Notes in Computer Science, pages 216–231. Springer Berlin Heidelberg, 2010. Google Scholar
Digital Library
- Dominik Birkmeier and Sven Overhage. On component identification approaches classification, state of the art, and comparison. In GraceA. Lewis, Iman Poernomo, and Christine Hofmeister, editors, Component-Based Software Engineering, volume 5582 of Lecture Notes in Computer Science, pages 1–18. Springer Berlin Heidelberg, 2009. Google Scholar
Digital Library
- S. Chardigny, A. Seriai, M. Oussalah, and D. Tamzalit. Extraction of component-based architecture from object-oriented systems. In Software Architecture, 2008. WICSA 2008. Seventh Working IEEE/IFIP Conference on, pages 285–288, Feb 2008. Google Scholar
Digital Library
- Eleni Constantinou, Athanasios Naskos, George Kakarontzas, and Ioannis Stamelos. Extracting reusable components: A semi-automated approach for complex structures. Information Processing Letters, 115(3):414 – 417, 2015.Google Scholar
Cross Ref
- I. Crnkovic, S. Sentilles, A. Vulgarakis, and M.R.V. Chaudron. A classification framework for software component models. Software Engineering, IEEE Transactions on, 37(5):593–615, Sept 2011. Google Scholar
Digital Library
- S. Ducasse and D. Pollet. Software architecture reconstruction: A process-oriented taxonomy. Software Engineering, IEEE Transactions on, 35(4):573–591, July 2009. Google Scholar
Digital Library
- W. Weck et al. Do we need inheritance?, 1996.Google Scholar
- S. Kebir, A.-D. Seriai, S. Chardigny, and A. Chaoui. Qualitycentric approach for software component identification from objectoriented code. In Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), 2012 Joint Working IEEE/IFIP Conference on, pages 181–190, Aug 2012. Google Scholar
Digital Library
- Hannes Kegel and Friedrich Steimann. Systematically refactoring inheritance to delegation in java. In Proceedings of the 30th International Conference on Software Engineering, ICSE ’08, pages 431–440, New York, NY, USA, 2008. ACM. Google Scholar
Digital Library
- Kung-Kiu Lau and Zheng Wang. A taxonomy of software component models. In Software Engineering and Advanced Applications, 2005. 31st EUROMICRO Conference on, pages 88– 95, Aug 2005. Google Scholar
Digital Library
- Kung-Kiu Lau and Zheng Wang. Software component models. Software Engineering, IEEE Transactions on, 33(10):709–724, Oct 2007.Google Scholar
Digital Library
- Osgi Service Platform. The osgi alliance, release 6, 2015.Google Scholar
- A.-D. Seriai and S. Chardigny. A genetic approach for software architecture recovery from object-oriented code. In proc. of SEKE, 2011.Google Scholar
- Petr Spacek, Christophe Dony, Chouki Tibermacine, and Luc Fabresse. An inheritance system for structural & behavioral reuse in component-based software programming. In Proceedings of the 11th International Conference on Generative Programming and Component Engineering, GPCE ’12, pages 60–69, New York, NY, USA, 2012. ACM. Google Scholar
Digital Library
- Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd edition, 2002. Google Scholar
Digital Library
- Martin, Robert Cecil. Agile software development: principles, patterns, and practices. Upper Saddle River, NJ: Pearson Education. ISBN 9780135974445. 1st edition, 2002. Google Scholar
Digital Library
- John Vlissides, Richard Helm, Ralph Johnson, and Erich Gamma. Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley, 49(120):11, 1995.Google Scholar
- Hironori Washizaki and Yoshiaki Fukazawa. A technique for automatic component extraction from object-oriented programs by refactoring. Science of Computer Programming, 56(12):99 – 116, 2005. New Software Composition Concepts. Google Scholar
Digital Library
- Steimann, Friedrich and Mayer, Philip and Meisner, Andreas. Decoupling Classes with Inferred Interfaces. In Proceedings of the 2006 ACM Symposium on Applied Computing, SAC ’06, pages 1404–1408, New York, NY, USA, 2006. ACM. Google Scholar
Digital Library
- Tip, Frank and Kiezun, Adam and Bäumer, Dirk. Refactoring for Generalization Using Type Constraints. In Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programing, Systems, Languages, and Applications, OOPSLA ’03, pages 13–26, New York, NY, USA, 2003. ACM. Google Scholar
Digital Library
- Hauck, Franz J. Inheritance Modeled with Explicit Bindings: An Approach to Typed Inheritance. Inheritance Modeled with Explicit Bindings: An Approach to Typed Inheritance, SIGPLAN Not., pages 231–239, New York, NY, USA, 1993. ACM. Google Scholar
Digital Library
- T Genssler, B Schulz. Inheritance Modeled with Explicit Bindings: An Approach to Typed Inheritance. Transforming inheritance into composition A reengineering pattern, proc. of 4th EuroPLoP, 1999.Google Scholar
- IntelliJ IDE. http://www.jetbrains.com.Google Scholar
- Hamza, S. and Sadou, S. and Fleurquin, R. Measuring Qualities for OSGi Component-Based Applications. Quality Software (QSIC), 2013 13th International Conference on, pages 25-34, 2013. Google Scholar
Digital Library
- Tempero, E. and Anslow, C. and Dietrich, J. and Han, T. and Jing Li and Lumpe, M. and Melton, H. and Noble, J. The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies. Software Engineering Conference (APSEC), 2010 17th Asia Pacifice, pages 336-345 2010. Google Scholar
Digital Library
Index Terms
Migrating large object-oriented Applications into component-based ones: instantiation and inheritance transformation
Recommendations
Migrating large object-oriented Applications into component-based ones: instantiation and inheritance transformation
GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesLarge object-oriented applications have complex and numerous dependencies, and usually do not have explicit software architectures. Therefore they are hard to maintain, and parts of them are difficult to reuse. Component-based development paradigm ...
A Modified Inheritance Mechanism Enhancing Reusability and Maintainability in Object-Oriented Languages
APSEC '96: Proceedings of the Third Asia-Pacific Software Engineering ConferenceIn object-oriented languages, encapsulation and inheritance play an important part for software reusability and maintainability. The separation of subtyping and inheritance makes inheritance a more flexible mechanism reusing code. The main enhanced ...
Applying Object-Oriented Method to CSIE System
TOOLS '99: Proceedings of the 31st International Conference on Technology of Object-Oriented Language and SystemsCSIE (Distributed Control System Configuration Software Integrated Environment) system is a platform for developing control schemes in distributed control system (DCS). With CSIE system, Engineers of DCS can configure the control schemes in kinds of ...






Comments