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)

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

VISUAL MODELING WITH UML

(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 I/II Discussion: The Virtual Classroom

Exercise 2 (due dates)

Week 4: (see the calendar for dates)

Project I/II Discussion: Standard interface for the Virtual Classroom

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 I Discussion: The Chronobot and presentation on Chronobot. To do the project, please use chronobot web service.

Project II Discussion: Personal HealthCare System

Week 6: (see the calendar for dates)

Business components (C16) Components and connectors (C17)

Exercise 4 (due dates)

An OPEN process for component-based development (C18)

Week 7: (see the calendar for dates)

SOFTWARE SYSTEMS

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

COLLABORATION TECHNOLOGIES

Week 8: (see the calendar for dates)

Midterm Review

Midterm (see the calendar for dates)

Week 9: (see the calendar for dates)

Project I Discussion: The generic project that all components must fit in. (See examples of projects for class of 04 and projects for class of 06)

Project II Discussion: How to design an ontology knowledge-base

THE MANAGEMENT OF COMPONENT-BASED SOFTWARE SYSTEMS

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

Week 10: (see the calendar for dates)

SERVICE ORIENTED ARCHITECTURE SOA AND WEB SERVICES

COMPONENT TECHNOLOGIES

CORBA Basic Concepts with Programming Example and More Details (C31)

Project Milestone I to define messages for interface

Week 11: (see the calendar for dates)

Basic Concept of Slow Intelligence Systems

COM/COM+/.NET Basic Concepts (C32) and Programming examples (C32a)

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

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) [Every group must give a live demo OR a presentation]

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)