Principles of Software Architecture & Design
Unit 1 - Quality, Tactics, Design & Documentation
Fall 2003 (2003-1)

Unit Questions

  1. 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.
    1. Reliability - the probability that the system will function correctly (i.e., produce correct results) over a given period of time.
    2. Evolvability - the degree to which the system can be enhanced to meet new needs.
  2. 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.
  3. Answer question #2 in section 4.10 of the text on page 98 (re: conceptual integrity). Note that this is a four part question.
  4. 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.
    1. Availability: Rollback
    2. Modifiability: Runtime registration
    3. Performance: Maintain multiple copies
  5. 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.
  6. 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.
  7. 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.