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 architecture styles such as pipe and filter and MVC. In some of the three products we used the J2EE architecture.
    1. How were the layered style, MVC style, and J2EE style integrated in the thin client product?
    2. The service oriented architecture (SOA) style is a relatively new style. Which attributes of CTAS would be enhanced by the use of SOA? Which would be degraded?
    3. How do two styles differ? That is, how can the architect look at two styles and choose between them?
    4. When there are alternatives in an architecture, such as our three types of clients, how is the set of variants represented in the AADL model? When does the selected variant get bound into the product?


  1. Elements of the MVC were composed within the top 2 layers of the layered style. J2EE was largely independent except that the client portion encompasses the Model part of MVC.
  2. Portability, maintainability, and availability are enhanced. Performance will be degraded.
  3. They differ in the profile of qualities they enhance/degrade.
  4. Each variant is at least defined in an implementation. Then an instance of that implementation is selected as a subcomponent in a system definition.




  1. We produced extensive documentation for our architecture.
    1. What is the difference between an allocation view of the architecture and a component – connector view?
    2. Which view would be best to use to explain to an interested stakeholder about how a particular use case is satisfied? Why?
    3. What is the relationship among view type, view, and view packet?
    4. Where does the binding of threads and processes to hardware get documented?


  1. Allocation view shows connections between internal and external entities while the component-connector view shows connections between internal elements.
  2. Component-connector provides the sequence of actions that satisfy a use case
  3. A view is an instance of a view type while a view packet is a subset of a view.
  4. Allocation view
  1. We used Attribute Driven Design (ADD) as the approach to architecture design.
    1. There are several criteria for dividing a module. List two. For each describe why that is a valid criteria.
    2. ArchE is intended to support ADD. How does ArchE support ADD?
    3. We used a layered approach to accommodate meta-data in the architecture. What attributes did this enhance? Which, if any, did it degrade?
    4. Describe one tactic that enhances modifiability. Use the stimulus-response form of description.


a.      separation of concerns – each resulting module is more simple increasing the likelihood it will be implemented correctly

abstraction – the more general module will facilitate reuse of general information


b.      ArchE provides automated reasoning about changes in the qualities that drive the architecture process

c.       “meta” is a form of abstraction so it enhanced modifiability and extensibility


d.      “information hiding” is a tactic that enhances modifiability


  1. We captured both the logical and physical architectures in AADL.
    1. Model Driven Development uses the platform independent model (PIM) and the platform specific model (PSM). Relate these two models to the architecture representations we have used this semester.
    2. List two risks that an ATAM of your system would have identified. What did you do to mitigate these risks?
    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. We had definitions in our model that included:  system/port/flows; thread/process/subprogram; and bus/memory/processor. How are these three groupings different? When should a model have all three groupings?



  1. the PIM is the set of packages of AADL that specify the architecture (shown in module view); The PSM is the system implementation that binds each element to a hardware entity(shown in the allocation view)
  2. (1) your understanding of the domain may be inadequate – mitigate by finding information on similar systems – references on the course resources page (2) the performance of a prototyped system may be inadequate – mitigate by introducing performance budgets
  3. (1) The CTAS user revises an existing itinerary by changing only the dates of travel, the system responds by using the flight numbers to cancel the old reservation and make a new one. This scenario illustrates the usability of the system. (2) The CTAS user cancels a guaranteed reservation, the system responds by canceling each segment and collecting and storing the cancellation confirmations for future use.
  4. The level of abstraction away from the hardware. A model should have all three groupings if either (1) the company produces hardware and software or (2) the product is resource constrained and the interaction between hardware and software needs to be carefully examined.


  1. We expanded our use of tools to include three tools for our work: The OSATE Eclipse plug-in for AADL, ADeS and ArchE.
    1. What architecture information does the AADL model capture that the ArchE model does not?
    2. How can we combine the information from the three tools to determine whether we are meeting the required quality attribute levels?
    3. What is different as we move from scenarios to responsibilities to functions?
    4. Give examples from CTAS for the sequence of scenario – responsibility – function.


  1. AADL captures the abstract structure of the architecture.
  2. ArchE is used to represent the initial scenarios for the product and the AADL model is used to capture the initial structure, usually a classic structure such as MVC independent of detailed scenarios. As the scenarios are used to identify more detailed responsibilities, the responsibilities can be captured in AADL by assigning them to the modules in the classic architecture structure. Where modules are too complex or too diverse, modules are decomposed and responsibilities split between the new modules. Eventually the scenarios from ArchE are mapped to AADL end-to-end flows to allow analysis of a simulated system using ADeS.
  3. The scope and level of granularity changes.
  4. Scenario – revise itinerary; responsibility – retrieve itinerary; function – database access