SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
Communication between modules, cohesion and coupling
Design Concepts and Principles
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part II)
Chapter 13 Design Concepts and Principles
Design Phase What’s design?
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
TCS2411 Software Engineering1 Software Design Principles “Producing the software blueprint”
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part I)
CS-499G 8/17/ Design Concepts and Principles.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
CSE 303 – Software Design and Architecture
Chapter 9 Design Engineering
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
UNIT III : Software Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
CSEB233: Fundamentals of Software Engineering Software Design.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Chapter : Design Engineering. Design Engineering It covers the set of principles, concepts, and practices that lead to the development of a high quality.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Chapter 13 Design Concepts and Principles Software Engineering: A Practitioner's Approach, 5/e.
SIM3302 SOFTWARE DESIGN & TESTING
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Design Concepts By Deepika Chaudhary.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter : 8 Design Concepts
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Design Concepts ch-8
Design (Concepts and Principles)
7. Modular and structured design
CompSci 280 S Introduction to Software Development
Coupling and Cohesion Rajni Bhalla.
Basic Concepts in Software Design
Software Design Principles
Coupling and Cohesion 1.
Design engineering Prepared By:Jay A.Dave..
Lecture 9- Design Concepts and Principles
Software Design Mr. Manoj Kumar Kar.
Software Quality Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Improving the Design “Can the design be better?”
Lecture 9- Design Concepts and Principles
Chapter 9 Design Engineering
Software Design Lecture : 8
Design Engineering.
Design Module view What module should the system and which have to be developed . It determines the module structure of components.
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements Design focuses on four major areas of concern: Data design Architectural design Interface design Component – level design

Design Principles Basic design principles that navigate the design process are, The design process should not suffer from “tunnel vision” The design should be traceable to the analysis model The design should not reinvent the wheel The design should “minimize the intellectual distance” between the software and the problem as it exists in the real world The design should exhibit uniformity and integration

Design Principles The design should be structured to accommodate change The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered 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

Design Concepts Abstraction Many levels of abstraction can be posed in the solution of any problem. A procedural abstraction is a named sequence of instructions that has a specific and limited function A data abstraction is a named collection of data that describes a data object Control abstraction implies a program control mechanism without specifying internal details

Design Concepts Refinement Refinement is the process of elaboration We begin with the statement of function that is defined at a high level of abstraction. Refinement causes the designer to elaborate on the original statement, providing more and more detail as each successive refinement occurs Modularity Software is divided into separately named and addressable components, called modules, that are integrated to satisfy problem requirements

Design Concepts Software Architecture Software architecture alludes to “the overall structure of the software and the ways in which that structure provides conceptual integrity for a system” Control hierarchy Control hierarchy, also called program structure, represents the organization of program components and implies a hierarchy of control Structural partitioning Program structure can be partitioned both horizontally and vertically.

Design Concepts Data structure Data structure is a representation of the logical relationship among individual elements of data Software procedure Software procedure focuses on the processing details of each module individually. Information hiding The principle of information hiding suggests that modules should be specified and designed so that information contained within a module is inaccessible to other modules.

Effective modular design Functional independence Modules have high cohesion and low coupling Functional independence is achieved by developing modules with “single-minded” function and an “aversion” to excessive interaction with other modules. Software with effective modularity is easier to develop because function may be compartmentalized and interfaces are simplified. Independence is measured using two qualitative criteria: cohesion and coupling.

Effective modular design Cohesion Qualitative indication of the degree to which a module focuses on just one thing. A module that performs a set of tasks that relate to each other loosely, is termed coincidentally cohesive. When a module contains tasks that are related by the fact that all must be executed within the same span of time, the module exhibits temporal cohesion. When a processing elements of a module are related and must be executed in a specific order, procedural cohesion exists. When all processing elements concentrate on one area of a data structure, communicational cohesion is present.

Effective modular design Coupling Qualitative indication of the degree to which a module is connected to other modules and to the outside world In software design, we strive for lowest possible coupling. Simple connectivity among modules results in software that is easier to understand.

Effective modular design Types of Coupling Data coupling is found when a single data is passed via a module interface. Stamp coupling is found when a data structure is passed via a module interface. Control coupling is found when a control flag is passed between modules. Common coupling occurs when a number of modules reference a global data area. Content coupling occurs when one module makes use of data or control information maintained within the boundary of another module.