SWE 6813: Component Based Software Development

Instructor: Dr. Andy Ju An Wang
School of Computing and Software Engineering
Southern Polytechnic State University


Course Description

Catalog Description:
This course covers the concepts, foundations, and architectures of component-based software development (CBSD) and its related technologies. Component-based tools and languages, approaches for implementation of CBSD, including designing, building, assembling, and deploying reusable COTS and in-house software components are discussed in depth. The current concrete realizations of component technologies will be explored. Students will do projects focused on the life cycle of software components.

Course Objectives

The course covers a wide range of component-based software development skills, from analyzing and modeling a problem with component-based notations and architectures, to implementing a solution using a particular component technology. On completion of the course, students should be able to

Course Outline

  1. State-of-The-Art of Component-Based Software Engineering
    • What is CBSE?
    • Why CBSE?
    • CBSE with abstract components
    • CBSE with off-the-shell components
    • Components and markets
    • Markets versus technology
    • Fundamental properties of component technology
    • Framework, components, contracts, and patterns
    • Further research directions in CBSE
  2. What a Component Is and Is Not
    • Components and objects
    • Modules and interfaces
    • White box versus black box abstraction and reuse
    • Component dependencies
    • Standardization and normalization
    • Specification of software components
  3. Component Models and Technology
    • Architecting component-based systems
    • Component-driven architecture development
    • Component interface and connections
    • ACME ADL
    • JavaBeans component model
    • Enterprise JavaBeans (EJB)
    • COM, DCOM, MTS, and COM+
    • Corba Component Model (CCM)
    • .NET component model
    • The OSGi component model
  4. Component-Based Software Development Process
    • Component-based software life cycle
    • Semantic integrity in CBSD
    • Formal semantics of components
    • Role-based component engineering
    • Frameworks and roles
    • A model of frameworks
    • Design for reuse
    • Design with reuse
  5. Component Composition and Integration
    • Component evaluation
    • Component classification
    • Component integration
    • Prediction-enabled component technology
    • Predicting system trustworthiness
    • Component-oriented programming
    • Component distribution and acquisition
    • Subject-oriented programming
    • Aspect-oriented programming
    • Further research directions
  6. Components in Product Line Architecture
    • Product families and product lines
    • Product line architecture
    • Object-oriented frameworks
    • Component-oriented frameworks
    • The Koala component model
    • Managing versions and variants
  7. The OMG Way: CORBA and OMA
    • ORB: the object request broker
    • From CORBA to OMA
    • Common object service specifications
    • IDL: Interface Definition Language
    • Push-model and pull-model applications
    • Distributed exceptions
  8. The Microsoft Way: COM/DCOM and .NET Framework
    • The COM model
    • Interface and polymorphism
    • From COM to DCOM
    • Controls: from VB via OLE to ActiveX
    • .NET framework
    • .NET components and assembly
    • SOAP and .NET
  9. The Sun Way: JavaBeans and Enterprise JavaBeans
    • Events and connections
    • Properties and methods
    • Introspection and persistence
    • Component software design with IDE tools
    • Bean markup language
    • Component software development with XML and Ant
    • Component architecture description
    • Component implementation
    • Component composition and integration
    • Device beans
    • SOAP and component software
  10. The OSGi Way: Framework and Bundles
    • Service oriented programming
    • Open services and gateway
    • The OSGi service based computing models
    • Framework and bundles
    • Security issues in OSG applications
  11. Web Services
    • Web Services component infrastructure
    • Component models for Web Services
    • Connection models for Web Services
    • Deployment models for Web Services
  12. UML Components
    • Development process
    • Applying UML
    • Requirements definition
    • Component identification
    • Component Interaction
    • Component specification
    • Provisioning and assembly
Note:   Each semester will probably emphasize a couple of technologies while go through others briefly.

Student Comments

At the end of each semester, students were asked to provide their feedbacks on this course by answering the question "What do you like most and what do you dislike most about this course?" Below is a list of some comments from students.

Projects and Demos

Some projects and demos related to this course can be found here.

Course Web Site

The web URL for this course is: http://webct.usg.edu. Please log into your course web site following these directions exactly:
  1. Go to http://webct.usg.edu.
  2. Click on the "Log in to myWebCT" link (DO NOT CLICK ON CREATE myWEBCT).
  3. When asked, put in your user name and passwd following the format below:
    • username: Firstname_Lastname_last4digits of SSN
      (Example: John_Doe_1234)
    • password: SSN (no dashes or spaces)
      Or if you are a previous user with this ID, the password that you have been using.
    Please note that these are case sensitive.

Note for Students:


[Course Description] | [Course Objectives] | [Course Outline] | [Student Comments] | [Projects and Demos] | [Course Web Site]
© 2004 Andy J Wang
Last modified: Tuesday August 3, 2004