Abstract
In the literature of software engineering, many approaches have been proposed for the recovery of software architectures. These approaches propose to group classes into highly-cohesive and loosely-coupled clusters considered as architectural components. The recovered architecture plays mainly a documentation role, as high-level design views that enhance software understandability. In addition, architecture recovery can be considered as an intermediate step for migration to component-based platforms. This migration allows to fully benefit from all advantages brought by software component concept. For that, the recovered clusters should not be considered as simple packaging and deployment units. They should be treated as real components: true structural and behavior units that are instantiable from component descriptors and connected together to materialize the architecture of the software. In this paper, we propose an approach for revealing component descriptors, component instances and component-based architecture to materialize the recovered architecture of an object-oriented software in component-based languages. We applied our solution onto two well known component-based languages, OSGi and SOFA.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
D. Box. Essential com. object technology series (1997)
Oracle E.E. Group. Jsr 220: Enterprise javabeanstm, version 3.0 ejb core contracts and requirements version 3.0, final release, May 2006
Shatnawi, A., Seriai, A., Sahraoui, H., Al-Shara, Z.: Mining software components from object-oriented APIs. In: Schaefer, I., Stamelos, I. (eds.) ICSR 2015. LNCS, vol. 8919, pp. 330–347. Springer, Heidelberg (2014). doi:10.1007/978-3-319-14130-5_23
Bertolino, A., et al.: An architecture-centric approach for producing quality systems. QoSA/SOQUA 3712, 21–37 (2005)
Birkmeier, D., Overhage, S.: On component identification approaches – classification, state of the art, and comparison. In: Lewis, G.A., Poernomo, I., Hofmeister, C. (eds.) CBSE 2009. LNCS, vol. 5582, pp. 1–18. Springer, Heidelberg (2009). doi:10.1007/978-3-642-02414-6_1
Constantinou, E., et al.: Extracting reusable components: a semi-automated approach for complex structures. Inf. Process. Lett. 115(3), 414–417 (2015)
Washizaki, H., et al.: A technique for automatic component extraction from object-oriented programs by refactoring. Sci. Comput. Program. 56(1–2), 99–116 (2005)
Crnkovic, I., et al.: A classification framework for software component models. IEEE Trans. Softw. Eng. 37(5), 593–615 (2011)
Lau, K., et al.: Software component models. IEEE Trans. Softw. Eng. 33(10), 709–724 (2007)
Clarke, M., Blair, G.S., Coulson, G., Parlavantzas, N.: An efficient component model for the construction of adaptive middleware. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 160–178. Springer, Heidelberg (2001). doi:10.1007/3-540-45518-3_9
Shaw, M., et al.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall Inc., Upper Saddle River (1996)
Spacek, P., et al.: A component-based meta-level architecture and prototypical implementation of a reflective component-based programming and modeling language. In: Proceedings of the 17th International ACM Sigsoft Symposium on Component-Based Software Engineering, CBSE 2014. ACM (2014)
Kazman, R., et al.: Requirements for integrating software architecture, reengineering models: Corum ii. In: Proceedings of Reverse Engineering (1998)
Allier, S., et al.: From object-oriented applications to component-oriented applications via component-oriented architecture. In: Software Architecture (WICSA) (2011)
Becker, S., et al.: Model-based performance prediction with the palladio component model. In: Proceedings of the 6th International Workshop on Software and Performance, WOSP 2007. ACM (2007)
Chardigny, S., et al.: Extraction of component-based architecture from object-oriented systems. In: Software Architecture, WICSA (2008)
Ducasse, S., et al.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Softw. Eng. 35(4), 573–591 (2009)
Kebir, S., et al.: Quality-centric approach for software component identification from object-oriented code. In: Software Architecture (WICSA) and European Conference on Software Architecture (ECSA) (2012)
Bures T., et al.: Sofa 2.0: balancing advanced features in a hierarchical component model. In: Software Engineering Research, Management and Applications (2006)
Alshara, Z., et al.: Migrating large object-oriented applications into component-based ones: instantiation and inheritance transformation. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2015. ACM (2015)
Sun Microsystems. Javabeans specification (1997)
OMG. Omg corba component model v4.0 (2011)
Osgi Service Platform. The osgi alliance, release 6 (2015)
Seriai, A., Sadou, S., Sahraoui, H.A.: Enactment of components extracted from an object-oriented application. In: Avgeriou, P., Zdun, U. (eds.) ECSA 2014. LNCS, vol. 8627, pp. 234–249. Springer, Heidelberg (2014). doi:10.1007/978-3-319-09970-5_22
Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Longman Publishing Co. Inc., Boston (2002)
Winter, M.: The pecos software process. In: Workshop on Components-based Software Development Processes, ICSR (2002)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Alshara, Z., Seriai, AD., Tibermacine, C., Bouziane, H.L., Dony, C., Shatnawi, A. (2016). Materializing Architecture Recovered from Object-Oriented Source Code in Component-Based Languages. In: Tekinerdogan, B., Zdun, U., Babar, A. (eds) Software Architecture. ECSA 2016. Lecture Notes in Computer Science(), vol 9839. Springer, Cham. https://doi.org/10.1007/978-3-319-48992-6_23
Download citation
DOI: https://doi.org/10.1007/978-3-319-48992-6_23
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-48991-9
Online ISBN: 978-3-319-48992-6
eBook Packages: Computer ScienceComputer Science (R0)