CS1631 Software Design Methodology

Week 1: (see the calendar for dates)

COMPONENT DEFINITION

Definition of a software component (C1) The component industry metaphor (C2) Component models and services (C3)

Week 2: (see the calendar for dates)

VISUAL MODELING WITH UML

and an example

(Prerequisites: Please also study Data Flow Diagram and Petri net)

(Please download ArgoUML, and read the book, Visual Modeling with Rational Rose 2002 and UML)

Exercise 1 (due dates)

Week 3: (see the calendar for dates)

An Example specification (C4)

THE CASE FOR COMPONENTS

The business case for components (C5)

Project Discussion: The Virtual Classroom

Exercise 2 (due dates)

Week 4: (see the calendar for dates)

Project Discussion: Standard interface for the Virtual Classroom

Project Discussion: Use Virtual Classroom to discuss Term Project

Exercise 3 (due dates)

Week 5: (see the calendar for dates)

THE DESIGN OF SOFTWARE COMPONENT INFRASTRUCTURES

Software components and the UML (C14) Component infrastructures (C15)

Project Discussion: The Chronobot and presentation on Chronobot. To do the project, please use chronobot web service.

Week 6: (see the calendar for dates)

Business components (C16) Components and connectors (C17)

Exercise 4 (due dates)

Week 7: (see the calendar for dates)

An OPEN process for component-based development (C18)

SOFTWARE SYSTEMS

Software architecture (C20) Software architecture design principles (C21)

Week 8: (see the calendar for dates)

Midterm Review

Midterm (see the calendar for dates)

Exercise 4 example

Week 9: (see the calendar for dates)

Project Discussion: Use Virtual Classroom to discuss term project (dates)

projects for class of 04 and projects for class of 06

THE MANAGEMENT OF COMPONENT-BASED SOFTWARE SYSTEMS

Measurement and metrics for software components (C23) Configuration management (C29)

Week 10: (see the calendar for dates)

COMPONENT TECHNOLOGIES

CORBA (C31) and a simple example

Project Milestone I to define messages for interface

Week 11: (see the calendar for dates)

COM+ (C32) and more examples

JavaBeans (C33) (see http://www.jsptut.com/ for a JSP tutorial)

Week 12: (see the calendar for dates)

Project Milestone II to test your component using the remote control (Java version, please download and unzip). Please read the tutorial on how to use the remote control. A C++ Interface for the components (works with the Remote Control 1.0) is provided, which has been tested with GNU's g++ compiler on elements machines. Finally, you can test the interaction between two or more components using the Super Remote, which is like the remote control but allows for the communication between components.

GNOME (C34)

Choosing between COM+, EJB, and CCM (C35)

Week 13: (see the calendar for dates)

Software agents (C36)

CONCLUSION

Summary (C41) and future of CBSE (C42)

Final Review

Week 14: (see the calendar for dates)

Project Demos and Presentations (see the calendar for dates) [presentations will be according to the order listed below]

Final Exam (see the calendar for dates)

Final Thought: The master programmer moves from program to program without fear. No change in management can harm him. He will not be fired, even if the project is canceled. Why is this? He is filled with the Tao. -- Geoffrey James, The Tao of Programming


Note: The chapters C1, C2, and so on, refer to the book, Component Based Software Engineering: Putting the Pieces Together, by George T. Heineman and William T. Councill, Addison-Wesley Pub Co; 1st edition, June 8, 2001, ISBN: 0201704854. (Hardcover 818 pages, List Price: $54.99, used books from $15.19. Order from amazon.com)