Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
5 views

Lesson - 6 Software Design

Uploaded by

09hashmi09
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Lesson - 6 Software Design

Uploaded by

09hashmi09
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

SE Chapter

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 )

Prepared By : Mohibullah Ayoubi


Software Design
Software design is a mechanism to transform user requirements into some suitable form, which helps the
programmer in software coding and implementation.

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.

SDL Next Slide.

Prepared By : Mohibullah Ayoubi


Prepared By : Mohibullah Ayoubi
Objectives of Software Design
Following are the purposes of Software design:

Prepared By : Mohibullah Ayoubi


Software Design Principles
Software design principles are concerned with providing means to handle the complexity of the design process
effectively. Effectively managing the complexity will not only reduce the effort needed for design but can also
reduce the scope of introducing errors during design.

Prepared By : Mohibullah Ayoubi


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 can be
captured separately.
For software design, the goal is to divide the problem into manageable pieces.

Benefits of Problem Partitioning:

 Software is easy to understand


 Software becomes simple
 Software is easy to test
 Software is easy to modify
 Software is easy to maintain
 Software is easy to expand

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.

Prepared By : Mohibullah Ayoubi


2-Abstraction Con…
Here, there are two common abstraction mechanisms

 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.

Prepared By : Mohibullah Ayoubi


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.

The desirable properties of a modular system are:

 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.

Prepared By : Mohibullah Ayoubi


4-Strategy of Design

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.

To design a system, there are two possible approaches:

1. Top-down Approach
2. Bottom-up Approach

Prepared By : Mohibullah Ayoubi


1- Top-down Approach
This approach starts with the identification of the main components and then decomposing them into their
more detailed sub-components.

Prepared By : Mohibullah Ayoubi


2- Bottom-up Approach :
This approach starts with the identification of the main components and then decomposing them into their
more detailed sub-components.

Prepared By : Mohibullah Ayoubi


Function Oriented Design
Function Oriented design is a method to software design where the model is decomposed into a set of
interacting units or modules where each unit or module has a clearly defined function. Thus, the system is
designed from a functional viewpoint.

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:

Prepared By : Mohibullah Ayoubi


1- Data Flow Diagram

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.

Prepared By : Mohibullah Ayoubi


Symbols

Prepared By : Mohibullah Ayoubi


The report generator produces a
report which describes all of the
named entities in a flow diagram.

Prepared By : Mohibullah Ayoubi


2- Data Dictionaries
A data dictionary lists all data elements appearing in the DFD model of a system. The data items listed contain all
data flows and the contents of all data stores looking on the DFDs in the DFD model of a system.

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.

Prepared By : Mohibullah Ayoubi


3- Structured Charts
It partitions a system into block boxes. A Black box system that functionality is known to the user without the
knowledge of internal design.

Prepared By : Mohibullah Ayoubi


Structured Chart is a graphical representation which shows:

 System partitions into modules


 Hierarchy of component modules

 The relation between processing modules


 Interaction between modules

 Information passed between modules

Prepared By : Mohibullah Ayoubi


The following notations are used in structured chart:

Prepared By : Mohibullah Ayoubi


4- Pseudo-code
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 phases that are structured by
keywords such as If-Then-Else, While-Do, and End.

Prepared By : Mohibullah Ayoubi


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.

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.

Classes may inherit features from the superclass.

Prepared By : Mohibullah Ayoubi


The different terms related to object design are:

Prepared By : Mohibullah Ayoubi


1-Objects: All entities involved in the solution design are known as objects. For example, person, banks,
company, and users are considered as objects. Every entity has some attributes associated with it and has some
methods to perform on the attributes.

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.

Prepared By : Mohibullah Ayoubi


6-Inheritance: OOD allows similar classes to stack up in a hierarchical manner where the lower or sub-classes
can import, implement, and re-use allowed variables and functions from their immediate super classes. This
property of OOD is called an inheritance. This makes it easier to define a specific class and to create generalized
classes from specific ones.

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.

Prepared By : Mohibullah Ayoubi


User Interface Design
The visual part of a computer application or operating system through which a client interacts with a computer
or software. It determines how commands are given to the computer or the program and how data is
displayed on the screen.

Types of User Interface

There are two main types of User Interface:

1. Text-Based User Interface or Command Line Interface


2. Graphical User Interface (GUI)

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.

Prepared By : Mohibullah Ayoubi


2- Graphical User Interface (GUI): GUI relies much more heavily on the mouse. A typical example of this type
of interface is any versions of the Windows operating systems.

Characteristics Descriptions

Multiple windows allow different information to be displayed


Windows
simultaneously on the user's screen.

Icons different types of information. On some systems, icons


Icons
represent files. On other icons describes processes.

Commands are selected from a menu rather than typed in a


Menus
command language.

A pointing device such as a mouse is used for selecting choices


Pointing
from a menu or indicating items of interests in a window.

Graphics Graphics elements can be mixed with text or the same display.

Prepared By : Mohibullah Ayoubi


Advantages
• Less expert knowledge is required to use it.
• Easier to Navigate and can look through folders quickly in a guess and check manner.
• 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.

Prepared By : Mohibullah Ayoubi


End Chapter
Reference : Ian Somerville, Advanced Software engineering 10th edition.
https://www.javatpoint.com/software-engineering-software-design

Prepared By : Mohibullah Ayoubi

You might also like