Lecture Software Process Definition and Management Chapter 2: Prescriptive Process Models Dr. Jürgen Münch Fall 2012 1.

Slides:



Advertisements
Similar presentations
Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
Advertisements

Unit 2. Software Lifecycle
Chapter 4 Quality Assurance in Context
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model.
Software Life Cycles ECE 417/617: Elements of Software Engineering
SYSC System Analysis and Design
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
Object-oriented Analysis and Design
COMP 350: Object Oriented Analysis and Design Lecture 2
CHAPTER 17 Building Software to Support an Agile Organization
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
An Agile View of Process
Introduction to Agile.
CONFIDENTIALITY © 2010 BA ValueBASE LLP, The concepts and methodologies contained herein are proprietary to BA ValueBASE LLP. Duplication, reproduction.
Transforming Organizations
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
1 Agile Methodology & Programming Ric Holt July 2009.
Chapter 4 Agile Development
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 - Agile in a nutshell. 2 - Basic principles ●Relies on an iterative, incremental development mechanism with continuous adaptation to customer requirements.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Successful IT Projects By Darren Dalcher & Lindsey Brodie
Dr. Rob Hasker. What if every project used Scrum?  Why might Scrum not be perfect for every project? Hard to get the big picture Early choices may have.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Teaching slides Chapter 2. Chapter 2 Software Engineering Methodologies Introduction Why a methodology? Agile methodologies Waterfall model Rational Unified.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Teaching slides Chapter 2
Software Development Overview
AGILE SCRUM METHODOLOGY
Flight Software Conference 2016
Introduction to Agile Software Development
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Lecture 3 Prescriptive Process Models
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Development methodologies
Information Technology Project Management – Fifth Edition
Chapter 2 SW Process Models
Approaches to Systems Development
Software Engineering (CSI 321)
Software Processes.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Project Management and the Agile Manifesto
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Lecture 2 Revision of Models of a Software Process
Chapter 2 – Software Processes
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
Chapter 3: Agile Software Processes
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Appendix B Agile Methodologies
Agile Development.
System Development Methods
Software Development Overview
Presentation transcript:

Lecture Software Process Definition and Management Chapter 2: Prescriptive Process Models Dr. Jürgen Münch Fall 2012 1

Prescriptive versus Descriptive Modeling Software Process Definition and Management - Chapter 2 Prescriptive versus Descriptive Modeling 27. Integration Test (Host) 30. Customer Data Upgrade/ Tool-Upgrade 28. Integration Test (Target) Customer Data Tools APS Conformance Test Cases Regression TSPA (from P3) Test Specification Protocol Data Delta

Agile approach of developing software appeared. Software Process Definition and Management - Chapter 2 Introduction The development of computer systems became more complex than one person could achieve in a short time. Many methodologies have been employed to formalise the process, ensure quality and manage the production of a commercial product. In traditional system development methodologies, the requirements for the system are determined at the beginning of the development project and often fixed from that point on. This means that the cost of changing the requirements at a later stage will be high. Agile approach of developing software appeared. Agile approach is a lot less rigorous than the traditional system development methodologies. 

Software Development Lifecycle Models and Methodologies Software Process Definition and Management - Chapter 2 Software Development Lifecycle Models and Methodologies Families of Software development lifecycle models Waterfall model Prototyping Spiral model Incremental model Customer Requirements Requirements specification Use specification Incremental development plan Incremental design Correctness verification Test - case generation Statistical testing Certification model User/system documentation Certified? Correct? Incremental certified system Yes No for each increment Design Team Documentation Team Testing

Lifecycle Models – Waterfall Model (1/3) Software Process Definition and Management - Chapter 2 Lifecycle Models – Waterfall Model (1/3) System Requirements Software Requirements Analysis Program Design Coding Testing Operations

Iterative Enhancement: Overview Software Process Definition and Management - Chapter 2 Iterative Enhancement: Overview Origin: Basili und Turner, 1975 Idea: Develop each increment (i.e., a product part that fulfills a subset of requirements) in a Waterfall style; integrate increment by increment into the product until delivery The focus of the development of an increment might be on the completion of functionality or structure, but it can also be on refinement and improvement Strictly sequential control flow can be weakened by controlled iterations Prerequisites: Structure of the problem permits incremental development

Iterative Enhancement Model (1/4) Software Process Definition and Management - Chapter 2 Iterative Enhancement Model (1/4) Ref.: Rombach

Iterative Enhancement Model (2/4) Software Process Definition and Management - Chapter 2 Iterative Enhancement Model (2/4) Ref.: Rombach

Iterative Enhancement Model (3/4) Software Process Definition and Management - Chapter 2 Iterative Enhancement Model (3/4) Ref.: Rombach

Iterative Enhancement Model (4/4) Software Process Definition and Management - Chapter 2 Iterative Enhancement Model (4/4) Ref.: Rombach

Lifecycle Models – Prototyping Model (1/3) Software Process Definition and Management - Chapter 2 Lifecycle Models – Prototyping Model (1/3) Problem Description Customer Requirements Developer Requirements Executable System Executable Units Unit Code

Lifecycle Models – Spiral Model (1/3) Software Process Definition and Management - Chapter 2 Lifecycle Models – Spiral Model (1/3) cumulative cost Progress through steps Determine objectives, alternatives, constraints Evaluate alternatives, identify, resolve risks Risk analysis Risk analysis Risk analysis R. a. Operational Prototype Commitment Review P.1 Prototype 2 Prototype 3 partition Requirements plan lifecycle plan Concept of operation Simulations, models, benchmarks Software requirements Software product design Detailed design Development plan Requirements validation Code Unit test Integration and test plan Design validation and verification Integration and test Acceptance test Develop, verify next-level product Plan next phases Implementation

Rational Unified Process (RUP) (1/4) Software Process Definition and Management - Chapter 2 Rational Unified Process (RUP) (1/4) Requirements Analysis Design Implementation Transition Construction Elaboration Inception Iteration n n-1 … 2 1 Core Workflows Phases Test one iteration in the elaboration phase

Agility in Software Development Software Process Definition and Management - Chapter 2 Agility in Software Development Agility in software development is not a methodology; it is an approach. A number of different Agile methodologies have been developed that have embraced the Agile approach, such as Extreme Programming (XP), Dynamic Systems Development Method, Feature-Driven Design, Crystal, Agile Modelling and SCRUM. Agile principles (Beck et al., 2001): Welcome changing requirements. The highest priority is to satisfy the customer through early and continuous delivery of valuable software. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Working software is the primary measure of progress.

Extreme Programming (XP): Overview Software Process Definition and Management - Chapter 2 Extreme Programming (XP): Overview Like other agile methodologies, XP differs from traditional methodologies mainly in placing a higher value on adaptability than on predictability. Adapt to changing requirements at any point during the project life instead of defining all requirements at the beginning of a project. XP uses Agile principles. XP lowers the cost of change. XP helps to achieve a high degree of customer satisfaction because customers notice that it creates a working software faster, and that software tends to have very few defects.

Extreme Programming: Overview Software Process Definition and Management - Chapter 2 Extreme Programming: Overview Planning Collect user stories Create prototype architecture Create release plan Develop test scenarios Develop Increment Develop test cases Plan & implement the increment Revise architecture Test current increment Collect data Iteration 1 Iteration 2 … Perform Acceptance Test (Ref: Bunse / von Knethen: Vorgehensmodelle kompakt)

Extreme Programming: Planning Software Process Definition and Management - Chapter 2 Extreme Programming: Planning Planning Collect user stories  Text documents  Use cases Create release plan  Increment planning  Day tasks  Data recording Create prototype architecture  Class diagrams Develop test scenarios  Scenarios (Ref: Bunse / von Knethen: Vorgehensmodelle kompakt)

Extreme Programming: Iterative Phase Software Process Definition and Management - Chapter 2 Extreme Programming: Iterative Phase Iteration 1 Develop test cases  Test cases  Test environment Iteration 2 … Revise architecture  Class diagram Plan & implement the increment  Source code Collect data Measurement data Test current increment  Test results Perform Acceptance Test  Test results (Ref: Bunse / von Knethen: Vorgehensmodelle kompakt)

Agile Management Framework for SW development projects Software Process Definition and Management - Chapter 2 What is Scrum? Agile Management Framework for SW development projects

Agile Management Framework for SW development projects Few clear rules Software Process Definition and Management - Chapter 2 What is Scrum? (2) Agile Management Framework for SW development projects Few clear rules Roles: Product Owner, Team, Scrum Master Product Backlog, Sprint Backlog, few compact reports Short work cycles (so called “Sprints”) for incremental development Based on the agile manifest by Kent Beck et al. Human-centered Technology and tools have secondary role Close cooperation with customer

Empirical learning process Software Process Definition and Management - Chapter 2 What is Scrum? (3) Empirical learning process Learning in each iteration (Sprint): „inspect and adapt“ Development speed/productivity Obtained results Team work Usage of Scrum process  Scrum does not define a development methodology, QA strategy, or risk management approach, but asks the team to take care of these issues appropriately

Scrum – An Overview Product Owner Product Backlog Sprint Backlog Software Process Definition and Management - Chapter 2 Scrum – An Overview Product Backlog Sprint Backlog Sprint Shippable Product Increment Product Owner Team ScrumMaster

Scrum – An Overview (2) Product Backlog Software Process Definition and Management - Chapter 2 Scrum – An Overview (2) Product Backlog Includes requirements for the product - at the start of the project a few, less detailed requirements, which are refined and detailed incrementally Managed by the product owner Sprint Backlog Includes the requirements for the product that have to be implemented as part of the next sprint Managed by the team Sprint Period (max. 30 calendar days) in which a shippable product increment (executable, tested, and documented) is created by the team Time Boxed, i.e. ends exactly at the scheduled time At the end of the Sprint, the product owner has to accept the final results Partially completed or incorrect results will not be shipped (no compromise on quality) and go back to the product backlog for the next Sprint

Decides which requirements are implemented for a product version Software Process Definition and Management - Chapter 2 Scrum – The Three Roles Product Owner Decides which requirements are implemented for a product version Decides about when product increments will be shipped Team Implements requirements Decides how many requirements are implemented in a Sprint Organizes its activities independently Scrum Master Takes care of the proper implementation of Scrum Supports the team

Summary Prescriptive process models prescribe a certain process Software Process Definition and Management - Chapter 2 Summary Prescriptive process models prescribe a certain process They are defined on different levels of abstraction and may be standardized Challenges and shortcomings of process standards Most standards tell you ‘what to’ do but not ‘how to’; i.e., they must be interpreted for organizational application Often only weak/generic definitions so many implementations can fit in A standard does not necessarily fit all organizational contexts Adapting a standard does not automatically mean improvement Some standards (ISO etc.) are expensive and not publicly available NO one size fits all!! We have learned about several basic software development models learned about important process standards with their implications learned about the benefits of adapting to a standard learned about alternative approaches