SlideShare a Scribd company logo
4
Most read
14
Most read
18
Most read
An Introduction to
Software
Engineering

Carlos G. Gavidia (cgavidia@acm.org)
Topics
• Computer Science vs. Software Engineering.
• Software Engineering and other Engineering
disciplines.
• Challenges of Software Engineering.
• Software development processes.
An Introduction to Software Engineering

WHAT’S SOFTWARE
ENGINEERING?
Software: A definition

“Software Systems are perhaps the most
intricate and complex … of the things humanity
makes.”
-Fred Brooks
Software engineering
• Has progressed very far in a short time:
– 50 years ago, most programming were done
by Scientists trying to solve mathematical
problems.
– Today, we build monstrous systems used
everywhere.
• But, software industry is in crisis:
– A software project overshoots its schedule
by a half.
– Three quarters of all large systems are
operating failures.
Computer Science: A definition
“Computer science is a discipline that involves
the understanding and design of computers and
computational processes. In its most general
form it is concerned with the understanding of
information transfer and transformation.
Particular interest is placed on making
processes efficient and endowing them with
some form of intelligence.”
-CSAB
Engineering: A definition
“The systematic and regular application of
scientific and mathematical knowledge to the
design, construction, and operation of machines, systems,
and so on of practical use and, hence, of economic
value. Particular characteristic of engineers is that they
take seriously their responsibility for correctness,
suitability, and safety of the results of their efforts.
In this regard they consider themselves to be responsible
to their customer (including their employers where
relevant), to the users of their machines and systems, and
to the public at large.”
-Robert Baber
Software Engineering as Engineering
• Practical use, economic value:
– We need to determine the content and build
the best product value.
• Responsibility for correctness, suitability and
safety:
– The work you do could impact the safety,
business and well being of the customer.
• Regular application of scientific and
mathematical knowledge:
– Computer Science, psychology, economics
and management
Software Engineering: A Definition

“Software engineering is the application of a
systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of
software; that is, the application of engineering
to software”
-IEEE
An Introduction to Software Engineering

A PROCESS FOR MAKING
SOFTWARE
Software Development Practices

• Requirements
engineering
• High-level design
• Low-level design
• Coding
• Integration

•
•
•
•

Code reviews
Testing
Maintenance
Project
management
• Configuration
management
Software Development Practices
• You will learn MANY software development
practices.
• You’ll find:
– A practice is good for safety-critical
software.
– Another is better for small projects.
• Engineering is about selecting the most
appropriate method for a set of circumstances.
• You can use the practices and build a software
process with them.
Software Development Process
The process by which user needs are translated
into a software product. The process involves
translating user needs into software
requirements, transforming the software
requirements into design, implementing the
design in code, testing the code, and sometimes
installing and checking out the software for
operational use. Note: these activities might
overlap or be performed iteratively
- IEEE
Software process model

Plan Driven
The cost can be
minimized by
creating detailed
plans and by
constructing and
inspecting
architecture and
design documents.

Agile
Time is spent
planning and
gathering
requirements for
small iterations
throughout the
entire lifecycle of
the project.
An Introduction to Software Engineering

MAKING SOFTWARE IS
HARD
The programmer

The programmer, like the poet, works only
slightly removed from pure thought-stuff. He
builds his castles in the air, from air, creating by
exertion of the imagination.
-Frederick Brooks
Software Engineering Challenges
• Tractable Medium
– The constraints of physical medium can
serve to simplify alternatives.
• Changing requirements
– It is hard for customers to express what
they want in a product.
• Schedule Optimism
– We are an optimistic crew.
• Schedule Pressure
– Every product is late before it’s even started
Credits
Based on:A (Partial)
Introduction to
Software Engineering
Practices and Methods
• By Laurie Williams
• Available in:
http://agile.csc.ncsu
.edu/SEMaterials/C
oursePack.pdf

More Related Content

PDF
software engineering
PPTX
Number Systems
PPTX
Electrical engineering
PPTX
Web Engineering - Web Application Testing
PPTX
Functions in C
PDF
Software Development Life Cycle (SDLC)
PPTX
Java vs python
PPT
Agile effort estimation
software engineering
Number Systems
Electrical engineering
Web Engineering - Web Application Testing
Functions in C
Software Development Life Cycle (SDLC)
Java vs python
Agile effort estimation

What's hot (20)

PPTX
Software Engineering
PPT
Ian Sommerville, Software Engineering, 9th Edition Ch1
PPTX
The Extreme Programming (XP) Model
DOCX
Software engineering
PPTX
Lecture 01 Introduction to Software Engineering
PPT
extreme Programming
PPT
PDF
Software Engineering - Basics
PPT
Introduction to Software Engineering
PDF
Human Computer Interaction Notes 176.pdf
PDF
INTRODUCTION TO SOFTWARE ENGINEERING
PPTX
Checkpoints of the Process
PPTX
Software Engineering Ethics
PDF
Introduction to software engineering
PPT
Spiral model presentation
PPT
Chapter 01 software engineering pressman
PPTX
Compiler construction tools
PPTX
Software project management- Software Engineering
PDF
3. ch 2-process model
PPT
Cocomo model
Software Engineering
Ian Sommerville, Software Engineering, 9th Edition Ch1
The Extreme Programming (XP) Model
Software engineering
Lecture 01 Introduction to Software Engineering
extreme Programming
Software Engineering - Basics
Introduction to Software Engineering
Human Computer Interaction Notes 176.pdf
INTRODUCTION TO SOFTWARE ENGINEERING
Checkpoints of the Process
Software Engineering Ethics
Introduction to software engineering
Spiral model presentation
Chapter 01 software engineering pressman
Compiler construction tools
Software project management- Software Engineering
3. ch 2-process model
Cocomo model
Ad

Viewers also liked (7)

PPSX
Career guidance after bca
PPTX
Presentation on bhagat singh
PPT
Bhagat Singh
PPTX
Bhagat Singh
PPT
Graphical User Interface (GUI) - 1
PPTX
Graphical User Interface (Gui)
PPTX
Introduction To Software Engineering
Career guidance after bca
Presentation on bhagat singh
Bhagat Singh
Bhagat Singh
Graphical User Interface (GUI) - 1
Graphical User Interface (Gui)
Introduction To Software Engineering
Ad

Similar to An introduction to software engineering (20)

PDF
Introduction to Software Engineering
PPSX
Scope of software engineering
PPT
SF 9_Unit 1.ppt software engineering ppt
PPTX
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
PPT
Software Engineering Lec 1-introduction
PPT
SE-Lecture1.ppt
PPTX
Introduction Software engineering
PDF
Software engineering
PDF
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
PPT
Software Engineering
PPT
ch1_introduction.ppt
PPT
ch1_introduction (1).ppt
PPT
ch1_introduction (2).ppt
PPT
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
PPT
Se lect1 btech
PPTX
Java learn from basic part chapter_01 short notes to understand the java quic...
PDF
lecture 1.pdf
PPT
Unit 1 introduction tosoftengg_mba tech ii year
PPT
Unit 1 importance ofsoftengg_b.tech iii year
Introduction to Software Engineering
Scope of software engineering
SF 9_Unit 1.ppt software engineering ppt
SE-1.pptx abcdabcdabcdbabcsjbsdicbbhidssdb
Software Engineering Lec 1-introduction
SE-Lecture1.ppt
Introduction Software engineering
Software engineering
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Software Engineering
ch1_introduction.ppt
ch1_introduction (1).ppt
ch1_introduction (2).ppt
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
Se lect1 btech
Java learn from basic part chapter_01 short notes to understand the java quic...
lecture 1.pdf
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1 importance ofsoftengg_b.tech iii year

More from Carlos Gavidia-Calderon (9)

PDF
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
PPTX
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
PDF
Estructuras de control
PDF
Segmentación de imágenes mediante algoritmos ACO
PPTX
Paralelismo a nivel de Instrucciones
PDF
OpenUP como proceso de desarrollo
PDF
GWT - Una introducción
ODP
Spring Web Services
PPTX
Arquitectura y diseño de aplicaciones Java EE
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
Estructuras de control
Segmentación de imágenes mediante algoritmos ACO
Paralelismo a nivel de Instrucciones
OpenUP como proceso de desarrollo
GWT - Una introducción
Spring Web Services
Arquitectura y diseño de aplicaciones Java EE

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
A Presentation on Artificial Intelligence
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Modernizing your data center with Dell and AMD
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Monthly Chronicles - July 2025
Reach Out and Touch Someone: Haptics and Empathic Computing
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation theory and applications.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
A Presentation on Artificial Intelligence
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
20250228 LYD VKU AI Blended-Learning.pptx
Empathic Computing: Creating Shared Understanding
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Modernizing your data center with Dell and AMD
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...

An introduction to software engineering

  • 1. An Introduction to Software Engineering Carlos G. Gavidia (cgavidia@acm.org)
  • 2. Topics • Computer Science vs. Software Engineering. • Software Engineering and other Engineering disciplines. • Challenges of Software Engineering. • Software development processes.
  • 3. An Introduction to Software Engineering WHAT’S SOFTWARE ENGINEERING?
  • 4. Software: A definition “Software Systems are perhaps the most intricate and complex … of the things humanity makes.” -Fred Brooks
  • 5. Software engineering • Has progressed very far in a short time: – 50 years ago, most programming were done by Scientists trying to solve mathematical problems. – Today, we build monstrous systems used everywhere. • But, software industry is in crisis: – A software project overshoots its schedule by a half. – Three quarters of all large systems are operating failures.
  • 6. Computer Science: A definition “Computer science is a discipline that involves the understanding and design of computers and computational processes. In its most general form it is concerned with the understanding of information transfer and transformation. Particular interest is placed on making processes efficient and endowing them with some form of intelligence.” -CSAB
  • 7. Engineering: A definition “The systematic and regular application of scientific and mathematical knowledge to the design, construction, and operation of machines, systems, and so on of practical use and, hence, of economic value. Particular characteristic of engineers is that they take seriously their responsibility for correctness, suitability, and safety of the results of their efforts. In this regard they consider themselves to be responsible to their customer (including their employers where relevant), to the users of their machines and systems, and to the public at large.” -Robert Baber
  • 8. Software Engineering as Engineering • Practical use, economic value: – We need to determine the content and build the best product value. • Responsibility for correctness, suitability and safety: – The work you do could impact the safety, business and well being of the customer. • Regular application of scientific and mathematical knowledge: – Computer Science, psychology, economics and management
  • 9. Software Engineering: A Definition “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” -IEEE
  • 10. An Introduction to Software Engineering A PROCESS FOR MAKING SOFTWARE
  • 11. Software Development Practices • Requirements engineering • High-level design • Low-level design • Coding • Integration • • • • Code reviews Testing Maintenance Project management • Configuration management
  • 12. Software Development Practices • You will learn MANY software development practices. • You’ll find: – A practice is good for safety-critical software. – Another is better for small projects. • Engineering is about selecting the most appropriate method for a set of circumstances. • You can use the practices and build a software process with them.
  • 13. Software Development Process The process by which user needs are translated into a software product. The process involves translating user needs into software requirements, transforming the software requirements into design, implementing the design in code, testing the code, and sometimes installing and checking out the software for operational use. Note: these activities might overlap or be performed iteratively - IEEE
  • 14. Software process model Plan Driven The cost can be minimized by creating detailed plans and by constructing and inspecting architecture and design documents. Agile Time is spent planning and gathering requirements for small iterations throughout the entire lifecycle of the project.
  • 15. An Introduction to Software Engineering MAKING SOFTWARE IS HARD
  • 16. The programmer The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. -Frederick Brooks
  • 17. Software Engineering Challenges • Tractable Medium – The constraints of physical medium can serve to simplify alternatives. • Changing requirements – It is hard for customers to express what they want in a product. • Schedule Optimism – We are an optimistic crew. • Schedule Pressure – Every product is late before it’s even started
  • 18. Credits Based on:A (Partial) Introduction to Software Engineering Practices and Methods • By Laurie Williams • Available in: http://agile.csc.ncsu .edu/SEMaterials/C oursePack.pdf