------CEN 5035 - Software Engineering ------
Practice Quiz 1
1. (3 pts.) What is the difference between "generic" and "bespoke"
software? (Circle one only.)
a. Generic software is derived from a set of activities whose goal
is the development or evolution of software while bespoke
software is derived from a simplified representation presented
from a specific perspective.
b. Generic software is a product of software engineering while
bespoke software is a product of system engineering.
c. Generic software is developed for a particular customer while
bespoke software is developed for a general market.
d. Generic software is comprised of PROGRAMS while bespoke software
is comprised of ASSOCIATED DOCUMENTATION.
e. None of the above.
2. (3 pts.) Which of the following best describes how (computer-based)
SYSTEM engineering differs from SOFTWARE engineering?
a. System engineering involves developing programs AND associated
documentation. Emergent properties are a consequence of the
relationships between system components and include maintainability,
dependability, efficiency, and usability.
b. System engineering is concerned with developing a purposeful
collection of inter-related components working together towards some
common objective. The properties and behavior of system components
are inextricably inter-mingled.
c. System engineering is an organized way of producing software. It
includes suggestions for the process to be followed, the notations
to be used, rules governing the system descriptions which are
produced, and design guidelines.
d. System engineering is concerned with ALL aspects of computer-based
systems development including hardware, software, and process
engineering.
e. System engineering is concerned with ALL aspects of designing,
implementing, deploying and operating systems. Software engineering
is just one part of this process.
3. Complex systems generally have both functional and non-functional
"emergent properties". Typical examples of non-functional emergent
properties are reliability, performance, and safety.
a. (3 pts.) Explain why such properties are characterized as being
"emergent".
b. (2 pts.) An example of an emergent property given by Sommerville
is "the overall weight of a system." Explain why this is, in fact,
a POOR example.
4. a. (6 pts.) Develop an activity network for the following tasks,
durations (in days), and dependencies: (Do NOT include milestones in
your network.)
Tasks Duration Dependencies
------
T1 5
T2 1
T3 3 T1
T4 7 T2, T3
T5 2 T4
T6 4 T3
(start) (finish)
b. (2 pts.) What is the "critical path" for this network?
c. (1 pt.) What is the minimum time required to finish the project?
d. (6 pts.) How many days can the following tasks be delayed without
causing an overall project schedule slippage?
T2: ____ T3: ____ T6: ____
5. (3 pts.) Sommerville notes that while the initial requirements
specification and the validation stages are comparable with other
software development processes, the intermediate stages in a reuse-
oriented process are different. One of these intermediate stages is
"requirements modification". Why is this included in the model?
6. (2 pts.) What does it mean to say that a requirement is "verifiable"?
(Circle one only.)
i. The requirement can be tested to determine its consistency with
user needs.
ii. Correctness of the requirement with respect to user needs can be
determined.
iii. Correctness of the system with respect to the requirement can be
determined.
iv. None of the above.
7. a. (2 pts.) What is ethnography?
b. (3 pts.) What is "FOCUSED ethnography" and what is its value in
requirements elicitation?
8. (3 pts.) One of the consequences of "incremental development"
is that the highest priority system services tend to receive
the most testing. Briefly explain why/how this occurs.
9. (10 pts.) Match each description below to the SINGLE MOST APPROPRIATE
TERM among the following. (Note: terms may apply to more than one
description.)
A. domain requirement F. functional requirement
B. SRS G. PDL
C. system constraint H. process constraint
D. user requirement I. external requirement
E. system goal J. system attribute
___ Example would be: "Must be programmed in Java."
___ A high level statement in natural language of a system service
or constraint.
___ Example would be: "Processor utilization must stay above 80%."
___ Usually suffers from not being verifiable.
___ Example would be: "To avoid freezing, water temperature must
be maintained above 0 degrees Celsius."
___ Example would be: "Must be simple to install."
___ Example would be: "Transactions Processed Per Second"
___ Example would be: "By law, must not display student social
security numbers to personnel outside of financial aid."
___ Especially useful when specifying a process that involves an
ordered sequence of actions.
___ Official statement of what is required of system developers; it
should include both user and system requirements.
10. (6 pts.) Give (a) an INTERFACE and (b) an OPERATIONAL requirements
specification for the following natural language-based program
description:
The program will search a non-empty array of integers, A[1:N],
for the value stored in integer variable KEY. Boolean variable
FOUND is set to "true" if the value of KEY is found in the
array, and to "false" otherwise. The program must NOT change
the values of A or KEY.
a. INTERFACE specification: (hint: provide a "pre-condition" which
captures any conditions on the program variables that, based on
the description above, an implementer should assume will hold
BEFORE program execution, and a "post-condition" which captures
any obligatory conditions on the program variables AFTER program
execution.)
pre-condition:
post-condition:
b. OPERATIONAL specification:
11. (3 pts.) Give a single-threaded SCENARIO reflecting the program
requirements described in problem #10.
12. (15 pts.) Match each description below to the SINGLE MOST APPROPRIATE
TERM among the following. (Note: terms may apply to more than one
description.)
A. experimental prototyping H. incremental development
B. evolutionary prototyping I. 4GLs
C. throw-away prototyping J. LISP, APL, SmallTalk
D. vertical prototyping K. component and application assembly
E. horizontal prototyping L. compound documents
F. breadboard M. visual programming
G. mockup N. user interface prototyping
___ Requires a composition mechanism that includes control facilities
and a mechanism for communication.
___ Typeless, interpretive, high-level prototyping languages.
___ Objective is to deliver a working system to end-users.
___ Appropriate when rapid delivery and deployment are more important
than long-term software maintainability.
___ Each active element has an associated application which is invoked
when that element is selected (as in a spreadsheet).
___ The process starts with those requirements which are poorly
understood.
___ Emphasis is on fidelity as opposed to completeness.
___ Used to reduce requirements risk; the prototype is developed from
an initial specification, delivered for experiment, and then
discarded.
___ Emphasis is on function as opposed to appearance.
___ Domain specific languages for business systems based around a
database management system + CASE environment.
___ The process starts with those requirements which are best
understood.
___ Objective is to validate or derive the system requirements only.
___ Objective is to evaluate a proposed solution for feasibility /
performance.
___ A potential problem is that developers may be pressured to deliver
the prototype as the final system.
___ Supported by a scripting language where the prototype is developed
by creating a user interface from standard items and associating
components with these items.
13. (8 pts.) Match each description below to the SINGLE MOST APPROPRIATE
TERM among the following. (Note: terms may be used more than once.)
A. post-condition I. Z
B. model-based specification J. algebraic specification
C. pre-condition K. operation signature
D. axioms L. existential quantifiers
E. operational specification M. component and application assembly
F. constructor operations N. inspection operations
G. universal quantifiers O. Lotos
H. predicate P. CSP
_____ This specification approach is particularly well suited for
specifying the interfaces of objects and abstract data types.
_____ Provides the name and parameter types for an operation.
_____ Used to assert that some predicate holds FOR ALL or FOR EVERY
member of a given set.
_____ Part of schema which defines conditions that are always true.
_____ A specification approach widely used in industrial projects
that defines operations by defining how they affect system state.
_____ Used to assert that some predicate holds FOR AT LEAST ONE or
FOR SOME member of a given set.
_____ Defines the semantics of operations defined over a sort.
_____ A mature notation for model-based specification that uses sets
and relations between sets.
14. (6 pts.) Provide a FORMAL specification for the function described
below using a pre-condition and a post-condition.
Set variable MAX to the maximum value in the non-empty array A[1:N],
where the elements of A are in non-decreasing order.
pre-condition:
post-condition:
15. Suppose we wished to develop an algebraic specification for an abstract
data type representing a dictionary. Each entry in the dictionary is
in the form of a (key, definition) pair, and it is uniquely identified
by the key. The dictionary supports the following operations:
Create: creates an empty dictionary
Add: adds an entry to a dictionary, replacing any existing
entry having the same key
Find: returns the definition associated with the given key
in a dictionary
Remove: if it exists, removes the entry with the given key
from a dictionary
Empty?: returns the value True if there are no entries in a
dictionary, and False otherwise
Assume dictionaries are of type "Dictionary", keys are of type "String",
definitions (including the special definition "Undefined") are of
type "Object", and the values "True" and "False are of type "Boolean".
a. (10 pts.) Give the "signature" part of the specification.
b. (2 pts.) Complete the following axiom:
Find(Create, k) = ______
c. (5 pts.) Complete the following axiom:
Find(Add(D, k1, v), k2) = if (k1 = ______) then ______
else ______
d. (3 pts.) Sommerville gives a "rule-of-thumb" for defining axioms
reflecting operation semantics. BRIEFLY describe this rule.
16. (4 pts.) Sommerville cites three advantages of explicitly designing and
documenting a software architecture. Briefly describe TWO of these.
17. (10 pts.) Match each description below to the SINGLE MOST APPROPRIATE
TERM among the following. (Note: terms may be used more than once.)
A. manager model F. generic model
B. abstract machine model G. broadcast model
C. data-flow model H. repository model
D. client-server model I. interrupt-driven model
E. call-return model J. reference model
_____ In this structural model, there is no need to transmit data
explicitly from one sub-system to another.
_____ Also known as a "layered model."
_____ A strength is the relative simplicity of analyzing control flows.
_____ This centralized control model is suitable for concurrent systems.
_____ Sub-systems register an interest in specific events.
_____ Usually built "bottom-up" from analyzing real systems within an
application domain.
_____ One form is sometimes called the "pipe and filter" model.
_____ This control model is particularly suited to real-time systems.
_____ This control model is embedded in programming languages such as
Ada and C.
_____ Useful for comparing different systems within an application
domain.
18. (3 pts.) What role does “middleware” play in a distributed system?
19. a. (3 pts.) Consider a distributed system based on the fat-client
model that requires significant communication between the client
and data management server. How could migrating this system to
to a three-tier C/S architecture help with this problem?
b. (3 pts.) Aside from run-time performance issues, what is the
principal advantage of using a three-tier architecture over
the fat-client model?
20. a. (3 pts.) What is an “IDL”? Why is an IDL necessary in a distributed
object architecture / framework?
b. (4 pts.) What specific role does an IDL stub play in the CORBA model?
c. (2 pts.) In the CORBA model, does an object need to know the location
of another object to use its services? Why or why not?