SWEN 256 Software Process & Project Management

Similar documents
Chapter 8: Verification & Validation

Making your ISO Flow Flawless Establishing Confidence in Verification Tools

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Software Verification and Validation. Prof. Lionel Briand Ph.D., IEEE Fellow

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

Automated Driving Systems with Model-Based Design for ISO 26262:2018 and SOTIF

Software Maintenance Cycles with the RUP

Software processes, quality, and standards Static analysis

Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement

Object-Oriented Design

M&S Requirements and VV&A: What s the Relationship?

UNIT-III LIFE-CYCLE PHASES

CSE - Annual Research Review. From Informal WinWin Agreements to Formalized Requirements

Software Life Cycle Models

Purpose and Difficulty of Software Testing

Module 5 Design for Reliability and Quality. IIT, Bombay

ISO ISO is the standard for procedures and methods on User Centered Design of interactive systems.

Model Based Systems Engineering (MBSE) Business Case Considerations An Enabler of Risk Reduction

Towards a multi-view point safety contract Alejandra Ruiz 1, Tim Kelly 2, Huascar Espinoza 1

Code Complete 2: Realities of Modern Software Construction

Software Testing for Developer Introduction. Duvan Luong, Ph.D. Operational Excellence Networks

Meeting the Challenges of Formal Verification

Assessing the Welfare of Farm Animals

Grundlagen des Software Engineering Fundamentals of Software Engineering

SDN Architecture 1.0 Overview. November, 2014

UNIT VIII SYSTEM METHODOLOGY 2014

Designing for recovery New challenges for large-scale, complex IT systems

Focusing Software Education on Engineering

The Evolution Tree: A Maintenance-Oriented Software Development Model

Domain Understanding and Requirements Elicitation

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

Towards an MDA-based development methodology 1

Testing in the Lifecycle

The Need for Gate-Level CDC

System of Systems Software Assurance

CHESS Replacement Project

Safety in large technology systems. Technology Residential College October 13, 1999 Dan Little

STUDY ON FIREWALL APPROACH FOR THE REGRESSION TESTING OF OBJECT-ORIENTED SOFTWARE

RE Basics : Purpose and Nature of Requirements

Office of Technology Development (OTD) Gap Fund

Software-Intensive Systems Producibility

Science, Technology, Engineering, & Mathematics Career Cluster (ST) Engineering and Technology Career Pathway (ST-ET) 17 CCRS CTE

Manufacturing Readiness Assessments of Technology Development Projects

Object-oriented Analysis and Design

Evaluation Plan for a Cardiological Multi- Media Workstation (I4C Project)

Leveraging 21st Century SE Concepts, Principles, and Practices to Achieve User, Healthcare Services, and Medical Device Development Success

Strategy for a Digital Preservation Program. Library and Archives Canada

Enabling Model-Based Design for DO-254 Compliance with MathWorks and Mentor Graphics Tools

Exploring Computing Environment Possibilities for Risk Oriented Testing

New Idea In Waterfall Model For Real Time Software Development

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters

Requirements and Safety Cases

Ensuring Innovation. By Kevin Richardson, Ph.D. Principal User Experience Architect. 2 Commerce Drive Cranbury, NJ 08512

Service-Oriented Software Engineering - SOSE (Academic Year 2015/2016)

Industrial Applications and Challenges for Verifying Reactive Embedded Software. Tom Bienmüller, SC 2 Summer School, MPI Saarbrücken, August 2017

Aircraft Structure Service Life Extension Program (SLEP) Planning, Development, and Implementation

Evolving a Software Requirements Ontology

Lens Impact Resistance Testing Plan Revised,

24 Challenges in Deductive Software Verification

Computer Science: Who Cares? Computer Science: It Matters. Computer Science: Disciplines

Code Complete 2: A Decade of Advances in Software Construction Construx Software Builders, Inc. All Rights Reserved.

Baker s Dozen of Inconvenient Truths about Software Engineering Tom Feliz

A Knowledge-Centric Approach for Complex Systems. Chris R. Powell 1/29/2015

Despite the euphonic name, the words in the program title actually do describe what we're trying to do:

Quality Management for Advanced Classification. David Wright Senior Munitions Response Geophysicist CH2M HILL

Program Automotive Security and Privacy

Software Engineering Principles: Do They Meet Engineering Criteria?

This is a preview - click here to buy the full publication

DESIGN FOR POKA-YOKE ASSEMBLY AN APPROACH TO PREVENT ASSEMBLY ISSUES

General View Of Quality Definitions of Quality Quality Assurance

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

Mid Term Exam SES 405 Exploration Systems Engineering 3 March Your Name

EMC Testing to Achieve Functional Safety

UML and Patterns.book Page 52 Thursday, September 16, :48 PM

INTELLIGENT SOFTWARE QUALITY MODEL: THE THEORETICAL FRAMEWORK

Scientific Certification

PROGRAM UNDERSTANDING TASK IN THE CONTEXT OF PSP

Does it Pay Off? Model-Based Verification and Validation of Embedded Systems!

Proposed Curriculum Master of Science in Systems Engineering for The MITRE Corporation

Analysis of Software Artifacts

Objectives. Designing, implementing, deploying and operating systems which include hardware, software and people

E N G I N E E R I N G M A N U A L

Digital Engineering Support to Mission Engineering

Architectural assumptions and their management in software development Yang, Chen

DHS-DOD Software Assurance Forum, McLean VA 6 Oct 2008 Very loosely based on Daniel s 2007 briefing

Lecture 13: Requirements Analysis

SPDO. Phase 1 System Requirements Specification (SyRS) Tim Stevenson SPDO System Engineer

Achieving Fast IT With Continuous Delivery

FM p.i-xxii 4/2/04 11:39 AM Page v. Preface

Evidence Engineering. Audris Mockus University of Tennessee and Avaya Labs Research [ ]

MEP Coordination. Ir. Dr. Sam C. M. Hui Faculty of Science and Technology

Relationship of requirements engineering to innovation prototyping Abstract Introduction

This document is a preview generated by EVS

Lean Enablers for Managing Engineering Programs

IECI Chapter Japan Series Vol. 5 No. 2, 2003 ISSN

Pragmatic Strategies for Adopting Model-Based Design for Embedded Applications. The MathWorks, Inc.

This document is a preview generated by EVS

TECHNICAL SPECIFICATIONS for 300KV CONSTANT POTENTIAL X RAY EQUIPMENT (for industrial applications) S. No. PARTICULARS BHEL SPECIFICATIONS

Introduction to adoption of lean canvas in software test architecture design

Transcription:

SWEN 256 Software Process & Project Management

What is quality?

A definition of quality should emphasize three important points: 1. Software requirements are the foundation from which quality is measured. Lack of conformance to requirement is lack of quality. 2. Specified standards define a set of development criteria that guide the manner in which software is engineered. If the criteria are not followed, lack of quality will almost surely result. 3. There is a set of implicit requirements that often goes unmentioned (e.g. good maintainability). If software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect. [DACS]

The purpose of software testing is to assess and evaluate the quality of work performed at each step of the software development process. Although it sometimes seems that way, the purpose of testing is NOT to use up all the remaining budget or schedule resources at the end of a development effort. The goal of testing is to ensure that the software performs as intended, and to improve software quality, reliability and maintainability. Software testing is a full-life-cycle assessment of quality [DACS]

A good development process, tools, methods, and people go far in providing quality products Testing is one aspect of assuring software quality o It is a measure of quality, it does not deliver quality Quality cannot be tested into a product Software Quality Assurance includes o Software engineering process improvement Prevent the insertion of defects o Fault tolerant software design Tolerate the existence of defects o All aspects of software verification and validation Including testing

Failures are usually a result of system errors (which turn into defects) that are derived from faults in the system However, faults do not necessarily result in system failures o The faulty system state may be transient and corrected before an error arises Errors do not necessarily lead to system failures o o The error can be corrected by built-in error detection and recovery The failure can be protected against by built-in protection facilities For example, protect system resources from system errors [Sommerville]

Defect prevention and reduction Fault detection and containment Human (developer) Error Software Defect (bug) System Fault System Failure Build time Latent (dormant) defect Run time

Assuring that a software system meets a user's needs

Verification: o Are we building the product right? o The software should conform to its design Validation: o Are we building the right product? Validate requirements o Did we build the right product? Validate implementation o The software should do what the user really requires V&V: Build the right product and build it right! [Sommerville]

V&V is a whole life-cycle process o V & V must be applied at each stage in the software process V&V has two principal objectives o The discovery of defects in a system o The assessment of whether or not the system is usable in an operational situation [Sommerville]

Software testing: o Concerned with exercising and observing product behavior o Dynamic V&V Software inspections: o Concerned with studying software product artifacts to discover defects o Static V&V o May be supplemented by tool-based (semi-automated) document and code analysis

Depends on: o System s purpose Criticality of software function Mission critical (organization depends on it) Safety critical Societal impact o User expectations o Marketing environment Cost-benefit trade-offs o High confidence is expensive. Is it necessary?

At each stage of the software development process, there are activities that should be done which will help develop the testing plans and test cases Remember: V&V is expensive. o Plan to do it right the first time!

Plan and develop tests throughout the life cycle Implement tests when there is an implementation ready to test Iterative and incremental: Repeat V at each iteration http://blog.sei.cmu.edu/post.cfm/using-v-models-testing-315

Quality as a System and a Process

Quality assurance (QA) activities strive to ensure: Few, if any, defects remain in the software system when it is delivered Remaining defects will cause minimal disruptions or damages

The following need to be considered: Scope, Stakeholders, Risks, Internal and External Environmental Factors, Process Project-specific standards and procedures are created o o o o o o Based on quality standards for each deliverable Includes how PM activities themselves should be done Plans/Project must comply with external standards (CISG, ISO 9000, OSHA, etc) Plans/Project must comply with organizational standards Plans/Project must meet the customer s quality standards Tracking / Proof may be needed (metrics, measurements, etc.)

Defect Prevention o Remove (human) error sources o Block defects from being injected into software artifacts Defect Reduction o Detect defects Inspection Testing o Remove defects Debugging iterate on the software engineering activity Rework requirements, design, code, etc. Defect Containment o Fault tolerance o Fault containment

Remove the root causes of errors Education and training address human misconceptions that cause errors o Domain and product knowledge o Software engineering process o Technology knowledge Formal methods can help identify and correct imprecise specifications, designs and implementations Standards conformance, use of best practices and patterns can help prevent fault injection

Discover and remove defects Inspection: direct fault detection o requirements, design, code, manuals, test cases Testing: failure observation and fault isolation o Execute the software and observe failures o Use execution history/records to analyze and locate fault(s) and defect(s) causing the failure

Need implemented software to execute Need software instrumentation, execution history to: o isolate faults o trace to defects Impossible to test everything o - Expensive to test most things Risk of too much and not enough testing o - Use project risks to guide investment

Quantity Number of missed defects Cost of testing Amount of Testing Under-testing Optimal Amount of Testing Over-testing

Denotes a potential negative impact that may arise from some present process or from some future event. What is your risk exposure to a defect that is hidden? o Likelihood of defect existence o Likelihood of failure occurrence o Impact if failure occurs Risk exposure determines... o Testing priority o Testing depth o What to test and not to test

Software fault tolerance o Safety-critical or mission-critical software often must be fault tolerant The system can continue in operation in spite of a fault occurrence o Techniques: exception handling, recovery blocks Software failure containment o Fault detection and isolation o Techniques: safety interlocks, physical containment (barriers), disaster planning, etc.

Input to Software Development Error Sources e1 e3 e4 e2 Software System Faults f2 f1 f3 Usage Scenarios and Results Failures x1 x2 Failure Containment e5 Error Removal Legend a e6 presence of a a Fault Removal removal of a f4 a b a causes b Failure Prevention defect barrier/remover

QA ensures software: o delivered with few defects, o remaining defects will cause minimal disruptions or damages QA techniques: o classified according to how when they handle defects o defect prevention, o reduction, o containment

Defect prevention: Remove the root cause of human errors Defect reduction: Discover defects o uses inspection o testing Defect containment: Limit the impact of a fault o uses fault tolerance o fault & failure containment

[DACS] Data and Analysis Center for Software, Software Reliability Source Book, http://iac.dtic.mil/dacs [Patton] Ron Patton, Software Testing, Sams Publishing, 2001. [Sommerville] Ian Sommerville, Software Engineering, 6 th Edition, Addison-Wesley, 2001. [RUP] Rational Unified Process, IBM Rational Software (installed on lab machines) [Whittaker] What Is Software Testing? And Why Is It So Hard?, IEEE Software, January-February 2000, pp. 70-79.