Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Migrating large object-oriented Applications into component-based ones: instantiation and inheritance transformation

Published: 26 October 2015 Publication History

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.

References

[1]
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.
[2]
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.
[3]
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.
[4]
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.
[5]
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.
[6]
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.
[7]
S. Ducasse and D. Pollet. Software architecture reconstruction: A process-oriented taxonomy. Software Engineering, IEEE Transactions on, 35(4):573–591, July 2009.
[8]
W. Weck et al. Do we need inheritance?, 1996.
[9]
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.
[10]
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.
[11]
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.
[12]
Kung-Kiu Lau and Zheng Wang. Software component models. Software Engineering, IEEE Transactions on, 33(10):709–724, Oct 2007.
[13]
Osgi Service Platform. The osgi alliance, release 6, 2015.
[14]
A.-D. Seriai and S. Chardigny. A genetic approach for software architecture recovery from object-oriented code. In proc. of SEKE, 2011.
[15]
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.
[16]
Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd edition, 2002.
[17]
Martin, Robert Cecil. Agile software development: principles, patterns, and practices. Upper Saddle River, NJ: Pearson Education. ISBN 9780135974445. 1st edition, 2002.
[18]
John Vlissides, Richard Helm, Ralph Johnson, and Erich Gamma. Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley, 49(120):11, 1995.
[19]
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.
[20]
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.
[21]
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.
[22]
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.
[23]
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.
[24]
IntelliJ IDE. http://www.jetbrains.com.
[25]
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.
[26]
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.

Cited By

View all
  • (2019)A multi-objective search based approach to identify reusable software componentsJournal of Computer Languages10.1016/j.cola.2019.01.00652(26-43)Online publication date: Jun-2019
  • (2019)Reusability in multimedia softwares using structural and lexical dependenciesMultimedia Tools and Applications10.1007/s11042-019-7382-178:14(20065-20086)Online publication date: 1-Jul-2019
  • (2019)Mining Reusable Software Components from Object-Oriented Source Code using Discrete PSO and Modeling Them as Java BeansInformation Systems Frontiers10.1007/s10796-019-09948-4Online publication date: 29-Aug-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 51, Issue 3
GPCE '15
March 2016
184 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2936314
  • Editor:
  • Andy Gill
Issue’s Table of Contents
  • cover image ACM Conferences
    GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences
    October 2015
    184 pages
    ISBN:9781450336871
    DOI:10.1145/2814204
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. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 October 2015
Published in SIGPLAN Volume 51, Issue 3

Check for updates

Author Tags

  1. Class Instantiation
  2. Code Transformation
  3. Component
  4. Encapsulation
  5. Inheritance
  6. Java
  7. OSGi
  8. Object
  9. Refactoring

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2019)A multi-objective search based approach to identify reusable software componentsJournal of Computer Languages10.1016/j.cola.2019.01.00652(26-43)Online publication date: Jun-2019
  • (2019)Reusability in multimedia softwares using structural and lexical dependenciesMultimedia Tools and Applications10.1007/s11042-019-7382-178:14(20065-20086)Online publication date: 1-Jul-2019
  • (2019)Mining Reusable Software Components from Object-Oriented Source Code using Discrete PSO and Modeling Them as Java BeansInformation Systems Frontiers10.1007/s10796-019-09948-4Online publication date: 29-Aug-2019
  • (2019)From Object-Oriented to Workflow: Refactoring of OO Applications into Workflows for an Efficient Resources Management in the CloudEvaluation of Novel Approaches to Software Engineering10.1007/978-3-030-22559-9_9(186-214)Online publication date: 29-Jun-2019
  • (2018)Re-architecting OO Software into MicroservicesService-Oriented and Cloud Computing10.1007/978-3-319-99819-0_5(65-73)Online publication date: 12-Sep-2018
  • (2017)Multi-paradigm Architecture Constraint Specification and Configuration Based on Graphs and Feature ModelsSOFSEM 2018: Theory and Practice of Computer Science10.1007/978-3-319-73117-9_13(180-193)Online publication date: 22-Dec-2017
  • (2016)Towards Vendor-Agnostic IT-System of IT-Systems with the CEDE PlatformCollaboration in a Hyperconnected World10.1007/978-3-319-45390-3_42(494-505)Online publication date: 20-Sep-2016
  • (2022)Materializing Microservice-oriented Architecture from Monolithic Object-oriented Source CodeSoftware Technologies10.1007/978-3-031-11513-4_7(143-168)Online publication date: 18-Jul-2022
  • (2020)From Monolithic Architecture Style to Microservice one Based on a Semi-Automatic Approach2020 IEEE International Conference on Software Architecture (ICSA)10.1109/ICSA47634.2020.00023(157-168)Online publication date: Mar-2020
  • (2019)Reusability in multimedia softwares using structural and lexical dependenciesMultimedia Tools and Applications10.1007/s11042-019-7382-178:14(20065-20086)Online publication date: 1-Jul-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media