CIS 788.12I:
Software Component Engineering


Description

Component-based software from client's, implementer's, and designer's perspectives; container components; data representation; reasoning about the behavior of component-based software.

Level and Credits

Prerequisites

Quarters Offered

General Information, Exclusions, etc.

Objectives

Texts

Topics

Number of Weeks Topics Readings
1 Templates; instantiates relation; component coupling diagrams and code; instantiation diagrams and code; Set and Sequence components [W98] Set, [W98] Sequence
1 Checking components; checks relation using templates; Queue component [W98] Queue
1 Extensions; extends relation using templates; toolkit classes; sorting Queues Handouts
1 Stack component; how recursion works; Record and Partial_Map components [W98] Record, [W98] Partial_Map
1 Loop invariants [W98] Chapter 6, [W98] Stack
1 Performance analysis; analysis of algorithms Handouts
1 Representation; encapsulates relation; convention and correspondence Handouts
1 Array component; hashing to implement Partial_Map; fully parameterized components; uses relation; partial instantiation; specializes relation Handouts, [W98] Array
1.5 Pointers and dynamic storage; List component Handouts, [W98] List
0.5 Review and exams  

Representative Lab Assignments

Week Lab Topic
1 Pretty printer using HTML
2 Sorted table generator for HTML
3 Medical information processing
4 Pizza delivery service
5-6 Automated glossary generation
7-8 Partial_Map represented using Array of Queue of Record (hashing)
9-10 List represented using "raw C++" pointers

Grading Plan

Midterm Exam 20%
Final Exam 30%
Homework Assignments 10% (total of many)
Closed Lab Assignments 9% (9 @ 1% each)
Lab Assignments 28% (7 @ 4% each)
Class Participation 3%

Important Note: A passing grade on the final exam is required in order to receive a passing grade for the course.