Professional Documents
Culture Documents
Cycle), Which Moves The Concentration From The Problem Domain To The
Cycle), Which Moves The Concentration From The Problem Domain To The
The software design phase is the first step in SDLC (Software Design Life
Cycle), which moves the concentration from the problem domain to the
solution domain.
Completeness: The design should have all components like data structures,
modules, and external interfaces, etc.
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 can be captured
separately.
For software design, the goal is to divide the problem into manageable pieces.
Software Design
• Functional Abstraction
• Data Abstraction
Software Design
• Functional Abstraction
a) A module is specified by the method it performs.
b) The details of the algorithm to accomplish the functions are not
visible to the user of the function.
• Data Abstraction
Details of the data elements are not visible to the users of data. Data
Abstraction forms the basis for Object Oriented design approaches.
Software Design
Single large programs are difficult to understand and read due to a large
number of reference variables, control paths, global variables, etc.
Software Design
Advantages of Modularity:
• It allows large programs to be written by several or different people
Disadvantages of Modularity
• There are several disadvantages of Modularity
• More linkage required, run-time may be longer, more source lines must be
written, and more documentation has to be done
Software Design
Software Design Principles
Modularity
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.
Structured design methods help developers to deal with the size and
complexity of programs.
Analysts generate instructions for the developers about how code should be
composed and how pieces of code should fit together to form a program.
Bottom-up Approach
Software Design
Software Design Principles
Strategy of Design
Two modules that are tightly coupled are strongly dependent on each other.
However, two modules that are loosely coupled are less dependent on each
other.
Thus, it can be said that a design with high coupling will have more errors.
Software Design
Coupling and Cohesion
Module Coupling
Types of Module Coupling
Software Design
Coupling and Cohesion
Module Coupling
Types of Module Coupling
Design Notations
It partitions a system into block boxes. A Black box system that functionality is
known to the user without the knowledge of internal design.
Software Design
Function Oriented Design
Structured Charts
Pseudo-code notations can be used in both the preliminary and detailed design
phases. Using pseudo-code, the designer describes system characteristics using
short, concise, English Language phrases that are structured by keywords such
as If-Then-Else, While-Do, and End.
Software Design
Object-Oriented Design
In the object-oriented design method, the system is viewed as a collection of
objects (i.e., entities).The state is distributed among the objects, and each object
handles its state data.
It determines how commands are given to the computer or the program and
how data is displayed on the screen.
Advantages
• Many and easier to customizations options.
Disadvantages
• Relies heavily on recall rather than recognition.
GUI Characteristics
Char Descriptions
Windows Multiple windows allow different information to be displayed
simultaneously on the user's screen.
Icons Icons different types of information. On some systems, icons
represent files. On other icons describes processes.
Menus Commands are selected from a menu rather than typed in a
command language.
Pointing A pointing device such as a mouse is used for selecting choices
from a menu or indicating items of interests in a window.
Graphics Graphics elements can be mixed with text or the same display.
Software Design
User Interface Design
Advantages
• Less expert knowledge is required to use it.
• The user may switch quickly from one task to another and can
interact with several different applications.
Disadvantages
• Typically decreased options.
• Usually less customizable. Not easy to use one button for tons of
different variations.
Software Design
User Interface Design
UI Design
Principles
Software Design
User Interface Design
UI Design
Principles
Structure: Design should organize the user interface purposefully, in the
meaningful and usual based on precise, consistent models that are apparent and
recognizable to users, putting related things together and separating unrelated
things, differentiating dissimilar things and making similar things resemble one
another. The structure principle is concerned with overall user interface
architecture.