0% found this document useful (0 votes)
43 views

Software Development Process Models

This document discusses incremental development, an approach where an initial software implementation is created and exposed to users for feedback, before being evolved through several versions until an adequate system is developed. It notes incremental development can be plan-driven, agile, or a hybrid. Early increments focus on important functionality while getting early user feedback. Later increments are informed by progress and priorities, addressing problems like structural degradation. The document also compares incremental development to incremental delivery and discusses reuse-oriented engineering.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Software Development Process Models

This document discusses incremental development, an approach where an initial software implementation is created and exposed to users for feedback, before being evolved through several versions until an adequate system is developed. It notes incremental development can be plan-driven, agile, or a hybrid. Early increments focus on important functionality while getting early user feedback. Later increments are informed by progress and priorities, addressing problems like structural degradation. The document also compares incremental development to incremental delivery and discusses reuse-oriented engineering.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

3.

SOFTWARE PROCESS MODELS –


OTHER MODELS
INCREMENTAL DEVELOPMENT
DEVELOPING AN INITIAL IMPLEMENTATION, EXPOSING THIS TO USER COMMENTS
AND EVOLVING IT THROUGH SEVERAL VERSIONS UNTIL AN ADEQUATE SYSTEM HAS
BEEN DEVELOPED
Incremental
Development
INCREMENTAL DEVELOPMENT

• This approach can be either plan-driven, agile, or, more usually, a


mixture of these approaches.
• In a plan-driven approach, the system increments are identified in
advance
• If an agile approach is adopted, the early increments are identified
but the development of later increments depends on progress and
customer priorities.
INCREMENTS (OR VERSION)

• Early increments of the system include the most important or


most urgently required functionality.
• Customer or user can evaluate the system at relatively early
stage from what delivered.
• Feedbacks are adapted into next increments.
BENEFITS OF INCREMENTAL
DEVELOPMENT (OVER WATERFALL METHOD)
• The cost of accommodating changing requirements is reduced.
• Through amount of analysis and documentation that has to be redone
• It is easier to get customer feedback on the development work that has
been done.
• Customer see the product, not documents
• Customers are able to use and gain value from the software earlier.
• Delivery and deployment, even all functionalities are not included
PROBLEMS WITH INCREMENTAL
DEVELOPMENT

• The process is not visible.


• Managers need regular deliverables to measure progress.
• System structure tends to degrade as new increments are
added.
• Regular change leads to messy code
To reduce structural degradation and general code messiness, agile methods
suggest that you should regularly refactor (improve and restructure) the
software.
SUITABILITY

• For systems whose requirements are likely to change during


the development process.
• E.g. business systems
• Problems of incremental development become severe for
large, complex, long-lifetime systems, where different teams
develop different parts.
NOT SUITABLE, IF LARGE SYSTEM EVEN
BUSINESS SYSTEM

• Large systems need a stable framework or architecture, and


the responsibilities of the different teams working on parts of
the system need to be clearly defined with respect to that
architecture.
• This has to be planned in advance rather than developed
incrementally.
INCREMENTAL DEVELOPMENT VS
INCREMENTAL DELIVERY
• Incremental development does not mean to deliver each increment
to the system customer to be used in live environment.
• Increments can be exposed to customers for comment
• Incremental delivery means that the software is used in real
operational processes, so user feedback is realistic.
• Providing feedback is not always possible if experimentations are
happening, as it can disrupt normal business processes.
INTEGRATION AND CONFIGURATION
REUSE-ORIENTED SOFTWARE ENGINEERING
INFORMAL REUSE

• Reuse often happens informally when people search for a code


that is similar to what is required. Modify as needed, and
integrate them with the new code that they have developed.
• This informal reuse takes place regardless of the development
process that is used.
TYPES OF SOFTWARE COMPONENTS USED

• Web Services (Maps)


• Collections of Objects (code libraries)
• Stand-alone Software Systems (video players, ms word, ms
excel)
Reuse-oriented approaches rely on a base of reusable software
components and an integrating framework for the composition of
these components.
BENEFITS OF REUSE-ORIENTED SOFTWARE
ENGINEERING

• Reducing the amount of software to be developed and so


reducing cost and risks.
• Faster delivery
DISADVANTAGES OF REUSE-ORIENTED
SOFTWARE ENGINEERING

• Requirements compromises are inevitable,


• May lead to a system that does not meet the real needs of users.
• Control over the system evolution is lost as new versions of the
reusable components are not under the control of the
organization using them.
Click icon to add picture

Thank You!

Reference:
Ian Sommerville, Software Engineering,
Tenth Edition, Addison-Wesley Publishing,
Pearson Education

You might also like