SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Introduction
Software Engineering (SE-200)
Instructor:Abd Ullah Khan
abdullah@nbc.nust.edu.pk
Some Questions!
• What is software?
Some Questions!
• What is software?
• What is program?
Some Questions!
• What is software?
• What is program?
• Why is software important?
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
• Any example of severe consequences of software failure in history?
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
• Any example of severe consequences of software failure in history?
• What is software engineering?
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
• Any example of severe consequences of software failure in history?
• What is software engineering?
• Difference between Computer Science and Software Engineering
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
• Any example of severe consequences of software failure in history?
• What is software engineering?
• Difference between Computer Science and Software Engineering
• Challenges of Software Engineering
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
• Any example of severe consequences of software failure in history?
• What is software engineering?
• Difference between Computer Science and Software Engineering
• Challenges of Software Engineering
• What are the major activities involved in the development of software?
Some Questions!
• What is software?
• What is program?
• Why is software important?
• What are the problems in software development?
• Any example of severe consequences of software failure in history?
• What is software engineering?
• Difference between Computer Science and Software Engineering
• Challenges of Software Engineering
• What are the major activities involved in the development of software?
• Source of Inherent Complexity of Software
What is Software
• When we write a program for computer, we name it software.
• But software is not just a program; many things other than the program are
also included in software.
• The constituted items of software are:
• Program:The program or code itself is included in the software.
• Data:The data on which the program operates is also considered as part of
the software.
• Documentation:The information that describes the product to those who
develop, deploy and use it.
Why is software important?
• software is playing a vital role in all the fields of life these days.
• Some major areas in which software has played an important role are
• Business decision-making: Software systems have played a major role in
businesses where you analyze your data, and based on that analysis, you can make
business decisions.
• Modern scientific investigation and engineering problem solving: Scientific
investigations and engineering problem solving require an intensive number of
calculations and data analysis with ultra-accuracy.This process has become very
easy and accurate using softwares.
• Games:We see many computer games these days.
• Embedded systems:We see many kinds of software-based gadgets like
microcontrollers used in our cars, televisions, microwave ovens etc.
Problems in Software
Development
• Common issues
• The final software doesn’t fulfill the
customer’s needs
• Hard to extend or improve: If you want
to add a functionality later, it is mission
impossible
• Bad documentation
• Bad quality: frequent error, hard to
use,…
• More time and costs than expected
Arian 5 Flight 501 Failure
• Search for this software failure online.
What is Engineering?
• The process of productive use of scientific knowledge is called engineering
Difference between Computer Science and
Software Engineering
• Software engineering is the process of utilizing our knowledge of computer
science in the effective production of software systems.
• All the engineering branches are based on physics. Physics itself is not
engineering, but the use of physics in making buildings, electronic devices,
and machines is engineering.
• The relation between computer science with software engineering is like the
relation between physics and engineering fields.
Difference between Software and Other Systems
• A car may be malfunctioned due to some problem with its engine while
driving. Similarly, an electric bulb may be fused while glowing, and aTV could
be dysfunctional while working.
• Does software wear out (becoming dysfunctional due to continuous use)?
Difference between Software and Other Systems
• How is software different from a car, aTV, or similar systems?
• The car may be malfunctioned due to some problem in its engine while driving.
Similarly, an electric bulb may be fused while glowing and aTV could be
dysfunctional while working.
• Software does not wear out!
• If a software has any defect, then that defect will be there from the very first day
and that defect normally called bug.
• That means if a software is not working then it should not work from the very first
day.
• But this could not be the case that at a particular point in time a software is
functioning well and after some time the same software is not performing the
same task as required.
Source of Inherent Complexity of Software
• Many a time, a new version of a software always has some bugs/errors or
undesirable features.
• On the other hand, other systems like motorcars, television, cell phones,
etc., don’t have such errors.
• What is the reason?
Source of Inherent Complexity of Software
• Have you ever noticed
• How many different models do a car manufacturing company release in a year?
• How many major changes are made in new models, and what is the frequency of these changes?
• It can be noticed that
• Once the system is finalized, the changes in new models are minor, like body shape could be changed
a little, and a new gadget could be added.
• A drastic and fundamental change is very unlikely, e.g., in its engine.
• Contrarily, a software development company make fundamental changes in their software
systems.
• They constantly enhance their systems, e.g., interface enhancement or make a new system
altogether.
• This is one of the major reasons for increased bugs in software.
• If a car manufacturing company releases cars every six months or a year without proper
testing with a fundamental change, that kind of cars will also have lots of bugs.
Source of Inherent Complexity of Software
• Therefore, one of the major reasons of complexity in software is due to its
basic nature that the software passes through a constant process of change
and evolution in all the dimensions.
• This change has the direct impact on software in the form of defects.
• Therefore, software engineers must also deal with the challenge of
managing this process of change and evolution.
Software Crisis
• What is this?
Software Crisis
• In the 1960s, hardware improvement accelerated, and new more powerful
computer systems were made available.
• More powerful hardware required more powerful and complex software,
which was difficult to write because the tools and techniques used for less
complex software became inapplicable for the more complex software.
• It is called Software Crisis. It resulted in the following consequences.
• In most cases, the software tried to be built using those old tools and techniques was
not complete.
• Most of the time, it was delivered too late.
• Most of the projects were over-budgeted.
• In most cases, systems built using these techniques were not reliable, meaning that
they were not able to do what they were expected to do.
Software Crisis
• Consequently, the term of Software Engineering was coined by expert in a
conference.
• They said we should use engineering principles in developing software like
we use them in developing cars, buildings, electronic devices, etc.
• So, Software engineering is the result of the Software Crisis when people
realized that it was not possible to construct complex software using the
techniques applied in the 1960s.
• An important result of this thing was that people had realized that just
coding is not enough.
Software Engineering as defined
• By IEEE
• The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software; that is, the
application of engineering to software.
• By Ian Somerville.
• Software engineering is not just concerned with the technical processes of
software development but also with activities such as software project
management and with the development of tools, methods, and theories to
support software production
Software Engineering
• Given the software engineering definition by IEEE, what tools, techniques,
and processes can potentially be used in a software production?
Software Engineering
• The definition of Software Engineering enables the combination of the
following tools, techniques, and processes to be used in a software
production:
• Programming Language
• Programming Language Design
• Software DesignTechniques (we will study in the later classes)
• Tools (IDEs, GitHub, etc.)
• Development
• Testing
• Maintenance, etc.
Challenges of Software Engineering
• What are the conceivable challenges that software engineering faces as a
discipline?
Challenges of Software Engineering
• High risk of failure
• In safety-critical areas such as space, aviation, nuclear power plants, etc., the cost of
software failure can be massive because lives are at risk.
• Increased market demands for fast turnaround (turning in the opposite direction)
time.
• Customers’ demands are increasing with each passing day while the time they require
software developers to complete a software is decreasing.
• Dealing with the increased complexity of software.
• With new applications and technology, more complex softwares are required.
• The diversity of software systems should be compatible with each other.
Well-engineered Software
• What are the traits of a well-engineered software?
Well-Engineered Software
• A well-engineered software has the following characteristics.
1. It is reliable and provides the required functionality
2. It has good and user-friendly user-interface
3. It is efficient and has acceptable performance
4. It is of good quality
5. It is cost-effective
6. It is maintainable
• What if there is conflict among any of the above?
Well-Engineered Software
• Software has a close relationship with economics.
• Whenever we talk about engineering systems, we always first analyze whether this is
economically feasible or not.
• Therefore, a software developer has to engineer all the activities of software
development while keeping its economic feasibility intact.
• But, often, software engineers end up in conflict among all these goals.
• It is also a big challenge for a software engineer to resolve all these conflicts.
The Balancing Act!
• These requirements may conflict, and enhancing one characteristic may
diminish another.
• For example, there may be tension among the following:
• Cost and Efficiency
• Cost and Reliability
• Efficiency and User-interface
• A Software engineer has to analyze these conflicting entities and try to
strike a balance.
• You have to balance costs, user-friendliness, Efficiency, Reliability, etc.
• Therefore, there is always a trade-off between these characteristics of
software.
Law of Diminishing Returns
• Most of you have noticed that if you dissolve sugar in a glass of water, the
sweetness of water will increase gradually.
• But at a certain saturation level, no more sugar will dissolve into the water.
• Therefore, at that point of saturation, the sweetness of water will not
increase even if you add more sugar to it.
Law of Diminishing Returns
• Similar is the case with software engineering.
• Whenever you perform any task like improving the efficiency of the system,
trying to improve its quality or user-friendliness, all these things involve an
element of cost.
• If the quality of your system is low, it could be improved to a higher degree
with the investment of little money.
• But after reaching at a certain level of quality, the return on investment on
the system’s quality will become reduced.
• Meaning that the return on investment on quality of the software will be
less than the effort or money we invest.
Software Background
• Caper Jones, a renounced practitioner, and researcher in the field of Software Engineering,
divided software-related activities into about twenty-five different categories.
• The most important of these categories are:
• Project Management
• Requirement Engineering
• Design
• Coding
• Testing
• Software QualityAssurance
• Software Configuration Management
• Software Integration and
• Rest of the activities
• Though coding is very important, it is not more than 13-14% of the whole software
development effort.
Software Background
• According to Fred Brook, in the eye of an unsophisticated manager,
software is like a giant.
• Sometimes it reveals as an unscheduled delay, and sometimes, it shows up in the form
of a cost overrun.
• To kill this giant, the managers look for magical solutions.
• But unfortunately, we do not have any magic to defeat this giant.
• There is only one solution, and that is to follow a disciplined approach to
build softwares.
• We can defeat the giant named software by using a disciplined and engineered
approach to software development.
Summary
• Today, we have discussed the following things related to software engineering.
• What is software engineering?
• Why is it important?
• What is the software crisis?
• How software engineering derived from software crisis.
• What is the importance of engineering principles in developing software?
• What is the balancing act, and how apply in software engineering?
• What is the law of diminishing returns?
• And what are the major activities involved in the development of software?
Thanks
• Keep your environment clean by avoiding using plastic bags.

Weitere ähnliche Inhalte

Ähnlich wie Lec 1 Introduction to Software Engg.pptx

Ähnlich wie Lec 1 Introduction to Software Engg.pptx (20)

SE-MODULE-1-chap1.pptx
SE-MODULE-1-chap1.pptxSE-MODULE-1-chap1.pptx
SE-MODULE-1-chap1.pptx
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lecture1 (SE Introduction)
Lecture1 (SE Introduction)Lecture1 (SE Introduction)
Lecture1 (SE Introduction)
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
An introduction to software
An introduction to softwareAn introduction to software
An introduction to software
 
Unit1
Unit1Unit1
Unit1
 
SWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptxSWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptx
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
1
11
1
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
lect1.pdf
lect1.pdflect1.pdf
lect1.pdf
 
software engineering documents.pptx
software engineering documents.pptxsoftware engineering documents.pptx
software engineering documents.pptx
 
Chapter # 1
Chapter # 1 Chapter # 1
Chapter # 1
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 

Kürzlich hochgeladen

Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"mphochane1998
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...Health
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksMagic Marks
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersMairaAshraf6
 
Bridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxBridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxnuruddin69
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptNANDHAKUMARA10
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwaitjaanualu31
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network DevicesChandrakantDivate1
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 

Kürzlich hochgeladen (20)

Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
Bridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxBridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptx
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 

Lec 1 Introduction to Software Engg.pptx

  • 1. Introduction Software Engineering (SE-200) Instructor:Abd Ullah Khan abdullah@nbc.nust.edu.pk
  • 3. Some Questions! • What is software? • What is program?
  • 4. Some Questions! • What is software? • What is program? • Why is software important?
  • 5. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development?
  • 6. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development? • Any example of severe consequences of software failure in history?
  • 7. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development? • Any example of severe consequences of software failure in history? • What is software engineering?
  • 8. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development? • Any example of severe consequences of software failure in history? • What is software engineering? • Difference between Computer Science and Software Engineering
  • 9. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development? • Any example of severe consequences of software failure in history? • What is software engineering? • Difference between Computer Science and Software Engineering • Challenges of Software Engineering
  • 10. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development? • Any example of severe consequences of software failure in history? • What is software engineering? • Difference between Computer Science and Software Engineering • Challenges of Software Engineering • What are the major activities involved in the development of software?
  • 11. Some Questions! • What is software? • What is program? • Why is software important? • What are the problems in software development? • Any example of severe consequences of software failure in history? • What is software engineering? • Difference between Computer Science and Software Engineering • Challenges of Software Engineering • What are the major activities involved in the development of software? • Source of Inherent Complexity of Software
  • 12. What is Software • When we write a program for computer, we name it software. • But software is not just a program; many things other than the program are also included in software. • The constituted items of software are: • Program:The program or code itself is included in the software. • Data:The data on which the program operates is also considered as part of the software. • Documentation:The information that describes the product to those who develop, deploy and use it.
  • 13. Why is software important? • software is playing a vital role in all the fields of life these days. • Some major areas in which software has played an important role are • Business decision-making: Software systems have played a major role in businesses where you analyze your data, and based on that analysis, you can make business decisions. • Modern scientific investigation and engineering problem solving: Scientific investigations and engineering problem solving require an intensive number of calculations and data analysis with ultra-accuracy.This process has become very easy and accurate using softwares. • Games:We see many computer games these days. • Embedded systems:We see many kinds of software-based gadgets like microcontrollers used in our cars, televisions, microwave ovens etc.
  • 14. Problems in Software Development • Common issues • The final software doesn’t fulfill the customer’s needs • Hard to extend or improve: If you want to add a functionality later, it is mission impossible • Bad documentation • Bad quality: frequent error, hard to use,… • More time and costs than expected
  • 15. Arian 5 Flight 501 Failure • Search for this software failure online.
  • 16. What is Engineering? • The process of productive use of scientific knowledge is called engineering
  • 17. Difference between Computer Science and Software Engineering • Software engineering is the process of utilizing our knowledge of computer science in the effective production of software systems. • All the engineering branches are based on physics. Physics itself is not engineering, but the use of physics in making buildings, electronic devices, and machines is engineering. • The relation between computer science with software engineering is like the relation between physics and engineering fields.
  • 18. Difference between Software and Other Systems • A car may be malfunctioned due to some problem with its engine while driving. Similarly, an electric bulb may be fused while glowing, and aTV could be dysfunctional while working. • Does software wear out (becoming dysfunctional due to continuous use)?
  • 19. Difference between Software and Other Systems • How is software different from a car, aTV, or similar systems? • The car may be malfunctioned due to some problem in its engine while driving. Similarly, an electric bulb may be fused while glowing and aTV could be dysfunctional while working. • Software does not wear out! • If a software has any defect, then that defect will be there from the very first day and that defect normally called bug. • That means if a software is not working then it should not work from the very first day. • But this could not be the case that at a particular point in time a software is functioning well and after some time the same software is not performing the same task as required.
  • 20. Source of Inherent Complexity of Software • Many a time, a new version of a software always has some bugs/errors or undesirable features. • On the other hand, other systems like motorcars, television, cell phones, etc., don’t have such errors. • What is the reason?
  • 21. Source of Inherent Complexity of Software • Have you ever noticed • How many different models do a car manufacturing company release in a year? • How many major changes are made in new models, and what is the frequency of these changes? • It can be noticed that • Once the system is finalized, the changes in new models are minor, like body shape could be changed a little, and a new gadget could be added. • A drastic and fundamental change is very unlikely, e.g., in its engine. • Contrarily, a software development company make fundamental changes in their software systems. • They constantly enhance their systems, e.g., interface enhancement or make a new system altogether. • This is one of the major reasons for increased bugs in software. • If a car manufacturing company releases cars every six months or a year without proper testing with a fundamental change, that kind of cars will also have lots of bugs.
  • 22. Source of Inherent Complexity of Software • Therefore, one of the major reasons of complexity in software is due to its basic nature that the software passes through a constant process of change and evolution in all the dimensions. • This change has the direct impact on software in the form of defects. • Therefore, software engineers must also deal with the challenge of managing this process of change and evolution.
  • 24. Software Crisis • In the 1960s, hardware improvement accelerated, and new more powerful computer systems were made available. • More powerful hardware required more powerful and complex software, which was difficult to write because the tools and techniques used for less complex software became inapplicable for the more complex software. • It is called Software Crisis. It resulted in the following consequences. • In most cases, the software tried to be built using those old tools and techniques was not complete. • Most of the time, it was delivered too late. • Most of the projects were over-budgeted. • In most cases, systems built using these techniques were not reliable, meaning that they were not able to do what they were expected to do.
  • 25. Software Crisis • Consequently, the term of Software Engineering was coined by expert in a conference. • They said we should use engineering principles in developing software like we use them in developing cars, buildings, electronic devices, etc. • So, Software engineering is the result of the Software Crisis when people realized that it was not possible to construct complex software using the techniques applied in the 1960s. • An important result of this thing was that people had realized that just coding is not enough.
  • 26. Software Engineering as defined • By IEEE • The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. • By Ian Somerville. • Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods, and theories to support software production
  • 27. Software Engineering • Given the software engineering definition by IEEE, what tools, techniques, and processes can potentially be used in a software production?
  • 28. Software Engineering • The definition of Software Engineering enables the combination of the following tools, techniques, and processes to be used in a software production: • Programming Language • Programming Language Design • Software DesignTechniques (we will study in the later classes) • Tools (IDEs, GitHub, etc.) • Development • Testing • Maintenance, etc.
  • 29. Challenges of Software Engineering • What are the conceivable challenges that software engineering faces as a discipline?
  • 30. Challenges of Software Engineering • High risk of failure • In safety-critical areas such as space, aviation, nuclear power plants, etc., the cost of software failure can be massive because lives are at risk. • Increased market demands for fast turnaround (turning in the opposite direction) time. • Customers’ demands are increasing with each passing day while the time they require software developers to complete a software is decreasing. • Dealing with the increased complexity of software. • With new applications and technology, more complex softwares are required. • The diversity of software systems should be compatible with each other.
  • 31. Well-engineered Software • What are the traits of a well-engineered software?
  • 32. Well-Engineered Software • A well-engineered software has the following characteristics. 1. It is reliable and provides the required functionality 2. It has good and user-friendly user-interface 3. It is efficient and has acceptable performance 4. It is of good quality 5. It is cost-effective 6. It is maintainable • What if there is conflict among any of the above?
  • 33. Well-Engineered Software • Software has a close relationship with economics. • Whenever we talk about engineering systems, we always first analyze whether this is economically feasible or not. • Therefore, a software developer has to engineer all the activities of software development while keeping its economic feasibility intact. • But, often, software engineers end up in conflict among all these goals. • It is also a big challenge for a software engineer to resolve all these conflicts.
  • 34. The Balancing Act! • These requirements may conflict, and enhancing one characteristic may diminish another. • For example, there may be tension among the following: • Cost and Efficiency • Cost and Reliability • Efficiency and User-interface • A Software engineer has to analyze these conflicting entities and try to strike a balance. • You have to balance costs, user-friendliness, Efficiency, Reliability, etc. • Therefore, there is always a trade-off between these characteristics of software.
  • 35. Law of Diminishing Returns • Most of you have noticed that if you dissolve sugar in a glass of water, the sweetness of water will increase gradually. • But at a certain saturation level, no more sugar will dissolve into the water. • Therefore, at that point of saturation, the sweetness of water will not increase even if you add more sugar to it.
  • 36. Law of Diminishing Returns • Similar is the case with software engineering. • Whenever you perform any task like improving the efficiency of the system, trying to improve its quality or user-friendliness, all these things involve an element of cost. • If the quality of your system is low, it could be improved to a higher degree with the investment of little money. • But after reaching at a certain level of quality, the return on investment on the system’s quality will become reduced. • Meaning that the return on investment on quality of the software will be less than the effort or money we invest.
  • 37. Software Background • Caper Jones, a renounced practitioner, and researcher in the field of Software Engineering, divided software-related activities into about twenty-five different categories. • The most important of these categories are: • Project Management • Requirement Engineering • Design • Coding • Testing • Software QualityAssurance • Software Configuration Management • Software Integration and • Rest of the activities • Though coding is very important, it is not more than 13-14% of the whole software development effort.
  • 38. Software Background • According to Fred Brook, in the eye of an unsophisticated manager, software is like a giant. • Sometimes it reveals as an unscheduled delay, and sometimes, it shows up in the form of a cost overrun. • To kill this giant, the managers look for magical solutions. • But unfortunately, we do not have any magic to defeat this giant. • There is only one solution, and that is to follow a disciplined approach to build softwares. • We can defeat the giant named software by using a disciplined and engineered approach to software development.
  • 39. Summary • Today, we have discussed the following things related to software engineering. • What is software engineering? • Why is it important? • What is the software crisis? • How software engineering derived from software crisis. • What is the importance of engineering principles in developing software? • What is the balancing act, and how apply in software engineering? • What is the law of diminishing returns? • And what are the major activities involved in the development of software?
  • 40. Thanks • Keep your environment clean by avoiding using plastic bags.