2. SOFTWARE ENGINEERING
Books:
1. Rajib Mall , Fundamentals of software engineering, Prentice- hall of
India, Fifth Edition.
2. Ugrasen Suman, software engineering concept and practices, cengage
learning pvt. Ltd., 2013,
Website:
1. https://www.tutorialspoint.com/
2. https://www.geeksforgeeks.org/software-engineering
3. https://www.tutorialride.com/software-engineering/software-engineering-
tutorial.htm
Dr. Jonti Deuri, ADBU, Azara
3. Module-I
Problems and solutions:
Why software is developed. Problem and vision statements. Goals and
objectives. Definitions and paradigms, A generic view of software
engineering. Software development life cycle, Role of quality, metrics and
measurement.
Dr. Jonti Deuri, ADBU, Azara
4. What is Software Engineering?
• The term is made of two words, software and
engineering.
• Software is more than just a program code.
• Software is considered to be collection of
executable programming code, associated libraries
and documentations.
• Software, when made for a specific requirement is
called software product.
Dr. Jonti Deuri, ADBU, Azara
5. What is Software Engineering?
• Engineering :
Engineering is all about developing products,
using well-defined, scientific principles and
methods. or,
Force us to focus on systematic, scientific and
well defined processes to produce a good quality
product.
Dr. Jonti Deuri, ADBU, Azara
6. What is Software Engineering?
• Engineering Approach to Develop Software.
Building Construction Analogy
• Collection of past experience
techniques
methodologies
guidelines and tools
Dr. Jonti Deuri, ADBU, Azara
7. What is Software Engineering?
• IEEE defines software engineering as:
The application of a systematic, disciplined, quantifiable
approach to the development, operation and
maintenance of software; that is, the application of
engineering to software.
Dr. Jonti Deuri, ADBU, Azara
8. Software Engineering is a systematic,
disciplined, quantifiable study and approach
to the design, development, operation, and
maintenance of a software system.
What is Software Engineering?
Dr. Jonti Deuri, ADBU, Azara
10. Status of Software Engineering
The requirements
specification was
defined like this
The developers
understood it in
that way
This is how the
problem was
solved before.
This is how the
problem is solved now
That is the program after
debugging
This is how the program is
described by marketing
department
This, in fact, is what the
customer wanted …
Dr. Jonti Deuri, ADBU, Azara
11. Why is Software Engineering required?
Software Engineering is required due to the following
reasons:
• To manage Large software
• For more Scalability
• Cost Management
• To manage the dynamic nature of software
• For better quality Management
Dr. Jonti Deuri, ADBU, Azara
12. Need of Software Engineering
The need of software engineering arises because of higher rate of change
in user requirements and environment :
• Large software -
It is easier to build a wall than to a house or building, likewise, as
the size of software become large engineering has to step to give it
a scientific process.
• Scalability-
If the software process were not based on scientific and
engineering concepts, it would be easier to re-create new software
than to scale an existing one.
• Cost-
As hardware industry has shown its skills and huge manufacturing
has lower down the price of computer and electronic hardware.
But the cost of software remains high if proper process is not
adapted. Dr. Jonti Deuri, ADBU, Azara
13. Need of Software Engineering
The need of software engineering arises because of higher rate of
change in user requirements and environment on which the software
is working.
• Dynamic Nature-
The always growing and adapting nature of software hugely
depends upon the environment in which user works.
If the nature of software is always changing, new
enhancements need to be done in the existing one.
This is where software engineering plays a good role.
• Quality Management-
Better process of software development provides better and
quality software product.
Dr. Jonti Deuri, ADBU, Azara
14. Characteristics of good
software
A software product can be judged by what it offers and how well it
can be used. This software must satisfy on the following grounds:
1.Operational
2.Transitional
3.Maintenance
Dr. Jonti Deuri, ADBU, Azara
15. Characteristics of good
software
Operational
This tells us how well software works in operations. It can be
measured on:
• Budget
• Usability
• Efficiency
• Correctness
• Functionality
• Dependability
• Security
• Safety Dr. Jonti Deuri, ADBU, Azara
16. Characteristics of good
software
Transitional:
This aspect is important when the software is moved
from one platform to another:
• Portability
• Interoperability
• Reusability
Dr. Jonti Deuri, ADBU, Azara
17. Characteristics of good
software
Maintenance
This aspect briefs about how well a software has the
capabilities to maintain itself in the ever-changing
environment:
• Modularity
• Maintainability
• Flexibility
• Scalability
Dr. Jonti Deuri, ADBU, Azara
18. Software Paradigms
• Software paradigms refer to the methods and steps, which are taken
while designing the software.
• These can be combined into various categories, though each of them
is contained in one another:
• Programming paradigm is a subset of
Software design paradigm which is
further a subset of Software
development paradigm.
Dr. Jonti Deuri, ADBU, Azara
19. Software Paradigms
Software Development Paradigm:
• Also known as software engineering paradigms where all
the engineering concepts pertaining to the development of
software are applied.
• It includes various researches and requirement gathering
which helps the software product to build. It consists of –
Requirement gathering
Software design
Programming
Dr. Jonti Deuri, ADBU, Azara
20. Software Paradigms
Software Design Paradigm
This paradigm is a part of Software Development and
includes –
• Design
• Programming
• Maintenance
Dr. Jonti Deuri, ADBU, Azara
21. Software Paradigms
Programming Paradigm:
This paradigm is related closely to programming
aspect of software development. This includes –
• Coding
• Testing
• Integration
Dr. Jonti Deuri, ADBU, Azara
23. Software Classification
There are various categories of software products:
1. Generic software: are developed for general purpose,
regardless of the type of business.
2. Customized software: are developed to satisfy the
need of a particular customer in a organization.
Generic and customized software products can again be
divided in several categories.
Dr. Jonti Deuri, ADBU, Azara
24. Software Classification
It can be categorized into different types:
On the basis of application:
1. System Software –
2. Networking and Web Applications Software
3. Embedded Software –
4. Reservation Software
5. Business Software
6. Entertainment Software
7. Artificial Intelligence Software
8. Scientific Software
9. Utilities Software
10. Document Management Software –
Dr. Jonti Deuri, ADBU, Azara
25. Software Classification
It can be categorized into different types:…..
On the basis of copyright:
1. Commercial –
2. Shareware –
3. Freeware –
4. Open Source-
Dr. Jonti Deuri, ADBU, Azara
26. Software Crisis
Size:
• Software is becoming more expensive and more complex with the
growing complexity and expectation out of software.
• For example, the code in the consumer product is doubling every
couple of years.
Quality:
• Many software products have poor quality, i.e., the software
products defects after putting into use due to ineffective testing
technique.
• For example, Software testing typically finds 25 errors per 1000
lines of code. Dr. Jonti Deuri, ADBU, Azara
27. Software Crisis
Cost:
• Software development is costly i.e. in terms of time taken to develop
and the money involved.
• For example, Development of the FAA's Advanced Automation
System cost over $700 per lines of code.
Delayed Delivery:
• Serious schedule overruns are common.
• Very often the software takes longer than the estimated time to
develop, which in turn leads to cost shooting up.
• For example, one in four large-scale development projects is never
completed. Dr. Jonti Deuri, ADBU, Azara
28. Software Processes
• A software process is the set of activities and associated
outcome that produce a software product.
• Software engineers mostly carry out these activities.
• There are four key process activities, which are common to all
software processes.
These activities are:
• Software specifications:
• Software development:
• Software validation:
• Software evolution:
Dr. Jonti Deuri, ADBU, Azara
29. Software Processes
Software specifications:
• The functionality of the software and constraints on its
operation must be defined.
Software development:
• The software to meet the requirement must be produced.
Software validation:
• The software must be validated to ensure that it does what the
customer wants.
Software evolution:
• The software must evolve to meet changing client needs.
Dr. Jonti Deuri, ADBU, Azara
30. Elements of a Software
Processes
A software process comprises various essential elements.
1. Artifacts:
2. Activity
3. Constraint
4. People
5. Tools and Technology
6. Methods or Technique
7. Relationship
8. Organizational Structure
Dr. Jonti Deuri, ADBU, Azara
31. Elements of a Software
Processes
A software process comprises various essential elements.
1. Artifacts:
• Tangible work products produces during the
development of software.
• E.g. Software architecture, project plan etc.
2. Activity:
• Specifies the tasks to be carried out implicitly or
explicitly.
• Each activity uses some procedures, rules, policies and
guidelines to produce the required artifacts.
• E.g. Analysis, design, tracking, monitoring etc.
Dr. Jonti Deuri, ADBU, Azara
32. Elements of a Software
Processes
A software process comprises various essential elements.
3. Constraint:
• Refers to the criteria or condition that must be met or
possessed by a software product.
• Allows the process to progress for achieving maximum
outcome with defined conditions.
Dr. Jonti Deuri, ADBU, Azara
33. Elements of a Software
Processes
A software process comprises various essential elements.
4. People:
• Person or stakeholders who directly or indirectly involved
in the process.
• For example software tester, quality checker etc.
Dr. Jonti Deuri, ADBU, Azara
34. Elements of a Software
Processes
A software process comprises various essential elements.
5. Tools and Technology:
• Tools and technology provide technical support to the
methods
• Eg. Fortran, CASE TOOLS.
Dr. Jonti Deuri, ADBU, Azara
35. Elements of a Software
Processes
A software process comprises various essential elements.
6. Methods or Technique:
• Methods or techniques specify the way to perform an
activity using tools & technology to accomplish the
activity.
• It provides detailed mechanism to carry out an activity.
Dr. Jonti Deuri, ADBU, Azara
36. Elements of a Software
Processes
A software process comprises various essential elements.
7. Relationship:
• Specifies the link among various activities or entities.
• E.g. maintenance followed by implementation, debugging
is required after error detection, etc.
Dr. Jonti Deuri, ADBU, Azara
37. Elements of a Software
Processes
A software process comprises various essential elements.
8. Organizational Structure:
• Specifies the team of people that should be coordinated and
managed during software development.
Dr. Jonti Deuri, ADBU, Azara
38. Software Development Life
Cycle (SDLC)
• SDLC is a process used by the software industry to design, develop and test
high quality software.
• The SDLC aims to produce a high-quality software that meets or exceeds
customer expectations, reaches completion within times and cost estimates.
• SDLC is the acronym of Software Development Life Cycle.
• It is also called as Software Development Process.
• SDLC is a framework defining tasks performed at each step in the software
development process.
• ISO/IEC 12207 is an international standard for software life-cycle processes.
It aims to be the standard that defines all the tasks required for developing
and maintaining software.
Dr. Jonti Deuri, ADBU, Azara
39. Software Development Life
Cycle (SDLC)
SDLC Cycle
• SDLC Cycle represents
the process of developing
software.
• SDLC framework includes
the following steps:
Dr. Jonti Deuri, ADBU, Azara
40. Software Development Life
Cycle (SDLC)
The stages of SDLC are as follows:
Stage1: Planning and requirement analysis
• Requirement Analysis is the most important and necessary stage in
SDLC.
• Planning for the quality assurance requirements and identifications
of the risks associated with the projects is also done at this stage.
• Business analyst and Project organizer set up a meeting with the
client to gather all the data like what the customer wants to build,
who will be the end user, what is the objective of the product.
• Before creating a product, a core understanding or knowledge of the
product is very necessary.
Dr. Jonti Deuri, ADBU, Azara
41. Software Development Life
Cycle (SDLC)
Stage2: Defining Requirements
• Once the requirement analysis is done, the next stage is to certainly
represent and document the software requirements and get them
accepted from the project stakeholders.
• This is accomplished through "SRS"- Software Requirement
Specification document which contains all the product requirements to
be constructed and developed during the project life cycle.
Dr. Jonti Deuri, ADBU, Azara
42. Software Development Life
Cycle (SDLC)
Stage3: Designing the Software
• The next phase is about to bring down all the
knowledge of requirements, analysis, and
design of the software project.
• This phase is the product of the last two, like
inputs from the customer and requirement
gathering.
Dr. Jonti Deuri, ADBU, Azara
43. Software Development Life
Cycle (SDLC)
Stage4: Developing the project
• In this phase of SDLC, the actual development begins,
and the programming is built.
• The implementation of design begins concerning
writing code.
• Developers have to follow the coding guidelines
described by their management and programming
tools like compilers, interpreters, debuggers, etc. are
used to develop and implement the code.
Dr. Jonti Deuri, ADBU, Azara
44. Software Development Life
Cycle (SDLC)
Stage5: Testing
• After the code is generated, it is tested against the
requirements to make sure that the products are
solving the needs addressed and gathered during the
requirements stage.
• During this stage, unit testing, integration testing,
system testing, acceptance testing are done.
Dr. Jonti Deuri, ADBU, Azara
45. Software Development Life
Cycle (SDLC)
Stage6: Deployment
• Once the software is certified, and no bugs or
errors are stated, then it is deployed.
• Then based on the assessment, the software
may be released as it is or with suggested
enhancement in the object segment.
• After the software is deployed, then its
maintenance begins.
Dr. Jonti Deuri, ADBU, Azara
46. Software Development Life
Cycle (SDLC)
Stage7: Maintenance
• The software is maintained timely by
updating the code according to the changes
taking place in user end environment or
technology.
• This phase may face challenges from hidden
bugs and real-world unidentified problems.
Dr. Jonti Deuri, ADBU, Azara
47. Software Development
Life Cycle Models
A few of software development paradigms or process models are defined
as follows:
• Waterfall Model
• Spiral Model
• Rapid Application Development Model
• Agile Model
• Prototype Model
• Iterative Model
• V-Model
Dr. Jonti Deuri, ADBU, Azara
48. SDLC Models:
Waterfall Model
1. Waterfall Model:
• Winston Royce introduced the Waterfall Model in 1970.
• The steps always follow in this order and do not overlap.
• The developer must complete every phase before the next
phase begins.
• This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of
waterfalls. Dr. Jonti Deuri, ADBU, Azara
50. SDLC Models:
Waterfall Model
1. Requirements:
• This phase is also known as Requirements analysis and
specification phase.
• The aim of this phase is to understand the exact
requirements of the customer and to document them
properly.
• Both the customer and the software developer work together
so as to document all the functions, performance, and
interfacing requirement of the software.
Dr. Jonti Deuri, ADBU, Azara
51. SDLC Models:
Waterfall Model
1. Requirements: …
• It describes the "what" of the system to be produced and not
"how”.
• In this phase, a large document called Software
Requirement Specification (SRS) document is created
which contained a detailed description of what the system
will do in the common language.
Dr. Jonti Deuri, ADBU, Azara
52. SDLC Models:
Waterfall Model
2. Design Phase:
• This phase aims to transform the requirements gathered in the
SRS into a suitable form which permits further coding in a
programming language.
• It defines the overall software architecture together with high
level and detailed design.
• All this work is documented as a Software Design Document
(SDD).
Dr. Jonti Deuri, ADBU, Azara
53. SDLC Models:
Waterfall Model
3. Development or implementation:
• During this phase, design is implemented.
• If the SDD is complete, the implementation or
coding phase proceeds smoothly, because all the
information needed by software developers is
contained in the SDD.
Dr. Jonti Deuri, ADBU, Azara
54. SDLC Models:
Waterfall Model
4. Testing:
• Also called Integration and System Testing Phase.
• This phase is highly crucial as the quality of the end
product is determined by the effectiveness of the testing
carried out.
• The better output will lead to satisfied customers, lower
maintenance costs, and accurate results.
• However, in this phase, the modules are tested for their
interactions with each other and with the system.
Dr. Jonti Deuri, ADBU, Azara
55. SDLC Models:
Waterfall Model
5. Deployment:
• In the Deployment phase, the developed code is
moved into production after the sign off is given
by the customer.
Dr. Jonti Deuri, ADBU, Azara
56. SDLC Models:
Waterfall Model
6. Operation and maintenance:
• Maintenance is the task performed by every user
once the software has been delivered to the
customer, installed, and operational.
Dr. Jonti Deuri, ADBU, Azara
57. SDLC Models:
Waterfall Model
Advantages of Waterfall Model:
This model is very simple and is easy to understand.
Phases in this model are processed one at a time.
Each stage in the model is clearly defined.
Process, actions and results are very well
documented.
Reinforces good habits: define-before- design,
design-before-code.
This model works well for smaller projects and
projects where requirements are well understood.
Dr. Jonti Deuri, ADBU, Azara
58. SDLC Models:
Waterfall Model
Drawbacks of Waterfall Model:
No feedback path: In classical waterfall model
evolution of a software from one phase to another
phase is like a waterfall.
Difficult to accommodate change requests: It is
difficult to accommodate any change requests after the
requirements specification phase is complete.
No overlapping of phases: This model recommends
that new phase can start only after the completion of
the previous phase.
Dr. Jonti Deuri, ADBU, Azara
59. SDLC Models:
Spiral Model
• Proposed by Boehm.
• Spiral model is one of the most important SDLC
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.
Dr. Jonti Deuri, ADBU, Azara
60. SDLC Models:
Spiral Model
• 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.
Dr. Jonti Deuri, ADBU, Azara
63. SDLC Models:
Spiral Model
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.
2. Identify and resolve Risks:
• During the second quadrant all the possible solutions are
evaluated to select the best possible solution.
• Then the risks associated with that solution is identified and the
risks are resolved using the best possible strategy.
• At the end of this quadrant, Prototype is built for the best possible
solution. Dr. Jonti Deuri, ADBU, Azara
64. SDLC Models:
Spiral Model
The functions of these four quadrants are discussed below-
3. Develop 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.
4. Review 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.
Dr. Jonti Deuri, ADBU, Azara
65. SDLC Models:
Spiral Model
Advantages of Spiral Model:
1. 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.
2. Good for large projects:
• It is recommended to use the Spiral Model in large and
complex projects.
Dr. Jonti Deuri, ADBU, Azara
66. SDLC Models:
Spiral Model
Advantages of Spiral Model:
3. Flexibility in Requirements:
• Change requests in the Requirements at later phase
can be incorporated accurately by using this model.
4. Customer Satisfaction:
• Customer 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.
Dr. Jonti Deuri, ADBU, Azara
67. SDLC Models:
Spiral Model
Disadvantages of Spiral Model:
1. Complex:
• The Spiral Model is much more complex than other SDLC
models.
2. Expensive:
• Spiral Model is not suitable for small projects as it is expensive.
3. Too much dependable on Risk Analysis:
• The successful completion of the project is very much dependent
on Risk Analysis. Without very highly experienced expertise, it is
going to be a failure to develop a project using this model.
4. Difficulty in time management:
• As the number of phases is unknown at the start of the project,
so time estimation is very difficult.
Dr. Jonti Deuri, ADBU, Azara
68. SDLC Models:
Spiral Model
When to use Spiral Model?
• When deliverance is required to be frequent.
• When the project is large
• When requirements are unclear and complex
• When changes may require at any time
• Large and high budget projects
Dr. Jonti Deuri, ADBU, Azara
69. SDLC Models: Agile Model
• The meaning of Agile is swift or versatile.
• "Agile process model" refers to a software development
approach based on iterative development.
• Agile methods break tasks into smaller iterations, or parts do
not directly involve long term planning.
• The project scope and requirements are laid down at the
beginning of the development process.
• Plans regarding the number of iterations, the duration
and the scope of each iteration are clearly defined in
advance. Dr. Jonti Deuri, ADBU, Azara
70. SDLC Models: Agile Model
• Each iteration is considered as a short time "frame" , which
typically lasts from one to four weeks.
• The division of the entire project into smaller parts helps to
minimize the project risk and to reduce the overall project
delivery time requirements.
• Each iteration involves a team working through a full software
development life cycle
• it includes planning, requirements analysis, design, coding,
and testing before a working product is demonstrated to the
Dr. Jonti Deuri, ADBU, Azara
72. SDLC Models: Agile Model
Following are the phases in the Agile model:
• Requirements gathering
• Design the requirements
• Construction/ iteration
• Testing/ Quality assurance
• Deployment
• Feedback
Dr. Jonti Deuri, ADBU, Azara
73. SDLC Models: Agile Model
In this phase, you must define the requirements.
You should explain business opportunities and plan the time
and effort needed to build the project.
Based on this information, you can evaluate technical and
economic feasibility.
Dr. Jonti Deuri, ADBU, Azara
74. SDLC Models: Agile Model
When you have identified the project, work with stakeholders
to define requirements.
You can use the user flow diagram or the high-level UML
diagram to show the work of new features and show how it
will apply to your existing system.
Dr. Jonti Deuri, ADBU, Azara
75. SDLC Models: Agile Model
• When the team defines the requirements, the work begins.
• Designers and developers start working on their project, which aims
to deploy a working product.
• The product will undergo various stages of improvement, so it
includes simple, minimal functionality.
Dr. Jonti Deuri, ADBU, Azara
76. SDLC Models: Agile Model
• In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.
• In this phase, the team issues a product for the user's work environment.
• After releasing the product, the last step is feedback.
• In this, the team receives feedback about the product and works through
the feedback.
Dr. Jonti Deuri, ADBU, Azara
77. SDLC Models: Agile Model
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team all the
time.
• When project size is small.
Dr. Jonti Deuri, ADBU, Azara
78. SDLC Models: Agile Model
• Frequent Delivery
• Face-to-Face Communication with clients.
• Efficient design and fulfils the business requirement.
• Anytime changes are acceptable.
• It reduces total development time.
Dr. Jonti Deuri, ADBU, Azara
79. SDLC Models: Agile Model
• 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.
• 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.
Dr. Jonti Deuri, ADBU, Azara
80. SDLC Models:
RAD (Rapid Application Development)
• Proposed by IBM in 1980’s
• RAD is a linear sequential software development process model
• Emphasizes a concise development cycle using an element
based construction approach.
• If the requirements are well understood and described, and the
project scope is a constraint, the RAD process enables a
development team to create a fully functional system within a
concise time period.
Dr. Jonti Deuri, ADBU, Azara
81. SDLC Models:
RAD (Rapid Application Development)
• RAD (Rapid Application Development) is a concept that
products can be developed faster and of higher quality through:
Gathering requirements using workshops or focus groups
Prototyping and early, reiterative user testing of designs
The re-use of software components
A rigidly paced schedule that refers design improvements to the next
product version
Less formality in reviews and other team communication
Dr. Jonti Deuri, ADBU, Azara
83. RAD: (Rapid Application Development)
• Business Modelling:
The information flow among business functions is defined by
answering questions like-
what data drives the business process,
what data is generated,
who generates it,
where does the information go,
who process it and so on.
Phases of RAD:
Dr. Jonti Deuri, ADBU, Azara
84. RAD: (Rapid Application Development)
• Data Modelling:
The data collected from business modeling is refined into a
set of data objects (entities) that are needed to support the
business.
The attributes (character of each entity) are identified, and
the relation between these data objects (entities) is defined.
Phases of RAD:
Dr. Jonti Deuri, ADBU, Azara
85. RAD: (Rapid Application Development)
• Process Modelling:
The information object defined in the data modeling phase
are transformed to achieve the data flow necessary to
implement a business function.
Processing descriptions are created for adding, modifying,
deleting, or retrieving a data object.
Phases of RAD:
Dr. Jonti Deuri, ADBU, Azara
86. RAD: (Rapid Application Development)
• Application Generation:
Automated tools are used to facilitate construction of the
software; even they use the 4th GL techniques.
Phases of RAD:
Dr. Jonti Deuri, ADBU, Azara
87. RAD: (Rapid Application Development)
• Testing & Turnover:
Many of the programming components have already been
tested since RAD emphasis reuse.
This reduces the overall testing time.
But the new part must be tested, and all interfaces must be
fully exercised.
Phases of RAD:
Dr. Jonti Deuri, ADBU, Azara
88. RAD: (Rapid Application Development)
The following pointers describe the typical scenarios where RAD can be
used −
• When a system can be modularized to be delivered in an incremental
manner.
• If there is a high availability of designers for Modelling.
• If the budget permits use of automated code generating tools.
• If domain experts are available with relevant business knowledge.
• Where the requirements change during the project and working prototypes
RAD Model - Application
Dr. Jonti Deuri, ADBU, Azara
89. RAD: (Rapid Application Development)
• Changing requirements can be accommodated.
• Progress can be measured.
• Iteration time can be short with use of powerful RAD tools.
• Productivity with fewer people in a short time.
• Reduced development time.
• Increases reusability of components.
• Quick initial reviews occur.
• Encourages customer feedback.
• Integration from very beginning solves a lot of integration issues.
The advantages of the RAD Model are as follows −
Dr. Jonti Deuri, ADBU, Azara
90. RAD: (Rapid Application Development)
• Dependency on technically strong team members for identifying business
requirements.
• Only system that can be modularized can be built using RAD.
• Requires highly skilled developers/designers.
• High dependency on Modelling skills.
• Inapplicable to cheaper projects as cost of Modelling and automated code
generation is very high.
• Management complexity is more.
• Suitable for systems that are component based and scalable.
• Requires user involvement throughout the life cycle.
The disadvantages of the RAD Model are as follows −
Dr. Jonti Deuri, ADBU, Azara
91. V-Model
• V-Model also referred to as the Verification and Validation
Model.
• In this, each phase of SDLC must complete before the next
phase starts.
• It follows a sequential design process same as the waterfall
model.
• Testing of the device is planned in parallel with a
corresponding stage of development.
Dr. Jonti Deuri, ADBU, Azara
93. V-Model
• V-Model contains Verification phases on one side of the Validation phases
on the other side.
• Verification and Validation process is joined by coding phase in V-shape.
• Thus it is known as V-Model.
Verification:
• It involves a static analysis method (review) done without executing code.
• It is the process of evaluation of the product development process to find whether specified
requirements meet.
Validation:
• It involves dynamic analysis method (functional, non-functional),
• testing is done by executing code.
• Validation is the process to classify the software after the completion of the development
process to determine whether the software meets the customer expectations and
requirements.
Dr. Jonti Deuri, ADBU, Azara
94. V-Model
• This is the first step where product requirements understood from the
customer's side.
• This phase contains detailed communication to understand customer's
expectations and exact requirements.
• In this stage system engineers analyze and interpret the business of the
proposed system by studying the user requirements document.
There are the various phases of Verification Phase of V-model:
Dr. Jonti Deuri, ADBU, Azara
95. V-Model
• The baseline in selecting the architecture is that it should understand all
which typically consists of the list of modules
• brief functionality of -
each module, their interface relationships, dependencies,
database tables,
architecture diagrams,
technology detail, etc.
• The integration testing model is carried out in a particular phase.
There are the various phases of Verification Phase of V-model:
Dr. Jonti Deuri, ADBU, Azara
96. V-Model
• In the module design phase, the system breaks down into small modules.
• The detailed design of the modules is specified, which is known as Low-
Level Design
• After designing, the coding phase is started.
• Based on the requirements, a suitable programming language is decided.
• There are some guidelines and standards for coding.
• Before checking in the repository, the final build is optimized for better
performance, and the code goes through many code reviews to check the
performance
There are the various phases of Verification Phase of V-model:
Dr. Jonti Deuri, ADBU, Azara
97. V-Model
• In the V-Model, Unit Test Plans (UTPs) are developed during the module
design phase.
• These UTPs are executed to eliminate errors at code level or unit level.
• A unit is the smallest entity which can independently exist, e.g., a
program module.
• Unit testing verifies that the smallest entity can function correctly when
isolated from the rest of the codes/ units.
There are the various phases of Validation Phase of V-model:
Dr. Jonti Deuri, ADBU, Azara
98. V-Model
• Integration Test Plans are developed during the Architectural Design
Phase.
• These tests verify that groups created and tested independently can coexist
and communicate among themselves.
• System Tests Plans are developed during System Design Phase.
• Unlike Unit and Integration Test Plans, System Tests Plans are composed
by the client’s business team.
• System Test ensures that expectations from an application developer are
met.
There are the various phases of Validation Phase of V-model:
Dr. Jonti Deuri, ADBU, Azara
99. V-Model
• Acceptance testing is related to the business requirement analysis part.
• It includes testing the software product in user atmosphere.
• Acceptance tests reveal the compatibility problems with the different
systems, which is available within the user atmosphere.
• It conjointly discovers the non-functional problems like load and
performance defects within the real user atmosphere.
There are the various phases of Validation Phase of V-model:
Dr. Jonti Deuri, ADBU, Azara