///
Software methods attempt to improve software quality by providing a systematic approach to software production. A method prescribes a precise sequence of processes, together with outcomes produced by each process. Usually these outcomes are models representing a specific aspect of the problem, and concentrate on the analysis and design phases of a system. Preparing all the models (i.e. following all the processes defined in the method) contributes to our understanding of the problem.
There is no single universal method, as different methods are optimized for solving different problems. The Booch method, for example, is optimized for developing object-oriented software systems, while Structured Analysis/Structured Design (SA/SD) is optimized for building more traditional systems (e.g., COBOL or C). However, abstracting away the details of these methods reveals they are focused on essentially the same processes and outcomes. It’s not that I think the details of a method are unimportant. However, the details of a method are not important for a broad conceptual understanding of methods.
Different methods should be as optimistic as possible for good problem-solving.