SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.

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

AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Development Life-Cycle Models
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
Software Life-Cycle Models
CS487 Software Engineering Omar Aldawud
1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Chapter 3 Process Models
CHAPTER TWO Object Oriented System Analysis and Design 1.
Software Process Models
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Software Engineering.
Object-oriented Analysis and Design
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Incremental Model Requirements phase Verify Specification phase Verify
Software Development Life Cycle (SDLC)
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
Software Development Process
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
©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.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Management Lecture 1 The Software Process.
CSE 308 Software Engineering Software Engineering Strategies.
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Software Engineering process models
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
The principles of an object oriented software development process Week 04 1.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Engineering Zhang Shuang
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Systems Development Life Cycle
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Software Development.
Methodologies and Algorithms
Approaches to Systems Development
Software Engineering Lecture 09 & 10.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design
Software Engineering Lecture 18.
Lecture 2 Revision of Models of a Software Process
Software engineering -1
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS
Software Engineering Lecture 17.
Presentation transcript:

SOFTWARE PROCESS MODELS

Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement

Overview  Different process models Build-and-fix model Waterfall model Incremental model Evolutionary process models  Rapid prototyping model  Spiral model Agile process models  Extreme programming Synchronize-and-stabilize model Object-oriented life-cycle models  Fountain Model  Unified Process

Build-and-Fix Model  Problems No specifications No design  Totally unsatisfactory High cost Difficult maintenance

Waterfall Model  Only model widely used until early 1980s  Characterized by Feedback loops Documentation- driven

Waterfall Model (contd.)  Advantages Enforces disciplined approach  Documentation for each phase  Products of each phase checked by SQA group Maintenance is easier  Every change reflected in the relevant documentation  Disadvantages Working version of the software will not be available until late in the project time-span Specifications are long, detailed, written in a style unfamiliar to the client “Blocking states” –some project team members must wait for other team members to complete dependent tasks

Incremental Model  Divide project into builds – modules interacting to provide a specific functionality  Typical product - 5 to 25 builds

Incremental Model (contd.)  Waterfall and rapid prototyping models Deliver complete product at the end  Incremental model Deliver portion of the product at each stage  Advantages Less traumatic Smaller capital outlay, rapid return on investment Open architecture—maintenance implications  Disadvantages Easily can degenerate into build-and-fix model Contradiction in terms

Incremental Model (contd.)  Concurrent incremental model more risky version —pieces may not fit

Rapid Prototyping Model  First step - construct the prototype as rapidly as possible Only those aspects of the software that will be visible to the customer/user  Linear model –no feedback loops

Rapid Prototyping Model (contd.)  Rapid prototype Used in the requirements phase Evaluated by the customer/user Then, it is discarded -do not turn into product  Rapid prototyping model is not proven and has its own problems Possible solution  Rapid prototyping for defining requirements  Waterfall model for rest of life cycle

Spiral Model  Minimize risk via the use of prototype and other means Simplified form - Waterfall model plus risk analysis  Precede each phase by Alternatives Risk analysis  Follow each phase by Evaluation Planning of next phase

Simplified Spiral Model  If risks cannot be resolved, project may be terminated immediately

Full Spiral Model

Analysis of Spiral Model  Strengths Answers the question “How much to test ?” in terms of risk No distinction between development and maintenance (another cycle of the model)  Weaknesses Internal (in-house) development only  For contract software, all risk analysis must be performed before the contract is signed, not in the spiral model Large-scale software only  For small software performing risk analysis would significantly affect the profit potential

Agile Process Models  Agile software engineering combines a philosophy and a set of development guidelines  Philosophy Encourages customer satisfaction and early incremental delivery of the software Small highly motivated project teams Informal methods Minimal software engineering work products Overall development simplicity  Development guidelines Stress delivery over analysis and design Active and continuous communication between developers and customers

Agile Process Models (contd.)  There are many agile process models Extreme Programming(XP) Adaptive Software Development (ASD) Dynamic System Development Method (DSDM) Scrum Crystal Feature Driven Development (FDD) Agile Modeling (AM)  Reading: Choose “Agile Methods” from

Extreme Programming (XP)  Somewhat controversial new approach; variation of the incremental model  First step Determine features that client wants (stories) Estimate duration and cost of each feature  Client selects stories for each successive build  Each build is divided into tasks  Test cases for a task are drawn up  Pair programming –working with a partner on one screen  Continuous integration of tasks

Extreme Programming (contd.)

Features of XP  Computers are put in center of large room lined with cubicles  Client representative works with the XP team at all the times  Individual cannot work overtime for 2 successive weeks  There is no specialization all members of the XP team work on specification, design, code, and testing  There is no overall design phase before various builds are constructed –refactoring

Features of XP (contd.)  Advantages Useful when requirements are vague or changing Emphasis on teamwork and communication Programmer estimates before committing to a schedule Continuous measurement; frequent, extensive testing  Disadvantages Limited to small products and small teams -can be disastrous when programs are larger than a few thousand lines of code or when the work involves more than a few people. Lack of design documentation Lack of a structured review process

Synchronize-and-Stabilize Model  Microsoft’s life-cycle model– version of incremental model  Requirements analysis —interview potential customers; list of features with priorities  Draw up specifications  Divide project into 3 or 4 builds  Each build is carried out by small teams working in parallel

Synchronize-and-Stabilize Model (contd.)  At the end of the day —synchronize (put together partially completed components; test and debug)  At the end of the build —stabilize (fix the remaining faults; freeze build)  Advantages Components always work together Early insights into operation of product Model can be used even the initial specification is incomplete

Object-Oriented Life-Cycle Models  Need for iteration within and between phases Fountain model Unified software development process  All incorporate some form of Iteration Parallelism Incremental development

Fountain Model  Overlap (parallelism)  Arrows (iteration)  Smaller maintenance circle

Unified Process  Unified process is a framework for OO software engineering using UML (Unified Modeling Language) Book by IvarJacobson, Grady Booch, and James Rumbaugh(1999)  Unified process (UP) is an attempt to draw on the best features and characteristics of conventional software process models, but characterize them in a way that implements many of the best principles of agile software development

Unified Process: Phases  Inception phase Encompasses the customer communication and planning activities Rough architecture, plan, preliminary use-cases  Elaboration phase Encompasses the customer communication and modeling activities Refines and expands preliminary use-cases Expands architectural representation to include: use-case model, analysis model, design model, implementation model, and deployment model The plan is carefully reviewed and modified if needed

Unified Process: Phases  Construction phase Analysis and design models are completed to reflect the final version of the software increment Using the architectural model as an input develop or acquire the software components, unit tests are designed and executed, integration activities are conducted Use-cases are used to derive acceptance tests

Unified Process: Phases  Transition phase Software is given to end-users for beta testing User report both defects and necessary changes Support information is created (e.g., user manuals, installation procedures) Software increment becomes usable software release  Production phase Software use is monitored Defect reports and requests for changes are submitted and evaluated

Unified Process

Unified Process: Major work products

Conclusions  Different process models, each with its own strengths and weaknesses  Criteria for deciding on a model include Organization Its management style Skills of the employees Product nature