Copyright © 2013 by Mark J. Sebern Code & Design Reviews Maybe it is time to revisit the concept of “done” Note that both design and code reviews (or inspections)

Slides:



Advertisements
Similar presentations
Copyright © by Mark J. Sebern Software Engineering Process I Dr. Rob Hasker L-331, hasker (Adapted.
Advertisements

Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
IVANA NIŽETIĆ Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia Long-lasting teaching materials in spite of changing technology.
Agile Project Management with Scrum
Troubleshooting, Research, Development and Experimentation Unit #6 Tom Weber Course 665 This material is based upon work supported by the national science.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Lecture 4 Class Responsibility Collaboration Cards
SE 555 Software Requirements & Specification Requirements Management.
Capability Maturity Model (CMM) in SW design
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Further Data Modelling …and the effect of time. Plan Introduction Structured Methods –Data Flow Modelling –Data Modelling –Relational Data Analysis –Further.
171 Use Case Descriptions Chapter 4 – Facade Iteration Initial Requirements (Inception Phase)
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Copyright W. Howden1 Lecture 4: Elaboration Tasks and Domain Modeling.
Course Technology Chapter 3: Project Integration Management.
SE-2800 Dr. Mark L. Hornick 1 SE-2800 Software Engineering Process Dr. Mark L. Hornick web: faculty-web.msoe.edu/hornick SE2800.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Automated Theory Formation for Tutoring Tasks in Pure Mathematics Simon Colton, Roy McCasland, Alan Bundy, Toby Walsh.
Copyright Course Technology 1999
Software Engineering Process I
System Implementation. System Implementation and Seven major activities Coding Testing Installation Documentation Training Support Purpose To convert.
Dr. Rob Hasker. Logistics  Class roster, attendance policy  Book, Schedule, policies, grading  Course web site  Prereq check:  SE 2800, Software.
An Introduction to MBT  what, why and when 张 坚
Copyright 2008 Scott W. Ambler Agile Practices and Principles Survey 2008 Scott W. Ambler Michael.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
SE-280 Dr. Mark L. Hornick Design Review Issues. SE-280 Dr. Mark L. Hornick 2 Many expensive defects are a result of design problems Software applications.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
Issues in Paraphrasing Postgraduate In-sessional Writing: 4 John Morgan.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
More on “The Huddersfield Method” A lightweight, pattern-driven method based on SSM, Domain Driven Design and Naked Objects.
This is a guide to citing in a text only. There are further guides on Writing a bibliography and related issues.
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Copyright © 2012 by Mark J. Sebern Scrum Overview (from
Ch 22 Verification and Validation
University of Utah SoCCS Lecture 121 Dynamic Models in Design CS6961 – Lecture 12 Nathan Dykman.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Copyright © by Mark J. Sebern Software Engineering Process I SE 2800.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © by Mark J. Sebern Software Engineering Process I SE Technical Practices.
Paper Title Authors names Conference and Year Presented by Your Name Date.
MGT 450 – Spring 2016 Class 8 – Chapter 5 PARTICIPATIVE LEADERSHIP AND EMPOWERMENT.
Leading A Group. Leading a Group A group needs a leader – A leader is responsible for making final decisions – The leader is responsible for assigning.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
IS4500 – SOFTWARE QUALITY ASSURANCE TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate or Distribute.
Unified Modeling Language (UML)
421 Review Questions 1.Does software engineering add documentation that slows down the project? 2.Is there one software process that is better than the.
Embedded Systems Software Engineering
Agile Methodology and Scrum
Introduction to Agile Software Development
Computer Aided Software Engineering (CASE)
Chapter 8 – Software Testing
Code Reviews.
Pega 9/14/2018 8:48 AM Definition of Done = ready for PO acceptance
Johanna Rothman Create Technical Excellence Chapter 9
Scrum Overview.
Chapter 2 – Software Processes
CS240: Advanced Programming Concepts
Applied Software Project Management
“Your Key To Success in Science”
Training 01: Project Lifecycle & Business Technology Analysis
Agile Development.
Presentation transcript:

Copyright © 2013 by Mark J. Sebern Code & Design Reviews Maybe it is time to revisit the concept of “done” Note that both design and code reviews (or inspections) are included in this sample definition. Table 4.1 in the course textbook, Essential Scrum: A Practical Guide to the Most Popular Agile Process, Kenneth S. Rubin, Addison- Wesley 2013.

Copyright © 2013 by Mark J. Sebern Code Reviews Do you (or your team) review code now? If so, how do you do it? How effective are these reviews? Potential problems Difficulty in maintaining attention/focus Knowing what to look for

Copyright © 2013 by Mark J. Sebern Types of Code Reviews Personal review Code author reviews his/her own work Peer review Review by another team member Inspection Review by whole team (or subset) What are the tradeoffs among these approaches?

Copyright © 2013 by Mark J. Sebern Code Review Checklists What is a checklist? Pre-flight example Why? For code: Based on historical defects Used to guide review

Copyright © 2013 by Mark J. Sebern Checklist Usage

Copyright © 2013 by Mark J. Sebern Review Timing Review code before committing to build? Ensures review is done Delay for peer/team reviewers? Later May tend to lower priority of review

Copyright © 2013 by Mark J. Sebern What About Design? What is your experience with reviewing designs? Have you ever done a design review? What exactly do you review? What do you look for? What kinds of design defect have you found?

Copyright © 2013 by Mark J. Sebern Design Documentation Do you actually have designs that are documented well enough to have real defects? If not, does it make any sense to try to review them?

Copyright © 2013 by Mark J. Sebern UML Design Documentation

Copyright © 2013 by Mark J. Sebern UML Design Documentation ExternalInternal Static Class diagram with embedded descriptions Pre- & post-conditions, behavior descriptions Dynamic Use cases and UC/sequence/activity diagrams State charts/diagrams

Copyright © 2013 by Mark J. Sebern Using Tests as Design Documentation In theory, design documentation should be done using purpose-built tools The problem: developers won’t/don’t read it or keep it up to date (is that true?) Possible solution Embed design specs into unit tests Run in automated build process

Copyright © 2013 by Mark J. Sebern UML Design Documentation ExternalInternal Static Class diagram with embedded descriptions Pre- & post-conditions, behavior descriptions Dynamic Use cases and UC/sequence/activity diagrams State diagrams Sanity check: Can we actually put this documentation into tests (unit, system)? Can some of it be put into the code (e.g., Javadoc)? Other suggestions? “Sometimes the simplest tool is a complex CASE tool. When it comes to requirements I prefer inclusive tools such as paper and whiteboards, but when it comes to design I tend to lean towards sophisticated tools which (re)generate code for me. Like my grandfather always said, you should use the right tool for the job.”inclusive toolsthe job.” Scott AmbleScott Ambler

Copyright © 2013 by Mark J. Sebern Questions?