Design Method-Snap Shot
The Data design is the 1st and some would say the most important of 4 design activities which are conducted in during software engineering.The collision of data structure on program structure, procedural complexity causes data design to have a profound influence on software excellence. The concepts of data abstraction and information hiding give the foundation for an approach to data design.
The procedure of data design summarized through Wasserman [WAS80]:
The basic activity during data design is to select logical representations of data objects data structures recognized during the specification phase and requirements definition. The selection procedure may involve algorithmic analysis of alternative structures in order to determine the most effective design or may easily involve the use of a group of modules a package which gives the desired operations upon some representation of an object.
An important related activity in during of design is to recognize those program modules which must operate directly upon the logical data structures. By this way the scope of effect of individual data design decisions can be constrained.Regardless of the design methods to be used well designed data can lead to better program modularity and structure and reduced procedural complexity.
The Wasserman has proposed a collection of principles which may be used to design and specify data. In reality, the design of data starts during the establishment of the analysis model. By Recalling that design and requirements analysis often overlap we consider the following collection of principles [WAS80] for data specification:
1. The Systematic analysis principles useful to behavior and function should also be applied to data. We spend much effort and time reviewing, deriving and specifying functional needs and preliminary design. The Representations of data relationships, objects, dataflow and content should also be established and reviewed alternative data organizations should be considered and the impact of data modeling on software design should be evaluated. Example for specification of multilinked list may nicely satisfy data needs but may lead to an unwieldy software design. The alternative data organization may lead to better results.
2. All the operations and data structures to be performed on each should be recognized. The design of an efficient data structure must take the operations to be performed on the data structure must take the operations to be performed on the data structure into account. Example for let’s consider a data structure made up of a collection of diverse data elements. Data structure is to be manipulated in a number of main software functions. It’s upon evaluation of the operation performed on the data structure an abstract data type is described for use in subsequent software design. The specification of the abstract data type may easy software design considerable.
3. The data dictionary should be building and used to describe both program design and data. The concept of a data dictionary was introduced in further chapters. A data dictionary explicitly represents the relationships between the constraints and data objects on the parts of a data structure. The Algorithms which must take advantage of exact relationships can be more simply described if a dictionary like data specification exists.
4. The Low level of data design decisions should be deferred until late in the design process. The process of stepwise refinement may be used for the design of data. Which is, overall data organization may be defined during requirements analysis or refined during preliminary design and specified in detail during later design iterations. Top-down approach to data design provides advantages which are analogous to a top-down approach to software design major structural designed are attributes and evaluated 1st so in which the architecture of the data may be build.
5. Representation of data structures should be recognized only to those modules which must make direct use of the data contained within the structure. The concept of data hiding and the associated concept of coupling give important insight into the quality of a software design. The Principle 5 alludes to the importance of these concepts as well as the importance of extrication the logical view of a data object from its physical view [WAS80].
6. A library of use full operations and data structures which may be applied to them should be established. The Data operations and structures should be viewed as resources for software design. The Data structures can be designed can reduce both design and specification effort for data.
7. The programming language and software design should support the realization and specification of abstract data types. Implementation and corresponding design of s sophisticated data structure can be made exceedingly hard if no means for direct specification of the structure exists. Example for, design or implementation of a linked list structure of a multi level heterogeneous array would be hard if the motive programming language was Fortran because the language does not support direct specification of the data structures.
The principles define above form a basis for a data design approach which can be integrated into both the development and definition phases of the software engineering procedure. As we have noted elsewhere in this book a clear definition of information is essential to successful software establishment