SlideShare una empresa de Scribd logo
1 de 30
Software Design
SW 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.
Process of Design Engineering

   During the design process the software
    specifications are transformed into design models
   Models describe the details of the data structures,
    system architecture, interface, and components.
   Each design product is reviewed for quality before
    moving to the next phase of software development.
   At the end of the design process a design model
    and specification document is produced.
   This document is composed of the design models
    that describe the data, architecture, interfaces and
    components.
Process Specification (PSPEC)
Data Object Description                                                                               procedural
                      Entity-
                                                                                                        design
                                           Data Flow
                   Relationship            Diagram
                    Diagram



                                                                                    interface
                                Data Dictionary
                                                                                     design

                                                                                   architectural
                                State-Transition
                                                                                      design
                                    Diagram

                                                                                       data
                          Control Specification (CSPEC)
                                                                                      design




                             THE ANALYSIS MODEL                                    THE DESIGN MODEL
Design Specification Models
   Data design – created by transforming the analysis information
    model (data dictionary and ERD) into data structures required to
    implement the software. Part of the data design may occur in
    conjunction with the design of software architecture. More
    detailed data design occurs as each software component is
    designed.
   Architectural design - defines the relationships among the
    major structural elements of the software, the ―design patterns‖
    than can be used to achieve the requirements that have been
    defined for the system, and the constraints that affect the way in
    which the architectural patterns can be applied. It is derived from
    the system specification, the analysis model, and the subsystem
    interactions defined in the analysis model (DFD).
Design Specification Models

   Interface design - describes how the software
    elements communicate with each other, with other
    systems, and with human users; the data flow and
    control flow diagrams provide much of the
    necessary information required.
   Procedural / Component-level design - created by
    transforming the structural elements defined by the
    software architecture into procedural descriptions of
    software components using information obtained
    from the process specification (PSPEC), control
    specification (CSPEC), and state transition diagram
    (STD).
Design - Fundamental Concepts
   Abstraction
   Architecture
   Patterns
   Modularity
   Information hiding
   Functional independence
   Refinement
   Refactoring


                                7
Abstraction
   Data Abstraction
   Procedural Abstraction
Architecture Design
    ―The overall structure of the software and the ways in which that
    structure provides conceptual integrity for a system.‖
Design can be represented as
   Structural Models
       Defines the components of a system (e.g., modules, objects, filters) and
       How the components are packaged and interact with one another.
   Framework Models
       Increase level of abstraction
   Dynamic Models and Process Models
       Predicts behavioral and reliability aspects
   Functional Models
       Depicts functional Hierarchy.
Patterns
   a pattern is ―a common solution to a common
    problem in a given context.‖ While architectural
    styles can be viewed as patterns describing the
    high-level organization of software (their
    macroarchitecture), other design patterns can be
    used to describe details at a lower, more local level
    (their microarchitecture).
   Creational patterns (example: builder, factory,
    prototype, and singleton)
   Structural patterns (example: adapter, bridge,
    composite, decorator, façade, flyweight, and proxy)
   Behavioral patterns (example: command,
    interpreter, iterator, mediator, memento, observer,
    state, strategy, template, visitor)
Design Pattern

   Design Pattern enables a designer to
    determine whether the pattern :
       is applicable to the current work
       can be reused
       can serve as a guide for developing a similar, but
        functionally or structurally different pattern.
Modular Design

   Easier to change
   Easier to build
   Easier to maintain
Sizing Modules: Two Views
           What's       How big
           inside??     is it??




          MODULE
Information Hiding

   Principle of information hiding says that a good split
    of modules is when modules communicate with one
    another with only the information necessary to
    achieve the s/w function.
   So information hiding enforces access constraints to
    both
       procedural detail with a module, and
       local data structure used by that module.
   Data hiding is a CRITERION for modular design.
   How to know what modules to create.
Information Hiding

                   module           • algorithm
                     controlled
                     interface      • data structure
                                    • details of external interface
                                    • resource allocation policy

    clients              "secret"




    a specific design decision
Information Hiding (Benefits)
   reduces the likelihood of ―side effects‖
   limits the global impact of local design decisions
   emphasizes communication through controlled
    interfaces
   discourages the use of global data
   leads to encapsulation—an attribute of high
    quality design
   results in higher quality software


                                                    16
Functional Independence

      COHESION - the degree to which a
      module performs one and only one
      function.

      COUPLING - the degree to which a
      module is "connected" to other
      modules in the system.




                                         17
Cohesion

   Internal glue with which component is constructed
   All elements of component are directed toward and
    essential for performing the same task
Range of Cohesion

                                 High Cohesion
                    Functional


                    Sequential

               Communicational

                    Procedural

                    Temporal

                     Logical

                 Coincidental        Low
Examples of Cohesion-1

    Function A                 Function A                Time t0
Function Function
                    logic      Function A’             Time t0 + X
   B        C
Function Function                                      Time t0 + 2X
   D        E                  Function A’’

  Coincidental                   Logical                Temporal
  Parts unrelated           Similar functions        Related by time

                              Function A

                              Function B

                              Function C

                             Procedural
                     Related by order of functions
Examples of Cohesion-2


                                                         Function A
     Function A
                                                         Function B
     Function B
                                                         Function C
     Function C
                                                         Sequential
  Communicational                             Output of one is input to another
  Access same data
                          Function A part 1

                          Function A part 2

                          Function A part 3

                            Functional
            Sequential with complete, related functions
Coupling

    Degree of dependence among components.



     No dependencies            Loosely coupled-some dependencies




              Highly couples-many dependencies
Ways components can be dependent
   References made from one to another
       Component A invokes B
       A depends on B for completion of its function or process
   Amount of data passed from one to another
       Component A passes to B: a parameter, contents of an array, block of
        data
   Amount of control one has over the other
       Component passes a control flag to B
       Value of flag tells B the state of some resource or subsystem, process
        to invoke, or whether to invoke a process
   Degree of complexity in the interface between components
       Components C and D exchange values before D can complete
        execution
Range of Coupling


                               High Coupling
                    Content

                    Common

                    External

                    Control
                                  Loose
                    Stamp

                     Data

                Uncoupled          Low
Content Coupling : (worst) When a module
uses/alters data in another module
Common Coupling : 2 modules communicating
via global data
External Coupling :Modules are tied to an
environment external to the software
Control Coupling : 2 modules communicating
with a control flag
Stamp Coupling : Communicating via a
  data structure passed as a parameter. The
  data structure holds more information than
  the recipient needs.
  Data Coupling : (best) Communicating
  via parameter passing. The parameters
  passed are only those that the recipient
  needs.
  No data coupling : independent modules.
Summary


      COHESION                    COUPLING

 The measure of strength     The      measure    of
 of the association of       interdependence of one
 elements within a module    module to another
 It is the degree to which   It      describes     the
 the responsibility of a     relationship      between
 single component form a     software components
 meaningful unit
 It is a property or         It is a property of a
 characteristic  of an       collection of modules
 individual module
Refinement

   Refinement is a process of elaboration
   It is a top-down design strategy
   A program is developed by successfully refining levels of procedural
    details
Stepwise Refinement

       Open Door


             walk to door;
             reach for knob;

             open door;        repeat until door opens
                               turn knob clockwise;
             walk through;     if knob doesn't turn, then
             close door.           take key out;
                                   find correct key;
                                   insert in lock;
                               endif
                               pull/push door
                               move out of way;
                               end repeat
Refactoring
   Fowler [FOW99] defines refactoring in the
    following manner:
       "Refactoring is the process of changing a software system in
        such a way that it does not alter the external behavior of the
        code [design] yet improves its internal structure.‖
   When software is refactored, the existing
    design is examined for
       redundancy
       unused design elements
       inefficient or unnecessary algorithms
       poorly constructed or inappropriate data structures
       or any other design failure that can be corrected to yield a
        better design.

Más contenido relacionado

La actualidad más candente

Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineeringkirupasuchi1996
 
object oriented methodologies
object oriented methodologiesobject oriented methodologies
object oriented methodologiesAmith Tiwari
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process ImprovementBilal Shah
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metricsdespicable me
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.pptbhadjaashvini1
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design Saqib Raza
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factorsNancyBeaulah_R
 
Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specificationkirupasuchi1996
 

La actualidad más candente (20)

Software project management
Software project managementSoftware project management
Software project management
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
object oriented methodologies
object oriented methodologiesobject oriented methodologies
object oriented methodologies
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metrics
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
User Interface Analysis and Design
User Interface Analysis and DesignUser Interface Analysis and Design
User Interface Analysis and Design
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
 
Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specification
 
Software quality
Software qualitySoftware quality
Software quality
 
System testing
System testingSystem testing
System testing
 

Destacado

Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Software reliability
Software reliabilitySoftware reliability
Software reliabilityAnand Kumar
 
Analyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisAnalyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisMatthieu Schapranow
 
Analyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision MedicineAnalyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision MedicineMatthieu Schapranow
 
Analyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision MedicineAnalyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision MedicineMatthieu Schapranow
 
In-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineIn-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineMatthieu Schapranow
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented DesignSharath g
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 

Destacado (13)

Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
Analyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisAnalyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response Analysis
 
Analyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision MedicineAnalyze Genomes Services for Precision Medicine
Analyze Genomes Services for Precision Medicine
 
Analyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision MedicineAnalyze Genomes: In-memory Apps supporting Precision Medicine
Analyze Genomes: In-memory Apps supporting Precision Medicine
 
In-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineIn-Memory Apps for Precision Medicine
In-Memory Apps for Precision Medicine
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
5 Type Of Architecture Design Process
5 Type Of Architecture Design Process 5 Type Of Architecture Design Process
5 Type Of Architecture Design Process
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 

Similar a Software design

11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16Rajes Wari
 
Software Design
Software Design Software Design
Software Design Anas Bilal
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptxDr.Shweta
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_viewsFrank Gielen
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringMuhammad Chaudhry
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxLeahRachael
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptxFajar Baskoro
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 

Similar a Software design (20)

Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
 
Software Design
Software Design Software Design
Software Design
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Design1
Design1Design1
Design1
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_views
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
 
software design
software designsoftware design
software design
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
Software design
Software designSoftware design
Software design
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptx
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Software design
Software designSoftware design
Software design
 

Último

FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structuredhanjurrannsibayan2
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 

Último (20)

FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 

Software design

  • 2. SW 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.
  • 3. Process of Design Engineering  During the design process the software specifications are transformed into design models  Models describe the details of the data structures, system architecture, interface, and components.  Each design product is reviewed for quality before moving to the next phase of software development.  At the end of the design process a design model and specification document is produced.  This document is composed of the design models that describe the data, architecture, interfaces and components.
  • 4. Process Specification (PSPEC) Data Object Description procedural Entity- design Data Flow Relationship Diagram Diagram interface Data Dictionary design architectural State-Transition design Diagram data Control Specification (CSPEC) design THE ANALYSIS MODEL THE DESIGN MODEL
  • 5. Design Specification Models  Data design – created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. Part of the data design may occur in conjunction with the design of software architecture. More detailed data design occurs as each software component is designed.  Architectural design - defines the relationships among the major structural elements of the software, the ―design patterns‖ than can be used to achieve the requirements that have been defined for the system, and the constraints that affect the way in which the architectural patterns can be applied. It is derived from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD).
  • 6. Design Specification Models  Interface design - describes how the software elements communicate with each other, with other systems, and with human users; the data flow and control flow diagrams provide much of the necessary information required.  Procedural / Component-level design - created by transforming the structural elements defined by the software architecture into procedural descriptions of software components using information obtained from the process specification (PSPEC), control specification (CSPEC), and state transition diagram (STD).
  • 7. Design - Fundamental Concepts  Abstraction  Architecture  Patterns  Modularity  Information hiding  Functional independence  Refinement  Refactoring 7
  • 8. Abstraction  Data Abstraction  Procedural Abstraction
  • 9. Architecture Design ―The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.‖ Design can be represented as  Structural Models  Defines the components of a system (e.g., modules, objects, filters) and  How the components are packaged and interact with one another.  Framework Models  Increase level of abstraction  Dynamic Models and Process Models  Predicts behavioral and reliability aspects  Functional Models  Depicts functional Hierarchy.
  • 10. Patterns  a pattern is ―a common solution to a common problem in a given context.‖ While architectural styles can be viewed as patterns describing the high-level organization of software (their macroarchitecture), other design patterns can be used to describe details at a lower, more local level (their microarchitecture).  Creational patterns (example: builder, factory, prototype, and singleton)  Structural patterns (example: adapter, bridge, composite, decorator, façade, flyweight, and proxy)  Behavioral patterns (example: command, interpreter, iterator, mediator, memento, observer, state, strategy, template, visitor)
  • 11. Design Pattern  Design Pattern enables a designer to determine whether the pattern :  is applicable to the current work  can be reused  can serve as a guide for developing a similar, but functionally or structurally different pattern.
  • 12. Modular Design  Easier to change  Easier to build  Easier to maintain
  • 13. Sizing Modules: Two Views What's How big inside?? is it?? MODULE
  • 14. Information Hiding  Principle of information hiding says that a good split of modules is when modules communicate with one another with only the information necessary to achieve the s/w function.  So information hiding enforces access constraints to both  procedural detail with a module, and  local data structure used by that module.  Data hiding is a CRITERION for modular design.  How to know what modules to create.
  • 15. Information Hiding module • algorithm controlled interface • data structure • details of external interface • resource allocation policy clients "secret" a specific design decision
  • 16. Information Hiding (Benefits)  reduces the likelihood of ―side effects‖  limits the global impact of local design decisions  emphasizes communication through controlled interfaces  discourages the use of global data  leads to encapsulation—an attribute of high quality design  results in higher quality software 16
  • 17. Functional Independence COHESION - the degree to which a module performs one and only one function. COUPLING - the degree to which a module is "connected" to other modules in the system. 17
  • 18. Cohesion  Internal glue with which component is constructed  All elements of component are directed toward and essential for performing the same task
  • 19. Range of Cohesion High Cohesion Functional Sequential Communicational Procedural Temporal Logical Coincidental Low
  • 20. Examples of Cohesion-1 Function A Function A Time t0 Function Function logic Function A’ Time t0 + X B C Function Function Time t0 + 2X D E Function A’’ Coincidental Logical Temporal Parts unrelated Similar functions Related by time Function A Function B Function C Procedural Related by order of functions
  • 21. Examples of Cohesion-2 Function A Function A Function B Function B Function C Function C Sequential Communicational Output of one is input to another Access same data Function A part 1 Function A part 2 Function A part 3 Functional Sequential with complete, related functions
  • 22. Coupling  Degree of dependence among components. No dependencies Loosely coupled-some dependencies Highly couples-many dependencies
  • 23. Ways components can be dependent  References made from one to another  Component A invokes B  A depends on B for completion of its function or process  Amount of data passed from one to another  Component A passes to B: a parameter, contents of an array, block of data  Amount of control one has over the other  Component passes a control flag to B  Value of flag tells B the state of some resource or subsystem, process to invoke, or whether to invoke a process  Degree of complexity in the interface between components  Components C and D exchange values before D can complete execution
  • 24. Range of Coupling High Coupling Content Common External Control Loose Stamp Data Uncoupled Low
  • 25. Content Coupling : (worst) When a module uses/alters data in another module Common Coupling : 2 modules communicating via global data External Coupling :Modules are tied to an environment external to the software Control Coupling : 2 modules communicating with a control flag
  • 26. Stamp Coupling : Communicating via a data structure passed as a parameter. The data structure holds more information than the recipient needs. Data Coupling : (best) Communicating via parameter passing. The parameters passed are only those that the recipient needs. No data coupling : independent modules.
  • 27. Summary COHESION COUPLING The measure of strength The measure of of the association of interdependence of one elements within a module module to another It is the degree to which It describes the the responsibility of a relationship between single component form a software components meaningful unit It is a property or It is a property of a characteristic of an collection of modules individual module
  • 28. Refinement  Refinement is a process of elaboration  It is a top-down design strategy  A program is developed by successfully refining levels of procedural details
  • 29. Stepwise Refinement Open Door walk to door; reach for knob; open door; repeat until door opens turn knob clockwise; walk through; if knob doesn't turn, then close door. take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
  • 30. Refactoring  Fowler [FOW99] defines refactoring in the following manner:  "Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code [design] yet improves its internal structure.‖  When software is refactored, the existing design is examined for  redundancy  unused design elements  inefficient or unnecessary algorithms  poorly constructed or inappropriate data structures  or any other design failure that can be corrected to yield a better design.