"Babes-Bolyai" University of Cluj-Napoca
Faculty of Mathematics and Computer Science

Component-based programming
Code
Semes-
ter
Hours: C+S+L
Credits
Type
Section
MI365
1
2+2+0
9
compulsory
Programare bazată pe componente - în limba engleză
MI365
1
2+2+1
9
compulsory
Metode formale în programare - în limba engleză
Teaching Staff in Charge
Prof. PÂRV Bazil, Ph.D.,  bparvcs.ubbcluj.ro
Aims
At the completion of this course, the students will be able to:
a) have a good understanding of the importance of component wiring models
b) completely understand the object models discussed, with their common and specific features
c) know how to use programming languages (C++, Java, Component Pascal) to implement COM, CORBA, and Java Beans, and Component Pascal components
Content
1. Component wiring models
1.1. The main features of a component 'wiring' model
1.2. Manipulating objects in a distributed environment
1.3. Interface relations and polymorphism
1.4. Identifying and localizing objects
1.5. Compound documents
2. The OMG CORBA model
2.1. The main functions of an ORB (Object Request Broker)
2.2. CORBA and Object Management Architecture OMA
2.3. CORBAServices Specification
2.4. CORBA implementations
2.5. CORBAFacilities Specification
3. The Microsoft COM/DCOM model
3.1. COM - how to connect objects
3.2. COM interfaces and polymorphism
3.3. Creating and using COM objects
3.4. COM and Distributed COM
3.5. COM services specification
3.6. Compound documents and OLE
3.7. Controls: from VBX to ActiveX
4. The Sun Java/JavaBeans model
4.1. The Java programming language and component-based programming
4.2. The Java programming language and distributed objects
4.3. JavaBeans specification
4.4. Java services
4.5. The Java distributed object model
4.6. Java native interfaces
5. Model comparison
5.1. Other component 'wiring' models
5.2. Common features of the models discussed
5.3. Specific features of the models discussed
6. Open problems
6.1. Domain standards
6.2. The impact of the components on software engineering
6.3. Mobile agents
6.4. Contract specification
7. Component architecture
7.1. The roles of a component architecture
7.2. Architecture conceptualization
7.3. Key terms
7.4. A tiered component architecture
8. Component frameworks
8.1. The roles of a component framework
8.2. OpenDoc
8.3. BlackBox Component Framework
8.4. OpenDoc versus BlackBox

Seminar activity
S1- The survey of information sources available on Internet and Intranet
S2 - Planning of the working papers
S3 - S14 - Presentation of the working papers, with the following topics
1. The CORBA model (4 papers)
1.1. OMG IDL
1.2. CORBA ORB - overview
1.2. CORBAServices
1.3. CORBAFacilities
2. The COM/DCOM models (3 papers)
2.1. COM interfaces
2.2. COM services
2.3. DCOM and COM+
3. The Java/JavaBeans model (3 papers)
3.1. Java classes and interfaces. Exception handling. Threads and synchronization
3.2. JavaBeans: events and connections, propierties, introspection
3.3. Other Java services: reflection, serialization
4. The OpenDoc Model
5. The BlackBox Component Builder and Component Pascal
References
1. D'SOUZA, DESMOND FRANCIS - WILLS, ALAN CAMERON: Objects, Components, and Frameworks with UML : The Catalysis Approach, Addison-Wesley, 1999.
2. SZYPERSKI, CLEMENS: Component Software. Beyond Object-Oriented Programming, Addison-Wesley (1st ed. 1998, 2nd ed. 2002).
3. BlackBox Component Builder, [http://www.oberon.ch/BlackBox.html].
4. Component Technology Homepage, [http://www.fja-odateam.com/cop/].
5. Java Platform, Enterprise Edition, Sun Corp., 1999-2004. [http://java.sun.com/j2ee/].
6. Microsoft Component Object Model Technologies, [http://www.microsoft.com/com/ default.mspx].
7. OMG CORBA/IIOP Specifications, [http://www.omg.org/technology/documents/ corba_spec_catalog.htm].
Assessment
The final mark will cover lab (i.e. completing a project) and research (preparing a
research paper) activity, as well as the written exam results. It is computed as follows, on a 10-point scale:
1pt by default
1pt lab attendance
2pts the project
2pts the paper
4pts the written exam.