This assignment is to be performed individually. Informal
discussions with classmates are acceptable; however, all submitted
work is to be your individual work.
Assignments are to be submitted in the ELEC 372 assignment drop
box, located outside Goodwin 235, by Friday April 6 at 1:00 PM. A
solution will be posted shortly after the assignments are collected,
so we will not be able to accept late assignments. Note that printers
often become backed up shortly before assignment submission deadlines
- please take this into account in your planning.
Note: the answers to the questions in this assignment DO NOT
require any code to be written. The answers are based on identifying
and describing large components in your design, and do not involve a
detailed code-level design. A "high-level" architectural design is
produced during the first iteration of design drawn from the
requirement specifications and should not contain any code-level
details.
Assignment # 4
Software Architecture
- The Mary Shaw paper "Some Patterns for Software Architecture"
describes a number of software architectural styles identified
from industry applications:
http://www.cs.cmu.edu/afs/cs/project/vit/www/paper_abstracts/PLoP95.html
This paper provides an alternative source to the readings assigned
from Bass/Clements/Kazman.
- In the table below, give an example of a type of
application that would be best designed using the given
architectural style. (You may draw from the applications
presented in class.) For each case, consider the quality
attributes of running time, verifiability, and reusability
(i.e., replacing existing components, portability, adding new
components) and provide brief comments on how those qualities
are affected by the architectural style.
|
Architectural Style
|
Your Example
|
Comments on Reusability
|
Comments on Running Time
|
Comments on Verifiability
|
|
Layered
|
|
|
|
|
|
Data Centred
|
|
|
|
|
|
Event Driven
|
|
|
|
|
- Suppose you have three components, A, B, C, that you are
trying to compose into a system as shown in figure 2 (below). One
of the commonest problems when composing components is the fact
that often they do not agree on how the data should be
represented. Suppose you have the following characteristics for
your system:
- component A is written in-house and you have the
source for component A
- you don't have the source for components B and C
- the format of the output from A follows a company wide
standard
- the output from B and C are not in the company standard
format
- the input to C is in the company standard format
- component A may be replaced in the future by a third-party
component
- all three components work independently
- the final output from the system has to be in the company
standard format
- the company standard format may change in the future
The Mary Shaw paper, "Architectural Issues in Software Reuse: It's
not just the Functionality, It's the Packaging"
http://www.cs.cmu.edu/afs/cs/project/vit/www/paper_abstracts/Packaging.html
describes several techniques for resolving data mismatches
between components. Fill in the following table showing what
choices you would make to get the components of this system
working together (There is no one correct answer.)
|
Data Flow
|
Adaptation recommended by you (if one required)
|
Reason for this choice
|
|
Input to C
|
|
|
|
Output from C
|
|
|
|
Input to A
|
|
|
|
Output from A
|
|
|
|
Input to B
|
|
|
|
Output from B
|
|
|
- (Courtesy of Maj.Greg Phillips, RMC) In response to complaints
about a lack of intelligence analysis capability, the Department
of National Defence initiates a multi-billion dollar project
called RABID CALF: the Really Astoundingly Big Intelligence Data
Collection and AnaLysis Facility. By means of a highly structured
requirements elicitation and validation process (performed by a
bored clerk on a cocktail napkin over lunch) the following set of
critical information system requirements are identified:
- Intelligence information data elements will be received in
three formats: high resolution reconnaissance photographs, voice
recordings, and text-based field reports.
- Each received data element must be automatically preprocessed
(e.g., the voice recordings will be filtered to remove
background noise). Each data format will require a different form
of preprocessing.
- Each data element must be manually validated and have
"meta-data" attached to it. This might include, for example,
keywords, locations, times and dates added to reconnaissance
photographs.
- All data elements and associated meta-data are to be retained
in an online intelligence library.
- Due to the volume of data, much of the analysis will be
performed by "intelligent" software. There will be a large number
of software agents constantly analysing the data and adding their
results to the online library. The number of agent types is
expected to increase over time as new software is developed.
Initial software agent types are:
- image feature recognizers, which will detect and identify
items of interest in reconnaissance photographs;
- transcribers, which will produce textual versions of voice
recordings;
- collators, which will identify and group related images,
voice recordings, and field reports based on meta-data,
contents, and the results of other analyses; and
- trend analysers, which will identify significant trends
over time or space.
- A separate interface will allow human intelligence analysts to
browse and search the library. It will direct their attention
towards elements or groups of elements identified as interesting
by the software agents. Based on their analyses, the human
analysts may add further information to the library.
- Periodically, a high-level summary report must be generated
for the Department's senior intelligence officer, the Director Of
Stuff You DOn't talk about (DOSYDO).
After you make the mistake of beating her at golf one afternoon,
your boss tasks you with designing a high-level architecture
for RABID CALF's information system.
- Identify an appropriate architectural style to use as
the core architecture for the system. Justify your choice. If
there are identifiable subsystems with other architectural styles,
explain what these are. (This explanation should be around a half
page in length.)
- Produce a high level architectural diagram for the RABID CALF
information system. It must include all components necessary to
carry out the functions indicated in the requirements. Clearly
label each component and connector in such a way that it is clear
what role the component or connector is playing. See figure 1 for
an explanation of the symbols to be used in your diagram.