CS5103 Software Engineering Lecture 02 More on Software Process Models.

Slides:



Advertisements
Similar presentations
Computer Science Department
Advertisements

Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
Agile
CS 5150 Software Engineering
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Fundamentals of Information Systems, Second Edition
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
CS3500 Software Engineering Agile Software Development (1) Agile software development, proposed in 2001 by the non-profit Agile Alliance, has four basic.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Rapid Prototyping Model
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
SOFTWARE ENGINEERING MCS-2 LECTURE # 5. RAD (RAPID APPLICATION DEVELOPMENT) MODEL  In RAD model the components or functions are developed in parallel.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
Chapter 8: Systems analysis and design
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Lecture 31 Introduction to System Development Life Cycle - Part 2.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Chapter 6 Prototyping, RAD, and Extreme Programming Systems Analysis and Design Kendall & Kendall Sixth Edition.
Prof. Aiken CS 169 Lecture 21 Software Process CS169 Lecture 2.
CS3100 Software Project Management Agile Approaches.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
1 Software Engineering and Security DJPS April 12, 2005 Professor Richard Sinn CMPE 297: Software Security Technologies.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
CS223: Software Engineering Lecture 4: Software Development Models.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Life Cycles. Waterfall Advantages? Disadvantages? Well suited for what type of projects? Requirements Specification Design Coding Unit Testing Installation.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
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.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Announcements/Assignments
Software Development - Methodologies
Software Development.
Methodologies and Algorithms
Introduction to Software Engineering
Sample Wiki Comments?.
CS 5150 Software Engineering
Methodologies By Akinola Soyinka.
Iterative Waterfall Model
What do you need to know about XP?
CSE 303 Concepts and Tools for Software Development
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Chapter 8 Software Evolution.
Agile Development – a new way of software development?
Extreme Programming.
Presentation transcript:

CS5103 Software Engineering Lecture 02 More on Software Process Models

UTSA CS Requirements engineering Validate prototype Design + build prototype Design and implementation Formalize requirements Integration The Prototype Model

UTSA CS  Looks like a two-cycle water fall model  Actually not, it is weak + strong  Improvements from waterfall Good: users involve more (by using prototype), reveal small errors in requirements / design Not solved: still can not handle frequent requirement changes Bad: prototype is discarded (waste of some effort, sometimes can be even more expensive than water fall) The Prototype Model

UTSA CS  Used frequently for requirement collection  Rarely used as a whole software development process In practice

UTSA CS The Iterative Model Requirements engineering Design & Implementation & Integration Testing Solve these risks by infinite weak cycles

UTSA CS  Plan for change  Use the same steps as waterfall  But expect to iterate the whole process continually, and spend less effort on each iteration (weak cycles) Iterative Model

UTSA CS  Building tool for Java  First stable version 1.1 released in June 2000  Small developer group with 3-4 people  First prototype version released in one month  First stable version released in about half a year Example: Ant Project

UTSA CS  The Project evolves for 13 years  5770 issue (bugs & new features) reports from users, 2581 reports handled  7 more major versions in 13 years  Code commits 12,000 +  File modifications 50,000 +  Lines of code from 25.6k to 260k Example: Ant Project

UTSA CS  Cheaper to get a working software  Get the first version very fast  Users involve earlier  User can give feedback after the first version released  The software always work, though not perfect  Important in many cases, e.g., in competitions  Keep refining requirements, and accommodates changes  Cost for requirement changes/errors are small Advantages

UTSA CS  More bugs, sometimes may cause severe loss  Design is critical to make sure a change does not affect the whole system Disadvantages

UTSA CS  Most existing software projects use this model  Daily builds  Releases  Not suitable for systems that are costly for testing or very critical in quality  NASA programs  Military / Scientific / … In practice

UTSA CS  Time is the enemy of all software projects  Why time matters? Before we go to Extreme Programming, Let’s see an opinion on time

UTSA CS  The World Changes  requirement may change  Techniques become obsolete  Computing environment changes  Business Competition  Within a very short period of time, the world can be viewed as unchanged Time matters

UTSA CS  Extreme Programming still uses iterative process model, but goes to extreme Extreme Programming

UTSA CS  Small requirements  Testable user stories  Write test cases first  Simple design  Simplest design to pass test cases  Pair programming  Code refactoring frequently  Quick evaluation  Have customers involved to evaluate the software frequently Shorter cycles (2-4 weeks)

UTSA CS Simple Requirements – User Stories

UTSA CS Simple Requirements – User Stories

UTSA CS  Customer must describe how the stories are tested  With concrete data examples  Tests should be automated  Test case example 1. I create an account “savings” 2. I ask for list of accounts, I must obtain “savings” 3. I create an account “savings” again, I must get error 4. I check the balance the account “savings”, I must get 0 5. … Sample Requirements – test cases

UTSA CS  Just in time  Design and implement what you know now, not worry too much about future : future is unpredictable  No optimization for future  It is common that the optimization becomes unnecessary  Example: optimization to handle large input data, but later found the input changed (e.g., smaller format, or available in a summarized form) Simple design

UTSA CS  Programmer and Monitor  Pilot and Copilot  Or Driver and Navigator  Programmer types, monitor think about high-level issues  Disagreement points to design decisions  Pairs are shuffled Pair programming

UTSA CS  Result in better code  Instant code review  Monitor always notice the big picture  Knowledge and skill migration  Better coding styles  Reduces Risk  More people understands the code Advantages

UTSA CS  Stressful to relate to people all the time  Slows the programming  But save for time in maintenance  Waste of personnel  But less bugs, and more people can work on it, once bugs are revealed Why people don’t like

UTSA CS  Automatic comprehensive suite is required  Always keeps code working  Do regression testing before/after any major changes  Plan coding to allow frequent tests  Do not do too comprehensive changes, try to break them to smaller phases  Example: Add a product query feature for shopping software  Add list all products first  Add text query  Add filtering conditions one by one  Add sorting  … Regression Testing and Evaluation

UTSA CS  Use for:  Requirement prone to change  Easy to get testable requirements (often true in the maintenance phase on a software)  Need quick delivery (business competition)  In practice, frequently used in start-up companies  Not to use for:  Large group for large project (still can be used for components)  No highly-involved customers When to use extreme programming

UTSA CS  Software Requirements  Concepts  Process  Elicitation  Analysis  Specification  Validation  Elicitation Approaches Next Class

UTSA CS Assignment I is online now: