TDDD05 Component-based Software
Course bookComponent Software, Beyond Object-Oriented Programming, second edition, by Clemens Szyperski. Addison-Wesley, 2002. ISBN 0-201-74572-0.
Most chapters of the Szyperski book will be covered by online lectures, at least at some degree. It also serves as background reading, providing more details on some of the topics that can not be treated exhaustively in the lectures. References to the corresponding chapters will be given on the slides as appropriate. Chapters 2, 3, 18, 19, 26, 27, 28 will not be taken up. Moreover, there are some lectures that are not covered by the book.
ReferencesPlease note that scientific papers from ACM, Springer or IEEE are available for download only if accessed through an Internet connection originating from within LiU. If you are at home, you may set up an SSH SOCKS proxy to
remote-und.ida.liu.sein order to download papers.
On general issues and foundations:
- Software Quality, definitions and metrics
G. Beneken et al.: Componentware - State of the Art 2003. Background paper for the Understanding Components Workshop of the CUE initiative. Venice, October 2003.
- J. Maras, L. Lednicki, and I. Crnkovic: 15 years of CBSE symposium: impact on the research community. In Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering (CBSE '12). ACM, New York, NY, USA, 61-70.
- Parastoo Mohagheghi, Reidar Conradi, Ole M. Killi, Henrik Schwarz, An Empirical Study of Software Reuse vs. Defect-Density and Stability, ICSE, pp.282-292, 26th International Conference on Software Engineering (ICSE'04), 2004
J. Bishop, N. Horspool: Cross-Platform Development: Software that Lasts. IEEE Computer 39(10): 26-35, Oct. 2006.
- B. Meyer: Applying "Design by Contract". IEEE Computer 25(10): 40-51, Oct. 1992.
- Examples of Design By Contract support in programming languages
- Implementation of design-by-contract through the Java Modeling Language
L. Baresi, E. Di Nitto, C. Ghezzi: Toward Open-World Software: Issue and Challenges. IEEE Computer 39(10): 36-43, Oct. 2006.
OMG homepage. Material on CORBA, UML, MDA.
On Object-oriented software as composable software
- J. Bosch et al: Object-Oriented Frameworks - Problems & Experiences. Tech. report, Dept of CS and BA, University College of Karlskrona/Ronneby 1997.
- L. Mikhajlov, E. Sekerinski: A Study of The Fragile Base Class Problem. ECOOP 98, Springer LNCS 1445: 355-382, 1998.
- W. Harrison, H. Ossher: Subject-Oriented Programming (A Critique of Pure Objects). ACM OOPSLA 93 pp. 411-428.
On Composition Languages
Piccola. A composition language for Java components
On Component Models
K. Lau, Z. Wang: Software Component Models.
IEEE Trans. Softw. Eng. 33(10), Oct. 2007.
- OSGi as a specification of component models in Java, which is implemented by several vendors such as the Eclipse foundation through Equinox.
- Equinox as a component model implementing OSGi. Used in the Eclipse IDE.
- OSGi? No Thanks by Ross Mason @ MuleSoft.
- Bonobo, the component model used in the desktop environment Gnome.
- KParts, the component model used in the desktop environment KDE.
- D-Bus, a messaging system used by Gnome and KDE to facilitate interprocess communication and component lifecycle management.
- The Fractal component model, a modular, extensible and programming language agnostic component model.
- G. Hohpe, B. Woolf: Enterprise Integration Patterns. Addison Wesley 2004.
- Martin Fowler on integration techniques such as Remote Method Invocation and Messaging.
- ActiveMQ, a messaging system middleware that implements ideas from Enterprise Integration Patterns.
On Java Reflection:
SUN Microsystems Inc.: Java Reflection Tutorial, 2014.
- CORBA vs ICE, a modern computation distribution platform similar to CORBA.
- M. Henning. A new approach to object-oriented middleware. IEEE Internet Computing, pages 66-75, January-February 2004.
- C. Munoz and J. Zalewski: Archictecture and Performance of Java-Based Distributed Object Models: CORBA vs RMI in Real-Time Systems, July 2001, Volume 21, Issue 1-2, pp 43-75.
- J. Siegel: Omg overview: CORBA and the OMA in enterprise computing. Communications of the ACM 41(10), Oct. 1998.
- Getting Started Using RMI-IIOP: Example Using POA-based server-side model in Java by Oracle.
M. Henning: The Rise and Fall of CORBA. (Viewpoint article). ACM Queue 4(5), 2006.
On EJB and Spring:
- JBoss, Open source EJB Container
- EJB tutorial focused on JBoss
- The Spring application framework, a competitor to EJB
On SOA / Web services:
- J. Bih: Service oriented architecture (SOA) a new paradigm to implement dynamic e-business solutions. ACM Ubiquity, Aug. 2006.
- G. Hohpe: SOA Patterns - New Insights or Recycled Knowledge? (White Paper on SOA Patterns, 2007).
- Wikipedia: BPEL for modelling Web Services
- W. M. P. van der Aalst: Don't go with the flow: Web services composition standards exposed. IEEE Intelligent Systems, Jan/Feb 2003.
On Software Architecture:
- P. Kruchten, H. Obbink and J. Stafford:The Past, Present, and Future for Software Architecture in IEEE Software, 23(2): 22-30, March-April 2006.
- N. Medvidovic and R. N. Taylor: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 26(1):70-93, January 2000.
- N. Medvidovic. Moving architectural description from under the technology lamppost. In 32nd EUROMICRO Conference on Software Engineering and Advanced Applications, 2006.
- H. P. Breivold, I. Crnkovic, and M. Larsson. A systematic review of software architecture evolution research. Information and Software Technology, 54(1):16-40, January 2012.
- A. Tang, M. A. Babar, I. Gorton, and J. Han:A survey of architecture design rationale. In The Journal of Systems and Software, 79:1792-1804, 2006.
- C. Hofmeister, R. L. Nord, D. Soni: Describing Software Architecture with UML. In Proceedings of the First Working IFIP Conference on Software Architecture, 1999.
- R. K. Pandey: Architectural description languages (ADLs) vs UML: a review. ACM SIGSOFT Software Engineering Notes, 35(3): 1-5, May 2010.
- D. Perry and A. Wolf: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes, 17(4):40-52, October 1992.
Aspect-oriented programming: Introduction. Special Issue, Communications of the ACM 44(10), October 2001.
G. Kiczales et al: Aspect Oriented Programming. in Proc. ECOOP'97, Springer LNCS, June 1997.
A. Rashid et al.: Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe. IEEE Computer 43(2), Feb. 2010, pp. 19-26.
- C#: Metaprogramming in C# 4.0 by Anders Hejlsberg (technical, requires C# knowledge)
- C#: Creating dynamic objects @ MSDN
- C#: Creating a domain-specific language in C# by using dynamic objects
- Ruby: A short online tutorial on open classes
- Ruby: A
short online tutorial on
define_methodand related concepts
- Lisp: A Design-by-contract implementation in Lisp using the Meta-Object Protocol.
- Java: An introduction to the CGLib bytecode manipulation library.
On software package management systems
- Wikipedia entry on software package management
- The Rubygems software package format for Ruby
- The Debian package management system
- M. Melguidoum and F. Dagnat: Dependency Management in Software Component Deployment. Electronic Notes in Theoretical Computer Science 182 (2007) 17-32
- Wikipedia article on MDA
- Douglas C. Schmidt, Guest Editor's Introduction: Model-Driven Engineering, IEEE Computer, 39(2):25-31, Feb. 2006
- B. Selic. The pragmatics of model-driven development. IEEE Software, 20(5):19-25, September 2003.
- J. Hutchinson et al: Model-driven engineering practices in industry. In 2011 33rd International Conference on Software Engineering (ICSE).
- P. Mohagheghi et al: An empirical study of the state of the practice and acceptance of model-driven engineering in four industrial cases. In Empirical Software Engineering 18(1) 2013. Pages 89-116.
Page responsible: Ola Leifler
Last updated: 2014-05-20