0% found this document useful (0 votes)
3 views105 pages

Software Engineering Unit 1 - RGPV University

The document outlines the syllabus and key concepts of Software Engineering, including software products, processes, and methodologies. It covers various units such as software design, testing, maintenance, and the Software Development Life Cycle (SDLC). Additionally, it discusses the characteristics of software, types of software, and the software crisis, along with potential solutions and principles of software engineering.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views105 pages

Software Engineering Unit 1 - RGPV University

The document outlines the syllabus and key concepts of Software Engineering, including software products, processes, and methodologies. It covers various units such as software design, testing, maintenance, and the Software Development Life Cycle (SDLC). Additionally, it discusses the characteristics of software, types of software, and the software crisis, along with potential solutions and principles of software engineering.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

DEPARTMENT OF CSE (AI & ML)

Software Engineering
AL 403

By Prof. Jaya Dubey


Unit I: The Software Product and Software Process

Unit II: Requirement Elicitation, Analysis, and Specification

Syllabus Unit III: Software Design

Unit IV: Software Analysis and Testing

Unit V: Software Maintenance & Software Project


Measurement

By Prof. Jaya Dubey


Unit 1

● Unit I: The Software Product and Software Process Software Product and
Process Characteristics,
● Software Process Models: Linear Sequential Model, Prototyping Model,
RAD Model, Evolutionary Process Models like Incremental Model, Spiral
Model, Component Assembly Model, RUP and Agile processes.
● Software Process customization and improvement, CMM, Product and
Process Metrics

By Prof. Jaya Dubey


3. R S. Pressman
1. Pankaj Jalote ,”An 2. Rajib Mall,
,”Software Engineering: A
Integrated Approach to “Fundamentals of Software
Practitioner's Approach”,
Software Engineering”, Engineering” Second
Sixth
Narosa Pub, 2005 Edition, PHI Learning
edition2006,McGraw-Hill.

5. Richard
4. Sommerville,”Software
[Link],”Software
Enginerring”,Pearson
Enginerring & Project
Education.
Managements”, WileyIndia

Recommended Books
By Prof. Jaya Dubey
What is a
Software?
This Photo by Unknown author is licensed under CC BY-NC.

By Prof. Jaya Dubey


What is a In a computer system, the software is basically a
set of instructions or commands that tell a
Software? computer what to do.

By Prof. Jaya Dubey


In other words, the software is a
computer program that provides a set of
instructions to execute a user’s commands
What is a and tell the computer what to do.
Software? For example
like MS-Word, MS-Excel, PowerPoint, etc.

By Prof. Jaya Dubey


Types of
Software

By Prof. Jaya Dubey


System Software
• Operating System
• Language Processor
Types of • Device Driver
Software
Application Software
• General Purpose Software
• Customize Software
• Utility Software

By Prof. Jaya Dubey


System Software

By Prof. Jaya Dubey


●System software is software that directly operates
the computer hardware and provides the basic
functionality to the users as well as to the other
software to operate smoothly. System
●Or in other words, system software basically Software
controls a computer’s internal functioning and
also controls hardware devices such as monitors,
printers, and storage devices, etc.

By Prof. Jaya Dubey


Application Software

By Prof. Jaya Dubey


Application software is designed to
perform a specific task for end-users. It is a
product or a program that is designed only
to fulfill end-users’ requirements.
Application
Software
It includes word processors, spreadsheets,
database management, inventory, payroll
programs, etc.

By Prof. Jaya Dubey


The characteristics of the software include:
• It is intangible, meaning it cannot be seen or touched.
• It is non-perishable, meaning it does not degrade over time.
• It is easy to replicate, meaning it can be copied and
distributed easily.
• It can be complex, meaning it can have many interrelated
Basic parts and features.
• It can be difficult to understand and modify, especially for
Characteristics large and complex systems.
of a software • It can be affected by changing requirements, meaning it
may need to be updated or modified as the needs of users
change.
• It can be impacted by bugs and other issues, meaning it may
need to be tested and debugged to ensure it works as
intended.

By Prof. Jaya Dubey


Software Characteristics
By Prof. Jaya Dubey
●It refers to the degree of performance of the
software against its intended purpose.
●Functionality refers to the set of features and
Functionality capabilities that a software program or system
provides to its users. It is one of the most
important characteristics of software, as it
determines the usefulness of the software for
the intended purpose.

By Prof. Jaya Dubey


Examples of functionality in software include:
1. Data storage and retrieval
2. Data processing and manipulation
3. User interface and navigation
4. Communication and networking
Functionality
5. Security and access control
6. Reporting and visualization
7. Automation and scripting
The more functionality a software has, the more powerful
and versatile it is, but also the more complex it can be.

By Prof. Jaya Dubey


Reliability is a Reliability is an important
characteristic of software aspect of software quality,
that refers to its ability to as it helps ensure that the
perform its intended software will work
functions correctly and correctly and not fail
consistently over time. unexpectedly.

Reliability

By Prof. Jaya Dubey


Examples of factors that can affect the reliability
of software include:
● Bugs and errors in the code
● Lack of testing and validation
Reliability ● Poorly designed algorithms and data structures
● Inadequate error handling and recovery
● Incompatibilities with other software or hardware

By Prof. Jaya Dubey


It refers to the ability of the software to use system
resources in the most effective and efficient manner. The
software should make effective use of storage space and
executive command as per desired timing requirements.
Examples of factors that can affect the efficiency of the
software include:
Efficiency ● Poorly designed algorithms and data structures
● Inefficient use of memory and processing power
● High network latency or bandwidth usage
● Unnecessary processing or computation
● Unoptimized code

By Prof. Jaya Dubey


It refers to the extent to which the software can be used
with ease.
The amount of effort or time required to learn how to use
the software. Required functions are:
Usability

By Prof. Jaya Dubey


● Maintainability-It refers to the ease with which
Maintainabilit modifications can be made in a software system to
extend its functionality, improve its performance, or
y correct errors.
& ● Portability - A set of attributes that bears on the ability
Portability of software to be transferred from one environment to
another, without minimum changes.

By Prof. Jaya Dubey


What is a Software Engineering?
● 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.

By Prof. Jaya Dubey


● Software engineering includes a variety of techniques, tools, and methodologies,
including requirements analysis, design, testing, and maintenance.
● It is a rapidly evolving field, and new tools and technologies are constantly being
developed to improve the software development process.
● The main goal of Software Engineering is to develop software applications for
improving quality, budget, and time efficiency.
● Software Engineering ensures that the software that has to be built should be
consistent, correct, also on budget, on time, and within the required requirements.

Software Engineering
By Prof. Jaya Dubey
[Link]
[Link]
[Link]
Principles of [Link]
SE [Link]
[Link] Patterns
[Link] methodologies
[Link] Integration & Deployment

By Prof. Jaya Dubey


What is a Software
Product?

By Prof. Jaya Dubey


Software Product

● Software Products are nothing but software systems delivered to the


customer with the documentation that describes how to install and use
the system.
● In certain cases, software products may be part of system products
where hardware, as well as software, is delivered to a customer.
● Software products are produced with the help of the software process.
The software process is a way in which we produce software.

By Prof. Jaya Dubey


Types of Software Product

Software products fall into two broad categories:


[Link] products: Generic products are stand-alone systems that are developed
by a production unit and sold on the open market to any customer who can buy
them.
[Link] Products: Customized products are the systems that are
commissioned by a particular customer. Some contractor develops the software
for that customer.

By Prof. Jaya Dubey


1. Efficiency: The software should not make wasteful use of system resources such as memory and processor
cycles.
2. Maintainability: It should be possible to evolve the software to meet the changing requirements of customers.
3. Dependability: It is the flexibility of the software that ought to not cause any physical or economic injury in the
event of system failure. It includes a range of characteristics such as reliability, security, and safety.
4. In time: Software should be developed well in time.
5. Within Budget: The software development costs should not overrun, and it should be within the budgetary limit.
6. Functionality: The software system should exhibit the proper functionality, i.e., it should perform all the
functions it is supposed to perform.
7. Adaptability: The software system should have the ability to get adapted to a reasonable extent with the
changing requirements.

Characteristics of Software Product


By Prof. Jaya Dubey
Software Crisis

By Prof. Jaya Dubey


Software Crisis

● Software Crisis is a term used in computer science for the difficulty of


writing useful and efficient computer programs in the required time.
● The software crisis was due to using the same workforce, same methods, and
same tools even though rapidly increasing software demand, the complexity of
software, and software challenges.
● With the increase in software complexity, many software problems arise because
existing methods were insufficient.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
•Poor project management.
Factors •Lack of adequate training in software
contributing engineering.
software crisis •Less skilled project members.
•Low productivity improvements.

By Prof. Jaya Dubey


Solution of Software Crisis

There is no single solution to the crisis. One possible solution to a software crisis
is Software Engineering because software engineering is a systematic, disciplined,
and quantifiable approach. For preventing software crises, there are some
guidelines:
1. Reduction in software over budget.
2. The quality of the software must be high.
3. Less time is needed for a software project.
4. Experienced and skilled people working on the software project.
5. Software must be delivered.
6. Software must meet user requirements.
By Prof. Jaya Dubey
Software Process Methods

● Software processes in software engineering refer to the methods and techniques used to
develop and maintain software. Some examples of software processes include:
● Waterfall: a linear, sequential approach to software development, with distinct phases such
as requirements gathering, design, implementation, testing, and maintenance.
● Agile: a flexible, iterative approach to software development, with an emphasis on rapid
prototyping and continuous delivery.
● Scrum: a popular Agile methodology that emphasizes teamwork, iterative development,
and a flexible, adaptive approach to planning and management.
● DevOps: a set of practices that aims to improve collaboration and communication between
development and operations teams, with an emphasis on automating the software delivery
process

By Prof. Jaya Dubey


Software Development
Life Cycle (SDLC)

By Prof. Jaya Dubey


SDLC
●Software development life cycle
(SDLC) is a structured process
that is used to design, develop,
and test good-quality software.
●SDLC, or software development
life cycle, is a methodology that
defines the entire procedure of
software development
step-by-step.
This Photo by Unknown author is licensed under CC BY-SA.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
●The goal of the SDLC life cycle model is to
deliver high-quality, maintainable software that
meets the user’s requirements.
●SDLC in software engineering models outlines
the plan for each stage so that each stage of the SDLC
software development model can perform its
task efficiently to deliver the software at a low
cost within a given time frame that meets users’
requirements.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
Follow the
video to
understand ● [Link]

SDLC in
animated way

By Prof. Jaya Dubey


Stages of SDLC

●SDLC specifies the task(s) to be performed at


various stages by a software engineer or developer.
●It ensures that the end product is able to meet the
customer’s expectations and fits within the overall
budget.
●Hence, it’s vital for a software developer to have
prior knowledge of this software development
process.
By Prof. Jaya Dubey
Stage-1 Planning & Requirement Analysis

●Planning is a crucial step in everything, just as in software


development.
●In this same stage, requirement analysis is also performed by the
developers of the organization. This is attained from customer
inputs, and sales department/market surveys.
●The information from this analysis forms the building blocks of a
basic project.
●The quality of the project is a result of planning. Thus, in this
stage, the basic project is designed with all the available
information.

By Prof. Jaya Dubey


Stage-2 Defining Requirements

●In this stage, all the requirements for the target software are
specified.
●These requirements get approval from customers, market
analysts, and stakeholders.
●This is fulfilled by utilizing SRS (Software Requirement
Specification).
●This is a sort of document that specifies all those things that need
to be defined and created during the entire project cycle.

By Prof. Jaya Dubey


Stage-3 Designing
Architecture

●SRS is a reference for software designers to come up with


the best architecture for the software.
●Hence, with the requirements defined in SRS, multiple
designs for the product architecture are present in the
Design Document Specification (DDS).
●This DDS is assessed by market analysts and stakeholders.
After evaluating all the possible factors, the most practical
and logical design is chosen for development.
By Prof. Jaya Dubey
Stage-4 Developing Product

●At this stage, the fundamental development of the product starts.


●For this, developers use a specific programming code as per the
design in the DDS.
●Hence, it is important for the coders to follow the protocols set
by the association. Conventional programming tools like
compilers, interpreters, debuggers, etc. are also put into use at
this stage.
●Some popular languages like C/C++, Python, Java, etc. are put
into use as per the software regulations.

By Prof. Jaya Dubey


Stage 5 Product Testing & Integration

●After the development of the product, testing of the


software is necessary to ensure its smooth execution.
●Although, minimal testing is conducted at every stage of
SDLC. Therefore, at this stage, all the probable flaws are
tracked, fixed, and retested. This ensures that the product
confronts the quality requirements of SRS.

By Prof. Jaya Dubey


● Documentation, Training, and Support: Software
documentation is an essential part of the software
development life cycle.
● A well-written document acts as a tool and means to
Stage 5 information repository necessary to know about software
Product processes, functions, and maintenance.
Testing & ● Documentation also provides information about how to
use the product.
Integration
● Training in an attempt to improve the current or future
employee performance by increasing an employee’s
ability to work through learning, usually by changing his
attitude and developing his skills and understanding.

By Prof. Jaya Dubey


Stage 6-Deployment & Maintenance

● After detailed testing, the conclusive product is released in phases as


per the organization’s strategy. Then it is tested in a real industrial
environment.
● It is important to ensure its smooth performance. If it performs well,
the organization sends out the product as a whole.
● After retrieving beneficial feedback, the company releases it as it is or
with auxiliary improvements to make it further helpful for the
customers. However, this alone is not enough.
● Therefore, along with the deployment, the product’s supervision.

By Prof. Jaya Dubey


Water Fall
Model

By Prof. Jaya Dubey


Waterfall Model
● The Waterfall Model was the first Process
Model to be introduced.
● It is also referred to as a linear-sequential
life cycle model.

By Prof. Jaya Dubey


Waterfall approach was first SDLC Model
to be used widely in Software Engineering
to ensure success of the project.

Waterfall In "The Waterfall" approach, the whole


Model process of software development is
divided into separate phases.

In this Waterfall model, typically, the


outcome of one phase acts as the input for
the next phase sequentially.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
● Requirements are very well documented, clear and
fixed.
● Product definition is stable.
Applications ● Technology is understood and is not dynamic.
of Waterfall ● There are no ambiguous requirements.
● Ample resources with required expertise are available
Model to support the product.
● The project is short.

By Prof. Jaya Dubey


● Simple and easy to understand and use
● Easy to manage due to the rigidity of the model. Each
phase has specific deliverables and a review process.
● Phases are processed and completed one at a time.
● Works well for smaller projects where requirements
are very well understood.
Advantages ● Clearly defined stages.
● Well understood milestones.
● Easy to arrange tasks.
● Process and results are well documented.

By Prof. Jaya Dubey


● No working software is produced until late during the life
cycle.
● High amounts of risk and uncertainty.
● Not a good model for complex and object-oriented
projects.
● Poor model for long and ongoing projects.
● Not suitable for the projects where requirements are at a
moderate to high risk of changing. So, risk and
Disadvantages uncertainty is high with this process model.
● It is difficult to measure progress within stages.
● Cannot accommodate changing requirements.
● Adjusting scope during the life cycle can end a project.
● Integration is done as a "big-bang. at the very end, which
doesn't allow identifying any technological or business
bottleneck or challenges early.

By Prof. Jaya Dubey


Iterative Waterfall Model

● In Iterative waterfall model, the feedback paths are provided


from every phase to its preceding phase.
● The feedback paths allow for correction of the errors committed
during a phase, as and when these are detected in a later phase.

For example, if during a testing a design error is identified, then the


feedback path allows the design to be reworked and the changes to be
reflected in the design documents. However, observe that there is no
feedback path to the feasibility stage. This means that the feasibility
study errors cannot be corrected.

By Prof. Jaya Dubey


ITERATIVE WATERFALL MODEL

By Prof. Jaya Dubey


Phases

Planning: In this phase, the project team determines the goals and
objectives for the current iteration, and develops a plan for achieving
them.
Analysis: In this phase, the project team gathers and analyses
requirements for the current iteration.
Design: In this phase, the project team designs the solution for the
current iteration.
Implementation: In this phase, the project team builds and tests the
solution for the current iteration.

By Prof. Jaya Dubey


Phases

Testing: In this phase, the project team tests the solution to


ensure that it meets the requirements and functions as
intended.
Deployment: In this phase, the solution is deployed to the
production environment.
Maintenance: In this phase, the project team provides
ongoing support and maintenance for the solution.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
1- Inflexibility
2- Lack of Customer involvement
Disadvantages 3- Risk of Failure
4- Poor Communication
5- High Costs

By Prof. Jaya Dubey


Prototype Model

● Prototyping Model is a software development model in which


prototype is built, tested, and reworked until an acceptable prototype
is achieved.
● It also creates base to produce the final system or software.
● It works best in scenarios where the project’s requirements are not
known in detail.
● It is an iterative, trial and error method which takes place between
developer and client.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
●Requirement Gathering and Analyst
●Quick Decision
●Build a Prototype
Steps ●Assessment or User Evaluation
●Prototype Refinement
●Engineer Product

By Prof. Jaya Dubey


●Reduce the risk of incorrect user requirement
●Good where requirement are
changing/uncommitted
●Regular visible process aids management
Advantages ●Support early product marketing
●Reduce Maintenance cost.
●Errors can be detected much earlier as the
system is made side by side.

By Prof. Jaya Dubey


● An unstable/badly implemented prototype often becomes the final
product.
● Require extensive customer collaboration
● Costs customer money
● Needs committed customer
● Difficult to finish if customer withdraw
● May be too customer specific, no broad market
Disadvantages ● Difficult to know how long the project will last.
● Easy to fall back into the code and fix without proper requirement
analysis, design, customer evaluation, and feedback.
● Prototyping tools are expensive.
● Special tools & techniques are required to build a prototype.
● It is a time-consuming process

By Prof. Jaya Dubey


RAD
(Rapid Application
Development )
Model
-

By Prof. Jaya Dubey


The RAD model is a type of incremental
process model in which there is an extremely
short development cycle.
RAD (Rapid
Application When the requirements are fully understood and
the component-based construction approach is
Development ) adopted then the RAD model is used.
Model Various phases in RAD are Requirements
Gathering, Analysis and Planning, Design, Build
or Construction, and finally Deployment.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
● The critical feature of this model is the use of powerful
development tools and techniques.
● A software project can be implemented using this model
if the project can be broken down into small modules
wherein each module can be assigned independently to
separate teams.

RAD Model ● These modules can finally be combined to form the final
product. Development of each module involves the
various basic steps as in the waterfall model i.e.
analyzing, designing, coding, and then testing, etc. as
shown in the figure.
● Another striking feature of this model is a short period
i.e. the time frame for delivery(time-box) is generally
60-90 days.

By Prof. Jaya Dubey


● Requirements Planning – It involves the use of various techniques used in
requirements elicitation like brainstorming, task analysis, form analysis,
user scenarios, FAST (Facilitated Application Development Technique),
etc. It also consists of the entire structured plan describing the critical data,
methods to obtain it, and then processing it to form a final refined model.
● User Description – This phase consists of taking user feedback and
building the prototype using developer tools. In other words, it includes
re-examination and validation of the data collected in the first phase. The
Phases dataset attributes are also identified and elucidated in this phase.
● Construction – In this phase, refinement of the prototype and delivery
takes place. It includes the actual use of powerful automated tools to
transform processes and data models into the final working product. All the
required modifications and enhancements are too done in this phase.
● Cutover – All the interfaces between the independent modules developed
by separate teams have to be tested properly. The use of powerfully
automated tools and subparts makes testing easier. This is followed by
acceptance testing by the user.

By Prof. Jaya Dubey


● The use of reusable components helps to reduce the
cycle time of the project.
● Feedback from the customer is available at the initial
stages.
● The use of powerful development tools results in better
quality products in comparatively shorter time spans.
Advantages ● The progress and development of the project can be
measured through the various stages.
● It is easier to accommodate changing requirements due
to the short iteration time spans.
● Productivity may be quickly boosted with a lower
number of employees.

By Prof. Jaya Dubey


● The use of powerful and efficient tools requires highly
skilled professionals.
● The absence of reusable components can lead to the
failure of the project.
● The team leader must work closely with the
developers and customers to close the project on time.
● The systems which cannot be modularized suitably
Disadvantages cannot use this model.
● Customer involvement is required throughout the life
cycle.
● It is not meant for small-scale projects as in such cases,
the cost of using automated tools and techniques may
exceed the entire budget of the project.
● Not every application can be used with RAD.
By Prof. Jaya Dubey
● This model should be used for a system with known
requirements and requiring a short development time.
● It is also suitable for projects where requirements can be
modularized and reusable components are also available
for development.
● The model can also be used when already existing
system components can be used in developing a new
Applications system with minimum changes.
● This model can only be used if the teams consist of
domain experts. This is because relevant knowledge and
the ability to use powerful techniques are a necessity.
● The model should be chosen when the budget permits
the use of automated tools and techniques required.

By Prof. Jaya Dubey


Evolutionary Model
-

By Prof. Jaya Dubey


●The evolutionary model is a combination of
the Iterative and Incremental models of the
Evolutionary software development life cycle.
Model ● The Evolutionary Model in Software Engineering is a
development approach where the software is built
step-by-step (incrementally) and refined through
repeated iterations based on user feedback.

By Prof. Jaya Dubey


Instead of developing the entire system at once, the software evolves
over time:

Build a basic version → Get feedback → Improve → Repeat

Basic Idea

By Prof. Jaya Dubey


1. Initial Requirements (Basic understanding)
•Only major requirements are identified (not everything)
2. Develop First Version (Prototype or Initial Product)
•A simple working model is created
How it 3. User Evaluation
•Users test the system and give feedback
Works? 4. Refinement / Enhancement
•Improvements are made based on feedback
5. Repeat Cycle
•The system evolves with each iteration until complete

By Prof. Jaya Dubey


● Feedback is provided by the users on the product for the planning stage of
the next cycle and the development team responds, often by changing the
product, plan, or process.
● Therefore, the software product evolves with time.
● All the models have the disadvantage that the duration of time from the
start of the project to the delivery time of a solution is very high.
● The evolutionary model solves this problem with a different approach.
What is ● The evolutionary model suggests breaking down work into smaller chunks,
prioritizing them, and then delivering those chunks to the customer one by
Evolutionary one.

Model? ● The number of chunks is huge and is the number of deliveries made to the
customer.
● The main advantage is that the customer’s confidence increases as he
constantly gets quantifiable goods or services from the beginning of the
project to verify and validate his requirements.
● The model allows for changing requirements as well as all work is broken
down into maintainable work chunks.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
1. Prototyping Model
Build quick prototype → refine based on feedback
Types of
2. Spiral Model
Evolutionary Combines iteration + risk analysis
Models
3. Incremental Model
System developed in parts (increments)

By Prof. Jaya Dubey


●It is used in large projects where you can easily
find modules for incremental implementation.
●Evolutionary model is commonly used when the
customer wants to start using the core features
instead of waiting for the full software.
Application ●Evolutionary model is also used in object
oriented software development because the
system can be easily portioned into units in
terms of objects.

By Prof. Jaya Dubey


● Customer needs are clear and been explained in deep to
the developer team.
● There might be small changes required in separate parts
but not a major change.
Conditions for
● As it requires time, so there must be some time left for
implementing the market constraints.
this model ● Risk is high and continuous targets to achieve and report
to customer repeatedly.
● It is used when working on a technology is new and
requires time to learn.

By Prof. Jaya Dubey


● Adaptability to Changing Requirements: Evolutionary models
work effectively in projects when the requirements are ambiguous
or change often. They support adjustments and flexibility along the
course of development.
● Early and Gradual Distribution: Functional components or
prototypes can be delivered early thanks to incremental
development. Faster user satisfaction and feedback may result from
this.
● User Commentary and Involvement: Evolutionary models place a
Advantages strong emphasis on ongoing user input and participation. This
guarantees that the software offered closely matches the needs and
expectations of the user.
● Improved Handling of Difficult Projects: Big, complex tasks can
be effectively managed with the help of evolutionary models. The
development process is made simpler by segmenting the project into
smaller, easier-to-manage portions.

By Prof. Jaya Dubey


● Communication Difficulties: Evolutionary models require constant
cooperation and communication. The strategy may be less effective
if there are gaps in communication or if team members are spread
out geographically.
● Dependence on an Expert Group: A knowledgeable and
experienced group that can quickly adjust to changes is needed for
evolutionary models. Teams lacking experience may find it difficult
to handle these model’s dynamic nature.
● Increasing Management Complexity: Complexity can be
Disadvantages introduced by organizing and managing several increments or
iterations, particularly in large projects. In order to guarantee
integration and synchronization, good project management is
needed.
● Greater Initial Expenditure: As evolutionary models necessitate
continual testing, user feedback and prototyping, they may come
with a greater starting cost. This may be a problem for projects that
have limited funding.

By Prof. Jaya Dubey


●The Spiral Model is a Software
Development Life Cycle (SDLC) model
that provides a systematic and iterative
approach to software development.
●In its diagrammatic representation, looks
like a spiral with many loops.
Spiral Model ●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.

By Prof. Jaya Dubey


● 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, the project manager has an important
Spiral Model role in developing a product using the spiral model.
● It is based on the idea of a spiral, with each iteration of
the spiral representing a complete software development
cycle, from requirements gathering and analysis to
design, implementation, testing, and maintenance.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
● Each phase of the Spiral Model is divided into four quadrants as shown in
the above figure. The functions of these four quadrants are discussed
below:
1. Objectives determination and identify alternative
solutions: Requirements are gathered from the customers and the objectives
are identified, elaborated, and analyzed at the start of every phase. Then
alternative solutions possible for the phase are proposed in this quadrant.
[Link] and resolve Risks: During the second quadrant, all the possible
Phases in solutions are evaluated to select the best possible solution. Then the risks
associated with that solution are identified and the risks are resolved using the
Spiral Model best possible strategy. At the end of this quadrant, the Prototype is built for
the best possible solution.
[Link] the next version of the Product: During the third quadrant, the
identified features are developed and verified through testing. At the end of
the third quadrant, the next version of the software is available.
[Link] and plan for the next Phase: In the fourth quadrant, the
Customers evaluate the so-far developed version of the software. In the end,
planning for the next phase is started.

By Prof. Jaya Dubey


●Spiral Example: Fund Transfer Feature
●Planning: Add money transfer option
●Risk Analysis: High risk (fraud, transaction
errors)
Spiral ●Development: Implement secure transaction
Example module
●Testing: Test transaction accuracy & security

Output: Safe money transfer

By Prof. Jaya Dubey


● The spiral model supports coping with risks by providing the scope
to build a prototype at every phase of software development.
● The Prototyping Model also supports risk handling, but the risks
must be identified completely before the start of the development
work of the project.
Risk Handling ● But in real life, project risk may occur after the development work
starts, in that case, we cannot use the Prototyping Model.
in Spiral
● In each phase of the Spiral Model, the features of the product dated
Model and analyzed, and the risks at that point in time are identified and
are resolved through prototyping.
● Thus, this model is much more flexible compared to other SDLC
models.

By Prof. Jaya Dubey


● The Spiral model is called a Meta-Model because it
subsumes all the other SDLC models. For example, a
single loop spiral actually represents the Iterative
Waterfall Model.
● The spiral model incorporates the stepwise approach of
the Classical Waterfall Model.
Why Spiral
● The spiral model uses the approach of the Prototyping
model is called Model by building a prototype at the start of each phase
a Meta Model as a risk-handling technique.
● Also, the spiral model can be considered as supporting
the Evolutionary model – the iterations along the spiral
can be considered as evolutionary levels through which
the complete system is built.

By Prof. Jaya Dubey


● Risk Handling: The projects with many unknown risks that occur as the development proceeds,
in that case, Spiral Model is the best development model to follow due to the risk analysis and
risk handling at every phase.
● Good for large projects: It is recommended to use the Spiral Model in large and complex
projects.
● Flexibility in Requirements: Change requests in the Requirements at a later phase can be
incorporated accurately by using this model.
● Customer Satisfaction: Customers can see the development of the product at the early phase of
the software development and thus, they habituated with the system by using it before completion
of the total product.

Advantages ● Iterative and Incremental Approach: The Spiral Model provides an iterative and incremental
approach to software development, allowing for flexibility and adaptability in response to
changing requirements or unexpected events.
● Emphasis on Risk Management: The Spiral Model places a strong emphasis on risk
management, which helps to minimize the impact of uncertainty and risk on the software
development process.
● Improved Communication: The Spiral Model provides for regular evaluations and reviews,
which can improve communication between the customer and the development team.
● Improved Quality: The Spiral Model allows for multiple iterations of the software development
process, which can result in improved software quality and reliability.

By Prof. Jaya Dubey


● Complex: The Spiral Model is much more complex than other SDLC
models.
● Expensive: Spiral Model is not suitable for small projects as it is
expensive.
● Too much dependability on Risk Analysis: The successful completion of
the project is very much dependent on Risk Analysis. Without very highly
experienced experts, it is going to be a failure to develop a project using
this model.
Disadvantages ● Difficulty in time management: As the number of phases is unknown at
the start of the project, time estimation is very difficult.
● Complexity: The Spiral Model can be complex, as it involves multiple
iterations of the software development process.
● Time-Consuming: The Spiral Model can be time-consuming, as it requires
multiple evaluations and reviews.
● Resource Intensive: The Spiral Model can be resource-intensive, as it
requires a significant investment in planning, risk analysis, and evaluations.

By Prof. Jaya Dubey


● Incremental Model is a process of software
development where requirements divided into multiple
standalone modules of the software development cycle.
● In this model, each module goes through the
Incremental requirements, design, implementation and testing
phases.
Model
● Every subsequent release of the module adds function to
the previous release.
● The process continues until the complete system
achieved.

By Prof. Jaya Dubey


A, B, and C are modules of Software Products that are incrementally developed and
delivered.

By Prof. Jaya Dubey


By Prof. Jaya Dubey
● 1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise identifies the
requirements. And the system functional requirements are understood by the requirement analysis team. To
develop the software under the incremental model, this phase performs a crucial role.

Various ● 2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system
functionality and the development method are finished with success. When software develops new practicality,
the incremental model uses style and development phase.
Phases of ● 3. Testing: In the incremental model, the testing phase checks the performance of each existing function as well
as additional functionality. In the testing phase, the various methods are used to test the behavior of each task
Incremental ● 4. Implementation: Implementation phase enables the coding phase of the development system. It involves the
final coding that design in the designing and development phase and tests the functionality in the testing phase.
Model After completion of this phase, the number of the product working is enhanced and upgraded up to the final
system product

By Prof. Jaya Dubey


● When the requirements are superior.

● A project has a lengthy development schedule.

● When Software team are not very well skilled or trained.

Application ● When the customer demands a quick release of the product.

● You can develop prioritized requirements first.

By Prof. Jaya Dubey


● Errors are easy to be recognized.

● Easier to test and debug

● More flexible.

Advantages ● Simple to manage risk because it handled during its iteration.

● The Client gets important functionality early.

By Prof. Jaya Dubey


● Need for good planning

● Total Cost is high.

Disadvantages ● Well defined module interfaces are needed.

By Prof. Jaya Dubey


Compute the Function Point value for a project with the
following information
● No. of user inputs= 50
● No. of user outputs= 40
Numerical ● No. of user enquiries = 35
mst1 ● No. of user files= 06
● No. of External Interfaces= 04
Assume all Complexities factor and weighing factors as
average.
Computing FP
●Count Total= 628
●Sum of all Fi = 14 * 3 = 42
●Function Point= Count Total * [0.65 +
Calculation 0.01 * E (Fi)]
●FP= 628 * [0.65 + 0.01 * 42]
●FP= 671.96

You might also like