CMU CS 15-675 Architectures for Software Systems Spring 1998

Software Architecture in Perspective

with answers

Garlan & Kazman Questions on Readings for Lecture 2 Due: Wed Jan 14, 1998

The papers:

[SG96] (the textbook): Chapter 1, do a quick scan of Chapter 2

[DK76]: DeRemer and Kron (1976): Programming-in-the-Large Versus Programming-in-the-Small, Sections I to IV only.

[PN86]: Prieto-Diaz and Neighbors (1986): Module Interconnection Languages

Hints:

The SG96 readings set the stage for the course. They discuss software engineering as an engineering discipline and the notion of architecture as it applies to systems in general and software in particular. Read in order to understand the problems and motivation for software architecture.

We will read Chapter 2 in detail in various parts of the course. For now, look through it so you grasp the main idea. At least read the first paragraph or two of each section and look at the pictures.

Read the other two papers (DK76 and PN86) for the big ideas about system organization and resulting benefits. Do not get bogged down in the notation of DK76, Section V. In PN86, scan sections 3.2 to 3.4 and sections 4.1 to 4.8 to get a flavor of the problems they solve, but do not get bogged down in specific notations (do read the rest of PN86).

In all these daily homework assignments, be concise and to the point. It will be exceedingly rare for any of these questions to require more than half a page of response. Rambling answers with irrelevant detail will not be received warmly.

Questions:

1. What is the framework used by SG96 to describe architectural styles? That is, what structure do they impose on answers to a question such as "what’s this architecture?"?

"An architectural style defines a vocabulary of components and connector types, and a set of constraints on how they can be combined. For many styles there may also exist one or more semantic models that specify how to determine a system's overall properties from the properties of its parts.

2. How do engineering disciplines evolve?

This comes directly from Figure 1-2 on page 8 of Shaw and Garlan (SG96).

3. In discussing MIL75, both DK76 and PN86 mention that dealing with "External Scope" is an important objective of the language. Explain external scope, identify the elements of the MIL "universe" with which it is concerned, and provide a specific reason why it is useful.

External scope defines which "resources" in each "module" (or "subsystem") are known to other "modules". Identifying resource dependencies allows for automated consistency checking of usage links, identification of those modules possibly affected by changes local to one module, organization of hierarchical testing, etc.


Back

Heather L. Marko

Modified: 5/18/98