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, which is a tool to create UML diagrams. The official website is: http://argouml.tigris.org/ and there is also a well-written extensive Argo UML user manual. The reference book is, Visual Modeling with Rational Rose 2002 and UML)

DEPLOYMENT DIAGRAM

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)

Exercise 2 (due dates)

Week 4: (see the calendar for dates)

Project I/II Preliminaries: Standard interface for testing the system

Project I/II Preliminaries: Personal HealthCare System

Project I Discussion: Mobile phone voting system

Project II Discussion: Personal PetCare System

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)

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)

Project Milestone I to define messages for interface

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.

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

Project Milestone II to test the system

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 Basic Concepts with Programming Example and More Details (C31)

Week 11: (see the calendar for dates)

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

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

Project Demos (see the calendar for dates) [Every group must give a live demo AND a presentation]

Week 12: (see the calendar for dates)

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)

Week 14: (see the calendar for dates)

Final Review

Week 15: (see the calendar for dates)

Project Presentations (see the calendar for dates) [Every group must give a live demo AND 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)