Lectures: content and schedule

Lecture schedule for the CBSE course,
Date Lecture Topics Slides Lab and Practice Topics Reading
Week 1.
Component Based Development: Introduction and Basic Concepts Lecture Slides
  • Main text: Ian Sommerville, Software Engineering, 10th edition, 2016. chapter 16.1: Components and component models
Week 2.
UML Components Lecture Slides
  • Main text: Kim Hamilton, Russell Miles, Learning UML 2.0, OReilly, 2006 , Chapter 12: Managing and Reusing Your System's Parts: Component Diagrams
  • Additional readings: Kim Hamilton, Russell Miles, Learning UML 2.0, OReilly, 2006 , Chapter 11: Modeling a Class's Internal Structure: Composite Structures
Week 2.
UML Components - exercises and discussion UML Components - More examples and discussion UML Components Lab and Assignment
Week 3.
Component specification Lecture Slides
  • Main bibliography: Ivica Crnkovic, Magnus Larsson (Eds.): Building reliable component-based systems. Chapter 2: Specification of Software Components; Chapter 6: Semantic Integrity in Component Based Development
  • Other readings:
    • B.Meyer: Applying Design by Contract, link
    • Mary Shaw: Truth vs Knowledge: The Difference Between What a Component Does and What We Know It Does, link
Week 4. Architectural mismatch Lecture Slides
  • Garlan, Allen, Ockerbloom: Architectural Mismatch or Why it is hard to build systems out of existing parts, in ICSE 1995, link
  • Garlan, Allen, Ockerbloom: Architectural Mismatch: Why Reuse is Still So Hard, IEEE Software 2009, link
  • Ivica Crnkovic, Magnus Larsson.Building reliable component based software systems,  Chapter 9: Component Composition and Integration
Week 5. Introduction to Component Models and Technologies: IoC Containers Lecture Slides IoC Containers Lab Assignment
  • Martin Fowler: Inversion of Control Containers and the Dependency Injection Pattern, link
Week 6. Component Models and Technologies. Case Study: OSGI Lecture Slides (OSGI Intro and General Concepts)
  • OSGi in Action, Chapter 1 - OSGi Revealed. (See also book website for samples and code)
Week 7. OSGI cont Lecture Slides (OSGI Modularity Layer)

Lecture Slides (OSGI Lifecycle Layer and Extender Pattern)

Source code: SimpleHello.zip , HelloExtender.zip Paint.zip

OSGI Components Lab Assignment
  • OSGi in Action: Chapter 2 - Mastering Modularity
  • OSGI in Action: Chapter 3 - Learning Lifecycle
Week 8. OSGi cont. Lecture Slides (OSGI Services and Whiteboard pattern)
  • OSGi in Action: Chapter 4 - Studying Services
Week 9. OSGi cont. Lecture Slides (OSGi Component Models. Declarative Services)

Source code: DS_foo_bar.zip

  • OSGi in Action: Chapter 11 - Component Models. Declarative Services
Week 11. OSGi cont. Lecture slides (OSGi final summary. Eclipse plug-ins) Optional Lab Assignments
  • Eclipse plugin architecture
Week 11. Component Models and Technologies. Comparison. Lecture Slides
  • [CrnkovicBook]: Chapter 4
  • article: Crnkovic, Sentilles, Vulgarakis, Chaudron: A Classification Framework for Software Component Models, in IEEE Transactions on Software Engineering, 2010, article link, article slides
Week 12. Reuse with Services Lecture Slides (Concepts: Service Oriented Architecture, Services as reusable components, The Web services case study, WSDL as an IDL)
  • Ian Sommerville, Software Engineering, 8th edition, chapter 31
Week 13 Composition in Service Oriented Architectures Lecture Slides Lab assignment: Service Composition
  • BPEL and Java, in TheServerSide.com, link
  • Tutorial - Eclipse BPEL designer and Apache ODE link
Week 14. Software Product Lines Lecture Slides Lab assignment: Managing variability in a Software Product Family
Week X Aspect Oriented Programming x
  • Ian Sommerville, Software Engineering, 8th edition, chapter 32
  • Kiczales et al, An Overview of AspectJ, ECOOP 2001. link