COM3240 - Component-Based Programming
College of Computer Science
Bookmark this page as http://www.ccs.neu.edu/home/lorenz/com3240.html.
David H. Lorenz
111 Cullinane Hall,
College of Computer Science,
Boston, MA 02115
Past & Future Quarters
|Another recommended source of information is:
Krysztof Czarnecki and Ulrich Eisenecker
Generative Programming: Methods, Tools, and Applications
/ ACM Press, 2000 (864 pages)
Generative Programming is your complete guide and reference to
Template Metaprogramming in C++,
and Microsoft's Intentional Programming.
Using this book you will learn how these techniques fit together and, more importantly, how to apply them in practice.
We will be interested in how these
emerging disciplines interact with software components.
The following links lead to chapter summaries written by student in the COM3240 course taken in Spring 2001.
You'll need to have microsoft internet explorer 4.0 or above in order to view the presentations.
- Slides for Szyperski Book, 2nd Ed.
- Slides for Szyperski Book, 1st Ed.
Chapter 1 - Introduction to Component Technology
Chapter 2 - Market or Technology?
Chapter 3 - Standards
Chapter 4 - What a Component is and is Not
Chapter 5 - Components, Interface, and Re-entrance
Chapter 6 - Polymorphism
Chapter 8 - Aspects of Scale and Granularity
Chapter 9 - Patterns, Frameworks, Architecture
Chapter 10 - Programming: shades of gray
Chapter 12 - Object and component ‘wiring’ standards
Chapter 14 - The Microsoft Way:
DCOM, OLE,and ActiveX
Chapter 14 - Overview of chapter 14:
COM, OLE and ActiveX
Chapter 15 - The Sun way: Java and JavaBean
Chapter 16,17 - Component-Based Tech.
Approaches and Strategic comparison
Chapter 18,19 - Efforts on domain standards
and open problems
Chapter 20 - key concepts of component architecture
Chapter 21 - Component Frameworks
Chapter 22 - Component Development
Chapter 23,24- Component distribution, acquisition & assembly
Chapter 25 - Emerging technologies in component programming domain
Chapter 26 - Future markets
Chapter 27 - New Professions in the era of component technology
Chapter 28 - A Component Marketing Paradox
Students will receive a CD with the following software: (license issues
in review, students may need to download a copy directly and sign the agreement.)
a license for IBM's VisualAge for Java, v3.0, Java 2
a license for ContextBox, a version of BeanBox that supports BeanContext
JBuilder 3.0 (University site license)
Sun's JDK 1.2 and BDK 1.1
Goals. The goals of the course are:
Course Structure. About one-third of the time would be spent on
advanced OO concepts; another third would be devoted to Java and Sun's
component model in detail; and the last third on selected papers related
to component technology.
Introduce the concept of software component, including its relationship
to the object-oriented programming paradigm.
Describe the basic issues present in component frameworks, including events,
properties, introspection and reflection, persistence, and packaging.
Introduce different component frameworks, including Java Beans, COM, and
The programming assignments will give students hands-on experience
programming components in Java and Java Beans, and using component development
environments. Students will learn how to:
Guest Lectures. Guest lectures will be given on CORBA (by OMG) and
COM (by Microsoft).
build a program from existing components
write components that can be used by others
extend a component development environment to support new features of components
Requirements. The course will consist of readings, programming
assignments, two exams, and a final project (no final exam). Students will
be required to write Java and Java Beans programs applying the latest features
of Java 2.
Content. Concepts of object-oriented programming that form the
basis for components (e.g., generic programming, programming by contracts,
programming with metaclasses.) Software architecture for supporting components
(e.g., implicit invocation, filters, reflection.) Theoretical foundations
of components (e.g., aspect-oriented programming, subject-oriented programming,
environmental acquisition.) Concrete realizations of components in some
industry standards (e.g., JavaBeans, EJB, CORBA, COM/DCOM.) Selective topics
in component research. The students will do a project where some creation,
deployment, and evolution methods of software components are applied.
Good understanding of OO concepts.
Completed COM3230 Object-Oriented
Design, preferably with "A-" or above.
(Or by permission of instructor.)
If you haven't taken COM3230, you should take the Smalltalk and OOP Proficiency Exam,
to be offered on Monday, March 24, 2003.
- Each student must submit 9 out of the 10 problem sets, designed
to give hands-on understanding of software components.
- Each student will give a one-hour presentation on a recent paper on Software Components, and write a short paper summarizing the content of the paper.
- Each team (pair of students) will implement a research project, and write a research
report summarizing the background, content, and result of the project.
- Midterm and Final exam.
Related courses and events at Northeastern University
Question: Professor, I heard that if you play the Course CD-ROM
backwards, you'll get a satanic message.
Answer: What's more frightening is that if you play it forward,
it installs the problem sets.
| D. H. Lorenz
||Last Modified: $Date:
2000/02/17 05:52:30 $