1] software design concepts This refers to the fundamental design concepts around which we start building our design. The design concept depends heavily on the nature and requirement of the system. Example modern object oriented system starts with abstraction and information hiding and highlighting the features which are important.
2] Software design notation This refers to the tools and medium for specifying the design. A design can be specified in words or in diagrams or in both. Most of the design includes well-defined graphic gents and standard terminologies. Uml is popular specification for specifying object oriented design. The syntax is predefined but it is up to designers and Architects to represent that syntax in a meaningful way.
3] software design strategy The overall approach of design is software design strategy example procedural structured or object oriented are few examples.
4] software design method or software design process After the requirement analysis is done and problem definition is completed software designs process starts. This is well defined specification to create a design through sequential steps. However many times the design process overlaps with requirements analysis Where are designing method is applied on gathering and specifying the requirement. Major design decisions are made In this phase.
5] software structuring criteria This road map for organising the software components, defining the interaction and interfaces between them and forming the intersystem. Example one example is object structuring criteria where all objects are identified and structured together to form the system
Evolution of design methods In in earlier days of software development, engineers used to follow where is straightforward way of code development. As a prior preparation, they used to develop flowcharts and algorithms. Writing algorithms and flowcharts where the actual design work. Later they started adopting the modular way of program development. This way, they have realised the strength of code distribution, sharing and project management. One common practice back at that time was to divide the entire system into module, modulus are assigned to separate team that could be implemented in isolation. Programming languages like C in early seventies, has started supporting structured way of program development. Subroutines and functions of any structured programming language can be used to develop such models. The structured way of system designing was often termed as top down approach or stepwise refinement. By the year 1970, this approach has gained popularity among software development organisations. By early 1980 as a new way of Thinking towards the solution has emerged. This was the time when object oriented analysis and designing starts taking its ground. We will keep on discussing this methodology throughout this course. In the next chapter we will explore few more aspects of designing methodologies.