An introduction to software engineering

Carlos Gavidia-Calderon
Carlos Gavidia-CalderonResearch Software Engineer
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
1 de 18

Recomendados

Introduction to software engineering por
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
1.3K visualizações60 slides
Need for Software Engineering por
Need for Software EngineeringNeed for Software Engineering
Need for Software EngineeringUpekha Vandebona
19.1K visualizações12 slides
Software Engineering por
Software EngineeringSoftware Engineering
Software EngineeringZahoorali Khan
5.2K visualizações79 slides
What is software engineering por
What is software engineeringWhat is software engineering
What is software engineeringJennifer Polack
10.1K visualizações20 slides
Slides chapters 6-7 por
Slides chapters 6-7Slides chapters 6-7
Slides chapters 6-7Priyanka Shetty
4.5K visualizações40 slides
Unit1 por
Unit1Unit1
Unit1anuragmbst
30.7K visualizações36 slides

Mais conteúdo relacionado

Mais procurados

Software System Engineering - Chapter 1 por
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
7K visualizações28 slides
Software Engineering - Basics por
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - BasicsPurvik Rana
1.9K visualizações12 slides
Software engineering por
Software engineering Software engineering
Software engineering MOHAMED RIYAZUDEEN
1.1K visualizações89 slides
SWE-401 - 1. Introduction to Software Engineering por
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
686 visualizações7 slides
Chapter 01 por
Chapter 01Chapter 01
Chapter 01ans ali raza
3.5K visualizações19 slides
Requirement and Specification por
Requirement and SpecificationRequirement and Specification
Requirement and Specificationsarojsaroza
1.5K visualizações16 slides

Mais procurados(20)

Software System Engineering - Chapter 1 por Fadhil Ismail
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
Fadhil Ismail7K visualizações
Software Engineering - Basics por Purvik Rana
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
Purvik Rana1.9K visualizações
Software engineering por MOHAMED RIYAZUDEEN
Software engineering Software engineering
Software engineering
MOHAMED RIYAZUDEEN1.1K visualizações
SWE-401 - 1. Introduction to Software Engineering por ghayour abbas
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
ghayour abbas686 visualizações
Chapter 01 por ans ali raza
Chapter 01Chapter 01
Chapter 01
ans ali raza3.5K visualizações
Requirement and Specification por sarojsaroza
Requirement and SpecificationRequirement and Specification
Requirement and Specification
sarojsaroza1.5K visualizações
INTRODUCTION TO SOFTWARE ENGINEERING por Prof Ansari
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Prof Ansari1.9K visualizações
INTRODUCTION TO SOFTWARE ENGINEERING por Preeti Mishra
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra1.9K visualizações
Software maintenance por NancyBeaulah_R
Software maintenanceSoftware maintenance
Software maintenance
NancyBeaulah_R716 visualizações
Software Evolution por Muhammad Asim
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim12.7K visualizações
Ch1-Software Engineering 9 por Ian Sommerville
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9
Ian Sommerville30.9K visualizações
Software process por Dr. Loganathan R
Software processSoftware process
Software process
Dr. Loganathan R12.1K visualizações
Software development process por university of mumbai
Software development processSoftware development process
Software development process
university of mumbai9.8K visualizações
Introduction to Software Engineering SE1 por koolkampus
Introduction to Software Engineering SE1Introduction to Software Engineering SE1
Introduction to Software Engineering SE1
koolkampus2.1K visualizações
Introduction to Software Engineering por Saqib Raza
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza38.1K visualizações
Classification Of Software por py7rjs
Classification Of SoftwareClassification Of Software
Classification Of Software
py7rjs29.4K visualizações
Introduction to Software Engineering por Zahoor Khan
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Zahoor Khan4K visualizações
Intro to software development por Hawkman Academy
Intro to software developmentIntro to software development
Intro to software development
Hawkman Academy9.9K visualizações

Destaque

Career guidance after bca por
Career guidance   after bcaCareer guidance   after bca
Career guidance after bcaJIGAR MAKHIJA
12.5K visualizações76 slides
Presentation on bhagat singh por
Presentation on bhagat singhPresentation on bhagat singh
Presentation on bhagat singhSarfaraj_alam
46.8K visualizações23 slides
Bhagat Singh por
Bhagat SinghBhagat Singh
Bhagat Singhismhistory
18.9K visualizações9 slides
Bhagat Singh por
Bhagat SinghBhagat Singh
Bhagat SinghRajdeep Singh
10.9K visualizações48 slides
Graphical User Interface (GUI) - 1 por
Graphical User Interface (GUI) - 1Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1PRN USM
6.3K visualizações51 slides
Graphical User Interface (Gui) por
Graphical User Interface (Gui)Graphical User Interface (Gui)
Graphical User Interface (Gui)Bilal Amjad
20K visualizações44 slides

Destaque(6)

Career guidance after bca por JIGAR MAKHIJA
Career guidance   after bcaCareer guidance   after bca
Career guidance after bca
JIGAR MAKHIJA12.5K visualizações
Presentation on bhagat singh por Sarfaraj_alam
Presentation on bhagat singhPresentation on bhagat singh
Presentation on bhagat singh
Sarfaraj_alam46.8K visualizações
Bhagat Singh por ismhistory
Bhagat SinghBhagat Singh
Bhagat Singh
ismhistory18.9K visualizações
Bhagat Singh por Rajdeep Singh
Bhagat SinghBhagat Singh
Bhagat Singh
Rajdeep Singh10.9K visualizações
Graphical User Interface (GUI) - 1 por PRN USM
Graphical User Interface (GUI) - 1Graphical User Interface (GUI) - 1
Graphical User Interface (GUI) - 1
PRN USM6.3K visualizações
Graphical User Interface (Gui) por Bilal Amjad
Graphical User Interface (Gui)Graphical User Interface (Gui)
Graphical User Interface (Gui)
Bilal Amjad20K visualizações

Similar a An introduction to software engineering

Introduction to Software Engineering por
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMd.Nazmul Islam
140 visualizações18 slides
Scope of software engineering por
Scope of software engineeringScope of software engineering
Scope of software engineeringMuhammad Naveed Zafar
16.8K visualizações35 slides
Software Engineering Lec 1-introduction por
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
20 visualizações47 slides
SE-Lecture1.ppt por
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.pptvishal choudhary
19 visualizações29 slides
Introduction Software engineering por
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineeringJennifer O. Contreras Coloma
871 visualizações52 slides
Software engineering por
Software engineeringSoftware engineering
Software engineeringnimmik4u
704 visualizações128 slides

Similar a An introduction to software engineering(20)

Introduction to Software Engineering por Md.Nazmul Islam
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Md.Nazmul Islam140 visualizações
Scope of software engineering por Muhammad Naveed Zafar
Scope of software engineeringScope of software engineering
Scope of software engineering
Muhammad Naveed Zafar16.8K visualizações
Software Engineering Lec 1-introduction por Taymoor Nazmy
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
Taymoor Nazmy20 visualizações
SE-Lecture1.ppt por vishal choudhary
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
vishal choudhary19 visualizações
Software engineering por nimmik4u
Software engineeringSoftware engineering
Software engineering
nimmik4u704 visualizações
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf por Jayanthi Kannan MK
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK14 visualizações
SE por adeel adeel
SESE
SE
adeel adeel42 visualizações
ch1_introduction (1).ppt por AleksandraArsic6
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
AleksandraArsic68 visualizações
ch1_introduction (2).ppt por AleksandraArsic6
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
AleksandraArsic63 visualizações
Software Engineering por MrsRBoomadeviIT
Software EngineeringSoftware Engineering
Software Engineering
MrsRBoomadeviIT49 visualizações
Se lect1 btech por IIITA
Se lect1 btechSe lect1 btech
Se lect1 btech
IIITA607 visualizações
Unit 1 introduction tosoftengg_mba tech ii year por Preeti Mishra
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra635 visualizações
Unit 1 importance ofsoftengg_b.tech iii year por Preeti Mishra
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra1.1K visualizações
[2015/2016] Software systems engineering PRINCIPLES por Ivano Malavolta
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta1.3K visualizações
Week1.pptx por MarriamNawaz
Week1.pptxWeek1.pptx
Week1.pptx
MarriamNawaz6 visualizações
Lecture 3 software_engineering por moduledesign
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
moduledesign1.1K visualizações

Mais de Carlos Gavidia-Calderon

What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer... por
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...Carlos Gavidia-Calderon
255 visualizações14 slides
Game-theoretic Analysis of Development Practices: Challenges and Opportunities por
Game-theoretic Analysis of Development Practices: Challenges and OpportunitiesGame-theoretic Analysis of Development Practices: Challenges and Opportunities
Game-theoretic Analysis of Development Practices: Challenges and OpportunitiesCarlos Gavidia-Calderon
322 visualizações17 slides
Estructuras de control por
Estructuras de controlEstructuras de control
Estructuras de controlCarlos Gavidia-Calderon
7.9K visualizações14 slides
Segmentación de imágenes mediante algoritmos ACO por
Segmentación de imágenes mediante algoritmos ACOSegmentación de imágenes mediante algoritmos ACO
Segmentación de imágenes mediante algoritmos ACOCarlos Gavidia-Calderon
666 visualizações9 slides
Paralelismo a nivel de Instrucciones por
Paralelismo a nivel de InstruccionesParalelismo a nivel de Instrucciones
Paralelismo a nivel de InstruccionesCarlos Gavidia-Calderon
7.9K visualizações24 slides
OpenUP como proceso de desarrollo por
OpenUP como proceso de desarrolloOpenUP como proceso de desarrollo
OpenUP como proceso de desarrolloCarlos Gavidia-Calderon
2.1K visualizações21 slides

Mais de Carlos Gavidia-Calderon(9)

What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer... por Carlos Gavidia-Calderon
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
What Do You Want From Me? Adapting Systems to the Uncertainty of Human Prefer...
Carlos Gavidia-Calderon255 visualizações
Game-theoretic Analysis of Development Practices: Challenges and Opportunities por Carlos Gavidia-Calderon
Game-theoretic Analysis of Development Practices: Challenges and OpportunitiesGame-theoretic Analysis of Development Practices: Challenges and Opportunities
Game-theoretic Analysis of Development Practices: Challenges and Opportunities
Carlos Gavidia-Calderon322 visualizações
Segmentación de imágenes mediante algoritmos ACO por Carlos Gavidia-Calderon
Segmentación de imágenes mediante algoritmos ACOSegmentación de imágenes mediante algoritmos ACO
Segmentación de imágenes mediante algoritmos ACO
Carlos Gavidia-Calderon666 visualizações
Paralelismo a nivel de Instrucciones por Carlos Gavidia-Calderon
Paralelismo a nivel de InstruccionesParalelismo a nivel de Instrucciones
Paralelismo a nivel de Instrucciones
Carlos Gavidia-Calderon7.9K visualizações
OpenUP como proceso de desarrollo por Carlos Gavidia-Calderon
OpenUP como proceso de desarrolloOpenUP como proceso de desarrollo
OpenUP como proceso de desarrollo
Carlos Gavidia-Calderon2.1K visualizações
Arquitectura y diseño de aplicaciones Java EE por Carlos Gavidia-Calderon
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
Carlos Gavidia-Calderon39.7K visualizações

Último

The Research Portal of Catalonia: Growing more (information) & more (services) por
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)CSUC - Consorci de Serveis Universitaris de Catalunya
66 visualizações25 slides
Future of Learning - Khoong Chan Meng por
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan MengNUS-ISS
31 visualizações7 slides
JCon Live 2023 - Lice coding some integration problems por
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problemsBernd Ruecker
67 visualizações85 slides
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure por
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI InfrastructureCXL Forum
125 visualizações16 slides
"Fast Start to Building on AWS", Igor Ivaniuk por
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor IvaniukFwdays
36 visualizações76 slides
Data-centric AI and the convergence of data and model engineering: opportunit... por
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...Paolo Missier
29 visualizações40 slides

Último(20)

Future of Learning - Khoong Chan Meng por NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS31 visualizações
JCon Live 2023 - Lice coding some integration problems por Bernd Ruecker
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
Bernd Ruecker67 visualizações
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure por CXL Forum
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum125 visualizações
"Fast Start to Building on AWS", Igor Ivaniuk por Fwdays
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor Ivaniuk
Fwdays36 visualizações
Data-centric AI and the convergence of data and model engineering: opportunit... por Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 visualizações
Business Analyst Series 2023 - Week 3 Session 5 por DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 visualizações
Tunable Laser (1).pptx por Hajira Mahmood
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptx
Hajira Mahmood21 visualizações
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa... por The Digital Insurer
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
The Digital Insurer28 visualizações
Microchip: CXL Use Cases and Enabling Ecosystem por CXL Forum
Microchip: CXL Use Cases and Enabling EcosystemMicrochip: CXL Use Cases and Enabling Ecosystem
Microchip: CXL Use Cases and Enabling Ecosystem
CXL Forum129 visualizações
AMD: 4th Generation EPYC CXL Demo por CXL Forum
AMD: 4th Generation EPYC CXL DemoAMD: 4th Generation EPYC CXL Demo
AMD: 4th Generation EPYC CXL Demo
CXL Forum126 visualizações
PharoJS - Zürich Smalltalk Group Meetup November 2023 por Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 visualizações
Five Things You SHOULD Know About Postman por Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman25 visualizações
[2023] Putting the R! in R&D.pdf por Eleanor McHugh
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh38 visualizações
Java Platform Approach 1.0 - Picnic Meetup por Rick Ossendrijver
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver25 visualizações
Future of Learning - Yap Aye Wee.pdf por NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 visualizações
TE Connectivity: Card Edge Interconnects por CXL Forum
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge Interconnects
CXL Forum96 visualizações
MemVerge: Memory Viewer Software por CXL Forum
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer Software
CXL Forum118 visualizações
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV por Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 visualizações
Web Dev - 1 PPT.pdf por gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet52 visualizações

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