Software Design Strategies - Software Engineering

What is software Design?

The software requirements of the user are materialized and transformed into implementation by the software design process. The best possible solution for the user requirements is developed by the software design. In the process of materializing the requirements, the optimal implementation design is identified by drafting a plan.

Software design has different variants. Some of the variants are as follows -

Structured Design

The problems of the software are categorized into different elements of solution. The design of the solution is considered as the structured design. The way and the process of solving the problem is made easy to understand by structured design. Structured design enables to simplify the problem by the designer.

According to the principle of ‘divide and conquer’, a particular problem is divided into well-structured small problems and each of the small problems is solved.

By using solution modules, the divided problems are solved. The modules are designed in a well organized manner an aims in achieving the best solution for the problem.

The modules are enabled to interact among themselves. Some of the specific rules are followed by the modules for their interaction. They are -

Cohesion – All the elements of similar functions are grouped.

Coupling – Interaction among the modules.

A structured design that possesses high cohesion and low coupling is considered as a good structured design.

Function Oriented Design

Functions constitute the sub-systems of a system and which are meant for executing the system tasks. System constitutes the top view for all the functions.

Some of the properties of structured design are followed by function oriented design. Even the Function Oriented Design follows the principle of divide and conquer.

The information and the operation of the transactions are hidden by splitting the system into smaller functions by the function oriented design mechanism. The global information is shared by these functional modules and the information of the modules is shared among themselves.

The state of the program is changed by the function, when that particular function is called by the program. Other modules hesitate the change. Function oriented design best suites where the state of program is not considered and where input is considered by the functions.

Design Process

  • Data flow diagram depicts the flow of the data in the system.
  • The process of changing the state and the data of the system is depicted by DFD.
  • The system is divided into different smaller sub-system based on their operations is called functions.
  • Each of the functions are described.

Object Oriented Design

The main focus of object oriented design is on entities. The strategies developed by this object oriented design also focus on the characteristics of entities. There are different concepts used in Object Oriented Design. They are -

  • Objects – Objects are the entities of the system. Examples of objects are company, person, customer etc. Each of the entity has its own attributes which are performed by adopting some methods.

  • Classes – Object is described in a class. The instant of the class is object. The features of the object, functions and methods are described and defined by the class.

Different sources of methods or actions, the functions are described and variables constitute the stored attributes of the solution design.

  • Encapsulation – Encapsulation is a combination of attributes and methods. The data and the methods of the object are not allowed to access by encapsulation. This process of restriction is known as information hiding.
  • Inheritance – Similar classes are piled up in a hierarchy by the process of inheritance. The variables and methods can be imported by the lower sub-class from the next higher class. Inheritance facilitates in creating generalized classes by defining specific classes.
  • Polymorphism – Same name can be assigned to different methods that undertake similar task but differ in arguments. This process in known as polymorphism. A variety of tasks are performed by a single interface. The code is executed on the basis of the function that is invoked.

Design Process

The steps involved in the design process of object oriented design are as follows -

  • The earlier system, the system sequence diagram or the requirements can be used for developing a solution design.
  • Objects with similar attribute characteristics are identified and grouped into classes.
  • Define the relation and the class hierarchy.
  • Define the framework of the application.

What are the different approaches for Software Design?

The following are considered as the approaches for software design.

Top Down Design

Each system is divided into several sub-systems and components. Each of the sub-systems is further divided into set of sub-systems and components. This process of division facilitates in forming of a system hierarchy structure.

The complete software system is considered as a single entity and in relation to the characteristics; the system is split into sub-system and component. The same is done with each of the sub-systems. This process is continued until the lowest level of the system is reached.

The design is started initially by defining the system as a whole and then keeps on adding definitions of the sub-systems and components. When all the definitions are combined together, it turns out to be a complete system.

For the solutions of the software need be developed from the ground level, top-down design best suits the purpose.

Bottom-up Design

The design starts with the lowest level components and sub-systems. Y using these components, the next immediate higher level components and sub-systems are created or composed. The process is continued till all the components and sub-systems are composed into a single component and which is considered as the complete system. The amount of abstraction grows high as the design moves to more high levels.

By using the basic information existing system, when a new system needs to be created, the bottom-up strategy best suits the purpose.

It is to be considered that neither of the strategies is practiced individually. They are always combined together and practiced.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd Protection Status

Software Engineering Topics