Abstract
The idea of a connector, which explicitly describes the interactions among components, is one of the important contributions of the research on software architecture. The importance of the connector as a first-class entity in software architecture has been increasingly recognized. In this paper we argue that such an important abstraction also deserves first-class support from programming languages. We present a new component-oriented programming language, SAJ (Software Architecture based Java), which integrates some architectural concepts such as the component, the port and particularly the connector into Java. The connector is treated as a first-class entity in SAJ as is the component so that software architecture can be made more explicit at implementation level and the simultaneous reuse of the component and the connector can be realized. The component model and the connector model underlying SAJ are also discussed in detail. We formalize our language giving both the type system and operational semantics and prove the type soundness property.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. on Software Engineering and Methodology 6(3), 213–249 (1997)
David, C., Luckham, J.J., Kenney, L.M., Vera, J., Bryan, D., Mann, W.: Specification and Analysis of System Architecture Using Rapide. IEEE Trans. on Software Engineering 21(4), 336–355 (1995)
Oreizy, P., Rosenblum, D.S., Taylor, R.N.: On the Role of Connectors in Modeling and Implementing software Architectures. Technical Report UCI-ICS-98-04, University of California, Irvine (1998)
Arbab, F.: Abstract Behavior Type: A Foundation Model for Component and Their Composition. Science of Computer Programming 3, 52 (2005)
Liu, Y.D., Smith, S.F.: Interaction-Based Programming with Classages. In: Proceedings of the 20th Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 2005), San Diego, California (October 2005)
Oussalah, M., Smeda, A., Khammaci, T.: An Explicit Definition of Connectors for Component-Based Software Architecture. In: 11th IEEE International Conference on the Engineering of Computer-Based Systems (ECBS 2004), Brno, Czech Republic (May 2004)
Szyperski, C.: Component Software - Beyond Object-Oriented Programming. Addison-Wesley, Reading (2003)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Lau, K.-K., Elizondo, P.V., Wang, Z.: Exogenous Connectors for Software Components. In: Eighth International SIGSOFT Symposium on Component-based Software Engineering (CBSE 2005), St. Louis, MO, USA (May 2005)
Sreedhar, V.C.: Mixin Up Components. In: Proceedings of the 24th International Conference on Software Engineering, Orlando, Florida (May 2002)
Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: Proc. 22nd International Conference on Software Engineering, Limerick, Ireland (June 2000)
Bierman, G., Wren, A.: First-class relationships in an object-oriented language. In: Proceedings of the 19th European Conference on Object-Oriented Programming, Glasgow, Scotland (2005)
Drossopoulou, S., Valkevych, T., Eisenbach, S.: Java type soundness revisited. Technical report. Imperial College London (September 2000)
Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. In: Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) (1999)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California (1998)
Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)
Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering, Orlando, FL (2002)
Aldrich, J., Chambers, C., Notkin, D.: Language Support for Connector Abstractions. In: Proceedings of the 17th European Conference Object-Oriented Programming, Darmstadat, Germany (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, B., Li, Z., Chen, H. (2006). A New Component-Oriented Programming Language with the First-Class Connector. In: Lightfoot, D.E., Szyperski, C. (eds) Modular Programming Languages. JMLC 2006. Lecture Notes in Computer Science, vol 4228. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11860990_17
Download citation
DOI: https://doi.org/10.1007/11860990_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40927-4
Online ISBN: 978-3-540-40928-1
eBook Packages: Computer ScienceComputer Science (R0)