SlideShare une entreprise Scribd logo
1  sur  47
SOFTWARE ENGINEERING
MODELS
8/13/2019
1
WATERFALL MODEL
8/13/2019
2
• The Waterfall Model was the first Process Model to be introduced. It is very
simple to understand and use. In a Waterfall model, each phase must be
completed before the next phase can begin and there is no overlapping in the
phases. Waterfall model is the earliest SDLC approach that was used for
software development.
• In “The Waterfall” approach, the whole process of software development is
divided into separate phases. The outcome of one phase acts as the input for
the next phase sequentially. This means that any phase in the development
process begins only if the previous phase is complete. The waterfall model is a
sequential design process in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases of Requirement Gathering,
Analysis, Design, Code, Test, Implement, Maintain.
8/13/2019
3
• Requirements: The first phase involves understanding what needs to design and
what is its function, purpose, etc. Here, the specifications of the input and output
or the final product are studied and marked.
• Analysis: The system specifications are analysed to generate product models
and business logic that will guide production. This is also when financial and
technical resources are audited for feasibility.
• Design: The requirement specifications from the first phase are studied in this
phase and system design is prepared. System Design helps in specifying hardware
and system requirements and also helps in defining overall system architecture.
The software code to be written in the next stage is created now.
8/13/2019
4
• Code: The source code is developed using the models, logic and requirements
designated in the prior stages. Typically, the system is designed in smaller
components, or units, before being implemented together
• Testing: All the units developed in the implementation phase are integrated into
a system after testing of each unit. The software designed, needs to go through
constant software testing to find out if there are any flaw or errors. Testing is
done so that the client does not face any problem during the installation of the
software.
8/13/2019
5
ADVANTAGES DISADVANTAGES
The advantage of waterfall development is
that it allows for departmentalization and
control. A schedule can be set with deadlines
for each stage of development and a product
can proceed through the development
process model phases one by one.
It is difficult to estimate time and cost for
each phase of the development process.
The waterfall model progresses through
easily understandable and explainable
phases and thus it is easy to use.
Once an application is in the testing stage, it
is very difficult to go back and change
something that was not well-thought out in
the concept stage.
It is easy to manage due to the rigidity of the
model – each phase has specific deliverables
and a review process.
Not a good model for complex and object-
oriented projects.
In this model, phases are processed and
completed one at a time and they do not
overlap. Waterfall model works well for
smaller projects where requirements are very
well understood.
Not suitable for the projects where
requirements are at a moderate to high risk
of changing.
8/13/2019
6
PROTOTYPE MODEL
8/13/2019
7
The prototyping model is applied when detailed information related to input
and output requirements of the system is not available. In this model, it is
assumed that all the requirements may not be known at the start of the
development of the system. It is usually used when a system does not exist or in
case of a large and complex system where there is no manual process to
determine the requirements. This model allows the users to interact and
experiment with a working model of the system known as prototype. The
prototype gives the user an actual feel of the system.
8/13/2019
8
At any stage, if the user is not satisfied with the prototype, it can be discarded and
an entirely new system can be developed. Generally, prototype can be prepared
by the approaches listed below.
• By creating main user interfaces without any substantial coding so that users
can get a feel of how the actual system will appear.
• By abbreviating a version of the system that will perform limited subsets of
functions.
• By using system components to illustrate the functions that will be included in
the system to be developed .
Using the prototype, the client can get an actual feel of the system. So, this case of
model is beneficial in the case when requirements cannot be frozen initially.
8/13/2019
9
• Requirements gathering and analysis: A prototyping model begins with requirements
analysis and the requirements of the system are defined in detail. The user is interviewed
in order to know the requirements of the system.
• Quick design: When requirements are known, a preliminary design or quick design for
the system is created. It is not a detailed design and includes only the important aspects
of the system, which gives an idea of the system to the user. A quick design helps in
developing the prototype.
• Build prototype: Information gathered from quick design is modified to form the first
prototype, which represents the working model of the required system.
8/13/2019
10
• User evaluation: Next, the proposed system is presented to the user for thorough evaluation
of the prototype to recognize its strengths and weaknesses such as what is to be added or
removed. Comments and suggestions are collected from the users and provided to the
developer.
• Refining prototype: Once the user evaluates the prototype and if he is not satisfied, the
current prototype is refined according to the requirements. That is, a new prototype is
developed with the additional information provided by the user. The new prototype is
evaluated just like the previous prototype. This process continues until all the requirements
specified by the user are met. Once the user is satisfied with the developed prototype, a final
system is developed on the basis of the final prototype.
• Engineer product: Once the requirements are completely met, the user accepts the final
prototype. The final system is evaluated thoroughly followed by the routine maintenance on
regular basis for preventing large-scale failures and minimizing downtime.
8/13/2019
11
ADVANTAGES DISADVANTAGES
Provides a working model to the user early
in the process, enabling early assessment
and increasing user's confidence.
If the user is not satisfied by the developed
prototype, then a new prototype is
developed. This process goes on until a
perfect prototype is developed. Thus, this
model is time consuming and expensive.
The developer gains experience and insight
by developing a prototype there by resulting
in better implementation of requirements.
The developer loses focus of the real
purpose of prototype and hence, may
compromise with the quality of the
software. For example, developers may use
some inefficient algorithms or inappropriate
programming languages while developing
the prototype.
The prototyping model serves to clarify
requirements, which are not clear, hence
reducing ambiguity and improving
communication between the developers and
users..
Prototyping can lead to false expectations.
For example, a situation may be created
where the user believes that the
development of the system is finished when
it is not.
There is a great involvement of users in
software development. Hence, the
requirements of the users are met to the
The primary goal of prototyping is speedy
development thus, the system design can
suffer as it is developed in series without
8/13/2019
12
ITERATIVE MODEL
8/13/2019
13
• Iterative development is a way of breaking down the software development of a
large application into smaller chunks. In iterative development, feature code is
designed, developed and tested in repeated cycles. With each iteration, additional
features can be designed, developed and tested until there is a fully functional
software application ready to be deployed to customers.
• The purpose of working iteratively is to allow more flexibility for changes. When
requirements and design of a major application are done in the traditional method
(sometimes referred to as BDUF or Big Design Up Front), there can be unforeseen
problems that don’t surface until development begins. By working iteratively, the
project team goes through a cycle where they evaluate with each iteration, and
determine what changes are needed to produce a satisfactory end product.
8/13/2019
14
• Requirements phase, in which the requirements for the software are gathered and
analysed. Iteration should eventually result in a requirements phase that produces a
complete and final specification of requirements.
• Design phase, in which a software solution to meet the requirements is designed. This
may be a new design, or an extension of an earlier design.
• Implementation and Test phase, when the software is coded, integrated and tested.
• Review phase, in which the software is evaluated, the current requirements are
reviewed, and changes and additions to requirements proposed.
8/13/2019
15
ADVANTAGES DISADVANTAGES
Potential defects are spotted and dealt with
early.
More resources may be required
Most risks can be identified during iteration
and higher risks can be dealt with as an
early priority
Highly skilled talent is required for risk
analysis
Customer feedback is based on working
products rather than technical specifications
It is not suitable for smaller projects.
Parallel development can be planned. Project progress is highly dependent upon
the risk analysis phase.
8/13/2019
16
RAPID APPLICATION DEVELOPMENT (RAD)
8/13/2019
17
RAD which is abbreviated as Rapid Application Development Model, is based on
the concepts of both iterative and prototyping development model. The Rapid
Application Development model basically take prior attention on assembling
customer desires in the course of workshop and development, and there is an
emphasis on early testing of the system's prototype by the client or consumer
using iterative methodology, then if based on the feedback - reuse the existing
prototype(s) and stays in constant assimilation as well as rapid delivery. Here, in
this model, the modules and pieces, as well as various functions, are developed in
parallel in the form of mini projects to save the development time. These models
and functions are boxed together, delivered and further assembled to form a
working prototype.
8/13/2019
18
A series of development cycles are carried out as prototype 1, 2 and so on which
are low-level rejections with further feedback so that the actual model can be
placed into production, With the incorporation of this model, there was a
significant advancement in the software development methodologies and
environments which follow quick generating of product as well as change of
screens as well as other features from user's edge. Because of its approach, there
leaves a minute or no scope for imagination, and for this reason, a considerable
amount of errors get caught and reduced or solved at the very early stage.
8/13/2019
19
• Business Modelling Phase: The processed data flow is recognized from varieties
of business perspective.
• Data Modelling Phase: Information that is taken from business modelling is then
implemented for defining elements which are required for the business.
• Process Modelling Phase: Data modelling achieved after assimilating details
from business information flow needs to be appropriately processed to come up
with a prototype.
• Application Generation Phase: Various autonomous tools are employed for
converting process models to code which is then finally converted to the actual
system.
• Testing and Turnover Phase: All interfaces and modules are tested.
8/13/2019
20
ADVANTAGES DISADVANTAGES
Reusability of components makes
or speeds up the development and
reduces the time that it needs for
developing a product.
A proper time-frame should have
to be maintained for both end
customer as well as developers for
completing the system.
The modularized way of crafting
each function within the system
makes the development task
easier
RAD model-based software
development fails because of a
lack of commitment and
dedication.
Large projects can be done easily
through the RAD model.
A slight complexity in the
modularizing in RAD model can
lead to failure of the entire
project.
Each phase in RAD delivers
highest priority functionality to
client.
Reduced features due to time
boxing, where features are pushed
to a later version to finish a
release in short period.
•
8/13/2019
21
INCREMENTAL ORDER
8/13/2019
22
• Incremental development is based on the idea of developing an initial
implementation, exposing this to user feedback, and evolving it through several
versions until an acceptable system has been developed.
• The activities of a process are not separated but interleaved with feedback
involved across those activities.
• Each system increment reflects a piece of the functionality that is needed by the
customer. Generally, the early increments of the system should include the most
important or most urgently required functionality.
• This means that the customer can evaluate the system at early stage in the
development to see if it delivers what’s required. If not, then only the current
increment has to be changed and, possibly, new functionality defined for later
increments.
8/13/2019
23
ADVANTAGES DISADVANTAGES
It is generally easier to test and
debug than other methods of
software development because
relatively smaller changes are
made during each iteration. This
allows for more targeted and
rigorous testing of each element
within the overall product.
As additional functionality is
added to the product, problems
may arise related to system
architecture which was not evident
in earlier prototypes.
After each iteration, regression
testing should be conducted.
During this testing, faulty
elements of the software can be
quickly identified because few
changes are made within any
single iteration.
Each phase of an iteration is rigid
and do not overlap each other
With each release, a new feature is
added to the product.
Resulting cost may exceed the
cost of the organization.
Customer can respond to feature Requires good analysis.
8/13/2019
24
SPIRAL MODEL
8/13/2019
25
Spiral model is one of the most important Software Development Life Cycle
models, which provides support for Risk Handling. In its diagrammatic
representation, it looks like a spiral with many loops. The exact number of loops
of the spiral is unknown and can vary from project to project. Each loop of the
spiral is called a Phase of the software development process. The exact
number of phases needed to develop the product can be varied by the project
manager depending upon the project risks. As the project manager dynamically
determines the number of phases, so the project manager has an important role
to develop a product using spiral model.
8/13/2019
26
8/13/2019 27
ADVANTAGES
• Spiral Life Cycle Model is one of the most flexible SDLC models in place.
Development phases can be determined by the project manager, according to
the complexity of the project.
• Project monitoring is very easy and effective. Each phase, as well as each loop,
requires a review from concerned people. This makes the model more
transparent.
• Risk management is one of the in-built features of the model, which makes it
extra attractive compared to other models.
• Changes can be introduced later in the life cycle as well. And coping with these
changes isn’t a very big headache for the project manager.
• Project estimates in terms of schedule, cost etc become more and more realistic
as the project moves forward and loops in spiral get completed.
• It is suitable for high risk projects, where business needs may be unstable.
• A highly customized product can be developed using this.
8/13/2019
28
DISADVANTAGES
• Cost involved in this model is usually high.
• It is a complicated approach especially for projects with a clear SRS.
• Skills required, to evaluate and review project from time to time, need
expertise.
• Rules and protocols should be followed properly to effectively implement this
model. Doing so, through-out the span of project is tough.
• Due to various customizations allowed from the client, using the same
prototype in other projects, in future, is difficult.
• It is not suitable for low risk projects.
• Meeting budgetary and scheduling requirements is tough if this development
process is followed.
• Amount of documentation required in intermediate stages makes management
of project very complex affair.
8/13/2019
29
AGILE MODEL
8/13/2019
30
• Agile model believes that every project needs to be handled differently and the
existing methods need to be tailored to best suit the project requirements. In
Agile, the tasks are divided to time boxes (small time frames) to deliver specific
features for a release.
• Iterative approach is taken and working software build is delivered after each
iteration. Each build is incremental in terms of features; the final build holds all
the features required by the customer.
8/13/2019
31
Every iteration involves cross functional teams working simultaneously on
various areas like −
• Planning
• Requirements Analysis
• Design
• Coding
• Unit Testing and
• Acceptance Testing.
8/13/2019
32
• Following are the Agile Manifesto principles −
• Individuals and interactions − In Agile development, self-organization and
motivation are important, as are interactions like co-location and pair
programming.
• Working software − Demo working software is considered the best means of
communication with the customers to understand their requirements, instead
of just depending on documentation.
• Customer collaboration − As the requirements cannot be gathered completely
in the beginning of the project due to various factors, continuous customer
interaction is very important to get proper product requirements.
• Responding to change − Agile Development is focused on quick responses to
change and continuous development.
8/13/2019
33
ADVANTAGES DISADVANTAGES
It is a very realistic approach to
software development.
Strict delivery management
dictates the scope, functionality to
be delivered, and adjustments to
meet the deadlines.
Promotes teamwork and cross
training.
Depends heavily on customer
interaction, so if customer is not
clear, team can be driven in the
wrong direction.
Enables concurrent development
and delivery within an overall
planned context.
There is a very high individual
dependency, since there is
minimum documentation
generated.
Gives flexibility to developers. More risk of sustainability,
maintainability and extensibility.
8/13/2019
34
V MODEL
8/13/2019
35
• V Model is an enhanced version of the classic waterfall model whereby each
level of the development life-cycle is verified before moving on to the next level.
With this model, software testing explicitly starts at the very beginning, i.e. as
soon as the requirements are written.
• Here, by testing we mean verification by means of reviews and inspections, i.e.
static testing. This helps in identifying errors very early in the life-cycle and
minimizes potential future defects appearing in the code later in the life-cycle.
• In the V Model the test activities are spelled out to the same level of detail as
the design activities. Software is designed on the left-hand (downhill) part of
the model, and built and tested on the right-hand (uphill) part of the model.
Note that different organizations may have different names for the
development and testing phases.
• The correspondences between the left and right hand activities are shown by
the lines across the middle of the V, showing the test levels from component
testing at the bottom, integration and system testing, and acceptance testing at
the top level.
8/13/2019
36
Advantages:
• in V Model, Each phase has specific deliverables.
• Higher chance of success over the waterfall model due to the development of
test plans early on during the life cycle.
• Time concern in comparison with the waterfall model is low or even we can say
50% less.
• Works well for small projects where requirements are easily understood.
• Utility of the resources is high.
8/13/2019
37
Disadvantages:
• Very rigid, like the waterfall model.
• Little flexibility and adjusting scope is difficult and expensive.
• Software is developed during the implementation phase, so no early prototypes
of the software are produced.
• V Model doesn’t provide a clear path for problems found during testing phases.
8/13/2019
38
EXTREME PROGRAMMING
8/13/2019
39
• Extreme Programming (XP) is an agile software development framework that
aims to produce higher quality software, and higher quality of life for the
development team. XP is the most specific of the agile frameworks regarding
appropriate engineering practices for software development.
• Similar to other Agile Methods of development, Extreme Programming aims to
provide iterative and frequent small releases throughout the project, allowing
both team members and customers to examine and review the project’s
progress throughout the entire SDLC.
8/13/2019
40
Planning
• User stories are written.
• Release planning creates the release schedule.
• Make frequent small releases.
• The project is divided into iterations.
• Iteration planning starts each iteration
8/13/2019
41
Managing
• Give the team a dedicated open work space.
• Set a sustainable pace.
• A stand up meeting starts each day.
• The project velocity is measured
• Move people around
• Fix Extreme Programming when it breaks.
8/13/2019
42
Designing
• Simplicity
• Choose a system metaphor
• Use CRC cards for design sessions
• Create spike solutions to reduce risk
• No functionality is added early
• Refactor whenever and wherever possible
8/13/2019
43
Coding
• The customer is always available
• Code must be written to agreed standards
• Code the unit test first
• All production code is pair programmed
• Only one pair integrates code at a time
• Integrate often
• Set up a dedicated integration computer
• Use collective ownership
8/13/2019
44
Testing
• All code must have unit tests
• All code must pass all unit tests before it can be released
• When a bug is found tests are created
• Acceptance tests are run often and the score is published
8/13/2019
45
ADVANTAGES DISADVANTAGES
The main advantage of Extreme
Programming is that this methodology
allows software development
companies to save costs and time
required for project realization.
Some specialists say that Extreme
Programming is focused on the code
rather than on design. That may be a
problem because good design is
extremely important for software
applications. It helps sell them in the
software market. Additionally, in XP
projects the defect documentation is
not always good. Lack of defect
documentation may lead to the
occurrence of similar bugs in the
future.
Simplicity is one more advantage of
Extreme Programming projects. The
developers who prefer to use this
methodology create extremely simple
code that can be improved at any
moment.
One more disadvantage of XP is that
this methodology does not measure
code quality assurance. It may cause
defects in the initial code.
XP assists to create software faster XP is not the best option if
8/13/2019
46
PLANNING FEEDBACK LOOP
8/13/2019
47

Contenu connexe

Tendances (19)

Prototype Model
Prototype ModelPrototype Model
Prototype Model
 
Software prototyping
Software prototypingSoftware prototyping
Software prototyping
 
Prototyping
PrototypingPrototyping
Prototyping
 
Prototype model of SDLC
Prototype model of SDLCPrototype model of SDLC
Prototype model of SDLC
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Prototype model
Prototype modelPrototype model
Prototype model
 
Comparison of waterfall model and prototype model
Comparison of waterfall model and prototype modelComparison of waterfall model and prototype model
Comparison of waterfall model and prototype model
 
Prototype model 130714101556-phpapp02
Prototype model 130714101556-phpapp02Prototype model 130714101556-phpapp02
Prototype model 130714101556-phpapp02
 
Prototype model
Prototype modelPrototype model
Prototype model
 
SDLC
SDLCSDLC
SDLC
 
Chap 4 prototype
Chap 4   prototypeChap 4   prototype
Chap 4 prototype
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Types of Software life cycle
Types of Software life cycleTypes of Software life cycle
Types of Software life cycle
 
Project on software engineering types of models
Project on software engineering types of modelsProject on software engineering types of models
Project on software engineering types of models
 
Protoytyping Model
Protoytyping ModelProtoytyping Model
Protoytyping Model
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 
Prototype model and process
Prototype model  and processPrototype model  and process
Prototype model and process
 
PROTOTYPING
PROTOTYPINGPROTOTYPING
PROTOTYPING
 

Similaire à Software Engineering

Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design Jayant Dalvi
 
Plagiarism Report SDLC 1.pdf
Plagiarism Report SDLC 1.pdfPlagiarism Report SDLC 1.pdf
Plagiarism Report SDLC 1.pdfOmethSanchitha
 
Topic 1 What is Evolutionary Prototyping.pptx
Topic 1 What is Evolutionary Prototyping.pptxTopic 1 What is Evolutionary Prototyping.pptx
Topic 1 What is Evolutionary Prototyping.pptxAHMADAIMAN77
 
Software Development Taxonomy
Software Development TaxonomySoftware Development Taxonomy
Software Development TaxonomyAli Gholami
 
Process Model in Software Engineering.ppt
Process Model in Software Engineering.pptProcess Model in Software Engineering.ppt
Process Model in Software Engineering.pptAtharvaBavge
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptxSuhleemAhmd
 
software Prototyping model
software Prototyping modelsoftware Prototyping model
software Prototyping modelSankeerthanaS1
 
Manual testing testing master.pdf
Manual testing testing master.pdfManual testing testing master.pdf
Manual testing testing master.pdfsynamedia
 
ManualTestingMaterial.pdf
ManualTestingMaterial.pdfManualTestingMaterial.pdf
ManualTestingMaterial.pdfSCMCpvt
 
System analysis methodologies
System analysis methodologiesSystem analysis methodologies
System analysis methodologiesuppipisara
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Lecture 19,20 Software Development Process Models.pptx
Lecture 19,20 Software Development Process Models.pptxLecture 19,20 Software Development Process Models.pptx
Lecture 19,20 Software Development Process Models.pptxSeniorUsama
 

Similaire à Software Engineering (20)

Models.pptx
Models.pptxModels.pptx
Models.pptx
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Plagiarism Report SDLC 1.pdf
Plagiarism Report SDLC 1.pdfPlagiarism Report SDLC 1.pdf
Plagiarism Report SDLC 1.pdf
 
Topic 1 What is Evolutionary Prototyping.pptx
Topic 1 What is Evolutionary Prototyping.pptxTopic 1 What is Evolutionary Prototyping.pptx
Topic 1 What is Evolutionary Prototyping.pptx
 
Software Development Taxonomy
Software Development TaxonomySoftware Development Taxonomy
Software Development Taxonomy
 
Process Model in Software Engineering.ppt
Process Model in Software Engineering.pptProcess Model in Software Engineering.ppt
Process Model in Software Engineering.ppt
 
Sdpl1
Sdpl1Sdpl1
Sdpl1
 
SDLC Model
SDLC  ModelSDLC  Model
SDLC Model
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx
 
software Prototyping model
software Prototyping modelsoftware Prototyping model
software Prototyping model
 
Manual testing testing master.pdf
Manual testing testing master.pdfManual testing testing master.pdf
Manual testing testing master.pdf
 
ManualTestingMaterial.pdf
ManualTestingMaterial.pdfManualTestingMaterial.pdf
ManualTestingMaterial.pdf
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
The process
The processThe process
The process
 
Prototype Model
Prototype ModelPrototype Model
Prototype Model
 
System analysis methodologies
System analysis methodologiesSystem analysis methodologies
System analysis methodologies
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Lecture 19,20 Software Development Process Models.pptx
Lecture 19,20 Software Development Process Models.pptxLecture 19,20 Software Development Process Models.pptx
Lecture 19,20 Software Development Process Models.pptx
 

Dernier

Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfisabel213075
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfDrew Moseley
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical trainingGladiatorsKasper
 
Secure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech LabsSecure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech Labsamber724300
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfShreyas Pandit
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProRay Yuan Liu
 
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书rnrncn29
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 

Dernier (20)

Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdf
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdf
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training
 
Secure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech LabsSecure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech Labs
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdf
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision Pro
 
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
『澳洲文凭』买麦考瑞大学毕业证书成绩单办理澳洲Macquarie文凭学位证书
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 

Software Engineering

  • 3. • The Waterfall Model was the first Process Model to be introduced. It is very simple to understand and use. In a Waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases. Waterfall model is the earliest SDLC approach that was used for software development. • In “The Waterfall” approach, the whole process of software development is divided into separate phases. The outcome of one phase acts as the input for the next phase sequentially. This means that any phase in the development process begins only if the previous phase is complete. The waterfall model is a sequential design process in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Requirement Gathering, Analysis, Design, Code, Test, Implement, Maintain. 8/13/2019 3
  • 4. • Requirements: The first phase involves understanding what needs to design and what is its function, purpose, etc. Here, the specifications of the input and output or the final product are studied and marked. • Analysis: The system specifications are analysed to generate product models and business logic that will guide production. This is also when financial and technical resources are audited for feasibility. • Design: The requirement specifications from the first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The software code to be written in the next stage is created now. 8/13/2019 4
  • 5. • Code: The source code is developed using the models, logic and requirements designated in the prior stages. Typically, the system is designed in smaller components, or units, before being implemented together • Testing: All the units developed in the implementation phase are integrated into a system after testing of each unit. The software designed, needs to go through constant software testing to find out if there are any flaw or errors. Testing is done so that the client does not face any problem during the installation of the software. 8/13/2019 5
  • 6. ADVANTAGES DISADVANTAGES The advantage of waterfall development is that it allows for departmentalization and control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one. It is difficult to estimate time and cost for each phase of the development process. The waterfall model progresses through easily understandable and explainable phases and thus it is easy to use. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. Not a good model for complex and object- oriented projects. In this model, phases are processed and completed one at a time and they do not overlap. Waterfall model works well for smaller projects where requirements are very well understood. Not suitable for the projects where requirements are at a moderate to high risk of changing. 8/13/2019 6
  • 8. The prototyping model is applied when detailed information related to input and output requirements of the system is not available. In this model, it is assumed that all the requirements may not be known at the start of the development of the system. It is usually used when a system does not exist or in case of a large and complex system where there is no manual process to determine the requirements. This model allows the users to interact and experiment with a working model of the system known as prototype. The prototype gives the user an actual feel of the system. 8/13/2019 8
  • 9. At any stage, if the user is not satisfied with the prototype, it can be discarded and an entirely new system can be developed. Generally, prototype can be prepared by the approaches listed below. • By creating main user interfaces without any substantial coding so that users can get a feel of how the actual system will appear. • By abbreviating a version of the system that will perform limited subsets of functions. • By using system components to illustrate the functions that will be included in the system to be developed . Using the prototype, the client can get an actual feel of the system. So, this case of model is beneficial in the case when requirements cannot be frozen initially. 8/13/2019 9
  • 10. • Requirements gathering and analysis: A prototyping model begins with requirements analysis and the requirements of the system are defined in detail. The user is interviewed in order to know the requirements of the system. • Quick design: When requirements are known, a preliminary design or quick design for the system is created. It is not a detailed design and includes only the important aspects of the system, which gives an idea of the system to the user. A quick design helps in developing the prototype. • Build prototype: Information gathered from quick design is modified to form the first prototype, which represents the working model of the required system. 8/13/2019 10
  • 11. • User evaluation: Next, the proposed system is presented to the user for thorough evaluation of the prototype to recognize its strengths and weaknesses such as what is to be added or removed. Comments and suggestions are collected from the users and provided to the developer. • Refining prototype: Once the user evaluates the prototype and if he is not satisfied, the current prototype is refined according to the requirements. That is, a new prototype is developed with the additional information provided by the user. The new prototype is evaluated just like the previous prototype. This process continues until all the requirements specified by the user are met. Once the user is satisfied with the developed prototype, a final system is developed on the basis of the final prototype. • Engineer product: Once the requirements are completely met, the user accepts the final prototype. The final system is evaluated thoroughly followed by the routine maintenance on regular basis for preventing large-scale failures and minimizing downtime. 8/13/2019 11
  • 12. ADVANTAGES DISADVANTAGES Provides a working model to the user early in the process, enabling early assessment and increasing user's confidence. If the user is not satisfied by the developed prototype, then a new prototype is developed. This process goes on until a perfect prototype is developed. Thus, this model is time consuming and expensive. The developer gains experience and insight by developing a prototype there by resulting in better implementation of requirements. The developer loses focus of the real purpose of prototype and hence, may compromise with the quality of the software. For example, developers may use some inefficient algorithms or inappropriate programming languages while developing the prototype. The prototyping model serves to clarify requirements, which are not clear, hence reducing ambiguity and improving communication between the developers and users.. Prototyping can lead to false expectations. For example, a situation may be created where the user believes that the development of the system is finished when it is not. There is a great involvement of users in software development. Hence, the requirements of the users are met to the The primary goal of prototyping is speedy development thus, the system design can suffer as it is developed in series without 8/13/2019 12
  • 14. • Iterative development is a way of breaking down the software development of a large application into smaller chunks. In iterative development, feature code is designed, developed and tested in repeated cycles. With each iteration, additional features can be designed, developed and tested until there is a fully functional software application ready to be deployed to customers. • The purpose of working iteratively is to allow more flexibility for changes. When requirements and design of a major application are done in the traditional method (sometimes referred to as BDUF or Big Design Up Front), there can be unforeseen problems that don’t surface until development begins. By working iteratively, the project team goes through a cycle where they evaluate with each iteration, and determine what changes are needed to produce a satisfactory end product. 8/13/2019 14
  • 15. • Requirements phase, in which the requirements for the software are gathered and analysed. Iteration should eventually result in a requirements phase that produces a complete and final specification of requirements. • Design phase, in which a software solution to meet the requirements is designed. This may be a new design, or an extension of an earlier design. • Implementation and Test phase, when the software is coded, integrated and tested. • Review phase, in which the software is evaluated, the current requirements are reviewed, and changes and additions to requirements proposed. 8/13/2019 15
  • 16. ADVANTAGES DISADVANTAGES Potential defects are spotted and dealt with early. More resources may be required Most risks can be identified during iteration and higher risks can be dealt with as an early priority Highly skilled talent is required for risk analysis Customer feedback is based on working products rather than technical specifications It is not suitable for smaller projects. Parallel development can be planned. Project progress is highly dependent upon the risk analysis phase. 8/13/2019 16
  • 17. RAPID APPLICATION DEVELOPMENT (RAD) 8/13/2019 17
  • 18. RAD which is abbreviated as Rapid Application Development Model, is based on the concepts of both iterative and prototyping development model. The Rapid Application Development model basically take prior attention on assembling customer desires in the course of workshop and development, and there is an emphasis on early testing of the system's prototype by the client or consumer using iterative methodology, then if based on the feedback - reuse the existing prototype(s) and stays in constant assimilation as well as rapid delivery. Here, in this model, the modules and pieces, as well as various functions, are developed in parallel in the form of mini projects to save the development time. These models and functions are boxed together, delivered and further assembled to form a working prototype. 8/13/2019 18
  • 19. A series of development cycles are carried out as prototype 1, 2 and so on which are low-level rejections with further feedback so that the actual model can be placed into production, With the incorporation of this model, there was a significant advancement in the software development methodologies and environments which follow quick generating of product as well as change of screens as well as other features from user's edge. Because of its approach, there leaves a minute or no scope for imagination, and for this reason, a considerable amount of errors get caught and reduced or solved at the very early stage. 8/13/2019 19
  • 20. • Business Modelling Phase: The processed data flow is recognized from varieties of business perspective. • Data Modelling Phase: Information that is taken from business modelling is then implemented for defining elements which are required for the business. • Process Modelling Phase: Data modelling achieved after assimilating details from business information flow needs to be appropriately processed to come up with a prototype. • Application Generation Phase: Various autonomous tools are employed for converting process models to code which is then finally converted to the actual system. • Testing and Turnover Phase: All interfaces and modules are tested. 8/13/2019 20
  • 21. ADVANTAGES DISADVANTAGES Reusability of components makes or speeds up the development and reduces the time that it needs for developing a product. A proper time-frame should have to be maintained for both end customer as well as developers for completing the system. The modularized way of crafting each function within the system makes the development task easier RAD model-based software development fails because of a lack of commitment and dedication. Large projects can be done easily through the RAD model. A slight complexity in the modularizing in RAD model can lead to failure of the entire project. Each phase in RAD delivers highest priority functionality to client. Reduced features due to time boxing, where features are pushed to a later version to finish a release in short period. • 8/13/2019 21
  • 23. • Incremental development is based on the idea of developing an initial implementation, exposing this to user feedback, and evolving it through several versions until an acceptable system has been developed. • The activities of a process are not separated but interleaved with feedback involved across those activities. • Each system increment reflects a piece of the functionality that is needed by the customer. Generally, the early increments of the system should include the most important or most urgently required functionality. • This means that the customer can evaluate the system at early stage in the development to see if it delivers what’s required. If not, then only the current increment has to be changed and, possibly, new functionality defined for later increments. 8/13/2019 23
  • 24. ADVANTAGES DISADVANTAGES It is generally easier to test and debug than other methods of software development because relatively smaller changes are made during each iteration. This allows for more targeted and rigorous testing of each element within the overall product. As additional functionality is added to the product, problems may arise related to system architecture which was not evident in earlier prototypes. After each iteration, regression testing should be conducted. During this testing, faulty elements of the software can be quickly identified because few changes are made within any single iteration. Each phase of an iteration is rigid and do not overlap each other With each release, a new feature is added to the product. Resulting cost may exceed the cost of the organization. Customer can respond to feature Requires good analysis. 8/13/2019 24
  • 26. Spiral model is one of the most important Software Development Life Cycle models, which provides support for Risk Handling. In its diagrammatic representation, it looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a Phase of the software development process. The exact number of phases needed to develop the product can be varied by the project manager depending upon the project risks. As the project manager dynamically determines the number of phases, so the project manager has an important role to develop a product using spiral model. 8/13/2019 26
  • 28. ADVANTAGES • Spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of the project. • Project monitoring is very easy and effective. Each phase, as well as each loop, requires a review from concerned people. This makes the model more transparent. • Risk management is one of the in-built features of the model, which makes it extra attractive compared to other models. • Changes can be introduced later in the life cycle as well. And coping with these changes isn’t a very big headache for the project manager. • Project estimates in terms of schedule, cost etc become more and more realistic as the project moves forward and loops in spiral get completed. • It is suitable for high risk projects, where business needs may be unstable. • A highly customized product can be developed using this. 8/13/2019 28
  • 29. DISADVANTAGES • Cost involved in this model is usually high. • It is a complicated approach especially for projects with a clear SRS. • Skills required, to evaluate and review project from time to time, need expertise. • Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough. • Due to various customizations allowed from the client, using the same prototype in other projects, in future, is difficult. • It is not suitable for low risk projects. • Meeting budgetary and scheduling requirements is tough if this development process is followed. • Amount of documentation required in intermediate stages makes management of project very complex affair. 8/13/2019 29
  • 31. • Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a release. • Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer. 8/13/2019 31
  • 32. Every iteration involves cross functional teams working simultaneously on various areas like − • Planning • Requirements Analysis • Design • Coding • Unit Testing and • Acceptance Testing. 8/13/2019 32
  • 33. • Following are the Agile Manifesto principles − • Individuals and interactions − In Agile development, self-organization and motivation are important, as are interactions like co-location and pair programming. • Working software − Demo working software is considered the best means of communication with the customers to understand their requirements, instead of just depending on documentation. • Customer collaboration − As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements. • Responding to change − Agile Development is focused on quick responses to change and continuous development. 8/13/2019 33
  • 34. ADVANTAGES DISADVANTAGES It is a very realistic approach to software development. Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines. Promotes teamwork and cross training. Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction. Enables concurrent development and delivery within an overall planned context. There is a very high individual dependency, since there is minimum documentation generated. Gives flexibility to developers. More risk of sustainability, maintainability and extensibility. 8/13/2019 34
  • 36. • V Model is an enhanced version of the classic waterfall model whereby each level of the development life-cycle is verified before moving on to the next level. With this model, software testing explicitly starts at the very beginning, i.e. as soon as the requirements are written. • Here, by testing we mean verification by means of reviews and inspections, i.e. static testing. This helps in identifying errors very early in the life-cycle and minimizes potential future defects appearing in the code later in the life-cycle. • In the V Model the test activities are spelled out to the same level of detail as the design activities. Software is designed on the left-hand (downhill) part of the model, and built and tested on the right-hand (uphill) part of the model. Note that different organizations may have different names for the development and testing phases. • The correspondences between the left and right hand activities are shown by the lines across the middle of the V, showing the test levels from component testing at the bottom, integration and system testing, and acceptance testing at the top level. 8/13/2019 36
  • 37. Advantages: • in V Model, Each phase has specific deliverables. • Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle. • Time concern in comparison with the waterfall model is low or even we can say 50% less. • Works well for small projects where requirements are easily understood. • Utility of the resources is high. 8/13/2019 37
  • 38. Disadvantages: • Very rigid, like the waterfall model. • Little flexibility and adjusting scope is difficult and expensive. • Software is developed during the implementation phase, so no early prototypes of the software are produced. • V Model doesn’t provide a clear path for problems found during testing phases. 8/13/2019 38
  • 40. • Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development. • Similar to other Agile Methods of development, Extreme Programming aims to provide iterative and frequent small releases throughout the project, allowing both team members and customers to examine and review the project’s progress throughout the entire SDLC. 8/13/2019 40
  • 41. Planning • User stories are written. • Release planning creates the release schedule. • Make frequent small releases. • The project is divided into iterations. • Iteration planning starts each iteration 8/13/2019 41
  • 42. Managing • Give the team a dedicated open work space. • Set a sustainable pace. • A stand up meeting starts each day. • The project velocity is measured • Move people around • Fix Extreme Programming when it breaks. 8/13/2019 42
  • 43. Designing • Simplicity • Choose a system metaphor • Use CRC cards for design sessions • Create spike solutions to reduce risk • No functionality is added early • Refactor whenever and wherever possible 8/13/2019 43
  • 44. Coding • The customer is always available • Code must be written to agreed standards • Code the unit test first • All production code is pair programmed • Only one pair integrates code at a time • Integrate often • Set up a dedicated integration computer • Use collective ownership 8/13/2019 44
  • 45. Testing • All code must have unit tests • All code must pass all unit tests before it can be released • When a bug is found tests are created • Acceptance tests are run often and the score is published 8/13/2019 45
  • 46. ADVANTAGES DISADVANTAGES The main advantage of Extreme Programming is that this methodology allows software development companies to save costs and time required for project realization. Some specialists say that Extreme Programming is focused on the code rather than on design. That may be a problem because good design is extremely important for software applications. It helps sell them in the software market. Additionally, in XP projects the defect documentation is not always good. Lack of defect documentation may lead to the occurrence of similar bugs in the future. Simplicity is one more advantage of Extreme Programming projects. The developers who prefer to use this methodology create extremely simple code that can be improved at any moment. One more disadvantage of XP is that this methodology does not measure code quality assurance. It may cause defects in the initial code. XP assists to create software faster XP is not the best option if 8/13/2019 46