software engineering - introduction and motivation (marcello thiry)
Post on 16-Apr-2017
1.672 Views
Preview:
TRANSCRIPT
marcello.thiry@gmail.comIntroduction and motivation
marcello.thiry@gmail.com
What are you
doing here?
marcello.thiry@gmail.comhttp://c4.quickcachr.fotos.sapo.pt/i/o51010754/6042055_Jtk8U.jpeg
Should I know
the answer!?
marcello.thiry@gmail.com
It says here
we will learn
about Software
Engineering!!
http://i0.wp.com/www.nerdglaze.com/wp-
content/uploads/2013/08/nerdy-dude.jpg?resize=450%2C305
marcello.thiry@gmail.com http://ideas.scup.com/pt/files/2013/06/conte%C3%BAdo.jpg
1. Engineering
2. Software Crisis
3. Software relevance
4. Software Engineering
5. Nature of software
6. Quality and Software Quality
7. Software types and domains
Contents.
marcello.thiry@gmail.com
create, design, construct,
build, devise, invent, ...
Engineer. (verb)
https://awordfromafriend.files.wordpress.com/2014/10/blocktower.jpg?w=500
marcello.thiry@gmail.com
create, design, construct,
build, devise, invent, ...
Engineer. (verb)
marcello.thiry@gmail.com
Engineering.
The application of scientific
or empirical methods
marcello.thiry@gmail.com
The application of scientific or
empirical methods to create,
improve and implement
Engineering.
marcello.thiry@gmail.com
The application of scientific or
empirical methods to create,
improve and implement utilities
Engineering.
marcello.thiry@gmail.com
An utility must
perform an specific
function or goal
marcello.thiry@gmail.com
How to
develop something
useful?
marcello.thiry@gmail.com
Study the problem
Plan a solution
Verify economic and
technical feasibility
Coordinate the construction
marcello.thiry@gmail.com
But what is
Software
anyway?
marcello.thiry@gmail.com
John Tukey (1915-2000)https://en.wikipedia.org/?title=John_Tukey
“In 1958, John Tukey, the world-renowned statistician, coined the term software”
(SWEBOK, 2014)
marcello.thiry@gmail.com
Collection of computer programs,
procedures, and possibly associate
documentation and data pertaining
to the operation of a computer
system
Software.
(IEEE Std 610.12.1990)
marcello.thiry@gmail.com
Documentation?!
Yeah, documentation!
But we will talk more
about it during our course
marcello.thiry@gmail.com
Just a
reminder:
The difficult part is
to produce USEFUL
documentation!!!
marcello.thiry@gmail.com
Thence,
Software
Engineering...
marcello.thiry@gmail.com
Software Engineering.
The application of scientific or
empirical methods to create,
improve and implement software
marcello.thiry@gmail.com
“The term software engineering wasused in the title ofa NATO conference held in Germany in 1968”
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/
marcello.thiry@gmail.com
The origins of
Software
Engineering
marcello.thiry@gmail.com
Back in the day...
Popular Science, Jan 1965, 107
Business Week,
Nov 5, 1966, 127.
http://thecomputerboys.com/?tag=crisishttp://thecomputerboys.com/?tag=crisis
marcello.thiry@gmail.com
“Software Crisis”
or
“Software Gap”
Late 1960s, early 1970s...
Late 1960s, early 1970s...
•Many projects were failing or had been
abandoned
• Cost and budget overruns
•Software not reliable and
difficult to maintain
•Difficult to meet the user
requirements
The crisis...
https://kathleenkerridge.files.wordpress.com/2015/02/depre
ssion-week-image-300x300.jpg?w=300
Late 1960s, early 1970s...
•More powerful computers and
programming languages
•Demand growth
•More complex software
•More people involved
The crisis...
https://pamsblog666.files.wordpress.com/2011/06/computer20studies.jpg
Late 1960s, early 1970s...
•Improve professionals’ skills
•Methodologies
• Communication with users
• Team work
The crisis...
http://eolocomunicacion.com/wp-content/uploads/2015/05/fusionyadquisiciondempresas-e1431067600969.png
marcello.thiry@gmail.com
And today?
marcello.thiry@gmail.com
Software is everywhere...
marcello.thiry@gmail.com
The avionics system in the F-22 Raptor
consists of about 1.7 Million LOC
The Boeing’s 787 Dreamliner contains about 6.5
million LOC
A premium-class automobile contains close to
100 million LOC
http://spectrum.ieee.org/transportation/systems/this-car-runs-on-code
LOC = lines of software code
http://3.bp.blogspot.com/--
ae42w82PVo/VEU2EOJmQXI/AAAAAAAABoM/x5vv
azR_BQM/s1600/homer-screaming.gif
marcello.thiry@gmail.com
Ubiquitous or pervasive Computing
Most people don’t even realize
how computing is part of their
lives today
And what is the
impact of this
on software?
http://betanews.com/wp-
content/uploads/2014/09/Internet-of-things.jpg
marcello.thiry@gmail.com
Do you realize the relevance of
software nowadays?
And what is your role on this?
https://portalbuzzuserfiles.s3.amazonaws.com/ou-
15436/userfiles/images/pointing%20finger.jpg
marcello.thiry@gmail.com
Let’s define
software
engineering
properly!
marcello.thiry@gmail.com
(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).
(IEEE Std 610.12.1990)
marcello.thiry@gmail.com
(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).
(IEEE Std 610.12.1990)
marcello.thiry@gmail.com
(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).
(IEEE Std 610.12.1990)
marcello.thiry@gmail.com
(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).
(IEEE Std 610.12.1990)
marcello.thiry@gmail.com
(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).
(IEEE Std 610.12.1990)
marcello.thiry@gmail.com
marcello.thiry@gmail.com
http://mrbakersgrade6.weebly.com/uploads/
2/4/7/6/24767728/6979844.jpg?339
marcello.thiry@gmail.com
Systematic
Principles
Discipline
Knowledge
Maintenance
OperationDevelopment
Reliable
Application
Technique
Method
Approach
Quality
Software
Procedures
Methodology
Team
Scientific
PracticalDesign
Tool
Productivity
marcello.thiry@gmail.com
And if you have to explain the
nature of software right now?
This was a
question!
marcello.thiry@gmail.com
I need to
understand the
nature of
software…
marcello.thiry@gmail.com
Frederick Phillips Brooks, Jr.(1931-)
https://en.wikipedia.org/wiki/Fred_Brooks
“In 1986, Fred Brooks wrote the famous paper No Silver Bullet – Essence and Accident of Software Engineering”http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf
American computer architect, softwareengineer, and computer scientist. He isalso the author of the seminal book“The Mythical Man-Month (1975)”.
marcello.thiry@gmail.com
http://www.polyvore.com/cgi/img-
thing?.out=jpg&size=l&tid=32131103
“… building software will always be hard. There is no silver bullet.”
(Brooks, 1986)
There is no single technique or technology, which
by itself can improve some aspect of software
development 10x in 10 years…
marcello.thiry@gmail.com
Why?
marcello.thiry@gmail.com
Essence
Difficulties
in Software
Development
Accidents
Inherent in the nature of the software
mapping specification to software and
verifying that the design properly meets
business needs
Related to the production of software
and not inherent
Brooks, 1986
Most methods and techniques
attack the accidents
marcello.thiry@gmail.com
Just a
reminder:
Accidental occurring by chance
Incidental
Brooks “refired” his paper 10 years
later in the book
The Mythical Man-Month, 20th
Anniversary Edition, 1995
problems which engineers create and can fix
Related to the implementation process
marcello.thiry@gmail.com
Let’s start with
the Essence…
marcello.thiry@gmail.com
marcello.thiry@gmail.com
Simple huh!?
http://www.ideo.com/work/atm-interface
marcello.thiry@gmail.com
No two parts are alike
If they are, we make them into subroutines
In contrast to elements used in other domains
Huge number of states
Impossible to
enumerate all
marcello.thiry@gmail.com
There is no way to abstract away
the complexity because it is
essential
Complex domains
Aviation
Telecommunications
Banking
Health sector
…
We still need to
model and implement
their complexity
marcello.thiry@gmail.com
Technical consequences
Communication difficulties
Product flaws, cost overruns, schedule delays
Difficulty in enumerating, understanding and
anticipating all possible states
Unreliability, security trapdoors
Difficulty in maintaining
Introduction of defects, hard to understand, hard to use
marcello.thiry@gmail.com
Management consequences
Difficult project
overview
Poor knowledge
management
personnel
turnover
is a huge
problem
marcello.thiry@gmail.com
marcello.thiry@gmail.com
Software must conform to
arbitrary limitations
Imposed by human institutions and
systems regulations and rules
Subject to arbitrary
changes
Difficult
to plan
Can occur late in
the development
marcello.thiry@gmail.com
Software has to conform
to other existing systems
Software has to conform to its
environment
http://www.ktckids.com/images/puzzlePieces.png
marcello.thiry@gmail.com
marcello.thiry@gmail.com
Continuous change of
users’ needs
Illusion of
easy malleability
http://pipllp.com/wp-content/uploads/2014/09/evolution-of-cars_CKO.jpg
More pressure
to change the
software
marcello.thiry@gmail.com
Where is the software?
http://img.gfx.no/806/806035/original.628x353.jpg
Intangibility
No geometric
representation
marcello.thiry@gmail.com
We need to use different representations
to model different aspects of the software
In UML 2.2
there are 14
types of
diagrams
http://i.stack.imgur.com/8tmN9.jpg
marcello.thiry@gmail.com
How to attack on
the essence…
marcello.thiry@gmail.com
Requirements refinement
Incremental development
Grow, not build it
Great Designers
rapid prototyping
Identify, develop and keep them
Reuse
Buy, don’t build
marcello.thiry@gmail.com
And about
the Accident…
marcello.thiry@gmail.com
Some breakthroughs helped to
reduce accidental difficulties…
High-level languages
Time-sharing
Programming environments, tools
Object-oriented development
Programming verification
…
marcello.thiry@gmail.com
http://www.infoq.com/articles/No-Silver-Bullet-Summary
Interesting reading…
No Silver Bullet Reloaded Retrospective OOPSLA Panel Summary
http://cliparts.co/cliparts/dc9/6kL/dc96kLRc7.png
marcello.thiry@gmail.com
But wait,
there’s more…
marcello.thiry@gmail.com
marcello.thiry@gmail.com
Does the software
wear out?
http://chrishowardbooks.com/img/easter-egg-graphics/car.png
marcello.thiry@gmail.com
Of course not!
But...
marcello.thiry@gmail.com
It was
working
before...
... installing
the damn
update!
https://www.careeraddict.com/Surprised_Businessman.jpg
marcello.thiry@gmail.com
Software DETERIORATES
when...
we introduce a new defect when we
change it
there were environmental changes
that could not be foreseen by the
designer
marcello.thiry@gmail.com Pressman, 2015
marcello.thiry@gmail.com
Of course, we are
considering that the
software first release
has not already been
delivered “rotten”!
http://spc.fotolog.com/photo/44/42/36/deselingue/1200006994_f.jpg
marcello.thiry@gmail.com
And what is your
role on this?
marcello.thiry@gmail.com
We should be
concerned about
the quality of
we deliver!
http://www.aw3i.com/images/posts/sid_zen_dressdown.jpg
marcello.thiry@gmail.com
Quality?
https://pbs.twimg.com/profile_images/434052607297191936/ZRHhp8Fx.jpeg
marcello.thiry@gmail.com
xConsider this two products..
http://hobby-armada.com/images/item/tamiya/sportscar/292.jpg
http://cdn.inaxiom.net/web/wp-content/uploads/2011/08/Ford-Ka-2011-06.jpg
Which one
has a better
quality?
http://www.tvmost.com.hk/most/uploads/images/2015/Article/2015.07/2015.07.23/pigteammate/005.jpg
marcello.thiry@gmail.com
Which are the expected
features for each one?
Quality is the “degree to
which a set of inherent
characteristics fulfils
requirements”
ISO 9000, 2015
marcello.thiry@gmail.com
Problems
with quality
The sport car has not
reached the required horse
power
The compact car has been
consuming more fuel than
expected
marcello.thiry@gmail.com
Grade is the “category or rank
given to different quality
requirements for products,
processes or systems having the
same functional use”
Different technical characteristics
High grade brand, first class, ...
low grade brand, second class, ...
ISO 9000, 2015
marcello.thiry@gmail.com
Got it!?
http://www.clickgratis.com.br/fotos-imagens/saca-
rolha/aHR0cDovL2lzaG9wLnM4LmNvbS5ici9wcm9kdXRvcy8
wMS8wMS9pdGVtLzI4OC82LzI4ODY2N18zR0cuanBn.jpg
http://www.clickgratis.com.br/fotos-imagens/saca-
rolha/aHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9lL
2U1L0tvcmtlbnppZWhlcl8wMV9LTUouanBnLzIwMHB4LUtvcmtlbnppZWhlcl8wMV9LTUouanBn.jpg
marcello.thiry@gmail.com
marcello.thiry@gmail.com
Difficult to define
Difficult to measure
Different perceptions
http://www.bms.co.in/wp-content/uploads/2014/11/Customer-Decision.jpg
http://businessanalytics.pt/wp-
content/uploads/2013/01/Lupa-
300x268.jpg
marcello.thiry@gmail.com
And Software
quality?
marcello.thiry@gmail.com
http://images.clipartpanda.com/happy-computer-user-happy-computeruser.png
http://images.clipartpanda.com/stressor-clipart-computer-stress.jpg
marcello.thiry@gmail.com
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
marcello.thiry@gmail.com
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
marcello.thiry@gmail.com
Product?
https://pixabay.com/pt/caixa-papel%C3%A3o-
pacote-parcela-brown-158523/
marcello.thiry@gmail.com
Artifact that is produced, is quantifiable,
and can be either an end item in itself or a
component item.
Additional words for products are material
and goods.
(PMBOK, 2013) also used by (ISO/IEC 25000, 2014)
Product.
marcello.thiry@gmail.com
PMBOK uses different terms for PRODUCT
(tangible) e SERVICE (intangible)
A product can be:
a component item
an improvement of other item
a final item
PMBOK - Um Guia do Conhecimento em Gerenciamento de Projetos
marcello.thiry@gmail.com
Software Product
Ready to be released
to users
It needs to be verified
and validated
marcello.thiry@gmail.com
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
marcello.thiry@gmail.com
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
marcello.thiry@gmail.com
Software
specification
http://blog.axen.pro/wp-content/uploads/2013/06/Writing-Quality-Software-Requirements.png
marcello.thiry@gmail.com
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
marcello.thiry@gmail.com
But has
everything
been written?
What are
the users
expectations?http://www.handymanstartup.com/wp-
content/uploads/2013/02/IMG_Customer_rating_buttons.jpg
marcello.thiry@gmail.com
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
marcello.thiry@gmail.com
Does the
USE really
matters?
https://d3ui957tjb5bqd.cloudfront.net/images/screenshots/products/7/79/79359/hammer-o.jpg?1393432661
marcello.thiry@gmail.com
Ok, I got it!
But all software
are the same?
marcello.thiry@gmail.com
Can we classify
software products?
http://blog.globalknowledge.com/wp-
content/uploads/2011/08/squarehole95615108.jpg
marcello.thiry@gmail.com
marcello.thiry@gmail.com
marcello.thiry@gmail.com
A software product can be:
Commercial off-the-shelf - COTS
http://tynmedia.com/tynmag/wp-content/uploads/sites/3/2015/07/comercio_electronico.jpg
marcello.thiry@gmail.com
Defined by a market-driven need,
commercially available, and whose fitness
for use has been demonstrated by a broad
spectrum of commercial users
(ISO/IEC 25030, 2007)
COTS (commercial off-the-shelf).
marcello.thiry@gmail.com
Commercial off-the-shelf - COTS
Fully developed - FD
http://www.spd-haimhausen.de/wp-content/uploads/2010/02/bausteine.jpg
A software product can be:
marcello.thiry@gmail.com
Developed for a specific application
from a user requirements specification
FD (fully developed) or
Custom software development.
(ISO/IEC 25030, 2007)
marcello.thiry@gmail.com
Commercial off-the-shelf - COTS
Fully developed - FD
Modified off-the-
shelf - MOTS
http://www.sundlep.com/wp-content/uploads/2015/02/web12.jpg
A software product can be:
marcello.thiry@gmail.com
Similar to COTS, but it allows some
degree of customization (modification
of its features) from users specific
needs
MOTS (modified off-the-shelf).
marcello.thiry@gmail.com
Pressman considers 7
broad categories
Challenges!
Pressman, 2015
marcello.thiry@gmail.com
System software
Application software
Engineering/scientific software
Embedded software
Product-line software
Web/mobile applications
Artificial intelligence software
(Pressman, 2015)
marcello.thiry@gmail.com
And more...
http://betanews.com/wp-content/uploads/2014/09/Internet-of-things.jpg
http://1.bp.blogspot.com/-7WLjdMquht4/VAANOVyBZSI/AAAAAAAAEZ8/JDIrrYWeJyc/s1600/Cloud-computing-concept_nobg.png
marcello.thiry@gmail.com
And what is your
role on this?
marcello.thiry@gmail.com
http://mrbakersgrade6.weebly.com/uploads/
2/4/7/6/24767728/6979844.jpg?339
References.
(Brooks, 1986). No Silver Bullet: Essence and Accident in Software Engineering. Proceedings of the
IFIP Tenth World Computing Conference: 1069–1076.
(Brooks, 1995). The Mythical Man-Month. Anniversary Edition. Addison Wesley.
(IEEE Std 610.12.1990). IEEE Standard Glossary of Software Engineering Terminology.
(ISO 9000, 2015). Quality management systems — Fundamentals and vocabulary.
(ISO/IEC 25000, 2014). Systems and software engineering — Systems and software Quality Requirements
and Evaluation (SQuaRE) — Guide to SQuaRE.
(ISO/IEC 25030, 2007). Software engineering — Software product Quality Requirements and Evaluation
(SQuaRE) — Quality requirements.
(PMBOK, 2013). A Guide to the Project Management Body of Knowledge (PMBOK® Guide). 5th ed. Project
Management Institute (PMI).
(Pressman, 2015). Software Engineering: A Practitioner's Approach. 8th ed. McGraw-Hill Education.
(SWEBOK, 2014). SWEBOK - Guide to the Software Engineering Body of Knowledge. Version 3.0. IEEE.
top related