DRAFT TABLE OF CONTENTS 1. Software Quality Assurance By Dr. Claude Y Laporte and Dr. Alain April



Similar documents
Software Quality Assurance in an Undergraduate Software Engineering Program

SC7-ISO20000 Alignment issues Aligning ITIL to existing ISO JTC1- SC7 Software Engineering Standards

An Innovative Approach in Developing Standard Professionals

Teaching Software Quality Assurance in an Undergraduate Software Engineering Program

Small tech firms. Seizing the benefits of software and systems engineering standards

CONTENTS. Preface. Acknowledgements. 1. Introduction and Overview 1 Introduction 1 Whatis the CMMI"? 2 What the CMMI* is Not 3 What are Standards?

Involving Software Engineering Students in Learning and Implementing Software Engineering Standards

Software Product Quality Practices Quality Measurement and Evaluation using TL9000 and ISO/IEC 9126

The SWEBOK Initiative and Software Measurement Intentions

The Development of Systems Engineering International Standards and Support Tools for Very Small Enterprises

Software Maintenance Capability Maturity Model (SM-CMM): Process Performance Measurement

TMMi Case Study. Methodology. Scope. Use TMMi to do a gap analysis for an independent

Systems Engineering International Standards and Support Tools for Very Small Enterprises

International Cooperation for Education about Standardization Conference, August 14th 2014, Ottawa, Canada.

Software Project Management in Very Small Entities with ISO/IEC 29110

Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation

THE NECESSARY SOFTWARE MEASUREMENT KNOWLEDGE IN SOFTWARE ENGINEERING EDUCATION FROM THE PRACTITIONERS POINT OF VIEW

Measuring the Cost of Software Quality of a Large Software Project at Bombardier Transportation

International Research Workshop for Process Improvement in Small Settings, Software Engineering Institute, Pittsburgh, October 19-20, 2005.

ISO/IEC/IEEE The New International Software Testing Standards

<name of project> Software Project Management Plan

This document is a preview generated by EVS

An integrated life cycle quality model for general public market software products

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches UNIVERSITATSBIBLIOTHEK HANNOVER ' TECHNISCHE INFORM ATIONSBIBLIOTHEK

The SWEBOK Guide A Curriculum Analysis Tool

Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction

Syllabus. REQB Certified Professional for Requirements Engineering. Foundation Level

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object

(S3. Software Maintenance Capability Maturity Model

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

ISO/IEC 90003:2004 covers all aspects

Standards & Practices for the software and system engineers /

Plan-Driven Methodologies

Systems and software engineering Lifecycle profiles for Very Small Entities (VSEs) Part 5-6-2:

ISO, CMMI and PMBOK Risk Management: a Comparative Analysis

Chapter 2 INDUSTRIAL BUYING BEHAVIOUR: DECISION MAKING IN PURCHASING

Software Maintenance Management

Testing Process Models

SYLLABUS IM 662 MIS: PROJECT DEVELOPMENT & MANAGEMENT FALL TRI-MESTER 2015

Application of software product quality international standards through software development life cycle

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

Certified Professional in Configuration Management Glossary of Terms

A Business Analysis Perspective on Business Process Management

GFMAM Competency Specification for an ISO Asset Management System Auditor/Assessor First Edition, Version 2

Implementing Risk Management as part of a Systems Engineering Process

Certified Software Quality Assurance Professional VS-1085

An Innovative Approach in Developing Standard Professionals

ISO/IEC Part 1 the next edition. Lynda Cooper project editor for ISO20000 part 1

SOFTWARE ASSURANCE STANDARD

PROJECT PLAN TEMPLATE

Validating Enterprise Systems: A Practical Guide

How DCMA Helps To Ensure Good Measurements

An Overview of IEEE Software Engineering Standards and Knowledge Products

Foredragfor Den Norske Dataforening, den

SEBoK: a guide to the systems engineering body of knowledge

Initiating Software Process Improvement in Small Enterprises: Experiments with Micro-Evaluation Framework

Certified Software Quality Engineer (CSQE) Body of Knowledge

ISO/IEC Information & ICT Security and Governance Standards in practice. Charles Provencher, Nurun Inc; Chair CAC-SC27 & CAC-CGIT

A Guide to the Business Analysis Body of Knowledge (BABOK Guide) Version 2.0

Overview Presented by: Boyd L. Summers

Leveraging CMMI framework for Engineering Services

Certified Tester. Advanced Level Overview

Seminar s Title: EPC (Engineering-Procurement-Construction) Project Management

A special case of outsource: on the security of cloud services requirements, tools for solving problems

SUPPLY CHAIN ASSURANCE FRAMEWORK: THE SUPPLY CHAIN STANDARDS TRANSLATOR

Course Outline. Foundation of Business Analysis Course BA30: 4 days Instructor Led

Requirements Engineering for Software

Capability Maturity Model Integration (CMMI SM ) Fundamentals

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

IEEE Software Engineering Risk Management: Measurement-Based Life Cycle Risk Management PSM 2001 Aspen, Colorado

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

Extending CMMI Level 4/5 Organizational Metrics Beyond Software Development

Software Quality Assurance: VI Standards

NEOXEN MODUS METHODOLOGY

Approach to Information Security Architecture. Kaapro Kanto Chief Architect, Security and Privacy TeliaSonera

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

CONSOLIDATED VERSION IEC Medical device software Software life cycle processes. colour inside. Edition

Mature Agile with a twist of CMMI

-Blue Print- The Quality Approach towards IT Service Management

Bloom s Taxonomy Levels for Three Software Engineer Profiles

Measuring the Cost of Software Quality of a Large Software Project at Bombardier Transportation: A Case Study

CMMI KEY PROCESS AREAS

Training for IT project managers and team leads

Family: Iterative Enhancement Origin: Ivar Jacobson, James Rumbaugh, Grady Booch, 1996 Defines process framework that is adaptable to

Early Stage Adoption of ISO/IEC Software Project Management Practices: A Case Study

Software Process Maturity Model Study

Software Maintenance Productivity measurement: how to assess the readiness of your organization

PMP Examination Tasks Puzzle game

ITIL Service Lifecycles and the Project Manager

The Advantages of ISO 9001 Certification

Development and Integration Issues about Software Engineering, Systems Engineering and Project Management Processes

Implementation of ANSI/AAMI/IEC Medical Device Software Lifecycle Processes.

Standards Initiatives for Software Product Line Engineering and Management within the International Organization for Standardization

Transcription:

DRAFT TABLE OF CONTENTS 1 Software Quality Assurance By Dr. Claude Y Laporte and Dr. Alain April Foreword This book introduces the basic concepts of software quality assurance. The book illustrates how these concepts can be implemented in organizations such as businesses, government agencies and small organizations that develop software products in many areas such as telecommunications, transport, defense and aerospace. This book provides the practices required to improve the quality of software. This book also provides an overview of standards used to implement software quality assurance. Prerequisites We assume that the reader has a basic knowledge of software development practices. Introduction In the global and competitive environment, organizations are under great pressure from their customers. Customers are becoming more demanding and require high quality, low cost software products in a timely manner. To meet these demands and remain competitive an organization must have an effective software quality assurance (SQA) team. Ensuring the quality of operational systems of an organization is not an easy task. Standards define ways to maximize performance but managers and employees are mostly left to themselves to decide how to practically improve the situation. Organizations face several problems: Increasing pressure for higher quality and faster development, More subcontracting and outsourcing, More distributed work teams, Multiple platforms and technologies The purpose of this book is to enable managers and software quality assurance personnel to use this book to assess the effectiveness and completeness of their approach about software quality assurance. Some of the issues raised in this book are: What are the processes, practices and activities of software quality assurance and software improvement? Can the current standards and models serve as a reference for their work?

DRAFT TABLE OF CONTENTS 2 How to help managers and their staff during the implementation of software quality assurance? To answer these questions we used over 25 years of practical experience in software quality assurance in different organizations. Content and Organization The book is divided in fifteen chapters. The last chapter has been designed to facilitate the teaching of software quality assurance to undergraduate and graduate level students. This book covers the basic knowledge of software quality assurance identified, among others, by the IEEE 730 software quality assurance standard, the ISO/IEC/IEEE 12207 software life cycle processes standard and the Capability Maturity Model Integration for Development (CMMI ) of the Software Engineering Institute. The reader will also find at the end of the book all the definitions and abbreviations used in the 15 chapters. Most of the definitions come from international standards. Finally, numerous practical examples are used to illustrate the application of software quality assurance practices. Icons used in the book To illustrate a concept, to focus on a definition or simply refer a website, we use icons throughout this book. Icon Meaning Practical example: An example of practical application of a theoretical concept Quote: A quote from an expert Definition: A definition of an important term Reference on the web: An internet site to learn more about a specific topic

DRAFT TABLE OF CONTENTS 3 Tools: Examples of tools that support techniques presented Anecdote: A short story of a fact not well known, picturesque or curious on the subject. Checklist: A list of items to check (to be remembered and not forgotten) during the execution of a technique presented Tip: A tip of the authors Chapter 1: Basic Software Quality Assurance Knowledge This chapter presents an overview of the knowledge required by software quality assurance practitioners. From this overview, the book develops every aspect of the field and cites the important references to deepen each specific topic. We use the concept of business models to explain the selection of needed software quality assurance practices. In this chapter, we also establish the terms and their definitions and useful concepts that are used throughout the book. Chapter 2: Quality Culture This chapter presents an overview of software engineering ethics and the techniques to manage the expectations of managers and customers with respect to software quality. It introduces the concept of cost of quality, followed by practical examples. It also introduces the concept of quality culture and its influence on software quality assurance practices used. We also present five dimensions of a software project and how these dimensions can be used to identify the degrees of freedom a project manager has to ensure its success. Chapter 3: Quality Requirements This chapter adds to the concepts and terminology already presented. It deals with quality models in the software field. These models propose classifications of non-functional requirements. We describe steps to define software quality requirements. Practical examples describe how to use these models to define the quality requirements of a software project. Finally, we introduce the concept of requirements

DRAFT TABLE OF CONTENTS 4 traceability and the importance of quality requirements for the software quality assurance plan. Chapter 4: Software Engineering Standards and Models This chapter presents the most important standards and models about software quality. The software quality assurance specialist will find proven practices from standards and models. This chapter provides the framework that can be useful for the following major software activities: 1) development, 2) maintenance and 3) IT services. Finally, a short discussion about standards specific to certain domains of application are presented, followed by recommendations for a software quality assurance plan. Chapter 5: Reviews This chapter presents different types of software reviews: personal review, the 'desk check', the walk-through and the inspection. We describe the theory about reviews and then practical examples. It introduces reviews in an agile context. Subsequently we describe other reviews specific to a project: the project launch review and lessons learned review. The chapter concludes with a discussion on the selection of one type of review depending on your business domain and how these techniques fit into the software quality assurance plan. Chapter 6: Software Audit This chapter describes the audit process and the software problem resolution process. Sooner or later in the career of a software practitioner audits will be conducted in a software project. Standards and models describing audit are presented followed by a practical case. Chapter 7: Verification and Validation This chapter describes the concept of software verification and validation (V&V). The benefits of V&V are discussed as well as the costs of V&V practices. Standards and models that impose or describe V&V practices are described. The description of the content a V&V plan is presented. Chapter 8: Tests and Software Quality Assurance This chapter describes in more detail, an important technique of V & V: tests. It describes a method for classifying defects followed by the test approaches and test strategies: black box and white box. The notion of levels and types of tests are presented: unit test, integration test and system test. This chapter ends with a description the documentation of

DRAFT TABLE OF CONTENTS 5 tests and the role of testing in term the software quality assurance plan. Chapter 9: Software Configuration Management This chapter describes an important component of software quality: software configuration management (SCM). This chapter begins by presenting the usefulness of SCM and typical SCM activities. It presents repositories and branches. Software control, software status and software audit are presented. Finally the chapter concludes with a proposal for the implementation of SCM in a small organization. Chapter 10: Policies, Processes and Procedures This chapter explains how to develop, document and improve policies, processes and procedures to ensure the effectiveness and efficiency of an organization. It explains the importance of documentation and some notations to document processes and procedures. The chapter ends by presenting the Personal Software Process (PSP) developed by the Software Engineering Institute. Chapter 11: Measurement This chapter explains the importance of measurement, standards, models and a methodology to describe the requirements of a measurement process. It presents measurement for small organizations or small projects. An approach to implement a measurement program and the pitfalls and the human factors related to the measurement is discussed. Chapter 12: Management of Suppliers and Contracts This chapter deals with the important topic of the management of software suppliers and software contracts. It discusses the major reviews and recommendations of the CMMI that address this issue. Subsequently, we present the different types of contracts and the concept of risk sharing which are illustrated with a practical example. This chapter concludes with recommendations for the content of the software quality assurance plan. Chapter 13: Risk Management This chapter presents the main models and standards that include requirements for the management of risks. It discusses the risks that may affect the quality of software and techniques to identify, prioritize, document and mitigate them. It also presents the roles of stakeholders in the risk management process. It concludes by discussing the human factors in the management of software risks.

DRAFT TABLE OF CONTENTS 6 Chapter 14: Software Quality Assurance Plan This chapter synthesizes the topics presented in the previous chapters of the book by assembling a comprehensive software quality assurance plan using the IEEE 730 standard as a framework. It makes additional recommendations and practical examples. Chapter 15: Software Quality Assurance: A Guide for Teachers Software quality assurance can be taught at several levels: at the college level which trains IT technicians, at the undergraduate level which trains software engineers and at the graduate level which trains practicing professionals who have not received their undergraduate training in software engineering. In this chapter, we propose, for each level, an approach to teach software quality assurance. Annexes Annex 1 - Code of ethics for software engineers Annex 2 - Glossary and abbreviations Exercises Each chapter contains exercises. Solutions are available on a website for teachers who use this book for teaching. Website Supplementary material for teaching and the use of this book in organizations (e.g. presentation material, solutions, project descriptions, templates, tools, articles and links) is available on a website. About the Authors Dr. Claude Y Laporte is a professor, since 2000, at the École de technologie supérieure (ÉTS), an engineering school in Canada, where he teaches software engineering. His research interests include software process improvement in small and very small organisations and software quality assurance. He has worked in defense and transportation organizations for over 20 years. He received a Master s degree in Physics from the Université de Montréal, a Master s degree in Applied Sciences from the École Polytechnique de Montréal and a Ph.D. from the Université de Bretagne Occidentale (France). He is the Editor of ISO/IEC JTC1 SC7 Working Group 24 tasked to develop ISO/IEC 29110 systems engineering and software engineering life cycle standards and guides for very small entities. He is the Co-chair of INCOSE Systems Engineering Working Group for Very Small and

DRAFT TABLE OF CONTENTS 7 Micro Entities (VSMEs). Professor Laporte is a member of IEEE, PMI, INCOSE and a member of the Professional Association of Engineers of the Province of Québec (Ordre des ingénieurs du Québec). He is the co-author of 2 French books on software quality assurance published in 2011 by Hermes Science-Lavoisier. Web site address: http://profs.etsmtl.ca/claporte/english/index.html Dr. Alain April is professor of software engineering and IT at the ÉTS University, Quebec, Canada. He holds a Ph.D. from the Otto von Guericke University Magdeburg located in Germany. He specializes his teaching and consulting in software process improvement. He worked in information technology, in banking and telecommunications for over 20 years. Professor April has written several books on improving software maintenance and is co-editor of the international standard ISO 9126 (part 3) on software measurement. He is currently associate editor of the maintenance, configuration management and software quality chapters of the SWEBOK (Software Engineering Body of Knowledge). Professor April is currently teaching at ETS, and conducts research in 'Cloud Computing' and BPM.