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.
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% 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.
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