SlideShare a Scribd company logo
I N T R O D U C T I O N T O S O F T W A R E E N G I N E E R I N G
Chapter 1
Overview
 Introduction to Software Engineering
 Software Engineering is a systematic approach to developing,
operating, and maintaining software systems efficiently and
reliably.
 It involves applying engineering principles and methodologies to
software development to ensure quality, efficiency, and scalability.
 This overview will highlight the significance of Software
Engineering in modern technology and its role in addressing the
challenges of the Software Crisis.
Definition:
 Software Engineering encompasses the systematic application
of scientific and technological knowledge to develop and
maintain software products.
 It involves processes, methods, tools, and techniques to
manage software development projects efficiently and
effectively.
 The goal of Software Engineering is to produce high-quality
software that meets user requirements within budget and time
constraints.
Basic Concepts
 Understanding Software and Engineering
 Software refers to programs, data, documentation, and user
interfaces that constitute a computer system.
 Engineering involves the systematic application of knowledge and
principles to design, build, and maintain complex systems.
 In Software Engineering, these concepts converge to address the
challenges of developing reliable and scalable software systems.
Evolution of Software Engineering
 From Early Programming Practices to Software
Engineering Discipline
 Software Engineering has evolved from ad-hoc programming
practices to a disciplined approach to software development.
 Early practices lacked systematic methodologies, leading to
inefficiencies, errors, and project failures.
 The emergence of Software Engineering as a discipline addressed
these challenges by introducing systematic approaches and
methodologies.
Evolution of Software Engineering
 Tracing the Development of Software Engineering
 Early programming practices were largely ad-hoc, lacking
systematic methodologies, and resulting in inefficiencies and
errors.
 The emergence of Software Engineering as a discipline stemmed
from the need for structured approaches to address software
complexities.
 Over time, Software Engineering has integrated principles from
engineering, computer science, and management to refine its
practices.
Key Milestones in Software Engineering
Evolution
 Notable Progress in Software Engineering
 1940s-1950s: The advent of electronic computers marked the
beginning of software development efforts.
 1960s-1970s: Structured programming methodologies and early
software development models, such as the Waterfall Model,
emerged.
 1980s-1990s: The proliferation of personal computers led to
advancements in software development tools and methodologies.
 2000s-Present: Agile methodologies gained popularity,
emphasizing flexibility and customer collaboration in response to
changing requirements.
The Software Crisis
 The Software Crisis refers to the challenges faced by the software
industry in delivering quality software products efficiently and
reliably.
 Factors contributing to the crisis include increasing complexity,
changing requirements, and inadequate development practices.
 Addressing the Software Crisis requires adopting systematic
approaches and methodologies to ensure the quality and reliability
of software systems.
Addressing the Software Crisis
 Software Engineering practices aim to address the challenges posed
by the Software Crisis by introducing systematic approaches to
software development.
 These practices include requirements engineering, software design,
coding, testing, and maintenance, conducted in a structured and
disciplined manner.
 By adopting Software Engineering practices, organizations can
improve the quality, reliability, and efficiency of software
development processes.
Software Development Life Cycle (SDLC)
 Understanding the SDLC:
 Software Development Life Cycle (SDLC) is a process used by the
software industry to design, develop and test high quality
software's.
 The SDLC aims to produce a high-quality software that meets or
exceeds customer expectations, reaches completion within times
and cost estimates.
 SDLC is a process followed for a software project, within a
software organization.
 It consists of a detailed plan describing how to develop,
maintain, replace and alter or enhance specific software. The life
cycle defines a methodology for improving the quality of software
and the overall development process.
Software Life Cycle Models Overview
 SDLC Models
 There are various software development life cycle models
defined and designed which are followed during the software
development process. These models are also referred as
Software Development Process Models.
 Each process model follows a Series of steps unique to its type
to ensure success in the process of software development.
Software Development Life Cycle (SDLC)
 Following are the most important and popular SDLC
models followed in the industry −
 Waterfall Model
 Iterative Model
 Spiral Model
 V-Model
 Agile Model
 Big Bang Model
Waterfall Model
 The Waterfall Model is a sequential software
development process consisting of distinct phases:
requirements, design, implementation, testing,
deployment, and maintenance.
 Each phase must be completed before moving to the
next, resembling a waterfall flowing downwards.
 The Waterfall Model is easy to understand and
implement but lacks flexibility, making it less suitable
for projects with changing requirements.
Waterfall Model
 Requirement Gathering and analysis
 All possible requirements of the system to be developed are
captured in this phase and documented in a requirement
specification document.
 System Design
 The requirement specifications from first phase are studied in this
phase and the system design is prepared.
 This system design helps in specifying hardware and system
requirements and helps in defining the overall system architecture.
Waterfall Model
 Implementation
 With inputs from the system design, the system is first developed
in small programs called units, which are integrated in the next
phase.
 Each unit is developed and tested for its functionality, which is
referred to as Unit Testing.
 Integration and Testing
 All the units developed in the implementation phase are
integrated into a system after testing of each unit.
 Post integration the entire system is tested for any faults and
failures.
Waterfall model
 Deployment of system
 Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released
into the market.
 Maintenance
 There are some issues which come up in the client
environment.
 To fix those issues, patches are released. Also to enhance the
product some better versions are released. Maintenance is
done to deliver these changes in the customer environment.
Waterfall model
 Waterfall Model Advantages
 The advantages of waterfall development are that it allows for
departmentalization and control.
 A schedule can be set with deadlines for each stage of development
and a product can proceed through the development process
model phases one by one.
 Development moves from concept, through design,
implementation, testing, installation, troubleshooting, and ends up
at operation and maintenance. Each phase of development
proceeds in strict order.
Waterfall Model
 Disadvantages
 The disadvantage of waterfall development is that it does not
allow much reflection or revision.
 Once an application is in the testing stage, it is very difficult to
go back and change something that was not well-documented
or thought upon in the concept stage.
 No working software is produced until late during the life
cycle( it’s sequential)
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
Iterative Models
 Iterative process starts with a simple implementation
of a subset of the software requirements and iteratively
enhances the evolving versions until the full system is
implemented.
 At each iteration, design modifications are made and
new functional capabilities are added.
 The basic idea behind this method is to develop a
system through repeated cycles (iterative) and in
smaller portions at a time (incremental).
Iterative model
Iterative mode
 Iterative and Incremental development is a
combination of both iterative design or iterative
method and incremental build model for
development.
 “During software development, more than one
iteration of the software development cycle may be
in progress at the same time”.
Iterative Models
 Advantages and Disadvantages
 Advantages of Iterative Models include early delivery of partial
functionality, reduced risk through incremental development, and
greater flexibility in accommodating changes.
 Disadvantages
 However, managing iterations and controlling scope can be
challenging, and there may be increased complexity due to the
need for integration across iterations.
Spiral Model
 The spiral model combines the idea of iterative
development with the systematic, controlled aspects
of the waterfall model.
 This Spiral model is a combination of iterative
development process model and sequential linear
development model i.e. the waterfall model with a
very high emphasis on risk analysis.
 It allows incremental releases of the product or
incremental refinement through each iteration
around the spiral.
Spiral Model
Risk Handling in Spiral Model
 The most important feature of the spiral model is handling these
unknown risks after the project has started. Such risk resolutions are
easier done by developing a prototype.
 The spiral model supports coping with risks by providing the scope to
build a prototype at every phase of software development.
 The Prototyping Model also supports risk handling, but the risks must
be identified completely before the start of the development work of
the project.
 But in real life, project risk may occur after the development work
starts, in that case, we cannot use the Prototyping Model.
 In each phase of the Spiral Model, the features of the product dated
and analyzed, and the risks at that point in time are identified and are
resolved through prototyping.
 Thus, this model is much more flexible compared to other SDLC
models.
Cont..
 Advantages
 Changing requirements can be accommodated.
 Allows extensive use of prototypes.
 Requirements can be captured more accurately.
 Users see the system early.
 Development can be divided into smaller parts and the risky parts
can be developed earlier which helps in better risk management.
Spiral Model
 Disadvantages
 Management is more complex.
 End of the project may not be known early.
 Not suitable for small or low risk projects and could be
expensive for small projects.
 Process is complex
 Spiral may go on indefinitely.
 Large number of intermediate stages requires excessive
documentation.
V-Model
 The V-model is an SDLC model where execution of
processes happens in a sequential manner in a V-shape.
It is also known as Verification and Validation model.
 The V-Model is an extension of the waterfall model and is
based on the association of a testing phase for each
corresponding development stage.
 This means that for every single phase in the
development cycle, there is a directly associated testing
phase.
 This is a highly-disciplined model and the next phase
starts only after completion of the previous phase.
V Model
 Under the V-Model, the corresponding testing phase
of the development phase is planned in parallel.
 So, there are Verification phases on one side of the
‘V’ and Validation phases on the other side.
 The Coding Phase joins the two sides of the V-
Model.
V-Model
Agile Methodology
 Agile SDLC model is a combination of iterative and
incremental process models with focus on process
adaptability and customer satisfaction by rapid
delivery of working software product.
 Agile Methods break the product into small
incremental builds.
Agile Model
 Every iteration involves cross functional teams
working simultaneously on various areas like −
 Planning
 Requirements Analysis
 Design
 Coding
 Unit Testing and
 Acceptance Testing.
Agile model
Agile Model
 Advantages
 Is a very realistic approach to software development.
 Promotes teamwork and cross training.
 Functionality can be developed rapidly and demonstrated.
 Resource requirements are minimum.
 Suitable for fixed or changing requirements
 Delivers early partial working solutions.
Agile Model
 Disadvantages
 Not suitable for handling complex dependencies.
 More risk of sustainability, maintainability and extensibility.
 Strict delivery management dictates the scope, functionality to
be delivered, and adjustments to meet the deadlines.
 Depends heavily on customer interaction, so if customer is not
clear, team can be driven in the wrong direction.
 There is a very high individual dependency, since there is
minimum documentation generated.
Big Bang Model
 The Big Bang model is an SDLC model where we do not
follow any specific process.
 The development just starts with the required money and
efforts as the input, and the output is the software
developed which may or may not be as per customer
requirement.
 This Big Bang Model does not follow a
process/procedure and there is a very little planning
required.
 Even the customer is not sure about what exactly he
wants and the requirements are implemented on the fly
without much analysis.
Big Bang Model
 The Big Bang Model comprises of focusing all the
possible resources in the software development and
coding, with very little or no planning.
 The requirements are understood and implemented as
they come.
 Any changes required may or may not need to revamp
the complete software.
Big Bang Model
 Advantages
 This is a very simple model
 Little or no planning required
 Easy to manage
 Very few resources required
 Gives flexibility to developers
 It is a good learning aid for new comers or students.
Big Bang Model
 Disadvantages
 Very High risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Can turn out to be very expensive if requirements are
misunderstood.
Chapter 1.pptxs Introduction to software Engineering

More Related Content

Similar to Chapter 1.pptxs Introduction to software Engineering

SDLC Models
SDLC ModelsSDLC Models
SDLC Models
Coddy5
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
Bijay Bhandari
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
ethiouniverse
 
System Development
System  DevelopmentSystem  Development
System Development
Sharad Patel
 
Software development models
Software development modelsSoftware development models
Software development models
Azlan Nawawi
 
Assignment
AssignmentAssignment
Assignment
Delowar hossain
 
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive GuideUnderstanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
GeorgeStanley21
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Unit 1 sepm process models
Unit 1 sepm process modelsUnit 1 sepm process models
Unit 1 sepm process models
KanchanPatil34
 
Materi Testing dan Implementasi System
Materi Testing dan Implementasi SystemMateri Testing dan Implementasi System
Materi Testing dan Implementasi System
devinta sari
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software ProcessJomel Penalba
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
MarwondoMarwondo
 
Softwaredevelopmentmodels windirohmaheny11453205427kelase
Softwaredevelopmentmodels windirohmaheny11453205427kelaseSoftwaredevelopmentmodels windirohmaheny11453205427kelase
Softwaredevelopmentmodels windirohmaheny11453205427kelase
windi rohmaheny
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx
SuhleemAhmd
 
My 15 day intern report
My 15 day intern reportMy 15 day intern report
My 15 day intern report
BibekShahShankhar
 
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
Badar Waseer
 

Similar to Chapter 1.pptxs Introduction to software Engineering (20)

SDLC Models
SDLC ModelsSDLC Models
SDLC Models
 
Soft lifecycle
Soft lifecycleSoft lifecycle
Soft lifecycle
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
System Development
System  DevelopmentSystem  Development
System Development
 
Software development models
Software development modelsSoftware development models
Software development models
 
Assignment
AssignmentAssignment
Assignment
 
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive GuideUnderstanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
Understanding the Software Development Lifecycle [SDLC] | A Comprehensive Guide
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Unit 1 sepm process models
Unit 1 sepm process modelsUnit 1 sepm process models
Unit 1 sepm process models
 
Materi Testing dan Implementasi System
Materi Testing dan Implementasi SystemMateri Testing dan Implementasi System
Materi Testing dan Implementasi System
 
Ch4
Ch4Ch4
Ch4
 
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
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Softwaredevelopmentmodels windirohmaheny11453205427kelase
Softwaredevelopmentmodels windirohmaheny11453205427kelaseSoftwaredevelopmentmodels windirohmaheny11453205427kelase
Softwaredevelopmentmodels windirohmaheny11453205427kelase
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx
 
My 15 day intern report
My 15 day intern reportMy 15 day intern report
My 15 day intern report
 
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
 

Recently uploaded

HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
Kamal Acharya
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 
Explosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdfExplosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdf
884710SadaqatAli
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
ssuser9bd3ba
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
PrashantGoswami42
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptx
wendy cai
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
Kamal Acharya
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltage
RCC Institute of Information Technology
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
Kamal Acharya
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projection
jeevanprasad8
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
bim.edu.pl
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
NurvisNavarroSanchez
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
Kamal Acharya
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
gettygaming1
 

Recently uploaded (20)

HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
Explosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdfExplosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdf
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptx
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltage
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
 
fundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projectionfundamentals of drawing and isometric and orthographic projection
fundamentals of drawing and isometric and orthographic projection
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
 
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
 

Chapter 1.pptxs Introduction to software Engineering

  • 1. I N T R O D U C T I O N T O S O F T W A R E E N G I N E E R I N G Chapter 1
  • 2. Overview  Introduction to Software Engineering  Software Engineering is a systematic approach to developing, operating, and maintaining software systems efficiently and reliably.  It involves applying engineering principles and methodologies to software development to ensure quality, efficiency, and scalability.  This overview will highlight the significance of Software Engineering in modern technology and its role in addressing the challenges of the Software Crisis.
  • 3. Definition:  Software Engineering encompasses the systematic application of scientific and technological knowledge to develop and maintain software products.  It involves processes, methods, tools, and techniques to manage software development projects efficiently and effectively.  The goal of Software Engineering is to produce high-quality software that meets user requirements within budget and time constraints.
  • 4. Basic Concepts  Understanding Software and Engineering  Software refers to programs, data, documentation, and user interfaces that constitute a computer system.  Engineering involves the systematic application of knowledge and principles to design, build, and maintain complex systems.  In Software Engineering, these concepts converge to address the challenges of developing reliable and scalable software systems.
  • 5. Evolution of Software Engineering  From Early Programming Practices to Software Engineering Discipline  Software Engineering has evolved from ad-hoc programming practices to a disciplined approach to software development.  Early practices lacked systematic methodologies, leading to inefficiencies, errors, and project failures.  The emergence of Software Engineering as a discipline addressed these challenges by introducing systematic approaches and methodologies.
  • 6. Evolution of Software Engineering  Tracing the Development of Software Engineering  Early programming practices were largely ad-hoc, lacking systematic methodologies, and resulting in inefficiencies and errors.  The emergence of Software Engineering as a discipline stemmed from the need for structured approaches to address software complexities.  Over time, Software Engineering has integrated principles from engineering, computer science, and management to refine its practices.
  • 7. Key Milestones in Software Engineering Evolution  Notable Progress in Software Engineering  1940s-1950s: The advent of electronic computers marked the beginning of software development efforts.  1960s-1970s: Structured programming methodologies and early software development models, such as the Waterfall Model, emerged.  1980s-1990s: The proliferation of personal computers led to advancements in software development tools and methodologies.  2000s-Present: Agile methodologies gained popularity, emphasizing flexibility and customer collaboration in response to changing requirements.
  • 8. The Software Crisis  The Software Crisis refers to the challenges faced by the software industry in delivering quality software products efficiently and reliably.  Factors contributing to the crisis include increasing complexity, changing requirements, and inadequate development practices.  Addressing the Software Crisis requires adopting systematic approaches and methodologies to ensure the quality and reliability of software systems.
  • 9. Addressing the Software Crisis  Software Engineering practices aim to address the challenges posed by the Software Crisis by introducing systematic approaches to software development.  These practices include requirements engineering, software design, coding, testing, and maintenance, conducted in a structured and disciplined manner.  By adopting Software Engineering practices, organizations can improve the quality, reliability, and efficiency of software development processes.
  • 10. Software Development Life Cycle (SDLC)  Understanding the SDLC:  Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality software's.  The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.  SDLC is a process followed for a software project, within a software organization.  It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
  • 11. Software Life Cycle Models Overview  SDLC Models  There are various software development life cycle models defined and designed which are followed during the software development process. These models are also referred as Software Development Process Models.  Each process model follows a Series of steps unique to its type to ensure success in the process of software development.
  • 12. Software Development Life Cycle (SDLC)  Following are the most important and popular SDLC models followed in the industry −  Waterfall Model  Iterative Model  Spiral Model  V-Model  Agile Model  Big Bang Model
  • 13. Waterfall Model  The Waterfall Model is a sequential software development process consisting of distinct phases: requirements, design, implementation, testing, deployment, and maintenance.  Each phase must be completed before moving to the next, resembling a waterfall flowing downwards.  The Waterfall Model is easy to understand and implement but lacks flexibility, making it less suitable for projects with changing requirements.
  • 14.
  • 15. Waterfall Model  Requirement Gathering and analysis  All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.  System Design  The requirement specifications from first phase are studied in this phase and the system design is prepared.  This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.
  • 16. Waterfall Model  Implementation  With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase.  Each unit is developed and tested for its functionality, which is referred to as Unit Testing.  Integration and Testing  All the units developed in the implementation phase are integrated into a system after testing of each unit.  Post integration the entire system is tested for any faults and failures.
  • 17. Waterfall model  Deployment of system  Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market.  Maintenance  There are some issues which come up in the client environment.  To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.
  • 18. Waterfall model  Waterfall Model Advantages  The advantages of waterfall development are that it allows for departmentalization and control.  A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one.  Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds in strict order.
  • 19. Waterfall Model  Disadvantages  The disadvantage of waterfall development is that it does not allow much reflection or revision.  Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.  No working software is produced until late during the life cycle( it’s sequential)  High amounts of risk and uncertainty.  Not a good model for complex and object-oriented projects.  Poor model for long and ongoing projects.
  • 20. Iterative Models  Iterative process starts with a simple implementation of a subset of the software requirements and iteratively enhances the evolving versions until the full system is implemented.  At each iteration, design modifications are made and new functional capabilities are added.  The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental).
  • 22. Iterative mode  Iterative and Incremental development is a combination of both iterative design or iterative method and incremental build model for development.  “During software development, more than one iteration of the software development cycle may be in progress at the same time”.
  • 23. Iterative Models  Advantages and Disadvantages  Advantages of Iterative Models include early delivery of partial functionality, reduced risk through incremental development, and greater flexibility in accommodating changes.  Disadvantages  However, managing iterations and controlling scope can be challenging, and there may be increased complexity due to the need for integration across iterations.
  • 24. Spiral Model  The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model.  This Spiral model is a combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis on risk analysis.  It allows incremental releases of the product or incremental refinement through each iteration around the spiral.
  • 26. Risk Handling in Spiral Model  The most important feature of the spiral model is handling these unknown risks after the project has started. Such risk resolutions are easier done by developing a prototype.  The spiral model supports coping with risks by providing the scope to build a prototype at every phase of software development.  The Prototyping Model also supports risk handling, but the risks must be identified completely before the start of the development work of the project.  But in real life, project risk may occur after the development work starts, in that case, we cannot use the Prototyping Model.  In each phase of the Spiral Model, the features of the product dated and analyzed, and the risks at that point in time are identified and are resolved through prototyping.  Thus, this model is much more flexible compared to other SDLC models.
  • 27. Cont..  Advantages  Changing requirements can be accommodated.  Allows extensive use of prototypes.  Requirements can be captured more accurately.  Users see the system early.  Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management.
  • 28. Spiral Model  Disadvantages  Management is more complex.  End of the project may not be known early.  Not suitable for small or low risk projects and could be expensive for small projects.  Process is complex  Spiral may go on indefinitely.  Large number of intermediate stages requires excessive documentation.
  • 29. V-Model  The V-model is an SDLC model where execution of processes happens in a sequential manner in a V-shape. It is also known as Verification and Validation model.  The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage.  This means that for every single phase in the development cycle, there is a directly associated testing phase.  This is a highly-disciplined model and the next phase starts only after completion of the previous phase.
  • 30. V Model  Under the V-Model, the corresponding testing phase of the development phase is planned in parallel.  So, there are Verification phases on one side of the ‘V’ and Validation phases on the other side.  The Coding Phase joins the two sides of the V- Model.
  • 32. Agile Methodology  Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptability and customer satisfaction by rapid delivery of working software product.  Agile Methods break the product into small incremental builds.
  • 33. Agile Model  Every iteration involves cross functional teams working simultaneously on various areas like −  Planning  Requirements Analysis  Design  Coding  Unit Testing and  Acceptance Testing.
  • 35. Agile Model  Advantages  Is a very realistic approach to software development.  Promotes teamwork and cross training.  Functionality can be developed rapidly and demonstrated.  Resource requirements are minimum.  Suitable for fixed or changing requirements  Delivers early partial working solutions.
  • 36. Agile Model  Disadvantages  Not suitable for handling complex dependencies.  More risk of sustainability, maintainability and extensibility.  Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.  Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.  There is a very high individual dependency, since there is minimum documentation generated.
  • 37. Big Bang Model  The Big Bang model is an SDLC model where we do not follow any specific process.  The development just starts with the required money and efforts as the input, and the output is the software developed which may or may not be as per customer requirement.  This Big Bang Model does not follow a process/procedure and there is a very little planning required.  Even the customer is not sure about what exactly he wants and the requirements are implemented on the fly without much analysis.
  • 38. Big Bang Model  The Big Bang Model comprises of focusing all the possible resources in the software development and coding, with very little or no planning.  The requirements are understood and implemented as they come.  Any changes required may or may not need to revamp the complete software.
  • 39. Big Bang Model  Advantages  This is a very simple model  Little or no planning required  Easy to manage  Very few resources required  Gives flexibility to developers  It is a good learning aid for new comers or students.
  • 40. Big Bang Model  Disadvantages  Very High risk and uncertainty.  Not a good model for complex and object-oriented projects.  Poor model for long and ongoing projects.  Can turn out to be very expensive if requirements are misunderstood.