CpSc 875

Final Exam




Answer any FOUR of the five questions. Place a large X on the page for the question you are not answering. If you answer all five, I will not count the one on which you did the best. All questions are counted the same: 25 points each. Be certain to answer ALL parts of the questions you select to answer. When a question refers to either the architecture you developed in the project or specific examples that we developed in class, be certain to answer using the correct system. You are allowed the textbook, notes you have taken and handouts but no laptops.

  1. We have discussed several basic architectures as our architecture of the day.
    1. Describe how we might use the Blackboard architecture style to add a chatroom capability to iTiger.
    2. The service oriented architecture (SOA) style is a relatively new style. Which attributes of iTiger would be enhanced by the use of a SOA? Which would be degraded?
    3. How do two styles differ? That is, how can the architect examine two styles and choose between them?
    4. When there are alternatives in an architecture, such as several types of video players, how is the set of variants represented in the AADL model? When does the selected variant get bound into the product?


  1. The Blackboard would be in the Business Logic layer since that is where the security gate is. It would also be located there because the Business Logic may have to make decisions about how to behave.  The chat capability would be an exposed interface that the client can interact with.
  2. Modifiability would be enhanced. Performance would probably be degraded.
  3.  Two styles differ in the attributes that are enhanced and those that are degraded.
  4. One way would be to use the extends relation between an abstract video player and the specializations. The variant gets bound when an instance is created as a subcomponent in an implementation.



  1. We produced extensive documentation for our architecture.
    1. How does the information in the module view, allocation view, and  component – connector view complement each other?
    2. Which architectural view would be best to use to explain to a developer what they are required to produce for their component?
    3. Where in the architecture definition process is the documentation created?
    4. How should the results of the simulations be used in the architecture documentation?


a. The module view shows static definitions of the dynamic instances shown in the component-connector view. The deployment view links the dynamic instances in the component-connector view to instances of hardware devices.


b. The module view that gives the provides/requires definition

c. The documentation is created as we go. The syntax of the AADL model forms part of the documentation.

d. The results of the simulation can be summarized in vol 1 of the documentation where the design rationale is given.

  1. We used Attribute Driven Design (ADD) as the approach to architecture design.
    1. How is applying ADD different in a product line environment from a single product environment? How is this handled in the architecture description?
    2. We used a tiered approach in the iTiger architecture. What attributes did this enhance? Which, if any, did it degrade?
    3. Describe one tactic that enhances performance. Use the stimulus-response form of description. Explain how your chosen tactic could be used in iTiger.
    4. How does ArchE evaluate the effectiveness of a tactic that was applied to the architecture model?


a.The architecture has to be able to support a range of attribute values rather than a single requirement.

b. The tiered approach made the design more modular and enhanced modifiability. It degraded performance and security.

c.A simulation has found a scenario for which the performance is unacceptable. The response is to streamline the sequence of modules that participates in the computation of that scenario by composing modules into a single module.

d. ArchE applies the analytic theory underlying the reasoning framework to the graph of responsibilities. The analytic theory is an algorithm that computes a value. By comparing to the previously computed value ArchE can determine whether the tactic moved closer to satisfying or further away.

  1. We captured several views of the architectures in AADL.
    1. Model Driven Development uses the platform independent model (PIM) and the platform specific model (PSM). How is each of these represented in AADL?
    2. List two risks that the ATAM of your system identified. What did you do to mitigate these risks? For each risk, why was it in the architecture to begin with?
    3. List two scenarios you would have created if you had conducted an ATAM on the system you architected. Give the rationale for why each was of sufficient importance to use. In other words, how would these two scenarios contribute to the evaluation of the architecture?
    4. Our architecture could be viewed as a definitional and as a deployed architecture. At the same time, it could also be viewed as being a logical and a physical architecture.  Fill in this table with examples from iTiger.






The specification part of any “system”.





The implementation part of any system.


A  specification of a device







A subcomponent that is bound in an implementation definition and used in a flow.


a.The platform independent model is basically any system specification. The platform specific model is any implementation that includes binding of hardware devices.

b. One risk might be that the architecture definition was too high level which can be mitigated by adding detail to the implementations of modules. Another risk might be that certain requirements were not described in the architecture. Add them.

c. S1: The iTiger user views a replay and sends a text message to a friend in another part of the stadium.

S2: The iTiger maintainer reviews the membership list and removes any subscriptions that have expired.

Each of these involves several actions in the system and the two do not overlap.

  1. We used several tools for our work: The OSATE Eclipse plug-in for AADL, ADeS, Furness, and ArchE plus analysis plug-ins.
    1. What types of defects does the AADL model allow the architect to find that the ArchE model does not? What defect information does ADeS provide that the AADL and ArchE models do not.  Be specific.
    2. How can we combine the information from the tools to determine whether we are meeting the required quality attribute levels?
    3. Give examples from iTiger for the sequence of:

scenario –> responsibility <–> function.

    1. Why does ADeS require that all processes and threads be bound before the simulation can be executed?

a.AADL allows you to spot interactions between modules where the information coming from one module does not match the type of information that the other module is expecting. ADeS can identify thread interactions that may result in deadlock.

b. ArchE gives a first indication that on average the attribute has been met. ADeS provides a more detailed, accurate estimate. Where ADeS shows that we are not meeting the goal we can return to ArchE and set the goal tougher and work to meet it.

c. S1: The iTiger user views a replay and sends a text message to a friend in another part of the stadium. => select video segment, stream segment, initiate play, responsibilities for video controles (play, rewind, pause…) => one function for each of those responsibilities

d. ADeS can not determine how long an operation will take until it knows the speed of the processor, the capacity and speed of the bus, etc.