The Evolution of Software Design
The evolution of software design is a continuing procedure which has spanned the previous 3 decades. Early design work concentrated on criteria for the development of modular methods and programs for refining software architecture in a top-down manner. The Procedural aspects of design definition evolved into a philosophy called structured programming. Later work proposed techniques for the translation of data structure or data flow into a design definition. Newer design approaches propose an object-oriented approach to design derivation.
Several design techniques growing out of the work noted above are being applied by the organization. Such as the analysis technique each software design technique introduces unique notation and heuristics as well as a somewhat parochial view of what characterizes lead to design quality. Still, each of these techniques has a number of common characteristics that are as follows:
(1) a mechanism for the translation of an analysis model into a design representation,
(2) a notation of representing functional parts and their interfaces,
(3) heuristics for partitioning and refinement, and
(4) guidelines for quality assessment.
The Regardless of the design techniques which are used a software engineer should apply a group of fundamental principles and basic concepts to interface, data, architectural and procedural design.