skip to main content
research-article

An inheritance system for structural & behavioral reuse in component-based software programming

Authors Info & Claims
Published:26 September 2012Publication History
Skip Abstract Section

Abstract

In the context of Component-based Programming, which addresses the implementation stage of a component-based software engineering development process, this paper describes a specification and an operational integration of an inheritance system into a self-contained new component-based programming language named Compo. Our proposal completes and extends related works by making it possible to apply inheritance to the full description of components, i.e. both to structural (description of provisions and requirements, of component architecture) and behavioral (full implementations of services) parts in component descriptions. Inheritance in Compo is designed to be used in conjunction with composition to maximize reuse capabilities and expressive power. Compo implementation proposes a clear operational solution for inheritance and for achieving and testing substitutions.

References

  1. J. Aldrich, C. Chambers, and D. Notkin. Archjava: connecting software architecture to implementation. In procs. of ICSE, New York, NY, USA, 2002. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Arnout. From patterns to components. ETH Zürich, 2004.Google ScholarGoogle Scholar
  3. D. Bardou and C. Dony. Split objects: a disciplined use of delegation within objects. In Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA '96, pages 122--137, New York, NY, USA, 1996. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Black, S. Ducasse, O. Nierstrasz, D. Pollet, D. Cassou, and M. Denker. Pharo by Example. Square Bracket Associates, 2009.Google ScholarGoogle Scholar
  5. N. Bouraqadi and L. Fabresse. Clic: a component model symbiotic with smalltalk. In procs. of IWST, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. G. Bracha and W. Cook. Mixin-based inheritance. In Proceedings of OOPSLA and ECOOP. ACM Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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., September 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. Ducournau. "real world" as an argument for covariant specialization in programming and modeling. In Advances in Object-Oriented Information Systems, Lecture Notes in Computer Science. Springer Berlin / Heidelberg, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Fabresse, N. Bouraqadi, C. Dony, and M. Huchard. Filling the Gap between Design and Implementation with Components. International Journal of Computer Languages, Systems and Structures, Jan. 2012.Google ScholarGoogle Scholar
  10. L. Fabresse, C. Dony, and M. Huchard. Foundations of a simple and unified component-oriented language. Comput. Lang. Syst. Struct., July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. H. Lieberman. Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems. In procs. of OOPSLA, Portland, Oregon, USA, Nov. 1986. Published as ACM SIGPLAN Notices 21(11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. B. Liskov and S. Zilles. Programming with abstract data types. In Proceedings of the ACM SIGPLAN symposium on Very high level languages, New York, NY, USA, 1974. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. C. Martin. Agile Software Development, Principles, Patterns, and Practices. Prentice-Hall, Inc., 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. McVeigh, J. Kramer, and J. Magee. Using resemblance to support component reuse and evolution. In Procs. of SAVCBS, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. OMG. UML 2.4.1 superstructure specification; document formal/2011-08-06. Technical report, OMG, August 2011.Google ScholarGoogle Scholar
  17. T. Oplustil. Inheritance in architecture description language. In procs. of WDS, Prague, Czech Republic, June 2003. Matfyzpress.Google ScholarGoogle Scholar
  18. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. H. A. Schmid and M. Pfeifer. Engineering a component language: Compjava. In Software and Data Technologies, Communications in Computer and Information Science. Springer Berlin Heidelberg, 2008.Google ScholarGoogle Scholar
  20. J. a. C. Seco and L. Caires. A basic model of typed components. In procs. of ECOOP, London, UK, 2000. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. C. Seco, R. Silva, and M. Piriquito. Componentj: A component-based programming language with dynamic reconfiguration. Computer Science and Information Systems, Dec. 2008.Google ScholarGoogle Scholar
  22. V. C. Sreedhar. Mixin'up components. In procs. of ICSE, New York, NY, USA, 2002. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Taivalsaari. On the notion of inheritance. ACM Comput. Surv., Sept. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Tibermacine, R. Fleurquin, and S. Sadou. A family of languages for architecture constraint specification. In the Journal of Systems and Software (JSS), Elsevier, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Tibermacine, S. Sadou, C. Dony, and L. Fabresse. Component-based specification of software architecture constraints. In procs. of CBSE, Boulder, Colorado, USA, June 2011. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. W. Weck and C. Szyperski. Do we need inheritance? In procs. of ECOOP, 1996.Google ScholarGoogle Scholar
  27. L. Xu and Y. Ren. Bichon: A new component-oriented programming language. Software Engineering, World Congress on, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An inheritance system for structural & behavioral reuse in component-based software programming

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 48, Issue 3
            GPCE '12
            March 2013
            140 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/2480361
            Issue’s Table of Contents
            • cover image ACM Conferences
              GPCE '12: Proceedings of the 11th International Conference on Generative Programming and Component Engineering
              September 2012
              148 pages
              ISBN:9781450311298
              DOI:10.1145/2371401

            Copyright © 2012 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 26 September 2012

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!