CMU CS 15-675 Architectures for Software Systems Spring 1998

F1: Formal Models for Data Flow

with answers

Garlan & Kazman Questions on Readings for Lecture 8 Due: Wed Feb 11, 1998

The papers:

[AG97b]: A Formal Basis for Architectural Connection.

[SG96]: Sections 8.3.3, 8.3.4, 8.3.5.

Hints:

Note: as with all of the formal modeling assignments in this course, this assignment is requires more work than a usual reading assignment, and it is due the week after the lecture. (The grade for it is correspondingly more significant -- 3% of the grade, not 1%.)

I suggest you start with [AG97] first. Pay most attention to Sections 1-6 and 13-14. Sections 7-12 involve more mathematics: skim those sections for the main ideas, but don’t get hung up on the details. I will review of the essential ideas from these sections during the lecture.

The sections from SG96] should be pretty straightforward after reading AG97b, as there is a fair amount of duplication.

If you find that the formal notation is completely unintelligible, consider doing a little background reading on CSP. [Hoa85] C.A.R. Hoare. Communicating Sequential Processes is on reserve in the library, and there are probably a number of copies floating around the MSE.

 

Questions:

  1. Produce a Wright specification for a "merge" filter, similar to the "split" filter in Section 8.3.3 of the text. Explain what issues are raised by the specification and how you resolved them.

 

 

 

TBD

  1. Referring back to the Pipe and Filter reading by Buschmann et al., describe a "pull" pipe: i.e., one that permits a downstream filter to pull data from its predecessor.
  2. TBD

  3. Describe a system of two filters and a single pipe that capitalizes every character in a stream and removes every other character. (You can reuse the pipe you specified in 2.) Does it matter which order these two filters are in? If so, do you think the formalism would permit you to prove that the two configurations are functionally the same? If not, could the formalism help detect a counter example?

TBD: note function versus performance