COM3240 - Component-Based Programming
College of Computer Science
Northeastern University
Bookmark this page as http://www.ccs.neu.edu/home/lorenz/com3240.html.
Instructor
David H. Lorenz
111 Cullinane Hall,
College of Computer Science,
Northeastern University,
Boston, MA 02115
Internet: [email protected]
Past & Future Quarters
Required Textbook
Another recommended source of information is:
Krysztof Czarnecki and Ulrich Eisenecker
Generative Programming: Methods, Tools, and Applications
Addison-Wesley
/ ACM Press, 2000 (864 pages)
ISBN 0-201-30977-7
Generative Programming is your complete guide and reference to
Domain Engineering,
Feature Modeling,
Generic Programming,
Aspect-Oriented Programming,
Template Metaprogramming in C++,
Generators,
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.
|
|
Summarized Chapters
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
Required Software
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
manipulation
-
JBuilder 3.0 (University site license)
-
Sun's JDK 1.2 and BDK 1.1
Goals. The goals of the course are:
-
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
CORBA.
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.
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:
-
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
Guest Lectures. Guest lectures will be given on CORBA (by OMG) and
COM (by Microsoft).
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.
Prerequisites
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.
Requirements
- 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
Software
FAQ
-
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 $ |