Software Engineering PPT 1
Software Engineering PPT 1
Software Engineering is the process of designing, developing, testing, and maintaining software. It is a systematic and disciplined
approach to software development that aims to create high-quality, reliable, and maintainable software .
Supriya Repalle-110130013
Software Development Lifecycle Model
[1]SDLC STAGES
1. Planning & AnalysisThe first phase of the SDLC is the project planning stage where
you are gathering business requirements from your client or stakeholders. This phase
is when you evaluate the feasibility of creating the product, revenue potential, the
cost of production, the needs of the end-users, etc.Once it is decided that the
software project is in line with business and stakeholder goals, feasible to create, and
addresses user needs, then you can move on to the next phase.
2. Define Requirements:This phase is critical for converting the information gathered
during the planning and analysis phase into clear requirements for the development
team. This process guides the development of several important documents: a
software requirement specification (SRS), a Use Case document.
3. Design: The design phase is where you put pen to paper—so to speak. The original
plan and vision are elaborated into a software design document (SDD) that includes
the system design, programming language, templates, platform to use, and
application security measures.
In most cases, the design phase will include the development of a prototype model.
4. Development: The actual development phase is where the development team
members divide the project into software modules and turn the software requirement
into code that makes the product. This SDLC phase can take quite a lot of time and
development tools. It’s important to have a set timeline and milestones so the
software developers understand the expectations and you can keep track of the
progress in this stage.
5. Testing: Before getting the software product out the door to the production
environment, it’s important to have your quality assurance team perform
validation testing to make sure it is functioning properly and does what it’s
meant to do. The testing process can also help hash out any major user
experience issues and security issues.
The types of testing to do in this phase:
Performance testing: Assesses the software's speed and scalability under
different conditions
Functional testing: Verifies that the software meets the requirements
Security testing: Identifies potential vulnerabilities and weaknesses
Unit-testing: Tests individual units or components of the software
Usability testing: Evaluates the software's user interface and overall user
experience
Acceptance testing: Also termed end-user testing, beta testing, application
testing, or field testing, this is the final testing stage to test if the software
product delivers on what it promises
6. Deployment:During the deployment phase, your final product is delivered to
your intended user. You automate this process and schedule your deployment
depending on the type .
7. Maintenance:In the maintenance stage, users may find bugs and errors
that were missed in the earlier testing phase. These bugs need to be fixed
for better user experience and retention. In some cases, these can lead to
going back to the first step of the software development life cycle. The
SDLC phases can also restart for any new features you may want to add in
your next release/update.
The different types of SDLC Models are:
Classical Waterfall Model
Iterative Waterfall Model
Prototyping Model
V-Shaped Model
Spiral Model
Incremental Model
Agile Model
Hybrid Model
[2]Waterfall Model
[3]Prototyping Model
[4]V-Shaped Model
[5]Spiral Model and [6]Incremental
Model
[7]RAD Model
[8]AGILE
Agile methodology is a project management framework that breaks projects
down into several dynamic phases, commonly known as sprints. he Agile
framework is an iterative methodology. After every sprint, teams reflect and
look back to see if there was anything that could be improved so they can
adjust their strategy for the next sprint.
Agile means MOVE QUICKLY
Individuals over processes and tools: Agile teams value team
collaboration and teamwork over working independently and doing things "by
the book.”
Working software over comprehensive documentation: The software
that Agile teams develop should work. Additional work, like documentation, is
not as important as developing good software.
Customer collaboration over contract negotiation: Customers are
extremely important within the Agile methodology. Agile teams allow
customers to guide where the software should go. Therefore, customer
collaboration is more important than the finer details of contract negotiation.
Responding to change over following a plan: One of the major benefits
of Agile project management is that it allows teams to be flexible. This
framework allows for teams to quickly shift strategies and workflows without
derailing an entire project.
[9]Agile Model
[10]Principles of Agile Methodology
Comparision between SDLC Models
Model Water Iterati Protot Incre RAD Spiral Agile
s fall ve ype menta Model Model Model
model Water model l
fall Model
Compa Basic,R Basic , User Module Time Risk Flexibl
rision igid,Infl proble require by and Not for e,Adva
exible, m is ment Module Cost small nced,P
Not for well is not Deliver constr project arallel,
real unders clear, y aint, s, Proces
project tood Costly, Early User at No s
No to test all early divided
early and levels lack on into
lock on Debug Reusab require sprints
require ility ments,
ments, require Less
High ments experi
User are enece
involve locked can
ment, work(b
Reusab ecause
le risk is
Case Study