SOFTWARE ENGINEERING
AND PROJECT MANAGEMENT
Course Outcomes
• CO1:Explain various process models software project
development
• CO2:Develop Software Requirement Specification for a given
application
• CO3: Prepare Software design for an application.
• CO4: Discuss various software testing methods
• CO5:Describe various aspects of software project management
2
Syllabus
• UNIT I- The Software Process
• Introduction to Software Engineering - Ethics in Software Engineering - Software Process– Software Engineering
Practice – Software Process Models: Waterfall Models – Incremental – Evolutionary and Unified Process model –
Comparison Study of Software Process Models – Agile Process and Models
• UNIT II- Requirements Analysis And Specification
• Requirement Gathering and Analysis, Software Requirement Specification: Users of SRS, Characteristics of Good
& Bad SRS, Important Categories of Customer Requirements, Documenting Functional Requirements,
Traceability, Organization of SRS, Techniques for Representing Complex Logics, Feasibility Study, Case Study:
Software Requirements Specification (SRS) for Application Project.
• UNIT III- Software Design
• Overview of the Design Process, Characteristics of Good Software Design, Cohesion and Coupling, Layered
Arrangements of Modules, Approaches to Software Design, Function Oriented Software Design: Data Flow
Diagram, Transformation of DFD model into structure chart, Object Modelling Using UML: UML Diagrams, Use
Case Model, Class diagrams, Interaction Diagrams, Activities Diagrams, State Chart Diagram
• UNIT IV –Software Coding and Testing
• Coding, Code Review, Software Documentation, Testing, Unit Testing, Black-box testing, White-box testing,
Debugging, Program Analysis Tools, Integration Testing, Testing Object-Oriented Programs, System Testing
• UNIT V – Project Management
• Software project management complexities- Responsibilities of a Software Project Manager, Project Planning,
Metrics for Project Size Estimation, Project Estimation Techniques, Empirical Estimation Techniques, COCOMO
Estimation Technique, Staffing Estimation, Scheduling, Organization and Team Structures, Staffing, Risk
Management, Configuration Management
3
Text Books and References
• Text Books:
• Roger Pressman , Bruce Maxim, “Software Engineering – A Practitioner‟s Approach”, Nineth
Edition, McGraw Hill International Edition, 2019.
• Ian Sommerville, “Software Engineering”, Tenth Edition, Pearson Education Asia, 2016.
• Reference Books:
• Rajib Mall, “Fundamentals of Software Engineering”, Fifth Edition, PHI Learning Private
Limited ,2018.
• PankajJalote, “Software Engineering, A Precise Approach”, Wiley India, 2010.
• Watts S. Humphrey., “Managing the Software Process”, Pearson Education, 2008.
• Websites:
• http://www.nptelvideos.in/2012/11/software-engineering.html
• https://www.projectengineer.net/the-earned-value-formulas/
• https://www.smartdraw.com/downloads/
• https://www.visualparadigm.com/support/documents/vpuserg
uide.js
4
UNIT I
Introduction to Software Engineering - Ethics in
Software Engineering - Software Process– Software
Engineering Practice – Software Process Models:
Waterfall Models – Incremental – Evolutionary and
Unified Process model – Comparison Study of
Software Process Models – Agile Process and
Models
5
Software Engineering
• Software:
• Executable code which serves some computational purpose.
• Software= Program + associated libraries + documentation.
• Engineering:
• Well-defined, scientific principles and methods for developing products.
• Software Product:
• Reliable and efficient software outcome from software engineering for a specific
requirements.
• Software Process:
• A software process (also knows as software methodology) is a set of related
activities that leads to the production of the software.
• Software Project:
• A Software Project is the complete procedure of software development from
requirement gathering to testing and maintenance, carried out according to the
execution methodologies, in a specified period of time to achieve
intended software product.
6
Software Engineering- Definition
• Software engineering is an engineering branch associated with
development of software product using well-defined scientific
principles, methods and procedures. The outcome of software
engineering is an efficient and reliable software product.
• IEEE defines software engineering as:
• (1) The application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance of
software; that is, the application of engineering to software.
• (2) The study of approaches as in the above statement.
7
• Software engineering is made up of two terms
that is software and engineering.
• Software refers to the set of instructions that tells
a computer what to do and how to perform any
tasks.
• Engineering is the work to build and design
something in an effective manner.
• Software engineering is an engineering branch to
develop a software product using some scientific
principles and procedures. The result will be an
reliable and good quality product.
• Software engineer is a person who develop and
maintain the software product. The study of
developing and maintaining software is called
software engineering.
8
Goals of software engineering :
• Accuracy – The software product should be accurate as specified in the srs
document.
• Reliable – Software product should have the quality of being trustworthy it
means the software product performs exact task under the specified time
slot.
• Testability – To test or evaluate the functionality of software product, the
software should have this property.
• Reusability – The code or program have the capability to used in different
applications with some changes so that new products can be created.
• Adjustable – The ability to be modified or make some changes in software
product for another purposes.
• Cost-effectiveness – To producing a good quality software product without
costing a lot of money.
• Efficiency – Making a software product without wasting time.
9
Advantages of Software Engineering :
• The software product provides user satisfaction and fulfil the
requirements of the user.
• Software engineer creates more flexible product.
• Software requirement specification provides better documentation.
• Cost saving product is made by using cost-effective techniques.
• By using some scientific rules and methods ,we can save enough
time.
• Software engineering provides comfortable working environment.
10
Disadvantages of Software Engineering:
• Changing nature of technology everyday so you have to update your
knowledge.
• You need to take training for the new technology and skills.
• Increased the level of physical and mental stress.
• Global competition
• Increased job keeping skills due to lack of job security.
• Software engineer have to work long hours sitting in front of
computer.
11
Software Evolution
12
• Software evolution is the process of developing and updating a
software for different reasons.
• In software development lifecycle, there are many phases/stages
where new requirements are emerged and implemented so
organizations prefers changing and evolving in the software rather
than making a new software product.
• Software Evolution refers to :
• changing in software
• maintaining the software
13
What are the factors where changes are needed in
the software ?
• For changing the business environment.
• New requirements are proposed during SDLC.
• For debugging.
• To change the procedures.
• In adding new resources and computer systems.
• To increase the performance of the software product.
14
How to maintain a software ?
• The software maintenance is done for increasing the system
performance.
• To detect and correct the bugs present in the software product.
• Update and change in the software
15
Types of software maintenance:
• Corrective Maintenance :: To correct any type of error present in the
software product, the corrective maintenance is used.
• Adaptive Maintenance :: As new technology emerges, the software is
updated by taking up the adaptive maintenance.
• Perfective Maintenance :: The object of perfective maintenance is to
improve software reliability and performance and adding some new
things in software product.
• Preventive Maintenance :: There is need of updation to prevention
or correction of future errors of the software.
16
Software Engineer vs Software Developer
• A software engineer is a person who applies the principles of software
engineering to the design, development, maintenance, testing, and evaluation
of computer software.
• A software developer is the one who codes and works on other different tasks
related to the development of the software.
17
Software Engineer vs Software Developer
Programs versus Software Products
Program Software Products
Usually small in size Large
Author himself is sole user Large number of users
Single developer Team of developers
Lacks proper user interface Well-designed interface
Lacks proper documentation Well documented & user-
manual prepared
Ad hoc development. Systematic development
Software Development Life Cycle (SDLC)
• SDLC Cycle represents the process of developing software. SDLC
framework includes the following steps:
19
The stages of SDLC are as follows:
• Stage1: Planning and requirement analysis
• Requirement Analysis is the most important and necessary stage in
SDLC.
• The senior members of the team perform it with inputs from all the
stakeholders and domain experts or SMEs in the industry.
• 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.
20
For Example,
• A client wants to have an application which concerns money
transactions. In this method, the requirement has to be precise like
what kind of operations will be done, how it will be done, in which
currency it will be done, etc.
• Once the required function is done, an analysis is complete with
auditing the feasibility of the growth of a product. In case of any
ambiguity, a signal is set up for further discussion.
• Once the requirement is understood, the SRS (Software Requirement
Specification) document is created. The developers should thoroughly
follow this document and also should be reviewed by the customer
for future reference.
21
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.
22
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.
23
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.
24
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.
25
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.
26
Stage7: Maintenance
• Once when the client starts using the developed systems, then the
real issues come up and requirements to be solved from time to time.
• This procedure where the care is taken for the developed product is
known as maintenance.
27
SOFTWARE PROCESS MODEL
• There are various software development models which is
used in software development life cycle to represent the
process of building a software.
• SDLC models defines all the phases of software
development.
• SDLC models can have a different methodology but the phases
remains the same.
• The development team chooses the best SDLC model to develop a
software product so that the efficient and reliable software product is
developed.
28
• By using SDLC models, you can develop a software product in a
systematic and nice way.
• Here are some important SDLC models given below-
• Waterfall Model
• Iterative Waterfall Model
• Agile Model
• Spiral Model
• Prototype Model
• V model
• RAD model
29
1. Waterfall Model :-
• In software engineering, the first software development model is
Waterfall model.
• In the 1970, Winston Royce proposed the model for software
development , the model is called the waterfall model.
• Waterfall model is also called Linear-sequential life cycle model
because this model specifies the software development process in a
linear sequence manner.
• In the waterfall model, the output of the previous phase will be the
input to the next phase in the software development life cycle.
30
• Each phase has contains various
different tasks and different
activity to complete the process.
• In this model, we cannot go back
to the previous phase to alter any
thing if we come to the next
phase.
• Overlapping is not done with the
phases/stages of software
development life cycle.
31
Advantages of waterfall model :
• It is easy to use and understand.
• No overlapping between the phases.
• This model is suitable for small projects.
• It is a linear sequence model. It works in a flow step by step
• High visibility because output of each phase is generated for
the next phase
• It provides more flexibility.
• This model provides better documentation for the employees.
• Low cost.
• It is easy to maintain.
32
Disadvantages of waterfall model :
• This model does not work well for large projects.
• We cannot go back at previous phase to change anything or any
requirement.
• No changes can be made in the project.
• It can take a long time to complete the project.
• If customer does not satisfied with the project then it is hard to
change the requirements.
• High risk to make a project
33
Iterative Waterfall Model
• Iterative Waterfall Model is the extension of the Waterfall model.
• This model is almost same as the waterfall model except some
modifications are made to improve the performance of the software
development.
• The iterative waterfall model provides customer’s feedback paths
from each phase to its previous phases.
• There is no feedback path provided for feasibility study phase, so if
any change is required in that phase then iterative model doesn’t
have scope for modification or making corrections.
34
• Iterative waterfall allows to go
back on the previous phase
and change the requirements
and some modification can
done if necessary.
• This model reduces the
developer’s effort and time
required to detect and correct
the errors.
• In iterative waterfall model,
next phase can only begins
when the previous phase is
completed as waterfall model.
35
Advantages of Iterative Waterfall Model :-
• Iterative waterfall model is very easy to understand and
use.
• Every phase contains feedback path to its previous phase.
• This is an simple to make changes or any modifications at
any phase.
• By using this model, developer can completer project
earlier.
• Customer involvement is not required during the
software development.
• This model is suitable for large and complex projects.
36
Disadvantages of Iterative Waterfall Model :-
• There is no feedback path for feasibility study phase.
• This model is not suitable if requirements are not clear.
• It can be more costly.
• There is no process for risk handling.
• Customer can view the final project. there is no prototype for taking
customer reviews.
• This model does not work well for short projects.
• If modifications are required repeatedly then it can be more complex
projects.
37
Evolutionary Process Model
• Evolutionary process model resembles the iterative enhancement
model.
• The same phases are defined for the waterfall model occurs here in a
cyclical fashion.
• This model differs from the iterative enhancement model in the
sense that this does not require a useful product at the end of each
cycle. In evolutionary development, requirements are implemented
by category rather than by priority.
• Following are the evolutionary process models.
1. The prototyping model
2. The spiral model
38
Spiral Model
• In 1986, the spiral model was proposed by Barry Boehm.
• Spiral model is based on the evolutionary model which is the
combination of linear sequential model and iterative software
development model.
• This model is suitable for large and complex projects.
• Spiral model is based on spirals (iterations) to develop a project.
• A phase in the software development life cycle is a loop of the spiral.
• This model works very well for large projects because it involves
constant improvements until a final product is not build.
39
• The whole development process is
completed in the 4 phases.
• The spiral model has four phases in
a spiral:
• Planning
• Risk analysis
• Development and testing
• Evaluation
40
Phases of spiral model :
• Planning :
• The requirements are collected from the clients. Feasibility study is
done in this phase. It includes cost estimation, schedule, objectives
are defined and other resources for the iteration to develop a
software project.
• Risk analysis :
• In the second phase of development, risks are identified and find
different solutions to remove risks. If any risk is find out during the
phase then alternate solutions are designed and implemented the
best way among them.
41
• Development and testing :
• After risk analysis phase is completed, the software product is
developed and tested at the end of each iteration so there is
development and testing applied at same phase.
• Evaluation :
• In the last phase, the feedback is taken from the customer and
evaluate the developed project after completion of each iteration. To
carry on next iteration, evaluation phase is completed.
42
Advantages of Spiral Model :
• This model is good for large and complex projects.
• Updates are received to the customer at each iteration.
• Spiral model is suitable to change the requirements at any time, any
phase.
• Risks are analyzed after each iteration.
• Documentation is clearly defined and understandable.
43
Disadvantages of Spiral Model :
• Spiral model is not good for small projects.
• This model is more complex and difficult to understand if a new
employee is entered in the project development.
• It can be much expensive.
• Fast development and software is built at the SDLC .
• Not defined end points of the project , so it can take a long time to
develop or iterations can be go infinitely.
44
Prototype Model
• Software Prototyping :
• Software Prototyping is the process of creating a prototype of the
software product. the prototype is an incomplete form of software
program to evaluate customer satisfaction.
• Prototype model is the extension of iterative waterfall model.
• Prototype model is one of the most popular used software
development model in which prototype is built and tested to
evaluate the customer satisfaction.
45
• Prototype model proposes the system in which a prototype is
developed before developed the whole software product.
• This model is used when all the requirements and resources are not
clearly defined at the beginning of the phases.
46
47
Steps followed by the Prototyping Model :-
• Requirement Recognition and Gathering : This step requires primary
requirements so that a prototype is created.
• Prototype Development : Prototype is built on the basis of the
requirement of the customer and this is developed to take the
customer’s reviews.
• Customer Reviews : Prototype is send to the customer and take
reviews of the customer. After taking the customer reviews,
developer starts to make the whole software product. If customer is
not satisfied then it can be discarded and again create the prototype.
48
Advantages of Prototype Model :-
• It provides higher customer satisfaction and get reviews from
customers.
• Requirements can change easily according to the customer. It means
this model has high adaptability.
• Errors can be removed so fast and early hence it saves a lot of cost.
• It gives high flexibility.
• Prototype model increases the involvement of customers.
• Developers can identify the missing functionality very easily.
• This model helps to reduce the risks related to the software.
49
Disadvantages of prototype model :-
• This model can be more costly.
• Prototype model can be more complex if a prototype is reviewed by
the customers again and again.
• It does not provide clear documents.
• This model can take more time to develop a software product.
• If a customer refuses to accept the prototype ,then there may be
wastage of a lot of cost and developer’s efforts.
50
RAD Model
• Rapid application development model firstly introduced by IBM in
1980’s.
• RAD Model is generally based on the prototype model and iterative
approach.
• This model is used to completing the process of software product
developing in a very short time.
• The entire project is divided into various small modules and each
module is allocated to different party to finish the working of the
small modules. After that, all small modules are combined together
to obtain the final project.
51
• If your project can be divided into many parts or modules then the
Rapid application development model is used.
• Each module is developed like the waterfall model.
• The process of RAD model is building the Rapid prototype and deliver
it to the clients and taking the reviews from them . If customer is
satisfied then SRS document is created and designing phase is start.
52
53
Process of RAD Model :-
• There are four phases in this model :-
• 1-Requirement Analysis:-
• There are various approaches which is used in requirement planning
like brainstorming , task analysis ,form analysis ,user scenario etc.
This phase consists plan or designing of each module which contains
data, methods and other resources.
• 2- Customer Evaluation:-
• In this phase, developer evaluates the customer satisfaction by
delivering the prototype and taking the reviews from them. If the
customer is satisfied then developer starts implementation.
54
• 3- Construction :-
• Prototype is refining and all the modification ,correction and
improvements is done in this phase. This phase helps us to convert
the process and modules into the final working product.
• 4- Cut Over :-
• This is the last stage of the RAD model. In this phase, all the
independent modules are evaluated separately .The tools and sub-
parts of product makes the testing of the product very easy.
55
Advantages of RAD Model :-
• RAD model completes the project in a short period of time.
• The progress and development of project can be check on various
stages .
• This model uses the powerful techniques and tools.
• reduce cost because very less developers are needed.
• Prototype is delivered to the customer so the customer is satisfied.
• It has more flexibility and adaptability to acquire the new
requirements.
• Reusability of the components is increased.
56
Disadvantages of RAD Model :-
• Team leader must to do work with developers to complete the work
on time.
• Customer involvement are needed
• This model works only when the requirements are clearly specified.
• This model can be more complex if prototype is refined again and
again.
• RAD model is not suitable for the short projects.
57
V Model
• V-model is also a part of SDLC MODEL .
• V- model is also called Verification and Validation model .
• This model is the extension of the Waterfall Model.
• The V form of the V model shows the various phases of the
verification and validation phases.
• In this model one phase for verification and other for validation and
the coding phase joins the both phases verification and Validation .so
that makes the V shape so this model is called V-model.
58
• This process starts from the top left i.e. verification phase towards
the top right phases i.e. validation phases and follows a linear
improvement like waterfall model.
• This model mainly use for testing phase .
• The next phase of development start after completing first phase.
• In the waterfall model testers involves in the last phase of the model
but this model overcomes the drawbacks of the waterfall model. In V
model ,testers involves in the early phases of the development
process.
59
60
Process of V Model:
• This model consists two main phases :
1- Verification phase
2- Validation phase
• Verification :
• Verification is the process to verify that the software product
development phase to determine that specified requirements meet
or not ? In this phase, there is no need to execute the code for
testing.
• Validation :
• Validation is the process to verify that the software product fulfills
the customer requirements and expectations or not. In this phase,
there is need of execution of the code.
61
Phases of Verification Stage:
• Requirement Analysis : In this phase, developers collects information
from customers about the software.
• System Design : When the requirements are defined clearly then
implement and design the complete hardware and communication
setup for developing product and choose the programming language
and databases.
• System Architecture : Architectural specifications are designed in this
phase. The system design is splits further into modules taking up
different working. This is also called High Level Design (HLD). In this
stage, communication and transformation of data between the
internal modules and the outer world is clearly specified.
62
• Module Design : In this phase the system breaks down into small
modules. The detailed design of modules is specified, it is also called
the Low-Level Design (LLD).
• Implementation/ Coding Phase : This is the last phase of the V-Shape
model. Module design is transformed into the code. The coding is
done based on the coding principles and standards in a particular
selected programming language.
63
phases of Validation Stage :
• Unit Testing : Unit testing is a type of white box testing .These Unit
Test Plans are executed to remove bugs at code level. Unit Test Plans
are created during the module design phase.
• Integration Phase : In the integration testing, the integration test
cases are executed which were developed in the High level design
phase. Integration testing is a testing process in which unit tested
modules are integrated and evaluated. It verifies that the modules
work together as expected or not .
64
• System Testing : System testing is done corresponds with the system
design phase. It tests the functional and non-functional requirements
and evaluate the whole system functionality and the communication
of the system with external systems.
• Acceptance Testing : This testing is done to check that the delivered
system meets user’s requirement or not? Nonfunctional testing such
as Load, Stress etc. are also done in this phase.
65
Advantages of V Model :-
• 1- It works very well for small project according to their requirement .
• 2- This model is very simple, easy and useful.
• 3- This is a high quality model and all the phases are completed at
once.
• 4- This model is use to track the process of project management .
• 5- This model saves a lot of time and efforts.
• 6- Testing is starting at the initial phase so there is no issue of bugs.
• 7- Client’s requirements are not clearly specified.
66
Disadvantages of V Model :-
• 1- This model can not be use for large project.
• 2- This model is not good if customer’s requirements are not clear.
• 3- There are lots of risk.
• 4- This model is not easy for complex projects .
• 5- Client have no prototype and involvement during the software
development.
• 6- This model contains less flexibility.
• 7- It is hard to go back and alter the working of the system if new
requirements are met.
67
AGILE MODEL
• AGILE methodology is a practice that promotes continuous iteration of
development and testing throughout the software development lifecycle of the
project.
• Both development and testing activities are concurrent unlike the Waterfall
model
68
The agile software development emphasizes on four
core values.
• Individual and team interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
69
•What is Agile Methodology?
•Agile Vs Waterfall Method
•Scrum
• Product Backlog
• Scrum Practices
• Process flow of Scrum Methodologies
•eXtreme Programming (XP)
• Phases of eXtreme programming:
•Crystal Methodologies
•Dynamic Software Development Method (DSDM)
•Feature Driven Development (FDD)
•Lean Software Development
•Kanban
•Agile metrics
70
Agile Vs Waterfall Method
• Agile and Waterfall model are two different methods for software
development process. Though they are different in their approach,
both methods are useful at times, depending on the requirement and
the type of the project.
71
Agile Model Waterfall Model
•Agile method proposes
incremental and iterative
approach to software design
•Development of the
software flows sequentially
from start point to end point.
•The agile process is
broken into individual models
that designers work on
•The design process is not
broken into an individual
models
•The customer has early and
frequent opportunities to look
at the product and make
decision and changes to the
project
•The customer can only see
the product at the end of the
project
•Agile model is considered
unstructured compared to
the waterfall model
•Waterfall model are more
secure because they are so
plan oriented
72
•Small projects can be
implemented very quickly. For
large projects, it is difficult to
estimate the development time.
•All sorts of project can be
estimated and completed.
•Error can be fixed in the middle
of the project.
•Only at the end, the whole
product is tested. If the
requirement error is found or any
changes have to be made, the
project has to start from the
beginning
•Development process is iterative,
and the project is executed in
short (2-4) weeks iterations.
Planning is very less.
•The development process is
phased, and the phase is much
bigger than iteration. Every phase
ends with the detailed description
of the next phase.
•Documentation attends less
priority than software
development
•Documentation is a top priority
and can even use for training staff
and upgrade the software with
another team 73
•Every iteration has its own testing
phase. It allows implementing
regression testing every time new
functions or logic are released.
•Only after the development phase,
the testing phase is executed
because separate parts are not fully
functional.
•In agile testing when an iteration end,
shippable features of the product is
delivered to the customer. New
features are usable right after
shipment. It is useful when you have
good contact with customers.
•All features developed are delivered
at once after the long implementation
phase.
•Testers and developers work
together
•Testers work separately from
developers
•At the end of every sprint, user
acceptance is performed
•User acceptance is performed at the
end of the project.
•It requires close communication with
developers and together analyze
requirements and planning
•Developer does not involve in
requirement and planning process.
Usually, time delays between tests
and coding
74
Agile Methodology
75
Scrum
•SCRUM is an agile development method which
concentrates specifically on how to manage tasks
within a team-based development environment.
•Basically, Scrum is derived from activity that
occurs during a rugby match. Scrum believes in
empowering the development team and
advocates working in small teams (say- 7 to 9
members).
76
It consists of three roles, and their
responsibilities are explained as follows:
77
• Scrum Master
• Master is responsible for setting up the team, sprint meeting and removes
obstacles to progress
• Product owner
• The Product Owner creates product backlog, prioritizes the backlog and is
responsible for the delivery of the functionality at each iteration
• Scrum Team
• Team manages its own work and organizes the work to complete the sprint or
cycle
78
Product Backlog
• This is a repository where requirements are tracked with details on
the no of requirements(user stories) to be completed for each
release. It should be maintained and prioritized by Product Owner,
and it should be distributed to the scrum team. Team can also
request for a new requirement addition or modification or deletion
79
Scrum Practices
Practices are described in detailed:
80
Process flow of Scrum Methodologies:
• Process flow of scrum testing is as follows:
• Each iteration of a scrum is known as Sprint
• Product backlog is a list where all details are entered to get the end-
product
• During each Sprint, top user stories of Product backlog are selected
and turned into Sprint backlog
• Team works on the defined sprint backlog
• Team checks for the daily work
• At the end of the sprint, team delivers product functionality
81
eXtreme Programming (XP)
• Extreme Programming technique is very helpful when there is
constantly changing demands or requirements from the customers or
when they are not sure about the functionality of the system.
• It advocates frequent "releases" of the product in short development
cycles, which inherently improves the productivity of the system and
also introduces a checkpoint where any customer requirements can
be easily implemented.
• The XP develops software keeping customer in the target.
82
83
• Business requirements are gathered in terms of stories. All those
stories are stored in a place called the parking lot.
• In this type of methodology, releases are based on the shorter cycles
called Iterations with span of 14 days time period. Each iteration
includes phases like coding, unit testing and system testing where at
each phase some minor or major functionality will be built in the
application.
84
Phases of eXtreme programming:
•There are 6 phases available in Agile XP
method, and those are explained as follows:
•Planning
•Analysis
•Design
•Execution
•Wrapping
•Closure
85
• Planning
• Identification of stakeholders and sponsors
• Infrastructure Requirements
• Security related information and gathering
• Service Level Agreements and its conditions
• Analysis
• Capturing of Stories in Parking lot
• Prioritize stories in Parking lot
• Scrubbing of stories for estimation
• Define Iteration SPAN(Time)
• Resource planning for both Development and QA teams
86
• Design
• Break down of tasks
• Test Scenario preparation for each task
• Regression Automation Framework
• Execution
• Coding
• Unit Testing
• Execution of Manual test scenarios
• Defect Report generation
• Conversion of Manual to Automation regression test cases
• Mid Iteration review
• End of Iteration review
87
• Wrapping
• Small Releases
• Regression Testing
• Demos and reviews
• Develop new stories based on the need
• Process Improvements based on end of iteration review comments
• Closure
• Pilot Launch
• Training
• Production Launch
• SLA Guarantee assurance
• Review SOA strategy
• Production Support
88
• There are two storyboards available to track the work on a daily
basis, and those are listed below for reference.
• Story Cardboard
• This is a traditional way of collecting all the stories in a board in the form of
stick notes to track daily XP activities. As this manual activity involves more
effort and time, it is better to switch to an online form.
• Online Storyboard
• Online tool Storyboard can be used to store the stories. Several teams can
use it for different purposes.
89
END OF UNIT I
90

SOFTWARE ENGINEERING-UNIT-1SOFTWARE ENGINEERING

  • 1.
  • 2.
    Course Outcomes • CO1:Explainvarious process models software project development • CO2:Develop Software Requirement Specification for a given application • CO3: Prepare Software design for an application. • CO4: Discuss various software testing methods • CO5:Describe various aspects of software project management 2
  • 3.
    Syllabus • UNIT I-The Software Process • Introduction to Software Engineering - Ethics in Software Engineering - Software Process– Software Engineering Practice – Software Process Models: Waterfall Models – Incremental – Evolutionary and Unified Process model – Comparison Study of Software Process Models – Agile Process and Models • UNIT II- Requirements Analysis And Specification • Requirement Gathering and Analysis, Software Requirement Specification: Users of SRS, Characteristics of Good & Bad SRS, Important Categories of Customer Requirements, Documenting Functional Requirements, Traceability, Organization of SRS, Techniques for Representing Complex Logics, Feasibility Study, Case Study: Software Requirements Specification (SRS) for Application Project. • UNIT III- Software Design • Overview of the Design Process, Characteristics of Good Software Design, Cohesion and Coupling, Layered Arrangements of Modules, Approaches to Software Design, Function Oriented Software Design: Data Flow Diagram, Transformation of DFD model into structure chart, Object Modelling Using UML: UML Diagrams, Use Case Model, Class diagrams, Interaction Diagrams, Activities Diagrams, State Chart Diagram • UNIT IV –Software Coding and Testing • Coding, Code Review, Software Documentation, Testing, Unit Testing, Black-box testing, White-box testing, Debugging, Program Analysis Tools, Integration Testing, Testing Object-Oriented Programs, System Testing • UNIT V – Project Management • Software project management complexities- Responsibilities of a Software Project Manager, Project Planning, Metrics for Project Size Estimation, Project Estimation Techniques, Empirical Estimation Techniques, COCOMO Estimation Technique, Staffing Estimation, Scheduling, Organization and Team Structures, Staffing, Risk Management, Configuration Management 3
  • 4.
    Text Books andReferences • Text Books: • Roger Pressman , Bruce Maxim, “Software Engineering – A Practitioner‟s Approach”, Nineth Edition, McGraw Hill International Edition, 2019. • Ian Sommerville, “Software Engineering”, Tenth Edition, Pearson Education Asia, 2016. • Reference Books: • Rajib Mall, “Fundamentals of Software Engineering”, Fifth Edition, PHI Learning Private Limited ,2018. • PankajJalote, “Software Engineering, A Precise Approach”, Wiley India, 2010. • Watts S. Humphrey., “Managing the Software Process”, Pearson Education, 2008. • Websites: • http://www.nptelvideos.in/2012/11/software-engineering.html • https://www.projectengineer.net/the-earned-value-formulas/ • https://www.smartdraw.com/downloads/ • https://www.visualparadigm.com/support/documents/vpuserg uide.js 4
  • 5.
    UNIT I Introduction toSoftware Engineering - Ethics in Software Engineering - Software Process– Software Engineering Practice – Software Process Models: Waterfall Models – Incremental – Evolutionary and Unified Process model – Comparison Study of Software Process Models – Agile Process and Models 5
  • 6.
    Software Engineering • Software: •Executable code which serves some computational purpose. • Software= Program + associated libraries + documentation. • Engineering: • Well-defined, scientific principles and methods for developing products. • Software Product: • Reliable and efficient software outcome from software engineering for a specific requirements. • Software Process: • A software process (also knows as software methodology) is a set of related activities that leads to the production of the software. • Software Project: • A Software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product. 6
  • 7.
    Software Engineering- Definition •Software engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product. • IEEE defines software engineering as: • (1) The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. • (2) The study of approaches as in the above statement. 7
  • 8.
    • Software engineeringis made up of two terms that is software and engineering. • Software refers to the set of instructions that tells a computer what to do and how to perform any tasks. • Engineering is the work to build and design something in an effective manner. • Software engineering is an engineering branch to develop a software product using some scientific principles and procedures. The result will be an reliable and good quality product. • Software engineer is a person who develop and maintain the software product. The study of developing and maintaining software is called software engineering. 8
  • 9.
    Goals of softwareengineering : • Accuracy – The software product should be accurate as specified in the srs document. • Reliable – Software product should have the quality of being trustworthy it means the software product performs exact task under the specified time slot. • Testability – To test or evaluate the functionality of software product, the software should have this property. • Reusability – The code or program have the capability to used in different applications with some changes so that new products can be created. • Adjustable – The ability to be modified or make some changes in software product for another purposes. • Cost-effectiveness – To producing a good quality software product without costing a lot of money. • Efficiency – Making a software product without wasting time. 9
  • 10.
    Advantages of SoftwareEngineering : • The software product provides user satisfaction and fulfil the requirements of the user. • Software engineer creates more flexible product. • Software requirement specification provides better documentation. • Cost saving product is made by using cost-effective techniques. • By using some scientific rules and methods ,we can save enough time. • Software engineering provides comfortable working environment. 10
  • 11.
    Disadvantages of SoftwareEngineering: • Changing nature of technology everyday so you have to update your knowledge. • You need to take training for the new technology and skills. • Increased the level of physical and mental stress. • Global competition • Increased job keeping skills due to lack of job security. • Software engineer have to work long hours sitting in front of computer. 11
  • 12.
  • 13.
    • Software evolutionis the process of developing and updating a software for different reasons. • In software development lifecycle, there are many phases/stages where new requirements are emerged and implemented so organizations prefers changing and evolving in the software rather than making a new software product. • Software Evolution refers to : • changing in software • maintaining the software 13
  • 14.
    What are thefactors where changes are needed in the software ? • For changing the business environment. • New requirements are proposed during SDLC. • For debugging. • To change the procedures. • In adding new resources and computer systems. • To increase the performance of the software product. 14
  • 15.
    How to maintaina software ? • The software maintenance is done for increasing the system performance. • To detect and correct the bugs present in the software product. • Update and change in the software 15
  • 16.
    Types of softwaremaintenance: • Corrective Maintenance :: To correct any type of error present in the software product, the corrective maintenance is used. • Adaptive Maintenance :: As new technology emerges, the software is updated by taking up the adaptive maintenance. • Perfective Maintenance :: The object of perfective maintenance is to improve software reliability and performance and adding some new things in software product. • Preventive Maintenance :: There is need of updation to prevention or correction of future errors of the software. 16
  • 17.
    Software Engineer vsSoftware Developer • A software engineer is a person who applies the principles of software engineering to the design, development, maintenance, testing, and evaluation of computer software. • A software developer is the one who codes and works on other different tasks related to the development of the software. 17 Software Engineer vs Software Developer
  • 18.
    Programs versus SoftwareProducts Program Software Products Usually small in size Large Author himself is sole user Large number of users Single developer Team of developers Lacks proper user interface Well-designed interface Lacks proper documentation Well documented & user- manual prepared Ad hoc development. Systematic development
  • 19.
    Software Development LifeCycle (SDLC) • SDLC Cycle represents the process of developing software. SDLC framework includes the following steps: 19
  • 20.
    The stages ofSDLC are as follows: • Stage1: Planning and requirement analysis • Requirement Analysis is the most important and necessary stage in SDLC. • The senior members of the team perform it with inputs from all the stakeholders and domain experts or SMEs in the industry. • 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. 20
  • 21.
    For Example, • Aclient wants to have an application which concerns money transactions. In this method, the requirement has to be precise like what kind of operations will be done, how it will be done, in which currency it will be done, etc. • Once the required function is done, an analysis is complete with auditing the feasibility of the growth of a product. In case of any ambiguity, a signal is set up for further discussion. • Once the requirement is understood, the SRS (Software Requirement Specification) document is created. The developers should thoroughly follow this document and also should be reviewed by the customer for future reference. 21
  • 22.
    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. 22
  • 23.
    Stage3: Designing theSoftware • 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. 23
  • 24.
    Stage4: Developing theproject • 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. 24
  • 25.
    Stage5: Testing • Afterthe 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. 25
  • 26.
    Stage6: Deployment • Oncethe 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. 26
  • 27.
    Stage7: Maintenance • Oncewhen the client starts using the developed systems, then the real issues come up and requirements to be solved from time to time. • This procedure where the care is taken for the developed product is known as maintenance. 27
  • 28.
    SOFTWARE PROCESS MODEL •There are various software development models which is used in software development life cycle to represent the process of building a software. • SDLC models defines all the phases of software development. • SDLC models can have a different methodology but the phases remains the same. • The development team chooses the best SDLC model to develop a software product so that the efficient and reliable software product is developed. 28
  • 29.
    • By usingSDLC models, you can develop a software product in a systematic and nice way. • Here are some important SDLC models given below- • Waterfall Model • Iterative Waterfall Model • Agile Model • Spiral Model • Prototype Model • V model • RAD model 29
  • 30.
    1. Waterfall Model:- • In software engineering, the first software development model is Waterfall model. • In the 1970, Winston Royce proposed the model for software development , the model is called the waterfall model. • Waterfall model is also called Linear-sequential life cycle model because this model specifies the software development process in a linear sequence manner. • In the waterfall model, the output of the previous phase will be the input to the next phase in the software development life cycle. 30
  • 31.
    • Each phasehas contains various different tasks and different activity to complete the process. • In this model, we cannot go back to the previous phase to alter any thing if we come to the next phase. • Overlapping is not done with the phases/stages of software development life cycle. 31
  • 32.
    Advantages of waterfallmodel : • It is easy to use and understand. • No overlapping between the phases. • This model is suitable for small projects. • It is a linear sequence model. It works in a flow step by step • High visibility because output of each phase is generated for the next phase • It provides more flexibility. • This model provides better documentation for the employees. • Low cost. • It is easy to maintain. 32
  • 33.
    Disadvantages of waterfallmodel : • This model does not work well for large projects. • We cannot go back at previous phase to change anything or any requirement. • No changes can be made in the project. • It can take a long time to complete the project. • If customer does not satisfied with the project then it is hard to change the requirements. • High risk to make a project 33
  • 34.
    Iterative Waterfall Model •Iterative Waterfall Model is the extension of the Waterfall model. • This model is almost same as the waterfall model except some modifications are made to improve the performance of the software development. • The iterative waterfall model provides customer’s feedback paths from each phase to its previous phases. • There is no feedback path provided for feasibility study phase, so if any change is required in that phase then iterative model doesn’t have scope for modification or making corrections. 34
  • 35.
    • Iterative waterfallallows to go back on the previous phase and change the requirements and some modification can done if necessary. • This model reduces the developer’s effort and time required to detect and correct the errors. • In iterative waterfall model, next phase can only begins when the previous phase is completed as waterfall model. 35
  • 36.
    Advantages of IterativeWaterfall Model :- • Iterative waterfall model is very easy to understand and use. • Every phase contains feedback path to its previous phase. • This is an simple to make changes or any modifications at any phase. • By using this model, developer can completer project earlier. • Customer involvement is not required during the software development. • This model is suitable for large and complex projects. 36
  • 37.
    Disadvantages of IterativeWaterfall Model :- • There is no feedback path for feasibility study phase. • This model is not suitable if requirements are not clear. • It can be more costly. • There is no process for risk handling. • Customer can view the final project. there is no prototype for taking customer reviews. • This model does not work well for short projects. • If modifications are required repeatedly then it can be more complex projects. 37
  • 38.
    Evolutionary Process Model •Evolutionary process model resembles the iterative enhancement model. • The same phases are defined for the waterfall model occurs here in a cyclical fashion. • This model differs from the iterative enhancement model in the sense that this does not require a useful product at the end of each cycle. In evolutionary development, requirements are implemented by category rather than by priority. • Following are the evolutionary process models. 1. The prototyping model 2. The spiral model 38
  • 39.
    Spiral Model • In1986, the spiral model was proposed by Barry Boehm. • Spiral model is based on the evolutionary model which is the combination of linear sequential model and iterative software development model. • This model is suitable for large and complex projects. • Spiral model is based on spirals (iterations) to develop a project. • A phase in the software development life cycle is a loop of the spiral. • This model works very well for large projects because it involves constant improvements until a final product is not build. 39
  • 40.
    • The wholedevelopment process is completed in the 4 phases. • The spiral model has four phases in a spiral: • Planning • Risk analysis • Development and testing • Evaluation 40
  • 41.
    Phases of spiralmodel : • Planning : • The requirements are collected from the clients. Feasibility study is done in this phase. It includes cost estimation, schedule, objectives are defined and other resources for the iteration to develop a software project. • Risk analysis : • In the second phase of development, risks are identified and find different solutions to remove risks. If any risk is find out during the phase then alternate solutions are designed and implemented the best way among them. 41
  • 42.
    • Development andtesting : • After risk analysis phase is completed, the software product is developed and tested at the end of each iteration so there is development and testing applied at same phase. • Evaluation : • In the last phase, the feedback is taken from the customer and evaluate the developed project after completion of each iteration. To carry on next iteration, evaluation phase is completed. 42
  • 43.
    Advantages of SpiralModel : • This model is good for large and complex projects. • Updates are received to the customer at each iteration. • Spiral model is suitable to change the requirements at any time, any phase. • Risks are analyzed after each iteration. • Documentation is clearly defined and understandable. 43
  • 44.
    Disadvantages of SpiralModel : • Spiral model is not good for small projects. • This model is more complex and difficult to understand if a new employee is entered in the project development. • It can be much expensive. • Fast development and software is built at the SDLC . • Not defined end points of the project , so it can take a long time to develop or iterations can be go infinitely. 44
  • 45.
    Prototype Model • SoftwarePrototyping : • Software Prototyping is the process of creating a prototype of the software product. the prototype is an incomplete form of software program to evaluate customer satisfaction. • Prototype model is the extension of iterative waterfall model. • Prototype model is one of the most popular used software development model in which prototype is built and tested to evaluate the customer satisfaction. 45
  • 46.
    • Prototype modelproposes the system in which a prototype is developed before developed the whole software product. • This model is used when all the requirements and resources are not clearly defined at the beginning of the phases. 46
  • 47.
  • 48.
    Steps followed bythe Prototyping Model :- • Requirement Recognition and Gathering : This step requires primary requirements so that a prototype is created. • Prototype Development : Prototype is built on the basis of the requirement of the customer and this is developed to take the customer’s reviews. • Customer Reviews : Prototype is send to the customer and take reviews of the customer. After taking the customer reviews, developer starts to make the whole software product. If customer is not satisfied then it can be discarded and again create the prototype. 48
  • 49.
    Advantages of PrototypeModel :- • It provides higher customer satisfaction and get reviews from customers. • Requirements can change easily according to the customer. It means this model has high adaptability. • Errors can be removed so fast and early hence it saves a lot of cost. • It gives high flexibility. • Prototype model increases the involvement of customers. • Developers can identify the missing functionality very easily. • This model helps to reduce the risks related to the software. 49
  • 50.
    Disadvantages of prototypemodel :- • This model can be more costly. • Prototype model can be more complex if a prototype is reviewed by the customers again and again. • It does not provide clear documents. • This model can take more time to develop a software product. • If a customer refuses to accept the prototype ,then there may be wastage of a lot of cost and developer’s efforts. 50
  • 51.
    RAD Model • Rapidapplication development model firstly introduced by IBM in 1980’s. • RAD Model is generally based on the prototype model and iterative approach. • This model is used to completing the process of software product developing in a very short time. • The entire project is divided into various small modules and each module is allocated to different party to finish the working of the small modules. After that, all small modules are combined together to obtain the final project. 51
  • 52.
    • If yourproject can be divided into many parts or modules then the Rapid application development model is used. • Each module is developed like the waterfall model. • The process of RAD model is building the Rapid prototype and deliver it to the clients and taking the reviews from them . If customer is satisfied then SRS document is created and designing phase is start. 52
  • 53.
  • 54.
    Process of RADModel :- • There are four phases in this model :- • 1-Requirement Analysis:- • There are various approaches which is used in requirement planning like brainstorming , task analysis ,form analysis ,user scenario etc. This phase consists plan or designing of each module which contains data, methods and other resources. • 2- Customer Evaluation:- • In this phase, developer evaluates the customer satisfaction by delivering the prototype and taking the reviews from them. If the customer is satisfied then developer starts implementation. 54
  • 55.
    • 3- Construction:- • Prototype is refining and all the modification ,correction and improvements is done in this phase. This phase helps us to convert the process and modules into the final working product. • 4- Cut Over :- • This is the last stage of the RAD model. In this phase, all the independent modules are evaluated separately .The tools and sub- parts of product makes the testing of the product very easy. 55
  • 56.
    Advantages of RADModel :- • RAD model completes the project in a short period of time. • The progress and development of project can be check on various stages . • This model uses the powerful techniques and tools. • reduce cost because very less developers are needed. • Prototype is delivered to the customer so the customer is satisfied. • It has more flexibility and adaptability to acquire the new requirements. • Reusability of the components is increased. 56
  • 57.
    Disadvantages of RADModel :- • Team leader must to do work with developers to complete the work on time. • Customer involvement are needed • This model works only when the requirements are clearly specified. • This model can be more complex if prototype is refined again and again. • RAD model is not suitable for the short projects. 57
  • 58.
    V Model • V-modelis also a part of SDLC MODEL . • V- model is also called Verification and Validation model . • This model is the extension of the Waterfall Model. • The V form of the V model shows the various phases of the verification and validation phases. • In this model one phase for verification and other for validation and the coding phase joins the both phases verification and Validation .so that makes the V shape so this model is called V-model. 58
  • 59.
    • This processstarts from the top left i.e. verification phase towards the top right phases i.e. validation phases and follows a linear improvement like waterfall model. • This model mainly use for testing phase . • The next phase of development start after completing first phase. • In the waterfall model testers involves in the last phase of the model but this model overcomes the drawbacks of the waterfall model. In V model ,testers involves in the early phases of the development process. 59
  • 60.
  • 61.
    Process of VModel: • This model consists two main phases : 1- Verification phase 2- Validation phase • Verification : • Verification is the process to verify that the software product development phase to determine that specified requirements meet or not ? In this phase, there is no need to execute the code for testing. • Validation : • Validation is the process to verify that the software product fulfills the customer requirements and expectations or not. In this phase, there is need of execution of the code. 61
  • 62.
    Phases of VerificationStage: • Requirement Analysis : In this phase, developers collects information from customers about the software. • System Design : When the requirements are defined clearly then implement and design the complete hardware and communication setup for developing product and choose the programming language and databases. • System Architecture : Architectural specifications are designed in this phase. The system design is splits further into modules taking up different working. This is also called High Level Design (HLD). In this stage, communication and transformation of data between the internal modules and the outer world is clearly specified. 62
  • 63.
    • Module Design: In this phase the system breaks down into small modules. The detailed design of modules is specified, it is also called the Low-Level Design (LLD). • Implementation/ Coding Phase : This is the last phase of the V-Shape model. Module design is transformed into the code. The coding is done based on the coding principles and standards in a particular selected programming language. 63
  • 64.
    phases of ValidationStage : • Unit Testing : Unit testing is a type of white box testing .These Unit Test Plans are executed to remove bugs at code level. Unit Test Plans are created during the module design phase. • Integration Phase : In the integration testing, the integration test cases are executed which were developed in the High level design phase. Integration testing is a testing process in which unit tested modules are integrated and evaluated. It verifies that the modules work together as expected or not . 64
  • 65.
    • System Testing: System testing is done corresponds with the system design phase. It tests the functional and non-functional requirements and evaluate the whole system functionality and the communication of the system with external systems. • Acceptance Testing : This testing is done to check that the delivered system meets user’s requirement or not? Nonfunctional testing such as Load, Stress etc. are also done in this phase. 65
  • 66.
    Advantages of VModel :- • 1- It works very well for small project according to their requirement . • 2- This model is very simple, easy and useful. • 3- This is a high quality model and all the phases are completed at once. • 4- This model is use to track the process of project management . • 5- This model saves a lot of time and efforts. • 6- Testing is starting at the initial phase so there is no issue of bugs. • 7- Client’s requirements are not clearly specified. 66
  • 67.
    Disadvantages of VModel :- • 1- This model can not be use for large project. • 2- This model is not good if customer’s requirements are not clear. • 3- There are lots of risk. • 4- This model is not easy for complex projects . • 5- Client have no prototype and involvement during the software development. • 6- This model contains less flexibility. • 7- It is hard to go back and alter the working of the system if new requirements are met. 67
  • 68.
    AGILE MODEL • AGILEmethodology is a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. • Both development and testing activities are concurrent unlike the Waterfall model 68
  • 69.
    The agile softwaredevelopment emphasizes on four core values. • Individual and team interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan 69
  • 70.
    •What is AgileMethodology? •Agile Vs Waterfall Method •Scrum • Product Backlog • Scrum Practices • Process flow of Scrum Methodologies •eXtreme Programming (XP) • Phases of eXtreme programming: •Crystal Methodologies •Dynamic Software Development Method (DSDM) •Feature Driven Development (FDD) •Lean Software Development •Kanban •Agile metrics 70
  • 71.
    Agile Vs WaterfallMethod • Agile and Waterfall model are two different methods for software development process. Though they are different in their approach, both methods are useful at times, depending on the requirement and the type of the project. 71
  • 72.
    Agile Model WaterfallModel •Agile method proposes incremental and iterative approach to software design •Development of the software flows sequentially from start point to end point. •The agile process is broken into individual models that designers work on •The design process is not broken into an individual models •The customer has early and frequent opportunities to look at the product and make decision and changes to the project •The customer can only see the product at the end of the project •Agile model is considered unstructured compared to the waterfall model •Waterfall model are more secure because they are so plan oriented 72
  • 73.
    •Small projects canbe implemented very quickly. For large projects, it is difficult to estimate the development time. •All sorts of project can be estimated and completed. •Error can be fixed in the middle of the project. •Only at the end, the whole product is tested. If the requirement error is found or any changes have to be made, the project has to start from the beginning •Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is very less. •The development process is phased, and the phase is much bigger than iteration. Every phase ends with the detailed description of the next phase. •Documentation attends less priority than software development •Documentation is a top priority and can even use for training staff and upgrade the software with another team 73
  • 74.
    •Every iteration hasits own testing phase. It allows implementing regression testing every time new functions or logic are released. •Only after the development phase, the testing phase is executed because separate parts are not fully functional. •In agile testing when an iteration end, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers. •All features developed are delivered at once after the long implementation phase. •Testers and developers work together •Testers work separately from developers •At the end of every sprint, user acceptance is performed •User acceptance is performed at the end of the project. •It requires close communication with developers and together analyze requirements and planning •Developer does not involve in requirement and planning process. Usually, time delays between tests and coding 74
  • 75.
  • 76.
    Scrum •SCRUM is anagile development method which concentrates specifically on how to manage tasks within a team-based development environment. •Basically, Scrum is derived from activity that occurs during a rugby match. Scrum believes in empowering the development team and advocates working in small teams (say- 7 to 9 members). 76
  • 77.
    It consists ofthree roles, and their responsibilities are explained as follows: 77
  • 78.
    • Scrum Master •Master is responsible for setting up the team, sprint meeting and removes obstacles to progress • Product owner • The Product Owner creates product backlog, prioritizes the backlog and is responsible for the delivery of the functionality at each iteration • Scrum Team • Team manages its own work and organizes the work to complete the sprint or cycle 78
  • 79.
    Product Backlog • Thisis a repository where requirements are tracked with details on the no of requirements(user stories) to be completed for each release. It should be maintained and prioritized by Product Owner, and it should be distributed to the scrum team. Team can also request for a new requirement addition or modification or deletion 79
  • 80.
    Scrum Practices Practices aredescribed in detailed: 80
  • 81.
    Process flow ofScrum Methodologies: • Process flow of scrum testing is as follows: • Each iteration of a scrum is known as Sprint • Product backlog is a list where all details are entered to get the end- product • During each Sprint, top user stories of Product backlog are selected and turned into Sprint backlog • Team works on the defined sprint backlog • Team checks for the daily work • At the end of the sprint, team delivers product functionality 81
  • 82.
    eXtreme Programming (XP) •Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the customers or when they are not sure about the functionality of the system. • It advocates frequent "releases" of the product in short development cycles, which inherently improves the productivity of the system and also introduces a checkpoint where any customer requirements can be easily implemented. • The XP develops software keeping customer in the target. 82
  • 83.
  • 84.
    • Business requirementsare gathered in terms of stories. All those stories are stored in a place called the parking lot. • In this type of methodology, releases are based on the shorter cycles called Iterations with span of 14 days time period. Each iteration includes phases like coding, unit testing and system testing where at each phase some minor or major functionality will be built in the application. 84
  • 85.
    Phases of eXtremeprogramming: •There are 6 phases available in Agile XP method, and those are explained as follows: •Planning •Analysis •Design •Execution •Wrapping •Closure 85
  • 86.
    • Planning • Identificationof stakeholders and sponsors • Infrastructure Requirements • Security related information and gathering • Service Level Agreements and its conditions • Analysis • Capturing of Stories in Parking lot • Prioritize stories in Parking lot • Scrubbing of stories for estimation • Define Iteration SPAN(Time) • Resource planning for both Development and QA teams 86
  • 87.
    • Design • Breakdown of tasks • Test Scenario preparation for each task • Regression Automation Framework • Execution • Coding • Unit Testing • Execution of Manual test scenarios • Defect Report generation • Conversion of Manual to Automation regression test cases • Mid Iteration review • End of Iteration review 87
  • 88.
    • Wrapping • SmallReleases • Regression Testing • Demos and reviews • Develop new stories based on the need • Process Improvements based on end of iteration review comments • Closure • Pilot Launch • Training • Production Launch • SLA Guarantee assurance • Review SOA strategy • Production Support 88
  • 89.
    • There aretwo storyboards available to track the work on a daily basis, and those are listed below for reference. • Story Cardboard • This is a traditional way of collecting all the stories in a board in the form of stick notes to track daily XP activities. As this manual activity involves more effort and time, it is better to switch to an online form. • Online Storyboard • Online tool Storyboard can be used to store the stories. Several teams can use it for different purposes. 89
  • 90.