SlideShare a Scribd company logo
1 of 44
The Problem Domain
SE Challenges
SE Approaches
Software
 IEEE defines Software as a collection of
 programs,
 procedures,
 rules, and
 associated documentation and data
SOFTWARE ENGINEERING
IEEE defines Software Engineering as:
 The application of a systematic, disciplined, quantifiable approach
to the development, operation, and maintenance of software; that
is the application of engineering to develop software.
Proposed by Fritz Bauer
 Software Engineering is the establishment and use of sound
engineering principles in order to obtain economically software
that is reliable and works efficiently on real machines.
Software…
 Students build: Student software
 Industry builds: Industrial Strength Software System
 What is the difference between
 a student software and
 industrial strength software
for the same problem?
S.NO. STUDENT SOFTWARE SYSTEM INDUSTRIAL STRENGTH SOFTWARE
1) Developed for demonstration purpose only Developed to solve real problem of any
organization or client who pays for it
2) Used by the developer by himself or herself Used by clients organization for their business
3) No importance given to the functionalities of
software. Main focus is on output only
Much importance given to the correct function
of the system
4) Software not designed with quality attributes
like portability, robustness, reliability and
usability in mind
Software should be designed with quality
attributes like reliability, user-friendliness, etc.
5) No importance given for testing. If error occurs,
users fix them when they are found.
Bugs are tolerable
Software Testing is done to ensure the system is
working properly. Because malfunction (bug or
defect or failure) leads to financial or business
loss, inconvenience to users, loss of property or
life. Bugs are not tolerable
Software developed as single process
(monolithic architecture). Hard to fix
the errors in the early stage
It uses modular approach.
Development be broken into stages.
Each stage is evaluated and reviewed
to remove bugs earlier
No documentation since it is for
personal use
Documents needed for the user as
well as for the organization and the
project
Only 5% of the total effort spent in
testing
Testing takes 30 to 50% of the total
effort.
Less Effort. Productivity is high Requires much effort that lowers the
productivity
No Investment Heavy Investment
Industrial Strength Software
 Student programs != industrial strength software
 Key difference is in quality (including usability,
reliability, portability, etc.)
 High quality requires heavy testing, which consumes 30-50% of
total development effort
 Requires development be broken in stages such that bugs can be
detected in each
 Good UI, backup, fault-tolerance, following of stds etc all
increase the size for the same functionality
Industrial strength software
 If 1/5th productivity, and increase in size by a factor of 2,
industrial strength software will take 10 times effort
 Brooks thumb-rule: Industrial strength SW costs 10 time
more than student SW
 In this course, software == industrial strength software
Software is Expensive
 Software development is labor-intensive
 Cost of producing software = Man power employed
+ cost of developing software measured in terms of
person-month
 Productivity is measured in terms of LOC or KLOC
 Rough cost estimate…
 Productivity = 500 LOC/PM
 Cost to the company = $10K/PM
 Cost per LOC = $20
 So each line of delivered code costs about $20.
 A simple application for a business may have
20KLOC to 50KLOC
 Cost = $100K to $1Million
 Can easily run on $10K-$20K hardware
 So HW costs <<< SW costs.
Software is Expensive…
 The HW/SW ratio for a
computer system has
shown a reversal from
the early years.
 In 50’s , HW:SW :: 80:20
 In 80’s , HW:SW :: 20:80
 So , SW is very
expensive
 Importance of
optimizing HW is not
much
 More important to
optimize SW
Late & Unreliable
 Software development remains a weak area:
Problem 1: Software project delivered late or over budget  runaway
Problem 2: Lack of reliability – Unreliability leads to failure
 Software does not do what it is supposed to do?
 Software does something not supposed to do.
 70% of the equipment failures are due to software problems
 Failure of Apollo flight
 Failure of missile
 Many banks lost millions of dollars due to inaccuracies
Problem 3: Hardware wears out due to age.
 Software never wears out due to age but deteriorate (weaken)
 Failures are not due to aging related problems
 Failures occur due to bugs or errors that get introduced during
development
 The bug that causes a failure typically exists from start, only
manifests later
Maintenance & Rework
 Once SW delivered or deployed, it enters Maintenance
phase
 What is Maintenance?
 Changes done after development
 Modification done to the existing software
 Not a part of development
 Maintenance Activities:
 Correct residual errors requires corrective maintenance
 Environment changes – adaptive maintenance
 Upgrades & enhancing features requires enhanced maintenance
1) Corrective Maintenance
 Software system developed with residual errors (difference
between observed & predicted value)
 Remove errors that leads to change
2) Enhanced Maintenance
 Even without errors, software needs to be changed
 Must be upgraded or enhanced by adding more features and
provide more services that leads to change
3) Adaptive Maintenance
 Environment in which it operates changes.
 Change of environment  change in software
 Change in software -> changes the environment -> requires change
--- law of software evolution
What’s happen in Maintenance Phase?
Based on the existing software, it creates new software system
 Understand the existing s/w before modification
 Modifier should understood the effects of change before modification
 Modification leads to undesirable side effects -> regression testing should be
done to test the old test cases so that no new errors have been introduced
 Making the changes  code and document
 Testing the new parts & retest the old parts that were changed
 80:20, 70”30, 60:40 ->suggested maintenance-to-
development ratio
Rework
 Biggest problem in large and complex system development is: rework
 To avoid rework: State/ specify the requirements, functionalities,
interfaces and constraints before development
 What leads to rework?
 Requirement is not understood completely and clearly before
development leads to rework
 Clients needs additional requirements during development – rework
 Large and complex systems take long years to complete. During that time,
clients needs change of requirements
 30 – 40% of effort spent on rework
 30-40% of development cost spent on rework
The Software Challenge
Basic Problem
SE Challenges
 The problem of producing software to satisfy user
needs drives the approaches used in SE
 What other factors that drive the selection of a SE
approach?
1. Scale,
2. Productivity,
3. Quality,
4. Consistency,
5. Rate of change, …
1) Scale
 SE must deal with problem of scale
 methods for solving small problems do not scale up for large
problems
 industrial strength SW problems tend to be large
 Scales – small, medium, large, very large
 SE methods must be scalable
 Two clear dimensions in this
1. Engineering methods
2. Project management
 For small, both can be informal or ad-hoc, for large both
have to be formalized
1) Scale…
1) Scale…
 An illustration of issue of scale is counting the number
of people in a room vs. taking a census
 Both are counting problems
 Methods used in first not useful for census
 For large scale counting problem, must use different techniques and
models
 Management will become critical
1) Scale: Examples
Size Software Languages
Gcc 980KLOC C, C++, yacc
Perl 320 KLOC C, perl, sh
Appache 100 KLOC C, sh
Linux 30,000 KLOC C, c++
Windows XP 40,000 KLOC C, C++
2) Productivity
 An engg project driven by cost and schedule
 Cost: In sw cost is mainly manpower cost, hence
measured in person-months
 Schedule is in months/weeks – very important in
business context
 In Biz context
 Cost and Schedule can not be separated
 SE must serve the Biz, NOT the other way around
2) Productivity
 Productivity capture both Cost and Schedule
 If P is higher, cost is lower
 If P is higher, time taken can be lesser
 Approaches used by SE must deliver high
Productivity
3) Quality
 Quality is the other major driving factor
 Developing high Quality SW is a basic goal
 Quality of SW is harder to define
 Approaches used should produce a high Quality software
 SE driven by 3 major factors: Cost, Schedule and quality
3) Quality – ISO standard
 ISO standard has six attributes
1. Functionality
2. Reliability
3. Usability
4. Efficiency
5. Maintainability
6. Portability
1. Functionality (suitability, accuracy, security,…)
 The capability to provide functions which meet stated and
implied needs when the software is used
2. Reliability (trust-worthy)
 The capability to maintain a specified level of performance
3. Usability (understandability, learn ability, operatability)
 The capability to be understood, learned and used
4. Efficiency (capability, competence,..)
 The capability to provide appropriate performance relative to
the amount of resources used
5. Maintainability (changeability, testability, stability,…)
 The capability to be modified for purposes of making
corrections, improvements or adaptations
6. Portability (independence, strong,…)
1. The capability to be adapted for different specified
environments
3) Quality…
 Multiple dimensions mean that not easy to reduce Q
to a single number
 Concept of Q is project specific
 For some reliability is most important
 For others usability may be more important
 Reliability is generally considered the main Q criterion
3) Quality…
 Reliability = Probability of failure
 hard to measure
 approximated by no. of defects in software
 To normalize Quality = Defect density
 Quality = No. of defects delivered / Size
 Defects delivered - approximated with no. of defects
found in operation
 Current practices: less than 1 def/KLOC
 What is a defect? Project specific!
4) Consistency and repeatability
 Sometimes a group can deliver one good software system,
but not a second
 Key SE challenge: how to ensure that success can be
repeated ?
 SE wants methods that can consistently produce high
Quality SW with high Productivity
 A SW org, wants to deliver high Q&P consistently across
projects
 Frameworks like
 Inter. Org. for Standardization (ISO) and
 Capability Maturity Model (CMM)
 focus on this aspect
5) Rate of Change
 Only constant in business is change!
 Software must change to support the changing
business needs
 SE practices must accommodate change
 Methods that disallow change, even if high Q and P, are
of little value
Goals of Industrial Strength SE
 Consistently develop SW with high Q&P for
large scale problems, under change
 Q&P are the basic objectives to be achieved
 Q&P governed by people, processes, and technology
Iron Triangle
Iron Triangle
 What happens when you
break the triangle?
 1) The project gets canceled.
 15% of projects are cancelled before they deliver a
system.
 A study of 1,027 IT projects cited scope management
related to serial practices as the single largest
contributing factor to project failure in 82% of the
projects and was given a overall weighted failure
influence of 25%.
www.ambysoft.com/essays/brokenTriangle.htm
Iron Triangle
 What happens when you
break the triangle?
2) The Project is deliver late, over budget, or both
 According to the Chaos Report 51% of projects are
challenged (severely over budget and/or late), with an
average cost overrun of 43%.
www.ambysoft.com/essays/brokenTriangle.htm
Iron Triangle
 What happens when you
break the triangle?
3) The Project delivers poor quality software.
 When development teams are forced to deliver more
functionality than they have time or resources for, they
are often motivated to take short cuts which inevitably
result in poor quality.
www.ambysoft.com/essays/brokenTriangle.htm
Iron Triangle
 What happens when you
break the triangle?
4) The project under delivers.
 The team fails to deliver all of the required
functionality.
www.ambysoft.com/essays/brokenTriangle.htm
Iron Triangle…
 What to do about it?
 Recognize that the iron triangle must be
respected.
 So
 Vary the Scope
 Vary the Schedule
 Vary the Resources
 Vary two or more factors
www.ambysoft.com/essays/brokenTriangle.htm
SE Methodology
 SE focuses mostly on processes for achieving the
goals
 Process must be systematic
 SE separates process for developing sw from the
developed product (i.e the sw)
 Premise: Process largely determines Q&P, hence
suitable processes will lead to high Q&P
SE Methodology…
 Design of proper processes and their control is a key
challenge SE faces
 Sw process is the equivalent of manufacturing process
 This focus on process makes SE different from many
CS courses
SE Methodology…
 The development process used in SE is typically
phased
 Phases separate concerns with each phase focusing
on some aspect
 Requirements, architecture, design, coding, testing are
key phases
 This phased process has to be properly managed to
achieve the objectives
 Metrics and measurement important for this
Summary
 The problem domain for SE is industrial strength
software
 Software comprises programs, documentation, and
data
 SE aims to provide methods for systematically
developing SW
 Main goal – achieve high quality and productivity
(Q&P)
Summary…
 Must have high Q&P with consistency in the context of
large scale and frequent changes
 Basic approach of SE is to separate process from
products and focus on process and managing the
process

More Related Content

What's hot

Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specificationkirupasuchi1996
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15koolkampus
 
Planning the development process
Planning the development processPlanning the development process
Planning the development processSiva Priya
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsStephennancy
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factorsNancyBeaulah_R
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design conceptssrijavel
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processesREHMAT ULLAH
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specificationlavanya marichamy
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 

What's hot (20)

Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specification
 
User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15User Interface Design in Software Engineering SE15
User Interface Design in Software Engineering SE15
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Design notation
Design notationDesign notation
Design notation
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processes
 
SDLC Models
SDLC ModelsSDLC Models
SDLC Models
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 

Similar to Software Engineering by Pankaj Jalote

Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineeringMark Turner CRP
 
Quality software management
Quality software managementQuality software management
Quality software managementArun Kumar
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materialssmruti sarangi
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Managementswatisinghal
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710Nikhil Todkar
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGSangeetha Rangarajan
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.orgnazeer pasha
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineeringMadhav Suratkar
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys BldgUSeP
 

Similar to Software Engineering by Pankaj Jalote (20)

Chapter1
Chapter1Chapter1
Chapter1
 
Software reliability engineering
Software reliability engineeringSoftware reliability engineering
Software reliability engineering
 
Review se
Review seReview se
Review se
 
Quality software management
Quality software managementQuality software management
Quality software management
 
SECh123
SECh123SECh123
SECh123
 
Software engineering study materials
Software engineering study materialsSoftware engineering study materials
Software engineering study materials
 
3
33
3
 
Intro
IntroIntro
Intro
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.org
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Lecture 1 SE.pptx
Lecture 1 SE.pptxLecture 1 SE.pptx
Lecture 1 SE.pptx
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
 

Recently uploaded

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptxJoelynRubio1
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17Celine George
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17Celine George
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lessonQUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lessonhttgc7rh9c
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxPooja Bhuva
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxJisc
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsSandeep D Chaudhary
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 

Recently uploaded (20)

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx21st_Century_Skills_Framework_Final_Presentation_2.pptx
21st_Century_Skills_Framework_Final_Presentation_2.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17How to Manage Call for Tendor in Odoo 17
How to Manage Call for Tendor in Odoo 17
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lessonQUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
QUATER-1-PE-HEALTH-LC2- this is just a sample of unpacked lesson
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 

Software Engineering by Pankaj Jalote

  • 1. The Problem Domain SE Challenges SE Approaches
  • 2. Software  IEEE defines Software as a collection of  programs,  procedures,  rules, and  associated documentation and data
  • 3. SOFTWARE ENGINEERING IEEE defines Software Engineering as:  The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to develop software. Proposed by Fritz Bauer  Software Engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.
  • 4. Software…  Students build: Student software  Industry builds: Industrial Strength Software System  What is the difference between  a student software and  industrial strength software for the same problem?
  • 5. S.NO. STUDENT SOFTWARE SYSTEM INDUSTRIAL STRENGTH SOFTWARE 1) Developed for demonstration purpose only Developed to solve real problem of any organization or client who pays for it 2) Used by the developer by himself or herself Used by clients organization for their business 3) No importance given to the functionalities of software. Main focus is on output only Much importance given to the correct function of the system 4) Software not designed with quality attributes like portability, robustness, reliability and usability in mind Software should be designed with quality attributes like reliability, user-friendliness, etc. 5) No importance given for testing. If error occurs, users fix them when they are found. Bugs are tolerable Software Testing is done to ensure the system is working properly. Because malfunction (bug or defect or failure) leads to financial or business loss, inconvenience to users, loss of property or life. Bugs are not tolerable
  • 6. Software developed as single process (monolithic architecture). Hard to fix the errors in the early stage It uses modular approach. Development be broken into stages. Each stage is evaluated and reviewed to remove bugs earlier No documentation since it is for personal use Documents needed for the user as well as for the organization and the project Only 5% of the total effort spent in testing Testing takes 30 to 50% of the total effort. Less Effort. Productivity is high Requires much effort that lowers the productivity No Investment Heavy Investment
  • 7. Industrial Strength Software  Student programs != industrial strength software  Key difference is in quality (including usability, reliability, portability, etc.)  High quality requires heavy testing, which consumes 30-50% of total development effort  Requires development be broken in stages such that bugs can be detected in each  Good UI, backup, fault-tolerance, following of stds etc all increase the size for the same functionality
  • 8. Industrial strength software  If 1/5th productivity, and increase in size by a factor of 2, industrial strength software will take 10 times effort  Brooks thumb-rule: Industrial strength SW costs 10 time more than student SW  In this course, software == industrial strength software
  • 9. Software is Expensive  Software development is labor-intensive  Cost of producing software = Man power employed + cost of developing software measured in terms of person-month  Productivity is measured in terms of LOC or KLOC  Rough cost estimate…  Productivity = 500 LOC/PM  Cost to the company = $10K/PM  Cost per LOC = $20  So each line of delivered code costs about $20.  A simple application for a business may have 20KLOC to 50KLOC  Cost = $100K to $1Million  Can easily run on $10K-$20K hardware  So HW costs <<< SW costs.
  • 10. Software is Expensive…  The HW/SW ratio for a computer system has shown a reversal from the early years.  In 50’s , HW:SW :: 80:20  In 80’s , HW:SW :: 20:80  So , SW is very expensive  Importance of optimizing HW is not much  More important to optimize SW
  • 11. Late & Unreliable  Software development remains a weak area: Problem 1: Software project delivered late or over budget  runaway Problem 2: Lack of reliability – Unreliability leads to failure  Software does not do what it is supposed to do?  Software does something not supposed to do.  70% of the equipment failures are due to software problems  Failure of Apollo flight  Failure of missile  Many banks lost millions of dollars due to inaccuracies
  • 12. Problem 3: Hardware wears out due to age.  Software never wears out due to age but deteriorate (weaken)  Failures are not due to aging related problems  Failures occur due to bugs or errors that get introduced during development  The bug that causes a failure typically exists from start, only manifests later
  • 13. Maintenance & Rework  Once SW delivered or deployed, it enters Maintenance phase  What is Maintenance?  Changes done after development  Modification done to the existing software  Not a part of development  Maintenance Activities:  Correct residual errors requires corrective maintenance  Environment changes – adaptive maintenance  Upgrades & enhancing features requires enhanced maintenance
  • 14. 1) Corrective Maintenance  Software system developed with residual errors (difference between observed & predicted value)  Remove errors that leads to change 2) Enhanced Maintenance  Even without errors, software needs to be changed  Must be upgraded or enhanced by adding more features and provide more services that leads to change 3) Adaptive Maintenance  Environment in which it operates changes.  Change of environment  change in software  Change in software -> changes the environment -> requires change --- law of software evolution
  • 15. What’s happen in Maintenance Phase? Based on the existing software, it creates new software system  Understand the existing s/w before modification  Modifier should understood the effects of change before modification  Modification leads to undesirable side effects -> regression testing should be done to test the old test cases so that no new errors have been introduced  Making the changes  code and document  Testing the new parts & retest the old parts that were changed  80:20, 70”30, 60:40 ->suggested maintenance-to- development ratio
  • 16. Rework  Biggest problem in large and complex system development is: rework  To avoid rework: State/ specify the requirements, functionalities, interfaces and constraints before development  What leads to rework?  Requirement is not understood completely and clearly before development leads to rework  Clients needs additional requirements during development – rework  Large and complex systems take long years to complete. During that time, clients needs change of requirements  30 – 40% of effort spent on rework  30-40% of development cost spent on rework
  • 19. SE Challenges  The problem of producing software to satisfy user needs drives the approaches used in SE  What other factors that drive the selection of a SE approach? 1. Scale, 2. Productivity, 3. Quality, 4. Consistency, 5. Rate of change, …
  • 20. 1) Scale  SE must deal with problem of scale  methods for solving small problems do not scale up for large problems  industrial strength SW problems tend to be large  Scales – small, medium, large, very large  SE methods must be scalable  Two clear dimensions in this 1. Engineering methods 2. Project management  For small, both can be informal or ad-hoc, for large both have to be formalized
  • 22. 1) Scale…  An illustration of issue of scale is counting the number of people in a room vs. taking a census  Both are counting problems  Methods used in first not useful for census  For large scale counting problem, must use different techniques and models  Management will become critical
  • 23. 1) Scale: Examples Size Software Languages Gcc 980KLOC C, C++, yacc Perl 320 KLOC C, perl, sh Appache 100 KLOC C, sh Linux 30,000 KLOC C, c++ Windows XP 40,000 KLOC C, C++
  • 24. 2) Productivity  An engg project driven by cost and schedule  Cost: In sw cost is mainly manpower cost, hence measured in person-months  Schedule is in months/weeks – very important in business context  In Biz context  Cost and Schedule can not be separated  SE must serve the Biz, NOT the other way around
  • 25. 2) Productivity  Productivity capture both Cost and Schedule  If P is higher, cost is lower  If P is higher, time taken can be lesser  Approaches used by SE must deliver high Productivity
  • 26. 3) Quality  Quality is the other major driving factor  Developing high Quality SW is a basic goal  Quality of SW is harder to define  Approaches used should produce a high Quality software  SE driven by 3 major factors: Cost, Schedule and quality
  • 27. 3) Quality – ISO standard  ISO standard has six attributes 1. Functionality 2. Reliability 3. Usability 4. Efficiency 5. Maintainability 6. Portability
  • 28. 1. Functionality (suitability, accuracy, security,…)  The capability to provide functions which meet stated and implied needs when the software is used 2. Reliability (trust-worthy)  The capability to maintain a specified level of performance 3. Usability (understandability, learn ability, operatability)  The capability to be understood, learned and used 4. Efficiency (capability, competence,..)  The capability to provide appropriate performance relative to the amount of resources used 5. Maintainability (changeability, testability, stability,…)  The capability to be modified for purposes of making corrections, improvements or adaptations 6. Portability (independence, strong,…) 1. The capability to be adapted for different specified environments
  • 29. 3) Quality…  Multiple dimensions mean that not easy to reduce Q to a single number  Concept of Q is project specific  For some reliability is most important  For others usability may be more important  Reliability is generally considered the main Q criterion
  • 30. 3) Quality…  Reliability = Probability of failure  hard to measure  approximated by no. of defects in software  To normalize Quality = Defect density  Quality = No. of defects delivered / Size  Defects delivered - approximated with no. of defects found in operation  Current practices: less than 1 def/KLOC  What is a defect? Project specific!
  • 31. 4) Consistency and repeatability  Sometimes a group can deliver one good software system, but not a second  Key SE challenge: how to ensure that success can be repeated ?  SE wants methods that can consistently produce high Quality SW with high Productivity  A SW org, wants to deliver high Q&P consistently across projects  Frameworks like  Inter. Org. for Standardization (ISO) and  Capability Maturity Model (CMM)  focus on this aspect
  • 32. 5) Rate of Change  Only constant in business is change!  Software must change to support the changing business needs  SE practices must accommodate change  Methods that disallow change, even if high Q and P, are of little value
  • 33. Goals of Industrial Strength SE  Consistently develop SW with high Q&P for large scale problems, under change  Q&P are the basic objectives to be achieved  Q&P governed by people, processes, and technology
  • 35. Iron Triangle  What happens when you break the triangle?  1) The project gets canceled.  15% of projects are cancelled before they deliver a system.  A study of 1,027 IT projects cited scope management related to serial practices as the single largest contributing factor to project failure in 82% of the projects and was given a overall weighted failure influence of 25%. www.ambysoft.com/essays/brokenTriangle.htm
  • 36. Iron Triangle  What happens when you break the triangle? 2) The Project is deliver late, over budget, or both  According to the Chaos Report 51% of projects are challenged (severely over budget and/or late), with an average cost overrun of 43%. www.ambysoft.com/essays/brokenTriangle.htm
  • 37. Iron Triangle  What happens when you break the triangle? 3) The Project delivers poor quality software.  When development teams are forced to deliver more functionality than they have time or resources for, they are often motivated to take short cuts which inevitably result in poor quality. www.ambysoft.com/essays/brokenTriangle.htm
  • 38. Iron Triangle  What happens when you break the triangle? 4) The project under delivers.  The team fails to deliver all of the required functionality. www.ambysoft.com/essays/brokenTriangle.htm
  • 39. Iron Triangle…  What to do about it?  Recognize that the iron triangle must be respected.  So  Vary the Scope  Vary the Schedule  Vary the Resources  Vary two or more factors www.ambysoft.com/essays/brokenTriangle.htm
  • 40. SE Methodology  SE focuses mostly on processes for achieving the goals  Process must be systematic  SE separates process for developing sw from the developed product (i.e the sw)  Premise: Process largely determines Q&P, hence suitable processes will lead to high Q&P
  • 41. SE Methodology…  Design of proper processes and their control is a key challenge SE faces  Sw process is the equivalent of manufacturing process  This focus on process makes SE different from many CS courses
  • 42. SE Methodology…  The development process used in SE is typically phased  Phases separate concerns with each phase focusing on some aspect  Requirements, architecture, design, coding, testing are key phases  This phased process has to be properly managed to achieve the objectives  Metrics and measurement important for this
  • 43. Summary  The problem domain for SE is industrial strength software  Software comprises programs, documentation, and data  SE aims to provide methods for systematically developing SW  Main goal – achieve high quality and productivity (Q&P)
  • 44. Summary…  Must have high Q&P with consistency in the context of large scale and frequent changes  Basic approach of SE is to separate process from products and focus on process and managing the process