Software Engineering: Chapter 1: Key Concepts
Software Engineering: Chapter 1: Key Concepts
ENGINEERING
Chapter 1: Key Concepts
MOTIVATION…
Programming is fun, but developing quality software is hard. In between the
nice ideas, the requirements or the "vision," and a working software product,
there is much more than programming [LARMAN]
What is software
engineering?
FIRST DEFINITION…
Software engineering is the usage of proven practices and techniques derived
from systems engineering adapting them to address the challenges of software
development. [SCHMIDTH]
SOMMERVILLE SAYS…
Project
Development
Software Management
Design
• Programming
AND SOFTWARE DEVELOPMENT
IS…
NOW…
Let’s see some history, how did we get where we are now?
ENGINEERING?
1700’s Statics
1700’s Strength of materials
1775 Hydraulics
Science
Production ENGINEERING!
1750 Full analysis of materials
Commerce 1850 Structure analysis
Craft
Romans
(1st century)
ENGINEERING?
Science
Emerging research!
Production ENGINEERING!
Software development Here we are…
methods (SDM) Commerce
1990: Adoption of SDM’s
Craft
Why not… a timeline?
TIMELINE I
1940: First
digital 1961:
computers Modularity
1981:
Software 1990: Rise of 2001: Agile
Crisis internet Manifesto
1984: 2000:
Software Lightweight
engineering methodologie
institute s
TIMELINE II
2003: 2011:
2000: Android Changes of
Google’s Inc. Is 2004: Web architectur
Revolution launched 2.0 e (Cloud)
Are there bugs?, will any optimization be needed?, what if my connection constantly falls?, How can I make this thing to fail?
DEPLOYMENT
• It’s the process of putting the final
application in the user’s hands.
• Tasks:
• Environments
• Hardware resources
• Server configuration
• Cloud configuration
• Software dependencies
MAINTENANCE
Generic Custom
4 Key Elements for Software
https://disqus.com/home/discussion/bunnyincblog/colomb
ia_doesnt_have_any_software_engineers_really_not_even_o
ne/
Nice fix!