CS446 [CS646] Software Design and Architecture Fall 1997

Prof Ric Holt, Department of Computer Science, Waterloo University

MIDTERM: CS446 [CS646] Software Design and Architecture

24 Oct 1997
                                                Q1 [25] _______
                                                Q2 [10] _______
                                                Q3 [ 5] _______
                                                Q4A[10] _______
                                                Q4B[10] _______
                                                Q4C[10] _______
                                                Q4D[10] _______
                                                Q5A[10] _______
                                                Q5B[10] _______
                                             TOTAL[100] _______
Answers should be clear and brief. Please use good grammar and spelling.

1. [25 points] Compare and contrast the architectural styles that Garlan & Shaw call "Pipe and Filter" and "Layered". Contrast, their kinds of components and connectivity, classical diagrams of them, standard examples of them and their relative (dis)advantages.

2. [10 points] Using examples, explain the difference between a software architectural style and a standard (or reference) architecture.

3. [5 points] What is Conway's Law? In term's of the presentation of the architecture of the disk drive system given in class, explain how this law was or was not obeyed.

4. Part A. [10 points] The following tuples signify static dependency relations between 4 modules: M1 D M2, M1 D M3, M2 D M3, M3 D M4 The following tuples are containment (modules by subsystems): SS1 C M1, SS1 C M2, SS2 C M3, SS2 C M4 There is also the entire system S, S C SS1 and S C SS2. (C is tree). Give a diagram for this system that makes clear all its relations. Give a legend (explaining your diagrammatic conventions).

4. Part B. [10 points] Give a schema (TA scheme presented as a diagram, or E/R diagram), that characterizes the type of system described in part A of this question.

4. Part C. [10 points] In the diagram for part A, let F be D backwards. Let G = F+ (non-reflexive transitive closure of F). Draw G (not F) on your diagram. (You may want to make a separate copy of the diagram here to avoid confusion). 4. Part D. [10 points] There are these permission edges to be applied to system S:
    I (import):  SS1 I SS2, SS1 I M3 
    B (export to buy): M2 B SS1
These are the rules, R1, R2 and R3, defining the permision given by I and B:
    R1:  B <= P             (<= means subset, P is C backwards,
                                    ie Parent)
    R2:  I <= S union I . C (I is a subset of the union of S and
                                    the composition of I with C)
    R3:  D <= B . I         (D is a subset of the composition of B with I)
Question: Draw the I and B edges on the diagram for Part A. (You may want to make a separate copy of the diagram here to avoid confusion). Let D' be the set of all possible (allowed) D tuples (not just the ones given by the tuples in Part A). Give the list of the tuples in D'. Does the system satisfy permission rule R3? Explain why or why not.

5. Part A. [10 points] Parnas says of his KWIC index "Modularization 2": "Line storage is on level 1 ... Input and Circular Shifter require line storage for their functions. Output and Alphabetizer will require Circular Shifter ... " Draw this architecture (modularization) as a box and arrow diagram (with a nice presentation), with a legend clearly stating the meaning of lines, edges and nodes.

5. Part B. [10 points] Parnas lists "design decisions ... likely to change" for his KWIC index system: Explain why "Modularization 2" is a good decomposition, in terms of Information Hiding (as the term is used by Parnas in his paper).