Jump to first page (C) 1998, Arun Lakhotia 1 Design Quality Metrics Arun Lakhotia University of Southwestern Louisiana Po Box 44330 Lafayette, LA 70504,

Slides:



Advertisements
Similar presentations
Quality of a Class Abstraction: Coupling & Cohesion Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Advertisements

Communication between modules, cohesion and coupling
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)
Software Engineering Routine design. High quality routines Routine: individual method or procedure invocable for a single purpose.
High Quality Code Why it matters. By Ryan Ruzich.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
© Copyright 2011 John Wiley & Sons, Inc.
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part I)
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Criteria for good design. aim to appreciate the proper and improper uses of inheritance and appreciate the concepts of coupling and cohesion.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Lecture 8: Structured Design and Object Oriented Design CSE 111 7/12/20151Copyright William. E. Howden.
Tim St. John Masters Computer Engineering Software Engineering Track.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 5CSA 217 Design in Construction Chapter 5 1.
CSE 303 – Software Design and Architecture
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Coupling and Cohesion Source:
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-3 Cohesion.
Program Design Simple Program Design Third Edition A Step-by-Step Approach 9.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Chapter 7: High Quality Routines By Raj Ramsaroop.
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.
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software requirements.
Software Design Deriving a solution which satisfies software requirements.
SE: CHAPTER 7 Writing The Program
Concepts of Software Quality Yonglei Tao 1. Software Quality Attributes  Reliability  correctness, completeness, consistency, robustness  Testability.
Criteria Based Software Product Integration Architecture F. Tsui Southern Polytechnic State University.
Cohesion and Coupling CS 4311
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
Systems analysis and design, 6th edition Dennis, wixom, and roth
Coupling & Cohesion CMSC 201- Fall '11. Vocabulary Routine- A programming unit that performs a task, such as a function, procedure, method, or main class.
Coupling Cohesion Chandan R. Rupakheti Steve Chenoweth (Chapter 18)
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Criteria Based Software Product Integration Architecture (2007) F. Tsui Kennesaw State University (Southern Polytechnic State University)
CS242.  Reduce Complexity  Introduce an intermediate, understandable abstraction  Avoid code duplication  Support subclassing  Hide sequences  Hide.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
Design and Planning Or: What’s the next thing we should do for our project?
High-Quality Routines Chapter 5-6. Review Class Quality Checklist 2.
11 Software Design CSCU 411 Software Engineering.
Rohini Sharma Roll No. RA1809A01 Regd. No M.Tech.(CSE) Part Time 3 rd Semester.
Slide 1 Good Methods. Slide 2 Cohesion and Coupling l For structured design These software metrics were used extensively Proven to be effective l For.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
Further Modularization, Cohesion, and Coupling. Simple Program Design, Fourth Edition Chapter 9 2 Objectives In this chapter you will be able to: Further.
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
Coupling and Cohesion 1.
Design Characteristics and Metrics
which satisfies software requirements
Class and Method Design
Cohesion and Coupling Chapter 5, Pfleeger 01/01/10.
Improving the Design “Can the design be better?”
CS223: Software Engineering
Chapter 09 – Part I Creating High-Quality Code
Programming Logic and Design Fourth Edition, Comprehensive
Software Design Lecture : 9.
Communication between modules, cohesion and coupling
C Programming Program Quality
Design Module view What module should the system and which have to be developed . It determines the module structure of components.
Cohesion and Coupling.
Programming Issues Code Complete (Roger S. Pressman)
Presentation transcript:

Jump to first page (C) 1998, Arun Lakhotia 1 Design Quality Metrics Arun Lakhotia University of Southwestern Louisiana Po Box Lafayette, LA 70504, USA

Jump to first page (C) 1998, Arun Lakhotia 2 Reference n Steve McConnell, Code Complete, Microsoft Press, u See Chapter 5 n Keywords u Cohesion u Coupling

Jump to first page (C) 1998, Arun Lakhotia 3 Aim n How do you compare design alternatives? n How do you critique a design? n What is Design? u Decomposition into functions u Decomposition into modules u Decomposition into classes

Jump to first page (C) 1998, Arun Lakhotia 4 Function Decomposition MainF2F1F3F4F5F6

Jump to first page (C) 1998, Arun Lakhotia 5 Reasons for creating routines n Reducing complexity n Avoiding duplicate code n Limiting effects of change n Hiding sequences n Improving performance n Making central points of control n Hiding data structures n Hiding global data n Hiding pointer operations n Promoting code reuse n Planning for a family of programs n Making code reusable n Improving portability n Isolating complex operations n Isolating use of nonstandard language n Simplifying complicated boolean tests n Modularization

Jump to first page (C) 1998, Arun Lakhotia 6 Quality of function decomposition n May be defined in terms of u Quality of individual functions F Measured as cohesion u Quality of interaction between functions F Measured as coupling n Desired decomposition u High cohesion u Low coupling

Jump to first page (C) 1998, Arun Lakhotia 7 Cohesion n How strongly internal components are related? n Poor/low cohesion: u A function does several unrelated activities u Removing one activity does not affect another activity n Good/High cohesion u A function performs activities that are related u Removing/changing one affects the other

Jump to first page (C) 1998, Arun Lakhotia 8 Acceptable cohesion n Functional cohesion u function performs only one activity n Sequential cohesion u Contains activities that are order dependent based on data flow n Communicational cohesion u Activities use the same data but are not otherwise related n Temporal cohesion u Activities to be performed at the same time (initialize, cleanup)

Jump to first page (C) 1998, Arun Lakhotia 9 Unacceptable cohesion n Procedural cohesion u Contains activities ordered on user interaction or directly dependent on requirements n Logical cohesion u Activities are mutually exclusive, selected on a flag n Coincidental cohesion u No apparent cohesion

Jump to first page (C) 1998, Arun Lakhotia 10 Interconnections between functions n Call n Called n Parameters passed n Global variables

Jump to first page (C) 1998, Arun Lakhotia 11 Coupling n How strongly are multiple functions related? n Strong relation, implies high coupling, implies poor code n Weak relation, implies low coupling, implies good code

Jump to first page (C) 1998, Arun Lakhotia 12 Acceptable coupling n Simple data coupling u data passed through parameters u data passed is not structured n Data structure coupling u Data passed through parameters u Data passed IS structured

Jump to first page (C) 1998, Arun Lakhotia 13 Unacceptable coupling n Control coupling u Data passed is used to make control decision n Global data coupling u Communicate through global variables n Pathological coupling u One routine modifies the code or data of another routine