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

skip to main content
10.1145/1014007.1014012acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
Article

Component specialization

Published: 24 August 2004 Publication History

Abstract

Component-Based Software Development (CBSD)is an attractive way to deliver generic executable pieces of program, ready to be reused in many different contexts. Component reuse is based on a black-box model that frees component consumers from diving into implementation details. Adapting a generic component to a particular context of use is then based on a parameterized interface that becomes a specific component wrapper at runtime. This shallow adaptation, which keeps the component implementation unchanged, is a major source of inefficiency. By building on top of well-known specialization techniques, it is possible to take advantage of the genericity of components and adapt their implementation to their usage context without breaking the black-box model. We illustrate these ideas on a simple component model, considering dual specialization techniques, partial evaluation and slicing. A key to not breaking encapsulation is to use specialization scenarios extended with assumptions on the required services and to package components as component generators.

References

[1]
http://www.eclipse.org.
[2]
http://www.irisa.fr/lande/reqs.
[3]
J. Aldrich, C. Chambers, and D. Notkin. Architectural reasoning in ArchJava. In B. Magnusson, editor, Proceedings ECOOP'02 volume 2374 of LNCS pages 334--367, Malaga, Spain, June 2002. Springer-Verlag.
[4]
L. Birkedal and M. Welinder. Hand-writing program generator generators. In M. V. Hermenegildo and J. Penjam, editors, PLILP volume 844 of LNCS pages 198--214. Springer, 1994.
[5]
C. Consel and O. Danvy. From interpreting to compiling binding times. In N. Jones, editor, ESOP'90 - Third European Symposium on Programming volume 432 of LNCS Copenhagen, Denmark, May 1990. Springer-Verlag.
[6]
B. Councill and G. Heineman. Definition of a software component and its elements. In Heineman and Councill {10}, pages 5--19.
[7]
L. DeMichiel, L. Yalçinalp, and S. Krishnan. Enterprise JavaBeans™ Specification SUN Microsystems, Aug. 2001. Version 2.0, Final Release.
[8]
J. Hatcli ., W. Deng, M. Dwyer,G. Jung, and V. Prasad. Cadena: An integrated development, analysis, and verification environment for component-based systems. In Proceedings of the 25th International Conference on Software Engineering pages 160--173, Portland, Oregon, May 2003. IEEE Computer Society Press.
[9]
J. Hatcliff, W. Deng, M. Dwyer, G. Jung, V. Prasad, and R. Robby. Slicing and partial evaluation of CORBA component model designs for avionics systems. ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '03), June 2003. Invited Talk.
[10]
G. Heineman and W. Councill, editors. Component-Based Software Engineering -- Putting the Pieces Together Addison-Wesley, 2001.
[11]
L. Hornof, J. Noyé, and C. Consel. Effective specialization of realistic programs via use sensitivity. In P. Van Hentenryck, editor, Proceedings of the Fourth International Symposium on Static Analysis, SAS'97 volume 1302 of LNCS pages 293--314, Paris, France, Sept.1997. Springer-Verlag.
[12]
A. Igarashi, B. Pierce, and P. Wadler. Featherweight Java: A minimal core calculus for Java and GJ. ACM Transactions on Programming Languages and Systems 23(3):396--450, May 2001.
[13]
N. Jones. An introduction to partial evaluation. ACM Computing Surveys 28(3):480--503, Sept. 1996.
[14]
N. Jones, C. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation International Series in Computer Science. Prentice Hall, 1993.
[15]
A. Le Meur, C. Consel, and B. Escrig. An environment for building customizable software components. In IFIP/ACM Working Conference - Component Deployment pages 1--14, Berlin, Germany, June 2002. Springer-Verlag.
[16]
A. Le Meur, J. Lawall, and C. Consel. Specialization scenarios: A pragmatic approach to declaring program specialization. Higher-Order and Symbolic Computation 17:49--92, 2004.
[17]
T. Reps and T. Turnidge. Program specialization via program slicing. In O. Danvy, R. Glück, and P. Thiemann, editors, Partial Evaluation, International Seminar, Dagstuhl Castle volume 1110 of LNCS pages 409--429. Springer-Verlag, Feb. 1996.
[18]
R. H. Reussner. Automatic component protocol adaptation with the coconut tool suite. Future Generation Computer Systems 19(5):627--639, 2003.
[19]
U. Schultz. Black-box program specialization. In J. Bosch, C. Szyperski, and W. Weck, editors, Fourth International Workshop on Component-Oriented Programming Lisbon, Portugal, June 1999. In conjunction with ECOOP 1999.
[20]
R. Sessions. COM+ and the battle for the Middle Tier Wiley, 2000.
[21]
C. Szyperski. Component Software Addison-Wesley, 2002. 2nd edition.
[22]
F.Tip. A survey of program slicing techniques. Journal of Programming Languages 3(3):121--189, Sept. 1995.
[23]
R. van Ommering. Building product populations with software components. In Proceedings of the 24th International Conference on Software Engineering pages 255--265, Orlando, FL, USA, May 2002. ACM Press.
[24]
E.-N. Volanschi, C. Consel, G. Muller, and C. Cowan. Declarative specialization of object-oriented programs. In Proceedings of the 1997 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'97) ACM Press, Oct. 1997. ACM SIGPLAN Notices, 32(10).

Cited By

View all
  • (2018)Reversibility in Component-based Programming Language2018 IEEE 12th International Conference on Application of Information and Communication Technologies (AICT)10.1109/ICAICT.2018.8746914(1-5)Online publication date: Oct-2018
  • (2008)Specialization for applications using shared librariesProceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation10.1145/1328408.1328432(159-168)Online publication date: 7-Jan-2008
  • (2007)Towards constructing reusable specialization componentsProceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation10.1145/1244381.1244406(154-163)Online publication date: 15-Jan-2007
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PEPM '04: Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
August 2004
212 pages
ISBN:1581138350
DOI:10.1145/1014007
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: 24 August 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. component generator
  2. component-based software development
  3. partial evaluation
  4. program slicing

Qualifiers

  • Article

Conference

PEPM04
Sponsor:

Acceptance Rates

Overall Acceptance Rate 66 of 120 submissions, 55%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2018)Reversibility in Component-based Programming Language2018 IEEE 12th International Conference on Application of Information and Communication Technologies (AICT)10.1109/ICAICT.2018.8746914(1-5)Online publication date: Oct-2018
  • (2008)Specialization for applications using shared librariesProceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation10.1145/1328408.1328432(159-168)Online publication date: 7-Jan-2008
  • (2007)Towards constructing reusable specialization componentsProceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation10.1145/1244381.1244406(154-163)Online publication date: 15-Jan-2007
  • (2007)Slicing of Component Behavior Specification with Respect to Their CompositionComponent-Based Software Engineering10.1007/978-3-540-73551-9_13(189-202)Online publication date: 2007
  • (2004)Protocol SpecializationProgramming Languages and Systems10.1007/978-3-540-30477-7_17(246-261)Online publication date: 2004

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