software process model_se lect4 btech
DESCRIPTION
TRANSCRIPT
![Page 1: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/1.jpg)
What are the different types of Software Process Model?
![Page 2: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/2.jpg)
SW Process Models
• Waterfall model• Evolutionary or Progressive models• Component-based development model• Iterative Model• Agile Methodology
2
![Page 3: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/3.jpg)
Types of Agile Methodology
• Extreme Programming (XP)• Scrum• Agile Modeling• Agile Unified Process (AUP)• Dynamic Systems Development Method (DSDM)• Essential Unified Process (EssUP)• Exia Process (ExP)• Feature Driven Development (FDD)• Open Unified Process (OpenUP)• Crystal Clear• Velocity tracking
![Page 4: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/4.jpg)
Waterfall model
• History
• Characteristic
• Advantages
• Disadvantages
![Page 5: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/5.jpg)
The Waterfall Model
• Oldest model, it’s been around since 1970.
• Called “Linear Sequential Model”.
• Most widely used model for SW engineering
• Documentation is produced at each stage.
5
![Page 6: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/6.jpg)
Phases
1. Requirements analysis and definition
2. System and software design
3. Implementation and unit testing
4. Integration and system testing
5. Operation and maintenance
6
![Page 7: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/7.jpg)
Waterfall model diagram
Requirements
Operation & Maintenance
Test & Integration
Code & Unit Test
Design
![Page 8: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/8.jpg)
Disadvantages
• Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.
• Only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.
• The waterfall model is mostly used for large systems engineering projects.
8
![Page 9: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/9.jpg)
What are Evolutionary Models
![Page 10: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/10.jpg)
Evolutionary Models
10
![Page 11: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/11.jpg)
What are Exploratory Models
• Features
• Advantages
• Disadvantages
![Page 12: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/12.jpg)
The Exploratory Model
Objective is to work with customers and evolve a final system from an initial outline specification.
Should start with well-understood requirements and add new features as proposed by the customer.
![Page 13: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/13.jpg)
The Exploratory Model
Concurrentactivities
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
13
![Page 14: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/14.jpg)
The Exploratory Model
• Problems– Lack of process visibility;– Systems are often poorly structured;
• Applicability– For small or medium-size interactive systems;– For parts of large systems (e.g. the user interface);– For short-lifetime systems.
14
![Page 15: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/15.jpg)
• Features
• Advantages
• Disadvantages
What are Prototyping Models
![Page 16: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/16.jpg)
The Prototyping Model
When a customer defines a set of general objectives for a software but does not identify detailed input, processing, or output requirement.
It consists of the iterating phases:1. Requirements gathering2. Design and build SW prototype3. Evaluate prototype with customer4. Refine requirements
16
![Page 17: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/17.jpg)
The Prototyping Model
17
![Page 18: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/18.jpg)
The Prototyping Model
• Advantages– Users get a feel for the actual system– Developers get to build something immediately– Specifications can be developed incrementally
• Disadvantages– The developer may make implementation compromises in
order to get a prototype working quickly.– The process in not visible (few documents that reflect every
version of the system)– Systems poorly structured
18
![Page 19: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/19.jpg)
What is Component Based Software Engineering (CBSE)
• Features
• Advantages
• Disadvantages
![Page 20: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/20.jpg)
Component Based Software Engineering (CBSE)
• Based on systematic reuse where systems are integrated from existing components.
• Process stages– Component analysis;– Requirements modification;– System design with reuse;– Development and integration.
• This approach is becoming increasingly used as component standards have emerged.
20
![Page 21: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/21.jpg)
Component Based Software Engineering (CBSE)
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
21
![Page 22: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/22.jpg)
Component Based Software Engineering (CBSE)
• Advantages:– Reduce amount of software to be developed– Reduce costs and risks– Faster delivery
• Disadvantages:– Requirements compromises, system does not meet real
needs of users– Limited features
22
![Page 23: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/23.jpg)
Iterative Model and its Types
![Page 24: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/24.jpg)
Iterative Models
24
![Page 25: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/25.jpg)
Advantages and Disadvanates
• Incremental Model
• Spiral Model
• Agile Model
![Page 26: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/26.jpg)
The Incremental Model
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.
User requirements are prioritised and the highest priority requirements are included in early increments.
Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
![Page 27: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/27.jpg)
The Incremental Model
Validateincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Validatesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
27
![Page 28: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/28.jpg)
The Incremental Model
Advantages:• Customer value can be delivered with each increment so
system functionality is available earlier.• Early increments act as a prototype to help elicit
requirements for later increments.• Lower risk of overall project failure.• The highest priority system services tend to receive the
most testing.
28
![Page 29: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/29.jpg)
The Incremental Model
Disadvantages:
• Increments should be relatively small (20,000 lines of code)
• Can be difficult to map the customer’s requirements onto increments of the right size
• Hard to identify common functions
29
![Page 30: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/30.jpg)
The Spiral Model
• Defined by Barry Boehm in his 1988 article A Spiral Model of Software Development and Enhancement.
• Process is represented as a spiral rather than as a sequence of activities with backtracking.
• Each loop in the spiral represents a phase in the process.
• Suitable for large, expensive and complicated projects
30
![Page 31: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/31.jpg)
The Spiral Model
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2
Prototype 3Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
Code
Unit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternatives,identify, resolve risks
Determine objectives,alternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
31
![Page 32: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/32.jpg)
The Spiral Model
Advantages:
• Risks are explicitly assessed and resolved throughout the process.
• Software engineers can start working on the project earlier rather than wading through a lengthy early design process.
32
![Page 33: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/33.jpg)
The Spiral Model
Disadvantages:
• Requires highly skilled people in risk analysis and planning
• Requires more time, and is more expensive
• Estimates of budget and time are harder to judge at the beginning of the project since the requirements evolve through the process
33
![Page 34: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/34.jpg)
AGILE & EXTREME PROGRAMMING
Latest Techniques of Software Process Management (SPM)
![Page 35: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/35.jpg)
Covered Topics
• What is Agile Programming• What is Extreme Programming (XP) • Why would I use Extreme Programming?• Values of XP• Principals of XP• Activities of XP• Dangers of XP
![Page 36: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/36.jpg)
What is “Agility”?
![Page 37: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/37.jpg)
What is “Agility”?
• Effective (rapid and adaptive) response to change
• Effective communication among all stakeholders
• Drawing the customer onto the team
Yielding …
• Rapid, incremental delivery of software
SWE 418 (062) Agile Software Processes-XP 37
![Page 38: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/38.jpg)
Agile properties
![Page 39: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/39.jpg)
The Agile Manifesto–a statement of values
Process and toolsProcess and toolsIndividuals and interactionsIndividuals and interactions
over
Following a planFollowing a planResponding to changeResponding to change
over
Source: www.agilemanifesto.org
Comprehensive documentationComprehensive documentationWorking softwareWorking software over
Contract negotiationContract negotiationCustomer collaborationCustomer collaboration
over
![Page 40: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/40.jpg)
Agile properties
• Other Models
• Predictive• Process-Oriented
• Agile
• Adaptive• People-Oriented
![Page 41: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/41.jpg)
Characteristics of an Agile process
![Page 42: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/42.jpg)
An Agile process
• Is driven by customer descriptions of what is required (Scenarios)(User Stories)
• Recognizes that plans are short-lived
• Develops software iteratively with a heavy emphasis on construction activities
• Delivers multiple ‘software increments’
• Adapts as changes occur
SWE 418 (062) 42
![Page 43: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/43.jpg)
Basic Building Blocks of Agile Software Development
![Page 44: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/44.jpg)
Basic Building Blocks of Agile Software Development
Individuals and interactions over processes and tools;Working software over comprehensive documentation;Customer collaboration over contract negotiation;Responding to change over following a plan.
![Page 45: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/45.jpg)
What Is Extreme Programming?
![Page 46: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/46.jpg)
Definition
What Is Extreme Programming? “Extreme Programming (XP) is one of a
growing group of agile software development methodologies. XP uses integrated teams of programmers, customers, and managers to develop high-quality software at high speed”.
XP Team
Programmers Customers Managers
![Page 47: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/47.jpg)
Definition
• Extreme Programming differs from traditional methodologies primarily in placing a higher value on adaptability than on predictability.
• In XP “Working software is the primary measure of progress.”
![Page 48: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/48.jpg)
Other Agile Processes
• The Crystal Methodology Family: crystalmethodologies.org
• Scrum: www.controlchaos.com
• Adaptive Software Development: www.adaptivesd.com
• DSDM (Dynamic System Development Method): www.dsdm.org
![Page 49: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/49.jpg)
What is different in XP
![Page 50: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/50.jpg)
XP is Different
• Early, concrete, and continuous feedback from short-cycles.
• Incremental planning approach.
• Flexibility of scheduling the implementation based on changing business needs.
• Reliance on tests written by the programmers.
• Reliance on the collaboration of programmers.
SWE 418 (062) Agile Software Processes-XP 50
![Page 51: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/51.jpg)
What are the Core XP Practices
![Page 52: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/52.jpg)
The Core XP Practices
Rapid, fine feedback: Test-driven design (via unit and
acceptance tests) On-site customer Pair programming
Shared Understanding:– Simple Design
– Collective Code Ownership
– Coding Conventions
Continuous process: Continuous integration Merciless refactoring Small, frequent releases
Developer Welfare: Forty-hour week
![Page 53: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/53.jpg)
Compare
• Waterfall
• Iterative
• XP
![Page 54: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/54.jpg)
Software Processes
SWE 418 (062) Agile Software Processes-XP 54
Analysis
Design
Code
Test
Waterfall Iterative XP
Kent Beck 1999
![Page 55: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/55.jpg)
Waterfall method
Agile Development process
![Page 56: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/56.jpg)
Responsibilities of….
• Customer• Team • Developer Pair
![Page 57: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/57.jpg)
“Circles of Life”On-site Customer
ReleasePlanning
Small Releases
AcceptanceTests
Pair Programming
Unit Tests
Refactoring
Simple Design
CodingStandards
CollectiveOwnership
ContinuousIntegration
Metaphor
SustainablePace
Customer Team Developer Pair – Team – Customer
![Page 58: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/58.jpg)
Steps of XP
![Page 59: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/59.jpg)
Steps of XP
![Page 60: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/60.jpg)
The XP Key Points
• Find ways to make change cheaper
• Find inexpensive ways of avoiding errors
• Reduce overall cost of development
![Page 61: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/61.jpg)
Thinking of Extreme Programming
• The main aim of XP is to reduce the cost of change.
• In traditional system development methods the requirements for the system are determined at the beginning of the development project and often fixed from that point on.
• This means that the cost of changing the requirements at a later stage (a common feature of software engineering projects) will be high.
![Page 62: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/62.jpg)
Traditional Development exponential curve vs. Extreme Programming Curve
![Page 63: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/63.jpg)
Why would I use Extreme Programming?
• Most software projects use an ad-hoc approach to development known as “code and fix".
• Several studies have found that 40% to 80% of a typical software project's budget goes into fixing defects that were created earlier on the same project.
• So to lower this curve of change XP is used.
![Page 64: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/64.jpg)
Why would I use Extreme Programming?
• “Requirements-Analysis-Design-Code-Test-maintain” as a assembly line.
Assumption that the shape of the finished product is known before the process begins.
• But, if a customer specify something completely new and needs constant feedback to validate their choices. Then XP comes into scene.
![Page 65: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/65.jpg)
Activities of Extreme Programming
• Listening : For the programmers to find what the functionality of the system should be, they have to listen to business.
• Designing :One can come a long way without designing but at a given time one will get stuck. The system becomes too complex and there may be dependencies within the system.
Listening Designing Coding Testing
XP Milestones
![Page 66: Software Process Model_Se lect4 btech](https://reader034.vdocuments.us/reader034/viewer/2022050904/545b440cb1af9f4a1d8b4cbf/html5/thumbnails/66.jpg)
Activities of Extreme Programming
• Coding : The only truly important product of the system development process is code (a concept to which they give a somewhat broader definition than might be given by others). Without code you have nothing.
• Testing: One cannot be certain of anything unless one has tested it.
Listening Designing Coding Testing
XP Milestones