SlideShare a Scribd company logo
Software Engineering-
Unit 1
INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 1
Computer Software
What is IT?
Computer software is the product that software professionals build and then
support over the long term. It encompasses programs that execute within a
computer of any size and architecture, content that is presented as the
computer programs execute, and descriptive information in both hard copy and
virtual forms that encompass virtually any electronic media. Software
engineering encompasses a process, a collection of methods (practice) and an
array of tools that allow professionals to build high quality computer software.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 2
Computer Software
Who does it?
Software engineers build and support software, and virtually everyone in
the industrialized world uses it either directly or indirectly.
Why is it Important?
Software is important because it affects nearly every aspect of our lives
and has become pervasive in our commerce, our culture, and our
everyday activities. Software engineering is important because it enables
us to build complex systems in a timely manner and with high quality.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 3
Computer Software
What are the steps?
You build computer software like you build any successful product, by
applying an agile, adaptable process that leads to a high-quality result that
meets the needs of the people who will use the product. You apply a
software engineering approach.
What is the work product?
From the point of view of a software engineer, the work product is the set
of programs, content (data), and other work products that are computer
software. But from the user’s viewpoint, the work product is the resultant
information that somehow makes the user’s world better
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 4
Software Crisis
Software Crisis is a term used in computer science for the
difficulty of writing useful and efficient computer programs
in the required time .software crisis was due to using same
workforce, same methods, same tools even though rapidly
increasing in software demand, complexity of software and
software challenges. With increase in the complexity of
software, many software problems arose because existing
methods were insufficient.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 5
Software Crisis
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 6
Software Crisis
Causes of Software Crisis:
1. The cost of owning and maintaining software was as expensive as developing the
software
2. At that time Projects was running over-time
3. At that time Software was very inefficient
4. The quality of software was low quality
5. Software often did not meet requirements
6. The average software project overshoots its schedule by half
7. At that time Software was never delivered
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 7
Solution of Software Crisis:
There is no single solution to the crisis. One possible solution of software crisis
is Software Engineering because software engineering is a systematic,
disciplined and quantifiable approach. For preventing software crisis, there are
some guidelines:
1. Reduction in software over-budget
2. The quality of software must be high
3. Less time needed for software project
4. Experience working team member on software project
5. Software must be delivered
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 8
Software Engineering
Although hundreds of authors have developed personal
definitions of software engineering, a definition proposed
by Fritz Bauer at the seminal conference on the subject still
serves as a basis for discussion:
[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
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 9
Software Engineering
The IEEE [IEE93a] has developed a more comprehensive
definition when it states:
Software Engineering: (1) The application of a systematic,
disciplined, quantifiable approach to the development,
operation, and maintenance of software; that is, the
application of engineering to software.
(2) The study of approaches as in (1).
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 10
Software Engineering
Software engineering is a layered technology.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 11
Software Engineering
The Quality Focus:
Any engineering approach (including software engineering) must rest
on an organizational commitment to quality. Total quality
management, Six Sigma, and similar philosophies foster a continuous
process improvement culture, and it is this culture that ultimately
leads to the development of increasingly more effective approaches
to software engineering. The bedrock that supports software
engineering is a quality focus.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 12
Software Engineering
Process:
The foundation for software engineering is the process layer. The software
engineering process is the glue that holds the technology layers together
and enables rational and timely development of computer software.
Process defines a framework. that must be established for effective
delivery of software engineering technology.
The software process forms the basis for management control of software
projects and establishes the context in which technical methods are
applied, work products (models, documents, data, reports, forms, etc.)
are produced, milestones are established, quality is ensured, and change
is properly managed.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 13
Software Engineering
Methods:
Software engineering methods provide the technical how-to’s for
building software. Methods encompass a broad array of tasks that
include communication, requirements analysis, design modeling,
program construction, testing, and support. Software engineering
methods rely on a set of basic principles that govern each area of the
technology and include modeling activities and other descriptive
techniques.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 14
Software Engineering
Tools:
Software engineering tools provide automated or semi
automated support for the process and the methods. When
tools are integrated so that information created by one tool
can be used by another, a system for the support of
software development, called computer-aided software
engineering, is established.
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 15
References:
https://www.geeksforgeeks.org/software-engineering-software-crisis/
7th edition Software Engineering A Practitioners Approach by Roger S. Pressman
8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 16
Ad

Recommended

Sdlc process models in software engineering basics by ram k paliwal
Sdlc process models in software engineering basics by ram k paliwal
Ram Paliwal
 
Software reuirement elicitation in software engineering basics by ram k paliwal
Software reuirement elicitation in software engineering basics by ram k paliwal
Ram Paliwal
 
Software process in software engineering basics by ram k paliwal part 2
Software process in software engineering basics by ram k paliwal part 2
Ram Paliwal
 
Sdlc spiral model in software engineering basics by ram k paliwal
Sdlc spiral model in software engineering basics by ram k paliwal
Ram Paliwal
 
Need for Software Engineering
Need for Software Engineering
Upekha Vandebona
 
Characteristics of Software
Characteristics of Software
Upekha Vandebona
 
Software Engineering Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
JAINAM KAPADIYA
 
Software engineering layers
Software engineering layers
Self-employed
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
software characteristics
software characteristics
Muhammad Sikandar Mustafa
 
software engineering models
software engineering models
mansab MIRZA
 
Chapter 01
Chapter 01
ans ali raza
 
Srs (software requirement specification) in software engineering basics by ra...
Srs (software requirement specification) in software engineering basics by ra...
Ram Paliwal
 
Cocomo model
Cocomo model
Baskarkncet
 
SDLC RAD model
SDLC RAD model
Jay Sharma
 
Software engineering tutorial
Software engineering tutorial
Ahmed Elshal
 
software process
software process
Muhammad Sikandar Mustafa
 
Week 8 final assesement presentation
Week 8 final assesement presentation
matumba Thuso
 
software product and its characteristics
software product and its characteristics
Priyanka Pradhan
 
Reuse landscape
Reuse landscape
sommerville-videos
 
RAD Model
RAD Model
university of education,Lahore
 
What is software engineering
What is software engineering
Jennifer Polack
 
Unit1
Unit1
anuragmbst
 
Software engineering
Software engineering
MOHAMED RIYAZUDEEN
 
Software Process Models
Software Process Models
Ahmed Alageed
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Lecture1 (SE Introduction)
Lecture1 (SE Introduction)
Education Front
 
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
paramdholakia3
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra
 

More Related Content

What's hot (18)

Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
software characteristics
software characteristics
Muhammad Sikandar Mustafa
 
software engineering models
software engineering models
mansab MIRZA
 
Chapter 01
Chapter 01
ans ali raza
 
Srs (software requirement specification) in software engineering basics by ra...
Srs (software requirement specification) in software engineering basics by ra...
Ram Paliwal
 
Cocomo model
Cocomo model
Baskarkncet
 
SDLC RAD model
SDLC RAD model
Jay Sharma
 
Software engineering tutorial
Software engineering tutorial
Ahmed Elshal
 
software process
software process
Muhammad Sikandar Mustafa
 
Week 8 final assesement presentation
Week 8 final assesement presentation
matumba Thuso
 
software product and its characteristics
software product and its characteristics
Priyanka Pradhan
 
Reuse landscape
Reuse landscape
sommerville-videos
 
RAD Model
RAD Model
university of education,Lahore
 
What is software engineering
What is software engineering
Jennifer Polack
 
Unit1
Unit1
anuragmbst
 
Software engineering
Software engineering
MOHAMED RIYAZUDEEN
 
Software Process Models
Software Process Models
Ahmed Alageed
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
software engineering models
software engineering models
mansab MIRZA
 
Srs (software requirement specification) in software engineering basics by ra...
Srs (software requirement specification) in software engineering basics by ra...
Ram Paliwal
 
SDLC RAD model
SDLC RAD model
Jay Sharma
 
Software engineering tutorial
Software engineering tutorial
Ahmed Elshal
 
Week 8 final assesement presentation
Week 8 final assesement presentation
matumba Thuso
 
software product and its characteristics
software product and its characteristics
Priyanka Pradhan
 
What is software engineering
What is software engineering
Jennifer Polack
 
Software Process Models
Software Process Models
Ahmed Alageed
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 

Similar to Software and software engineering basics by ram k paliwal (20)

Lecture1 (SE Introduction)
Lecture1 (SE Introduction)
Education Front
 
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
paramdholakia3
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra
 
SE-L1-Introduction-NJ.pptx
SE-L1-Introduction-NJ.pptx
MaryamMb1
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
BambangWahono3
 
Software Engineering Lecture for Computer Science.pdf
Software Engineering Lecture for Computer Science.pdf
senditover247
 
An introduction to software
An introduction to software
Bilal Maqbool ツ
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
balaji984829
 
Introduction to Software Engineering Notes
Introduction to Software Engineering Notes
Dr Anuranjan Misra
 
Lecture 1 se
Lecture 1 se
Tribhuvan University
 
Software Engineering Introduction by Dr M Zhu
Software Engineering Introduction by Dr M Zhu
AmirrulRasyid
 
Chapter 01
Chapter 01
AlenaDion
 
Intro
Intro
hinaaaa123
 
Introduction to Software Engineering
Introduction to Software Engineering
Amity University | FMS - DU | IMT | Stratford University | KKMI International Institute | AIMA | DTU
 
Rekayasa Perangkat Lunak Pertemuan 1 RPL
Rekayasa Perangkat Lunak Pertemuan 1 RPL
TaufikIqbalR1
 
SE
SE
adeel adeel
 
Chapter 01
Chapter 01
ryan aja
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
23017156038
 
Lecture 01
Lecture 01
Rana Ali
 
Lecture1 (SE Introduction)
Lecture1 (SE Introduction)
Education Front
 
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
paramdholakia3
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra
 
SE-L1-Introduction-NJ.pptx
SE-L1-Introduction-NJ.pptx
MaryamMb1
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
BambangWahono3
 
Software Engineering Lecture for Computer Science.pdf
Software Engineering Lecture for Computer Science.pdf
senditover247
 
SE 18CS35 Module 1.pdf
SE 18CS35 Module 1.pdf
balaji984829
 
Introduction to Software Engineering Notes
Introduction to Software Engineering Notes
Dr Anuranjan Misra
 
Software Engineering Introduction by Dr M Zhu
Software Engineering Introduction by Dr M Zhu
AmirrulRasyid
 
Rekayasa Perangkat Lunak Pertemuan 1 RPL
Rekayasa Perangkat Lunak Pertemuan 1 RPL
TaufikIqbalR1
 
Chapter 01
Chapter 01
ryan aja
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
23017156038
 
Lecture 01
Lecture 01
Rana Ali
 
Ad

More from Ram Paliwal (16)

Mis classification By Ram K Paliwal
Mis classification By Ram K Paliwal
Ram Paliwal
 
Management inofrmation system basics by ram k paliwal
Management inofrmation system basics by ram k paliwal
Ram Paliwal
 
Database design (entity attribute and its types) unit 2 part 4
Database design (entity attribute and its types) unit 2 part 4
Ram Paliwal
 
Database design (entity, entity set and entity type) unit 2 part 3
Database design (entity, entity set and entity type) unit 2 part 3
Ram Paliwal
 
Database design (conceptual, logical and physical design) unit 2 part 2
Database design (conceptual, logical and physical design) unit 2 part 2
Ram Paliwal
 
Database development life cycle unit 2 part 1
Database development life cycle unit 2 part 1
Ram Paliwal
 
Memory hierarchy unit 2 by ram k paliwal
Memory hierarchy unit 2 by ram k paliwal
Ram Paliwal
 
Cpu register, instruction exucution and interrupts unit 1 by ram k paliwal
Cpu register, instruction exucution and interrupts unit 1 by ram k paliwal
Ram Paliwal
 
System component and system calls unit 1 by ram k paliwal
System component and system calls unit 1 by ram k paliwal
Ram Paliwal
 
Types of operating system unit 1 by Ram K Paliwal
Types of operating system unit 1 by Ram K Paliwal
Ram Paliwal
 
Software project planning in software engineering by ram k paliwal unit 2
Software project planning in software engineering by ram k paliwal unit 2
Ram Paliwal
 
Database models unit 1 part 2
Database models unit 1 part 2
Ram Paliwal
 
Database overview unit 4 part 1
Database overview unit 4 part 1
Ram Paliwal
 
Database development life cycle unit 2 part 1
Database development life cycle unit 2 part 1
Ram Paliwal
 
Operating system basics function of os unit 1 by ram k paliwal part 1
Operating system basics function of os unit 1 by ram k paliwal part 1
Ram Paliwal
 
Do lecommerce
Do lecommerce
Ram Paliwal
 
Mis classification By Ram K Paliwal
Mis classification By Ram K Paliwal
Ram Paliwal
 
Management inofrmation system basics by ram k paliwal
Management inofrmation system basics by ram k paliwal
Ram Paliwal
 
Database design (entity attribute and its types) unit 2 part 4
Database design (entity attribute and its types) unit 2 part 4
Ram Paliwal
 
Database design (entity, entity set and entity type) unit 2 part 3
Database design (entity, entity set and entity type) unit 2 part 3
Ram Paliwal
 
Database design (conceptual, logical and physical design) unit 2 part 2
Database design (conceptual, logical and physical design) unit 2 part 2
Ram Paliwal
 
Database development life cycle unit 2 part 1
Database development life cycle unit 2 part 1
Ram Paliwal
 
Memory hierarchy unit 2 by ram k paliwal
Memory hierarchy unit 2 by ram k paliwal
Ram Paliwal
 
Cpu register, instruction exucution and interrupts unit 1 by ram k paliwal
Cpu register, instruction exucution and interrupts unit 1 by ram k paliwal
Ram Paliwal
 
System component and system calls unit 1 by ram k paliwal
System component and system calls unit 1 by ram k paliwal
Ram Paliwal
 
Types of operating system unit 1 by Ram K Paliwal
Types of operating system unit 1 by Ram K Paliwal
Ram Paliwal
 
Software project planning in software engineering by ram k paliwal unit 2
Software project planning in software engineering by ram k paliwal unit 2
Ram Paliwal
 
Database models unit 1 part 2
Database models unit 1 part 2
Ram Paliwal
 
Database overview unit 4 part 1
Database overview unit 4 part 1
Ram Paliwal
 
Database development life cycle unit 2 part 1
Database development life cycle unit 2 part 1
Ram Paliwal
 
Operating system basics function of os unit 1 by ram k paliwal part 1
Operating system basics function of os unit 1 by ram k paliwal part 1
Ram Paliwal
 
Ad

Recently uploaded (20)

LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
DESIGN OF REINFORCED CONCRETE ELEMENTS S
DESIGN OF REINFORCED CONCRETE ELEMENTS S
prabhusp8
 
retina_biometrics ruet rajshahi bangdesh.pptx
retina_biometrics ruet rajshahi bangdesh.pptx
MdRakibulIslam697135
 
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
Shabista Imam
 
Structured Programming with C++ :: Kjell Backman
Structured Programming with C++ :: Kjell Backman
Shabista Imam
 
Complete University of Calculus :: 2nd edition
Complete University of Calculus :: 2nd edition
Shabista Imam
 
NEW Strengthened Senior High School Gen Math.pptx
NEW Strengthened Senior High School Gen Math.pptx
DaryllWhere
 
Learning – Types of Machine Learning – Supervised Learning – Unsupervised UNI...
Learning – Types of Machine Learning – Supervised Learning – Unsupervised UNI...
23Q95A6706
 
Unit III_One Dimensional Consolidation theory
Unit III_One Dimensional Consolidation theory
saravananr808639
 
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Shabista Imam
 
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
resming1
 
International Journal of Advanced Information Technology (IJAIT)
International Journal of Advanced Information Technology (IJAIT)
ijait
 
Introduction to Python Programming Language
Introduction to Python Programming Language
merlinjohnsy
 
Microwatt: Open Tiny Core, Big Possibilities
Microwatt: Open Tiny Core, Big Possibilities
IBM
 
Industry 4.o the fourth revolutionWeek-2.pptx
Industry 4.o the fourth revolutionWeek-2.pptx
KNaveenKumarECE
 
AI_Presentation (1). Artificial intelligence
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Solar thermal – Flat plate and concentrating collectors .pptx
Solar thermal – Flat plate and concentrating collectors .pptx
jdaniabraham1
 
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Mark Billinghurst
 
(Continuous Integration and Continuous Deployment/Delivery) is a fundamental ...
(Continuous Integration and Continuous Deployment/Delivery) is a fundamental ...
ketan09101
 
System design handwritten notes guidance
System design handwritten notes guidance
Shabista Imam
 
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
DESIGN OF REINFORCED CONCRETE ELEMENTS S
DESIGN OF REINFORCED CONCRETE ELEMENTS S
prabhusp8
 
retina_biometrics ruet rajshahi bangdesh.pptx
retina_biometrics ruet rajshahi bangdesh.pptx
MdRakibulIslam697135
 
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
FUNDAMENTALS OF COMPUTER ORGANIZATION AND ARCHITECTURE
Shabista Imam
 
Structured Programming with C++ :: Kjell Backman
Structured Programming with C++ :: Kjell Backman
Shabista Imam
 
Complete University of Calculus :: 2nd edition
Complete University of Calculus :: 2nd edition
Shabista Imam
 
NEW Strengthened Senior High School Gen Math.pptx
NEW Strengthened Senior High School Gen Math.pptx
DaryllWhere
 
Learning – Types of Machine Learning – Supervised Learning – Unsupervised UNI...
Learning – Types of Machine Learning – Supervised Learning – Unsupervised UNI...
23Q95A6706
 
Unit III_One Dimensional Consolidation theory
Unit III_One Dimensional Consolidation theory
saravananr808639
 
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Tally.ERP 9 at a Glance.book - Tally Solutions .pdf
Shabista Imam
 
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
Deep Learning for Natural Language Processing_FDP on 16 June 2025 MITS.pptx
resming1
 
International Journal of Advanced Information Technology (IJAIT)
International Journal of Advanced Information Technology (IJAIT)
ijait
 
Introduction to Python Programming Language
Introduction to Python Programming Language
merlinjohnsy
 
Microwatt: Open Tiny Core, Big Possibilities
Microwatt: Open Tiny Core, Big Possibilities
IBM
 
Industry 4.o the fourth revolutionWeek-2.pptx
Industry 4.o the fourth revolutionWeek-2.pptx
KNaveenKumarECE
 
AI_Presentation (1). Artificial intelligence
AI_Presentation (1). Artificial intelligence
RoselynKaur8thD34
 
Solar thermal – Flat plate and concentrating collectors .pptx
Solar thermal – Flat plate and concentrating collectors .pptx
jdaniabraham1
 
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Mark Billinghurst
 
(Continuous Integration and Continuous Deployment/Delivery) is a fundamental ...
(Continuous Integration and Continuous Deployment/Delivery) is a fundamental ...
ketan09101
 
System design handwritten notes guidance
System design handwritten notes guidance
Shabista Imam
 

Software and software engineering basics by ram k paliwal

  • 1. Software Engineering- Unit 1 INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 1
  • 2. Computer Software What is IT? Computer software is the product that software professionals build and then support over the long term. It encompasses programs that execute within a computer of any size and architecture, content that is presented as the computer programs execute, and descriptive information in both hard copy and virtual forms that encompass virtually any electronic media. Software engineering encompasses a process, a collection of methods (practice) and an array of tools that allow professionals to build high quality computer software. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 2
  • 3. Computer Software Who does it? Software engineers build and support software, and virtually everyone in the industrialized world uses it either directly or indirectly. Why is it Important? Software is important because it affects nearly every aspect of our lives and has become pervasive in our commerce, our culture, and our everyday activities. Software engineering is important because it enables us to build complex systems in a timely manner and with high quality. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 3
  • 4. Computer Software What are the steps? You build computer software like you build any successful product, by applying an agile, adaptable process that leads to a high-quality result that meets the needs of the people who will use the product. You apply a software engineering approach. What is the work product? From the point of view of a software engineer, the work product is the set of programs, content (data), and other work products that are computer software. But from the user’s viewpoint, the work product is the resultant information that somehow makes the user’s world better 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 4
  • 5. Software Crisis Software Crisis is a term used in computer science for the difficulty of writing useful and efficient computer programs in the required time .software crisis was due to using same workforce, same methods, same tools even though rapidly increasing in software demand, complexity of software and software challenges. With increase in the complexity of software, many software problems arose because existing methods were insufficient. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 5
  • 6. Software Crisis 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 6
  • 7. Software Crisis Causes of Software Crisis: 1. The cost of owning and maintaining software was as expensive as developing the software 2. At that time Projects was running over-time 3. At that time Software was very inefficient 4. The quality of software was low quality 5. Software often did not meet requirements 6. The average software project overshoots its schedule by half 7. At that time Software was never delivered 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 7
  • 8. Solution of Software Crisis: There is no single solution to the crisis. One possible solution of software crisis is Software Engineering because software engineering is a systematic, disciplined and quantifiable approach. For preventing software crisis, there are some guidelines: 1. Reduction in software over-budget 2. The quality of software must be high 3. Less time needed for software project 4. Experience working team member on software project 5. Software must be delivered 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 8
  • 9. Software Engineering Although hundreds of authors have developed personal definitions of software engineering, a definition proposed by Fritz Bauer at the seminal conference on the subject still serves as a basis for discussion: [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 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 9
  • 10. Software Engineering The IEEE [IEE93a] has developed a more comprehensive definition when it states: Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 10
  • 11. Software Engineering Software engineering is a layered technology. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 11
  • 12. Software Engineering The Quality Focus: Any engineering approach (including software engineering) must rest on an organizational commitment to quality. Total quality management, Six Sigma, and similar philosophies foster a continuous process improvement culture, and it is this culture that ultimately leads to the development of increasingly more effective approaches to software engineering. The bedrock that supports software engineering is a quality focus. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 12
  • 13. Software Engineering Process: The foundation for software engineering is the process layer. The software engineering process is the glue that holds the technology layers together and enables rational and timely development of computer software. Process defines a framework. that must be established for effective delivery of software engineering technology. The software process forms the basis for management control of software projects and establishes the context in which technical methods are applied, work products (models, documents, data, reports, forms, etc.) are produced, milestones are established, quality is ensured, and change is properly managed. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 13
  • 14. Software Engineering Methods: Software engineering methods provide the technical how-to’s for building software. Methods encompass a broad array of tasks that include communication, requirements analysis, design modeling, program construction, testing, and support. Software engineering methods rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 14
  • 15. Software Engineering Tools: Software engineering tools provide automated or semi automated support for the process and the methods. When tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called computer-aided software engineering, is established. 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 15
  • 16. References: https://www.geeksforgeeks.org/software-engineering-software-crisis/ 7th edition Software Engineering A Practitioners Approach by Roger S. Pressman 8/2/2019 RAM K PALIWAL - INTRODUCTION TO SOFTWARE AND SOFTWARE ENGINEERING - UNIT 1 16

Editor's Notes

  • #4: software is an information transformer—producing, managing, acquiring, modifying, displaying, or transmitting information that can be as simple as a single bit or as complex as a multimedia presentation derived from data acquired from dozens of independent sources. As the vehicle used to deliver the product, software acts as the basis for the control of the computer (operating systems), the communication of information (networks), and the creation and control of other programs (software tools and environments).
  • #5: Computer software continues to be the single most important technology on the world stage. And it’s also a prime example of the law of unintended consequences. Fifty years ago no one could have predicted that software would become an indispensable technology for business, science, and engineering; that software would enable the creation of new technologies (e.g., genetic engineering and nanotechnology), the extension of existing technologies (e.g., telecommunications), and the radical change in older technologies (e.g., the printing industry); that software would be the driving force behind the personal computer revolution; that shrink-wrapped software products would be purchased by consumers in neighborhood malls; that software would slowly evolve from a product to a service as “on-demand” software companies deliver just-in-time functionality via a Web browser; No one could foresee that software would become embedded in systems of all kinds: transportation, medical, telecommunications, military, industrial, entertainment, office machines, . . . the list is almost endless. And if you believe the law of unintended consequences, there are many effects that we cannot yet predict. No one could predict that millions of computer programs would have to be corrected, adapted, and enhanced as time passed. The burden of performing these “maintenance” activities would absorb more people and more resources than all work applied to the creation of new software.
  • #10: You will be tempted to add to this definition. It says little about the technical aspects of software quality; it does not directly address the need for customer satisfaction or timely product delivery; it omits mention of the importance of measurement and metrics; it does not state the importance of an effective process. And yet, Bauer’s definition provides us with a baseline. What are the “sound engineering principles” that can be applied to computer software development? How do we “economically” build software so that it is “reliable”? What is required to create computer programs that work “efficiently” on not one but many different “real machines”? These are the questions that continue to challenge software engineers.
  • #11: And yet, a “systematic, disciplined, and quantifiable” approach applied by one software team may be burdensome to another. We need discipline, but we also need adaptability and agility.