Designing the System
The Design Process
Architectural design defines the relationship
among the major structural elements of the
program.
Interface design describes how software
communicates with systems that interoperate
within it and with people who use it.
Component-level design transforms structural
elements of the program architecture into a
procedural description of software components.
Design is an iterative process during which
requirements are translated into an outline for
constructing the software.
Coupling
 Coupling refers to the strength of the
relationship between modules in a system.
 The strength of a relationship, that is,
coupling, is determined by the data passes
between modules and the interdependence
between the modules.
 Good system design implies that
interdependence between modules must be
minimum. Such modules are called loosely
coupled modules
Design Concepts
 Abstraction
 Stepwise Refinement
 Modularity
 Software Architecture
 Control Hierarchy
 Structural Partitioning
 Data Structure
 Software Procedure
 Information Hiding
 Coupling
Abstraction
 Abstraction is a process whereby we can identify
the important aspects of any event or fact and
ignore its details.
 Abstraction is a separation of concerns wherein
we separate the concern of important aspects from
the concern of the unimportant details. There can
be many levels of abstraction.
 Procedural abstraction is a named sequence of
instructions that has a specific and limited function.
 Data abstraction is a named collection of data
that describes a data object. Data abstraction
includes a set of attributes that describe the data
object.
Stepwise Refinement
Stepwise Refinement is a process of elaboration.
A statement, which describes function or
information (only conceptually) but gives no
information of the procedural aspects of the
function, can be refined or improved upon to
provide more detail as each successive
refinement occurs.
 listed the following activities to be a part of
stepwise refinement:
1- Decomposing design decisions to elementary
levels
2- Separating design aspects that are not truly
interdependent 3- Postponing decisions
concerning representation details as long as
possible.
4- Carefully demonstrating that each successive
step in the refinement process is an expansion of
Modularity
 a software project can be broken up into
modules, distributed, and later integrated into
one system.
 This attribute of software that allows a program
to be intellectually manageable by breaking it up
into smaller portions is called modularity.
 Modularity does not mean breaking up a module
into smaller portions indefinitely.
 This approach will not work because as the
number of modules grows, the effort (cost) taken
to integrate the modules also grows.
 A module in the broadest sense could be a
subroutine, a function, or a subprogram
Coupling
 Coupling refers to the strength of the
relationship between modules in a
system.
 The strength of a relationship, that is,
coupling, is determined by the data
passes between modules and the
interdependence between the modules.
 Good system design implies that
interdependence between modules
must be minimum. Such modules are
called loosely coupled modules
Coupling
Different kinds of coupling
 Data Coupling - In this form of coupling, data is passed
across modules through parameters. This is the most
common form of coupling.
 In data coupling, the parameters must be elementary
forms of data.
 Content coupling - This kind of coupling occurs when
one module modifies local data or instructions in another
module. This form of coupling should never be used. At
best, one can call it intertwining and not coupling. It is
unstructured programming. If we keep jumping from one
module to another and back to where we started, the
result could be chaos.
 Common coupling: In this kind of coupling, modules are
bound together by global data structures. Common
coupling refers to the use of global or common systems
Stamp coupling
 This is the same type of coupling as indicated under
data coupling; the main difference being that
composite or group data is passed across modules in
stamp coupling, while elementary data was passed in
data coupling.
 In the interest computation example, if we pass the
entire loan record for computation of interest, then it is
stamp coupling as we are passing composite
information.
 The receiving module has to break up composite data
into elementary data before processing.
 Thus, if the layout of the loan record changes, the
sending and receiving modules will have to be
modified.
 Coupling is therefore more than data coupling.
 Typically, this technique should be used when most of
the fields in a record are going to be used, and the
overhead of splitting and putting it together may be
Cohesion
 Cohesion refers to the strength of the relationship between
elements of the same module in a system.
 Cohesion of a module represents how tightly bound the
internal elements of the module are to one another.
 Cohesion of a module gives an idea to the designer about
whether the different elements of a module belong together in
the same module.
 In that context, it can be viewed as the opposite of coupling.
 In coupling, we wanted each module to be independent and
interact with other modules with the least coupling.
 However, in cohesion, we want all activities within the module
to be as tightly connected to each other as possible, which
means that cohesion must be as high as possible.
 The degree of coupling and cohesion between various
modules is a measure of the quality of system design.
Cohesion
Different types of cohesion are
 Coincidental: This is the lowest level of cohesion.
 It occurs when the elements within a module have no
apparent relationship to one another.
 Logical: Under this type of module division, activities
belonging to the same category are grouped
together.
 We can group all reporting or querying activities
together. The system is thus divided into logical
groups.
 Temporal: In this type of module division, activities
Different types of cohesion are
 Communication: This form of cohesion relates
to a situation where all modules share some
common data.
 It is similar to modules having common or global
coupling.
 Functional: All activities in the module are
functionally related, which means that they are
activities involved in solving a similar problem.
 Informational: Informational cohesion of a
module arises when the module contains a
complex data structure and several routines to
manipulate the data structure.
Design Tools
 Commonly used design tools are:
1- Structure chart
2- Structured Flowchart
3- Structured English
 The major tool used in Design to depict
the structure of the system is the
structure chart
Structure chart
Structure chart for Payroll Sys.
Structured Flowchart
Structured Flowchart

Software Design abtic.pptx

  • 1.
  • 2.
    The Design Process Architecturaldesign defines the relationship among the major structural elements of the program. Interface design describes how software communicates with systems that interoperate within it and with people who use it. Component-level design transforms structural elements of the program architecture into a procedural description of software components. Design is an iterative process during which requirements are translated into an outline for constructing the software.
  • 3.
    Coupling  Coupling refersto the strength of the relationship between modules in a system.  The strength of a relationship, that is, coupling, is determined by the data passes between modules and the interdependence between the modules.  Good system design implies that interdependence between modules must be minimum. Such modules are called loosely coupled modules
  • 4.
    Design Concepts  Abstraction Stepwise Refinement  Modularity  Software Architecture  Control Hierarchy  Structural Partitioning  Data Structure  Software Procedure  Information Hiding  Coupling
  • 5.
    Abstraction  Abstraction isa process whereby we can identify the important aspects of any event or fact and ignore its details.  Abstraction is a separation of concerns wherein we separate the concern of important aspects from the concern of the unimportant details. There can be many levels of abstraction.  Procedural abstraction is a named sequence of instructions that has a specific and limited function.  Data abstraction is a named collection of data that describes a data object. Data abstraction includes a set of attributes that describe the data object.
  • 6.
    Stepwise Refinement Stepwise Refinementis a process of elaboration. A statement, which describes function or information (only conceptually) but gives no information of the procedural aspects of the function, can be refined or improved upon to provide more detail as each successive refinement occurs.  listed the following activities to be a part of stepwise refinement: 1- Decomposing design decisions to elementary levels 2- Separating design aspects that are not truly interdependent 3- Postponing decisions concerning representation details as long as possible. 4- Carefully demonstrating that each successive step in the refinement process is an expansion of
  • 7.
    Modularity  a softwareproject can be broken up into modules, distributed, and later integrated into one system.  This attribute of software that allows a program to be intellectually manageable by breaking it up into smaller portions is called modularity.  Modularity does not mean breaking up a module into smaller portions indefinitely.  This approach will not work because as the number of modules grows, the effort (cost) taken to integrate the modules also grows.  A module in the broadest sense could be a subroutine, a function, or a subprogram
  • 8.
    Coupling  Coupling refersto the strength of the relationship between modules in a system.  The strength of a relationship, that is, coupling, is determined by the data passes between modules and the interdependence between the modules.  Good system design implies that interdependence between modules must be minimum. Such modules are called loosely coupled modules
  • 9.
  • 10.
    Different kinds ofcoupling  Data Coupling - In this form of coupling, data is passed across modules through parameters. This is the most common form of coupling.  In data coupling, the parameters must be elementary forms of data.  Content coupling - This kind of coupling occurs when one module modifies local data or instructions in another module. This form of coupling should never be used. At best, one can call it intertwining and not coupling. It is unstructured programming. If we keep jumping from one module to another and back to where we started, the result could be chaos.  Common coupling: In this kind of coupling, modules are bound together by global data structures. Common coupling refers to the use of global or common systems
  • 11.
    Stamp coupling  Thisis the same type of coupling as indicated under data coupling; the main difference being that composite or group data is passed across modules in stamp coupling, while elementary data was passed in data coupling.  In the interest computation example, if we pass the entire loan record for computation of interest, then it is stamp coupling as we are passing composite information.  The receiving module has to break up composite data into elementary data before processing.  Thus, if the layout of the loan record changes, the sending and receiving modules will have to be modified.  Coupling is therefore more than data coupling.  Typically, this technique should be used when most of the fields in a record are going to be used, and the overhead of splitting and putting it together may be
  • 12.
    Cohesion  Cohesion refersto the strength of the relationship between elements of the same module in a system.  Cohesion of a module represents how tightly bound the internal elements of the module are to one another.  Cohesion of a module gives an idea to the designer about whether the different elements of a module belong together in the same module.  In that context, it can be viewed as the opposite of coupling.  In coupling, we wanted each module to be independent and interact with other modules with the least coupling.  However, in cohesion, we want all activities within the module to be as tightly connected to each other as possible, which means that cohesion must be as high as possible.  The degree of coupling and cohesion between various modules is a measure of the quality of system design.
  • 13.
  • 14.
    Different types ofcohesion are  Coincidental: This is the lowest level of cohesion.  It occurs when the elements within a module have no apparent relationship to one another.  Logical: Under this type of module division, activities belonging to the same category are grouped together.  We can group all reporting or querying activities together. The system is thus divided into logical groups.  Temporal: In this type of module division, activities
  • 15.
    Different types ofcohesion are  Communication: This form of cohesion relates to a situation where all modules share some common data.  It is similar to modules having common or global coupling.  Functional: All activities in the module are functionally related, which means that they are activities involved in solving a similar problem.  Informational: Informational cohesion of a module arises when the module contains a complex data structure and several routines to manipulate the data structure.
  • 16.
    Design Tools  Commonlyused design tools are: 1- Structure chart 2- Structured Flowchart 3- Structured English  The major tool used in Design to depict the structure of the system is the structure chart
  • 17.
  • 18.
    Structure chart forPayroll Sys.
  • 19.
  • 20.