CpSc 871

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
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. Answer the question that is asked and then stop. You are
allowed the notes you have taken and printouts but no laptops. You have from 3
to 4:15 for the exam.

1.
Architecture/Design

a.
Decomposing a system into modules has benefits
and drawbacks. List at least two benefits and two drawbacks.

b.
How are non-functional requirements treated
differently from functional requirements during the steps of development?  Why?

c.
Describe how the error annex in AADL allows the
architect to explicitly design solutions to handling disk failures.

d.
For the platform in an ecosystem, extensibility
is a high-priority quality attribute. Which other quality attributes are enhanced
as extensibility as increased? Which are degraded?

a.
Benefits: easier maintenance, lower complexity;
Drawbacks: increased latency, more architecture overhead

b.
Non-functional are not located at any one single
point in the product so the entire product must be evaluated for displaying the
attribute

c.
The error propagations give an explicit means of
passing responsibility for handling the failure from one module to another, the
error state machine makes the behavior for handling the failure explicit as
well

d.
Flexibility and scalability are enhanced;
cohesion, testability, maintainability may suffer

2.
Process

a.
DevOps is a tighter
than normal coupling between the development and operations groups. List
specific things that the groups do to achieve this tighter coupling. What are
the benefits of this approach?

b.
One of Lehman’s Laws says “The quality of E-type
systems will appear to be declining unless they are rigorously maintained and
adapted to operational environment changes.” Why is the word
“appear” an important part of the law? Is there a reason the quality might
“actually” decline?

c.
Describe the benefits and drawbacks of an
iterative style of development. Do the same for an incremental development
style.

d.
In an ecosystem the platform will often support
a multi-sided market. For example the Eclipse Foundation produces a platform
that is to be the basis for development tools built by one group (for example Topcased) for use by another group (for example aircraft
designers). What is the value proposition for each of the three groups involved
in such a multi-sided market?

a.
They automate processes and tools so that
everyone has access to the latest artifacts; they use automated bug tracking to
communicate problems or new requests

b.
The quality is not necessarily changing but it
looks like it does as other newer products are available. It may actually
decline if a new version of something like the operating system on which it depends changes and the existing product is no longer able
to perform its function correctly.

c.
Iterative allows for frequent checks on progress
but spends some time ramping up at the start of an iteration and winding down
at the end. Incremental allows work to be divided into smaller easily handled
pieces but there can be dependencies between the increments.

d.
The platform supplier facilitates a market and is
promoting the use of other products or is composed of product developers as
well. The product developers create new products more quickly and cheaply because
of starting with the platform rather than from scratch. The product purchaser
is getting tools that perform functions they need performed.

3.
Evaluation

a.
A hazard analysis can be associated with a fault
tree that shows how the hazard may arise. This is done during requirements
analysis. How does a hazard trace through the rest of the development process?

b.
A confidence map describes the confidence we
have in an assurance case. Explain the role of a defeater in the confidence
map. What is the place of the confidence map in the overall evaluation process?

c.
The design process has the opportunity to
evaluate designs very early. Describe how an architectural description language
such as AADL facilitates this early evaluation.

d.
Describe the differences between the defects
found by design evaluations and code testing.

a.
A hazard is a specific outcome and therefore a
particular set of values. The design uses the error annex to design an architecture to detect and handle the hazard. This is
translated into code that implements it and then a set of tests are applied to
see that the code really does handle the hazard without harm.

b.
A defeater expresses a doubt about a claim, or
evidence, or an inference rule. The confidence map is used as soon as a design
is available to argue about.

c.
AADL has tools that simulate the execution of
the product from an early partial design. Later code can be generated when the model
is more complete.

d.
The defects found in design are broader in scope
and more vague than testing.

4.
Model-driven

a.
We discussed a model-driven process and tool
chains. What is the purpose of the model bus?
The model repository?

b.
What benefits does a project realize when using automatic
code generation from the models? What risks does the project run in using code
generation?

c.
Requirements change often during the development
of a software-intensive product. How do model-driven techniques improve the
ability of a development team to respond to changing requirements more
accurately?

d.
List the basic steps in a development process.
For each step list the inputs to that step and the outputs from the step.

a.
The model bus moves models from tool to
repository and back with transformations into the standard representation used
for the repository. The repository is a database.

b.
Automatic generation allows the project to focus
on design and maintain only the design not the code. The risk is that some
subtle action is needed that the code generator cannot duplicate.

c.
Model driven techniques allow for associations
to be present in models that link an artifact in one model to an artifact in
another model.  So the requirement can be
the origin of an association chain.

d.
Requirements
elicitation and analysis input: customer needs output: functional and non-functional;
architecture design: input: requirements, output: product structure; detailed
design: input: structure output: module specifications; implementation: input:
specifications, output: machine instructions; testing: input: Requirements and
artifacts,  output: test results

5.
Design/implementation

a.
Coupling is bad and cohesion is good to a
degree. If a module becomes too cohesive what problem arises?

b.
AADL makes use of small languages which are called
annexes. What are the advantages of using several small domain-specific
languages as opposed to a single large general purpose language? What are the
disadvantages?

c.
Error propagation is the control flow in the
presence of error. What are the advantages of having an explicit
error architecture? What are the disadvantages?

d.
What role does configuration management play in
increasing the agility of a development organization?

a.
The module gets too large and the therefore complex

b.
Advantage is that each language is simple;
disadvantage is that a person may have to learn several languages and use multiple
tool sets

c.
Ad: can map out exactly how to handle each fault;
Dis: the architecture becomes more complex

d.
The CM tool allows for global concurrent access
and quick integration of pieces.