Software Design Methodology

In this chapter, we discuss how to make good designs at three levels of abstraction. At the lowest level, there are rules that guide software design activities. At the middle level are design strategies, which link design activities together to form well-organised design processes. At the highest abstraction level is software design methodology, which is the study of design methods. The objectives of the chapter are:
To understand the causes of difficulties in software design and the vehicles to overcome the difficulties;
To understand various strategies to solve software design problems;
To understand the basic structure of software design methodologies.
The chapter is organised as follows. In section 3.1, we discuss the causes of difficulties in software design and the vehicles to overcome them. In section 3.2, we discuss the process of software design and various strategies of software design. In section 3.3, we give a brief introduction to the structure of software design methods and present a brief overview of software design methodology.
Software development is complicated and difficult. Design is one of the most difficult tasks in software development. Before we start to search for methods that allow us to make good designs of software systems, we need to understand why software development is difficult.
As discussed in Chapter 1, all designers face difficulties. The question is whether or not there are specific reasons that make software design even more difficult in additional to...