CpSc 875

MidTerm 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.
    1. What operation did we use to integrate the 4 tier architecture style with the model-view-controller architecture?
    2. We discussed the Container architecture with respect to the social networking software. What is one benefit of the Container style? In Figure 1 there is a box marked Servant located inside the Container. This is the service we want to use. How does having the services in the Container improve the architecture?
    3. The CORBA architecture is shown in Figure 1. Line A in the architecture represents a pipe and filter view of the architecture. What are the filters along the flow?
    4. Identify another fundamental style used in the architecture given in Figure 1. (Not a Container and not pipe and filter) Describe which parts of the drawing in Figure 1 correspond to which parts of the standard style.


Consider the object request broker architecture below.


Figure 1 – Broker architecture pattern


a. Composition

b. A benefit of the container style is the availability of infrastructure in one place.

c. The IDL stubs, orb core, portable object adapter, IDL skeletons, and container

d. layers


  1. The content of the architecture is the most important aspect of our work.
    1. The modes of a product include normal operational modes and error modes. In a correctly functioning product, when one module emits an event, the receiving module must be in the correct mode to receive it. What architectural structure can be used to help us describe this? 
    2. The use of simulated execution of the architecture is intended to reduce risk. Give a complete statement of what the risk is. Explain how the simulated execution reduces the risk.
    3. There are static and dynamic views of the logical and physical architectures. Pick two of static/logical, static/physical, dynamic/logical, and dynamic/physical and give examples of them from the iTiger architecture. How does AADL bring the logical and physical architectures together?
    4. How do we accommodate a piece of software that is brought into the project from the outside and imposed on the architecture but it does not completely replace all of each module it touches? For example, the web server, which cuts across the presentation layer and business layer.


  1. Constraints; The Guard_In and Guard_Out constructs capture the idea that we need a constraint to express the need to only transmit data that the receiver is ready to handle

b. There is the possibility that a flow will not be complete, but the architecture is too complex for it to be readily visible. Initially the probability of this happening is small but increases rapidly. Making changes to a complex architecture that is not understood can take a long time and be expensive. Running simulations reduce the likelihood that a flow is incomplete without us knowing about it.

c.static/logical – a system definition

    static/physical – the declaration of a device, memory, bus, etc

    dynamic/logical – a subcomponent declaration

    dynamic/physical – an instance of a processor or memory, etc

d.The existing architecture modules are decomposed along the boundaries of the piece of software being brought in.

  1. We are using Attribute Driven Design as the approach to architecture design.
    1. How are the requirements for a product introduced into the architecture design process?
    2. Describe the role of the Quality Attribute Workshop in addressing requirements?
    3. List three stakeholders in iTiger. Describe why each has a right to have a say in the architecture. What information will each one contribute that others can not?
    4. A tactic is a specific modification of the architecture. You can think of it as a transformation from one architecture to another. List one tactic we have applied. Describe what the tactic changed about the architecture. What about the architecture was improved by that transformation?

a.requirements are used to define scenarios

b. The QAW addresses the non-functional requirements. The QAW provides a process that helps prioritize those requirements.

c. game attendee, replay tager, athletic director

game attendee – this person is paying for the service; they know what they are willing to pay for

replay tager – this person is creating content for the service; this person knows the technology that is available to format content for the users

athletic director – this is the person with the original idea; they have the initial vision which no one else has; they know the original business model

d.redundancy is a tactic to improve reliability;it provides multiple ways to accomplish a single task so that if one is unavailable the other approach can be used


  1. An engineering decision is made carefully and on the basis of evidence.
    1. Consider the decision about where to place the social network interface in our architecture. What criteria were used to make that decision? Why were they important criteria?
    2. How is the quality of such a decision evaluated?
    3. How do the ArchE and AADL models help make that decision?
    4.  We often begin with a standard architecture, like the 4 tier model, but then we modify it to tailor it to the specific problem.  List at least two fundamental operations that we could apply to that standard architecture to modify it. Describe what each does.


a.The architecture drivers were the criteria, in particular the highest priority quality attributes; they were important because we had worked with all the stakehiolders and these were the qualities they most wanted

b.by how much each quality was enhanced

c.These models give us a basis for tracing through different paths to determine which would be the longest, which has the most dependencies that must be changed, etc

d.composition and decomposition – composition allows us to add modules to the existing architecture as we did with the social networking interface module; decomposition allows us to break up a module into smaller modules as we did with the MVC in the client

  1. We are using these tools for our work: The OSATE Eclipse plug-in for AADL, ArchE, and the ADeS and Furness simulators.
    1. Describe the sequence in which the tools are used. Describe the representation of the architecture at each point in the sequence.
    2. How is the output from ArchE used as input to the AADL model? In other words, how can the two models be compared to ensure they match?
    3. The ADeS simulator provides as output the occurrence of events and the modes of those threads. How can this output be used to improve the architecture being simulated?
    4. How does a “port” in AADL interact with connections and flows? What is the difference between a connection and a flow other than the obvious difference that one is internal to a system and the other is external?

a.The tool chain begins with ArchE followed by AADL; followed by the simulators; The representation is initially a set of scenarios which are decomposed into responsibilities and eventually to a network of responsibilities. This network is translated into a network of system declarations which are translated into a network of system instances

b. The network of responsibilities is used to identify “clumps” of responsibilities that become systems in AADL.

c. The architect examines the sequence coming from the simulator with the estimated times of service to see where time is being spent, where threads collide, etc. The model is revised to improve the throughput.

d. An in port serves as the recipient of event data from a connection and places the event data on a flow inside the element. Opposite for an out port. The difference is the intent. The connection plugs dissimilar things together while the flow provides the logic of the system.