(13636) Sda Assign 1....
(13636) Sda Assign 1....
(13636) Sda Assign 1....
22222024202
3-24
SUBJECT:COMPUTER SCIENCE
SUBMITTED BY
ASSIGNMENT:1
COURSE:SDA
DESIGN
Design means to draw or plan something to show the look, functions and working of it.
SOFTWARE DESIGN
It is also a process to plan or convert the software requirements into a step that are needed to be
carried out to develop a software system. There are several principles that are used to organize and
arrange the structural components of Software design. Software Designs in which these principles are
applied affect the content and the working process of the software from the beginning.
1. PROBLEM PARTITIONING
For small problem, we can handle the entire problem at once but for the significant problem, divide the
problems and conquer the problem it means to divide the problem into smaller pieces so that each piece
For software design, the goal is to divide the problem into manageable pieces.
These pieces cannot be entirely independent of each other as they together form the system. They have to
cooperate and communicate to solve the problem. This communication adds complexity.
2. ABSTRACTION
An abstraction is a tool that enables a designer to consider a component at an abstract level without
bothering about the internal details of the implementation. Abstraction can be used for existing element as
Functional Abstraction
Data Abstraction
i. FUNCTIONAL ABSTRACTION
Functional abstraction forms the basis for Function oriented design approaches.
Details of the data elements are not visible to the users of data. Data Abstraction forms the basis
3. MODULARITY
Modularity specifies to the division of software into separate modules which are differently named and
addressed and are integrated later on in to obtain the completely functional software. It is the only
property that allows a program to be intellectually manageable. Single large programs are difficult to
understand and read due to a large number of reference variables, control paths, global variables, etc.
Each module is a well-defined system that can be used with other applications.
Each module has single specified objectives.
Modules can be separately compiled and saved in the library.
Modules should be easier to use than to build.
Modules are simpler from outside than inside.
i. MODULAR DESIGN
Modular design reduces the design complexity and results in easier and faster implementation by allowing
parallel development of various parts of a system. We discuss a different section of modular design in
Functional independence is achieved by developing functions that perform only one kind of task and do
not excessively interact with other modules. Independence is important because it makes implementation
more accessible and faster. The independent modules are easier to maintain, test, and reduce error
propagation and can be reused in other programs as well. Thus, functional independence is a good design
The fundamental of Information hiding suggests that modules can be characterized by the design
decisions that protect from the others, i.e., In other words, modules should be specified that data include
within a module is inaccessible to other modules that do not need for such information.
The use of information hiding as design criteria for modular system provides the most significant
benefits when modifications are required during testing's and later during software maintenance. This is
because as most data and procedures are hidden from other parts of the software, inadvertent errors
introduced during modifications are less likely to propagate to different locations within the software.
4. TOP-DOWN APPROACH:
This approach starts with the identification of the main components and then decomposing them
5. BOTTOM-UP APPROACH:
A bottom-up approach begins with the lower details and moves towards up the hierarchy, as