CpSc 875

MidTerm Exam

 

Name________________________________

 

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 eliminate 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. Answer the question that is asked and then stop. You are allowed the textbook, notes you have taken and handouts but no laptops.

 


 

  1. We have discussed several basic architecture styles.
    1. Why did we decompose the server component of our system into business logic and database server components? Which qualities does it enhance and which does it degrade?
    2. We discussed a service-oriented architecture with respect to the surgical planning software. Why expose the algorithms for modeling the heart as services? What is the difference between exposing them as services or as web services?
    3. The Model-View-Controller style is used for the interactive portion of a product. Which qualities does it enhance and which does it degrade? How does the phrase “this window has the focus” relate to the MVC architecture?
    4. How can the AADL model be used to evaluate an architectural decision?

 

 

We decomposed the one component into two because it enhanced qualities we care about for this system and degraded only qualities that are of lesser importance. In particular this enhanced security, separation of concerns, and organizational structure and maybe degraded performance a bit but a cache might be used to offset the performance penalty.

 

We decided to expose algorithms as services to allow us to compose various configurations of our product. Exposing the algorithms as web services would decrease security while ordinary services could be private to our application.

 

MVC enhances maintainability and simplicity but degrades performance. The phrase “this window has the focus” indicates which view is receiving events from the controller.

 

An AADL model provides a representation that provides a structure that can be used to evaluate static properties such as modularity and provides a means of defining a totally bound system which can be used to evaluate dynamic properties.

  1. The content of the architecture is the most important aspect of our work.
    1. The numerical modeling in our system can be in the client or in the model. What factors should be considered in the decision on where to place the modeling?
    2. We looked at the OPAL reference architecture. What is the value of a reference architecture to the process of creating the actual product architecture?
    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 surgical planning architecture. How does AADL bring the logical and physical architectures together?
    4. What qualities does the layered architecture style enhance? Degrade?

 

The highest priority is which placement will result in the greatest accuracy. The second is which will result in the most secure system.  After the high priority qualities comes the cost of a server capable of handling multiple modeling sessions simultaneously vs an individual client capable of handling a single modeling session.

 

The reference architecture provides a readymade decomposition that reflects the qualities that are usually important in an application in the domain represented by the reference architecture.

 

Static/logical – definition of a patient history

Static/physical – the process definition for computing the model for a patient

Dynamic/logical – a flow that represents registering a new patient in the database

Dynamic/physical – the process bound to a specific processor, bus, and memory

AADL brings the logical and physical together by declaring instances of the logical definitions

 

The layered architecture enhances the separation of concerns and the separation of the logical from the physical; degrades performance


 

  1. We are using Attribute Driven Design (ADD) as the approach to architecture design.
    1. How can we ensure that the architecture is complete with respect to the requirements?
    2. Describe the role of a reasoning framework in ADD?
    3. List three stakeholders in the surgical planning product. Are there stakeholders who are not actors in the use case model? 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. We used an “interface” tactic. What was transformed and what was the end product of that transformation?

 

 

You ensure the architecture is complete by having a process that starts by creating use cases and checking that every requirement is mapped to at least one use case. Then check that each scenario from each use case corresponds to a path in the architecture.

 

A reasoning framework defines what is meant by a specific quality by defining an analytic theory that is used to estimate the level of the quality provided by the architecture.

 

Client – what price point must we hit to attract buyers

Surgeon – what data will be needed to plan the surgery

Researcher – defines the required accuracy of the product’s ouput

Yes

 

We used the interface tactic to transform the business logic portion of the architecture to have a connection to a computational resource such as a grid or a hardware co-processor or the just the local processor.

 

  1. An engineering decision is made carefully and on the basis of evidence.
    1. Consider the decision about where to place the computational grid interface in our architecture. What criteria were used to make that decision? Why were they important criteria?
    2. What is the purpose of having ports on structural elements, such as systems, processes, and threads, in AADL?
    3. How does the ArchE model help make decisions about the architecture?
    4. We begin with a definitional view of the architecture and then we create an instance. Why must we instantiate the architecture in order to conduct a latency analysis?  What appears in the instance that does not appear in the definitional view?

 

 

Our decision was based on the top two criteria: accuracy and security. They are important because they are the choice of the stakeholders.

 

A port provides a typed point of entry and exit. It makes type checking of inputs and outputs possible. The set of in ports defines the requires interface and the set of out ports defines the provides interface.

 

The ArchE model contains all of the responsibilities needed to represent the scenarios from the use cases that specify the product. Each reasoning framework defines a specific set of relationships particular to that quality attribute. ArchE has a graph for each framework. The analytic theory for the quality attribute defines how the graph is to be traversed to estimate the value of the quality attribute it the model architecture. ArchE then uses an expert system engine to suggest tactics related to that attribute to try for modifying the graph. ArchE also provides guidance in the form of green/red triangles that indicate whether the chosen tactic improves the level or not.

 

The definitional view contains cardinality information but it is not until we instantiate a specific number of each architectural element that dynamic attributes can be estimated.


 

  1. We are using these tools for our work: The OSATE Eclipse plug-in for AADL, ArchE, and the Topcased implementation of the use case diagram.
    1. How are the quality attribute scenarios in ArchE represented in the AADL model of the architecture?
    2. What do we do in AADL to provide an allocation view?
    3. What is the relationship between the concepts represented by a “process” and a “system” in AADL? Between a thread and a process?
    4. What is the difference between using the output from ArchE as the initial input into making the AADL representation as opposed to taking a standard architecture style such as the three tier style as the starting point?

 

 

A scenario is represented as an end to end flow

 

One approach is to use the “Actual… “ bindings to allocate a conceptual element to a specific physical element such as a processor or bus.

 

A system is a conceptual element that encompasses the operating system entity of a process. A system may contain multiple processes. A process encompasses one or threads as “light-weight” processes.

 

In the first approach the graph of detailed responsibilities provides estimates on those attributes for which we have reasoning frameworks. These must be grouped into components to improve performance and certain other attributes. In the second approach the standard architecture gives a high-level large grain size set of components that must be decomposed to improve certain attributes often degrading performance.