Abstract
A component model enabling to construct new software components from existing ones dynamically, at runtime, without their bytecodes generation is presented with supporting it software framework. The framework is implemented using JavaBeans component model, but is aimed to eliminate its drawback – the inability to create user-defined components without bytecodes generation. To construct user-defined component dynamically, a composed prototype object is built using predefined (hardcoded and/or composed) component instances; that prototype object can provide functionality required and can be transformed at runtime into a new component (instantiable type) whose instances are able to provide the same functionality, but more efficiently. The prototype object is composed using meta-components – the framework provided components to produce user-defined components dynamically.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Components used as elements of a composition are composing components; a component having been built from composing components is composed component.
- 2.
Java platform can deal with specific “synthetic” classes defined dynamically by JVM itself for specific purposes.
- 3.
We can use bytecode generation as a kind of just in time compilation, similar to JIT support in JVM [13], as an optimization technique. In that case, component production technology will be the same as component composition technology, producing components with “higher degree of integration” on the fly. But, first, we need to have “source information”.
- 4.
We omit package names from type names for short.
- 5.
The context tree is different from, e.g. java.awt.Container/Component tree that does not support reuse (sharing) of the component instances.
References
Sommerville, I.: Software Engineering, 10th edn. Pearson, New York (2015)
Wang, A.J.A., Qian, K.: Component-Oriented Programming. Wiley, New York (2005)
Lau, K.-K., Wang, Z.: A Survey of Software Component Models (second edition), School of Computer Science, The University of Manchester, Preprint Series, CSPP-38 (2006)
Paul, C., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Stafford, R.N.J.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley, Boston (2010)
McIlroy, D.: Mass-produced “software components. In: Naur, P. Randell, B.: Software Engineering, Report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968”. Scientific Affairs Division, NATO, Brussels
Spring Framework. https://spring.io/projects
OSGi Technology. https://www.osgi.org/developer/architecture/
Tiobe index. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
JavaBeans API Specification. http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html
Grinkrug, E.: Dynamic component composition. Int. J. Softw. Eng. Appl. 5(4), 84–101 (2014)
Abadi, M., Cardelli, L.: A Theory of Objects. Monographs in Computer Science. Springer, New York (1996). https://doi.org/10.1007/978-1-4419-8598-9
Nusan, N., Schoken, S.: The Elements of Computing Systems: Building a Modern Computer From First Principles. The MIT Press, Cambridge (2005)
Oaks, S.: Java Performance: The Definitive Guide. O’Reilly Media, Sebastopol (2014)
Meyer, B.: The grand challenge of trusted components. In: Proceedings of ICSE 2003, pp. 660–667. IEEE (2003)
Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Boston (2002)
Heineman, G., Councill, W. (eds.): Component-Based Software Engineering: Putting the Pieces Together, 2nd edn. Addison-Wesley, Boston (2001)
The Ptolemy Project. http://ptolemy.eecs.berkeley.edu/index.html
Lee, E.A., Neuendorffer, S.: Technical Memorandum UCB/ERL M00/12, Dept. EECS. http://ptolemy.eecs.berkeley.edu/publications/papers/00/moml/
McVeigh, A.: Creating, Reusing and Executing Components in Evolve. http://www.intrinsarc.com/evolve
The Virtual Reality Modeling Language. ISO/IEC 14772. www.web3d.org
Beeson, C.: An object-oriented approach to VRML development. In: Proceedings of the Second Symposium on Virtual reality Modeling Language, VRML 1997, pp. 17–24 (1997)
Diehl, S.: VRML ++: A language for object-oriented virtual reality models. In: Proceedings of the 24th International Conference on Technology of Object-Oriented Languages and Systems, TOOLS, Beijing, pp. 141–150 (1997)
Brutzman, D., Daly, L.: X3D: Extensible 3D Graphics for Web Authors. Elsevier, Amsterdam (2007)
The Instant Reality Framework. http://www.instantreality.org/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Grinkrug, E. (2018). A Framework for Dynamical Construction of Software Components. In: Petrenko, A., Voronkov, A. (eds) Perspectives of System Informatics. PSI 2017. Lecture Notes in Computer Science(), vol 10742. Springer, Cham. https://doi.org/10.1007/978-3-319-74313-4_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-74313-4_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74312-7
Online ISBN: 978-3-319-74313-4
eBook Packages: Computer ScienceComputer Science (R0)