Dr. Tom WayCSC 47001 Software Processes CSC 4700 Software Engineering.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Prescriptive Process models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
COMP 474 Software Engineering Professor William L. Honig.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Agile development By Sam Chamberlain. First a bit of history..
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Introduction to Agile.
Chapter 3 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Chapter 4 Agile Development
Chapter 3 Agile Software Development (2/2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
An Introduction to Software Engineering
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
Lecture 3 – Agile Approach
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
Agile Methods SENG 301.
Chapter 2 SW Process Models
Software Processes.
The Agile Manifesto is based on 12 principles
Software Processes.
Extreme Programming.
Agile software development
Presentation transcript:

Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering

Dr. Tom WayCSC Software Development Processes

Dr. Tom WayCSC The software process A structured set of activities required to develop a software system Specification; Design; Validation; Evolution. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.

Dr. Tom WayCSC The old way The way software is engineered has evolved over the years The “new” ways of software engineering resemble the “old” ways in a lot of ways See if you can make out the resemblance

Dr. Tom WayCSC Waterfall model

Dr. Tom WayCSC Waterfall Model Inflexible partitioning into distinct stages makes it hard to deal with changing customer requirements. Only works when requirements are well-known and few changes are expected… which is rare! The waterfall model is still used for some large, multi-site projects, but used less and less

Dr. Tom WayCSC Evolutionary development

Dr. Tom WayCSC Evolutionary development Problems Throw-away prototyping might waste work Lack of process visibility Systems are often poorly structured, evolve Special skills (e.g. in languages for rapid prototyping) may be required Applicability For small or medium-size interactive systems; For parts of large systems (e.g. the user interface); For short-lifetime systems.

Dr. Tom WayCSC Incremental development

Dr. Tom WayCSC Process Iteration & Incremental Delivery System requirements ALWAYS evolve in the course of development Iteration can be applied to any of the generic process models Break down software into “releases”, deliver incrementally (version 1.0, version 2.0, etc.) “Freeze” requirements during a release

Dr. Tom WayCSC Spiral model of the software process

Dr. Tom WayCSC Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process.

Dr. Tom WayCSC The new way Agile – it’s Spiderman at the keyboard Extreme – it’s like totally radical Scrum – what’s rugby got to do with it?

Dr. Tom WayCSC The Agile Approach (1) Continuous delivery of software Cycle is weeks rather than months Working software is the principal measure of progress Even late changes in requirements are welcomed Close, daily, cooperation between business people and developers Face-to-face conversation is the best form of communication.

Dr. Tom WayCSC The Agile Approach (2) Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances From the Agile Manifesto (Google it)

Dr. Tom WayCSC Extreme programming Perhaps the best-known and most widely used agile method. Extreme Programming (XP) takes an ‘extreme’ approach to iterative development. New versions may be built several times per day New version delivered every 2 weeks All tests run with each build, all must pass Doesn’t reinvent the wheel – use COTS whenever possible and affordable

Dr. Tom WayCSC The XP release cycle

Dr. Tom WayCSC Extreme programming practices 1

Dr. Tom WayCSC Extreme programming practices 2

Dr. Tom WayCSC Problems with agile methods It can be difficult to keep the interest of customers who are involved in the process. Team members may be unsuited to the intense involvement that characterises agile methods. Prioritizing changes can be difficult where there are multiple stakeholders. Maintaining simplicity requires extra work. Contracts may be a problem as with other approaches to iterative development.

Dr. Tom WayCSC Testing in XP Test-first development For each and every component (class, module, whatever) you develop, add one or more tests at the same time Building means compiling the code and running all the tests, automatically Keeps software working all the time

Dr. Tom WayCSC Pair programming In XP, programmers work in pairs, sitting together to develop code. This helps develop common ownership of code and spreads knowledge across the team. It serves as an informal review process as each line of code is looked at by more than 1 person. It encourages refactoring as the whole team can benefit from this. Measurements suggest that development productivity with pair programming is similar to that of two people working independently.

Dr. Tom WayCSC SCRUM Approach Backlog – list of all of the tasks to get done Sprint – short iteration, get current backlog items done in this time Scrum – short, daily stand-up meeting Planning session – start of each sprint, plan which backlog items will be done Heartbeat retrospective – end of sprint, reflect about the past sprint

Dr. Tom WayCSC SCRUM stuff Scrum Master - removes impediments to the ability of the team to deliver the sprint goal, not the team leader Self organizing teams – magically everybody gets organized Easily adapt to change – major benefit