Look at software engineering books for the concept of abstraction. Identify the main features of the concept as they are described in these books. Explain how these features contribute to software development processes.
Look at software engineering books for the concept of successive refinement. In what ways does successive refinement contribute to software development processes? What connections does it have to abstraction?
Look at Chapter 10 and examine the context abstraction is discussed in there. Suggest additional situations in software development that can benefit from developers thinking in terms of different levels of abstraction.
What is the difference between architecture and design?