04/06/2025
Amity Institute of Information
Technology
Copyright © Amity
Advanced Software
Engineering
Module-
1
Prof. (Dr.) Sonu Mittal
smittal@amity.edu
ORCID https://orcid.org/0000-0002-0452-9652
Google Scholar
https://scholar.google.com/citations?user=2Yq3rjoAAAAJ&hl=en
1
04/06/2025
Amity Institute of Information
Technology
Syllabu
s
2
04/06/2025
Amity Institute of Information
Technology
Syllabus
3
04/06/2025
Amity Institute of Information
Technology
Syllabus
4
04/06/2025
Amity Institute of Information
Technology
Syllabu
s
5
04/06/2025
Amity Institute of Information
Technology
Key Ingredients in successful organizations
People
Copyright © Amity
Technology
Process
6
04/06/2025
Amity Institute of Information
Technology
What is
software?
• Computer programs and
associated documentation
• Software products may be developed for a particular
customer or may be developed for a general market
• Software products may be
– Generic/COTS - developed to be sold to a range of
different customers
– Custom/Bespoke- developed for a customer according
to
their specification
Copyright © Amity 7
04/06/2025
Amity Institute of Information
Technology
Engineering
• Engineering is …
– The application of scientific principles and methods to
the
construction of useful structures & machines
• Examples
– Mechanical engineering
– Computer engineering
– Civil engineering
– Chemical engineering
– Electrical engineering
– Nuclear engineering
– Aeronautical engineering
Copyright © Amity 8
04/06/2025
Amity Institute of Information
Technology
20
Software Engineering:
Definition
Software Engineering is a collection of
techniques,
methodologies and tools that
help with the production of
• a high quality software
system
• with a given budget
• before a given deadline
• while change occurs.
Copyright © Amity 9
04/06/2025
Amity Institute of Information
Technology
Scientist vs
Engineer
• Computer Scientist
– Proves theorems about algorithms, designs languages,
defines
knowledge representation schemes
– Has sufficient time…
• Engineer
– Develops a solution for an application-specific problem for a
client
– Uses computers & languages, tools, techniques and methods
• Software Engineer
– Works in multiple application domains
– Has only 3 months...
– …while changes occurs in requirements and available
technology
Isn’t there something more fundamental about “Software” Engineer?
Copyright © Amity 1
04/06/2025
Amity Institute of Information
Technology
Software Engineering
• The term is 50 years old: NATO Conferences
– Garmisch, Germany, October 7-11, 1968
– Rome, Italy, October 27-31, 1969
• The reality is it is finally beginning to arrive
– Computer science one the scientific basis
• Years of studies/experience/statistics provide basis
too
– Many aspects have been made systematic
• Methods/methodologies/techniques
• Languages
• Tools
• Processes
Copyright © Amity 1
04/06/2025
Amity Institute of Information
Technology
What does a software
engineer
do?
Software engineers should
– adopt a systematic and organised
approach to all aspects of software
development.
– use appropriate tools and techniques
depending on
– Understand and communicate processes
for improved software development
within their organization
– Be effective team members and/or
leaders.
– Can be very technical or more
managerial depending on
Copyright © Amity 1
04/06/2025
Amity Institute of Information
Technology
What is the difference between
software engineering and
computer science?
Computer Science Software Engineering
is concerned with
Computer science theories are currently insufficient to
act as a complete underpinning for software
engineering, BUT it is a foundation for practical aspects
of software engineering
 theory
 fundamentals
 the practicalities of developing
 delivering useful software
Copyright © Amity 1
04/06/2025
Amity Institute of Information
Technology
What is the difference between
software engineering and system
engineering?
• Software engineering is part of
System engineering
• System engineering is concerned with
all aspects of computer-based systems
development including
– hardware,
– software and
– process engineering
• System engineers are involved in
system specification,
architectural design,
Copyright © Amity
14
04/06/2025
System
Software
Real
Time
Software
Embedded
Software
Engineering
and Scientific
Software
Web based
Software
Artificial
Intelligence
Software
Personal
Computer
Software
Business
Software
The Changing Nature of
Software
15
04/06/2025
Amity Institute of Information
Technology
The Evolving Role of Software
16
04/06/2025
Amity Institute of Information
Technology
Reasons Why Software Projects Fail
17
04/06/2025
Amity Institute of Information
Technology
Software
Characteristics
18
04/06/2025
Amity Institute of Information
Technology
Software
Characteristics
19
04/06/2025
Amity Institute of Information
Technology
Software Qualities
• Qualities are goals in the practice of
software engineering, and directly
relate to many of the guiding
principles.
• External vs. Internal qualities
• Product vs. Process qualities
Copyright © Amity 2
04/06/2025
Amity Institute of Information
Technology
External vs. Internal Qualities
• External qualities are visible to the
user
– reliability, usability, efficiency
(maybe), robustness, scalability
• Internal qualities are the concern
of developers
– they help developers achieve
external qualities
– verifiability, maintainability,
extensibility,
evolvability, adaptability,
Copyright © Amity 2
04/06/2025
Amity Institute of Information
Technology
Software Development Stages
Copyright © Amity 2
04/06/2025
Amity Institute of Information
Technology
29
2
04/06/2025
Amity Institute of Information
Technology
Copyright © Amity
Software Lifecycle Models
• Waterfall Model
• Incremental Model
• Component based Model
• Rapid Application
Development
• Prototyping Model
• Spiral Model
• Agile Software Development
2
04/06/2025
Amity Institute of Information
Technology
Software Development
Lifecycle Waterfall
Model
25
26
Waterfall Model (Contd…)
Advantages Disadvantages
Easy to be explained Inflexible
Stages and activities are well defined Adjusting scope is difficult and
expensive
Milestones are well understood Model doesn't provide a clear path
for problems
found during testing phases
Each phase has specific deliverables Costly and required more time
Works well for smaller projects
where requirements are very well
understood.
Needs very proper and detailed
planning
Process and results are well
documented
No continuous customer
involvement to review the output
04/06/2025
Amity Institute of Information
Technology
27
04/06/2025
Amity Institute of Information
Technology
28
Prototyping Model
• This model is used when the customers do not know the
exact project requirements beforehand.
• In this model, a prototype of the end product is first
developed, tested, and refined as per customer feedback
repeatedly till a final acceptable prototype is achieved, which
forms the basis for developing the final product.
04/06/2025
Amity Institute of Information
Technology
Prototyping Model
29
04/06/2025
Amity Institute of Information
Technology
30
Advantage of Prototype Model
1. Reduce the risk of incorrect user requirement.
2. Good where requirement are changing/uncommitted.
3. Regular visible process aids management.
4. Support early product marketing.
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made
side by side.
04/06/2025
Amity Institute of Information
Technology
31
Disadvantage of Prototype Model
1. An unstable/badly implemented prototype often becomes the final
product.
2. Difficult to know how long the project will last.
3. It is a time-consuming process.
04/06/2025
Amity Institute of Information
Technology
32
Types of Prototyping Models
• Rapid Throwaway Prototyping
Rapid prototyping is also known as “throwaway prototyping” because the prototype is
expected to be relevant only in the short term, It may go through several cycles of
feedback, modification, and evaluation during that time. When all the stakeholders are
satisfied, it becomes a reference for the designers and developers to use.
• Evolutionary Prototyping
An evolutionary prototype is a functional piece of software, not just a
simulation. Evolutionary prototyping starts with a product that meets only the
understood system requirements.
04/06/2025
Amity Institute of Information
Technology
33
04/06/2025
Amity Institute of Information
Technology
34
Incremental
Model
• Incremental Model is a process of software development
where requirements are broken down into multiple standalone
modules of software development cycle.
• First increment is often a core product where the basic
requirements are addressed, and supplementary features are
added in the next increments.
04/06/2025
Amity Institute of Information
Technology
Analysis Phase
• The development process starts with the analysis phase. This phase
results in a specification document that shows what the software will do
without specifying how it will be done.
35
04/06/2025
Amity Institute of Information
Technology
Design Phase
• The design phase defines how the system will accomplish what was
defined in the analysis phase. In the design phase, all components of the
system are defined.
36
04/06/2025
Amity Institute of Information
Technology
Implementation Phase
• In this phase the programmers write the code for the modules in procedure-
oriented design, or write the program units to implement classes in object-
oriented design. There are several issues we need to mention in each case.
37
04/06/2025
Amity Institute of Information
Technology
Testing Phase
• The goal of the testing phase is to find errors, which means that a good
testing strategy is the one that finds most errors.
38
04/06/2025
Amity Institute of Information
Technology
39
• Advantages-
1. Prepares the software fast.
2. Clients have a clear idea of the project.
3. Changes are easy to implement.
4. Provides risk handling support, because of its iterations.
• Disadvantages-
5. A good team and proper planned execution are required.
6. Because of its continuous iterations the cost increases.
04/06/2025
Amity Institute of Information
Technology
40
04/06/2025
Amity Institute of Information
Technology
41
04/06/2025
Amity Institute of Information
Technology
42
04/06/2025
Amity Institute of Information
Technology
43
04/06/2025
Amity Institute of Information
Technology
44
Advantages of the Spiral Model
• Risk Handling
• Good for large projects
• Flexibility in Requirements
• Customer Satisfaction
• Emphasis on Risk Management
• Improved Communication
• Improved Quality
04/06/2025
Amity Institute of Information
Technology
45
Disadvantages of the Spiral
Model
• Complex
• Expensive
• Time-Consuming
• Resource Intensive
• Time-Consuming
04/06/2025
Amity Institute of Information
Technology
46
04/06/2025
Amity Institute of Information
Technology
47
04/06/2025
Amity Institute of Information
Technology
RA
D
48
04/06/2025
Amity Institute of Information
Technology
49
THE RAD MODEL
• the RAD process enables a development team to create a “fully functional
system” within very short time periods (e.g., 60 to 90 days).
• In the RAD model, the functional modules are developed in parallel
as prototypes and are integrated to make the complete product for
faster product delivery.
• RAD projects follow iterative and incremental model and have small
teams
comprising of developers.
04/06/2025
Amity Institute of Information
Technology
50
THE RAD MODEL
• Business modeling. The information flow among business functions is
modeled in
a way that answers the following questions: What information drives the
Business process? What information is generated? Who generates it?
Where does the information go? Who processes it?
• Data modeling. The information flow defined as part of the business
modeling phase is refined into a set of data objects that are needed to
support the business.
• Process modeling. The data objects defined in the data modeling phase
are transformed to achieve the information flow necessary to implement
a business function.
04/06/2025
Amity Institute of Information
Technology
51
THE RAD MODEL
• Application generation. Rather than creating software using conventional third
generation programming languages the RAD process works to reuse existing
program components. Automated tools are used to facilitate construction of the
software.
• Testing and turnover. Since the RAD process emphasizes reuse, many of the
program components have already been tested. This reduces overall testing time.
However, new components must be tested and all interfaces must be fully
exercised.
04/06/2025
Amity Institute of Information
Technology
THE RAD MODEL (Drawbacks)
52
• For large but scalable projects, RAD requires sufficient human resources to create
the right number of RAD teams.
• RAD requires developers and customers who are committed to the rapid-fire
activities necessary to get a system complete in a much abbreviated time frame.
• If high performance is an issue and performance is to be achieved through tuning
the interfaces to system components, the RAD approach may not work.
• RAD is not appropriate when technical risks are high. This occurs when a new
application heavily uses new technology or when the new software requires a high
degree of interoperability with existing computer programs.
04/06/2025
Amity Institute of Information
Technology
53
04/06/2025
Amity Institute of Information
Technology
54
Component-Based Software
• Components provide a service
without regard to where the
component is executing or its
programming language
– A component is an independent
executable entity that can be made
up of one or more executable objects
– The component interface is published and
all interactions are through the
published interface
04/06/2025
Amity Institute of Information
Technology
Copyright © Amity
Component-based
software
engineering
• Based on systematic reuse where systems
are integrated from existing components or
COTS (Commercial-off-the-shelf) systems.
• Process stages
– Component analysis;
– Requirements modification;
– System design with reuse;
– Development and integration.
• This approach is becoming increasingly used
as component standards have emerged.
• ......More Details in Module 3
5
04/06/2025
Agile Software Development
5
04/06/2025
Amity Institute of Information
Technology
What is
agile?
• Agile is a process that allows a team to more
efficiently manage a project by breaking it
down into several stages, each of which allows
for consistent collaboration with stakeholders to
promote steady improvements at every stage.
• In software development, agile practices involve
discovering requirements and developing
solutions through the collaborative effort of self-
organizing and cross-functional teams and their
customer/end user.
5
04/06/2025
Amity Institute of Information
Technology
Agile
methodology
• Agile methodology is a type of project management process,
mainly used for software development, where demands and
solutions evolve through the collaborative effort of
self- organizing and cross-functional teams and their
customers.
• Agile software development refers to a group of software
development methodologies based on iterative development,
where requirements and solutions evolve through
collaboration between self-organizing cross-functional teams.
5
04/06/2025
Amity Institute of Information
Technology
Agile
methodology
• In Agile, the product is
“manufactured” through
incremental cycles known as
sprints.
• The product is built in “bits”
and “pieces” through sprint
cycles. At the end of each
sprint, “some” product
features and functionality is
developed by the team.
5
04/06/2025
Amity Institute of Information
Technology
Agile
manifesto
 The Agile Manifesto was founded in 2001 with the aim of
“uncovering better ways of developing software by doing
it and helping others do it.”
 4 values:
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
 That is, while there is value in the items on the right, we value
the items on the left more.
69
6
04/06/2025
Amity Institute of Information
Technology
What are the 12 principles of
agile?
• Customer satisfaction
• Early and continuous delivery
• Embrace change
• Frequent delivery
• Collaboration of businesses and developers
• Motivated individuals
• Face-to-face conversation
• Functional products
• Technical excellence
• Simplicity
• Self-organized teams
• Regulation, reflection and adjustment
6
04/06/2025
Amity Institute of Information
Technology
Plan-driven and agile specification
71
separate
developmen
t stages with
the outputs
to be
produced at
each of
these stages
planned in
advance.
Not
necessarily
waterfall
model –
plan- driven,
incremental
developmen
t is possible
Iteration within
stage
Iteration of
stage
User's full
agreement at
end, not
before code
6
04/06/2025
Amity Institute of Information
Technology
6
04/06/2025
Amity Institute of Information
Technology
Examples of Agile Methodology
• Agile Scrum Methodology.
• Lean Software Development.
• Kanban.
• Extreme Programming (XP)
• Crystal.
• Dynamic Systems Development Method (DSDM)
• Feature Driven Development (FDD)
6
04/06/2025
Amity Institute of Information
Technology
Frameworks for Agile Methodology
• You can run an Agile project using several different
frameworks. Some of the more popular ones include:
• Scrum
• Kanban
• Extreme Programming
• DSDM (Dynamic System Development Methods)
6
04/06/2025
Amity Institute of Information
Technology
Frameworks for Agile Methodology
6
04/06/2025
Amity Institute of Information
Technology
Frameworks for Agile Methodology
6
04/06/2025
Amity Institute of Information
Technology
Scrum Framework
• It is based upon the systematic interactions
between the three major roles with defined
accountabilities:
• Scrum Master,
• Product Owner,
• and the Team.
6
04/06/2025
Amity Institute of Information
Technology
Scrum Framework
6
04/06/2025
Amity Institute of Information
Technology
Scrum Framework
7
04/06/2025
Amity Institute of Information
Technology
71
Benefits of Agile project management
• Continuous customer contact
• The ability to adapt
• Faster delivery
• Lower project risk
• Ongoing innovation
04/06/2025
Amity Institute of Information
Technology
72
Disadvantages of Agile project
management
1. Due to the shortage of formal documents, it creates confusion
and crucial decisions taken throughout various phases can
be misinterpreted at any time by different team members.
2. Due to the lack of proper documentation, once the project
completes and the developers allotted to another project,
maintenance of the finished project can become a difficulty.
Selection of a Life
Cycle Model
Selection of a model is based on:
a) Requirements
b) Development team
c) Users
d) Project type and associated
risk
73
Based On Characteristics Of
Requirements
Requirements Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
Are requirements
easily understandable
and defined?
Yes No No No No Yes
Do we change
requirements quite
often?
No Yes No No Yes No
Can we define
requirements early
in the cycle?
Yes No Yes Yes No Yes
Requirements are
indicating a complex
system to be built
No Yes Yes Yes Yes No
74
Developmen
t team
Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
Less experience on
similar projects?
No Yes No No Yes No
Less domain
knowledge (new to
the technology)
Yes No Yes Yes Yes No
Less experience on
tools to be used Yes No No No Yes No
Availability of
training if required No No Yes Yes No Yes
Based On Status Of
Development Team
75
Based On User’s
Participation
Involveme
nt of
Users
Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
User involvement
in all phases No Yes No No No Yes
Limited
user
participatio
n
Yes No Yes Yes Yes No
User have no
previous experience
of participation in
similar projects
No Yes Yes Yes Yes No
Users are experts
of problem domain No Yes Yes Yes No Yes
76
Project
type
and risk
Waterfall Prototype Iterative
enhancement
Evolutionary
development
Spiral RAD
Project is the
enhancement of the
existing system
No No Yes Yes No Yes
Funding is
stable for the
project
Yes Yes No No No Yes
High
reliability
requirements
No No Yes Yes Yes No
Tight
project
schedule
No Yes Yes Yes Yes Yes
Use of
reusable
components
No Yes No No Yes Yes
Are resources
(time, money,
people etc.) scare?
No Yes No No Yes No
Based On Type Of Project With
Associated Risk
77
78

Basics of Advance Software Engineering .pptx

  • 1.
    04/06/2025 Amity Institute ofInformation Technology Copyright © Amity Advanced Software Engineering Module- 1 Prof. (Dr.) Sonu Mittal smittal@amity.edu ORCID https://orcid.org/0000-0002-0452-9652 Google Scholar https://scholar.google.com/citations?user=2Yq3rjoAAAAJ&hl=en 1
  • 2.
    04/06/2025 Amity Institute ofInformation Technology Syllabu s 2
  • 3.
    04/06/2025 Amity Institute ofInformation Technology Syllabus 3
  • 4.
    04/06/2025 Amity Institute ofInformation Technology Syllabus 4
  • 5.
    04/06/2025 Amity Institute ofInformation Technology Syllabu s 5
  • 6.
    04/06/2025 Amity Institute ofInformation Technology Key Ingredients in successful organizations People Copyright © Amity Technology Process 6
  • 7.
    04/06/2025 Amity Institute ofInformation Technology What is software? • Computer programs and associated documentation • Software products may be developed for a particular customer or may be developed for a general market • Software products may be – Generic/COTS - developed to be sold to a range of different customers – Custom/Bespoke- developed for a customer according to their specification Copyright © Amity 7
  • 8.
    04/06/2025 Amity Institute ofInformation Technology Engineering • Engineering is … – The application of scientific principles and methods to the construction of useful structures & machines • Examples – Mechanical engineering – Computer engineering – Civil engineering – Chemical engineering – Electrical engineering – Nuclear engineering – Aeronautical engineering Copyright © Amity 8
  • 9.
    04/06/2025 Amity Institute ofInformation Technology 20 Software Engineering: Definition Software Engineering is a collection of techniques, methodologies and tools that help with the production of • a high quality software system • with a given budget • before a given deadline • while change occurs. Copyright © Amity 9
  • 10.
    04/06/2025 Amity Institute ofInformation Technology Scientist vs Engineer • Computer Scientist – Proves theorems about algorithms, designs languages, defines knowledge representation schemes – Has sufficient time… • Engineer – Develops a solution for an application-specific problem for a client – Uses computers & languages, tools, techniques and methods • Software Engineer – Works in multiple application domains – Has only 3 months... – …while changes occurs in requirements and available technology Isn’t there something more fundamental about “Software” Engineer? Copyright © Amity 1
  • 11.
    04/06/2025 Amity Institute ofInformation Technology Software Engineering • The term is 50 years old: NATO Conferences – Garmisch, Germany, October 7-11, 1968 – Rome, Italy, October 27-31, 1969 • The reality is it is finally beginning to arrive – Computer science one the scientific basis • Years of studies/experience/statistics provide basis too – Many aspects have been made systematic • Methods/methodologies/techniques • Languages • Tools • Processes Copyright © Amity 1
  • 12.
    04/06/2025 Amity Institute ofInformation Technology What does a software engineer do? Software engineers should – adopt a systematic and organised approach to all aspects of software development. – use appropriate tools and techniques depending on – Understand and communicate processes for improved software development within their organization – Be effective team members and/or leaders. – Can be very technical or more managerial depending on Copyright © Amity 1
  • 13.
    04/06/2025 Amity Institute ofInformation Technology What is the difference between software engineering and computer science? Computer Science Software Engineering is concerned with Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering  theory  fundamentals  the practicalities of developing  delivering useful software Copyright © Amity 1
  • 14.
    04/06/2025 Amity Institute ofInformation Technology What is the difference between software engineering and system engineering? • Software engineering is part of System engineering • System engineering is concerned with all aspects of computer-based systems development including – hardware, – software and – process engineering • System engineers are involved in system specification, architectural design, Copyright © Amity 14
  • 15.
  • 16.
    04/06/2025 Amity Institute ofInformation Technology The Evolving Role of Software 16
  • 17.
    04/06/2025 Amity Institute ofInformation Technology Reasons Why Software Projects Fail 17
  • 18.
    04/06/2025 Amity Institute ofInformation Technology Software Characteristics 18
  • 19.
    04/06/2025 Amity Institute ofInformation Technology Software Characteristics 19
  • 20.
    04/06/2025 Amity Institute ofInformation Technology Software Qualities • Qualities are goals in the practice of software engineering, and directly relate to many of the guiding principles. • External vs. Internal qualities • Product vs. Process qualities Copyright © Amity 2
  • 21.
    04/06/2025 Amity Institute ofInformation Technology External vs. Internal Qualities • External qualities are visible to the user – reliability, usability, efficiency (maybe), robustness, scalability • Internal qualities are the concern of developers – they help developers achieve external qualities – verifiability, maintainability, extensibility, evolvability, adaptability, Copyright © Amity 2
  • 22.
    04/06/2025 Amity Institute ofInformation Technology Software Development Stages Copyright © Amity 2
  • 23.
    04/06/2025 Amity Institute ofInformation Technology 29 2
  • 24.
    04/06/2025 Amity Institute ofInformation Technology Copyright © Amity Software Lifecycle Models • Waterfall Model • Incremental Model • Component based Model • Rapid Application Development • Prototyping Model • Spiral Model • Agile Software Development 2
  • 25.
    04/06/2025 Amity Institute ofInformation Technology Software Development Lifecycle Waterfall Model 25
  • 26.
    26 Waterfall Model (Contd…) AdvantagesDisadvantages Easy to be explained Inflexible Stages and activities are well defined Adjusting scope is difficult and expensive Milestones are well understood Model doesn't provide a clear path for problems found during testing phases Each phase has specific deliverables Costly and required more time Works well for smaller projects where requirements are very well understood. Needs very proper and detailed planning Process and results are well documented No continuous customer involvement to review the output
  • 27.
    04/06/2025 Amity Institute ofInformation Technology 27
  • 28.
    04/06/2025 Amity Institute ofInformation Technology 28 Prototyping Model • This model is used when the customers do not know the exact project requirements beforehand. • In this model, a prototype of the end product is first developed, tested, and refined as per customer feedback repeatedly till a final acceptable prototype is achieved, which forms the basis for developing the final product.
  • 29.
    04/06/2025 Amity Institute ofInformation Technology Prototyping Model 29
  • 30.
    04/06/2025 Amity Institute ofInformation Technology 30 Advantage of Prototype Model 1. Reduce the risk of incorrect user requirement. 2. Good where requirement are changing/uncommitted. 3. Regular visible process aids management. 4. Support early product marketing. 5. Reduce Maintenance cost. 6. Errors can be detected much earlier as the system is made side by side.
  • 31.
    04/06/2025 Amity Institute ofInformation Technology 31 Disadvantage of Prototype Model 1. An unstable/badly implemented prototype often becomes the final product. 2. Difficult to know how long the project will last. 3. It is a time-consuming process.
  • 32.
    04/06/2025 Amity Institute ofInformation Technology 32 Types of Prototyping Models • Rapid Throwaway Prototyping Rapid prototyping is also known as “throwaway prototyping” because the prototype is expected to be relevant only in the short term, It may go through several cycles of feedback, modification, and evaluation during that time. When all the stakeholders are satisfied, it becomes a reference for the designers and developers to use. • Evolutionary Prototyping An evolutionary prototype is a functional piece of software, not just a simulation. Evolutionary prototyping starts with a product that meets only the understood system requirements.
  • 33.
    04/06/2025 Amity Institute ofInformation Technology 33
  • 34.
    04/06/2025 Amity Institute ofInformation Technology 34 Incremental Model • Incremental Model is a process of software development where requirements are broken down into multiple standalone modules of software development cycle. • First increment is often a core product where the basic requirements are addressed, and supplementary features are added in the next increments.
  • 35.
    04/06/2025 Amity Institute ofInformation Technology Analysis Phase • The development process starts with the analysis phase. This phase results in a specification document that shows what the software will do without specifying how it will be done. 35
  • 36.
    04/06/2025 Amity Institute ofInformation Technology Design Phase • The design phase defines how the system will accomplish what was defined in the analysis phase. In the design phase, all components of the system are defined. 36
  • 37.
    04/06/2025 Amity Institute ofInformation Technology Implementation Phase • In this phase the programmers write the code for the modules in procedure- oriented design, or write the program units to implement classes in object- oriented design. There are several issues we need to mention in each case. 37
  • 38.
    04/06/2025 Amity Institute ofInformation Technology Testing Phase • The goal of the testing phase is to find errors, which means that a good testing strategy is the one that finds most errors. 38
  • 39.
    04/06/2025 Amity Institute ofInformation Technology 39 • Advantages- 1. Prepares the software fast. 2. Clients have a clear idea of the project. 3. Changes are easy to implement. 4. Provides risk handling support, because of its iterations. • Disadvantages- 5. A good team and proper planned execution are required. 6. Because of its continuous iterations the cost increases.
  • 40.
    04/06/2025 Amity Institute ofInformation Technology 40
  • 41.
    04/06/2025 Amity Institute ofInformation Technology 41
  • 42.
    04/06/2025 Amity Institute ofInformation Technology 42
  • 43.
    04/06/2025 Amity Institute ofInformation Technology 43
  • 44.
    04/06/2025 Amity Institute ofInformation Technology 44 Advantages of the Spiral Model • Risk Handling • Good for large projects • Flexibility in Requirements • Customer Satisfaction • Emphasis on Risk Management • Improved Communication • Improved Quality
  • 45.
    04/06/2025 Amity Institute ofInformation Technology 45 Disadvantages of the Spiral Model • Complex • Expensive • Time-Consuming • Resource Intensive • Time-Consuming
  • 46.
    04/06/2025 Amity Institute ofInformation Technology 46
  • 47.
    04/06/2025 Amity Institute ofInformation Technology 47
  • 48.
    04/06/2025 Amity Institute ofInformation Technology RA D 48
  • 49.
    04/06/2025 Amity Institute ofInformation Technology 49 THE RAD MODEL • the RAD process enables a development team to create a “fully functional system” within very short time periods (e.g., 60 to 90 days). • In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. • RAD projects follow iterative and incremental model and have small teams comprising of developers.
  • 50.
    04/06/2025 Amity Institute ofInformation Technology 50 THE RAD MODEL • Business modeling. The information flow among business functions is modeled in a way that answers the following questions: What information drives the Business process? What information is generated? Who generates it? Where does the information go? Who processes it? • Data modeling. The information flow defined as part of the business modeling phase is refined into a set of data objects that are needed to support the business. • Process modeling. The data objects defined in the data modeling phase are transformed to achieve the information flow necessary to implement a business function.
  • 51.
    04/06/2025 Amity Institute ofInformation Technology 51 THE RAD MODEL • Application generation. Rather than creating software using conventional third generation programming languages the RAD process works to reuse existing program components. Automated tools are used to facilitate construction of the software. • Testing and turnover. Since the RAD process emphasizes reuse, many of the program components have already been tested. This reduces overall testing time. However, new components must be tested and all interfaces must be fully exercised.
  • 52.
    04/06/2025 Amity Institute ofInformation Technology THE RAD MODEL (Drawbacks) 52 • For large but scalable projects, RAD requires sufficient human resources to create the right number of RAD teams. • RAD requires developers and customers who are committed to the rapid-fire activities necessary to get a system complete in a much abbreviated time frame. • If high performance is an issue and performance is to be achieved through tuning the interfaces to system components, the RAD approach may not work. • RAD is not appropriate when technical risks are high. This occurs when a new application heavily uses new technology or when the new software requires a high degree of interoperability with existing computer programs.
  • 53.
    04/06/2025 Amity Institute ofInformation Technology 53
  • 54.
    04/06/2025 Amity Institute ofInformation Technology 54 Component-Based Software • Components provide a service without regard to where the component is executing or its programming language – A component is an independent executable entity that can be made up of one or more executable objects – The component interface is published and all interactions are through the published interface
  • 55.
    04/06/2025 Amity Institute ofInformation Technology Copyright © Amity Component-based software engineering • Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. • Process stages – Component analysis; – Requirements modification; – System design with reuse; – Development and integration. • This approach is becoming increasingly used as component standards have emerged. • ......More Details in Module 3 5
  • 56.
  • 57.
    04/06/2025 Amity Institute ofInformation Technology What is agile? • Agile is a process that allows a team to more efficiently manage a project by breaking it down into several stages, each of which allows for consistent collaboration with stakeholders to promote steady improvements at every stage. • In software development, agile practices involve discovering requirements and developing solutions through the collaborative effort of self- organizing and cross-functional teams and their customer/end user. 5
  • 58.
    04/06/2025 Amity Institute ofInformation Technology Agile methodology • Agile methodology is a type of project management process, mainly used for software development, where demands and solutions evolve through the collaborative effort of self- organizing and cross-functional teams and their customers. • Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. 5
  • 59.
    04/06/2025 Amity Institute ofInformation Technology Agile methodology • In Agile, the product is “manufactured” through incremental cycles known as sprints. • The product is built in “bits” and “pieces” through sprint cycles. At the end of each sprint, “some” product features and functionality is developed by the team. 5
  • 60.
    04/06/2025 Amity Institute ofInformation Technology Agile manifesto  The Agile Manifesto was founded in 2001 with the aim of “uncovering better ways of developing software by doing it and helping others do it.”  4 values:  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan  That is, while there is value in the items on the right, we value the items on the left more. 69 6
  • 61.
    04/06/2025 Amity Institute ofInformation Technology What are the 12 principles of agile? • Customer satisfaction • Early and continuous delivery • Embrace change • Frequent delivery • Collaboration of businesses and developers • Motivated individuals • Face-to-face conversation • Functional products • Technical excellence • Simplicity • Self-organized teams • Regulation, reflection and adjustment 6
  • 62.
    04/06/2025 Amity Institute ofInformation Technology Plan-driven and agile specification 71 separate developmen t stages with the outputs to be produced at each of these stages planned in advance. Not necessarily waterfall model – plan- driven, incremental developmen t is possible Iteration within stage Iteration of stage User's full agreement at end, not before code 6
  • 63.
    04/06/2025 Amity Institute ofInformation Technology 6
  • 64.
    04/06/2025 Amity Institute ofInformation Technology Examples of Agile Methodology • Agile Scrum Methodology. • Lean Software Development. • Kanban. • Extreme Programming (XP) • Crystal. • Dynamic Systems Development Method (DSDM) • Feature Driven Development (FDD) 6
  • 65.
    04/06/2025 Amity Institute ofInformation Technology Frameworks for Agile Methodology • You can run an Agile project using several different frameworks. Some of the more popular ones include: • Scrum • Kanban • Extreme Programming • DSDM (Dynamic System Development Methods) 6
  • 66.
    04/06/2025 Amity Institute ofInformation Technology Frameworks for Agile Methodology 6
  • 67.
    04/06/2025 Amity Institute ofInformation Technology Frameworks for Agile Methodology 6
  • 68.
    04/06/2025 Amity Institute ofInformation Technology Scrum Framework • It is based upon the systematic interactions between the three major roles with defined accountabilities: • Scrum Master, • Product Owner, • and the Team. 6
  • 69.
    04/06/2025 Amity Institute ofInformation Technology Scrum Framework 6
  • 70.
    04/06/2025 Amity Institute ofInformation Technology Scrum Framework 7
  • 71.
    04/06/2025 Amity Institute ofInformation Technology 71 Benefits of Agile project management • Continuous customer contact • The ability to adapt • Faster delivery • Lower project risk • Ongoing innovation
  • 72.
    04/06/2025 Amity Institute ofInformation Technology 72 Disadvantages of Agile project management 1. Due to the shortage of formal documents, it creates confusion and crucial decisions taken throughout various phases can be misinterpreted at any time by different team members. 2. Due to the lack of proper documentation, once the project completes and the developers allotted to another project, maintenance of the finished project can become a difficulty.
  • 73.
    Selection of aLife Cycle Model Selection of a model is based on: a) Requirements b) Development team c) Users d) Project type and associated risk 73
  • 74.
    Based On CharacteristicsOf Requirements Requirements Waterfall Prototype Iterative enhancement Evolutionary development Spiral RAD Are requirements easily understandable and defined? Yes No No No No Yes Do we change requirements quite often? No Yes No No Yes No Can we define requirements early in the cycle? Yes No Yes Yes No Yes Requirements are indicating a complex system to be built No Yes Yes Yes Yes No 74
  • 75.
    Developmen t team Waterfall PrototypeIterative enhancement Evolutionary development Spiral RAD Less experience on similar projects? No Yes No No Yes No Less domain knowledge (new to the technology) Yes No Yes Yes Yes No Less experience on tools to be used Yes No No No Yes No Availability of training if required No No Yes Yes No Yes Based On Status Of Development Team 75
  • 76.
    Based On User’s Participation Involveme ntof Users Waterfall Prototype Iterative enhancement Evolutionary development Spiral RAD User involvement in all phases No Yes No No No Yes Limited user participatio n Yes No Yes Yes Yes No User have no previous experience of participation in similar projects No Yes Yes Yes Yes No Users are experts of problem domain No Yes Yes Yes No Yes 76
  • 77.
    Project type and risk Waterfall PrototypeIterative enhancement Evolutionary development Spiral RAD Project is the enhancement of the existing system No No Yes Yes No Yes Funding is stable for the project Yes Yes No No No Yes High reliability requirements No No Yes Yes Yes No Tight project schedule No Yes Yes Yes Yes Yes Use of reusable components No Yes No No Yes Yes Are resources (time, money, people etc.) scare? No Yes No No Yes No Based On Type Of Project With Associated Risk 77
  • 78.