Abstract
In this paper we present a solution to software reuse based on Pluggable Units (PUs) that can be used to compose new applications from existing parts. Although this goal has been achieved in hardware design through the creation of integrated circuits (ICs), the attempts to build a software equivalent were not fully successful. Pluggable units are a full fledged software implementation of the IC concept while providing new features not existing in hardware, namely the ability to compose software hierarchically. An application example is provided in JUse, a new Java-based language supporting pluggable units and in JWidget, a pluggable version of Java/Swing.
This work is supported by the Portuguese Foundation for Science and Technology, under grant PTDC/EIA-EIA/100752/2008.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Gartner identifies seven grand challenges facing IT (2008), http://www.gartner.com/it/page.jsp?id=643117
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: International Conference on Software Engineering, pp. 187–197 (2002)
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)
AppInventor, http://appinventor.googlelabs.com/
Arbab, F.: Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science 14, 329–366 (2004)
Arlow, J., Neustadt, I.: UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design. Addison, London (2005)
Barais, O., Meur, A., Duchien, L., Lawall, J.: Software architecture evolution. In: Software Evolution, pp. 233–262. Springer, Heidelberg (2008)
Barros, F.: Modeling formalisms for dynamic structure systems. ACM Transactions on Modeling and Computer Simulation 7(12), 505–515 (1997)
Barros, F.: System and method for programming using independent and reusable software units. US Patent 6851104 B1 (Filed August 2000) (February 2005)
Barros, F.: Representing hierarchical mobility in software architectures. In: International Workshop on Software Engineering for Adaptive and Self-Managing Systems (2007)
Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology 1(4), 355–398 (1992)
Brooks, F.: No silver bullet: Essence and accidents of software engineering. In: Information Processing 1986, pp. 1069–1076 (1986)
Bruneton, E., Coupaye, T., Leclercq, M., Quéma, V., Stefani, J.: The FRACTAL component model and its support in Java. Software Practice and Experience 36(11-12), 1257–1284 (2006)
Bureš, T., Hnětynka, P., Plášil, F.: Dynamic reconfiguration and access to services in hierarchical component models. In: International Conference on Software Engineering Research, Management and Apllications, pp. 40–48 (2006)
Freeman, E., Freeman, E., Sierra, K., Bates, B.: Head First Design Patterns. O’ Reilly, Sebastopol (2004)
Garlan, D., Monroe, R., Wile, D.: ACME: An architecture description interchange language. In: Conference of the Centre for Advanced Studies on Collaborative Research (1997)
Kahn, G.: The semantics of a simple language for parallel programming. In: Information Processing, pp. 471–475 (1974)
Khoshgoftaar, T., Allen, E., Kalaichelvan, K., Goel, N.: The impact of software evolution and reuse on software quality. Empirical Software Enginnering, 31–44 (1996)
Lau, K.-K., Wang, Z.: Software component models. IEEE Transactions on Software Engineering 33(10), 709–724 (2007)
Lim, W.: The effects of reuse on quality, productivity, and economics. IEEE Software, 23–30 (1994)
Medvidovic, N., Taylor, R.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)
Mesarovic, M., Takahara, Y.: General Systems Theory: A Mathematical Foundation. Academic Press, London (1975)
Mohagheghi, P., Conradi, R.: Quality, productivity, and economics benefits of software reuse: A review of industrial studies. Empirical Software Engineering 12, 471–516 (2007)
Odersky, M., Zenger, M.: Scalable component abstractions. In: Object-Oriented Programming Systems Languages and Applications, pp. 41–57 (2005)
Oquendo, F.: Formally modelling software architectures with the UML 2.0 profile for π-ADL. ACM SIGSOFT Software Engineering Notes 31(1), 1–13 (2006)
Parnas, D.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)
Pawlak, R., Seinturier, L., Retaillé, J.-P.: Foundations of AOP for J2EE Development. A-Press (2006)
Sametinger, J.: Software Engineering with Reusable Components. Springer, Heidelberg (1997)
Shaw, M., Clements, P.: The golden age of software architectures: A comprehensive survey. Technical Report CMU-ISRI-06-101, Carnegie-Mellon University, USA (2006)
Sommerville, I.: Software Engineering 8. Addison-Wesley, Reading (2007)
Szyperski, C.: Component Software: Beyond Object-Oriented Software. Addison-Wesley, Reading (1998)
Taylor, R., Medvidović, N., Dashofy, E.: Software Architecture. Wiley, Chichester (2010)
van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala component model for consumer electronics software. Computer 33(3), 75–85 (2000)
Wymore, A.: A Mathematical Theory of Systems Engineering: The Elements. Krieger (1967)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Barros, F.J. (2011). Achieving Reuse with Pluggable Software Units. In: Schmid, K. (eds) Top Productivity through Software Reuse. ICSR 2011. Lecture Notes in Computer Science, vol 6727. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21347-2_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-21347-2_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21346-5
Online ISBN: 978-3-642-21347-2
eBook Packages: Computer ScienceComputer Science (R0)