Software process life cycles

Software process life cycles
By
SATHISHKUMAR G
(sathishsak111@gmail.com)
Software and entropy
 A virtue of software: relatively easy to change
 Otherwise it might as well be hardware
 Nevertheless, the more complex a software system
gets, the harder it is to change--why?
 Larger software systems are harder to understand
 The more changes get introduced into a system, the more
it tends toward entropy
 I.e., its internal order breaks down
Planning for change
 How can good comments facilitate and reduce
the cost of software maintenance?
 Hint: think about invariants, things that don’t change.
 Comments describe meaning of code
 Assuming programmers maintain comments
when they change the code!
 How can modularity help manage change?
 Modules help to isolate and localize change
A software process requires resources…
A software life cycle is a process
 A process involves activities, constraints and
resources that produce an intended output.
 Each process activity, e.g., design,
must have entry and exit criteria—why?
 A process uses resources, subject to constraints
(e.g., a schedule or a budget)
 A process is organized in some order or sequence,
structuring activities as a whole
 A process has a set of guiding principles or criteria
that explain the goals of each activity
Waterfall model of software process
 Multimedia: stages in the process
 Cascades from one stage down to the next, in
stately, lockstep, glorious order.
 Gravity only allows the waterfall to go downstream;
 it’s very hard to swim upstream
 Department of Defense contracts prescribed
this model for software deliverables for many
years, in DOD Standard 2167-A.
Why would corporate manager types like
the waterfall life cycle model?
 Minimizes change, maximizes predictability
 Costs and risks are more predictable
 Each stage has milestones and deliverables:
project managers can use to gauge how close
project is to completion
 Sets up division of labor: many software shops
associate different people with different stages:
 Systems analyst does analysis,
 Architect does design,
 Programmers code,
 Testers validate, etc.
Testing in the waterfall model
 Let’s look at more Pfleeger’s version of waterfall model
 Many waterfall models show 5 stages—why more here?
 What’s the difference between unit and system testing?
 Between system and acceptance testing?
 What kind of arrows are missing?
 Is this diagram a more realistic picture?
 Is this view of the process a good idea?
 The reality is that not only does software change, but
change happens during the process
 Realistic models are not strictly linear, but allow for cycles
 Bear in mind, however, that more cycles mean more costs
More drawbacks of the waterfall model
 Offers no insight into how how does each activity transform one
artifacts (documents) of one stage into another
 For example, requirements specification  design documents?
 Fails to treat software a problem-solving process
 Unlike hardware, software development is not a manufacturing but
a creative process
 Manufacturing processes really can be linear sequences, but
creative processes usually involve back-and-forth activities such as
revisions
 Software development involves a lot of communication between
various human stakeholders
 Nevertheless, more complex models often embellish the waterfall,
 incorporating feedback loops and additional activities
Prototyping
 This model adds prototyping as sub-process
 A prototype is a partially developed product that
enables customers and developers to examine some
aspect of a proposed system and decide if it is
suitable for a finished product
 Why add prototypes to the life cycle?
 Used to explore the risky aspects of the system:
 Risk of developing the “wrong” system (what customer
doesn’t want), can be a user interface without functionality
 Other technical risks – e.g. performance, using a new
technology, alternative algorithms, etc.
 Prototype may be thrown away or evolve into product
V model
 Developed by the German Ministry of Defense
 What does this model highlight?
 Unit and system testing verify the program design, ensuring
that parts and whole work correctly
 Acceptance testing, conducted by the customer rather than
developers, validates the requirements, tying each system
function meets a particular requirement in the specification
 How does this model account for cycles?
 If problems are found during verification or validation, then
re-execute left side of V to make fixes and improvements
 While the waterfall emphasizes documents and artifacts,
the V model emphasizes activities and correctness
Balzer’s transformational model
 Tries to reduce error in most software processes by:
 eliminating development steps,
 emphasizing formal specifications,
 and using automated support to facilitate transformations from
specification to deliverable system
 Hitch: the need for a formal specification precise
enough for automated transformations
 We’ll see that even semi-formal specifications can
help with other software life cycles
Phased development
 Nowadays, customers are less willing to wait years for a software
system to be ready
 So it’s necessary to reduce the cycle time of software products
 In 1996, 80% of HP’s revenues derived from products developed
in previous two years
 How is this accelerated cycle time made possible?
 Phased development reduces cycle time
 Design a system so it can be delivered in pieces, letting users
have some functionality while the rest is under development
 So there are usually two or more systems in parallel:
 The operational or production system in use by customers
 The development system which will replace the current release
 As users use Release n, developers are building Release n + 1
Iterative and incremental process
 Incremental development partitions a system by functionality
 Early release starts with small, functional subsystem, later releases
add functionality
 Top part of this figure shows how incremental development builds
up to full functionality
 Iterative development improves overall system in each release
 Delivers a full system in the first release, then changes the
functionality of each subsystem with each new release
 Suppose a customer wants to develop a word processing package
 Incremental approach: provide just Creation functions in Release 1,
then both Creation and Organization in Release 2,
finally add Formatting in Release 3, …
 Iterative approach: provide primitive forms of all three functions in
Release 1, then enhance (making them faster, improving the
interface, etc.) in subsequent releases
 Pros and cons of these two approaches?
 Many organizations combine iterative and incremental approaches
Quiz!Quiz!
What are drawbacks of Waterfall Model?
Can prototypes alleviate these drawbacks?
Why or why not?
Is the V model more realistic? Is it realistic enough?
Why do many software development shops prefer
phased and/or iterative & incremental models?
Does this discussion motivate you learn to avoid just
hacking?
Rational Unified Process (RUP)
 Developed by “three amigos” at Rational Software (IBM)
 Grady Booch, Ivar Jacobson, and Jim Rumbaugh
 Unified Modeling Language (UML) is a set of graphical and
linguistic notations for modeling systems, not a process or method
 The three amigos also developed Rational Unified Process (RUP)
 You don’t have to use RUP to use UML
 Interestingly different from the traditional waterfall model
 Highly iterative and incremental process
 Software product is not released in one big bang at end of project
 Instead, developed and released in pieces (prototypes, partial
releases, beta, etc.)
Agile Methods
 Typically lightweight
 WRT commitment to phases and documentation
 Versus waterfall models which require “heavy”
documentation of each phase before
proceeding
 Flexible, Adaptable, Iterative
 Examples: RUP or UP, Extreme
Programming (XP), Scrum
How do traditional stages iterate?
Workflows look traditional, but they iterate in four phases
Lifecycle PhasesLifecycle Phases
Inception – “Daydream”
Elaboration – “Design/Details”
Construction – “Do it”
Transition – “Deploy it”
Phases are not the classical requirements/
design/coding/implementation processes
Phases iterate over many cycles
Inception  Elaboration  …
 During inception, establish business rationale and scope for project
 Business case: how much it will cost and how much it will bring in?
 Scope: try to get sense of size of the project and whether it’s doable
 Creates a vision and scope document at a high level of abstraction
 In elaboration, collect more detailed requirements and do high-level
analysis and design
 Inception gives you the go-ahead to start a project, elaboration
determines the risks
 Requirement risks: big danger is that you may build the wrong system
 Technological risks: can the technology actually do the job? will the pieces
fit together?
 Skills risks: can you get the staff and expertise you need?
 Political risks: can political forces get in the way?
 Develop use cases, non-functional requirements & domain model
…  Construction  Transition
 Construction builds production-quality software in
many increments, tested and integrated, each
satisfying a subset of the requirements of the project
 Delivery may be to external, early users, or purely internal
 Each iteration contains usual life-cycle phases of analysis,
design, implementation and testing
 Planning is crucial: use cases and other UML documents
 Transition activities include beta testing,
performance tuning (optimization) and user training
 No new functionality unless it’s small and essential
 Bug fixes are OK
inc. elaboration construction transition
iteration phase
developmentcycle
UP phases are iterative & incremental
 Inception
 Feasibility phase and approximate vision
 Elaboration
 Core architecture implementation, high risk resolution
 Construction
 Implementation of remaining elements
 Transition
 Beta tests, deployment
UP artifacts
 The UP describes work activities,
which result in work products called artifacts
 Examples of artifacts:
 Vision, scope and business case descriptions
 Use cases (describe scenarios for user-system interactions)
 UML diagrams for domain modeling, system modeling
 Source code (and source code documentation)
 Web graphics
 Database schema
Milestone for first ElaborationMilestone for first Elaboration
At start of elaboration, identify part of the project
to design & implement
A typical and crucial scenario (from a use case)
After first elaboration, project is, say, 1/5th
done
Can then provide estimates for rest of project
Significant risks are identified and understood
How is such a milestone different from a stage
in the waterfall model?
Process disciplines or workflowsProcess disciplines or workflows
• Requirements analysis
• Design: architectural and class levels
• Implementation
• Testing
• Management
– Configuration and change
– Project
• Most of the process workflows occur during
each iteration
What does diagram imply about UP?
How can iterations reduce risk or reveal problems?
Another Quiz!Another Quiz!
What are the four lifecycle phases of UP?
What happens in each?
What are the process disciplines?
What are some major differences between
distinguishes UP and the waterfall model?
THAN
K
YO
U
1 de 28

Más contenido relacionado

La actualidad más candente

 CBAM CBAM
CBAMAsim Shahzad
13.9K vistas31 diapositivas
Software product lineSoftware product line
Software product lineHimanshu
3.6K vistas19 diapositivas

La actualidad más candente(20)

Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
Madhar Khan Pathan215 vistas
 CBAM CBAM
CBAM
Asim Shahzad13.9K vistas
Software product lineSoftware product line
Software product line
Himanshu 3.6K vistas
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
Golda Margret Sheeba J2.6K vistas
Ch03 prescriptive process modelsCh03 prescriptive process models
Ch03 prescriptive process models
Dr. C.V. Suresh Babu2.1K vistas
V model presentationV model presentation
V model presentation
Niat Murad16.5K vistas
Unit 3 system modelsUnit 3 system models
Unit 3 system models
Azhar Shaik474 vistas
Design PatternDesign Pattern
Design Pattern
Himanshu 13.3K vistas
Software reliability & qualitySoftware reliability & quality
Software reliability & quality
Nur Islam3.6K vistas
Srs template ieee-movie recommenderSrs template ieee-movie recommender
Srs template ieee-movie recommender
429SAYAKTRIPATHY2.9K vistas
Ch23-Software Engineering 9Ch23-Software Engineering 9
Ch23-Software Engineering 9
Ian Sommerville3.9K vistas
Ch5 system modelingCh5 system modeling
Ch5 system modeling
software-engineering-book50.7K vistas
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya24.4K vistas
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
Arslan Anwar17K vistas

Similar a Software process life cycles

01lifecycles01lifecycles
01lifecyclesAbdihakim Dalmar
218 vistas27 diapositivas
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
21.2K vistas52 diapositivas

Similar a Software process life cycles (20)

01lifecycles01lifecycles
01lifecycles
Abdihakim Dalmar218 vistas
Software development life cycleSoftware development life cycle
Software development life cycle
Nishant Srivastava2.2K vistas
Software Process ModelsSoftware Process Models
Software Process Models
Hassan A-j21.2K vistas
Software development process modelsSoftware development process models
Software development process models
Muhammed Afsal Villan6.9K vistas
Software process modelSoftware process model
Software process model
Muhammad Yousuf Abdul Qadir2.5K vistas
reaserch ppt.pptxreaserch ppt.pptx
reaserch ppt.pptx
BinyamBekele38 vistas
SE-03.pptxSE-03.pptx
SE-03.pptx
HaiderAli2523667 vistas
Sdpl1Sdpl1
Sdpl1
sraviinthiran668 vistas
Soft lifecycleSoft lifecycle
Soft lifecycle
sathyakamsundher301.7K vistas
Ch17Ch17
Ch17
phanleson1.3K vistas
Unit 1 sepm process modelsUnit 1 sepm process models
Unit 1 sepm process models
KanchanPatil341.3K vistas
Software engineering the processSoftware engineering the process
Software engineering the process
Dr. Anthony Vincent. B55 vistas
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02
Asifuzzaman Hridoy2.3K vistas
System  DevelopmentSystem  Development
System Development
Sharad Patel823 vistas
Software Engineering Software Engineering
Software Engineering
JayaKamal186 vistas
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Compare Infobase Limited167.9K vistas
The processThe process
The process
prakashvs746 vistas

Más de sathish sak

TRANSPARENT CONCRETRANSPARENT CONCRE
TRANSPARENT CONCREsathish sak
9.9K vistas15 diapositivas
Stationary WavesStationary Waves
Stationary Wavessathish sak
2.9K vistas18 diapositivas
Electrical Activity of the HeartElectrical Activity of the Heart
Electrical Activity of the Heartsathish sak
2.2K vistas53 diapositivas
Electrical Activity of the HeartElectrical Activity of the Heart
Electrical Activity of the Heartsathish sak
11.6K vistas53 diapositivas
Digital Logic CircuitsDigital Logic Circuits
Digital Logic Circuitssathish sak
2.8K vistas58 diapositivas
Real-Time SchedulingReal-Time Scheduling
Real-Time Schedulingsathish sak
11.1K vistas33 diapositivas

Más de sathish sak(20)

TRANSPARENT CONCRETRANSPARENT CONCRE
TRANSPARENT CONCRE
sathish sak9.9K vistas
Stationary WavesStationary Waves
Stationary Waves
sathish sak2.9K vistas
Electrical Activity of the HeartElectrical Activity of the Heart
Electrical Activity of the Heart
sathish sak2.2K vistas
Electrical Activity of the HeartElectrical Activity of the Heart
Electrical Activity of the Heart
sathish sak11.6K vistas
Digital Logic CircuitsDigital Logic Circuits
Digital Logic Circuits
sathish sak2.8K vistas
Real-Time SchedulingReal-Time Scheduling
Real-Time Scheduling
sathish sak11.1K vistas
DIGITAL SIGNAL PROCESSOR OVERVIEWDIGITAL SIGNAL PROCESSOR OVERVIEW
DIGITAL SIGNAL PROCESSOR OVERVIEW
sathish sak431 vistas
FRACTAL  ROBOTICSFRACTAL  ROBOTICS
FRACTAL ROBOTICS
sathish sak915 vistas
Electro bikeElectro bike
Electro bike
sathish sak179 vistas
ROBOTIC SURGERYROBOTIC SURGERY
ROBOTIC SURGERY
sathish sak5.1K vistas
Plastics…Plastics…
Plastics…
sathish sak171 vistas
ENGINEERINGENGINEERING
ENGINEERING
sathish sak101 vistas
ENVIRONMENTALPOLLUTIONENVIRONMENTALPOLLUTION
ENVIRONMENTAL POLLUTION
sathish sak121 vistas
RFID TECHNOLOGYRFID TECHNOLOGY
RFID TECHNOLOGY
sathish sak287 vistas
green chemistrygreen chemistry
green chemistry
sathish sak1.7K vistas
  NANOTECHNOLOGY	  NANOTECHNOLOGY
NANOTECHNOLOGY
sathish sak215 vistas
The CyclotronThe Cyclotron
The Cyclotron
sathish sak4.7K vistas

Software process life cycles

  • 1. Software process life cycles By SATHISHKUMAR G (sathishsak111@gmail.com)
  • 2. Software and entropy  A virtue of software: relatively easy to change  Otherwise it might as well be hardware  Nevertheless, the more complex a software system gets, the harder it is to change--why?  Larger software systems are harder to understand  The more changes get introduced into a system, the more it tends toward entropy  I.e., its internal order breaks down
  • 3. Planning for change  How can good comments facilitate and reduce the cost of software maintenance?  Hint: think about invariants, things that don’t change.  Comments describe meaning of code  Assuming programmers maintain comments when they change the code!  How can modularity help manage change?  Modules help to isolate and localize change
  • 4. A software process requires resources…
  • 5. A software life cycle is a process  A process involves activities, constraints and resources that produce an intended output.  Each process activity, e.g., design, must have entry and exit criteria—why?  A process uses resources, subject to constraints (e.g., a schedule or a budget)  A process is organized in some order or sequence, structuring activities as a whole  A process has a set of guiding principles or criteria that explain the goals of each activity
  • 6. Waterfall model of software process  Multimedia: stages in the process  Cascades from one stage down to the next, in stately, lockstep, glorious order.  Gravity only allows the waterfall to go downstream;  it’s very hard to swim upstream  Department of Defense contracts prescribed this model for software deliverables for many years, in DOD Standard 2167-A.
  • 7. Why would corporate manager types like the waterfall life cycle model?  Minimizes change, maximizes predictability  Costs and risks are more predictable  Each stage has milestones and deliverables: project managers can use to gauge how close project is to completion  Sets up division of labor: many software shops associate different people with different stages:  Systems analyst does analysis,  Architect does design,  Programmers code,  Testers validate, etc.
  • 8. Testing in the waterfall model  Let’s look at more Pfleeger’s version of waterfall model  Many waterfall models show 5 stages—why more here?  What’s the difference between unit and system testing?  Between system and acceptance testing?  What kind of arrows are missing?  Is this diagram a more realistic picture?  Is this view of the process a good idea?  The reality is that not only does software change, but change happens during the process  Realistic models are not strictly linear, but allow for cycles  Bear in mind, however, that more cycles mean more costs
  • 9. More drawbacks of the waterfall model  Offers no insight into how how does each activity transform one artifacts (documents) of one stage into another  For example, requirements specification  design documents?  Fails to treat software a problem-solving process  Unlike hardware, software development is not a manufacturing but a creative process  Manufacturing processes really can be linear sequences, but creative processes usually involve back-and-forth activities such as revisions  Software development involves a lot of communication between various human stakeholders  Nevertheless, more complex models often embellish the waterfall,  incorporating feedback loops and additional activities
  • 10. Prototyping  This model adds prototyping as sub-process  A prototype is a partially developed product that enables customers and developers to examine some aspect of a proposed system and decide if it is suitable for a finished product  Why add prototypes to the life cycle?  Used to explore the risky aspects of the system:  Risk of developing the “wrong” system (what customer doesn’t want), can be a user interface without functionality  Other technical risks – e.g. performance, using a new technology, alternative algorithms, etc.  Prototype may be thrown away or evolve into product
  • 11. V model  Developed by the German Ministry of Defense  What does this model highlight?  Unit and system testing verify the program design, ensuring that parts and whole work correctly  Acceptance testing, conducted by the customer rather than developers, validates the requirements, tying each system function meets a particular requirement in the specification  How does this model account for cycles?  If problems are found during verification or validation, then re-execute left side of V to make fixes and improvements  While the waterfall emphasizes documents and artifacts, the V model emphasizes activities and correctness
  • 12. Balzer’s transformational model  Tries to reduce error in most software processes by:  eliminating development steps,  emphasizing formal specifications,  and using automated support to facilitate transformations from specification to deliverable system  Hitch: the need for a formal specification precise enough for automated transformations  We’ll see that even semi-formal specifications can help with other software life cycles
  • 13. Phased development  Nowadays, customers are less willing to wait years for a software system to be ready  So it’s necessary to reduce the cycle time of software products  In 1996, 80% of HP’s revenues derived from products developed in previous two years  How is this accelerated cycle time made possible?  Phased development reduces cycle time  Design a system so it can be delivered in pieces, letting users have some functionality while the rest is under development  So there are usually two or more systems in parallel:  The operational or production system in use by customers  The development system which will replace the current release  As users use Release n, developers are building Release n + 1
  • 14. Iterative and incremental process  Incremental development partitions a system by functionality  Early release starts with small, functional subsystem, later releases add functionality  Top part of this figure shows how incremental development builds up to full functionality  Iterative development improves overall system in each release  Delivers a full system in the first release, then changes the functionality of each subsystem with each new release  Suppose a customer wants to develop a word processing package  Incremental approach: provide just Creation functions in Release 1, then both Creation and Organization in Release 2, finally add Formatting in Release 3, …  Iterative approach: provide primitive forms of all three functions in Release 1, then enhance (making them faster, improving the interface, etc.) in subsequent releases  Pros and cons of these two approaches?  Many organizations combine iterative and incremental approaches
  • 15. Quiz!Quiz! What are drawbacks of Waterfall Model? Can prototypes alleviate these drawbacks? Why or why not? Is the V model more realistic? Is it realistic enough? Why do many software development shops prefer phased and/or iterative & incremental models? Does this discussion motivate you learn to avoid just hacking?
  • 16. Rational Unified Process (RUP)  Developed by “three amigos” at Rational Software (IBM)  Grady Booch, Ivar Jacobson, and Jim Rumbaugh  Unified Modeling Language (UML) is a set of graphical and linguistic notations for modeling systems, not a process or method  The three amigos also developed Rational Unified Process (RUP)  You don’t have to use RUP to use UML  Interestingly different from the traditional waterfall model  Highly iterative and incremental process  Software product is not released in one big bang at end of project  Instead, developed and released in pieces (prototypes, partial releases, beta, etc.)
  • 17. Agile Methods  Typically lightweight  WRT commitment to phases and documentation  Versus waterfall models which require “heavy” documentation of each phase before proceeding  Flexible, Adaptable, Iterative  Examples: RUP or UP, Extreme Programming (XP), Scrum
  • 18. How do traditional stages iterate? Workflows look traditional, but they iterate in four phases
  • 19. Lifecycle PhasesLifecycle Phases Inception – “Daydream” Elaboration – “Design/Details” Construction – “Do it” Transition – “Deploy it” Phases are not the classical requirements/ design/coding/implementation processes Phases iterate over many cycles
  • 20. Inception  Elaboration  …  During inception, establish business rationale and scope for project  Business case: how much it will cost and how much it will bring in?  Scope: try to get sense of size of the project and whether it’s doable  Creates a vision and scope document at a high level of abstraction  In elaboration, collect more detailed requirements and do high-level analysis and design  Inception gives you the go-ahead to start a project, elaboration determines the risks  Requirement risks: big danger is that you may build the wrong system  Technological risks: can the technology actually do the job? will the pieces fit together?  Skills risks: can you get the staff and expertise you need?  Political risks: can political forces get in the way?  Develop use cases, non-functional requirements & domain model
  • 21. …  Construction  Transition  Construction builds production-quality software in many increments, tested and integrated, each satisfying a subset of the requirements of the project  Delivery may be to external, early users, or purely internal  Each iteration contains usual life-cycle phases of analysis, design, implementation and testing  Planning is crucial: use cases and other UML documents  Transition activities include beta testing, performance tuning (optimization) and user training  No new functionality unless it’s small and essential  Bug fixes are OK
  • 22. inc. elaboration construction transition iteration phase developmentcycle UP phases are iterative & incremental  Inception  Feasibility phase and approximate vision  Elaboration  Core architecture implementation, high risk resolution  Construction  Implementation of remaining elements  Transition  Beta tests, deployment
  • 23. UP artifacts  The UP describes work activities, which result in work products called artifacts  Examples of artifacts:  Vision, scope and business case descriptions  Use cases (describe scenarios for user-system interactions)  UML diagrams for domain modeling, system modeling  Source code (and source code documentation)  Web graphics  Database schema
  • 24. Milestone for first ElaborationMilestone for first Elaboration At start of elaboration, identify part of the project to design & implement A typical and crucial scenario (from a use case) After first elaboration, project is, say, 1/5th done Can then provide estimates for rest of project Significant risks are identified and understood How is such a milestone different from a stage in the waterfall model?
  • 25. Process disciplines or workflowsProcess disciplines or workflows • Requirements analysis • Design: architectural and class levels • Implementation • Testing • Management – Configuration and change – Project • Most of the process workflows occur during each iteration
  • 26. What does diagram imply about UP? How can iterations reduce risk or reveal problems?
  • 27. Another Quiz!Another Quiz! What are the four lifecycle phases of UP? What happens in each? What are the process disciplines? What are some major differences between distinguishes UP and the waterfall model?