You are on page 1of 38

Software Engineering

Date:- 30/01/2023
Day:- Monday
B.Tech CSE of JISU
Even Semester: 6th
V- Model
V model advantages and disadvantages  

V- model advantages :
 It is simple and easy to use.
 It has major changes to find defects in the early stage.
 In this phase, test planning and test designing like test
activities perform before the coding.
 It suited for small projects where requirements not
complex.
 It is a high discipline model to develop software.
V- model disadvantages

 The risk is high and unpredictable.


 This model does not suite for complex projects.
 It is difficult to go back to the previous stage after
completing the testing phase.
 It is a poor model for long and ongoing projects.
Continue…

Use of V-Model :
 It mostly use for small projects and medium-size
projects where customers’ requirements cleared.
Conclusion :
 V model testing is starts parallel so we can find defects
in the early stages so in this way v shape model used for
the software industry for software development.
Spiral Model
 Spiral model is the combination of both sequential
model and prototype model.
 The spiral model is specifically designed for projects
which are huge in size and requires regular
enhancements.
 The spiral model is somewhat similar to the
incremental model but more emphasis on risk
analysis, engineering, and evaluation.
 To understand better have a look at the sequential
diagram about the model
Phases involved in Spiral Mode

 Planning phase: All the required information about the project


will be gathered in this phase. Requirements such as BRS
(business requirement specification and SRS (system requirement
specifications), design alteration, etc. will be done in this phase.
Cost estimation, scheduling the resources for iteration, etc. also
happens in this phase.
Risk Analysis: Requirements of the project is studied and
brainstorm sessions are conducted to figure out potential risks
involved. Once the risk has been identified proper strategies and
risk mitigation methodologies will be planned.
Testing phase: Testing alongside developmental changes will be
done in this phase. Coding, test case development, test execution,
test summary report, defect report generation, etc. happens in this
phase.
 Evaluation phase: Customer can evaluate the tests and can
give feedback before the project goes to the next level
1st iteration – Activities such as panning, initial risk analysis,
engineering evaluation, requirement gathering happens.
2nd iteration – Higher level planning, detailed risk analysis,
evaluation happens in this phase
3rd iteration – Testing related activities such as coding, tool
selection, resource allocation, which test to choose? Etc.
happens in this phase.
4th iteration – In this customer is the key where they can
evaluate the entire process and express their option regarding
it.
When to use the spiral model?

 When cost and risk is high


 Medium to high-risk project
 Frequent release requirement
 Complex project
 Projects that require constant change
 Not feasible long term projects owing to the change in
economic priorities
Advantage
 Risk management is easy in this type of model. When you are
handling expensive and complex projects, risk management is a
must. Moreover, Spiral model has the ability to make any software
testing project transparent.
 Customer can see and review the test and different stages
 Projects can be separated into various parts to ease the
management difficulty
 Documentation control is strong in this type of methodology
 Project estimate will tend to be more realistic as it progresses.
Disadvantage
 Cannot be used for small projects as it can be expensive
 A vast amount of documentation owing to several intermediate
stages
 The end date of the project cannot be calculated at the early
stages of the project
 Complex process
 High expertise is required to run the model
Conclusion

 Each spiral that can be seen in the diagram above acts as


a loop for a separate process in testing.
 the four main activities, planning risk analysis, testing,
coding and project evaluation will be repeated again for
the required amount of phases for any project.
 Implementation of the model requires personnel who are
highly experienced in it since the Spiral model is
exclusively meant for larger products and risk analysis the
most important feature.
Incremental Model

 Incremental Model, also known as the successive version model, is a widely


adopted model of software development process where the software
requirements are divided or broken down into multiple stand-alone
modules/increments in the SDLC (Software Development Life Cycle).
 Each increment is treated as a sub-project and goes through all phases of the
SDLC incremental model.
 This sounds similar to an iterative model.
 However, this model is an enhancement to the iterative model and due to this,
the incremental model is also called the Iterative Enhancement Model. 
 In the incremental model, instead of making one huge leap, we achieve our
goals in small steps.
Phases of Incremental model
When is an Incremental Model Used?

 Most often, Incremental Models are used in the following scenarios:


• Requirements are clearly specified, understood and are known up-front.
Certain requirements, however, require time.
• There is a requirement to release the product early or get it to the market
early.
• Engineering team lacks the required skill set, or the resources are
unavailable.
• Product-based companies develop their own products.
• New technologies are used.
• High risk goals or features are involved.
• Projects have long development schedules.
What is the Major Advantage of Using Incremental Model

Incremental models offer a number of benefits, some of which are highlighted below:
 Through incremental development, 100% of the software objectives and requirements
are met.
 A good option for dealing with cost and flexibility is the incremental model. Scope
and requirements can be altered at any time throughout development. 
 Verifying and debugging this model is easy and straightforward.
 This model enables us to produce working software earlier and more rapidly during
product development. As a result of dividing the work, completion time can be
reduced.
 This model permits the client to respond to and provide feedback on every build.
 Identifying errors becomes easy with incremental models. This simplifies risk
management since risky pieces are identified and dealt with during iterations.
 The product’s most important and useful functional capabilities can be identified at an
early stage of the development process.
Disadvantages Of The Incremental Model

 The incremental model also has disadvantages, some of which are listed below:
• This model requires meticulous planning and designing.
• In order to break it down and build it incrementally, it needs a complete and
clear definition of the whole system.
• If the requirement is not comprehended at the beginning, the whole purpose of
incrementing will be shattered. So, system architecture may encounter
problems if not all requirements are collected up front during the entire
software lifecycle.
• A problem in one unit needs to be corrected in all units, which takes a lot of
time.
• The iteration phases are rigid and they don’t overlap each other.
Conclusion

 Various models are available for developing software and meeting the desired
objectives, but incremental modeling achieves 100% of expected software
objectives.
 In the incremental model, instead of making one huge leap, we achieve our
goals in small steps.
 This model is used when it is not possible to reach a decision in one go, but
necessitates a step-by-step process.
 This model is primarily applied where we have a clear understanding of the
requirements and when 100% accuracy of the software is required.
 The incremental model is most common in the public sector, where major
changes would probably cause public conflict, and in software development,
where small changes will help avoid costly errors.
iterative process model

 The iterative process model is the implementation of the software


development life cycle in which the initial development is started based on
the initial requirements and more features are added to the base software
product with the ongoing iterations until the final system is created.
 The iterative model was designed as an improvement to the
existing waterfall model.
 The waterfall model is a linear SDLC model whereas the iterative model
is cyclical in nature.
Once the initial requirement planning process is completed, some of the
other stages are repeated. As these cycles are completed and implemented,
the overall end product is improved and iterated on. 
Example
Advantages/Disadvantages of Iterative Model

 Advantages of Iterative Model


1. Many features can be developed quickly in the life cycle.
2. Results are received quickly and periodically.
3. Testing and debugging is easy during short iterations.
4. Less expensive to change scope / requirements.
5. Suitable for large projects.
 Disadvantages of Iterative Model
1. Requires more management attention.
2. Risk analysis requires highly efficient resources.
3. The project completion date has not been confirmed due to
changing requirements.
Prototype Model

 The prototype creation model is a method of developing the


software in which a prototype of software or app is
constructed, tested, and then reworked as needed until an
acceptable result is obtained from which the complete
software or product can be developed.
 This model works best in scenarios where not all project
requirements are known in detail in advance. It is an
iterative trial and error process that takes place between
developers and users.
Advantages of the prototyping model

1.Greater involvement of users in the product even before its


implementation.
2.As a  working prototype model is shown, users gain a
better understanding of the software being developed.
3.Reduce time and costs since defects can be detected much
earlier.
4.There are faster comments from users that lead to better
solutions.
5.Missing features can be easily identified.
6.It is possible to identify confusing or difficult functions.
Disadvantages of the prototype model

1. Risk of analysis of insufficient requirements due to too much


dependence on the prototype.
2. Users can be confused with real prototypes and systems.
3. Practically, this methodology can increase the complexity of the
system since the scope of the system can expand beyond the
original plans.
4. Developers can try to reuse existing prototypes to build the real
system, even when it is not technically feasible.
5. The effort invested in prototyping may be too much if it is not
properly controlled.
Agile Methodology
 When was Agile invented?
The Agile project methodology has its roots in the software
development industry. Members of this industry were seeking
a faster-paced, more responsive process to meet their project
management needs. The term was first coined officially in the
2001 Agile Manifesto.
 Who is the founder of Agile?
Ken Schwaber and Jeff Sutherland are the founding fathers of
the Agile project management methodology. They were both
members of the 17-person team convened in 2001 to formally
define Agile project management.
About

Large Project

SP SP SP

They will follow


Iterations

Release => Feedback => update = > Re-release


Advantage

 Frequent Delivery
 Modification
 Time
 Regular interaction with clients
Disadvantage

 Maintenance issue
 Less documentation
Agile Methodology
The Agile methodology is a way to manage a project by breaking
it up into several phases. It involves constant collaboration with
stakeholders and continuous improvement at every stage. Once the
work begins, teams cycle through a process of planning,
executing, and evaluating.
Scrum is one of the implementations of agile methodology. In
which incremental builds are delivered to the customer every two
to three weeks.
Principles of agile methodology
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change by following a plan
Individuals and interactions over processes and tools
Each requirement in the project is prioritized by allocating to several sprints.
Therefore, for one sprint there are only a limited number of requirements that
are needed to undergo each lifecycle of software development.
Working software over comprehensive documentation
At the end of each sprint, a working software/ product can be given to the
customer. We call it a shippable product.
Customer collaboration over contract negotiation
In this methodology, customer interaction is there with each life cycle phase.
This makes sure that the customer and the development team have full
transparency between the requirements. Also, customers can make sure the
project is going on the right track
Responding to change by following a plan
At the end of each sprint, customer review the shippable product. After the
review, the customer gives feedback mentioning what needs to change and what
needs to be improved. So, the development team can include those
improvements and changes at the beginning of the next sprint. So, the
responding to the customer feedback is quick in this methodology
 Roles of product
owner                                                                                                      
•Defining the features and requirements.
•Determining the release date and the content
•Accept and reject the work result
Scrum Master

Keep the interrelationship between each role


Make sure the project flows without any blockers.
Ensure the project is released at the proper date
Development Team

•All the other roles are under the development team


•Make sure the project is designed, implemented, and tested properly
Documentation
Product backlog

The product backlog is a list of features that need to be done in order to complete
the product. Here the feature list is prioritized by the product owner as he wants.
Each item in the product backlog is called a user story.
When writing a user story, the following things should be kept in mind
Role: Specific type of user roles
Action: Action needed to be done by the user role
Benefit: Final outcome by doing that specific action

You might also like