Lesson - 6 Software Design
Lesson - 6 Software Design
Software Engineering
SE
Contents
o Software Design
o Software Design Principles
o Function Oriented Design
o Object-Oriented Design
o User Interface Design
o Coupling and Cohesion ( H W )
It deals with representing the client's requirement, as described in SRS (Software Requirement
Specification) document, into a form, i.e., easily implementable using programming language.
In software design, we consider the system to be a set of components or modules with clearly defined
behaviors & boundaries.
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 well as the
component being designed.
Functional Abstraction
Data Abstraction
Functional Abstraction
I. A module is specified by the method it performs.
II. The details of the algorithm to accomplish the functions are not visible to the user of the fun
Functional abstraction forms the basis for Function oriented design approaches.
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.
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.
A good system design strategy is to organize the program modules in such a method that are easy to develop
and latter too, change.
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.
1. Top-down Approach
2. Bottom-up Approach
Design Notations
Design Notations are primarily meant to be used
during the process of design and are used to
represent design or design decisions. For a
function-oriented design, the design can be
represented graphically or mathematically by the
following:
Data-flow design is concerned with designing a series of functional transformations that convert system inputs
into the required outputs. The design is described as data-flow diagrams. These diagrams show how data flows
through a system and how the output is derived from the input through a series of functional transformations.
Data-flow diagrams are a useful and intuitive way of describing a system. They are generally understandable
without specialized training, notably if control information is excluded. They show end-to-end processing. That is
the flow of processing from when data enters the system to where it leaves the system can be traced.
Data-flow design is an integral part of several design methods, and most CASE tools support data-flow diagram
creation. Different ways may use different icons to represent data-flow diagram entities, but their meanings are
similar.
A data dictionary lists the objective of all data items and the definition of all composite data elements in terms
of their component data items.
For the smallest units of data elements, the data dictionary lists their name and their type.
A data dictionary plays a significant role in any software development process because of the following reasons:
A Data dictionary provides a standard language for all relevant information for use by engineers working
in a project. A consistent vocabulary for data items is essential since, in large projects, different
engineers of the project tend to use different terms to refer to the same data, which unnecessarily
causes confusion.
The data dictionary provides the analyst with a means to determine the definition of various data
structures in terms of their component elements.
For example, in a Library Automation Software, each library representative may be a separate object with its
data and functions to operate on these data.
The tasks defined for one purpose cannot refer or change data of other objects.
Objects have their internal data which represent their state.
Similar objects create a class. In other words, each object is a member of some class.
2-Classes: A class is a generalized description of an object. An object is an instance of a class. A class defines all
the attributes, which an object can have and methods, which represents the functionality of the object.
3-Messages: Objects communicate by message passing. Messages consist of the integrity of the target object,
the name of the requested operation, and any other action needed to perform the function. Messages are often
implemented as procedure or function calls.
4-Abstraction In object-oriented design, complexity is handled using abstraction. Abstraction is the removal of
the irrelevant and the amplification of the essentials.
5-Encapsulation: Encapsulation is also called an information hiding concept. The data and operations are linked
to a single unit. Encapsulation not only bundles essential information of an object together but also restricts
access to the data and methods from the outside world.
7-Polymorphism: OOD languages provide a mechanism where methods performing similar tasks but vary in
arguments, can be assigned the same name. This is known as polymorphism, which allows a single interface is
performing functions for different types. Depending upon how the service is invoked, the respective portion of
the code gets executed.
1- Text-Based User Interface: This method relies primarily on the keyboard. A typical example of this is UNIX.
Advantages Disadvantages
• Many and easier to customizations options. • Relies heavily on recall rather than recognition.
• Typically capable of more important tasks. • Navigation is often more difficult.
Characteristics Descriptions
Graphics Graphics elements can be mixed with text or the same display.