SlideShare a Scribd company logo
1 of 35
Fundamentals of software engineering
Chapter 2
Software process model
Objectives
Fundamentals of software engineering
 To understand the concepts of
software processes and software
process models.
 To describe the generic process
models and when they may be used.
 To introduce iterative and sequential
process models.
Software process
Fundamentals of software engineering
 Software process is a set of related activities that
leads to the production of a software system.
 Software process can be defined as a framework for
the activities, actions, and tasks that are required to
build high-quality software.
 A software process model is an abstract
representation of a process. It presents a description
of a process from some particular perspective.
Generic process model
Fundamentals of software engineering
 A generic process framework for software
engineering defines five framework activities
communication, planning, modeling, construction,
and deployment. And also a set of umbrella
activities- project tracking and control, risk
management, quality assurance, configuration
management and etc.
 A process flow describes how the framework
activities and the actions and tasks that occur within
linear process flow executes each of the five framework
activities in sequence, beginning with communication and
culminating with deployment.
An iterative process flow repeats one or more of the
activities before proceeding to the next.
Process flow types
Fundamentals of software engineering
Cont’d
Fundamentals of software engineering
An evolutionary process flow executes the activities
in a “circular” manner. Each circuit through the five
activities leads to a more complete version of the
software.
Cont’d
Fundamentals of software engineering
A parallel process flow executes one or more
activities in parallel with other activities (e.g., modeling
for one aspect of the software might be executed in
parallel with construction of another aspect of the
software).
Waterfall model
Fundamentals of software engineering
 The waterfall model takes the fundamental process
activities as separate process phases such as
requirements specification, software design,
implementation, and testing.
 It presents the software development process as a
number of stages
Cont’d
Fundamentals of software engineering
Cont’d
Fundamentals of software engineering
 Requirements analysis and definition
• The system’s services, constraints, and goals are
established by consultation with system users. They
are then defined in detail and serve as a system
specification.
 System and software design
• It establishes an overall system architecture. Software
design involves identifying and describing the
fundamental software system abstractions and their
relationships.
 Implementation and unit testing
• During this stage, the software design is realized as a
set of programs or program units. Unit testing involves
verifying that each unit meets its specification.
Cont’d
Fundamentals of software engineering
 Integration and system testing
 The individual program units or programs are
integrated and tested as a complete system to
ensure that the software requirements have been
met. After testing, the software system is delivered
to the customer.
 Operation and maintenance
 Normally, this is the longest life-cycle phase.
Maintenance involves correcting errors that were
not discovered in earlier stages of the life cycle.
Problems in Waterfall Model
Fundamentals of software engineering
 Real projects rarely follow the sequential flow that the
model proposes. Changes can cause confusion as
the project team proceeds.
 It is often difficult for the customer to state all
requirements explicitly.
 The customer must have patience. A working version
of the program(s) will not be available until late in the
project time span.
 Classic life cycle leads to “blocking states” in which
some project team members must wait for other
members of the team to complete dependent tasks.
When to use the waterfall model
Fundamentals of software engineering
This model is used only when :
 The requirements are very well known, clear and fixed.
 Product definition is stable.
 Technology is understood.
 There are no ambiguous requirements
 Ample resources with required expertise are available
freely
 The project is short.
 The waterfall model is not the right process model in
situations where informal team communication is
possible and software requirements change quickly.
Fundamentals of software engineering
Waterfall model is only appropriate for some types of
system:
 Embedded systems where the software has to interface
with hardware systems. Because of the inflexibility of
hardware, it is not usually possible to delay decisions on
the software’s functionality until it is being implemented.
 Critical systems where there is a need for extensive
safety and security analysis of the software specification
and design. In these systems, the specification and
design documents must be complete so that this analysis
is possible.
 Large software systems that are part of broader
engineering systems developed by several partner
Cont’d
Incremental Process Models
Fundamentals of software engineering
 There may be a compelling need to provide a limited
set of software functionality to users quickly and then
expand on that functionality in later software releases.
 It combines elements of linear and parallel process
flows.
 When an incremental model is used, the first
increment is often a core product.
 That is, basic requirements are addressed but many
supplementary features (some known, others
unknown) remain undelivered.
 The incremental process model focuses on the
delivery of an operational product with each increment
Cont’d
Fundamentals of software engineering
 Each linear sequence produces deliverable
“increments” of the software in a manner that is
similar to the increments produced by an evolutionary
process flow.
Example: word-processing software
First increment: basic file management, editing, and
document production functions.
Second increment: more sophisticated editing and
document production capabilities.
Third increment: spelling and grammar checking.
Fourth increment: advanced page layout capability
Cont’d
Fundamentals of software engineering
Advantages of Incremental
models
Fundamentals of software engineering
 Generates working software quickly and early
during the software life cycle.
 This model is more flexible – less costly to
change scope and requirements.
 It is easier to test and debug during a smaller
iteration.
 Customer feedback is received after the
delivery of each component
 Lowers initial delivery cost.
 Easier to manage risk because risky pieces
are identified and handled during it’s iteration.
Disadvantage's of Incremental
models
Fundamentals of software engineering
 Needs good planning and design.
 Needs a clear and complete definition of the whole
system before it can be broken down and built
incrementally.
 Total cost is higher than waterfall.
When to use Incremental Models
Fundamentals of software engineering
 It is useful when staffing is unavailable for a
complete implementation by the business
deadline that has been established for the
project.
 Increments can be planned to manage technical
risks.
Say need of hardware.
 Enabling partial functionality to be delivered to
end users without inordinate delay.
 Major requirements must be defined; however,
some details can evolve with time.
 There is a need to get a product to the market
early.
 A new technology is being used.
Evolutionary Process Models
Fundamentals of software engineering
 Software, like all complex systems, evolves over
a period of time.
 You need a process model that has been
explicitly designed to accommodate a product
that evolves over time.
 Evolutionary models are iterative.
 They are characterized in a manner that enables
you to develop increasingly more complete
versions of the software.
Two common evolutionary process models:
i. Prototyping
ii. The spiral model
Fundamentals of software engineering
Prototyping
Fundamentals of software engineering
A prototyping paradigm may offer the best approach when:
 A customer defines a set of general objectives for
software, but does not identify detailed requirements for
functions and features.
 The developer may be unsure of the efficiency of an
algorithm, the adaptability of an operating system, or the
form that human-machine interaction should take.
 It can be used as a stand-alone process model, it is more
commonly used as a technique that can be implemented
within the context of any one of the process models.
 Prototyping paradigm assists you and other stakeholders
to better understand what is to be built when
requirements are fuzzy.
Cont’d
Fundamentals of software engineering
Both stakeholders and software engineers like the
prototyping paradigm. Users get a feel for the actual system,
and developers get to build something immediately.
The Spiral Model
Fundamentals of software engineering
 The spiral model is an evolutionary software
process model that couples the iterative nature
of prototyping with the controlled and
systematic aspects of the waterfall model.
 It provides the potential for rapid development
of increasingly more complete versions of the
software.
 The spiral development model is a risk-driven
process model generator that is used to guide
multi-stakeholder concurrent engineering of
Fundamentals of software engineering
It has two main distinguishing features:
1. One is a cyclic approach for incrementally growing a
system’s degree of definition and implementation while
decreasing its degree of risk.
2. The other is a set of anchor point milestones for
ensuring stakeholder commitment to feasible and
mutually satisfactory system solutions.
 Using the spiral model, software is developed in a series
of evolutionary releases.
 During early iterations, the release might be a model or
prototype. During later iterations, increasingly more
complete versions of the engineered system are
produced.
 Spiral model is divided into a set of framework activities
defined by the software engineering team.
Fundamentals of software engineering
When to use spiral model
Fundamentals of software engineering
 When releases are required to be frequent
 When the project is large
 When the amount of risk is large
 Where the requirements are unclear and complex
 Where requirement may change at any time
Characteristics of Spiral Model
Fundamentals of software engineering
 Unlike other process models that end when software
is delivered, the spiral model can be adapted to
apply throughout the life of the computer software.
 The spiral model is a realistic approach to the
development of large-scale systems and software.
Because software evolves as the process
progresses.
 The developer and customer better understand and
react to risks at each evolutionary level.
 The spiral model uses prototyping as a risk reduction
mechanism but, more important, enables you to
apply the prototyping approach at any stage in the
evolution of the product.
Issues regarding Spiral Model
Fundamentals of software engineering
 The spiral model is not a panacea.
 It may be difficult to convince customers (particularly
in contract situations) that the evolutionary approach
is controllable.
 It demands considerable risk assessment expertise
and relies on this expertise for success. If a major risk
is not uncovered and managed, problems will
undoubtedly occur.
 It is much complex than other SDLC, deals mostly
with large projects
Component-Based Development
Fundamentals of software engineering
 Commercial off-the-shelf (COTS) software
components, developed by vendors who offer them as
products, provide targeted functionality with well-
defined interfaces that enable the component to be
integrated into the software that is to be built.
 The component-based development model
incorporates many of the characteristics of the spiral
model.
 It is evolutionary in nature, demanding an iterative
approach to the creation of software.
 However, the component-based development model
constructs applications from prepackaged software
components.
Cont’d
Fundamentals of software engineering
• Modeling and construction activities begin with the
identification of candidate components.
• These components can be designed as either
conventional software modules or object-oriented
classes or packages of classes.
Steps involved in Component-Based
Development Model
Fundamentals of software engineering
1. Available component-based products are
researched and evaluated for the application domain.
2. Component integration issues are considered.
3. A software architecture is designed to
accommodate the components.
4. Components are integrated into the architecture.
5. Comprehensive testing is conducted to ensure
proper functionality.
Benefits of Component-Based
Development
Fundamentals of software engineering
 The component-based development model leads to
software reuse, and reusability provides software
engineers with a number of measurable benefits.
 Your software engineering team can achieve a
reduction in development cycle time as well as a
reduction in project cost if component reuse becomes
part of your culture.
Fundamentals of software engineering

More Related Content

Similar to Elementary Probability theory Chapter 2.pptx

Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering OverviewPrachi Sasankar
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software ProcessJomel Penalba
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Managementswatisinghal
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1Badar Waseer
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxKalpna Saharan
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and designRizwan Kabir
 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)MuhammadTalha436
 

Similar to Elementary Probability theory Chapter 2.pptx (20)

Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software Process
 
Ch4
Ch4Ch4
Ch4
 
Ch4
Ch4Ch4
Ch4
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
Software models
Software modelsSoftware models
Software models
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptx
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
SE-Lecture-4.pptx
SE-Lecture-4.pptxSE-Lecture-4.pptx
SE-Lecture-4.pptx
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
16346915.ppt
16346915.ppt16346915.ppt
16346915.ppt
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)
 

More from ethiouniverse

Object Oriented Programming Tutorial.pptx
Object Oriented Programming Tutorial.pptxObject Oriented Programming Tutorial.pptx
Object Oriented Programming Tutorial.pptxethiouniverse
 
chap4secondlawofthermodynamics-130703012656-phpapp01.ppt
chap4secondlawofthermodynamics-130703012656-phpapp01.pptchap4secondlawofthermodynamics-130703012656-phpapp01.ppt
chap4secondlawofthermodynamics-130703012656-phpapp01.pptethiouniverse
 
Addis abeb university ..Artificial intelligence .pptx
Addis abeb university ..Artificial intelligence .pptxAddis abeb university ..Artificial intelligence .pptx
Addis abeb university ..Artificial intelligence .pptxethiouniverse
 
Short_note_Introduction_to_emerging_technologies_@QesemAcademy.pptx
Short_note_Introduction_to_emerging_technologies_@QesemAcademy.pptxShort_note_Introduction_to_emerging_technologies_@QesemAcademy.pptx
Short_note_Introduction_to_emerging_technologies_@QesemAcademy.pptxethiouniverse
 
Lecture 1 Introduction to Emerging Technology.pptx
Lecture 1 Introduction to Emerging Technology.pptxLecture 1 Introduction to Emerging Technology.pptx
Lecture 1 Introduction to Emerging Technology.pptxethiouniverse
 
Chapter three Hiostry of Electrical engineering.pptx
Chapter three Hiostry of Electrical engineering.pptxChapter three Hiostry of Electrical engineering.pptx
Chapter three Hiostry of Electrical engineering.pptxethiouniverse
 
electrical materialsand accessories ch2.pptx
electrical materialsand accessories ch2.pptxelectrical materialsand accessories ch2.pptx
electrical materialsand accessories ch2.pptxethiouniverse
 
Energy Transport by Heat, Work and Mass (1).ppt
Energy Transport by Heat, Work and Mass (1).pptEnergy Transport by Heat, Work and Mass (1).ppt
Energy Transport by Heat, Work and Mass (1).pptethiouniverse
 
Thermody Properties of Pure Substance (1).ppt
Thermody Properties of Pure Substance (1).pptThermody Properties of Pure Substance (1).ppt
Thermody Properties of Pure Substance (1).pptethiouniverse
 
Thermodynamics concepts chapter one.pptx
Thermodynamics concepts chapter one.pptxThermodynamics concepts chapter one.pptx
Thermodynamics concepts chapter one.pptxethiouniverse
 
CS Artificial Intelligence chapter 4.pptx
CS Artificial Intelligence chapter 4.pptxCS Artificial Intelligence chapter 4.pptx
CS Artificial Intelligence chapter 4.pptxethiouniverse
 
CS Artificial intelligence chapter 2.pptx
CS Artificial intelligence chapter 2.pptxCS Artificial intelligence chapter 2.pptx
CS Artificial intelligence chapter 2.pptxethiouniverse
 

More from ethiouniverse (13)

Object Oriented Programming Tutorial.pptx
Object Oriented Programming Tutorial.pptxObject Oriented Programming Tutorial.pptx
Object Oriented Programming Tutorial.pptx
 
chap4secondlawofthermodynamics-130703012656-phpapp01.ppt
chap4secondlawofthermodynamics-130703012656-phpapp01.pptchap4secondlawofthermodynamics-130703012656-phpapp01.ppt
chap4secondlawofthermodynamics-130703012656-phpapp01.ppt
 
Addis abeb university ..Artificial intelligence .pptx
Addis abeb university ..Artificial intelligence .pptxAddis abeb university ..Artificial intelligence .pptx
Addis abeb university ..Artificial intelligence .pptx
 
Short_note_Introduction_to_emerging_technologies_@QesemAcademy.pptx
Short_note_Introduction_to_emerging_technologies_@QesemAcademy.pptxShort_note_Introduction_to_emerging_technologies_@QesemAcademy.pptx
Short_note_Introduction_to_emerging_technologies_@QesemAcademy.pptx
 
Lecture 1 Introduction to Emerging Technology.pptx
Lecture 1 Introduction to Emerging Technology.pptxLecture 1 Introduction to Emerging Technology.pptx
Lecture 1 Introduction to Emerging Technology.pptx
 
Chapter three Hiostry of Electrical engineering.pptx
Chapter three Hiostry of Electrical engineering.pptxChapter three Hiostry of Electrical engineering.pptx
Chapter three Hiostry of Electrical engineering.pptx
 
electrical materialsand accessories ch2.pptx
electrical materialsand accessories ch2.pptxelectrical materialsand accessories ch2.pptx
electrical materialsand accessories ch2.pptx
 
Energy Transport by Heat, Work and Mass (1).ppt
Energy Transport by Heat, Work and Mass (1).pptEnergy Transport by Heat, Work and Mass (1).ppt
Energy Transport by Heat, Work and Mass (1).ppt
 
Thermody Properties of Pure Substance (1).ppt
Thermody Properties of Pure Substance (1).pptThermody Properties of Pure Substance (1).ppt
Thermody Properties of Pure Substance (1).ppt
 
Thermodynamics concepts chapter one.pptx
Thermodynamics concepts chapter one.pptxThermodynamics concepts chapter one.pptx
Thermodynamics concepts chapter one.pptx
 
CS Artificial Intelligence chapter 4.pptx
CS Artificial Intelligence chapter 4.pptxCS Artificial Intelligence chapter 4.pptx
CS Artificial Intelligence chapter 4.pptx
 
CS Artificial intelligence chapter 2.pptx
CS Artificial intelligence chapter 2.pptxCS Artificial intelligence chapter 2.pptx
CS Artificial intelligence chapter 2.pptx
 
Chapter 1.ppt
Chapter 1.pptChapter 1.ppt
Chapter 1.ppt
 

Recently uploaded

Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxPurva Nikam
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 

Recently uploaded (20)

Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 

Elementary Probability theory Chapter 2.pptx

  • 1. Fundamentals of software engineering Chapter 2 Software process model
  • 2. Objectives Fundamentals of software engineering  To understand the concepts of software processes and software process models.  To describe the generic process models and when they may be used.  To introduce iterative and sequential process models.
  • 3. Software process Fundamentals of software engineering  Software process is a set of related activities that leads to the production of a software system.  Software process can be defined as a framework for the activities, actions, and tasks that are required to build high-quality software.  A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
  • 4. Generic process model Fundamentals of software engineering  A generic process framework for software engineering defines five framework activities communication, planning, modeling, construction, and deployment. And also a set of umbrella activities- project tracking and control, risk management, quality assurance, configuration management and etc.  A process flow describes how the framework activities and the actions and tasks that occur within
  • 5. linear process flow executes each of the five framework activities in sequence, beginning with communication and culminating with deployment. An iterative process flow repeats one or more of the activities before proceeding to the next. Process flow types Fundamentals of software engineering
  • 6. Cont’d Fundamentals of software engineering An evolutionary process flow executes the activities in a “circular” manner. Each circuit through the five activities leads to a more complete version of the software.
  • 7. Cont’d Fundamentals of software engineering A parallel process flow executes one or more activities in parallel with other activities (e.g., modeling for one aspect of the software might be executed in parallel with construction of another aspect of the software).
  • 8. Waterfall model Fundamentals of software engineering  The waterfall model takes the fundamental process activities as separate process phases such as requirements specification, software design, implementation, and testing.  It presents the software development process as a number of stages
  • 10. Cont’d Fundamentals of software engineering  Requirements analysis and definition • The system’s services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification.  System and software design • It establishes an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.  Implementation and unit testing • During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.
  • 11. Cont’d Fundamentals of software engineering  Integration and system testing  The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.  Operation and maintenance  Normally, this is the longest life-cycle phase. Maintenance involves correcting errors that were not discovered in earlier stages of the life cycle.
  • 12. Problems in Waterfall Model Fundamentals of software engineering  Real projects rarely follow the sequential flow that the model proposes. Changes can cause confusion as the project team proceeds.  It is often difficult for the customer to state all requirements explicitly.  The customer must have patience. A working version of the program(s) will not be available until late in the project time span.  Classic life cycle leads to “blocking states” in which some project team members must wait for other members of the team to complete dependent tasks.
  • 13. When to use the waterfall model Fundamentals of software engineering This model is used only when :  The requirements are very well known, clear and fixed.  Product definition is stable.  Technology is understood.  There are no ambiguous requirements  Ample resources with required expertise are available freely  The project is short.  The waterfall model is not the right process model in situations where informal team communication is possible and software requirements change quickly.
  • 14. Fundamentals of software engineering Waterfall model is only appropriate for some types of system:  Embedded systems where the software has to interface with hardware systems. Because of the inflexibility of hardware, it is not usually possible to delay decisions on the software’s functionality until it is being implemented.  Critical systems where there is a need for extensive safety and security analysis of the software specification and design. In these systems, the specification and design documents must be complete so that this analysis is possible.  Large software systems that are part of broader engineering systems developed by several partner Cont’d
  • 15. Incremental Process Models Fundamentals of software engineering  There may be a compelling need to provide a limited set of software functionality to users quickly and then expand on that functionality in later software releases.  It combines elements of linear and parallel process flows.  When an incremental model is used, the first increment is often a core product.  That is, basic requirements are addressed but many supplementary features (some known, others unknown) remain undelivered.  The incremental process model focuses on the delivery of an operational product with each increment
  • 16. Cont’d Fundamentals of software engineering  Each linear sequence produces deliverable “increments” of the software in a manner that is similar to the increments produced by an evolutionary process flow. Example: word-processing software First increment: basic file management, editing, and document production functions. Second increment: more sophisticated editing and document production capabilities. Third increment: spelling and grammar checking. Fourth increment: advanced page layout capability
  • 18. Advantages of Incremental models Fundamentals of software engineering  Generates working software quickly and early during the software life cycle.  This model is more flexible – less costly to change scope and requirements.  It is easier to test and debug during a smaller iteration.  Customer feedback is received after the delivery of each component  Lowers initial delivery cost.  Easier to manage risk because risky pieces are identified and handled during it’s iteration.
  • 19. Disadvantage's of Incremental models Fundamentals of software engineering  Needs good planning and design.  Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.  Total cost is higher than waterfall.
  • 20. When to use Incremental Models Fundamentals of software engineering  It is useful when staffing is unavailable for a complete implementation by the business deadline that has been established for the project.  Increments can be planned to manage technical risks. Say need of hardware.  Enabling partial functionality to be delivered to end users without inordinate delay.  Major requirements must be defined; however, some details can evolve with time.  There is a need to get a product to the market early.  A new technology is being used.
  • 21. Evolutionary Process Models Fundamentals of software engineering  Software, like all complex systems, evolves over a period of time.  You need a process model that has been explicitly designed to accommodate a product that evolves over time.  Evolutionary models are iterative.  They are characterized in a manner that enables you to develop increasingly more complete versions of the software. Two common evolutionary process models: i. Prototyping ii. The spiral model
  • 23. Prototyping Fundamentals of software engineering A prototyping paradigm may offer the best approach when:  A customer defines a set of general objectives for software, but does not identify detailed requirements for functions and features.  The developer may be unsure of the efficiency of an algorithm, the adaptability of an operating system, or the form that human-machine interaction should take.  It can be used as a stand-alone process model, it is more commonly used as a technique that can be implemented within the context of any one of the process models.  Prototyping paradigm assists you and other stakeholders to better understand what is to be built when requirements are fuzzy.
  • 24. Cont’d Fundamentals of software engineering Both stakeholders and software engineers like the prototyping paradigm. Users get a feel for the actual system, and developers get to build something immediately.
  • 25. The Spiral Model Fundamentals of software engineering  The spiral model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model.  It provides the potential for rapid development of increasingly more complete versions of the software.  The spiral development model is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of
  • 26. Fundamentals of software engineering It has two main distinguishing features: 1. One is a cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. 2. The other is a set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.  Using the spiral model, software is developed in a series of evolutionary releases.  During early iterations, the release might be a model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced.  Spiral model is divided into a set of framework activities defined by the software engineering team.
  • 28. When to use spiral model Fundamentals of software engineering  When releases are required to be frequent  When the project is large  When the amount of risk is large  Where the requirements are unclear and complex  Where requirement may change at any time
  • 29. Characteristics of Spiral Model Fundamentals of software engineering  Unlike other process models that end when software is delivered, the spiral model can be adapted to apply throughout the life of the computer software.  The spiral model is a realistic approach to the development of large-scale systems and software. Because software evolves as the process progresses.  The developer and customer better understand and react to risks at each evolutionary level.  The spiral model uses prototyping as a risk reduction mechanism but, more important, enables you to apply the prototyping approach at any stage in the evolution of the product.
  • 30. Issues regarding Spiral Model Fundamentals of software engineering  The spiral model is not a panacea.  It may be difficult to convince customers (particularly in contract situations) that the evolutionary approach is controllable.  It demands considerable risk assessment expertise and relies on this expertise for success. If a major risk is not uncovered and managed, problems will undoubtedly occur.  It is much complex than other SDLC, deals mostly with large projects
  • 31. Component-Based Development Fundamentals of software engineering  Commercial off-the-shelf (COTS) software components, developed by vendors who offer them as products, provide targeted functionality with well- defined interfaces that enable the component to be integrated into the software that is to be built.  The component-based development model incorporates many of the characteristics of the spiral model.  It is evolutionary in nature, demanding an iterative approach to the creation of software.  However, the component-based development model constructs applications from prepackaged software components.
  • 32. Cont’d Fundamentals of software engineering • Modeling and construction activities begin with the identification of candidate components. • These components can be designed as either conventional software modules or object-oriented classes or packages of classes.
  • 33. Steps involved in Component-Based Development Model Fundamentals of software engineering 1. Available component-based products are researched and evaluated for the application domain. 2. Component integration issues are considered. 3. A software architecture is designed to accommodate the components. 4. Components are integrated into the architecture. 5. Comprehensive testing is conducted to ensure proper functionality.
  • 34. Benefits of Component-Based Development Fundamentals of software engineering  The component-based development model leads to software reuse, and reusability provides software engineers with a number of measurable benefits.  Your software engineering team can achieve a reduction in development cycle time as well as a reduction in project cost if component reuse becomes part of your culture.