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.

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. Autosar is a reference
architecture for automotive-based software products. Why does a consortium of
car companies want to produce a reference architecture
instead of a product architecture as a joint venture?

b. There are
three standard architectural structures: module, component/connector, and
allocation structures. Give an example of how each is represented in AADL.

c. What is the
difference in the types of reasoning that an architect can do based on the
static architecture and on the dynamic architecture? (DO NOT DEFINE STATIC AND
DYNAMIC, JUST THE DIFFERENCE.)

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

states

reading: initial final state;

error: complete state;

powerDown: complete state;

transitions

reading-[]->reading{measurementOut!};

a.
They share the cost of developing the reference architecture
with others and then specialize to their own product without sharing

b.
Module – system; c/c – subcomponents and
connectors; allocation – actual processor binding

c.
Reasoning about modules as opposed to
subcomponents

d.
This defines a state machine with three states
and one transition of one of the states to itself. After each transition the
value in the measurementOut port is dispatched

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

a. The feedback/control
loop style is used with related sensors and actuators. Why is latency an
important property in this style?

b. ADD provides a
process for creating an architecture based on the importance of quality
attributes. ADD is iterative. For a particular iteration how does the architect
choose the next architectural element to address? For example in my wireless
charging design work I first tackled the Feedback Control Loop that manages the
power of charging. Why was that appropriate?

c. The
publish/subscribe pattern sends data through a communication link from one
element to another. This pattern can have an issue if the sender is executed at
a higher frequency than the receiver. How can we ensure this is not an issue in
our architecture?

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

error propagations

measurementIn:in propagation{BadValue};

flows

ef1:error sink measurementIn{BadValue};

end propagations;

a.
Latency is
important to ensure that the sequence of actions is carried out in the correct
order.

b.
Safety was the top quality attribute and the
feedback control loop ensured safety

c.
By setting the period property on the publish and subscribe threads to be the same.

d.
This segment defines the error propagations for
a module. In this case BadValue is propagated in from
modules that attach to the measurementIn port. There
is a flow of error within the module that handles BadValue
and does not pass it on.

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 and
modifiable. What makes MVC flexible and modifiable?

b. Availability
is the probability of being ready to execute when needed. Describe one tactic
for making a system more available.

c. A tactic is 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 decomposition tactic is applied and what is unchanged.

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

thread Monitor_behavior

features

measurementOut:out data port;

resume:in data port;

a.      The low level of coupling and well deifned modularity; both of which separate concerns.

b.     Mirror the application in multiple
environments

c.      The number of modules is changed. Most of the
architecture is unchanged except for connections to the old module that was
destroyed and replaced by new modules.

d.     This is a thread definition for a thread
that has one in port and one out port. Both are data ports.

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

a. How is a reference architecture used to make a product-specific
architecture?

b. The quality
attribute scenarios contribute to the system’s requirements. What do the
stimulus and stimulus response communicate with respect to requirements?

c.   A
design decision results in the selection of a tactic to apply. List at least
two criteria for deciding which tactic to use.

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

c3: port controller.commandOut->monitor.commandIn{Latency=>5ms..20ms;};

flows

f1:end to end flow controller.f3->c3->monitor.fromController{Latency=>5ms..20ms;}

a.
The extends and “revised to” AADL elements
illustrate the process in which generic module definitions are made more
specific

b.
The stimulus is the source of input into the
system. Stimulus response is the action the system takes in response to a
specific stimulus

c.
1. What quality attributes will it enhance; 2. What
quality attributes will it degrade

d.
C3 is a connection definition that specifies one
way the controller module interacts with the monitor module; the flows section
specifies how data flows across several modules within the module where the
flow specification is located. There are two modules and a connection between
them. The flow runs from the source flow in controller across th ec3 connection and into the sink
flow in monitor attached to the fromController report.
The latency properyy is constrained to 5 – 20 ms

5. use
cases and views

a. What are the
differences between an element in the static, logical view of the architecture
and an element in the dynamic, concrete view?

b. What is the
relationship between the use cases for a product and the AADL model for that
product?

c. Service
oriented architecture is an architectural style. Describe how using this style
affects an architecture with respect to latency and
security.

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

properties

Actual_Processor_Binding=> (reference (cpu.part1))
applies to controllingProcess;

Actual_Memory_Binding=> (reference (mem))
applies to controllingProcess;

a.
The static logical is specification while the
dynamic, concrete is instantiation of that specification

b.
The use cases are flows in the AADL model

c.
SOA adds to latency if it must dynamically
discover the service to use. It degrades security if dynamic discovery is
used.  If no dynamic discovery is used
then latency is still degraded a bit due to the need to look up the service
locally but security is not degraded.

d.
These property specifications constrain how the
logical can become concrete by restricting the process to be located on a
particular cpu and to use a
specific memory.