------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?