Principles of Software Architecture & Design
Unit 1 - Quality, Tactics, Design & Documentation
Fall 2003 (2003-1)
Unit Questions
- Consider the following quality attributes of a software system. For each
attribute, state whether this should be subsumed under one of the six primary
attributes discussed in chapter 4, or whether the new attribute should be
considered primary in its own right. Include the rationale behind your
decision.
- Reliability - the probability that the system will function correctly
(i.e., produce correct results) over a given period of time.
- Evolvability - the degree to which the system can be enhanced to meet
new needs.
-
Assume you are designing a network performance
synthesis tool that retrieves information created by a set of discrete tools and
integrates this information for both performance modeling and threat detection
(e.g., denial of service attacks or attempts to locate network weak points).
Obviously, the ability of your system to interoperate with a set of existing and
future report tools is a critical property. Define two concrete scenarios
related to interoperability that would be useful in assessing your synthesis
tool's architecture, and provide a rationale for each scenario.
-
Answer question #2 in section 4.10 of the text on page
98 (re: conceptual integrity). Note that this is a four part question.
-
For each of the following tactics, give an example of a
system (other than one in the text) in which the tactic would be an appropriate
approach to achieving its associated quality; be sure to provide a rationale for
your answer.
- Availability: Rollback
- Modifiability: Runtime registration
- Performance: Maintain multiple copies
- The text states that "patterns implement multiple tactics, whether desired
or not", and gives an example from the Active Object pattern. Choose two
of the design patterns you know from previous courses and list the tactics
each pattern exhibits. Be sure to select patterns that incorporate at least
two tactics, and provide a rationale for both the pattern selection and the
tactics you associate with the tactic.
- The Air Traffic Control case study of the Initial Sector Suite System
presented the architecture from several perspectives or views. Consulting
these views, identify and describe two distinct architectural or
design patterns employed in the architecture.
- ADD is a top-down approach to defining an architecture meeting addressing
predefined quality attribute scenarios. Advocates of agile methods, on the
other hand, suggest "growing" an architecture from a core implementation that
evolves in small increments. Briefly describe a system for which ADD would be
more appropriate than the agile approach, then briefly describe a system in
which the agile approach would be more appropriate than ADD. In each case,
give a short rationale for your selection.