Challenges in Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper, Murray Wood University of Strathclyde UK.

Slides:



Advertisements
Similar presentations
Defect testing Objectives
Advertisements

Research and Technology Object Oriented Defect Detection Frank HoudekForrest Shull DaimlerChrysler AGFraunhofer Center - Maryland Research and Technology.
Chapter 1 OO using C++. Abstract Data Types Before we begin we should know how to accomplish the goal of the program We should know all the input and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
CORK: DYNAMIC MEMORY LEAK DETECTION FOR GARBAGE- COLLECTED LANGUAGES A TRADEOFF BETWEEN EFFICIENCY AND ACCURATE, USEFUL RESULTS.
Unified Modeling Language
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
Stéphane Ducasse6.1 Essential Concepts Why OO? What is OO? What are the benefits? What are the KEY concepts? Basis for all the lectures.
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Introduction To System Analysis and design
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Introduction to Object-oriented programming and software development Lecture 1.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Features of Object Oriented Programming Lec.4. ABSTRACTION AND ENCAPSULATION Computer programs can be very complex, perhaps the most complicated artifact.
Software Inspections of Requirements Specifications Smita Chaganty Brandon Vega.
Slide 1 Construction (Testing) Chapter 15 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman Edited by Solomon.
Object-Oriented Analysis and Design NGSSC Object-Oriented Scientific Programming, June 2012.
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
OOP and Dynamic Method Binding Chapter 9. Object Oriented Programming Skipping most of this chapter Focus on 9.4, Dynamic method binding – Polymorphism.
Inheritance - Polymorphism ITI 1121 Nour El Kadri.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
Introduction to CSE 331 Software Design & Implementation Winter 2011
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
CSC 480 Software Engineering Lecture 15 Oct 21, 2002.
What Type of Defects are Really Discovered in Code Reviews. Mika V
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
1 6th Workshop "SEERE", Ravda, September 2006 OOJava course materials – what happened during last year? M. Ivanovic, K. Bothe.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
OOP Review CS 124.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Inheritance Examples.
OO in Context Lecture 13: Dolores Zage. Confused about OO Not alone, there is much confusion about OO many programs are claimed to be OO but are not really.
Author: DoanNX Time: 45’.  OOP concepts  OOP in Java.
Ch 7: From Modules to Objects (Part Two) CSCI 4320.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Further Investigations into the Development and Evaluation of Reading Techniques for Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper and.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
A Survey of Object-Oriented Concepts, by Oscar Nierstrasz Reviewed by Odd Petter N. Slyngstad for DT8100, 27/1/2005.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Chapter 12: Support for Object- Oriented Programming Lecture # 18.
Computing: An Object-Oriented Approach Chapter 35 Component-based Software Development Prepared by: M206 Team - Kuwait Branch.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Software Design Refinement Using Design Patterns
Object-Oriented Database Management System (ODBMS)
Instructor: Dr. Hany H. Ammar
Types of Programming Languages
Robson Ytallo Silva de Oliveira
Object Oriented Programming
Chapter 1: Introduction to Object Oriented Design
Chapter 7 Software Testing.
Chapter 8 - Design Strategies
From Use Cases to Implementation
Static Binding Static binding chooses the function in the class of the base class pointer, ignoring any versions in the class of the object actually.
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

Challenges in Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper, Murray Wood University of Strathclyde UK

Two key issues: Delocalisation - information necessary to understand the code under review being located outside that code Static view v. dynamic view

Experience derived from: Two student-based experiments (~50 subjects each, ~2 years experience, Java code, 200 lines in 90 minutes) Small industrial survey of OO inspectors (13 subjects). Details in papers at Strathclyde website.

Delocalisation Characterised and classified ‘difficult to detect’ defects - many characterised as ‘delocalised’. Information necessary to understand the code under review is located elsewhere. Inheritance, dynamic binding, polymorphism, small distributed methods, class libraries - all contribute. Industrial survey and literature confirm.

Static v. Dynamic View “In fact the two structures [compile-time and run-time] are largely independent. Trying to understand one from the other is like trying to understand the dynamism of living ecosystems from the static taxonomy of plants and animals, and vice-versa.” Gamma et al

Implications for OO Inspection:  How to partition a large system into small chunks for inspection? “What to read”  How to comprehend these chunks whilst dealing with the continual references to other chunks? “How to read”  How to support understanding of what isn’t read? “Localising the delocalisation”.

A Systematic Reading Strategy: Inspect classes in order of interdependencies (least first). Follow interdependencies as necessary to fully comprehend (dynamic view). Write a minimal abstract specification for each method as inspected: –Encourages deeper understanding –Used by other inspectors to ‘localise’ delocalisation’.

Findings compared to ad hoc: No significant improvement in defects detected Abstract specifications created as by- product Subjects suggested that the strategy –encouraged them to think harder –imposed rigour Small differences in defects discovered

Discussion: Are these real and serious issues for object- oriented code inspection? Are new techniques and tools required? –refined systematic, abstraction driven –experience based checklists (or scenarios) –use-case driven Design of next round of experiments? Industrial confirmation? Implications for other OO artifacts?