software engineering - introduction and motivation (marcello thiry)

Post on 16-Apr-2017

1.672 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

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