[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2602458.2602476acmconferencesArticle/Chapter ViewAbstractPublication PagescbseConference Proceedingsconference-collections
research-article

A component-based meta-level architecture and prototypical implementation of a reflective component-based programming and modeling language

Published: 27 June 2014 Publication History

Abstract

Component-based Software Engineering studies the design, development and maintenance of software constructed upon sets of connected components. Using existing standard solutions, component-based models are frequently transformed into non-component-based programs, most of the time object-oriented, for run-time execution. As a consequence many component-level descriptions (part of code), e.g. explicit architectures or ports declarations, vanish at the implementation stage, making debugging, transformations or reverse-engineering difficult. It has been shown that component-based programming languages contribute to bridge this gap between design and implementation and to provide a conceptual and practical continuum to fully develop applications with components. In this paper we go one step further in this direction by making a component-oriented programming and modeling language truly reflective, thus making verification, evolution or transformation stages of software development part of this new continuum. The gained reflection capabilities indeed make it possible to perform architecture checking, code refactoring, model transformations or even to implement new languages constructs with and for components. The paper presents an original executable meta-level architecture achieving the vision that "everything is a component}' and an operational implementation demonstrating its feasibility and effectiveness. Our system revisits some standard solutions for reification in the component's context and also handles new cases, such as ports reification, to allow for runtime introspection and intercession on components and on their descriptors. We validate these ideas in the context of an executable prototypical and minimal component-based language, named Compo, whose first goal is to help imagining the future.

References

[1]
J. Aldrich, C. Chambers, and D. Notkin. Archjava: connecting software architecture to implementation. In Proceedings of the 24th International Conference on Software Engineering, ICSE '02, pages 187--197, New York, NY, USA, 2002. ACM.
[2]
J.-B. Arnaud, M. Denker, S. Ducasse, D. Pollet, A. Bergel, and M. Suen. Read-only execution for dynamic languages. In Proceedings of the 48th international conference on Objects, models, components, patterns, TOOLS'10, pages 117--136, Berlin, Heidelberg, 2010. Springer-Verlag.
[3]
G. Blair, N. Bencomo, and R. France. Models@ run.time. Computer, 42(10):22--27, 2009.
[4]
J.-P. Briot and P. Cointe. Programming with explicit metaclasses in smalltalk-80. SIGPLAN Not., 24(10):419--431, Sept. 1989.
[5]
E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J.-B. Stefani. The fractal component model and its support in java: Experiences with auto-adaptive and reconfigurable systems. Softw. Pract. Exper., 36(11--12):1257--1284, Sept. 2006.
[6]
S. Chiba. Implementation techniques for efficient reflective languages. Technical report, Departement of Information Science, The University of Tokyo, 1997.
[7]
M. Clarke, G. S. Blair, G. Coulson, and N. Parlavantzas. An efficient component model for the construction of adaptive middleware. In Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg, Middleware '01, pages 160--178, London, UK, UK, 2001. Springer-Verlag.
[8]
P. Cointe. Metaclasses are first class: The objvlisp model. SIGPLAN Not., 22(12):156--162, Dec. 1987.
[9]
F. M. Costa, L. L. Provensi, and F. F. Vaz. Using runtime models to unify and structure the handling of meta-information in reflective middleware. In Proceedings of the 2006 international conference on Models in software engineering, MoDELS'06, pages 232--241, Berlin, Heidelberg, 2006. Springer-Verlag.
[10]
I. Crnkovic, S. Sentilles, A. Vulgarakis, and M. Chaudron. A classification framework for software component models. Software Engineering, IEEE Transactions on, 37(5):593 --615, sept.-oct. 2011.
[11]
F.-N. Demers and J. Malenfant. Reflection in logic, functional and object-oriented programming: a short comparative study. In In IJCAI '95 Workshop on Reflection and Metalevel Architectures and their Applications in AI, pages 29--38, 1995.
[12]
S. Ducasse and T. Gírba. Using smalltalk as a reflective executable meta-language. In Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems, MoDELS'06, pages 604--618, Berlin, Heidelberg, 2006. Springer-Verlag.
[13]
L. Fabresse, N. Bouraqadi, C. Dony, and M. Huchard. A language to bridge the gap between component-based design and implementation. COMLAN : Journal on Computer Languages, Systems and Structures, 38(1):29--43, Apr. 2012.
[14]
A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1983.
[15]
F. Kon, M. Román, P. Liu, J. Mao, T. Yamane, C. Magalh\ a, and R. H. Campbell. Monitoring, security, and dynamic configuration with the dynamictao reflective orb. In IFIP/ACM International Conference on Distributed systems platforms, Middleware '00, pages 121--143, Secaucus, NJ, USA, 2000. Springer-Verlag New York, Inc.
[16]
T. Ledoux. Opencorba: A reflective open broker. In Proceedings of the Second International Conference on Meta-Level Architectures and Reflection, Reflection '99, pages 197--214, London, UK, UK, 1999. Springer-Verlag.
[17]
N. Medvidovic, P. Oreizy, J. E. Robbins, and R. N. Taylor. Using object-oriented typing to support architectural design in the c2 style. SIGSOFT Softw. Eng. Notes, 21(6):24--32, Oct. 1996.
[18]
N. Medvidovic and R. N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng., 26(1):70--93, Jan. 2000.
[19]
N. R. Mehta, N. Medvidovic, and S. Phadke. Towards a taxonomy of software connectors. In Proceedings of the 22nd international conference on Software engineering, ICSE '00, pages 178--187, New York, NY, USA, 2000. ACM.
[20]
Microsoft. COM: Component Object Model Technologies. Microsoft, 2012.
[21]
P.-A. Muller, F. Fleurey, and J.-M. Jezequel. Weaving executability into object-oriented meta-languages. In Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems, MoDELS'05, Berlin, Heidelberg, 2005. Springer-Verlag.
[22]
OMG. Meta Object Facility (MOF) Core Specification Version 2.4.1, 2011.
[23]
OMG. Unified Modeling Language (UML), V2.4.1. OMG, August 2011.
[24]
OMG. CORBA Component Model (CCM). OMG, 2012.
[25]
Oracle. Enterprise JavaBeans Specification Version 3. Oracle, 2012.
[26]
F. Plásil, D. Bálek, and R. Janecek. Sofa/dcup: Architecture for component trading and dynamic updating. In procs. of CDS, Washington, DC, USA, 1998. IEEE Computer Society.
[27]
J. C. Seco, R. Silva, and M. Piriquito. Componentj: A component-based programming language with dynamic reconfiguration. Computer Science and Information Systems, 05(02):65--86, 12 2008.
[28]
L. Seinturier, P. Merle, R. Rouvoy, D. Romero, V. Schiavoni, and J.-B. Stefani. A component-based middleware platform for reconfigurable service-oriented architectures. Softw. Pract. Exper., 42(5):559--583, May 2012.
[29]
P. Spacek. Design and Implementation of a Reflective Component-Oriented Programming and Modeling Language. PhD thesis, Montpellier II University, Montpellier, France, December 2013.
[30]
P. Spacek, C. Dony, C. Tibermacine, and L. Fabresse. An inheritance system for structural & behavioral reuse in component-based software programming. In Proceedings of the 11th GPCE, pages 60--69. ACM, 2012.
[31]
P. Spacek, C. Dony, C. Tibermacine, and L. Fabresse. Wringing out objects for programming and modeling component-based systems. In procs. of the 2nd Int. Workshop on Combined Object-Oriented Modeling and Programming Languages (COOMPL'13) - co-located with ECOOP. ACM Digital Library, July 2013.
[32]
C. Tibermacine, S. Sadou, C. Dony, and L. Fabresse. Component-based specification of software architecture constraints. In Proceedings of the 14th CBSE, pages 31--40, New York, NY, USA, 2011. ACM.

Cited By

View all
  • (2024)Live application programming in the defense industry with the Molecule component frameworkJournal of Computer Languages10.1016/j.cola.2024.10128680(101286)Online publication date: Aug-2024
  • (2016)Software architecture constraint reuse-by-compositionFuture Generation Computer Systems10.1016/j.future.2016.02.00661:C(37-53)Online publication date: 1-Aug-2016
  • (2016)Materializing Architecture Recovered from Object-Oriented Source Code in Component-Based LanguagesSoftware Architecture10.1007/978-3-319-48992-6_23(309-325)Online publication date: 3-Nov-2016

Index Terms

  1. A component-based meta-level architecture and prototypical implementation of a reflective component-based programming and modeling language

        Recommendations

        Comments

        Please enable JavaScript to view thecomments powered by Disqus.

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        CBSE '14: Proceedings of the 17th international ACM Sigsoft symposium on Component-based software engineering
        June 2014
        200 pages
        ISBN:9781450325776
        DOI:10.1145/2602458
        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]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 27 June 2014

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. architecture
        2. component
        3. constraints
        4. modeling
        5. programming
        6. reflection
        7. reflexive meta-model
        8. transformations

        Qualifiers

        • Research-article

        Conference

        CompArch'14
        Sponsor:

        Acceptance Rates

        CBSE '14 Paper Acceptance Rate 21 of 62 submissions, 34%;
        Overall Acceptance Rate 55 of 147 submissions, 37%

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)1
        • Downloads (Last 6 weeks)1
        Reflects downloads up to 09 Jan 2025

        Other Metrics

        Citations

        Cited By

        View all
        • (2024)Live application programming in the defense industry with the Molecule component frameworkJournal of Computer Languages10.1016/j.cola.2024.10128680(101286)Online publication date: Aug-2024
        • (2016)Software architecture constraint reuse-by-compositionFuture Generation Computer Systems10.1016/j.future.2016.02.00661:C(37-53)Online publication date: 1-Aug-2016
        • (2016)Materializing Architecture Recovered from Object-Oriented Source Code in Component-Based LanguagesSoftware Architecture10.1007/978-3-319-48992-6_23(309-325)Online publication date: 3-Nov-2016

        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