SlideShare uma empresa Scribd logo
1 de 25
DESIGN CONCEPTS & DESIGN PRINCIPLE




What are those factors which drive a good design ?
DESIGN CONCEPTS & DESIGN PRINCIPLE

    How Analysis Model Feeds DATA to the DESIGN
       Phase ?



                    CSPEC, PSPEC                       Component
                                                       Level Design

                DFD, STD                              INTERFACE
                                                      DESIGN

              DFD
                                                ARCHITECTURAL DESIGN

DOB, ERD, DATA DICT
                                                     DATA DESIGN


                                          The PYRAMID MODEL OF DESIGN
 January 13, 2012          Made by Utpal Kumar Ray                      2
DESIGN CONCEPTS & DESIGN PRINCIPLE

      TRANSITION FROM ANALYSIS TO DESIGN




January 13, 2012     Made by Utpal Kumar Ray            3
DESIGN CONCEPTS & DESIGN PRINCIPLE


  The GOAL of the DESIGN Process


    The Design should meet all the implicit and
    explicit requirement of the customer.
    The Design must be a readable and
    understandable guide for those who generates
    codes, does testing and provides maintenance.
    The Design should provide a complete picture of
    the software, addressing the data, functional and
    behavioral domains from an implementation
    perspective.


January 13, 2012     Made by Utpal Kumar Ray            4
DESIGN CONCEPTS & DESIGN PRINCIPLE

  Technical Criteria for good design


 -A Design should exhibit a good architectural structure.
 -A Design should be modular.
 -A Design should lead to the Data Structure that are
   appropriate enough for a practical object implementation.
 -A Design should contain distinct representations of data,
   architecture, interfaces and components.
 -A Design should lead to interfaces that reduce the
   complexity of connections between modules and with
   external environments.
 -A Design should be derived using repeatable method that is
   driven by information obtained during software
   requirement analysis.
January 13, 2012     Made by Utpal Kumar Ray                   5
DESIGN CONCEPTS & DESIGN PRINCIPLE

 Design Principles


- The design process should not suffer from tunnel
  vision, but should consider multiple alternative
  approaches.
- The design should be traceable to the analysis model.
- The design should not reinvent the wheel.
- The design should “minimize the intellectual distance”
  between the software and the problem as it exists in the
  real world.
- A design should exhibit uniformity and integration.

  January 13, 2012     Made by Utpal Kumar Ray            6
DESIGN CONCEPTS & DESIGN PRINCIPLE



 Design Principles ( contd. )

- The design should be structured to accommodate
  change
- The design should be structured to degrade
  gracefully, even when aberrant data, events, or operating
  conditions are encountered. It should accommodate all
  the unusual circumstances.
- The design is not coding; coding is not design.
- The design should be assessed for quality on continuous
  basis.


  January 13, 2012     Made by Utpal Kumar Ray            7
DESIGN CONCEPTS & DESIGN PRINCIPLE


  Design Concepts – Abstraction

    Each step in the software process is a refinement in the
    level of abstraction of the software solution. During
    software requirement analysis, the software solution is
    stated in terms “that are familiar in the problem
    environment”. As one move through the design
    process, the level of abstraction is reduced. Finally, the
    lowest level of abstraction is reached when the source
    code is generated. The notion of abstraction permits
    one to concentrate on a problem at some level of
    generalization without regard to the irrelevant details
    of the lower levels.


January 13, 2012     Made by Utpal Kumar Ray                     8
DESIGN CONCEPTS & DESIGN PRINCIPLE



  Design Concepts – Refinement


    Refinement is actually a process of elaboration. One
    begins with a statement of function that is defined at
    high level of abstraction. That is the statement
    describes function or information conceptually but
    provides no information about the internal workings
    of the function or the internal structure of the
    information. Refinement causes the designer to
    elaborate on the original statement, providing more
    and more details as each successive refinement
    (elaboration) occurs.

January 13, 2012     Made by Utpal Kumar Ray                 9
DESIGN CONCEPTS & DESIGN PRINCIPLE




  Design Concepts – Abstraction and Refinement


    They are complementary concepts. Abstraction
    enables a designer to specify procedure and data
    without mentioning low level details. Refinement
    helps the designer to reveal low-level details as
    design progresses. Both concepts aid designer in
    creating a complete design model as the design
    evolves.



January 13, 2012     Made by Utpal Kumar Ray            10
DESIGN CONCEPTS & DESIGN PRINCIPLE



  Design Concepts – Modularity

 - Modularity makes a big software to be more
   manageable.
 - Modularity makes a complex problem to solve more
   easily. Which means, it is easier to solve a complex big
   problem when that big problem is broken down into
   smaller manageable pieces.
 - Modularity can not be extended indefinitely as cost to
   integrate goes up as big module is broken into smaller
   modules. One has to find the region of minimum
   cost.


January 13, 2012     Made by Utpal Kumar Ray                  11
DESIGN CONCEPTS & DESIGN PRINCIPLE


 Design Concepts – Modularity (contd.)

 Modularity and Complexity of Problem

 Let C(x) be the function which defines the perceived
 complexity of a problem x, and E(x) be the function that
 defines the effort (in time) required to solve the problem.
 For the two problems P1 and P2; if C(P1) > C(P2) then E(P1) >
 E(P2).
 If there exists a big problem P which can be broken down to
 p1 and p2 then as per human problem solving nature; C(P) >
 C(p1) + C(p2).
 So it is also true that E(P) > E(p1) + E(p2).

  January 13, 2012     Made by Utpal Kumar Ray            12
DESIGN CONCEPTS & DESIGN PRINCIPLE

      Design Concepts – Modularity ( contd.)


                                        Total S/W Cost



     Cost of
                                           Region of
     effort
                                           Minimum cost




                   Cost to
                   Integrate

                                                          Cost per Module

                                         No of Modules
                               Modularity Vs. Software Cost
January 13, 2012         Made by Utpal Kumar Ray                            13
DESIGN CONCEPTS & DESIGN PRINCIPLE



  Design Concepts – Modularity ( contd. )

 - How to arrive at the correct no of modules ?
 - What should be the ideal module size ?
 - How do we know we have reached the lowest
   possible modular granularity ?

    To answer the above questions one has to
    remember the following criteria which enables one
    to understand whether the optimum module size
    is reached.


January 13, 2012     Made by Utpal Kumar Ray            14
DESIGN CONCEPTS & DESIGN PRINCIPLE

   Design Concepts – Modularity ( contd. )

  - Modular Understandability
    Module should be understood as a standalone unit
  - Modular Continuity
    A small change to the system requirements should
    not trigger a system wide changes rather than a
    change in the individual module.
  - Modular Protection
    An error condition generated in a module should
    stay in the same module, rather than propagating
    to other modules.

January 13, 2012     Made by Utpal Kumar Ray            15
DESIGN CONCEPTS & DESIGN PRINCIPLE


  Design Concepts – Modularity ( contd. )


 - Cohesion
   While breaking down a big problem to individual
   modules, it should be noted that all individual
   module should aim for high cohesion. High
   cohesion means, that module is doing a single
   task. An example of low cohesion is , when a
   module performs a set of task that are loosely
   related to each other



January 13, 2012     Made by Utpal Kumar Ray            16
DESIGN CONCEPTS & DESIGN PRINCIPLE


 Design Concepts – Modularity ( contd. )

- Coupling
  Coupling is a measure of interconnection among
  modules. One should always aim for the lowest possible
  coupling for a module. There are so many different types
  of coupling:
  1. Low Coupling: data or data structure coupling
  2. Moderate Coupling: Control flag Coupling
  3. High Coupling: Common Coupling
  4. Highest Coupling: Content Coupling


  January 13, 2012     Made by Utpal Kumar Ray            17
DESIGN CONCEPTS & DESIGN PRINCIPLE

     Design Concepts – Modularity ( contd. )




                      a                             d

Data Structure
Coupling (low)               Data Coupling                 Control Flag Coupling
                               (low)                          ( moderate )



            b                     c                           e




                               Low and Moderate Coupling

 January 13, 2012     Made by Utpal Kumar Ray                                 18
DESIGN CONCEPTS & DESIGN PRINCIPLE

        Design Concepts – Modularity ( contd. )



            a                                      d                     g




   b               c                      e              f                       h

                                              Common Coupling (high)
           Common Coupling
              ( high )                  Global Data
                                           Area                Common Coupling
                                                                  ( high )

                                High Coupling

January 13, 2012         Made by Utpal Kumar Ray                                     19
DESIGN CONCEPTS & DESIGN PRINCIPLE

     Design Concepts – Modularity ( contd. )




         a                                                           c




                                                        Data
                   b                                             d
                                    Content Coupling   Control
                                       (Highest)


                              Highest Coupling

January 13, 2012       Made by Utpal Kumar Ray                           20
DESIGN CONCEPTS & DESIGN PRINCIPLE



   Design Concepts – Information Hiding

      The modules should be specified and designed such a way,
      so that the information (procedure and data) contained
      within a module is inaccessible to other modules that have
      no need for such information. Which means all modules
      should be functionally independent.

      The use of information hiding as a design criterion for
      modular systems provides the greatest benefits when
      modification is required during testing and later, during
      software maintenance. The unintentional errors
      introduced in one module during modification are unlikely
      to propagate to other modules.



January 13, 2012     Made by Utpal Kumar Ray                   21
DESIGN CONCEPTS & DESIGN PRINCIPLE



  A Typical Design Specification


 1. Preface : A brief history about the project
 2.Audience : Who should read this document
 3. Scope of Design : A description of S/W Req Spec
 4.Data Design : A description of database structure,
    external file structure, internal data structure etc.
 5.Architectural Design : A description of evolved s/w
    architecture and how it was been derived from the
    analysis model.



January 13, 2012     Made by Utpal Kumar Ray                22
DESIGN CONCEPTS & DESIGN PRINCIPLE



  Design Spec ( contd. )

 6.Interface Design : All internal and external interface
   are described here. All human and machine interfaces
   are described here.
 7.All low levels s/w components (modules) are described
   here using English like languages ( pseudo-coding).
 8.Requirement Cross Reference : The purpose of this
   cross reference is to show that all requirements are
   satisfied by the s/w design. And also to indicate which
   are those critical components to be implemented to
   satisfy specific requirements.


January 13, 2012     Made by Utpal Kumar Ray             23
DESIGN CONCEPTS & DESIGN PRINCIPLE



  Design Spec ( contd. )


 9.Design Constraints : Physical memory limitation,
    necessity for a specialized external interface, the other
    h/w factors which may influence the design latter etc.
 10.Supplementary Data : Algorithm descriptions,
    Alternative procedure, Tabular Data etc.
 11.Software Distribution & Installation : Procedure for
    distributing s/w and installing it in the customer
    location.



January 13, 2012     Made by Utpal Kumar Ray                    24
DESIGN CONCEPTS & DESIGN PRINCIPLE




  Home Task


    Develop at least five levels of abstractions for a
    SUDOKU Game.




January 13, 2012     Made by Utpal Kumar Ray             25

Mais conteúdo relacionado

Mais procurados

Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
Piyush Gogia
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
Slideshare
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
saurabhshertukde
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
Triet Ho
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
Cliftone Mullah
 

Mais procurados (20)

Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Unit1
Unit1Unit1
Unit1
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software System Engineering - Chapter 3
Software System Engineering - Chapter 3Software System Engineering - Chapter 3
Software System Engineering - Chapter 3
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Software design
Software designSoftware design
Software design
 
Software design
Software designSoftware design
Software design
 

Destaque

12 couplingand cohesion-student
12 couplingand cohesion-student12 couplingand cohesion-student
12 couplingand cohesion-student
randhirlpu
 
Data structure and algorithms in c++
Data structure and algorithms in c++Data structure and algorithms in c++
Data structure and algorithms in c++
Karmjeet Chahal
 
C++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphismC++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphism
Jussi Pohjolainen
 

Destaque (20)

Iterator - a powerful but underappreciated design pattern
Iterator - a powerful but underappreciated design patternIterator - a powerful but underappreciated design pattern
Iterator - a powerful but underappreciated design pattern
 
12 couplingand cohesion-student
12 couplingand cohesion-student12 couplingand cohesion-student
12 couplingand cohesion-student
 
Syntax part 6
Syntax part 6Syntax part 6
Syntax part 6
 
Universal Declarative Services
Universal Declarative ServicesUniversal Declarative Services
Universal Declarative Services
 
Classes And Methods
Classes And MethodsClasses And Methods
Classes And Methods
 
The Data Link Layer
The Data Link LayerThe Data Link Layer
The Data Link Layer
 
Inheritance in c++ ppt (Powerpoint) | inheritance in c++ ppt presentation | i...
Inheritance in c++ ppt (Powerpoint) | inheritance in c++ ppt presentation | i...Inheritance in c++ ppt (Powerpoint) | inheritance in c++ ppt presentation | i...
Inheritance in c++ ppt (Powerpoint) | inheritance in c++ ppt presentation | i...
 
The Physical Layer
The Physical LayerThe Physical Layer
The Physical Layer
 
C++ Inheritance
C++ InheritanceC++ Inheritance
C++ Inheritance
 
Polymorphism and Software Reuse
Polymorphism and Software ReusePolymorphism and Software Reuse
Polymorphism and Software Reuse
 
Data structure and algorithms in c++
Data structure and algorithms in c++Data structure and algorithms in c++
Data structure and algorithms in c++
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
 
XKE - Programming Paradigms & Constructs
XKE - Programming Paradigms & ConstructsXKE - Programming Paradigms & Constructs
XKE - Programming Paradigms & Constructs
 
Hashing and Hash Tables
Hashing and Hash TablesHashing and Hash Tables
Hashing and Hash Tables
 
Association agggregation and composition
Association agggregation and compositionAssociation agggregation and composition
Association agggregation and composition
 
C++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphismC++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphism
 
WSO2 Complex Event Processor
WSO2 Complex Event ProcessorWSO2 Complex Event Processor
WSO2 Complex Event Processor
 
Cohesion and coherence
Cohesion and coherenceCohesion and coherence
Cohesion and coherence
 
Cohesion & Coupling
Cohesion & Coupling Cohesion & Coupling
Cohesion & Coupling
 
The Network Layer
The Network LayerThe Network Layer
The Network Layer
 

Semelhante a 04 design concepts_n_principles

JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
FestGroup
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
stanbridge
 
Ambler agile ea
Ambler agile eaAmbler agile ea
Ambler agile ea
drewz lin
 

Semelhante a 04 design concepts_n_principles (20)

How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application Architecture
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application Architecture
 
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
Integrating UX into your Agile Team - Daniel Elizalde
Integrating UX into your Agile Team -  Daniel ElizaldeIntegrating UX into your Agile Team -  Daniel Elizalde
Integrating UX into your Agile Team - Daniel Elizalde
 
Design final
Design finalDesign final
Design final
 
IT architecture and architects
IT architecture and architectsIT architecture and architects
IT architecture and architects
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
 
Design in construction
Design in constructionDesign in construction
Design in construction
 
Design in construction
Design in constructionDesign in construction
Design in construction
 
Unit 1
Unit 1Unit 1
Unit 1
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Ambler agile ea
Ambler agile eaAmbler agile ea
Ambler agile ea
 
Software design - Write solid software with the ideal chalk
Software design - Write solid software with the  ideal chalkSoftware design - Write solid software with the  ideal chalk
Software design - Write solid software with the ideal chalk
 
L21 Architecture and Agile
L21 Architecture and AgileL21 Architecture and Agile
L21 Architecture and Agile
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 

Mais de University of Computer Science and Technology

Mais de University of Computer Science and Technology (18)

Real time-embedded-system-lec-02
Real time-embedded-system-lec-02Real time-embedded-system-lec-02
Real time-embedded-system-lec-02
 
Real time-embedded-system-lec-06
Real time-embedded-system-lec-06Real time-embedded-system-lec-06
Real time-embedded-system-lec-06
 
Real time-embedded-system-lec-05
Real time-embedded-system-lec-05Real time-embedded-system-lec-05
Real time-embedded-system-lec-05
 
Real time-embedded-system-lec-04
Real time-embedded-system-lec-04Real time-embedded-system-lec-04
Real time-embedded-system-lec-04
 
Real time-embedded-system-lec-03
Real time-embedded-system-lec-03Real time-embedded-system-lec-03
Real time-embedded-system-lec-03
 
Real time-embedded-system-lec-02
Real time-embedded-system-lec-02Real time-embedded-system-lec-02
Real time-embedded-system-lec-02
 
Real time-embedded-system-lec-07
Real time-embedded-system-lec-07Real time-embedded-system-lec-07
Real time-embedded-system-lec-07
 
12 software maintenance
12 software maintenance12 software maintenance
12 software maintenance
 
11 software testing_strategy
11 software testing_strategy11 software testing_strategy
11 software testing_strategy
 
10 software testing_technique
10 software testing_technique10 software testing_technique
10 software testing_technique
 
09 coding standards_n_guidelines
09 coding standards_n_guidelines09 coding standards_n_guidelines
09 coding standards_n_guidelines
 
08 component level_design
08 component level_design08 component level_design
08 component level_design
 
07 interface design
07 interface design07 interface design
07 interface design
 
06 architectural design_workout
06 architectural design_workout06 architectural design_workout
06 architectural design_workout
 
03 requirement engineering_process
03 requirement engineering_process03 requirement engineering_process
03 requirement engineering_process
 
02 software process_models
02 software process_models02 software process_models
02 software process_models
 
01 software engineering_aspects
01 software engineering_aspects01 software engineering_aspects
01 software engineering_aspects
 
13 software metrics
13 software metrics13 software metrics
13 software metrics
 

Último

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Krashi Coaching
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
SoniaTolstoy
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
fonyou31
 

Último (20)

BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 

04 design concepts_n_principles

  • 1. DESIGN CONCEPTS & DESIGN PRINCIPLE What are those factors which drive a good design ?
  • 2. DESIGN CONCEPTS & DESIGN PRINCIPLE  How Analysis Model Feeds DATA to the DESIGN Phase ? CSPEC, PSPEC Component Level Design DFD, STD INTERFACE DESIGN DFD ARCHITECTURAL DESIGN DOB, ERD, DATA DICT DATA DESIGN The PYRAMID MODEL OF DESIGN January 13, 2012 Made by Utpal Kumar Ray 2
  • 3. DESIGN CONCEPTS & DESIGN PRINCIPLE TRANSITION FROM ANALYSIS TO DESIGN January 13, 2012 Made by Utpal Kumar Ray 3
  • 4. DESIGN CONCEPTS & DESIGN PRINCIPLE  The GOAL of the DESIGN Process The Design should meet all the implicit and explicit requirement of the customer. The Design must be a readable and understandable guide for those who generates codes, does testing and provides maintenance. The Design should provide a complete picture of the software, addressing the data, functional and behavioral domains from an implementation perspective. January 13, 2012 Made by Utpal Kumar Ray 4
  • 5. DESIGN CONCEPTS & DESIGN PRINCIPLE  Technical Criteria for good design -A Design should exhibit a good architectural structure. -A Design should be modular. -A Design should lead to the Data Structure that are appropriate enough for a practical object implementation. -A Design should contain distinct representations of data, architecture, interfaces and components. -A Design should lead to interfaces that reduce the complexity of connections between modules and with external environments. -A Design should be derived using repeatable method that is driven by information obtained during software requirement analysis. January 13, 2012 Made by Utpal Kumar Ray 5
  • 6. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Principles - The design process should not suffer from tunnel vision, but should consider multiple alternative approaches. - The design should be traceable to the analysis model. - The design should not reinvent the wheel. - The design should “minimize the intellectual distance” between the software and the problem as it exists in the real world. - A design should exhibit uniformity and integration. January 13, 2012 Made by Utpal Kumar Ray 6
  • 7. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Principles ( contd. ) - The design should be structured to accommodate change - The design should be structured to degrade gracefully, even when aberrant data, events, or operating conditions are encountered. It should accommodate all the unusual circumstances. - The design is not coding; coding is not design. - The design should be assessed for quality on continuous basis. January 13, 2012 Made by Utpal Kumar Ray 7
  • 8. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Abstraction Each step in the software process is a refinement in the level of abstraction of the software solution. During software requirement analysis, the software solution is stated in terms “that are familiar in the problem environment”. As one move through the design process, the level of abstraction is reduced. Finally, the lowest level of abstraction is reached when the source code is generated. The notion of abstraction permits one to concentrate on a problem at some level of generalization without regard to the irrelevant details of the lower levels. January 13, 2012 Made by Utpal Kumar Ray 8
  • 9. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Refinement Refinement is actually a process of elaboration. One begins with a statement of function that is defined at high level of abstraction. That is the statement describes function or information conceptually but provides no information about the internal workings of the function or the internal structure of the information. Refinement causes the designer to elaborate on the original statement, providing more and more details as each successive refinement (elaboration) occurs. January 13, 2012 Made by Utpal Kumar Ray 9
  • 10. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Abstraction and Refinement They are complementary concepts. Abstraction enables a designer to specify procedure and data without mentioning low level details. Refinement helps the designer to reveal low-level details as design progresses. Both concepts aid designer in creating a complete design model as the design evolves. January 13, 2012 Made by Utpal Kumar Ray 10
  • 11. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity - Modularity makes a big software to be more manageable. - Modularity makes a complex problem to solve more easily. Which means, it is easier to solve a complex big problem when that big problem is broken down into smaller manageable pieces. - Modularity can not be extended indefinitely as cost to integrate goes up as big module is broken into smaller modules. One has to find the region of minimum cost. January 13, 2012 Made by Utpal Kumar Ray 11
  • 12. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity (contd.) Modularity and Complexity of Problem Let C(x) be the function which defines the perceived complexity of a problem x, and E(x) be the function that defines the effort (in time) required to solve the problem. For the two problems P1 and P2; if C(P1) > C(P2) then E(P1) > E(P2). If there exists a big problem P which can be broken down to p1 and p2 then as per human problem solving nature; C(P) > C(p1) + C(p2). So it is also true that E(P) > E(p1) + E(p2). January 13, 2012 Made by Utpal Kumar Ray 12
  • 13. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd.) Total S/W Cost Cost of Region of effort Minimum cost Cost to Integrate Cost per Module No of Modules Modularity Vs. Software Cost January 13, 2012 Made by Utpal Kumar Ray 13
  • 14. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) - How to arrive at the correct no of modules ? - What should be the ideal module size ? - How do we know we have reached the lowest possible modular granularity ? To answer the above questions one has to remember the following criteria which enables one to understand whether the optimum module size is reached. January 13, 2012 Made by Utpal Kumar Ray 14
  • 15. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) - Modular Understandability Module should be understood as a standalone unit - Modular Continuity A small change to the system requirements should not trigger a system wide changes rather than a change in the individual module. - Modular Protection An error condition generated in a module should stay in the same module, rather than propagating to other modules. January 13, 2012 Made by Utpal Kumar Ray 15
  • 16. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) - Cohesion While breaking down a big problem to individual modules, it should be noted that all individual module should aim for high cohesion. High cohesion means, that module is doing a single task. An example of low cohesion is , when a module performs a set of task that are loosely related to each other January 13, 2012 Made by Utpal Kumar Ray 16
  • 17. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) - Coupling Coupling is a measure of interconnection among modules. One should always aim for the lowest possible coupling for a module. There are so many different types of coupling: 1. Low Coupling: data or data structure coupling 2. Moderate Coupling: Control flag Coupling 3. High Coupling: Common Coupling 4. Highest Coupling: Content Coupling January 13, 2012 Made by Utpal Kumar Ray 17
  • 18. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) a d Data Structure Coupling (low) Data Coupling Control Flag Coupling (low) ( moderate ) b c e Low and Moderate Coupling January 13, 2012 Made by Utpal Kumar Ray 18
  • 19. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) a d g b c e f h Common Coupling (high) Common Coupling ( high ) Global Data Area Common Coupling ( high ) High Coupling January 13, 2012 Made by Utpal Kumar Ray 19
  • 20. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Modularity ( contd. ) a c Data b d Content Coupling Control (Highest) Highest Coupling January 13, 2012 Made by Utpal Kumar Ray 20
  • 21. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Concepts – Information Hiding The modules should be specified and designed such a way, so that the information (procedure and data) contained within a module is inaccessible to other modules that have no need for such information. Which means all modules should be functionally independent. The use of information hiding as a design criterion for modular systems provides the greatest benefits when modification is required during testing and later, during software maintenance. The unintentional errors introduced in one module during modification are unlikely to propagate to other modules. January 13, 2012 Made by Utpal Kumar Ray 21
  • 22. DESIGN CONCEPTS & DESIGN PRINCIPLE  A Typical Design Specification 1. Preface : A brief history about the project 2.Audience : Who should read this document 3. Scope of Design : A description of S/W Req Spec 4.Data Design : A description of database structure, external file structure, internal data structure etc. 5.Architectural Design : A description of evolved s/w architecture and how it was been derived from the analysis model. January 13, 2012 Made by Utpal Kumar Ray 22
  • 23. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Spec ( contd. ) 6.Interface Design : All internal and external interface are described here. All human and machine interfaces are described here. 7.All low levels s/w components (modules) are described here using English like languages ( pseudo-coding). 8.Requirement Cross Reference : The purpose of this cross reference is to show that all requirements are satisfied by the s/w design. And also to indicate which are those critical components to be implemented to satisfy specific requirements. January 13, 2012 Made by Utpal Kumar Ray 23
  • 24. DESIGN CONCEPTS & DESIGN PRINCIPLE  Design Spec ( contd. ) 9.Design Constraints : Physical memory limitation, necessity for a specialized external interface, the other h/w factors which may influence the design latter etc. 10.Supplementary Data : Algorithm descriptions, Alternative procedure, Tabular Data etc. 11.Software Distribution & Installation : Procedure for distributing s/w and installing it in the customer location. January 13, 2012 Made by Utpal Kumar Ray 24
  • 25. DESIGN CONCEPTS & DESIGN PRINCIPLE  Home Task Develop at least five levels of abstractions for a SUDOKU Game. January 13, 2012 Made by Utpal Kumar Ray 25