Design Concepts

 There are certain fundamental concepts pertaining to Software design, which must be taken into account while designing a software system, which are as follows:

 

Abstraction: Abstraction is a process whereby we can identify the important aspects of any event or fact and ignore its 
details. 
Data Abstraction: Data Abstraction is a named collection of data that describes a data object. Data abstraction includes a set of attributes that would describe the data object.

back to top

Stepwise Refinement: Refinement is nothing but improvement or enhancement. Each step in refinement is carried out because of some design decisions. Stepwise Refinement is actually a process of elaboration. A statement, which describes function or information (only conceptually) but gives no information of the procedural aspects of the function, can be refined or improved upon as more detail as each successive refinement occurs.

back to top

Modularity: Modularity dose not mean breaking up a module into smaller portions indefinitely. This approach will not work because as the number of modules grows, the effort (cost) taken to integrate the modules also grows. A module in the broadest sense could be a subroutine, a function, or a subprogram.

back to top

Software Architecture :Software Architecture refers to the overall 
structure of the software and the ways in which that structure provides conceptual integrity for a system. When we talk of architecture, we mean the hierarchical structure of modules, the way they interact with each other and the formation of data that is to be used by the modules. 

back to top

Control Hierarchy: Control Hierarchy is also called program structure and it signifies the  organization of modules and implies a hierarchy of control. Control hierarchy can be depicted using a variety of methods. Control hierarchy represents two  different characteristics of the software architecture: visibility and connectivity.

Visibility: Visibility is the set of program components that can be used as data by a given component indirectly.

Connectivity: Connectivity is the set of components that are used as data by a given component indirectly.

back to top

Structural Partitioning: A structure can be divided into two. They are: Horizontal partitioning and Vertical partitioning.

Horizontal Partitioning: In Horizontal partitioning we define separate branches of the modular hierarchy for each major program funtion.

Vertical Partioning: It recommends a top-down approach to program architecture. Top level modules should perform control functions while processing and computation, etc. should be delegated to lower level functions. This makes the system more maintainable, which is a key quality factor.

back to top

Data Structure: It is the logical relationship among indivisual elements of of data. It represents the organization of data, methods of access, degree of associativity, and processing alternatives for information. 

back to top

Software Procedure: It provides a precise specification of processing, including sequences of events, exact decision points, repetitive operations, and even data organization and structure. That is, it focuses on processing details of each module of the system.

back to top

Information Hiding: Effective modularity can be achieved by defining a set of independent modules that communicate with each other. Modules must be designed in such a way that functions and data within one module are inaccessible to those modules which do not need the information. 

back to top

 

 

Hosted by www.Geocities.ws

1