Software Development methodologies

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
SDLC – Beyond the Waterfall
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
Agile development By Sam Chamberlain. First a bit of history..
Software Life Cycles ECE 417/617: Elements of Software Engineering
CHAPTER 17 Building Software to Support an Agile Organization
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
Software Development Life Cycle (SDLC)
1 CMPT 275 Software Engineering Software life cycle.
Transforming Organizations
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
Solar Tech Chuck Hess, CEO Jamie Tofte, CFO Christina Cruz, CTO.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Agile Gintarė Bernotaitytė © 2013.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Project Management Software development models & methodologies
Methodologies/Life Cycle Models
Announcements/Assignments
Embedded Systems Software Engineering
Software Development - Methodologies
Software Development.
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Valuable Project Management Tools and Techniques
Ernest Cachia Department of Computer Information Systems
Software Processes (a)
Agile Software Development Brian Moseley.
CS 425/625 Software Engineering Software Processes
Lecture Software Process Definition and Management Chapter 2: Prescriptive Process Models Dr. Jürgen Münch Fall
Approaches to Systems Development
Software Processes.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Copy rights  Exam Eligibility  Exam Pattern  Pre requisites  Content Distribution  Tools and Techniques  Domains and Tasks for.
Software Development Process
Methodologies For Systems Analysis.
Methodologies For Systems Analysis.
Lecture 2 Revision of Models of a Software Process
Agile Process: Overview
Chapt 2 Iterative Evolutionary Agile.
An Overview of Software Processes
Software Process Models
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Software Processes.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Software Development methodologies
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
System Development Methods
Software Development Process
Software Development Overview
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Software Development methodologies

Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP XP Agile Lean Dual Vee Model TDD FDD

Waterfall Sequential design process Progress is seen as flowing steadily downwards (like a waterfall) through SDLC

Prototyping Creating prototypes of software applications i.e. incomplete versions of the software program being developed A prototype typically simulates only a few aspects of, and may be completely different from, the final product.

Incremental Build Model The model is designed, implemented and tested incrementally (a little more is added each time). Finished when satisfies all the requirements. Combines the elements of the waterfall model with the iterative philosophy of prototyping.

Iterative and Incremental Development Iterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development.

Incremental vs. Iterative

A Bit Different Understanding

Effort in Iterative Development

Spiral Model Combining elements of design and prototyping-in-stages Combines the features of the prototyping and the waterfall model The spiral model is intended for large, expensive and complicated projects Advantages of top-down and bottom-up concepts

Background Top-down Bottom-up deductive reasoning analysis or decomposition Descartes G => 1 Bottom-up inductive reasoning synthesis Bacon 1 => G

RAD Minimal planning and fast prototyping. Developing instead of planning The lack of pre-planning generally allows software to be written much faster, and makes it easier to change requirements.

Cleanroom The Cleanroom process embeds software development and testing within a statistical quality control framework. Mathematically-based software development processes are employed to create software that is correct by design, and statistical usage testing processes are employed to provide inferences about software reliability. This systematic process of assessing and controlling software quality during development permits certification of software fitness for use at delivery.

Agile Group of software development methods Based on iterative and incremental development Most important phrases self-organizing, cross-functional teams adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, rapid and flexible response to change. A conceptual framework The Agile Manifesto in 2001.

Scrum Scrum is an iterative and incremental agile software development framework A flexible, holistic product development strategy Development team works as an atomic unit Opposing to sequential approach

Lean (Kanban) A translation of lean manufacturing principles and practices Toyota Production System, Today part of Agile community.

Lean Principles Eliminate waste Amplify learning Decide as late as possible Deliver as fast as possible Empower the team Build integrity in See the whole

Extreme Programming (XP) Improve software quality and responsiveness to changing customer requirements A type of agile software development Frequent "releases" in short development cycles Introduce checkpoints where new customer requirements can be adopted.

XP Concepts (examples only) Pair programming Planning game Test-driven development Continuous integration

DSDM An agile project delivery framework, primarily DSDM fixes cost, quality and time at the outset and uses the MoSCoW prioritization of scope Pareto principle M - MUST: Describes a requirement that must be satisfied in the final solution for the solution to be considered a success. S - SHOULD: Represents a high-priority item that should be included in the solution if it is possible. This is often a critical requirement but one which can be satisfied in other ways if strictly necessary. C - COULD: Describes a requirement which is considered desirable but not necessary. This will be included if time and resources permit. W - WOULD: Represents a requirement that stakeholders have agreed will not be implemented in a given release, but may be considered for the future.

Test-driven development (TDD) Relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Test-first programming concept of extreme programming in the beginning Today standalone methodology

Feature-driven development (FDD) Iterative and incremental development process. An Agile method Driven from a client-valued functionality (feature) perspective Mostly part of other methodologies

Rational Unified Process (RUP) An iterative software development process framework created by the Rational Software Corporation (IBM) Not a concrete prescriptive process, but an adaptable framework, intended to be tailored by the development organizations Expected to select elements of the process that are appropriate

V-model The V-model is an extension of the waterfall model. Show the relationships between development phases and test phases Time and project completeness vs. level of abstraction

Dual Vee Model Describes a model of complex development For example: Hardware Platform Application software Development of a system's architecture is the “big V” Components’/entities’ developments are the “small V”-s It shows interactions and sequences of developing a complex system and a system of systems.

Shouldn’t forget

WaterFall Details

Waterfall #1 Jump to next phase only if the prior one is completed PROs Detailed early analysis cause huge advantages at later phases If a bug found earlier, it is much cheaper (and more effective) to fix than bugs found in a later phase Requirement should be set before design starts Points to importance of documentation (minimized “broken leg” issue) Disciplined and well-structured approach Effective for stable software projects Easy to plan from project management point of view

Waterfall #2 CONs Changes are expensive Client does not explicitly know what he or she wants Client does not explicitly know what is possible to have Need to finish every phase fully Long projects, difficult to keep the plan Designers may not know in advance how complex a feature’s implementation “Measure twice, cut once”

Thanks…