Software Development Process

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Software Processes.
SOFTWARE DEVELOPMENT METHODOLOGIES Methodologies Waterfall Prototype model Incremental Iterative V-Model Spiral Scrum Cleanroom RAD DSDM RUP.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Life-Cycle Models
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 – Software Processes
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Software Development Life Cycle (SDLC)
Software Development Process
Method comparison: for Situational Method Engineering Mohssen Ali.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
An Introduction to Software Engineering
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
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
CS223: Software Engineering
Software Development - Methodologies
Process 4 Hours.
Software Development Overview
Methodologies and Algorithms
CS 389 – Software Engineering
Valuable Project Management Tools and Techniques
Software Development methodologies
Chapter 2 – Software Processes
CS 5150 Software Engineering
Software Processes (a)
Prototype Model Lecture-4.
V-Shaped SDLC Model Lecture-6.
Software Process Models
Chapter 2 SW Process Models
Chapter 2: Software Process Models
Software Processes.
Introduction to Software Engineering
Chapter 2 – Software Processes
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Chapter 2 Software Processes
Software life cycle models
An Overview of Software Processes
An Overview of Software Processes
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Chapter 2: Software Process Models
Project Lifecycle and IT Product Life Cycle
Software Development Process
Software Development Overview
Presentation transcript:

Software Development Process CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed

Variety of Software Development Processes Traditionally covered in Software Engineering This is just a very brief overview Many are not “clear cut” ideas Often modified to incorporate ideas from other models; seldom used in “pure” form Goal here: to familiarize you with some of the basic terminology/ideas We will actually follow one approach: Agile/Scrum in project 2

Development Processes More about the process than the actual development Teamwork/ organization/ management/ collaboration focus Opinion: Lots of words describing basic ideas/processes Attempts to give precise definitions, descriptions to imprecise processes Lots of “religious” arguments about the best way to approach these processes.

Waterfall Model of Development The “traditional”/”baseline" software engineering approach Series of stages, each a process that converts one product to another Development “flows” from the top (early processes) through to the bottom

Waterfall Model Requirement Customer’s Gathering Needs Requirement Specification Analysis Models, Business Rules Design Software Architecture Coding Software Testing Defect-Free Operations Ongoing Maintenance

Waterfall Model (another view) Requirement Engineering Customer’s Needs Requirement Specification Design Design Specification Programming Executable Modules Integration Integrated Software Delivery Delivered Product Maintenance New Requirements

Waterfall Model Lots of Variation Gets more complex Key idea: flow “downhill” from one end to other Gets more complex Feedback from later stages to earlier ones Verification and Validation testing in each stage Or, a separate testing stage after integration Can extend to incorporate iterative approaches

Waterfall Model Good Points Bad Points Provides clear structured process, especially useful on large projects Clear requirements, design at beginning can make things much easier and better later on Tend to have good documentation throughout Bad Points Can be tough to know requirements ahead of time Difficult to evaluate how later parts of system will really work in practice Requires more discipline by programmers to implement

Waterfall This is the “basis” against which other methods are compared. The basic ideas are understood as needing to be addressed in other situations, also The “flow” is somewhat natural from development: you need requirements to develop for, you need software to maintain It is the one method to be familiar with, if you are familiar with only one method

V-model Requirements Analysis User Acceptance Testing System Design A version of Waterfall, tying the Validation at each level to the earlier stages Requirements Analysis User Acceptance Testing System Design System Testing Architecture Design Integration Testing Module Design Unit Testing Coding

Iterative Software Development Rather than produce a single product “all at once”, provide incremental improvements Deliver pieces of the product at various times Time is planned to iterate on the design and implementation of the system Includes user analysis, feedback to improve

Iterative Approach Plan and Design Collect Requirements Implement Test and Evaluate Initial Idea Deliverable

Iterative Methods Prototyping Spiral Model Cleanroom Development Rational Unified Process

Prototyping Deliver early prototypes of the software Not fully functional, or with poor functionality Prototypes should allow one to get user feedback Allows revision of requirements, design Possible problems: Can hide difficulties underlying the prototype Can set expectations too high Provides early design anchoring (less flexible) Attachment by user/developer to prototype, not system

Spiral Model Combines iterative and prototype (and waterfall) approaches Starting from center, (basic requirements), a prototype is created in first iteration Each successive iterative cycle produces a newer, better prototype (spiraling out) When good prototype is found, freeze system Different cycles can use different techniques Adjust the technique to the risk level in that part of the spiral

Cleanroom Development Devised to put control onto Iterative Methods Every iteration gets tested on a very large test data set Provides “hard” statistical data on how reliable the method is Measure whether iteration has introduced or reduced defects Introducing defects indicates problem – go back to previous stage and start over

Incremental Methods Wide variety and variation in methods Includes Agile methods – sort of taking over the “incremental” framework Includes Test Driven Development

Agile Software Methods Newer trend in software development A favorite in the industry “Lightweight” in contrast to existing “heavyweight” methods of software development Heavyweight – Highly regimented methods, typified by the waterfall model Agile designed to respond/change quickly, but involves much less long-term planning Many methods fall under the “Agile” heading Extreme programming Scrum Plus, it overlaps with some ideas of iterative development

Agile Methods Tend to involve lots of collaboration Seem to work best with smaller, co-located teams Good for projects where requirements tend to change Will be the focus of the next lecture

Other Processes Lots of other variations in development processes, often with different names: Wikipedia list: Waterfall, Prototyping, Incremental, Iterative, V- Model, Dual Vee Model, Spiral, IID, Agile, Lean, DevOps Cleanroom, TSP, PSP, DSDM, MSF, Scrum, Kanban, UP, XP, TDD , ATDD, BDD, FDD, DDD, MDD Many of these aren’t all that different from each other…