------------------- Software Engineering Foundations ------------------ Practice Problems: Lectures 1-9 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. 2 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 the general relationship one would expect to see between the number of PEOPLE working vs. calendar TIME for (a) perfectly partitionable tasks (i.e., tasks that can be partitioned with no additional cost or overhead), (b) tasks that are not partitionable, and (c) software development projects. a. perfectly partitionable more b. not partitionable more T I M E more T I M E less T I M E less few PEOPLE many c. software development less few PEOPLE many few PEOPLE 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: ____ many 3 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? Briefly illustrate 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. 4 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 Algebraic specification of abstract data types. What are they and how do they differ? 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. 5 15. Model-based specification via pre-and post-conditions utilizes predicates that (when considered together) reflect a program’s intended functional behavior. a. (3 pts.) What do pre-conditions express in this context, and what does this represent to a designer/implementer of a program? b. (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 searches a non-empty array LIST[1..N] for the value stored in KEY. If present, set FOUND 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 reflecting nominal 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. 6 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 twotiered C/S architecture were discussed at length in class. a. (2 pts.) What is a “two-tiered” C/S architecture comprised of? b. (3 pts.) Briefly describe the C/S application layers model. c. (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?
© Copyright 2026 Paperzz