Review for CS1631

You should read all the chapters mentioned in the class notes at least once. What are reviewed below are places that you need to pay more attention and even memorize. However there could be questions on other parts not covered below. What I marked red in the notes are usually important concepts.

Definition of a software component (entire chapter)

Software life cycle (also see link)

What is gap fulfilment?

Component Models and Component Services (entire chapter)

UML (purpose and examples of each kind of diagrams)

A summary of UML diagrams (pay special attention to deployment diagrams)

I can ask you to provide UML digrams for a small design problem (see example)

How to make a business case? (I will provide the formulas, but you need to know how to do the math) What is TCO?

What are the three types of components? What is a wrapper?

Operational readiness. How to organize a component infrastructure

What is a component? What is an interface?

UML Class Diagrams for representing Subsytems and Interfaces (also subsequent five pages)

What is a software component infrastructure?

What is a component stereotype?

Granularity, fine grained, coarse grained (also see link to stepwise refinement)

What interface? What is a connector?

What are the common styles of software architecture? What are they used for?

What is the base set?

How does everything fit together?


The following are topics covered after the midterm. The final exam will place more emphasis on topics covered after the midterm.

Agile methodology (the entire chapter)

Continuous integration (related slides)

Test-Driven Development

What is SLOC?

What is productivity?

What is density?

What is RCR?

Configuration management: study the example of Visual Component Manager

The Traditional CORBA Object Model

CORBA Component Model (CCM). Concept of the CCM container. What is its purpose?

What is COM?

The comparison chart between COM and CORBA

What is COM+?

What are context and causality?

COM+ philosophy: attribute-based programming

Enterprise Java Beans (Compare with CORBA design philosophy. What are common and what are different)

Bean Container

Session beans and entity beans.

Stateful and Stateless.

Concept of transaction

GNOME (Compare with other approaches)

Why Use a Middle-Tier Component Model Implementation?

A Framework for Comparison

What are software agents? Different type of agents?

What is certification? Why is certification important?