SHORT COURSE ON CBSE AND THE CHRONOBOT

The purpose of this short course is to provide the necessary technical background and common framework for people interested in participating in the Chronobot project to build a time machine for knowledge management. It consists of eleven lectures/discussions. Each lecture/discussion is approximately one to one-and-a-half hours long. There will also be two exercises and two project milestones. Participants will learn the fundamentals of component-based software engineering (CBSE), UML for software design, and the common framework to develop components for the Chronobot project. Participants will also get acquainted with the theory of software patterns. Participants must already be knowledgeable about Java and/or C++ programming.

There will be one lecture per working day, most probably from 4pm to 5pm (or sometimes 5:30pm), so that the entire short course will take eleven working days. The purpose is to give people enough time to think and to work on the exercises and project milestones. Therefore it is anticipated that the short course will be offered in two to two-and-a-half weeks. The exercises and milestones naturally lead to the continuation of the development of one or more components for the Chronobot. The classnotes, exercises, project descriptions, software tools and tutorials are all available online, so that the participants can easily download and study at their own pace.

The instructor is Professor Shi-Kuo Chang, the Principal Investigator of the Chronobot project. The best way to contact the instructor is by e-mail (chang@cs.pitt.edu).

The short course is limited to no more than twenty participants, with priority seating for researchers from ATC, CCL, ITRI, III and cooperating academic institutions, strictly in that order. To reserve a seat, please contact Dr. Carl Kuo (cck@itri.org.tw), the Co-Principal Investigator of the Chronobot project.

The follow-up of this short course is a short course on Time and Time Management, to be offered by Professor Chang in September 2004, to further explore the principles and applications of the Chronobot.

LECTURE 1: (May 4 Tu)

COMPONENT DEFINITION

Definition of a software component (C1)

The component industry metaphor (C2)

Component models and services (C3)

LECTURE 2: (May 5 Wed)

VISUAL MODELING WITH UML

An Example specification (C4)

THE CASE FOR COMPONENTS

The business case for components (C5)

Exercise 1 (due May 10 Mon)

LECTURE 3: (May 6 Th)

THE DESIGN OF SOFTWARE COMPONENT INFRASTRUCTURES

Software components and the UML (C14)

Component infrastructures (C15)

Project Discussion: The Virtual Classroom

LECTURE 4: (May 10 Mon)

Project Discussion: The Chronobot

Time/Knowledge Exchange Protocol

Project Discussion: Standard interface for the Virtual Classroom

LECTURE 5: (May 11 Tu)

Business components (C16)

Project Discussion: Use Virtual Classroom to discuss project

LECTURE 6: (May 12 Wed)

Components and connectors (C17)

An OPEN process for component-based development (C18)

SOFTWARE SYSTEMS

Software architecture (C20)

Software architecture design principles (C21)

Exercise 2 (due May 17 Mon)

LECTURE 7: (May 13 Th)

THE MANAGEMENT OF COMPONENT-BASED SOFTWARE SYSTEMS

Measurement and metrics for software components (C23)

Configuration management (C29)

COMPONENT TECHNOLOGIES

CORBA (C31) and a simple example

LECTURE 8: (May 17 Mon)

COM+ (C32) and more examples

JavaBeans (C33)

LECTURE 9: (May 18 Tu)

GNOME (C34)

Choosing between COM+, EJB, and CCM (C35)

Project Milestone I to define messages for interface

LECTURE 10: (May 19 Wed)

Project Discussion: Use Virtual Classroom to discuss project

Software Patterns

LECTURE 11: (May 20 Th)

Project Milestone II to test your component using the remote control (Java version, please download and unzip). Please read the tutorial on how to use the remote control. A C++ Interface for the components (works with the Remote Control 1.0) is provided, which has been tested with GNU's g++ compiler on elements machines.

Software agents (C36)

CONCLUSION

Summary (C41) and future of CBSE (C42)

Final Thought: The master programmer moves from program to program without fear. No change in management can harm him. He will not be fired, even if the project is canceled. Why is this? He is filled with the Tao. -- Geoffrey James, The Tao of Programming


Note: The chapters C1, C2, and so on, refer to the book, Component Based Software Engineering: Putting the Pieces Together, by George T. Heineman and William T. Councill, Addison-Wesley Pub Co; 1st edition, June 8, 2001, ISBN: 0201704854. (Hardcover 818 pages, List Price: $54.99, used books from $15.19. Order from amazon.com)