CpSc 875

Exam 2

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 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 notes you have taken and handouts.

Model-driven
development uses tools to manipulate models.

a.      The
term XaaS, where X is software, platform, or
infrastructure, refers to a particular business model supported by an architecture. What attributes should the architecture
embody to support the service aspect? Why?

b.     OSATE
provides a number of analyses for an AADL model. Describe how to analyze the
coupling in a product, how its results might be represented, and explain how
the results of the analysis are used to improve the architecture.

c.      Describe
2 architectural tactics for increasing the modifiability of an autonomous automotive
subsystem.

a.
Flexibility to support addition of new services,
security to prevent a new service from introducing defects, modifiability to
support rapid deployment of revised services,

b.
Estimate the number of connections per system spec;
could display the types of ports on each interface; target components with many
ports for simplification or splitting

c.
Decomposing large modules into smaller ones and having
meaningful packages

We are
using the AADL in developing our architecture definitions.

a.      How
does the separation of specification from implementation contribute to a
well-formed architecture? How is this separation represented in AADL?

b.     Describe
a view that should be included in the autonomous vehicle architecture
documentation. For which stakeholders is the view intended?  What information does this view provide
that no other view does? What notation should be used?

c.      The
AADL error model allows the architect to design propagation paths. Under what
circumstances will we design an error source inside a component?  an error sink
inside a component? an error propagation that passes
through the component, i.e. from a component’s in port to an out port?

a.
The separation allows for multiple implementations of
the same specification and supports porting to other hardware environments; In
AADL the unit with a name that has no “.” In it is the specification
and any unit with that same name followed by a period and letters is an
implementation.

b.
There should be component connector views that show the
end-to-end flow from the driver to the system. This provides a comprehensive
view of everything needed for a specific system use. AADL end-to-end flows will
work.

c.
An error source is used inside a component that will
receive interrupts directly from hardware; An error sink is used in a component
that can handle the error and return the program to normal flow; A propagation
is used if the component has no means of handling an error that is passed on to
it.

We
used the Views and Beyond approach to architecture documentation.

a.      What
are the architectural elements (conceptually, not the AADL syntax) represented in
the component-connector viewtype? Give a specific
example view from this viewtype for your project.

b.     When
a thread is designed it can interact with other threads, with the subprograms
that live within it, and the process within which it lives. How does this
hierarchy appear in AADL code? What would a design look like that has the potential to deadlock? How can a thread living
inside process A communicate with a thread living inside process B?

c.      How
could a pipe and filter style be integrated with the 4 tier architectural
style? What attributes does this hybrid style enhance?

a.
Units of execution and messaging mechanisms; a thread messaging
another thread

b.
The “subcomponents” block of a implementation shows what it contains and its ports show
pathways; deadlock is seen if one resource shows as a subcomponent of two or
more units

c.
A port from one tier could be connected to a port in an
adjacent tier. Flexibility and extensibility

In the
Attribute-Driven Design approach qualities play a fundamental role.

a.      During
an ATAM how is the system’s ability to meet the requirement, “The
system shall maintain an acceptable latency during periods of peak
demand” evaluated?

b.     One
aspect of architecture competence is the ability to make architectural
decisions. What is our process for making decisions and what are the actions
among which we are choosing?

c.      A
company is using a platform strategy. How is this strategy reflected in the
architecture? What quality attributes are emphasized
by this strategy?

a.
Could be evaluated by summing up latency
specifications; could be done using a simulator like the AADL Inspector

b.
We are choosing which architecture operators to use and
we are choosing based on enhancing priority attributes

c.
The architecture has extension mechanisms to allow
additional products to integrate with the platform

Software
architecture techniques are used to describe single software products and
product lines of software products.

a.      One
of Lehman’s Laws states: “Increasing complexity — As a program is evolved, its complexity increases unless
work is done to maintain or reduce it.” What operations can we apply to
reduce the complexity of a “mature” product? Explain how each one
you list reduces complexity.

b.     Explain
the difference between flexibility and extensibility.

c.      Explain
how symmetry is achieved in a software architecture.
Why would this be a desirable attribute in a software product that needs to be
secure?

a.
Refactor by decomposition achieves separation of
concerns

b.
Whether the changes are anticipated or not

c.
Capture one side of the symmetry in a unit and then duplicate
the unit