1

------CS-62Z–Advanced Software Engineering ------

Quiz 1 Practice Problems

1. (2 pts.) Sommerville identifies three “key challenges” facing software

engineering today: Heterogeneity, Delivery, and Trust. Briefly describe

what he means by the delivery challenge.

2. (3 pts.) Sommerville notes that the Waterfall model’s major problem is its

inflexible partitioning of a project into distinct stages. What does he

claim the models advantages are?

3. (4 pts.) Sommerville describes two problems that the evolutionary development

approach has from an engineering and management perspective. What are they?

4. (6 pts.) Briefly describe the distinguishing characteristics of Boehm’s spiral

development model.

5. (6 pts.) Fred Brooks, author of The Mythical Man-Month, argues that adding

people to a late software project can actually make it later. Graphically

depict thegeneral relationship one would expect to see between the number of

PEOPLE working vs. calendar TIME for(a)perfectly partitionable tasks (i.e.,

tasksthat can be partitioned with no additional cost or overhead), (b) tasks

thatare not partitionable, and (c) software development projects.

a. perfectly partitionable b. not partitionable c. software development

6. 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 4

T2 1 T1

T3 2 T1

T4 7

T5 2 T2, T4

T6 4 T3, T4

(start) (finish)

b. (3 pts.) What is the "critical path" for this network?

c. (6 pts.) How many days can the following tasks be delayed without

causing an overall project schedule slippage?

T2: ____ T3: ____ T6: ____

7. (2 pts.)As discussed in class, one of the reasons why requirements

engineering is so hard is the “difficulty of anticipation.” Explain what

anticipation means in this context.

8. (3 pts.) One of the problems associated with eliciting domain requirements is

what Sommerville calls implicitness. Briefly describe what he means by this.

9. (2 pts.) One of the potential problems described by Sommerville with using

natural language to specify requirements is “requirements amalgamation”.

Briefly describe what he means by this.

10. (4 pts.) What is ethnography? How does it differ from focused ethnography?

What is the principal advantage of the latter over the former in requirements

engineering?

11. (4 pts.) Why is documenting the origin/rationale of requirements potentially

useful? Brieflyillustrate your answer with an example.

12. (4 pts.) Sommerville notes that one of the problems with agile development

methods (and other incremental development and delivery approaches) concerns

contracts.Briefly explain why this can be a problem.

13. a. (3 pts.) One of the practices associated with Extreme Programming is known

as refactoring. Briefly describe WHAT refactoring is, WHEN it is employed,

and WHAT BENEFIT(S) accrue(s) from it.

b. (3 pts.) Briefly compare the development philosophy underlying Extreme

Programming as reflected by the practice of refactoring vs. traditional

design based on the concept of information hiding.

14. a. (4 pts.) Sommerville describes two types of operations used in the

Algebraicspecification of abstract data types. What are they and how do

theydiffer?

b. (3 pts.) What is the “rule of thumb” discussed in class for defining a

sufficient set of axioms?

c. (3 pts.) The List specification given in class was comprised of the

following axioms:

Head(Create) = Undefined exception (empty list)

Head(Cons(L,v)) = if L=Create then v else Head(L)

Length(Create) = 0

Length(Cons(L,v)) = Length(L) + 1

Tail(Create) = Create

Tail(Cons(L,v)) = if L=Create then Create else Cons(Tail(L),v)

Do these axioms accurately reflect the rule of thumb discussed in class for

defining a sufficient set of axioms? Briefly explain your answer.

15. Model-based specification via pre-and post-conditions utilizes predicates that

(when considered together) reflect a program’s intended functionalbehavior.

  1. (3 pts.) What do pre-conditions express in this context, and what does this represent to a designer/implementer of a program?
  1. (3 pts.) What do post-conditions express in this context, and what does this represent to a designer/implementer of a program?

16. a. (5 pts.) Give a suitable pre- and post condition for a program that

searchesa non-empty array LIST[1..N] for the value stored in KEY. If

present, setFOUND to true and J to an index of LIST which corresponds to

KEY.Otherwise, set FOUND to false.

pre-condition:

post-condition:

b. (4 pts.) Give a suitable OPERATIONAL specification for this program.

c. (3 pts.) Give a single-threaded SCENARIO reflectingnominal program

behavior consistent with the program description.

17. (4 pts.) Briefly explain why it can be difficult to structure systems using

the abstract machine system structuring model.

18. a. (3 pts.) Briefly describe the repository system structuring architectural

model.

b. (4 pts.) Describe 2 advantages and 2 disadvantages of this model.

19. Two models for distributing the layers of an application across a two-

tiered C/S architecture were discussed at length in class.

  1. (2 pts.) What is a “two-tiered” C/S architecture comprised of?
  1. (3 pts.) Briefly describe the C/S application layers model.
  1. (4 pts.) Briefly describe the two-tier thin and fat client architectures in

terms of the C/S application layers model.

20. (6 pts.) Briefly describe the roles played by IDL skeletons and IDL stubs in

CORBA objects. What happens when an object calls another service-providing

object?