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.
- (3 pts.) What do pre-conditions express in this context, and what does this represent to a designer/implementer of a program?
- (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.
- (2 pts.) What is a “two-tiered” C/S architecture comprised of?
- (3 pts.) Briefly describe the C/S application layers model.
- (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?