Dr. V Nagesh
Professor & Head,
Department of Information Technology
MVGR College of Engineering
 Is the process of describing the blue print or
sketch of the final software product in the
form of a design model
 A software product is a collection of software
modules
 A module is a part of a software product
which has data and functions together and an
interface with other module to produce some
outcome
 A software design exists between requirements engineering
and programming.
 The software design process basically consists of three
design phases or design levels:
◦ Architectural design
◦ Physical design
◦ Detailed design
Architectural design
Architectural design
Architectural design
 Correctness
 Efficiency
 Understandability
 Maintainability
 Simplicity
 Correctness
 Completeness
 Verifiability
 Portability
 Modularity
 Reliability
 Reusability
 Software design is one of the important
phases of SDLC
 Common concepts of software design are:
◦ Abstraction
◦ Information hiding
◦ Functional decomposition
◦ Design strategies
◦ Modularity
◦ Modular design
 One of the most fundamental principles taken
into account in the software development
process
 Abstraction is a process of describing a
problem at a higher level of representation
without bothering about its internal details.
 Helps in maintenance phase to understand
and maintain the system
 Separates design from implementation
 Helps in problem understanding and maintenance
 Reduces complexity of modern computer
programming for software users and engineers
 Helps in organization that can be generalized for
recovering common problems and therefore it
promotes software reuse.
 Promotes scalability and helps in making early
design decisions.
 Concept of information hiding was initially
proposed by Parnas in 1972
 Is an important design principle which is expressed
through encapsulation and abstraction.
 Helps in modularization of software projects into
small components.
 Is a process of partitioning a large and complex
problem into small, manageable and
understandable pieces.
 Uses divide and conquer
 Top-down
 Bottom-up
 Measures the independency of the parts of a
system and enhances separation of concerns
 Enhances quality factors: portability, extensibility,
compatibility, scalability etc.
 Module contains data structure, I/O statements,
instructions and processing logic
 Called into one another
 Focuses on minimizing the interconnections
between modules
 An effective modular system has low coupling
and high cohesion
 Coupling: Is the strength of interconnection
between modules. It can be either loosely
coupled or tightly coupled
 Cohesion: Is the degree to which the
elements of a single module are functionally
related to achieve an objective.
 Message coupling
 Data coupling
 Stamp coupling
 Control coupling
 External coupling
 Common coupling
 Content coupling
 Functional cohesion
 Sequential cohesion
 Communication cohesion
 Procedural cohesion
 Temporal cohesion
 Logical cohesion
 Coincidental cohesion
 Used to propose a solution for the system in a
conceptual manner once all the requirements are
available.
 A design methodology provides the techniques and
guidelines for the design process of a system.
 The most popular design activities are:
◦ Function oriented design
◦ Object oriented design
 Structure chart
Software Design Software engineering.pdf

Software Design Software engineering.pdf

  • 1.
    Dr. V Nagesh Professor& Head, Department of Information Technology MVGR College of Engineering
  • 2.
     Is theprocess of describing the blue print or sketch of the final software product in the form of a design model  A software product is a collection of software modules  A module is a part of a software product which has data and functions together and an interface with other module to produce some outcome
  • 3.
     A softwaredesign exists between requirements engineering and programming.  The software design process basically consists of three design phases or design levels: ◦ Architectural design ◦ Physical design ◦ Detailed design Architectural design Architectural design Architectural design
  • 4.
     Correctness  Efficiency Understandability  Maintainability  Simplicity  Correctness  Completeness  Verifiability  Portability  Modularity  Reliability  Reusability
  • 5.
     Software designis one of the important phases of SDLC  Common concepts of software design are: ◦ Abstraction ◦ Information hiding ◦ Functional decomposition ◦ Design strategies ◦ Modularity ◦ Modular design
  • 6.
     One ofthe most fundamental principles taken into account in the software development process  Abstraction is a process of describing a problem at a higher level of representation without bothering about its internal details.  Helps in maintenance phase to understand and maintain the system
  • 7.
     Separates designfrom implementation  Helps in problem understanding and maintenance  Reduces complexity of modern computer programming for software users and engineers  Helps in organization that can be generalized for recovering common problems and therefore it promotes software reuse.  Promotes scalability and helps in making early design decisions.
  • 8.
     Concept ofinformation hiding was initially proposed by Parnas in 1972  Is an important design principle which is expressed through encapsulation and abstraction.  Helps in modularization of software projects into small components.
  • 9.
     Is aprocess of partitioning a large and complex problem into small, manageable and understandable pieces.  Uses divide and conquer
  • 10.
  • 11.
     Measures theindependency of the parts of a system and enhances separation of concerns  Enhances quality factors: portability, extensibility, compatibility, scalability etc.  Module contains data structure, I/O statements, instructions and processing logic  Called into one another
  • 12.
     Focuses onminimizing the interconnections between modules  An effective modular system has low coupling and high cohesion  Coupling: Is the strength of interconnection between modules. It can be either loosely coupled or tightly coupled  Cohesion: Is the degree to which the elements of a single module are functionally related to achieve an objective.
  • 13.
     Message coupling Data coupling  Stamp coupling  Control coupling  External coupling  Common coupling  Content coupling
  • 14.
     Functional cohesion Sequential cohesion  Communication cohesion  Procedural cohesion  Temporal cohesion  Logical cohesion  Coincidental cohesion
  • 15.
     Used topropose a solution for the system in a conceptual manner once all the requirements are available.  A design methodology provides the techniques and guidelines for the design process of a system.  The most popular design activities are: ◦ Function oriented design ◦ Object oriented design
  • 16.