A New Component-Oriented Programming Language with the First-Class Connector

  • Bo Chen
  • ZhouJun Li
  • HuoWang Chen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4228)


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.


Software Architecture Operational Semantic Component Class Component Instance Architectural Description Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Arbab, F.: Abstract Behavior Type: A Foundation Model for Component and Their Composition. Science of Computer Programming 3, 52 (2005)Google Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    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)Google Scholar
  7. 7.
    Szyperski, C.: Component Software - Beyond Object-Oriented Programming. Addison-Wesley, Reading (2003)Google Scholar
  8. 8.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)MATHGoogle Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    Sreedhar, V.C.: Mixin Up Components. In: Proceedings of the 24th International Conference on Software Engineering, Orlando, Florida (May 2002)Google Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    Drossopoulou, S., Valkevych, T., Eisenbach, S.: Java type soundness revisited. Technical report. Imperial College London (September 2000)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)MATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Aldrich, J., Chambers, C., Notkin, D.: Language Support for Connector Abstractions. In: Proceedings of the 17th European Conference Object-Oriented Programming, Darmstadat, Germany (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Bo Chen
    • 1
  • ZhouJun Li
    • 2
  • HuoWang Chen
    • 1
  1. 1.Computer College of National University of Defense TechnologyChangsha, HunanP.R. China
  2. 2.School of Computer Science and EngineeringBeihang UniversityBeijingP.R. China

Personalised recommendations