Thorough planning and design of software solutions is essential to the development of quality software products. Planning the solution commences by considering the complete problem. This general overview is then systematically broken down into smaller pieces that include increasing amounts of detail. The nature of the data required is determined and structures to hold this data are designed. Eventually a method of solving each of these component pieces of the solution is designed in the form of an algorithm. Together these data structures and algorithms combine to solve the larger problem. Step 1. Abstraction and Refinement
Abstraction:
Taking away or separating part of the solution so it may be considered in isolation.
Software development needs to be a precise and detailed process. However, most problems encountered by developers are too large for the entire solution to be comprehended with sufficient precision and detail. To overcome this situation, we refine the problem by breaking it down into smaller, more manageable modules. This is the process of top-down design. Each of these modules can then be considered as an isolated problem. We can largely ignore the big picture and consider the detail of the smaller piece.
This is the process of abstraction.
There are many advantages of the abstraction process.
Technical Documentation compiled during SDLC |
11 SDD > 8.2 Introduction to Software Development > 8.2.1 Defining and understanding the problem, and planning and designing software solutions >
