Introduction to Software Design
Abstract:
This curriculum module provides an introduction to the principles and concepts relevant to the design of large programs and systems. It examines the role and context of the design activity as a form of problem solving process, describes how this is supported by current design methods, and considers the strategies, strengths, limitations, and main domains of application of these methods. Design is an important activity for all except the most trivial of systems. It exerts a major influence upon the other phases of the development process, as well as upon system maintenance. An understanding of design issues and of the techniques available to assist in producing a design is essential background for the software engineer. This module provides an introduction to the topic of software design, including the following major elements 1 And explanation of the role of the design activity in producing large software-based systems, together with an introduction to the principles that are used to assess the quality of design 2 An introduction to a range of design representation, together with a description of their uses and limitations 3 An explanation of the role of a design method in the production of a design and of the design strategies used in software design methods and 4 An introduction to several examples of design methods and an assessment of their strengths and limitations with respect to different classes of problems.