What Is Software Design
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.
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 -
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.
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.