Upload
marcello-thiry
View
1.669
Download
2
Embed Size (px)
Citation preview
[email protected] and motivation
[email protected]://c4.quickcachr.fotos.sapo.pt/i/o51010754/6042055_Jtk8U.jpeg
Should I know
the answer!?
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
[email protected] 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.
create, design, construct,
build, devise, invent, ...
Engineer. (verb)
https://awordfromafriend.files.wordpress.com/2014/10/blocktower.jpg?w=500
The application of scientific or
empirical methods to create,
improve and implement
Engineering.
The application of scientific or
empirical methods to create,
improve and implement utilities
Engineering.
Study the problem
Plan a solution
Verify economic and
technical feasibility
Coordinate the construction
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)
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)
Documentation?!
Yeah, documentation!
But we will talk more
about it during our course
Software Engineering.
The application of scientific or
empirical methods to create,
improve and implement software
“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/
Back in the day...
Popular Science, Jan 1965, 107
Business Week,
Nov 5, 1966, 127.
http://thecomputerboys.com/?tag=crisishttp://thecomputerboys.com/?tag=crisis
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
And today?
Software is everywhere...
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
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
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
(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)
(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)
(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)
(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)
(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)
Systematic
Principles
Discipline
Knowledge
Maintenance
OperationDevelopment
Reliable
Application
Technique
Method
Approach
Quality
Software
Procedures
Methodology
Team
Scientific
PracticalDesign
Tool
Productivity
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)”.
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…
Why?
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
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
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
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
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
Management consequences
Difficult project
overview
Poor knowledge
management
personnel
turnover
is a huge
problem
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
Software has to conform
to other existing systems
Software has to conform to its
environment
http://www.ktckids.com/images/puzzlePieces.png
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
Where is the software?
http://img.gfx.no/806/806035/original.628x353.jpg
Intangibility
No geometric
representation
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
Requirements refinement
Incremental development
Grow, not build it
Great Designers
rapid prototyping
Identify, develop and keep them
Reuse
Buy, don’t build
Some breakthroughs helped to
reduce accidental difficulties…
High-level languages
Time-sharing
Programming environments, tools
Object-oriented development
Programming verification
…
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
Does the software
wear out?
http://chrishowardbooks.com/img/easter-egg-graphics/car.png
It was
working
before...
... installing
the damn
update!
https://www.careeraddict.com/Surprised_Businessman.jpg
Software DETERIORATES
when...
we introduce a new defect when we
change it
there were environmental changes
that could not be foreseen by the
designer
[email protected] Pressman, 2015
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
We should be
concerned about
the quality of
we deliver!
http://www.aw3i.com/images/posts/sid_zen_dressdown.jpg
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
Which are the expected
features for each one?
Quality is the “degree to
which a set of inherent
characteristics fulfils
requirements”
ISO 9000, 2015
Problems
with quality
The sport car has not
reached the required horse
power
The compact car has been
consuming more fuel than
expected
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
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
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
http://images.clipartpanda.com/happy-computer-user-happy-computeruser.png
http://images.clipartpanda.com/stressor-clipart-computer-stress.jpg
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
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.
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
Software Product
Ready to be released
to users
It needs to be verified
and validated
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
Software
specification
http://blog.axen.pro/wp-content/uploads/2013/06/Writing-Quality-Software-Requirements.png
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
But has
everything
been written?
What are
the users
expectations?http://www.handymanstartup.com/wp-
content/uploads/2013/02/IMG_Customer_rating_buttons.jpg
Capability of software product to satisfy
stated and implied needs when used under
specified conditions
(ISO/IEC 25000, 2014)
Software Quality.
Does the
USE really
matters?
https://d3ui957tjb5bqd.cloudfront.net/images/screenshots/products/7/79/79359/hammer-o.jpg?1393432661
Can we classify
software products?
http://blog.globalknowledge.com/wp-
content/uploads/2011/08/squarehole95615108.jpg
A software product can be:
Commercial off-the-shelf - COTS
http://tynmedia.com/tynmag/wp-content/uploads/sites/3/2015/07/comercio_electronico.jpg
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).
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:
Developed for a specific application
from a user requirements specification
FD (fully developed) or
Custom software development.
(ISO/IEC 25030, 2007)
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:
Similar to COTS, but it allows some
degree of customization (modification
of its features) from users specific
needs
MOTS (modified off-the-shelf).
System software
Application software
Engineering/scientific software
Embedded software
Product-line software
Web/mobile applications
Artificial intelligence software
(Pressman, 2015)
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
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.