The course aims at introducing the students to the methods and techniques for constructing large-scale software systems from preexisting components; Topics include: Market versus technology; Component standards; component definition; Components interfaces and re-entrance; Aspects of scale and granularity; Patterns, frameworks, architectures; Reusing design patterns; Common Object Request Broker Architecture (CORBA); Java Beans; Enterprise Java Beans (EJB); Component development; Component distribution, acquisition and assembly.