Iteratiivne mudel Inkrementaalne mudel - mel2134/AgiilsedArendusmetoodikad GitHub Wiki

Iterative SDLC

Iterative SDLC is a way of breaking down the development of an application into smaller chunks

Iterative Attributes

  1. The functionality of the software product boosts incrementally each iteration
  2. The development process is broken down into multiple small cycles
  3. After each iteration, client or the end-users give feedback on what to implement or fix

Example

  1. Developing the calculator that only has adding and subtracting. Feedback from the client that he wants multiplication and division.

  2. Add multiplication, division. Feedback from the client that datatypes are not handled and are prone to error if the user inserts a string instead of an int.

  3. Add input validation to handle not numeric inputs. Feedback from the client that he wants calculation history

  4. Add calculation history. Client is happy with the result

Image

image

Good Sides

  1. Clear, comprehensive requirements have been defined
  2. Changes to project scope are less costly and easier to implement
  3. An operational product is delivered with every iteration
  4. Some working functionality can be developed and early in the software development life cycle

Bad Sides

  1. End of the product may vary
  2. Requires frequent communication and collaboration
  3. Highly skilled resources are required for skill analysis
  4. Project progress is highly dependent upon the risk analysis phase

Sources

Techtarget - Iterative Development
Educba - Iterative Model
Scaler - Iterative Model in software development OneBeyond - Iterative SDLC

Incremental SDLC

Incremental is a process of software development where requirements are broken down into multiple steps. Incremental development is done in steps from analysis design, implementation, testing/verification and maintenance

Incremental steps

  1. In the first first increment the requirements for the software are gathered and analyzed. The focus is on understanding both the overall goals of the system and the specific functional requirements

  2. In the second increment the systems architecture and the design for the first increment are created. This includes planning the systems structure and the user interface. The development team then proceeds to build the functionality as per the design

  3. This step involves verifying that the new functionality works as intended as well as ensuring that previously developed features continue to function correctly. Various testing methods such as unit testing, integration testing are employed to check the overall performance and behavior of the system

  4. Once the increment has been developed and thoroughly tested it is deployed into the live environment

Example

  1. Planning the calculator defining its main functionalities such as (addition, subtraction, multiplication, division) and deciding on the desired UI

  2. Design and create the UI for the calculator with buttons for digits, operations, and a display screen to show results

  3. Test the UI so all the buttons work and all operations are valid.

  4. Intergrate the UI into the calculator

Image

image

Good Sides

  1. Risk can be managed easily
  2. Easier to debug
  3. Functionalities are achieved, analyzed, and checked thoroughly throughout
  4. Version Modification is easy

Bad Sides

  1. The total cost is sometimes high
  2. Needs a clear and complete definition of the whole system before it can be broken down and built
  3. It can lead to wasted effort, as teams may continually have to renegotiate and re-prioritize work which can lead to inefficiency.

Sources

Guru99 - Incremental Model
Educba - Incremental Model
TryQA - What is Incremental Model
Plutora - Incremental Model What and How
TPointTech - Incremental SDLC