Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development by Wiktor Grodowski.

Slides:



Advertisements
Similar presentations
Connoizor Enabling Performance for Businesses through Software Website: Contact:
Advertisements

Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
Chapter 4 Quality Assurance in Context
Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project.
1 State of Michigan Achieving Software Process Improvement with Capability Maturity Model (CMM)
Software Construction
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
W5HH Principle As applied to Software Projects
Stepan Potiyenko ISS Sr.SW Developer.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
CMM Overview - 1 © Paul Sorenson CMPUT Software Engineering refs. IEEE Software, March 1988, 73-79, and IEEE Software, July 1993, (Capability.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Capability Maturity Model
Using Six Sigma to Achieve CMMI Levels 4 and 5
Process: A Generic View
Quality Management ISO 9001 For TM. What is Quality Quality is the degree to which product or service possesses a desired combination of attributes C:
Reaching Goals: Plans and Controls
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Integrated Capability Maturity Model (CMMI)
Development Testing – Is It Worth It? Arthur Hicken September 2012.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Test Organization and Management
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The process Process, Methods, and Tools
N By: Md Rezaul Huda Reza n
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Installation and Maintenance of Health IT Systems
Lecture 1 Introduction to Software Engineering
CSI - Introduction General Understanding. What is ITSM and what is its Value? ITSM is a set of specialized organizational capabilities for providing value.
NDIA Systems Engineering Supportability & Interoperability Conference October 2003 Using Six Sigma to Improve Systems Engineering Rick Hefner, Ph.D.
VCU Information Systems Institute Advanced Delivery Methodology Courtesy of Data Management That Works.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft.
Georgia Institute of Technology CS 4320 Fall 2003.
Software Engineering - I
Chapter 4 프로세스 모델 Process Models
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Project quality management. Introduction Project quality management includes the process required to ensure that the project satisfies the needs for which.
Planning Ahead for Optimal Contact Center Deployment Jim Jenkins
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 9 Software Quality Assurance.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Compuware Corporation Deliver Reliable Applications Faster Dave Kapelanski Automated Testing Manager.
Are you looking for an opportunity to join a company that has a long history and an exciting future? A place where you can grow within an international.
Project Management Strategies Hidden in the CMMI Rick Hefner, Northrop Grumman CMMI Technology Conference & User Group November.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
SG SCM with MKS scmGalaxy Author: Rajesh Kumar
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Parasoft : Improving Productivity in IT Organizations David McCaw.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
The Challenges of Developing Games and Other High-Resolution Graphics Applications February 2007.
Software Project Configuration Management
Software Verification and Validation
State of Michigan Achieving Software Process Improvement with
CS4311 Spring 2011 Process Improvement Dr
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Software Process Models
CMMI – Staged Representation
Baisc Of Software Testing
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development by Wiktor Grodowski

Mostly focuses on Functional Testing tied back to Requirements Design – Code – “Integration and Test” Early Testing is minimal and short-lived Testing efforts are focused on the isolation and subsequent fixing of “bugs” – Error Detection “Failure to Communicate” between Development, Test and Quality Assurance (QA) Observations on Software Testing.. Not much has changed in 25 years..

The Cost of Waiting

ADP = Automated Defects Prevention Defects Prevention != Error Detection ADP = Defects Prevention + Automation ADP is not a replacement for CMM / CMMI and alike. It is a change in a software development approach. ADP is practical, flexible, down to earth, based on over 20 years of experience What is ADP all about?

ADP originates from Deming's and Jurand's works Attempting to introduce Deming's methodology into SDLC Follow the basic steps: Identify a defect Find its cause Locate where and why it was introduced Implement preventive methods Monitor the process Start preventing errors instead of detecting them! A brief history

Deming's wheel  Plan – establish objectives and processes  Do – implement new process  Check – measure the results and compare against expected outcome  Act – analyze the differences, determine where to apply changes to include improvement

ADP principles  Principle 1: Establishment of Infrastructure  Build a strong foundation through integration of people and technology  Principle 2: Application of General Best Practices  Learn from others’ mistakes  MISRA, JSF, other coding standards  Principle 3: Customization of Best Practices  Learn from your own mistakes  Principle 4: Measurement and Tracking of Project Status  Understand the past and present to make decisions about the future  Principle 5: Automation  Let the computer do it!  Principle 6: Incremental Implementation of ADP’s Practices and Policies

Establishment of infrastructure  People – extending traditional roles  Must promote communication, efficiency, productivity and job satisfaction  Each role must include defects prevention tasks  Understanding roles  All must understand how to adhere to the roles they are given  Define group behavior  Technology – minimum and more  SCMS  Build system  BTS  Reporting system

Application of best practices  Most software projects share same characteristics  Best practices can be used to limit:  Human errors  Common software defects  Where do the best practices come from?  Different granularity of best practices:  Organizational-level (EVMS – Earned Value Management System, general guidelines for use of CMS)  Design-level (suggestions for usage of specific technologies or techniques, such as design patterns, Ajax or SOA)  Code-construction level (procedures for peer programming, writing unit tests, code review etc.)

Customization of best practices  Must address project-specific problems  Is based on the Deming's principles  Monitor process  Identify a defect  Find cause of a defect  Locate part of a process that let the defect slip through  Modify process to prevent the defect from reappearing  Monitor process (again)  Static analysis tool should be implemented to monitor both practices automatically

Measurement and tracking  Measures must be quantitative  Absolute values (number of defects)  Metrics (possession of a given attribute, confidence factor)  Measurement:  What and how can be measured?  What does the measure or metric indicate?  What decisions can be based on these information?  Tracking:  What data can be tracked?  How is the data tracked?  What do we gain from tracking this data?

Automation  What is automation?  „Activity that can be performed completely without human intervention”  “Automation of mundane and repetitive tasks improves people satisfaction and effectiveness”  Not to substitute people but to improve working conditions for people  Automation improves product quality  Automation facilitates human communication  Automation helps to implement and enforce best practices and organizational standards  Automation improves people productivity  Automation helps to collect measurement data

 Code reviews are time-intensive and human-intensive  Review process can be done with a “static analysis” tool  Quality focus is typically NOT built into product schedules so there is typically little time to do proper testing.  Automation is required to leverage these precious cycles  Developers write more testing procedures/code than the code they are developing for delivery!  ADP “automates” much of the driver, stubs and infrastructure creation as well as provide metrics, like code coverage  Developers typically do NOT like testing.  Some problems will never be solved! Why Automation is Important !

Incremental implementation of ADP  Continuous change through:  Learning  Adaptation  Innovation  Change, however, can be overwhelming  ADP needs to be implemented gradually, on a group-by-group basis  Pilot group(s)  Division(s)  Organization  Best practices should also be introduced one-by-one

Incremental implementation of ADP  ADP is both iterative and incremental – the phases do not have to follow sequentially

SC M Source Control code & tests TCM Team Configuration Manager Test Results Scheduled Build and Test Server Reporting Program Manager Architect Exemplary ADP Deployment Professional Editions Server Edition Architect Edition Nightly Results Developer Machines Architect / Technical lead Company Standards deployment Target device

 High costs of defects  Number of defects in a final product must be kept at minimal due to a high recall cost  Possibility of having human life or human safety at stake, dependent on a stability of an embedded device  Important time to market  Late product = lost money  Mandatory compliance  MISRA, JSF, DO-178B, others  Contractor's internal standards Relation to Embedded Systems

 Exemplary ROI  Unit testing caused drop in residual errors almost by a factor of 2. Is it worth it? Reve nues ($) ‏ Time (months)‏ On-time Delayed entry Peak revenue Peak revenue from delayed entry Market rise Market fall W2W Time D On-time Delayed Revenues ($)‏

Is it really worth it?  ADP  Non-ADP

 C++Test  Coding Standards analysis  Flow Analysis  Unit Testing - Coverage analysis  Code Review  Authoring and Automation  Concerto  Work Planning and Tracking  Reporting and Analytics  Acceptance testing  Data correlation  Process Visibility  Insure++  Runtime memory analysis Parasoft Tools supporting ADP

X Understands and anticipates common coding mistakes that can lead to poor software quality X Uses testing as a process measurement technique XX Uses testing results to fix errors X Learns from test results and improves processes and prevents future errors X Reduces probability of errors reoccurring X Addresses the critical roles in creating software X Provides tools and processes to keep team members code at same level X Uses testing results to fix the development process XX Find Errors ADPTestingBenefits Benefits of ADP

Questions & Answers