CpSc
875
Final 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
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.
- We
have discussed several basic architecture styles such as pipe and filter
and MVC. In some of the three products we used the J2EE architecture.
- How
were the layered style, MVC style, and J2EE style integrated in the thin
client product?
- The
service oriented architecture (SOA) style is a relatively new style. Which
attributes of CTAS would be enhanced by the use of SOA? Which would be
degraded?
- How
do two styles differ? That is, how can the architect look at two styles
and choose between them?
- When
there are alternatives in an architecture, such
as our three types of clients, how is the set of variants represented in
the AADL model? When does the selected variant get bound into the
product?
- Elements of the MVC were composed
within the top 2 layers of the layered style. J2EE was largely independent
except that the client portion encompasses the Model part of MVC.
- Portability, maintainability, and availability
are enhanced. Performance will be degraded.
- They differ in the profile of qualities
they enhance/degrade.
- Each variant is at least defined in an
implementation. Then an instance of that implementation is selected as a
subcomponent in a system definition.
- We
produced extensive documentation for our architecture.
- What
is the difference between an allocation view of the architecture and a
component – connector view?
- Which
view would be best to use to explain to an interested stakeholder about
how a particular use case is satisfied? Why?
- What
is the relationship among view type, view, and view packet?
- Where
does the binding of threads and processes to hardware get documented?
- Allocation view shows connections
between internal and external entities while the component-connector view
shows connections between internal elements.
- Component-connector provides the
sequence of actions that satisfy a use case
- A view is an instance of a view type
while a view packet is a subset of a view.
- Allocation view
- We
used Attribute Driven Design (ADD) as the approach to architecture design.
- There
are several criteria for dividing a module. List two. For each describe
why that is a valid criteria.
- ArchE is intended to support ADD. How does ArchE support ADD?
- We
used a layered approach to accommodate meta-data in the architecture.
What attributes did this enhance? Which, if any, did it degrade?
- Describe
one tactic that enhances modifiability. Use the stimulus-response form of
description.
a.
separation of
concerns – each resulting module is more simple increasing the likelihood it
will be implemented correctly
abstraction – the more general module will facilitate reuse of general information
b.
ArchE provides
automated reasoning about changes in the qualities that drive the architecture
process
c.
“meta” is a
form of abstraction so it enhanced modifiability and extensibility
d.
“information
hiding” is a tactic that enhances modifiability

- We
captured both the logical and physical architectures in AADL.
- Model
Driven Development uses the platform independent model (PIM) and the platform
specific model (PSM). Relate these two models to the architecture
representations we have used this semester.
- List
two risks that an ATAM of your system would have identified. What did you
do to mitigate these risks?
- List
two scenarios you would have created if you had conducted an ATAM on the
system you architected. Give the rationale for why each was of sufficient
importance to use. In other words, how would these two scenarios
contribute to the evaluation of the architecture?
- We
had definitions in our model that included: system/port/flows;
thread/process/subprogram; and bus/memory/processor. How are these three
groupings different? When should a model have all three groupings?
- the PIM is the set of packages of AADL
that specify the architecture (shown in module view); The PSM is the
system implementation that binds each element to a hardware entity(shown
in the allocation view)
- (1) your understanding of the domain may
be inadequate – mitigate by finding information on similar systems –
references on the course resources page (2) the performance of a
prototyped system may be inadequate – mitigate by introducing performance
budgets
- (1) The CTAS user revises an existing
itinerary by changing only the dates of travel, the system responds by
using the flight numbers to cancel the old reservation and make a new one.
This scenario illustrates the usability of the system. (2) The CTAS user
cancels a guaranteed reservation, the system responds by canceling each
segment and collecting and storing the cancellation confirmations for
future use.
- The level of abstraction away from the
hardware. A model should have all three groupings if either (1) the
company produces hardware and software or (2) the product is resource
constrained and the interaction between hardware and software needs to be
carefully examined.
- We expanded
our use of tools to include three tools for our work: The OSATE Eclipse
plug-in for AADL, ADeS and ArchE.
- What
architecture information does the AADL model capture that the ArchE model does not?
- How
can we combine the information from the three tools to determine whether
we are meeting the required quality attribute levels?
- What
is different as we move from scenarios to responsibilities to functions?
- Give
examples from CTAS for the sequence of scenario – responsibility –
function.
- AADL captures the abstract structure of
the architecture.
- ArchE is used to represent the initial
scenarios for the product and the AADL model is used to capture the
initial structure, usually a classic structure such as MVC independent of
detailed scenarios. As the scenarios are used to identify more detailed
responsibilities, the responsibilities can be captured in AADL by
assigning them to the modules in the classic architecture structure. Where
modules are too complex or too diverse, modules are decomposed and
responsibilities split between the new modules. Eventually the scenarios
from ArchE are mapped to AADL end-to-end flows
to allow analysis of a simulated system using ADeS.
- The scope and level of granularity
changes.
- Scenario – revise itinerary;
responsibility – retrieve itinerary; function – database access