Lecture 7: Software Processes. Refresher: Software Always Evolves

Similar documents
Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Lecture 8: Use Case -Driven Design. Where UML fits in

defined. defined. defined. defined. defined. defined. defined. defined. defined.

Systems Analysis and Design in a Changing World, Fourth Edition

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Incremental development A.Y. 2018/2019

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Software Development Process Models

Software Process. Software Process

SE420 - Software Quality Assurance

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

Testing Agile Projects Stuart Reid

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Software Development Methodologies

Managing Change and Complexity

System Development Life Cycle Methods/Approaches/Models

Ready for Scrum? Steve Hutchison DISA T&E

Living With Agility

Topic 01. Software Engineering, Web Engineering, agile methodologies.

CS487 Midterm Exam Summer 2005

Best Practices for Collecting User Requirements

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Dilbert Scott Adams. CSc 233 Spring 2012

02291: System Integration

Introduction to Extreme Programming

Mensch-Maschine-Interaktion 1

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

Software Engineering with Objects and Components Open Issues and Course Summary

VO Software Engineering

Optimize tomorrow today.

CS 320 Introduction to Software Engineering Spring February 06, 2017

Software Tools & Methods Class 2. Lecturer: Greg Bolcer, Summer Session 2009 ELH 110 9am-11:50am

Requirements and Design Overview

Incorporating User Centered Requirement Engineering into Agile Software Development

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Designed in collaboration with Infosys Limited

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Adopting Agile Practices

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

To practice UCSD Usability Design

Testing in the Agile World

XP Evolution Rachel Davies

Implementing ITIL v3 Service Lifecycle

Introduction to Software Engineering (ESE : Einführung in SE)

Introduction to Software Engineering

Development Processes Agile Adaptive Planning. Stefan Sobek

Requirements and User-Centered Design in an Agile Context

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

OO Project Management

BDSA Introduction to OOAD. Jakob E. Bardram

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Disciplined Agile Delivery The Foundation for Scaling Agile

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

Agile Testing Course: 15 16/11

The Process of Software Architecting

Best Practices for Final Year Projects

Disciplined Agile Delivery The Foundation for Scaling Agile

SOFTWARE LIFE-CYCLE MODELS 2.1

Extreme programming XP 6

Chapter 12 INTERACTION DESIGN IN PRACTICE

Exam Questions

The requirements engineering process

No SVN checkout today. Object-Oriented Design

Software Development

The Design Space of Software Development Methodologies

Tonight s Agenda. CSC340: Requirements Engineering. Course Objectives. Requirements Engineering. Software Engineering. What is Software Engineering?

Agile 2005 Experience Report

Lecture 6: Software Re-Engineering. Software Evolves Continuously

Selling Improved Testing

Agile Project Management with Primavera

Systems Analysis & Design

The software lifecycle and its documents

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

A Proposal to Develop a Testing Framework for Agile Software Process

SE310 Analysis and Design of Software Systems

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Introduction - SENG 330. Object-Oriented Analysis and Design

DESIGN. (Chapter 04)

Story Writing Basics

Level 5 Diploma in Computing

K Kantor, Jeff Use Case Driven Testing, 249

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Answers NOT TO BE PRINTED

CREATING EFFECTIVE USER STORIES

Evolutionary Architecture and Design

BCS Foundation Certificate in Systems Development Syllabus

Agile Engineering. and other stuff I m working on

Chapter 1: Programming Principles

INTRODUCTION. 2. User-centred interface design.

Implementing a Modular Open Systems Approach (MOSA) to Achieve Acquisition Agility in Defense Acquisition Programs

5 Object Oriented Analysis

Scrums effects on software maintainability and usability

Architecture and Design Evolution

Transcription:

Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture) 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Refresher: Software Always Evolves Functionality Shortfall User needs conventional development Inappropriateness (shaded area) Lateness Adaptability (slope of line) Longevity identify first release enhancement phase enhancement phase freeze and replace replacement delivered Time 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 1

Project Types Reasons for initiating a software development project Problem-driven: competition, crisis, Change-driven: new needs, growth, change in business or environment, Opportunity-driven: exploit a new technology, Legacy-driven: part of a previous plan, unfinished work, Relationship with Customer(s): Customer-specific - one customer with specific problem May be another company, with contractual arrangement May be a division within the same company Market-based - system to be sold to a general market In some cases the product must generate customers Marketing team may act as substitute customer Community-based - intended as a general benefit to some community E.g. open source tools, tools for scientific research funder customer (if funder has no stake in the outcome) Hybrid (a mix of the above) 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 Project Context What is the current (old) system? There is nearly always an existing system May just be a set of ad hoc workarounds for the problem Studying it is important: If we want to avoid the weaknesses of the old system while preserving what the stakeholders like about it Use pre-existing components? Benefits: Can dramatically reduce development cost Easier to decompose the problem if some sub-problems are already solved Tension: Solving the real problem vs. solving a known problem (with ready solution) Will it be part of a product family? Vertical families: e.g. basic, deluxe and pro versions of a system Horizontal families: similar systems used in related domains Need to define a common architecture that supports anticipated variability 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4 2

Lifecycle of an Engineering Project Lifecycle models Useful for comparing projects in general terms Not enough detail for project planning Examples: Sequential models: Waterfall, V model Phased Models: Incremental, Evolutionary Iterative Models: Spiral Process Models Used for capturing and improving the development process Detailed guidance on steps and products of each step Process Frameworks Patterns and principles for ing a specific process for your project 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5 perceived need code Waterfall Model View of development: a process of stepwise refinement largely a high level management view Problems: Static view of - ignores volatility Lack of user involvement once specification is written Unrealistic separation of specification from Doesn t accommodate prototyping, reuse, etc. integrate 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6 3

V-Model Level of abstraction system software preliminary software integration system integration acceptance analyse and detailed component and integrate code and debug unit time 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7 Prototyping lifecycle Preliminary prototype build prototype evaluate prototype Specify full code integrate Prototyping is used for: understanding the for the user interface examining feasibility of a proposed approach exploring system performance issues Problems: users treat the prototype as the solution a prototype is only a partial specification 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8 4

Requirements Release 1 Source: Adapted from Dorfman, 1997, p10 Phased Lifecycle Models code integrate O&M release 2 code integrate O&M release 3 code integrate O&M release 4 Incremental development (each release adds more functionality) code integrate O&M version 1 reqts code integrate O&M version 2 reqts Evolutionary development (each version incorporates new ) lessons learnt code integrate O&M lessons learnt version 3 reqts code integrate 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 Source: Adapted from Pfleeger, 1998, p57 The Spiral Model Determine goals, alternatives, constraints Plan alternatives 4 alternatives 3 constraints 4 constraints 3 Alternatives 2 Evaluate alternatives and risks budget 4 budget 3 budget 2 budget 1 prototype 1 prototype 2 prototype 3 prototype 4 development plan integration and plan Constraints 2 alternatives constraints, lifecycle plan implementation plan risk analysis 1 risk analysis 2 concept of operation validated risk analysis 4 risk analysis 3 validated, verified acceptance software system software unit code detailed Develop and 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 5

Agile vs Disciplined Iterative Small increments Adaptive planning Embrace change Innovation and exploration Trendy Highly fluid Feedback driven Individuals and Interactions Human communication Small teams Planned Analysis before Prescriptive planning Control change High ceremony Traditional Upfront / architecture Negotiated Processes and Tools Documentation Large teams 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 11 Rational Unified Process (RUP) Inception Establish Scope Build a business case Get stakeholder buy-in Elaboration Identify and manage risks Build an executable architecture Focus only on high risk items Construction Iteratively build operational version Develop support docs and training materials Transition Fine-tune Resolve configuration, installation and usability issues Inception Iteration 0 Iteration #1 Elaboration Iteration #2 Iteration #n Iteration #n+1 Construction Iteration #m Iteration #t Transition Iteration #t+1 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 12 6

RUP Activities 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 13 SCRUM Sprint - 30 day iteration Starts with 1/2 day planning meeting Starts with Prioritized Product Backlog (from product owner) Builds a Sprint Backlog - items to be done in this sprint 29 days of development 1/2 day Sprint review meeting - inspect product, capture lessons learnt Daily Scrum 15 minute team meeting each day. Each team member answers: What have you done since last meeting? What will you do between now and the next meeting? What obstacles stood in the way of doing work? Scrum master keeps meeting on track Scrum teams Cross-functional, 7 (±2) members Teams are self-organising 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 14 7

Fine Scale Feedback Pair Programming Planning Game Test-driven Development Whole team (customer part of team) Continuous Process Continuous Integration Design Improvement (refactoring) Small Releases Shared Understanding Coding Standards Collective Code Ownership Simple Design System Metaphor Programmer Welfare Sustainable pace (40 hour week) Extreme Programming 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 15 Extreme Programming Collect User stories Release Each cycle: approx 2 weeks Planning game code Write cases integrate 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 16 8