ABSTRACT

Modeling the software is probably the hardest part of software design. Producing good software designs requires a considerable amount of practice, with a great deal of feedback on the quality of the designs with the resulting software products influencing the design of the next software system. This chapter describes software design as an iterative process, with the goal being design improvement at each iteration. It discusses some basic principles that can guide the software design process. The chapter presents some basic, general-purpose design principles. Some of the design principles will be based on the basic technique of software pattern matching. There also is heavy emphasis on object-oriented technology and software reuse. Some aspects of the object-oriented methodology are so different from corresponding issues in the traditional, still-common procedural approach to software design that they should be discussed separately. This is especially true in software design.