CpSc 8750

MidTerm Exam Key

 

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.

Write clearly if you expect to be graded correctly. Answer the question that is asked and then stop. I reserve the right to deduct points for wasting my time.

You are allowed the notes you have taken, handouts, and printouts of assigned readings but no laptops.

 

 

 


 

 

 1. We have discussed several basic architecture styles.

     a. Model/View/Controller (MVC) is a basic architecture for interactive systems. Which quality attribute would be a higher priority for a system using MVC latency or extensibility? Justify your answer.

     b. There are three standard architectural structures: module, component/connector, and allocation deployment structures. What is the relationship between the allocation deployment structures and the component/connector structures?

     c. List one quality attribute that is characteristic of the static nature of the software architecture of a product and one that is characteristic of the dynamic nature. Explain why each is important.

d.            Given the AADL fragment below. Explain in English what it says.

process my_client_process_sender

             features

                    out_data: out data port FullSystem::Integer_Type;

       end my_client_process_sender;

      

       process implementation my_client_process_sender.impl

             subcomponents

                    sender: thread my_client_thread_sender.impl;

             connections

                    sender_out: port sender.out_data -> out_data;

       end my_client_process_sender.impl;

a.      Extensibility because the intention is to be able to add new views and new controllers easily

b.      The deployment view shows the location of the componnets

c.      Static – modularity; dynamic latency

d.      Defines an OS process with one return parameter. It is implemented by defining one thread which computes the output parameter

 

 

 

 


 

 2. The content of the architecture is the most important aspect of our work.

     a. The client/server style is used as part of many internet e-commerce systems whose main style is n-tiered. How is the client/server style integrated into the tiered style?

     b. How should a requirement, which has a high degree of uncertainty, be satisfied in a design?

    c. The use of an intermediary facilitates flow from one entity to another. Give an example of using the intermediary in the software of a connected vehicle.

d.            Given the AADL fragment below. Explain in English what it says.

annex EMV2 {**

       use types error_library;

       use behavior error_library::stateMachine;

                   

       composite error behavior

             states

             [radar_handler.Failed and camera_handler.Failed]-> Failed;

             [radar_handler.Failed or camera_handler.Failed]->  Operational;          

       end composite;     

**};

a.      The client is associated with the tier closest to the user and the server encompasses the remaining tiers

b.      There should be clear traceability between the requirement and its realization in the code. The requirement can be implemented as a variation point with a high degree of modularity.

c.      One example is a filter between two different types of buses such as the CAN bus and the MOST bus.

d.      The error model for this component declares it will use existing type definitions from an error library; and does use a behavior model within that library. Also it defines a composite behavior that integrates the error behaviors for the radar and camera handlers

 

 

 

 

 


 

 

 3. We are using Attribute Driven Design (ADD) as the approach to architecture design.

     a. Model/View/Controller is useful for interfacing users to the system because it is flexible. What parts of the static architecture make it flexible at runtime?

     b. Reliability is the probability of successful execution. Describe one tactic for making a system more reliable.

     c. A tactic is applying a specific action on the architecture. You can think of it as a transformation from one architecture to another.  Describe what is changed in the architecture when the “decompose” tactic is applied and what is unchanged.

d. Given the AADL fragment below. Explain in English what it says.

memory Ram

features

             BA: requires bus access generic_bus;

       properties

             SEI::RAMCapacity => 512.0 MByte;

            

end Ram;

      

memory implementation Ram.impl

end Ram.impl;

a.      Views can register with the model as can controllers without any modifications to the model.

b.      Use the voter pattern with an odd number of different implementations and use the answer produced by  the majority of the implementations

c.      The decompose tactic produces at least two modules form the starting module. The feature set of the original module is divided among the new modules.

d.      This specifies a memory element that will attach to a bus to send and receive data. The memory unit has  a capacity of 512 megaBytes and uses a property defined in the SEI property set..

 

 

 

 

 


 

4. An engineering decision is made carefully and on the basis of evidence.

     a. When an ATAM identifies a sensitivity point how should the architecture team use that information to improve the architecture?

     b. What is the difference between a pipeline architecture and a layered architecture?

     c.   List two qualities, which if they were driving qualities in the project, would preclude the use of the blackboard architecture.

d.            Given the AADL fragment below. Explain in English what it says.

error propagations

       sensor_data_out : out propagation {InvalidValue};

       flows

             ef0 : error source sensor_data_out{InvalidValue};

       end propagations;

       properties

             emv2::hazards =>

             ([     failure => "InvalidValue";

                    description => "Invalid data from the camera";

comment => "Would impact the detection of obstacle if the camera is not working as well";

             ])

             applies to sensor_data_out.novalue;

a.      Decision conditions (if/while/case) should be carefully studied,  and tested thoroughly

b.      The difference is in how the sequence of actions is constrained

c.       Security and modularity

d.      Defines the way InvalidValue errors are passed out of the component containing this definition by defining an error output port and the start of an error flow. A hazard is identified as a property of the containing module when a NoValue error is encountered.                                   

 

 

 

 

 


 

 5. designing architectures

     a. What is the purpose of the composite error model in a system definition?

     b. How is the AADL construct of a “mode” useful in designing an architecture?

     c. Service oriented architecture is an architectural style in which the functional units of a system can be discovered at runtime. List one quality attribute enhanced by runtime discovery and one that is degraded by runtime discovery. 

d.            Given the AADL fragment below. Explain in English what it says.

subcomponents

  thermostat : system thermostat_th.impl;

  temperature_sensor : device temperature_sensor_ts.impl;

 

connections

  ct : port temperature_sensor.current_temperature -> thermostat.current_temperature;

  hc : port thermostat.heat_control -> heat_source.heat_control;

 

 

a.      The composite error model integrates the component error models for a set of subcomponents.

b.      Each mode is disjoint from the others so the functionality of the system is decomposed along mode boundaries simplifying the analysis of the complete architecture

c.      Flexibility; latency

d.      Two subcomponents are specified – one is a system and one is a device and both specify specific implementations to use; a set of connections is defined between these and other subcomponents