SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Components of a design model :

   Data Design
    ◦ Transforms information domain model into data structures
      required to implement software
   Architectural Design
    ◦ Defines relationship among the major structural elements of a
      software
   Interface Design
    ◦ Describes how the software communicates with systems that
      interact with it and with humans.
   Procedural Design
    ◦ Transforms structural elements of the architecture into a
      procedural description of software components
    Software Design -- An iterative process transforming
     requirements into a “blueprint” for constructing the software.
Goals of the design process:
3.   The design must implement all of the explicit requirements
     contained in the analysis model and it must accommodate all
     of the implicit requirements desired by the customer.
4.   The design must be a readable, understandable guide for
     those who generate code and for those who test and
     subsequently support the software.
5.   The design should address the data, functional and
     behavioral domains from an implementation perspective
   Wasserman: “Abstraction permits one to
    concentrate on a problem at some level of
    abstraction without regard to low level detail.
   At the highest level of abstraction a solution
    is stated in broad terms using the language
    of the problem environment.
   At lower level, a procedural orientation is
    taken.
   At the lowest level of abstraction the solution
    is stated in a manner that can be directly
    implemented.
Types of abstraction :
1. Procedural Abstraction :
A named sequence of instructions that has a specific &
limited function
Eg: Word OPEN for a door

2. Data Abstraction :
A named collection of data that describes a data object.
Data abstraction for door would be a set of attributes
that describes the door
(e.g. door type, swing direction, weight, dimension)
2. Refinement

 Process of elaboration.
 Start with the statement of function defined at the

  abstract level, decompose the statement of
  function in a stepwise fashion until programming
  language statements are reached.
 In this concept, software is divided into
  separately named and addressable
  components called modules
 Follows “divide and conquer” concept, a
  complex problem is broken down into several
  manageable pieces
 Let p1 and p2 be two problems.
 Let E1 and E2 be the effort required to solve
  them --
If C(p1)>C(p2)
Hence E(p1)>E(p2)
Now--
Complexity of a problem that combines p1 and
 p2 is greater than complexity when each
 problem is consider
C(p1+p2) > C(p1)+C(p2),
Hence
E(p1+p2) > E(p1)+E(p2)
It is easier to solve a complex problem when
you break it into manageable pieces
5 criteria to evaluate a design method with respect to
   its modularity-----
Modular understandability
module should be understandable as a standalone unit
   (no need to refer to other modules)
Modular continuity
If small changes to the system requirements result in
changes to individual modules, rather than system
   wide
changes, the impact of side effects will be minimized
Modular protection
 If an error occurs within a module then those errors
   are localized and not spread to other modules.
Modular Composability
Design method should enable reuse of existing
components.
Modular Decomposability
Complexity of the overall problem can be
reduced if the design method provides a
systematic mechanism to decompose a
problem into sub problems
   Also called program structure
   Represent the organization of program components.
   Does not represent procedural aspects of software such as
    decisions, repetitions etc.
   Depth –No. of levels of control (distance between the top
    and bottom modules in program control structure)
   Width- Span of control.
    Fan-out -no. of modules that are directly controlled by
    another module
   Fan-in - how many modules directly control a given
    module
   Super ordinate -module that control another module
   Subordinate - module controlled by another
   Visibility -set of program components that may be
    called or used as data by a given component
   Connectivity – A module that directly causes another
    module to begin execution is connected to it.
   Software architecture is the hierarchical structure of program
    components (modules), the manner in which these
    components interact and the structure of data that are used
    by the components.
   A set of properties should be specified as part of an
    architectural design:
   Structural properties. This aspect of the architectural
    design representation defines the components of a system
    (e.g., modules, objects) and the manner in which those
    components are packaged and interact with one another.
   Extra-functional properties. The architectural design
    description should address how the design architecture
    achieves requirements for performance, reliability, security,
    adaptability, and other system characteristics.
   Families of related systems. the design should have the
    ability to reuse architectural building blocks.
Data structure is a representation of the
  logical relationship among individual
  elements of data.
• Scalar item –

  A single element of information that may be
  addressed by an identifier .
• Scalar item organized as a list- array
• Data structure that organizes non-contiguous

  scalar items-linked list
Software procedure focuses on the processing
details of each module individually.
   Information (data and procedure) contained
    within a module should be inaccessible to
    other modules that have no need for such
    information.
   Hiding defines and enforces access
    constraints to both procedural detail within a
    module and any local data structure used by
    the module.
If the architectural style of a system is
hierarchical program structure can be
    partitioned -----
3. Horizontal partitioning
4. Vertical partitioning
Horizontal partitioning




Separate branches can be defined for each major function
Eg : 3 partitions
1. Input
2. Data Transformation
3. Output
Advantages
   ◦ Easier to test
   ◦ Easier to maintain
   ◦ Propagation of fewer side effects
   ◦ Easier to add new features
Vertical Partitioning
 ◦ Control and work modules are distributed top down
 ◦ Top level modules perform control functions
 ◦ Lower modules perform computations (input
   processing and output
Eg of Horizontal Partitioning
Eg of Vertical Partitioning
    Functional independence is achieved by
     developing modules with “single minded”
     function and an aversion to excessive interaction
     with other modules.

    Measured using 2 qualitative criteria:

5.   Cohesion : Measure of the relative strength of a
     module.
6.   Coupling : Measure of the relative
     interdependence among modules.
•   Strength of relation of elements within a module
•   Element- Group of instructions or a data definition.
•   Strive for high cohesion

Different types of cohesion :

o   Functional Cohesion (Highest):

A functionally cohesive module contains elements that
all contribute to the execution of one and only one
problem-related task.
Examples of functionally cohesive modules are
Compute cosine of an angle
Calculate net employee salary
2. Sequential Cohesion :
A sequentially cohesive module is one whose
elements are involved in activities such that
output data from one activity serves as input
data to the next.
Eg: Module read and validate customer record
  Read record
  Validate customer record
Here output of one activity is input to the
second
3. Communicational cohesion
A communicationally cohesive module is one whose elements
contribute to activities that use the same input or output data.
Suppose we wish to find out some facts about a book
For instance, we may wish to
   FIND TITLE OF BOOK
   FIND PRICE OF BOOK
   FIND PUBLISHER OF BOOK
   FIND AUTHOR OF BOOK
These four activities are related because they all work
on the same input data, the book, which makes the
“module” communicationally cohesive.
Eg: module which produces employee salary
 report and calculates average salary

                   Produce
                   employee
                   salary
                   report
                                 Employee salary
                                 report details



 Employee salary   Calculate
                   average
 table             salary      Average salary
4. Procedural Cohesion
A procedurally cohesive module is one whose elements are
involved in different and possibly unrelated activities in which
control flows from each activity to the next.
A piece of coding ties the activities together
Eg:
Module that averages two completely unrelated tables, TABLE-
  A
and TABLE-B, which both just happen to have 100 elements
each.
module compute table-A-avg and table-B-avg
       uses table-A, table-B
       returns table-A-avg, table-B-avg
          table-A-total : = 0
          table-B-total : = 0
          for i = i to 100
             add table-A (i) to table-A-total
             add table-B (i) to table-B-total
          endfor
          table-A-avg : = table-A-total/100
          table-B-avg : = table-B-total/100
    endmodule
5. Temporal Cohesion
A temporally cohesive module is one whose elements are
involved in activities that are related in time.
A module INITIALIZE initializes many different functions in a
mighty sweep, causing it to be broadly related to several other
modules in the system.
 module initialize
         updates a-counter, b-counter, items table,
            totals table, switch-a, switch-b
         rewind tape-a
         set a-counter to 0
         rewind tape-b
         set b-counter to 0
         clear items table
         clear totals table
         set switch-a to off
         set switch-b to on
      endmodule
6. Logical Cohesion
A logically cohesive module is one whose elements contribute
to activities of the same general category in which the activity
or activities to be executed are selected from outside the
module.
A logically cohesive module contains a number of activities of
  the same general kind.
To use the module, we pick out just the piece(s) we need.
Eg. A module maintain employee master file
Uses input flag/* to choose which function*/
If input flag =1
{Add a new record to master file}
If input flag =2
{delete an employee record }
If input flag=3
{edit employee record }
-
-
Endmodule
7. Coincidental Cohesion (Lowest)
A coincidentally cohesive module is one whose elements
contribute to activities with no meaningful relationship to one
another.
Eg. When a large program id modularized by arbitrarily
  segmenting the program into several small modules.
A decision tree to show module cohesion
   Measure of interconnection among modules
    in a software structure
   Strive for lowest coupling possible.
Types of coupling
1. Data coupling (Most desirable)
Two modules are data coupled, if they communicate through
parameters where each parameter is an elementary piece of
data.
e.g. an integer, a float, a character, etc. This data item should
be problem related and not be used for control purpose.
2. Stamp Coupling
Two modules are said to be stamp coupled if a data structure is
  passed as parameter but the called module operates on some
  but not all of the individual components of the data structure.
3. Control Coupling
Two modules are said to be control coupled if one module
passes a control element to the other module.
This control element affects /controls the internal logic of the
called module
Eg: flags
               Module 1
                    flag
                                     flag
                Module 2
                               A             B


                                        C
4. Common Coupling
Takes place when a number of modules access
a data item in a global data area.




                        Modules c, g and k exhibit common coupling
5. Content coupling (Least desirable)
Two modules are said to be content coupled if one module
branches into another module or modifies data within another.
Eg:
int func1(int a)
{ printf(“func1”);
  a+=2;
  goto F2A;
return a;
}

void func2(void)
{ printf(“func2”);
F2A : printf(“At F2A”)
}
   Evaluate 1st iteration to reduce coupling & improve cohesion
   Minimize structures with high fan-out
   Keep scope of effect of a module within scope of control of
    that module
   Evaluate interfaces to reduce complexity
   Define modules with predictable function
    A module is predictable when it can be
    treated as a black box.
   Strive for controlled entry -- no jumps into
    the middle of things
   The design process should not suffer from ‘tunnel vision’
    A good designer should consider alternative approaches.

   The design should be traceable to the analysis model

   The design should not reinvent the wheel
    Time is short and resources are limited! Hence use well tested and
    reusable s/w components

   The design should ‘minimize the intellectual distance” between the
    S/W and the problem as it exists in the real world
    That is, the structure of the software design should (whenever
    possible) mimic the structure of the problem domain.

   The design should exhibit uniformity & integration
    A design is uniform if it appears that one person developed the
    whole thing.
 The design should be structured to accommodate
  change
  Upcoming modifications and improvements should not
  lead to drastic changes or redesign of software
 The design should be structured to degrade

  gently, even when aberrant data, events, or operating
  conditions are encountered
  Use message/progress bars whenever possible
 Design is not coding, coding is not design
 The design should be assessed for quality as it is being
  created, not after the fact
 The design should be reviewed to minimize

 conceptual (semantic) errors

Weitere ähnliche Inhalte

Was ist angesagt?

Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns pptmkruthika
 
System engineering
System engineeringSystem engineering
System engineeringLisa Elisa
 
Component level design
Component   level designComponent   level design
Component level designMidhula Chandren
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling LanguageDebajyoti Biswas
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsSeema Kamble
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
analysis and design with uml
analysis and design with umlanalysis and design with uml
analysis and design with umlsabin kafle
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringUMA PARAMESWARI
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13koolkampus
 
Unified process model
Unified process modelUnified process model
Unified process modelRyndaMaala
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specificationlavanya marichamy
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 

Was ist angesagt? (20)

Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
 
System engineering
System engineeringSystem engineering
System engineering
 
Component level design
Component   level designComponent   level design
Component level design
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Software design
Software designSoftware design
Software design
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metrics
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Analysis modeling
Analysis modelingAnalysis modeling
Analysis modeling
 
analysis and design with uml
analysis and design with umlanalysis and design with uml
analysis and design with uml
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13
 
Unified process model
Unified process modelUnified process model
Unified process model
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 

Andere mochten auch

In-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineIn-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineMatthieu 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: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisAnalyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisMatthieu 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
 
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
 
Architectural Design
Architectural DesignArchitectural Design
Architectural DesignJoe Christensen
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 

Andere mochten auch (13)

Software design
Software designSoftware design
Software design
 
In-Memory Apps for Precision Medicine
In-Memory Apps for Precision MedicineIn-Memory Apps for Precision Medicine
In-Memory Apps for Precision Medicine
 
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: Drug Response Analysis
Analyze Genomes: Drug Response AnalysisAnalyze Genomes: Drug Response Analysis
Analyze Genomes: Drug Response Analysis
 
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
 
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
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 

Ähnlich wie Design concepts and principles

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
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software EngineeringPurvik Rana
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptxFajar Baskoro
 
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 i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)Shagufta shaheen
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignAmr E. Mohamed
 
System software design1
System software design1System software design1
System software design1PrityRawat2
 
5.Software Design.ppt
5.Software Design.ppt5.Software Design.ppt
5.Software Design.pptssuser1288e7
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and ModularityDanyal Ahmad
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesionSutha31
 

Ähnlich wie Design concepts and principles (20)

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
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Unit-III(Design).pptx
Unit-III(Design).pptxUnit-III(Design).pptx
Unit-III(Design).pptx
 
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 i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
SE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software Design
 
06 fse design
06 fse design06 fse design
06 fse design
 
System software design1
System software design1System software design1
System software design1
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Unit 2
Unit 2Unit 2
Unit 2
 
5.Software Design.ppt
5.Software Design.ppt5.Software Design.ppt
5.Software Design.ppt
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
 
Coupling and cohesion
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
 

Mehr von saurabhshertukde

Mehr von saurabhshertukde (19)

Revision sql te it new syllabus
Revision sql te it new syllabusRevision sql te it new syllabus
Revision sql te it new syllabus
 
Oodbms ch 20
Oodbms ch 20Oodbms ch 20
Oodbms ch 20
 
Introduction er & eer
Introduction er & eerIntroduction er & eer
Introduction er & eer
 
Introduction er & eer
Introduction er &  eerIntroduction er &  eer
Introduction er & eer
 
Integrity & security
Integrity & securityIntegrity & security
Integrity & security
 
Er model
Er modelEr model
Er model
 
Er & eer to relational mapping
Er & eer to relational mappingEr & eer to relational mapping
Er & eer to relational mapping
 
Eer case study
Eer case studyEer case study
Eer case study
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
J2 ee archi
J2 ee archiJ2 ee archi
J2 ee archi
 
J2 ee architecture
J2 ee architectureJ2 ee architecture
J2 ee architecture
 
Software project-scheduling
Software project-schedulingSoftware project-scheduling
Software project-scheduling
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Analysis modelling
Analysis modellingAnalysis modelling
Analysis modelling
 
Analysis concepts and principles
Analysis concepts and principlesAnalysis concepts and principles
Analysis concepts and principles
 
Risk analysis
Risk analysisRisk analysis
Risk analysis
 

KĂźrzlich hochgeladen

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

KĂźrzlich hochgeladen (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Design concepts and principles

  • 1.
  • 2. Components of a design model :  Data Design ◦ Transforms information domain model into data structures required to implement software  Architectural Design ◦ Defines relationship among the major structural elements of a software  Interface Design ◦ Describes how the software communicates with systems that interact with it and with humans.  Procedural Design ◦ Transforms structural elements of the architecture into a procedural description of software components
  • 3.  Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software. Goals of the design process: 3. The design must implement all of the explicit requirements contained in the analysis model and it must accommodate all of the implicit requirements desired by the customer. 4. The design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. 5. The design should address the data, functional and behavioral domains from an implementation perspective
  • 4.
  • 5.  Wasserman: “Abstraction permits one to concentrate on a problem at some level of abstraction without regard to low level detail.  At the highest level of abstraction a solution is stated in broad terms using the language of the problem environment.  At lower level, a procedural orientation is taken.  At the lowest level of abstraction the solution is stated in a manner that can be directly implemented.
  • 6. Types of abstraction : 1. Procedural Abstraction : A named sequence of instructions that has a specific & limited function Eg: Word OPEN for a door 2. Data Abstraction : A named collection of data that describes a data object. Data abstraction for door would be a set of attributes that describes the door (e.g. door type, swing direction, weight, dimension)
  • 7. 2. Refinement  Process of elaboration.  Start with the statement of function defined at the abstract level, decompose the statement of function in a stepwise fashion until programming language statements are reached.
  • 8.
  • 9.  In this concept, software is divided into separately named and addressable components called modules  Follows “divide and conquer” concept, a complex problem is broken down into several manageable pieces  Let p1 and p2 be two problems.  Let E1 and E2 be the effort required to solve them -- If C(p1)>C(p2) Hence E(p1)>E(p2)
  • 10. Now-- Complexity of a problem that combines p1 and p2 is greater than complexity when each problem is consider C(p1+p2) > C(p1)+C(p2), Hence E(p1+p2) > E(p1)+E(p2) It is easier to solve a complex problem when you break it into manageable pieces
  • 11.
  • 12. 5 criteria to evaluate a design method with respect to its modularity----- Modular understandability module should be understandable as a standalone unit (no need to refer to other modules) Modular continuity If small changes to the system requirements result in changes to individual modules, rather than system wide changes, the impact of side effects will be minimized Modular protection  If an error occurs within a module then those errors are localized and not spread to other modules.
  • 13. Modular Composability Design method should enable reuse of existing components. Modular Decomposability Complexity of the overall problem can be reduced if the design method provides a systematic mechanism to decompose a problem into sub problems
  • 14.
  • 15.  Also called program structure  Represent the organization of program components.  Does not represent procedural aspects of software such as decisions, repetitions etc.  Depth –No. of levels of control (distance between the top and bottom modules in program control structure)  Width- Span of control.  Fan-out -no. of modules that are directly controlled by another module  Fan-in - how many modules directly control a given module  Super ordinate -module that control another module  Subordinate - module controlled by another
  • 16.  Visibility -set of program components that may be called or used as data by a given component  Connectivity – A module that directly causes another module to begin execution is connected to it.
  • 17.  Software architecture is the hierarchical structure of program components (modules), the manner in which these components interact and the structure of data that are used by the components.  A set of properties should be specified as part of an architectural design:  Structural properties. This aspect of the architectural design representation defines the components of a system (e.g., modules, objects) and the manner in which those components are packaged and interact with one another.  Extra-functional properties. The architectural design description should address how the design architecture achieves requirements for performance, reliability, security, adaptability, and other system characteristics.  Families of related systems. the design should have the ability to reuse architectural building blocks.
  • 18. Data structure is a representation of the logical relationship among individual elements of data. • Scalar item – A single element of information that may be addressed by an identifier . • Scalar item organized as a list- array • Data structure that organizes non-contiguous scalar items-linked list
  • 19. Software procedure focuses on the processing details of each module individually.
  • 20.  Information (data and procedure) contained within a module should be inaccessible to other modules that have no need for such information.  Hiding defines and enforces access constraints to both procedural detail within a module and any local data structure used by the module.
  • 21. If the architectural style of a system is hierarchical program structure can be partitioned ----- 3. Horizontal partitioning 4. Vertical partitioning
  • 22. Horizontal partitioning Separate branches can be defined for each major function Eg : 3 partitions 1. Input 2. Data Transformation 3. Output Advantages ◦ Easier to test ◦ Easier to maintain ◦ Propagation of fewer side effects ◦ Easier to add new features
  • 23. Vertical Partitioning ◦ Control and work modules are distributed top down ◦ Top level modules perform control functions ◦ Lower modules perform computations (input processing and output
  • 24. Eg of Horizontal Partitioning
  • 25. Eg of Vertical Partitioning
  • 26.  Functional independence is achieved by developing modules with “single minded” function and an aversion to excessive interaction with other modules.  Measured using 2 qualitative criteria: 5. Cohesion : Measure of the relative strength of a module. 6. Coupling : Measure of the relative interdependence among modules.
  • 27. • Strength of relation of elements within a module • Element- Group of instructions or a data definition. • Strive for high cohesion Different types of cohesion : o Functional Cohesion (Highest): A functionally cohesive module contains elements that all contribute to the execution of one and only one problem-related task. Examples of functionally cohesive modules are Compute cosine of an angle Calculate net employee salary
  • 28. 2. Sequential Cohesion : A sequentially cohesive module is one whose elements are involved in activities such that output data from one activity serves as input data to the next. Eg: Module read and validate customer record  Read record  Validate customer record Here output of one activity is input to the second
  • 29. 3. Communicational cohesion A communicationally cohesive module is one whose elements contribute to activities that use the same input or output data. Suppose we wish to find out some facts about a book For instance, we may wish to  FIND TITLE OF BOOK  FIND PRICE OF BOOK  FIND PUBLISHER OF BOOK  FIND AUTHOR OF BOOK These four activities are related because they all work on the same input data, the book, which makes the “module” communicationally cohesive.
  • 30. Eg: module which produces employee salary report and calculates average salary Produce employee salary report Employee salary report details Employee salary Calculate average table salary Average salary
  • 31. 4. Procedural Cohesion A procedurally cohesive module is one whose elements are involved in different and possibly unrelated activities in which control flows from each activity to the next. A piece of coding ties the activities together Eg: Module that averages two completely unrelated tables, TABLE- A and TABLE-B, which both just happen to have 100 elements each.
  • 32. module compute table-A-avg and table-B-avg       uses table-A, table-B       returns table-A-avg, table-B-avg          table-A-total : = 0          table-B-total : = 0          for i = i to 100             add table-A (i) to table-A-total             add table-B (i) to table-B-total          endfor          table-A-avg : = table-A-total/100          table-B-avg : = table-B-total/100    endmodule
  • 33. 5. Temporal Cohesion A temporally cohesive module is one whose elements are involved in activities that are related in time. A module INITIALIZE initializes many different functions in a mighty sweep, causing it to be broadly related to several other modules in the system.  module initialize       updates a-counter, b-counter, items table,          totals table, switch-a, switch-b       rewind tape-a       set a-counter to 0       rewind tape-b       set b-counter to 0       clear items table       clear totals table       set switch-a to off       set switch-b to on    endmodule
  • 34. 6. Logical Cohesion A logically cohesive module is one whose elements contribute to activities of the same general category in which the activity or activities to be executed are selected from outside the module. A logically cohesive module contains a number of activities of the same general kind. To use the module, we pick out just the piece(s) we need.
  • 35. Eg. A module maintain employee master file Uses input flag/* to choose which function*/ If input flag =1 {Add a new record to master file} If input flag =2 {delete an employee record } If input flag=3 {edit employee record } - - Endmodule
  • 36. 7. Coincidental Cohesion (Lowest) A coincidentally cohesive module is one whose elements contribute to activities with no meaningful relationship to one another. Eg. When a large program id modularized by arbitrarily segmenting the program into several small modules.
  • 37. A decision tree to show module cohesion
  • 38.  Measure of interconnection among modules in a software structure  Strive for lowest coupling possible.
  • 39. Types of coupling 1. Data coupling (Most desirable) Two modules are data coupled, if they communicate through parameters where each parameter is an elementary piece of data. e.g. an integer, a float, a character, etc. This data item should be problem related and not be used for control purpose. 2. Stamp Coupling Two modules are said to be stamp coupled if a data structure is passed as parameter but the called module operates on some but not all of the individual components of the data structure.
  • 40. 3. Control Coupling Two modules are said to be control coupled if one module passes a control element to the other module. This control element affects /controls the internal logic of the called module Eg: flags Module 1 flag flag Module 2 A B C
  • 41. 4. Common Coupling Takes place when a number of modules access a data item in a global data area. Modules c, g and k exhibit common coupling
  • 42. 5. Content coupling (Least desirable) Two modules are said to be content coupled if one module branches into another module or modifies data within another. Eg: int func1(int a) { printf(“func1”); a+=2; goto F2A; return a; } void func2(void) { printf(“func2”); F2A : printf(“At F2A”) }
  • 43.  Evaluate 1st iteration to reduce coupling & improve cohesion  Minimize structures with high fan-out  Keep scope of effect of a module within scope of control of that module
  • 44.  Evaluate interfaces to reduce complexity  Define modules with predictable function A module is predictable when it can be treated as a black box.  Strive for controlled entry -- no jumps into the middle of things
  • 45.  The design process should not suffer from ‘tunnel vision’ A good designer should consider alternative approaches.  The design should be traceable to the analysis model  The design should not reinvent the wheel Time is short and resources are limited! Hence use well tested and reusable s/w components  The design should ‘minimize the intellectual distance” between the S/W and the problem as it exists in the real world That is, the structure of the software design should (whenever possible) mimic the structure of the problem domain.  The design should exhibit uniformity & integration A design is uniform if it appears that one person developed the whole thing.
  • 46.  The design should be structured to accommodate change Upcoming modifications and improvements should not lead to drastic changes or redesign of software  The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered Use message/progress bars whenever possible  Design is not coding, coding is not design  The design should be assessed for quality as it is being created, not after the fact  The design should be reviewed to minimize conceptual (semantic) errors