0% found this document useful (0 votes)
5 views4 pages

What Is Software Design

Software design is the process of transforming user requirements into implementation, focusing on optimal solutions through structured, function-oriented, and object-oriented designs. Various approaches, such as top-down and bottom-up design, are utilized to create a system hierarchy and develop components effectively. Key concepts include cohesion, coupling, encapsulation, inheritance, and polymorphism, which aid in organizing and managing software complexity.

Uploaded by

aa.erbol123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

What Is Software Design

Software design is the process of transforming user requirements into implementation, focusing on optimal solutions through structured, function-oriented, and object-oriented designs. Various approaches, such as top-down and bottom-up design, are utilized to create a system hierarchy and develop components effectively. Key concepts include cohesion, coupling, encapsulation, inheritance, and polymorphism, which aid in organizing and managing software complexity.

Uploaded by

aa.erbol123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

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.

You might also like