SE ch5

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 24

Fundamental of Software Engineering

CHAPTER FIVE:
SOFTWARE DESIGN
Faculty of Technology
Department of Computer Science
Debre Tabor University
March, 2021
Objectives
Define SW Design
Understand the concept of Design
Understand SW Architecture
Identify types of Design
5.1 Software design
Software design is an iterative process through which requirements
are translated into a “blueprint” for constructing the software.
Initially, the blueprint depicts a holistic view of software.
That is, the design is represented at a high level of abstraction— a
level that can be directly traced to the specific system objective
and more detailed data, functional, and behavioral requirements.
Software design is both a process and a model.
The design process is a sequence of steps that enable the designer
to describe all aspects of the software to be built.
Creative skill, past experience, a sense of what makes “good”
software, and an overall commitment to quality are critical success
factors for a competent design.
Cont.…

 Software design deals with transforming the customer


requirements, as described in the SRS document, into a form
(a set of documents) that is suitable for implementation in a
programming language.
 A good software design is seldom arrived by using a single
step procedure but rather through several iterations through a
series of steps. Design activities can be broadly classified
into two important parts:
• Preliminary (or high-level) design and
• Detailed design
5.1.1 Preliminary and detailed design activities
The meaning and scope of two design activities (i.e. high-
level and detailed design) tend to vary considerably from
one methodology to another.
High-level design means identification of different modules
and the control relationships among them and the definition
of the interfaces among these modules.
A popular way is to use a tree-like diagram called the structure
chart to represent the control hierarchy in a high-level design.
During detailed design, the data structure and the algorithms of
the different modules are designed. The outcome of the detailed
design stage is usually known as the module-specification
document.
5.1.2 Items developed during the software design phase
For a design to be easily implemented in a conventional programming
language, the following items must be designed during the design
phase.
Different modules required to implement the design solution.
Control relationship among the identified modules. The
relationship is also known as the call relationship or invocation
relationship among modules.
Interface among different modules. The interface among
different modules identifies the exact data items exchanged
among the modules.
Data structures of the individual modules.
Algorithms required implementing each individual module.
5.1.3 Characteristics of a good software design
The characteristics are listed below:
 Correctness: A good design should correctly implement all the
functionalities identified in the SRS document.
 Understandability: A good design is easily understandable.
 Efficiency: It should be efficient.
 Maintainability: It should be easily amenable to change.
5.2 Software Architecture
Software architecture alludes to “the overall structure of the
software and the ways in which that structure provides
conceptual integrity for a system”.
In its simplest form, architecture is the hierarchical structure of
program components (modules), the manner in which these
components interact and the structure of data that are used by the
components.
Cont..
One goal of software design is to derive an architectural
rendering of a system.
This rendering serves as a framework from which more
detailed design activities are conducted.
5.4 Function Oriented Detailed Design

5.4.1 Structuring Systems Requirements


 The information gathered during the requirements
gathering process needs to be organized into a form that is a
meaningful representation of the existing system and of the
requirements for the new system.
 This is done by producing models of the processing
elements and data transformations and then of the structure
of the data. This entire process is called structuring
requirements.
There are two stages in the structuring process
 Process modeling
 Conceptual data modeling
Process Modeling

Involves graphically representing the processes, or actions that


capture, manipulate, store and distribute data between a system
and its environment and among the components within a system.
A common form of a process model is a data flow diagram
(DFD).
DFD is a graphic that illustrates the movement of data between
external entities and the processes and data stores within a
system.
Conceptual Data Modeling
Involves representing the data in a system or organization, to
show the overall structure of the data. A data model should be
independent of any DBMS and of other implementation
considerations.
Entity-Relationship diagram(ER) data models are commonly
used diagrams that show how data is organized in a system.
5.4.2 Process Modeling with Data Flow Diagrams
The DFD is an excellent communication tool for analysts to
model processes and functional requirements.
DFD’s are versatile programming tools. With only four
symbols, it can represent both physical and logical
information systems.
Data flow
The directional movement of data to and from external
entities, the process and data stores. If it flows into a data
store, means a write, update, delete, etc. Flows out of data
stores, mean read, query , display, select types of transaction.
Symbol: Solid line with arrow. Each data flow is identified
with a descriptive name that represents the information on the
data flow.
Example:
Process

Is a work or actions performed on data so that they are


transformed, stored, or distributed.
When modeling the data processing of a system, it doesn’t
matter whether process is performed manually or by a
computer.
Depending on the level of the diagram it may represent the
whole system as in a Context (level 0) diagram or a
business area, process (activity), function, etc. in lower
levels.
Symbol: Circle or a Rounded Rectangle.
Example :
Data Store

A repository of information. In the physical model, this represents a


file, table.
Symbol: Two parallel lines or open ended rectangle
Example:-

External Entity
It is a source/sink ( the origin and /or destination of the data).
A person or group which interacts with the system. Something
outside the system. eg. Customer, supplier, government agency,
accounting dept, etc. usually external to the business or system but
may be internal
Data must be originated outside a system from one or more sources,
and the system must produce information to one or more sinks.
Symbol: rectangular box which may be shaded.
Conti….

Example:
Developing DFD’s
The DFD for Hoosier burger food ordering system - An
example
A context diagram is a DFD that provides a general overview
of a system, other DFD’s can be used to focus the details of a
context diagram.
This context diagram contains only one process, no data
stores, four data flows, and three external entity. The single
process labeled “0”, represents the entire system.
All context diagrams have only one process labeled “0”.
Cont...

Figure-5.1 Context diagram (Level-0) for Hoosier burger


automated system
Cont...
After drawing the context diagram, the next step is to analyze the
processes are represented by the single process. There are four
main processes are identified, the processes represent the major
functions of the system, the major functions are
o Capturing data from different sources (process 1)
o Maintaining data stores (process 2 and 3)
o Producing and distributing data to different sinks (process 4)
o High level descriptions of data transformation operations (process
1)
The flow from first process 1. are 1) the food order is transmitted
to the kitchen, 2) the customer order is transformed into a list of
goods sold, 3) the customer order is transformed into inventory
data, and 4) the process generates a receipt for the customer.
Cont...
Data Flow Diagramming Rules
Process
A. No process can have only outputs. It is making data
from nothing. If an object has only outputs, then it must
be a source.

B. No process can have only inputs. If an object has only


inputs, then it must be a sink

C. A process has a verb phrase label


Cont.…
Data Store
D. Data cannot move directly from one data source to
another data source. Data must be moved by a process.

E. Data cannot move directly from an outside source to a


data store. Data must be moved by a process that receives
data from the source and places the data into the data
store.
Cont.…
Data Store
F. Data cannot move directly to an outside sink from a
data store. Data must be moved by a process.

G. A data store has a noun phrase label.


External Entity (Source / Sink)
 H. Data cannot move directly from a source to a sink. They
must be moved by a process if the data are of any concern to
our system. Otherwise, the data flow is not shown on the DFD.
Cont.…
J. A data flow has only one direction of flow between
symbols. It may flow in both directions between a process
and a data store to show a read before an update. The latter is
usually indicated, however by two separate arrows because
these happen at different times.

K. A fork in a data flow means that exactly the same data go


from a common location to two or more different processes,
data stores, or sources/sinks.
Cont.…
L. A join in a data flow means that exactly the same data
come from any of two or more different processes , data
stores, or sources/sinks to a common location.

M. A data flow cannot go directly back to same process it


leaves. There must be at least one other process that handles
the data flow, produces some other data flow, and returns the
original data flow to the beginning process.
Cont.…
N. A data flow to a data store means update (delete or
change)
O. A data flow from a data store means retrieve of use
P. A data flow has a noun phrase label. More than one data
flow noun phrase can appear on a single arrow as long as
all of the flows on the same arrow move together as one
package.
Thank You!

You might also like