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
- The functionality of the software product boosts incrementally each iteration
- The development process is broken down into multiple small cycles
- After each iteration, client or the end-users give feedback on what to implement or fix
Example
-
Developing the calculator that only has adding and subtracting. Feedback from the client that he wants multiplication and division.
-
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.
-
Add input validation to handle not numeric inputs. Feedback from the client that he wants calculation history
-
Add calculation history. Client is happy with the result
Image
Good Sides
- Clear, comprehensive requirements have been defined
- Changes to project scope are less costly and easier to implement
- An operational product is delivered with every iteration
- Some working functionality can be developed and early in the software development life cycle
Bad Sides
- End of the product may vary
- Requires frequent communication and collaboration
- Highly skilled resources are required for skill analysis
- 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
-
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
-
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
-
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
-
Once the increment has been developed and thoroughly tested it is deployed into the live environment
Example
-
Planning the calculator defining its main functionalities such as (addition, subtraction, multiplication, division) and deciding on the desired UI
-
Design and create the UI for the calculator with buttons for digits, operations, and a display screen to show results
-
Test the UI so all the buttons work and all operations are valid.
-
Intergrate the UI into the calculator
Image
Good Sides
- Risk can be managed easily
- Easier to debug
- Functionalities are achieved, analyzed, and checked thoroughly throughout
- Version Modification is easy
Bad Sides
- The total cost is sometimes high
- Needs a clear and complete definition of the whole system before it can be broken down and built
- 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