SlideShare a Scribd company logo
SOFTWARE PROCESS AND PROCESS
          ITERATION
Life cycle model

To Describes the steps followed by the project team to
 produce a tangible software product that fully meets the
 requirements of the component or the part that the project
 set forth to build.
Software Process
A set of activities, together with ordering constraints among
 them, such that if the activities are performed properly and
 in accordance with the ordering constraints.
The process that deals with the technical and management
 issues of software development is called SWP.
Successful project talks about Cost, schedule and quality.
Contd..
A set of activities that leads to the production of a software
 product.
There are many software processes, some fundamental
 activities are common to all software processes:
Software Specification
Software design and Implementation
Software Validation
Software evolution.
Software process
Product Engineering process(produce desired product)
    Development process
    Project Management process
    Software Configuration Management

Process Management process
ETVX Approach for process
               specification

Entry Criteria
Task
Verification
Exit Criteria
A step in Development process
Predictability.




Input                             Output
                  Process   V&V
SDLC
A software development process, also known as a software
  development life cycle (SDLC), is a structure imposed on the
  development of a software product.
Waterfall Model

Linear Sequential Model
Water – tight phases
One phase is Completed before the next phase starts
Life cycle model
Waterfall model problems
 Inflexible partitioning of the project into distinct stages makes it difficult
  to respond to changing customer requirements.
 Therefore, this model is only appropriate when the requirements are
  well-understood and changes will be fairly limited during the design
  process.
 Few business systems have stable requirements.
 The waterfall model is mostly used for large systems engineering
  projects where a system is developed at several sites.
Limitations of Waterfall model
It assumes that the requirements of a system can be frozen
 before the design begins.
Freezing the requirements usually requires choosing the
 hardware(because it forms a part of the requirements
 specification). A large project might take a few years to
 complete.
“Big bang approach” – an entire software is delivered in one
 shot at the end.
It encourages “requirements bloating”.
It is a document-driven process that requires formal
 documents at each phase.
Prototyping Model
• Attractive idea for complicated and large systems for which there
   is no manual process or existing system to help determine the
   requirements..
• Based on Currently known requirements.
• Customer can get actual feel of the system.
Types:
1. Throwaway Prototype
2. Evolutionary Prototype
Contd..
Horizontal Prototype
A common term for a user interface prototype is
 the horizontal prototype
It provides a broad view of an entire system or subsystem,
 focusing on user interaction more than low-level system
 functionality, such as database access
Vertical Prototype
A vertical prototype is a more complete elaboration of a
 single subsystem or function.
Soft lifecycle
Contd..
Types of prototyping
Major types: first two..
Throwaway prototyping
Evolutionary prototyping
Incremental prototyping
Extreme prototyping
Adv and Dis-Adv
Advantages
Reduced time and costs:
Improved and increased user involvement
Disadvantages of prototyping
Insufficient analysis
User confusion of prototype and finished system
Developer misunderstanding of user objectives
Expense of implementing prototyping:
Excessive development time of the prototype
RAD Model
Combines the features of waterfall model and prototyping
 model.
Rapid application development (RAD) is a software
 dev.methodology that uses minimal planning in favor of rapid
 prototyping.
WYSIWYG manner
The "planning" of software developed using RAD is interleaved
 with writing the software itself.
Each units Developed in a short time.
Developments, using modelling tools and CASE, translates to
 product.
Contd..
Speed and Responsiveness.
Loop continually, Changes and feedback reflected.
Key to the success of RAD lies in application decomposition,
 automatic generation and effective re-use.
DisAdv: Modelling tools add expenses and Place
 restrictions(decompose, re-use..)
Not applicable in little or no customer involvement, Co-
 existence of new application in legacy system.
Iterative Development
Iterative Development
Counters the Third and fourth limitation of waterfall model,
 tries to combine the benefits of prototyping and Waterfall.
Based on incrementing and add some functional capability to
 system until it satisfies.
Project control list, gives an idea of how far the projects
 moves.
Spiral Model
Each cycle in the spiral begins with the identification of
 objectives for that cycle.
Next step is to evaluate the different alternatives based on
 objectives and constraints.
Resolve uncertainties and risks
Software developed
Final stage Planned.
Soft lifecycle
Time Boxing Model

The Timeboxing model for iterative software development
  in which each iteration is done in a time box of fixed
  duration, and the functionality to be built is adjusted to fit
  the time box.
RUP
Rational Unified Process
Designed for Object Oriented Development using UML.
Divided into Cycles, each cycle delivering a fully working
  system.
Each cycle have four phases:
 Inception
 Elaboration
 Construction
 Transition
RUP Phases
 Inception: Goals and scope of project(life cycle objectives
  milestone)
 Elaboration: Architecture of the system is designed, based on the
  detailed requirement analysis (lifecycle Architecture milestone).
 Construction: software is built and tested(Initial operational
  capability milestone)
 Transition: To move the software from development
  environment to client’s environment(product release milestone).
Agile processes
 Extreme Programming
 Extreme Programming is successful because it stresses customer
  satisfaction.
 Extreme Programming emphasizes teamwork.

 Extreme Programming improves a software project in five
   essential ways;
1. Communication
2. Simplicity
3. Feedback
4. Respect
5. Courage.
Principles of agile processes
Working software is the key measure of progress
Software should be developed and delivered in small
 increments.
Late changes in requirements should be entertained.
Face to face communication over documentation.
Continuous feedback and involvement of customer.
Simple design is better than elaborate design upfront.
Delivery dates are decided by the empowered teams.
THANK YOU

More Related Content

Soft lifecycle

  • 1. SOFTWARE PROCESS AND PROCESS ITERATION
  • 2. Life cycle model To Describes the steps followed by the project team to produce a tangible software product that fully meets the requirements of the component or the part that the project set forth to build.
  • 3. Software Process A set of activities, together with ordering constraints among them, such that if the activities are performed properly and in accordance with the ordering constraints. The process that deals with the technical and management issues of software development is called SWP. Successful project talks about Cost, schedule and quality.
  • 4. Contd.. A set of activities that leads to the production of a software product. There are many software processes, some fundamental activities are common to all software processes: Software Specification Software design and Implementation Software Validation Software evolution.
  • 5. Software process Product Engineering process(produce desired product) Development process Project Management process Software Configuration Management Process Management process
  • 6. ETVX Approach for process specification Entry Criteria Task Verification Exit Criteria
  • 7. A step in Development process Predictability. Input Output Process V&V
  • 8. SDLC A software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product.
  • 9. Waterfall Model Linear Sequential Model Water – tight phases One phase is Completed before the next phase starts
  • 11. Waterfall model problems  Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.  Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.  Few business systems have stable requirements.  The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
  • 12. Limitations of Waterfall model It assumes that the requirements of a system can be frozen before the design begins. Freezing the requirements usually requires choosing the hardware(because it forms a part of the requirements specification). A large project might take a few years to complete. “Big bang approach” – an entire software is delivered in one shot at the end. It encourages “requirements bloating”. It is a document-driven process that requires formal documents at each phase.
  • 13. Prototyping Model • Attractive idea for complicated and large systems for which there is no manual process or existing system to help determine the requirements.. • Based on Currently known requirements. • Customer can get actual feel of the system. Types: 1. Throwaway Prototype 2. Evolutionary Prototype
  • 14. Contd.. Horizontal Prototype A common term for a user interface prototype is the horizontal prototype It provides a broad view of an entire system or subsystem, focusing on user interaction more than low-level system functionality, such as database access Vertical Prototype A vertical prototype is a more complete elaboration of a single subsystem or function.
  • 16. Contd.. Types of prototyping Major types: first two.. Throwaway prototyping Evolutionary prototyping Incremental prototyping Extreme prototyping
  • 17. Adv and Dis-Adv Advantages Reduced time and costs: Improved and increased user involvement Disadvantages of prototyping Insufficient analysis User confusion of prototype and finished system Developer misunderstanding of user objectives Expense of implementing prototyping: Excessive development time of the prototype
  • 18. RAD Model Combines the features of waterfall model and prototyping model. Rapid application development (RAD) is a software dev.methodology that uses minimal planning in favor of rapid prototyping. WYSIWYG manner The "planning" of software developed using RAD is interleaved with writing the software itself. Each units Developed in a short time. Developments, using modelling tools and CASE, translates to product.
  • 19. Contd.. Speed and Responsiveness. Loop continually, Changes and feedback reflected. Key to the success of RAD lies in application decomposition, automatic generation and effective re-use. DisAdv: Modelling tools add expenses and Place restrictions(decompose, re-use..) Not applicable in little or no customer involvement, Co- existence of new application in legacy system.
  • 21. Iterative Development Counters the Third and fourth limitation of waterfall model, tries to combine the benefits of prototyping and Waterfall. Based on incrementing and add some functional capability to system until it satisfies. Project control list, gives an idea of how far the projects moves.
  • 22. Spiral Model Each cycle in the spiral begins with the identification of objectives for that cycle. Next step is to evaluate the different alternatives based on objectives and constraints. Resolve uncertainties and risks Software developed Final stage Planned.
  • 24. Time Boxing Model The Timeboxing model for iterative software development in which each iteration is done in a time box of fixed duration, and the functionality to be built is adjusted to fit the time box.
  • 25. RUP Rational Unified Process Designed for Object Oriented Development using UML. Divided into Cycles, each cycle delivering a fully working system. Each cycle have four phases:  Inception  Elaboration  Construction  Transition
  • 26. RUP Phases  Inception: Goals and scope of project(life cycle objectives milestone)  Elaboration: Architecture of the system is designed, based on the detailed requirement analysis (lifecycle Architecture milestone).  Construction: software is built and tested(Initial operational capability milestone)  Transition: To move the software from development environment to client’s environment(product release milestone).
  • 27. Agile processes  Extreme Programming  Extreme Programming is successful because it stresses customer satisfaction.  Extreme Programming emphasizes teamwork.  Extreme Programming improves a software project in five essential ways; 1. Communication 2. Simplicity 3. Feedback 4. Respect 5. Courage.
  • 28. Principles of agile processes Working software is the key measure of progress Software should be developed and delivered in small increments. Late changes in requirements should be entertained. Face to face communication over documentation. Continuous feedback and involvement of customer. Simple design is better than elaborate design upfront. Delivery dates are decided by the empowered teams.