SlideShare a Scribd company logo
Lecture 01

 Software engineering is an interesting subject. In
order to understand this subject we will need to look
at a number of examples and case studies. And we
will need to see how we can develop good software
and how it could be improved in different scenarios?
Before we move on to software engineering we need
to understand what software actually is.
Introduction

 When we write a program for computer we named it as
software. But software is not just a program; many things
other than the program are also included in software.
 Some of the constituted items of software are described
below
 Program
 Data
 Documentation
What is Software?

 Undoubtedly software is playing a vital role in all the field of life
these days. We can see many software applications being operated
around us in our daily routine.
 Some of the major areas in which software has played an important
role are identified as under.
 Business decision-making
 Modern scientific investigation and engineering problem solving
 Games
 Embedded systems
 Similarly in many other fields like education, office automation,
Internet applications etc, software is being used
Why is it Important?

 Definition:
 The process of productive use of scientific knowledge is
called engineering.
What is Engineering?

”This is the process of utilizing our knowledge of computer
science in effective production of software systems.”
Difference between Computer
Science & Software Engineering

 The major thing that distinguishes a software system
from other systems is that:
 “Software does not wear out!”
Difference between Software and
Other Systems

 The difference between a software system and a car!
Source of Inherent Complexity of
Software

 Computer systems were very new and primitive in early fifties and the use
of software was also very limited at that time. It was limited to some
scientific applications or used to process the data of census. In 1960s a great
amount of rapid improvement was made in hardware.
 In early 60s software had suffered from the similar kind of problem to
which we call Software Crisis. Techniques that were used to develop small
software were not applicable for large software systems. This thing
resulted in the following consequences
 In most of the cases that software which was tried to be build using those old
tools and techniques were not complete.
 Most of the times it was delivered too late.
 Most of the projects were over-budgeted.
 And in most of the case systems build using these techniques were not reliable –
meaning that they were not be able to do what they were expected to do.
What is Software Crisis?

 Let’s look at some of the definitions of software engineering.
 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.”
 Another definition of Software Engineering given by Ian Somerville:
“All aspects of software production’ 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”.
 These definitions make it clear that Software Engineering is not just
about writing code.
Software Engineering

 Software Engineering is the set of processes and tools to develop
software. Software Engineering is the combination of all the tools,
techniques, and processes that used in software production.
 Programming Language
 Programming Language Design
 Software Design Techniques
 Tools
 Testing
 Software Maintenance
 Software Development etc.
 So all those thing that are related to software are also related to
software engineering.
Software Engineering
 Well-engineered software is one that has the following characteristics.
 It is reliable
 It has good user-interface
 It has acceptable performance
 It is of good quality
 It is cost-effective
 The major challenges for a software engineer is that he has to build software within limited time
and budget in a cost-effective way and with good quality.
 Provides the required functionality
 Maintainable
 Reliable
 Efficient
 User-friendly
 Cost-effective
 But most of the times software engineers ends up in conflict among all these goals. It is also a big
challenge for a software engineer to resolve all these conflicts.
Well-Engineered Software

 Software Engineering is actually the balancing act. You have to
balance many things like cost, user friendliness, Efficiency,
Reliability etc.
 These requirements may be conflicting. For example, there may
be tension among the following:
 Cost vs. Efficiency
 Cost vs. Reliability
 Efficiency vs. User-interface
 A Software engineer is required to analyze these conflicting
entities and tries to strike a balance.
The Balancing Act!

Making the engineering decision!
Law of Diminishing Returns

No. Activity Effort 13 Configuration Mgt. 0.41%
1 Requirements 3.84% 14 Integration 2.71%
2 Prototyping 4.50% 15 User Documentation 9.67%
3 Architecture 2.25% 16 Unit Testing 4.50%
4 Project Plans 1.33% 17 Function Testing 4.50%
5 Initial Design 3.84% 18 Integration Testing 3.84%
6 Detailed Design 4.50% 19 System Testing 3.38%
7 Design Reviews 3.02% 20 Beta Testing 3.02%
8 Coding 13.50% 21 Acceptance Testing 1.94%
9 Reuse Acquisition 1.13% 22 Independent Testing 3.38%
10 Package Purchase 1.69% 23 Quality Assurance 4.50%
11 Code Inspection 4.50% 24 Installation & Training 1.94%
12 Independent V&V 5.42% 25 Project Management 6.75%
Breakdown of Project Effort

No. Activity Effort
1 Project Management 9%
2 Requirement Engineering 8%
3 Design 13%
4 Coding 14%
5 Testing 9%
6 Software Quality Assurance 5%
7 Configuration Management 9%
8 Integration 10%
9 User Documentation 10%
10 Rest of the Activities 13%
Breakdown of Project Effort

Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves,
because they transform unexpectedly from the familiar into horrors. For these we seek bullets of
silver that can magically lay them to rest. The familiar software project has something of this
character (at least as seen by the non-technical manager), usually innocent and straight forward,
but capable of becoming a monster of missed schedules, blown budgets, and flawed projects. So
we hear desperate cries for a silver bullet, something to make software costs drop as rapidly as
computer hardware costs do. Skepticism is not pessimism, however. Although we see no
startling breakthroughs, and indeed, such to be inconsistent with the nature of the software,
many encouraging innovations are under way. A disciplined, consistent effort to develop,
propagate and exploit them should indeed yield an order of magnitude improvement. There is
no royal road, but there is a road. The first step towards the management of disease was
replacement of demon theories and humors theories by the germ theory. The very first step, the
beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress
would be made stepwise, at great effort, and that a persistent, unremitting care would have to
be paid to a discipline of cleanliness. So it is with software engineering today.
An passage from “No Silver
Bullet” – Fred Brooks

 Software Engineering is nothing but a disciplined and
systematic approach to software development.

 Today we have discussed the following things related to
software engineering.
 What is software engineering?
 Why is it important?
 What is software crisis?
 How software engineering derived from software crisis.
 What is the importance of engineering principles in developing
software?
 What is balancing act and how apply in software engineering?
 What is law of diminishing returns?
 And what are the major activities involved in the development
of software.
Summary

More Related Content

What's hot

Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
Mohammad Faizan
 
Ide description
Ide descriptionIde description
Ide description
Nidhi Baranwal
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
Rupesh Vaishnav
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
Hemant Sharma
 
Operating System Lab Manual
Operating System Lab ManualOperating System Lab Manual
Operating System Lab Manual
Bilal Mirza
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
Rajon
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
Akash Kumar Dhameja
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
Pihu Goel
 
Token, Pattern and Lexeme
Token, Pattern and LexemeToken, Pattern and Lexeme
Token, Pattern and Lexeme
A. S. M. Shafi
 
Agile software development
Agile software developmentAgile software development
Agile software development
Muhammad Amjad Rana
 
Jarvis
JarvisJarvis
Loader
LoaderLoader
Loader
nikhilshrama
 
Chapter 4 software project planning
Chapter 4 software project planningChapter 4 software project planning
Chapter 4 software project planning
despicable me
 
Assemblers
AssemblersAssemblers
Assemblers
Dattatray Gandhmal
 
az-900.pdf
az-900.pdfaz-900.pdf
az-900.pdf
ssuser30a46d1
 
Introduction and Application of Computer Graphics.
Introduction and Application of Computer Graphics.Introduction and Application of Computer Graphics.
Introduction and Application of Computer Graphics.
Bhautik Jethva
 
Software requirements
Software requirementsSoftware requirements
Software requirements
Dr. Loganathan R
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
university of education,Lahore
 

What's hot (20)

Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Ide description
Ide descriptionIde description
Ide description
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
 
Operating System Lab Manual
Operating System Lab ManualOperating System Lab Manual
Operating System Lab Manual
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
 
Token, Pattern and Lexeme
Token, Pattern and LexemeToken, Pattern and Lexeme
Token, Pattern and Lexeme
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Jarvis
JarvisJarvis
Jarvis
 
Loader
LoaderLoader
Loader
 
Chapter 4 software project planning
Chapter 4 software project planningChapter 4 software project planning
Chapter 4 software project planning
 
Assemblers
AssemblersAssemblers
Assemblers
 
az-900.pdf
az-900.pdfaz-900.pdf
az-900.pdf
 
Introduction and Application of Computer Graphics.
Introduction and Application of Computer Graphics.Introduction and Application of Computer Graphics.
Introduction and Application of Computer Graphics.
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 

Similar to Lecture 01

Unit1
Unit1Unit1
se01.ppt
se01.pptse01.ppt
se01.ppt
xiso
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
bxuket
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
tnxaht
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
eqhnwl
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
ohtpwshx
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
pchgmf
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
hcslenk
 
1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
jackiewalcutt
 
Intro
IntroIntro
Intro
hinaaaa123
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
Neelamani Samal
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semesterrajesh199155
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
vishal choudhary
 
Introducing Software Engineering
Introducing Software EngineeringIntroducing Software Engineering
Introducing Software Engineering
sommerville-videos
 
Swe notes
Swe notesSwe notes
Swe notes
Mohammed Romi
 
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
BMS Institute of Technology and Management
 
Lecture1422914635
Lecture1422914635Lecture1422914635
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfSE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
balaji984829
 

Similar to Lecture 01 (20)

Unit1
Unit1Unit1
Unit1
 
Chapter # 1
Chapter # 1 Chapter # 1
Chapter # 1
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
 
Intro
IntroIntro
Intro
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
Introducing Software Engineering
Introducing Software EngineeringIntroducing Software Engineering
Introducing Software Engineering
 
se
sese
se
 
Swe notes
Swe notesSwe notes
Swe notes
 
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
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdfSE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
 

More from Rana Ali

Lecture 14
Lecture 14Lecture 14
Lecture 14Rana Ali
 
Lecture 13
Lecture 13Lecture 13
Lecture 13Rana Ali
 
Lecture 12
Lecture 12Lecture 12
Lecture 12Rana Ali
 
Lecture 11
Lecture 11Lecture 11
Lecture 11Rana Ali
 
Lecture 10
Lecture 10Lecture 10
Lecture 10Rana Ali
 
Lecture 09
Lecture 09Lecture 09
Lecture 09Rana Ali
 
Lecture 08
Lecture 08Lecture 08
Lecture 08Rana Ali
 
Lecture 07
Lecture 07Lecture 07
Lecture 07Rana Ali
 
Lecture 06
Lecture 06Lecture 06
Lecture 06Rana Ali
 
Lecture 05
Lecture 05Lecture 05
Lecture 05Rana Ali
 
Lecture 04
Lecture 04Lecture 04
Lecture 04
Rana Ali
 
Lecture 03
Lecture 03Lecture 03
Lecture 03
Rana Ali
 
Lecture 02
Lecture 02Lecture 02
Lecture 02Rana Ali
 
Lecture 15
Lecture 15Lecture 15
Lecture 15Rana Ali
 

More from Rana Ali (15)

Nlp
NlpNlp
Nlp
 
Lecture 14
Lecture 14Lecture 14
Lecture 14
 
Lecture 13
Lecture 13Lecture 13
Lecture 13
 
Lecture 12
Lecture 12Lecture 12
Lecture 12
 
Lecture 11
Lecture 11Lecture 11
Lecture 11
 
Lecture 10
Lecture 10Lecture 10
Lecture 10
 
Lecture 09
Lecture 09Lecture 09
Lecture 09
 
Lecture 08
Lecture 08Lecture 08
Lecture 08
 
Lecture 07
Lecture 07Lecture 07
Lecture 07
 
Lecture 06
Lecture 06Lecture 06
Lecture 06
 
Lecture 05
Lecture 05Lecture 05
Lecture 05
 
Lecture 04
Lecture 04Lecture 04
Lecture 04
 
Lecture 03
Lecture 03Lecture 03
Lecture 03
 
Lecture 02
Lecture 02Lecture 02
Lecture 02
 
Lecture 15
Lecture 15Lecture 15
Lecture 15
 

Lecture 01

  • 2.   Software engineering is an interesting subject. In order to understand this subject we will need to look at a number of examples and case studies. And we will need to see how we can develop good software and how it could be improved in different scenarios? Before we move on to software engineering we need to understand what software actually is. Introduction
  • 3.   When we write a program for computer we named it as software. But software is not just a program; many things other than the program are also included in software.  Some of the constituted items of software are described below  Program  Data  Documentation What is Software?
  • 4.   Undoubtedly software is playing a vital role in all the field of life these days. We can see many software applications being operated around us in our daily routine.  Some of the major areas in which software has played an important role are identified as under.  Business decision-making  Modern scientific investigation and engineering problem solving  Games  Embedded systems  Similarly in many other fields like education, office automation, Internet applications etc, software is being used Why is it Important?
  • 5.   Definition:  The process of productive use of scientific knowledge is called engineering. What is Engineering?
  • 6.  ”This is the process of utilizing our knowledge of computer science in effective production of software systems.” Difference between Computer Science & Software Engineering
  • 7.   The major thing that distinguishes a software system from other systems is that:  “Software does not wear out!” Difference between Software and Other Systems
  • 8.   The difference between a software system and a car! Source of Inherent Complexity of Software
  • 9.   Computer systems were very new and primitive in early fifties and the use of software was also very limited at that time. It was limited to some scientific applications or used to process the data of census. In 1960s a great amount of rapid improvement was made in hardware.  In early 60s software had suffered from the similar kind of problem to which we call Software Crisis. Techniques that were used to develop small software were not applicable for large software systems. This thing resulted in the following consequences  In most of the cases that software which was tried to be build using those old tools and techniques were not complete.  Most of the times it was delivered too late.  Most of the projects were over-budgeted.  And in most of the case systems build using these techniques were not reliable – meaning that they were not be able to do what they were expected to do. What is Software Crisis?
  • 10.   Let’s look at some of the definitions of software engineering.  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.”  Another definition of Software Engineering given by Ian Somerville: “All aspects of software production’ 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”.  These definitions make it clear that Software Engineering is not just about writing code. Software Engineering
  • 11.   Software Engineering is the set of processes and tools to develop software. Software Engineering is the combination of all the tools, techniques, and processes that used in software production.  Programming Language  Programming Language Design  Software Design Techniques  Tools  Testing  Software Maintenance  Software Development etc.  So all those thing that are related to software are also related to software engineering. Software Engineering
  • 12.  Well-engineered software is one that has the following characteristics.  It is reliable  It has good user-interface  It has acceptable performance  It is of good quality  It is cost-effective  The major challenges for a software engineer is that he has to build software within limited time and budget in a cost-effective way and with good quality.  Provides the required functionality  Maintainable  Reliable  Efficient  User-friendly  Cost-effective  But most of the times software engineers ends up in conflict among all these goals. It is also a big challenge for a software engineer to resolve all these conflicts. Well-Engineered Software
  • 13.   Software Engineering is actually the balancing act. You have to balance many things like cost, user friendliness, Efficiency, Reliability etc.  These requirements may be conflicting. For example, there may be tension among the following:  Cost vs. Efficiency  Cost vs. Reliability  Efficiency vs. User-interface  A Software engineer is required to analyze these conflicting entities and tries to strike a balance. The Balancing Act!
  • 14.  Making the engineering decision! Law of Diminishing Returns
  • 15.  No. Activity Effort 13 Configuration Mgt. 0.41% 1 Requirements 3.84% 14 Integration 2.71% 2 Prototyping 4.50% 15 User Documentation 9.67% 3 Architecture 2.25% 16 Unit Testing 4.50% 4 Project Plans 1.33% 17 Function Testing 4.50% 5 Initial Design 3.84% 18 Integration Testing 3.84% 6 Detailed Design 4.50% 19 System Testing 3.38% 7 Design Reviews 3.02% 20 Beta Testing 3.02% 8 Coding 13.50% 21 Acceptance Testing 1.94% 9 Reuse Acquisition 1.13% 22 Independent Testing 3.38% 10 Package Purchase 1.69% 23 Quality Assurance 4.50% 11 Code Inspection 4.50% 24 Installation & Training 1.94% 12 Independent V&V 5.42% 25 Project Management 6.75% Breakdown of Project Effort
  • 16.  No. Activity Effort 1 Project Management 9% 2 Requirement Engineering 8% 3 Design 13% 4 Coding 14% 5 Testing 9% 6 Software Quality Assurance 5% 7 Configuration Management 9% 8 Integration 10% 9 User Documentation 10% 10 Rest of the Activities 13% Breakdown of Project Effort
  • 17.  Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these we seek bullets of silver that can magically lay them to rest. The familiar software project has something of this character (at least as seen by the non-technical manager), usually innocent and straight forward, but capable of becoming a monster of missed schedules, blown budgets, and flawed projects. So we hear desperate cries for a silver bullet, something to make software costs drop as rapidly as computer hardware costs do. Skepticism is not pessimism, however. Although we see no startling breakthroughs, and indeed, such to be inconsistent with the nature of the software, many encouraging innovations are under way. A disciplined, consistent effort to develop, propagate and exploit them should indeed yield an order of magnitude improvement. There is no royal road, but there is a road. The first step towards the management of disease was replacement of demon theories and humors theories by the germ theory. The very first step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today. An passage from “No Silver Bullet” – Fred Brooks
  • 18.   Software Engineering is nothing but a disciplined and systematic approach to software development.
  • 19.   Today we have discussed the following things related to software engineering.  What is software engineering?  Why is it important?  What is software crisis?  How software engineering derived from software crisis.  What is the importance of engineering principles in developing software?  What is balancing act and how apply in software engineering?  What is law of diminishing returns?  And what are the major activities involved in the development of software. Summary