Sunteți pe pagina 1din 24

Software Process model

 A software process model is an abstract representation of a process. It


presents a description of a process. When we describe and discuss
processes, we usually talk about the activities in these processes such as
specifying a data model, designing a user interface, etc. and the ordering
of these activities.
Types of Model

 Waterfall model
 Iterative model
 Incremental model
 Agile model
 Evolutionary model
 Prototyping
 Spiral Model
Waterfall model
When to use

 Requirements are very well documented, clear and fixed.


 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the
product.
 The project is short.
Advantages:- Disadvantages: -
 Simple and easy to understand and use  No working software is produced until
late during the life cycle.
 Easy to manage due to the rigidity of the
model. Each phase has specific  High amounts of risk and uncertainty.
deliverables and a review process.
 Not a good model for complex and
 Phases are processed and completed object-oriented projects.
one at a time.
 Poor model for long and ongoing
 Works well for smaller projects where projects.
requirements are very well understood.
 Not suitable for the projects where
 Clearly defined stages. requirements are at a moderate to
high risk of changing. So, risk and
 Well understood milestones.
uncertainty is high with this process
 Easy to arrange tasks. model.
 Process and results are well documented
Incremental Model
When to use

 This model can be used when the requirements of the complete system are
clearly defined and understood.
 Major requirements must be defined; however, some details can evolve
with time.
 There is a need to get a product to the market early.
 A new technology is being used
 Resources with needed skill set are not available
 There are some high risk features and goals.
Advantages: - Disadvantages: -
 Initial product delivery is faster.  Requires good analysis.
 Lower initial delivery cost.  Resulting cost may exceed the cost of the
organization.
 Core product is developed first i.e main
functionality is added in the first increment.  Each phase of an iteration is rigid and do not
overlap each other
 After each iteration, regression testing should
be conducted. During this testing, faulty  As additional functionality is added to the
elements of the software can be quickly product, problems may arise related to system
identified because few changes are made architecture which was not evident in
within any single iteration. earlier prototypes.
 It is generally easier to test and debug than
other methods of software development
because relatively smaller changes are made
during each iteration. This allows for more
targeted and rigorous testing of each
element within the overall product.
 With each release, a new feature is added to
the product.
 Customer can respond to feature and review
the product.
 Risk of changing requirement is reduced
Iterative model
When to use

 Requirements of the complete system are clearly defined and understood.


 Major requirements must be defined; however, some functionalities or
requested enhancements may evolve with time.
 There is a time to the market constraint.
 A new technology is being used and is being learnt by the development
team while working on the project.
 Resources with needed skill sets are not available and are planned to be
used on contract basis for specific iterations.
 There are some high-risk features and goals which may change in the
future.
Advantages: - Disadvantages: -
 Some working functionality can be developed  More resources may be required.
quickly and early in the life cycle.
 Although cost of change is lesser, but it is not very
 Results are obtained early and periodically. suitable for changing requirements.
 Parallel development can be planned.  More management attention is required.
 Progress can be measured.  System architecture or design issues may arise
because not all requirements are gathered in the
 Less costly to change the scope/requirements. beginning of the entire life cycle.
 Testing and debugging during smaller iteration is  Defining increments may require definition of the
easy. complete system.
 Risks are identified and resolved during iteration; and  Not suitable for smaller projects.
each iteration is an easily managed milestone.
 Management complexity is more.
 Easier to manage risk - High risk part is done first.
 End of project may not be known which is a risk.
 With every increment, operational product is
delivered.  Highly skilled resources are required for risk analysis.
 Issues, challenges and risks identified from each  Projects progress is highly dependent upon the risk
increment can be utilized/applied to the next analysis phase.
increment.
 Risk analysis is better.
 It supports changing requirements.
 Initial Operating time is less.
Agile model
When to use

 Agile works better in small projects where you can provide small and
punctual deliverables in very short periods of time in order to build
gradually the final product
 Customer / stakeholder’s availability as deliverables are to be produced in
very short periods of time covering multiple iterations.
 If requirements change frequently, Agile provides a flexible approach that
let you prototype ideas to the customer in a fixed time-scale, allowing
modifications to deliverables in each iteration.
Advantages: - Disadvantages: -
 Promotes teamwork and cross training.  Not suitable for handling complex
dependencies.
 Functionality can be developed rapidly
and demonstrated.  More risk of sustainability, maintainability
and extensibility.
 Resource requirements are minimum.
 An overall plan, an agile leader and
 Suitable for fixed or changing agile PM practice is a must without
requirements which it will not work.
 Delivers early partial working solutions.  Strict delivery management dictates the
 Good model for environments that scope, functionality to be delivered, and
change steadily. adjustments to meet the deadlines.
 Minimal rules, documentation easily  Depends heavily on customer
employed. interaction, so if customer is not clear,
team can be driven in the wrong
 Enables concurrent development and direction.
delivery within an overall planned
context.  There is a very high individual
dependency, since there is minimum
 Little or no planning required. documentation generated.
 Easy to manage.
Spiral model
When to use

 When there is a budget constraint and risk evaluation is important.


 For medium to high-risk projects.
 Long-term project commitment because of potential changes to
economic priorities as the requirements change with time.
 Customer is not sure of their requirements which is usually the case.
 Requirements are complex and need evaluation to get clarity.
 New product line which should be released in phases to get enough
customer feedback.
 Significant changes are expected in the product during the development
cycle.
Advantages: - Disadvantages: -
 Changing requirements can be  Management is more complex.
accommodated.
 End of the project may not be known
 Allows extensive use of prototypes. early.
 Requirements can be captured more  Not suitable for small or low risk
accurately. projects and could be expensive for
small projects.
 Users see the system early.
 Process is complex
 Development can be divided into
smaller parts and the risky parts can  Spiral may go on indefinitely.
be developed earlier which helps in
 Large number of intermediate stages
better risk management.
requires excessive documentation.
Prototyping
When to use

 Users are actively involved in the development


 Since in this methodology a working model of the system is provided, the
users get a better understanding of the system being developed.
 Errors can be detected much earlier.
 Quicker user feedback is available leading to better solutions.
 Missing functionality can be identified easily
 Confusing or difficult functions can be identified
Requirements validation, Quick implementation of, incomplete, but
functional, application.
Advantages: - Disadvantages: -
 Promotes teamwork and cross training.  Not suitable for handling complex
dependencies.
 Functionality can be developed rapidly
and demonstrated.  More risk of sustainability, maintainability
and extensibility.
 Resource requirements are minimum.
 An overall plan, an agile leader and
 Suitable for fixed or changing agile PM practice is a must without
requirements which it will not work.
 Delivers early partial working solutions.  Strict delivery management dictates the
 Good model for environments that scope, functionality to be delivered, and
change steadily. adjustments to meet the deadlines.
 Minimal rules, documentation easily  Depends heavily on customer
employed. interaction, so if customer is not clear,
team can be driven in the wrong
 Enables concurrent development and direction.
delivery within an overall planned
context.  There is a very high individual
dependency, since there is minimum
 Little or no planning required. documentation generated.
 Easy to manage.
Advantages: - Disadvantages: -
 Increased user involvement in the  Risk of insufficient requirement analysis
product even before its owing to too much dependency on
implementation. the prototype.
 Since a working model of the system is  Users may get confused in the
displayed, the users get a better prototypes and actual systems.
understanding of the system being
 Practically, this methodology may
developed.
increase the complexity of the system
 Reduces time and cost as the defects as scope of the system may expand
can be detected much earlier. beyond original plans.
 Quicker user feedback is available  Developers may try to reuse the
leading to better solutions. existing prototypes to build the actual
system, even when it is not technically
 Missing functionality can be identified
feasible.
easily.
 The effort invested in building
 Confusing or difficult functions can be
prototypes may be too much if it is not
identified.
monitored properly.
Our Model

 Why?
Thank you

S-ar putea să vă placă și