Project Management Software development models & methodologies

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
NAUG NAUG Knowledge Evening – th February 2007.
Agile
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Project Management Course outline neil.minkley.fr/epita anglais-pratique.fr
Software engineering Process models Pavel Agejkin.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Project Management Design specifications
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Project Management Development & developers
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Software Engineering Modern Approaches
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
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.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
Agile
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
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 Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
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)
10 key principles of agile software development
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Project Management Testing & Acceptance
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
Agile Project Management and the yin & yang of
Software Development.
CompSci 280 S Introduction to Software Development
Methodologies and Algorithms
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Game Design, Development, and Technology
Chapter 3 – Agile Software Development
Extreme Programming.
Chapter 3 – Agile Software Development
Rapid software development
Introduction to Software Engineering
What do you need to know about XP?
How to Successfully Implement an Agile Project
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Gathering Systems Requirements
Chapter 3 – Agile Software Development
Chapter 3: Agile Software Processes
Introduction to XP.
Project Lifecycle and IT Product Life Cycle
Extreme Programming.
Gathering Systems Requirements
Agile software development
Chapter 5: New and Emerging Process Methodologies
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Project Management Software development models & methodologies

Project life cycle Business case Advisability study Feasibility study ExecutionClosurePlanning Plan implementation Product creation Project supervision Requirements Charter Scope Schedule Budget Product launch Project plan

Product creation phases Business case Advisability study Feasibility study ExecutionClosurePlanning Plan implementation Product creation Project supervision Requirements Charter Scope Schedule Budget Product launch Project plan RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

Software development phases Business case Advisability study Feasibility study ExecutionClosurePlanning Plan implementation Product creation Project supervision Requirements Charter Scope Schedule Budget Product launch Project plan RequirementsIntegrationDesign Testing & Acceptance Content creation Software coding Deployment

Software development life cycle models RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding  Waterfall model  Incremental model  V model  Spiral model  Agile software development  XP (eXtreme Programming)

Waterfall model Requirements System design Unit design Implementation & Unit testing Integration & System testing Operation

Incremental model Requirements System design Unit design Implementation & Unit testing Integration & System testing Operation

V model Requirements System design Unit design Implementation Integration & System testing Acceptance testing Unit testing Acceptance test plan Integration test plan Unit test plan

Spiral model Requirements Risk analysis Prototyping Coding Testing Customer evaluation

Questions?

Agile software development (1) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding  Flexibility  Interactivity  10 key principles

Agile software development (2) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding  Actively involve users  Empower development team to make decisions

Agile software development (3) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding  Allow requirements to evolve but keep timescale fixed  Capture requirements at highest level of description

Agile software development (4) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding  Develop small incremental releases, and iterate  Make frequent delivery of product (to test…)  Complete a feature before moving on to the next

Agile software development (5) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding  Apply the “80/20 rule” (Pareto’s principle)  Integrate testing throughout the project life cycle  Rely on collaborative approach between stakeholders

Questions?

XP: eXtreme Programming (1)  Communication  Simplicity  Feedback  Courage RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (2) Whole team:  all contributors to the project form a single team, including at least one business/user representative RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (3) Planning game:  steer the project rather than exactly predict what needs to be done and how long it will take: Release planning: due dates for deliverables Iteration planning: direction regularly adjusted RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (4) Simple design:  always match required functionality  do not waste time on features not really needed RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (5) Metaphor:  describes in very simple and evocative terms how the software should work  requires agreed-upon vocabulary RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (6) Refactoring:  continuous process of design improvement  focuses on avoiding duplication and achieving full “cohesion” of the code RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (7) Continuous integration:  system kept “fully integrated” at all stages of development in order to maintain its cohesion  system builds produced on a very frequent basis RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (8) Small releases:  working version of software delivered to customer after each iteration  may even be put into operation for maximum feedback RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (9) Customer tests:  performed for each “small release” of software, preferably with automatic acceptance programs RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (10) Test-driven development:  systematic unit tests, with full coverage of features developed  as the system grows, so does the number of unit tests which need to be run successfully  feedback from tests drives further development work RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (11) Coding standard:  code written by any member of the development team complies with a general, unique standard  ensures cohesion of the system and facilitates code maintenance RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (12) Pair programming:  each software unit is developed by two programmers working together, to produce better code than would two programmers working singly RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (13) Collective ownership:  code produced by programmers is owned by all members of the development team  each person pays attention to code written by others and contributes to improving its quality RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

XP: eXtreme Programming (14) Sustainable pace:  developers should work with maximum productivity at a sustainable pace, avoiding “burn-out”... easier said than done! RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding

Questions?