James B. Dabney, UHCL James D Arthur, Va Tech 13 December 2016

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Agile Architecture Prabhu Venkatesan for COMP-684.
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
AGILE SOFTWARE DEVELOPMENT AYSE GUL YAMAN. Outline Traditional approach Agile Software Development Agile Values Agile Principles Limitations of Agile.
Agile Methods.
Agile Software Development
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Chapter 4 Agile Development
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
"The thinking it took to get us into this mess is not the same thinking that is going to get us out of it."
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Introduction to Software Engineering
Embedded Systems Software Engineering
Software Engineering Principles I (Spring 2017)
Chapter 5 Agile Development Moonzoo Kim KAIST
Forget about Agile for a second!
Agile Project Management
Manifesto for Agile Software Development
The low hanging fruit is gone!
AGILE SCRUM METHODOLOGY
Introduction to Agile Software Development
Principles for Agile Development
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Software Development
Agile Software Development Brian Moseley.
#2-What is Agile? Why Agile?
Teaching Agile Methods CSEE&T 2017, Savannah, Georgia
Introduction to Software Engineering
Software Engineering (CSI 321)
Introduction to Software Engineering
Project Management and the Agile Manifesto
Agile Software Development Paradigms
How to Successfully Implement an Agile Project
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
The Agile Manifesto is based on 12 principles
Agile Development Agile Development Damian Gordon Damian Gordon.
Lecture 2 Revision of Models of a Software Process
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
The Manifesto for Agile Software Development
Projects, Assignments, and other Assessments
Agile software development
Presentation transcript:

James B. Dabney, UHCL James D Arthur, Va Tech 13 December 2016 Challenges in the Verification and Validation of Mission-Critical Software Developed within an Agile Framework James B. Dabney, UHCL James D Arthur, Va Tech 13 December 2016

Overview Conventional mission-critical software lifecycle Conventional V&V process Agile software development Hybrid Agile variants Adjusting V&V to hybrid Agile Conclusions

Conventional Mission-Critical Software Lifecycle Traditional lifecycle based on waterfall model Sequence of milestone reviews Preliminary design review (PDR) Critical design review (CDR) Test readiness review (TRR) Design certification review (DCR) Larger projects incremental model Planned series of waterfall lifecycles Certification mandated by regulations (e.g. FDA, UL)

Example Traditional Waterfall Lifecycle

Example Incremental Lifecycle Increments can be developmental or operational Plan several increments ahead

Conventional V&V Process Reduce program risk by analyzing key artifacts Strive to find issues in-phase by mirroring development Verify during each lifecycle phase that the product satisfies requirements defined in previous phase Requirements meet user needs, complete No unintended functionality specified Design satisfies requirements and no more Testing fully covers design and requirements

Understanding Agile The fundamental reason for a “new” paradigm Need to respond to constant changes Defines the set of most important beliefs of what is truly important Agile Values Defines a set ways to meet the values Agile Principles Defines in detail how this is implemented in practice Agile Practices Material adapted from "All about Agile", Ahmed Sidky, Presentation for CS 5704, Va Tech Fall 2006

Agile Manifesto [AM01] Individuals and interactions Working software Over Process and tools Working software Comprehensive documentation Customer collaboration Contract negotiation Responding to change Following a plan Valued More Valued

Agile Principles Customer satisfaction by rapid, continuous delivery of useful software Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Even late changes in requirements are welcomed Close, daily cooperation between customer & developer Fact-to-face conversations is the best form of communication Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaption to changing circumstances

Agile Planning: The Scrum Process

Agile Planning: Release and Iteration Planning Product Backlog Release A Feature 1, Feature 2, Feature 3a Feature 1 Feature 2 Feature 3 Feature 4 Feature 5 Feature 6 Feature 7 Feature … Release Backlog Iteration 1 Iteration 2 Iteration 3 Story A Story B Story C Story D Story … Story A Story B Story C Story D Story E Story F Story G Material adapted from "All about Agile", Ahmed Sidky, Presentation for CS 5704, Va Tech Fall 2006

Adapting Agile to Large Projects Alistair Cockburn (one of the original agile proponents): “small projects, web projects, exploratory projects, agile is fabulous; it beats the pants off of everything else, but for NASA, no” [AM13] “Embedded systems have specific product requirements, e.g. safety, which are not obviously addressed by agile practices such as XP or Scrum” [EOS14] Key assumptions of Agile (e.g.co-located teams) are difficult to realize on large projects [TFR02]

Variants of Agile for Large Projects Scaled Agile Framework (SAFe) [DL14] Intended for high-assurance environments (medical) Designed to comply with regulatory requirements (FDA) Gaining acceptance Incremental Commitment Model (ICM) [BL07] Merges concepts of classic V-verification, concurrent engineering, Agile Intended for large mission-critical and net-centric systems

Hybrid Projects Similar to SAFe methodology Early lifecycle activities follow standard process Requirements, design, test follow Agile process Sequence of releases composed of multiple sprints Work down project backlog Certification follows standard process

Mapping Traditional V&V to Agile Assessed applicability of standard V&V methods to hybrid Agile For each method specified for project elements, assessed Inputs Timing in lifecycle Feasibility of executing method given the timing and available information Methods fall into three classes Early lifecycle methods generally compatible Methods involving tracing need to be tailored Methods involving completeness need to be replaced

Early Lifecycle V&V Methods Concept documentation Reuse analysis Tracing high-level requirements, architecture elements Feasibility study review Security framework & threat identification Safety requirements No significant adjustments needed for hybrid Agile

Tracing-Oriented Methods Bi-directional requirements traces High level requirements available Detailed requirements elaborated as part of sprints Tracing design back to requirements Trace fault trees and FMEA Test plan & procedures Typically developed incrementally Coverage and completeness incrementally Generally straightforward to tailor for hybrid Agile

Completeness-Oriented Methods Interface requirements & design analysis Internal interfaces defined as needed in sprints Key source of integration problems Scenario analysis Very valuable V&V techniques Scenario details and supporting requirements developed in sprints Flow diagrams to discover missing, conflicting, unnecessary behavior Requires extensive modification/rewrite to accommodate hybrid Agile

Adjusting V&V to Hybrid Agile Project interfaces Developing techniques to build assurance for completeness and emergent properties without linear progress of waterfall

Conclusions & Future Work Pure Agile not appropriate for mission-critical or safety-critical projects Hybrid Agile gaining acceptance Hybrids of traditional and Agile methodologies Retain early lifecycle activities Agile techniques used in implementation phase Agile projects may benefit from revised set of deliverables V&V methodology must adapt to hybrid Agile

References [AM01] K.Beck, M.Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor, K. Schwaber, J. Sutherland, D. Thomas “Agile Manifesto,” http://agilemanifesto.org/, 2001 [AM13] A. Minkiewicz, “Applying Agile practices to space-based software systems,” PowerPoint presentation, PRICE Systems, LLC, 2013 [EOS14] U. Eklund, H. H. Olsson, and N. J. Strom, "Industrial challenges of scaling Agile in mass- produced embedded systems," XP 2014 Workshops, Rome, Italy, 2014 [TFR02] D. Turk, R. France, B Rumpe, "Limitations of agile software processes," Proceedings of the Third International Conference on eXtreme Programming and Agile Processes in Software Engineering, Alghero, Sardinia, Italy, 2002. [DL14] D. Leffingwell, “Agile software development with verification and validation in high assurance and regulated environments,” Leffingwell, LLC and Rally Software Development Corporation, 2014 [BL07] B. Boehm and J. A. Lane, "Using the incremental commitment model to integrate system acquisition, systems engineering, and software engineering," Cross Talk: The Journal of Defense Software Engineering, October, 2007