KEMBAR78
Final CH 1 Software Development Process | PDF | Scrum (Software Development) | Agile Software Development
0% found this document useful (0 votes)
6 views78 pages

Final CH 1 Software Development Process

Uploaded by

Piyush Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views78 pages

Final CH 1 Software Development Process

Uploaded by

Piyush Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 78

Chapter 1

Software Development
Process
(12 Marks)
1.1 Software & Software
Engineering(Definition)
1.1.1 Software :
It is defined as set of instructions (computer programs) that when
executed provides desired o/p, performance & functions
Software= Program+ Documentation+ Operating Procedures
Documen
tation
Operating
Program
Procedures

 Software Engineering:
It is defined as a process of analyzing user requirements and then
designing, building, and testing software application which will satisfy
those requirements.
Attributes of SOFTWARE

 Maintainability
 Usability
 Dependability
 Efficiency
 Functionality
 Acceptability
 Integrity
 Portability
Characteristics of Software
Engineering

1. Software is developed or engineered ,it is not


manufactured
2. Software doesn’t ware out
3. Most software is Custom built rather than being
assembled from existing components
4. Efficiency
5. Maintainability
6. Dependability
Types of Software

Real Time
software
The Process: Software as a
layered Approch
Software Development Framework
SDLC(Software Development Life Cycle)
Software Process Framework
Software Process Framework
Process:
It is a collection of activities , actions and tasks that are
performed when some work product is to be created.
Software Process Framework:
It is a collection of software development activities which
forms a complete base for software engineering process.
Characteristics of software process:
1.Understandability 2.Visibility
3.Supportability 4.Reliability
5.Acceptability 6.Rapidity
Software Process Framework

Following five generic framework activities can be used during


development of small programs:
1.Communication 2.Planning
3.Modelling 4.Construction
5.Deployment
Umbrella Activities:
1.Software project tracking & Control
2.Risk Management 3.Software Quality Assurance
4.Formal Technical Reviews 5.Measurement
6.Software configuration Management
7.Reusability 8. Work Product preparation
Process Models
Waterfall Model

Communication
(Requirements Planning
Gathering) (Estimating
Scheduling Modelling
Tracking) (Analysis
Design) Construction
(Coding Deployment
Testing) (Delivery
Mentainance
Support)
Waterfall Model

1. Communication:
In this phase Requirements Gathering is done which is used to find out the needs of
customer.
2. Planning:
In this phase Scheduling of activities is done. It tracks the progress of a project. It
also describes the risks.
3. Modelling:
In this phase system design is done. Analysis of a project also done and depend on
analysis designing is done.
4. Construction:
In this phase actual coding of a project is done. This coding is done on the basis of
design of a project.
5. Deployment:
This is last phase .in this phase actual product is delivered to customer. Also
feedback is taken from a customer to ensure quality of software. After delivery also if
required product mentainance is done.
Advantages of Waterfall Model

 Easy to understand, easy to use


 Provides structure to inexperienced staff
 Milestones are well understood
 Sets requirements stability
 Good for management control (plan, staff, track)
 Works well when quality is more important than cost
or schedule
Dis-advantages of Waterfall Model

 All requirements must be known upfront


 Deliverables created for each phase are considered
frozen – inhibits flexibility
 Does not reflect problem-solving nature of
software development – iterations of phases
 Integration is one big bang at the end
 Little opportunity for customer to preview the
system (until it may be too late)
Incremental Model
Communication
(Requirements Planning
Gathering) (Estimating
Scheduling Modelling
Tracking) (Analysis
Increment -1 Design) Construction
(Coding Deployment
Testing) (Delivery
Mentainance
Communication Support)
(Requirements Planning
Delivery of 1st Increment
Gathering) (Estimating
Scheduling Modelling
Tracking) (Analysis
Construction Deployment
Increment -2 Design)
(Coding (Delivery
Testing) Mentainance
Communication Support)
(Requirements Planning
Gathering) Delivery of 2nd Increment
(Estimating
Scheduling Modelling Deployment
Tracking) (Analysis (Delivery
Increment -3 Design) Construction Mentainance
(Coding Support)
Testing)
Delivery of 3rd Increment
Incremental Model

❖Incremental Model was developed by Mills Etal in 1980.


❖The Incremental Process Model is a method of software
development where the system is built step by step.
❖Work flow is in linear fashion
❖Instead of delivering the whole system at once, it is
developed and delivered in small parts called increments.
❖ Each increment builds upon the previous one by adding
new functionality, until the complete system is finished.
❖In incremental model a product is designed ,
implemented and tested incrementally.
Advantages of Incremental Model

 This model is More flexible .


 Its easier to test and debug
 Customer can respond to each iteration
 Less costly
 Easier to manage risk
Dis-advantages of Incremental
Model

 Needs good planning and design


 Total cost is higher than waterfall model
RAD (Rapid Application
Development) Model
Team #n
Communication
Modelling Construction
(Requirements
(Analysis (Coding
Gathering)
Design) Testing)

Team 2
Deployment
(Delivery
Planning Modelling Construction Mentainance
(Estimating (Analysis (Coding Support)
Scheduling Design) Testing)
Tracking)
Team 1
Modelling Construction
(Analysis (Coding
Design) Testing)

60-90Days
RAD (Rapid Application
Development) Model
 IBM first proposed the RAD Model in the 1980s & later
on it was introduced by James Martin.
 The RAD model is a type of incremental process model.
 It is high speed adaptation of waterfall model
 If requirements are well known then using Rad model
project can be completed within very short time period
like 60 to 90 days.
 It distributes the analysis ,design, build and test phases
into a series of iterative cycles.
RAD (Rapid Application
Development) Model
Phases of RAD Model:
1. Communication:
In this phase Requirements Gathering is done which is used to find
out the needs of customer.
2. Planning:
In this phase planning of a project is done as it’s a team work
3. Modelling:
In this phase system business data design is done.
4. Construction:
In this phase actual coding of a project is done.
5. Deployment: It does subsequent repetitions if required
When to use RAD

 Reasonably well-known requirements


 User involved throughout the life cycle
 Project can be time-boxed
 Functionality delivered in increments
 High performance not required
 Low technical risks
 System can be modularized
Advantages of RAD Model

 Reduced development time


 Reusability of components
 Customer involved in all phases
 Feedback of customer is available at early stage
Dis-advantages of RAD Model

 Project can lead to failure if reusable components are


not available.
 Performance depends on team
Spiral Model
Spiral Model
❖ Customer Communication: It requires communication between customer and
developer.
❖ Planning :
It includes estimating the cost, schedule and resources for the iteration. It
also involves understanding the system requirements for continuous communication
between the system analyst and the customer
❖ Risk Analysis :
Identification of potential risk is done while risk mitigation strategy is
planned and finalized
❖ Engineering:
It includes testing, coding and deploying software at the customer site
❖ Construction and Realease :
Construct, code, test install and provide user support
❖ Evaluation :
Evaluation of software by the customer. Also, includes identifying and monitoring
risks such as schedule slippage and cost overrun
Advantages of Spiral Model

 Provides early indication of risks, without much


cost
 Users see the system early because of rapid
prototyping tools
 Critical high-risk functions are developed first
 The design does not have to be perfect
 Users can be closely tied to all lifecycle steps
 Early and frequent feedback from users
Dis-advantages of Spiral Model
 Time spent for evaluating risks too large for small or low-risk
projects
 Time spent planning, resetting objectives, doing risk analysis
and prototyping may be excessive
 The model is complex
 Risk assessment expertise is required
 Spiral may continue indefinitely
 May be hard to define objective, verifiable milestones that
indicate readiness to proceed through the next iteration
Prototyping Model
Prototyping Model
.
 The Prototyping Model is one of the most popularly
used Software Development Life Cycle Models (SDLC models).
This model is used when the customers do not know the exact
project requirements beforehand.
 In this model, a prototype of the end product is first developed,
tested, and refined as per customer feedback repeatedly till a
final acceptable prototype is achieved which forms the basis for
developing the final product.
 It focuses on those aspects of the software that are visible to
the customer.
 There is huge involvement of a user in development.
Prototyping Model
.
 Phases of Prototyping Model are:
1.Communication:The new system requirements are defined in as
much detail as possible. This usually involves interviewing a
number of users representing all the departments or aspects of
the existing system.
2. Quick Plan: A quick plan for prototyping and modeling occur.
3. Modelling Quick Design: A preliminary, simple design is created
for the new system.
Prototyping Model
 Phases of Prototyping Model are:
.
4. Construction of Prototype:
The first prototype of the new system is constructed from the
preliminary design.
 The users thoroughly evaluate the first prototype and note its
strengths and weaknesses, what needs to be added and what
should be removed.
 The developer collects and analyzes the remarks from the
users. The first prototype is modified, based on the comments
supplied by the users and a second prototype of the new
system is constructed. The second prototype is evaluated in the
same manner as the first prototype.
Prototyping Model
.

Phases of Prototyping Model are:


The preceding steps are iterated as many times as necessary, until
the users are satisfied that the prototype represents the final
product desired.
The final system is constructed, based on the final prototype.
downtime.
5.Deplyment, Delivery & Feedback:
once user is satisfied with the given prototype developer gets to
build something immediately.
Advantages of Prototyping Model
 This model is flexible in design.
 It is easy to detect errors.
 We can find missing functionality easily.
 There is scope of refinement, it means new requirements can
be easily accommodated.
 It can be reused by the developer for more complicated
projects in the future.
 It ensures a greater level of customer satisfaction and comfort.
 It helps developers and users both understand the system
better.
Dis-advantages of Prototyping
Model
 Disadvantages of using Prototype Model :
 This model is costly.
 It has poor documentation because of continuously changing
customer requirements.
 There may be too much variation in requirements.
 Customers sometimes demand the actual product to be
delivered soon after seeing an early prototype.
 There may be sub-optimal solutions because of developers in a
hurry to build prototypes.
 Customers may not be satisfied or interested in the product
after seeing the initial prototype.
 There is certainty in determining the number of iterations.
Agile SDLC’s
What is agile?

❖ Agile is a time-bound, iterative approach to software


delivery that builds software incrementally from the
start of the project, instead of trying to deliver all at
once.

❖This allows teams to adapt to changes quickly and


provide customer value faster.
Agile Principles
 Highest priority is to satisfy the customer through early
and continuous delivery of valuable software.
 It welcomes changing requirements, even late in
development.
 Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference to the
shortest timescale.
 Build projects around motivated individuals. Give them the
environment and the support they need, and trust them to
get the job done.
 Working software is the primary measure of progress.
 Simplicity the art of maximizing the amount of work not
done is essential.
Agile Characteristics

 Agile development releases must be adaptable to technical &


environmental changes

 Agile development process must be incremental

 Customer feedback is very imp

 Agile software is delivered in short span of time

 It must be iterative
Advantages of Agile

1. Change is embraced.

2. End-goal can be unknown

3. Faster & High quality Delivery

4. Strong Team Interaction

5. Continues Improvement
Dis-advantages of Agile

1. Planning can be less concrete

2. Team must be acknowledgeable

3. Time commitment from developers

4. Final product can be very difficult


Agile Model
Agile Model
 Agile SDLC model is a combination of iterative and incremental
process models with focus on process adaptability and
customer satisfaction by rapid delivery of working software
product. Agile Methods break the product into small
incremental builds. These builds are provided in iterations. Each
iteration typically lasts from about one to three weeks. Every
iteration involves cross functional teams working
simultaneously on various areas like −
 Planning , Requirements Analysis , Design, Coding , Unit Testing
and Acceptance Testing.
 At the end of the iteration, a working product is displayed to
the customer and important stakeholders.
Advantages of Agile Model
 1. Working through Pair programming produces well-written
compact programs which have fewer errors as compared to
programmers working alone.
 It reduces the total development time of the whole project.
 Agile development emphasizes face-to-face communication
among team members, leading to better collaboration and
understanding of project goals.
 Customer representatives get the idea of updated software
products after each iteration. So, it is easy for him to change
any requirement if needed.
 Agile development puts the customer at the center of the
development process, ensuring that the end product meets
their needs.
Dis-advantages of Agile Model
 It is not suitable for handling complex dependencies.
 The agile model depends highly on customer interactions so if
the customer is not clear, then the development team can be
driven in the wrong direction.
 More risk of sustainability, maintainability
Agile Process Models

 Extreme Programming (XP)

 Adaptive Software Development (ASD)

 Dynamic Systems Development Method (DSDM)

 Scrum.

 Crystal.
Extreme Programming - XP

❖XP Suggested by Kent Back in 2000

❖For small-to-medium-sized teams developing software with


vague or rapidly changing requirements

❖Coding is the key activity throughout a software project

❖Communication among teammates is done with code

❖Life cycle and behavior of complex objects defined in test cases


– again in code
Extreme Programming – XP
release cycle
Advantages of Extreme
Programming – XP

1. Emphasis on customer Involvement


2. Continuous Measurement
3. Incremental Development
4. Simple Design
5. Frequent redesign
6. Continuous Reviews
7. Business changes
8. Production and post-delivery defects
9. Timely Delivery
Dis-advantages of Extreme
Programming – XP

1. It has lack of structure & necessary documentation


2. It is very inefficient if the requirements for one area of
code change through various iterations.
Adaptive Software Development
Adaptive Software Development
Adaptive Software Development is a method to build complex software and
systems.
ASD life cycle incorporates three phases namely:
1. Speculation
During this phase project is initiated and planning is conducted. The project plan
uses project initiation information like project requirements, user needs, customer
mission statement, etc, to define a set of release cycles that the project wants.
2. Collaboration
It is the difficult part of ASD as it needs the workers to be motivated. It collaborates
communication and teamwork but emphasizes individualism as individual creativity
plays a major role in creative thinking. People working together must trust each
other to
Criticize without animosity,
Assist without resentment,
Work as hard as possible,
Possession of skill set,
Communicate problems to find effective solutions.
Adaptive Software Development
Adaptive Software Development is a method to build complex software and
systems.
ASD life cycle incorporates three phases namely:
3. Learning
The workers may have an overestimate of their understanding of the technology
which may not lead to the desired result. Learning helps the workers to increase
their level of understanding of the project.
The learning process is in 3 ways:
Focus groups
Technical reviews
Project postmortem
Advantages of Adaptive Software
Development

1. Works well for small teams (4-8 people) with uncertain


requirements or missing domain knowledge.
2. Allows speculation on final product without detailed upfront
planning; product adjusts continuously.
3. Supports early tracking of progress, scope, schedule, and
requirement changes.
Dis-advantages of Adaptive
Software Development

• Traditional methods may be more efficient for predictable


requirements and technologies.
• Managing ASD projects differs greatly from traditional
models; it is result-oriented rather than flow-oriented (unlike
Waterfall).
Scrum
It is designed for teams of ten or fewer members, who break
their work into goals that can be completed within time-boxed
iterations, called sprints, no longer than one month and most
commonly two weeks. The Scrum Team assess progress in time-
boxed daily meetings of 15 minutes or less, called daily scrums.
At the end of the sprint, the team holds two further meetings:
the sprint review which demonstrates the work done to
stakeholders to elicit feedback, and sprint retrospective which
enables the team to reflect and improve.
Scrum

❖ Scrum is a management framework that teams use to self-


organize tasks and work towards a common goal. It is a
framework within which people can address complex adaptive
problems while the productivity and creativity of delivering
products are at the highest possible value. Scrum is a
management framework that teams use to self-organize and
work towards a common goal.
❖Scrum allows us to develop products of the highest value while
making sure that we maintain creativity and productivity.
❖The iterative and incremental approach used in scrum allows the
teams to adapt to the changing requirements.
Process Framework of Scrum
Process Framework of Scrum

Sprint: A Sprint is a time box of one month or less. A new


Sprint starts immediately after the completion of the previous
Sprint. Release: When the product is completed, it goes to the
Release stage.
Sprint Review: If the product still has some non-achievable
features, it will be checked in this stage and then passed to the
Sprint Retrospective stage.
Sprint Retrospective: In this stage quality or status of the
product is checked. Product Backlog: According to the
prioritize features the product is organized.
Sprint Backlog: Sprint Backlog is divided into two parts
Product assigned features to sprint and Sprint planning
meeting.
Advantage of Scrum framework

 Scrum framework is fast moving and money efficient.


 Scrum framework works by dividing the large product
into small sub-products. It's like a divide and conquer
strategy
 In Scrum customer satisfaction is very important.
 Scrum is adaptive in nature because it have short
sprint.
 As Scrum framework rely on constant feedback
therefore the quality of product increases in less
amount of time
Dis-advantage of Scrum
framework
 Scrum framework do not allow changes into their sprint.
 Scrum framework is not fully described model. If you wanna
adopt it you need to fill in the framework with your own details
like Extreme Programming(XP), Kanban, Dynamic Systems
Development Method (DSDM).
 It can be difficult for the Scrum to plan, structure and organize a
project that lacks a clear definition.
 The daily Scrum meetings and frequent reviews require
substantial resources.
Dynamic Systems Development Method
(DSDM)

❖It is an associate degree agile code development approach that


provides a framework for building and maintaining systems.
The DSDM philosophy is borrowed from a modified version of
the sociologist principle—80 % of An application is often
delivered in twenty percent of the time it'd desire deliver the
entire (100 percent) application.
❖ DSDM is An iterative code method within which every iteration
follows the 80% rule that simply enough work is needed for
every increment to facilitate movement to the following
increment. The remaining detail is often completed later once a
lot of business necessities are noted or changes are requested
and accommodated.
Dynamic Systems Development Method
(DSDM)
Dynamic Systems Development Method
(DSDM)
 Feasibility Study: It establishes the essential business necessities and constraints related to the
applying to be designed then assesses whether or not the application could be a viable
candidate for the DSDM method.
 Business Study: It establishes the use and knowledge necessities that may permit the applying to
supply business value; additionally, it is the essential application design and identifies the
maintainability necessities for the applying.
 Functional Model Iteration: It produces a collection of progressive prototypes that demonstrate
practicality for the client. (Note: All DSDM prototypes are supposed to evolve into the
deliverable application.) The intent throughout this unvarying cycle is to collect further
necessities by eliciting feedback from users as they exercise the paradigm.
 Design and Build Iteration: It revisits prototypes designed throughout useful model iteration to
make sure that everyone has been designed during a manner that may alter it to supply
operational business price for finish users. In some cases, useful model iteration and style and
build iteration occur at the same time.
 Implementation: It places the newest code increment (an “operationalized” prototype) into the
operational surroundings. It ought to be noted that:
 (a) the increment might not 100% complete or,
 (b) changes are also requested because the increment is placed into place. In either case,
DSDM development work continues by returning to the useful model iteration activity.
Advantages of DSDM

• Encourages end-user involvement


• Reduces time-to-market
• Flexible to change
• High transparency
Dis-advantages of DSDM

• Can be complex to implement for small teams


• Requires a high level of user involvement
• Not suitable for all types of projects (e.g., hardware-
heavy or highly regulated environments)
Crystal

The crystal method is an agile framework that is considered a


lightweight or agile methodology that focuses on individuals
and their interactions. The methods are color-coded to
significant risk to human life. It is mainly for short-term
projects by a team of developers working out of a single
workspace. Among a few Agile Software Development Life
Cycle (SDLC) models crystal is considered as one of the Agile
SDLC models.
Crystal

Various methodologies in the Crystal family also known as weights of the Crystal
approach are represented by different colors of the spectrum.
Crystal family consists of many variants like Crystal Clear, Crystal Yellow, Crystal
Red, Crystal Sapphire, Crystal Red, Crystal Orange Web, and Crystal Diamond.
Crystal

Key Principles of Crystal :


• People Over Processes
• Focus on team members and communication more than strict rules.
• Tailored Methods
• Method changes depending on team size, system criticality, and priorities.
• Frequent Delivery
• Deliver working software regularly.
• Reflective Improvement
• Teams reflect and improve their processes frequently.
• Osmotic Communication
• Prefer face-to-face communication in open environments.
Advantages of Crystal

❖Flexibility
❖Adaptability
❖ Faster Delivery
❖Higher Quality
❖Improved customer satisfaction
❖Reduced Risk
Dis-advantages of Crystal

❖Limited Scalability
❖Ambiguity
❖Inability to handle regulatory requirements
❖Lack of predictability
❖Dependency on team expertise
AUP(Agile Unified Process)

❖It’s a simpler and easier version of a big software process called


Rational Unified Process (RUP).
❖It mixes the good ideas from agile (which is flexible and fast)
with the organized way of doing things from another process
called Unified Process (UP).
❖It helps teams make good-quality software quickly and without
wasting time.
❖The work is done in small steps, one at a time, and each step
improves the software bit by bit.
AUP(Agile Unified Process)

Phases of Unified Process


 Inception Phase – Customer communication, planning, use-
cases
 Elaboration Phase – Analysis, design, class definitions
 Construction Phase – Implementing software components
 Transition Phase – Deployment, beta testing, user
acceptance
 Production Phase – Ongoing support and monitoring
AUP(Agile Unified Process)

 Characteristics of AUP :
• Use-case driven
• Architecture-centric
• Iterative and incremental
• Framework for UML methods and tools
• Helps design and build high-quality software
AUP(Agile Unified Process)
Advantages of AUP
 Adaptability:
It can work well with different kinds of teams and projects.
 Flexibility:
You can change how you use it to fit what your project needs.
 High-Quality Software:
It focuses on making sure the software is good and works properly.
 Faster Time-to-Market:
Because the work is done in small parts, the software can be
released faster.
 Risk Management:
It helps find and fix problems early before they become big issues.
Dis-advantages of AUP
 Lack of Formal Process:
It doesn’t have strict rules or steps, which can sometimes cause
confusion.
 Lack of Documentation:
Not much written detail is created, so it can be hard to
remember or share what was done.
 Limited Scalability:
It works best for small or medium projects, but might not be
great for really big, complex ones.
 Dependency on Team Experience:
The team needs to be skilled and experienced; if they’re not, the
process might not work well.
Thank You

You might also like