118
[email protected] Introdução e motivação

Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Embed Size (px)

Citation preview

Page 1: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]ção e motivação

Page 2: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

O que você está

fazendo aqui?

Page 3: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

http://c4.quickcachr.fotos.sapo.pt/i/o51010754/6042055_Jtk8U.jpeg

Eu deveria ter

a resposta!?

Page 4: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Aqui diz que iremos

aprender Engenharia

de Software!!

http://i0.wp.com/www.nerdglaze.com/wp-

content/uploads/2013/08/nerdy-dude.jpg?resize=450%2C305

Page 5: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected] http://ideas.scup.com/pt/files/2013/06/conte%C3%BAdo.jpg

1. Engenharia

2. Crise do Software

3. Relevância do software

4. Engenharia de Software

5. Software e suas características

6. Qualidade e Qualidade de Software

7. Tipos e domínios de software

Conteúdo.

Page 6: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

criar, fabricar, construir,

fazer, compor, inventar, ...

Engenhar.

https://awordfromafriend.files.wordpress.com/2014/10/blocktower.jpg?w=500

Page 7: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

criar, fabricar, construir,

fazer, compor, inventar, ...

Engenhar.

Page 8: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Engenharia.

Aplicar métodos científicos ou

empíricos

Page 9: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Engenharia.

Aplicar métodos científicos ou

empíricos para criar, melhorar e

implementar

Page 10: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Engenharia.

Aplicar métodos científicos ou

empíricos para criar, melhorar e

implementar utilidades

Page 11: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Uma utilidade deve

realizar uma determinada

função ou objetivo

Page 12: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Como

desenvolver

algo útil?

Page 13: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Estudar o problema

Planejar uma solução

Verificar a viabilidade

econômica e técnica

Coordenar a construção

Page 14: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Mas o que é

Software?

Page 15: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

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)

Page 16: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Conjunto de programas de

computador, procedimentos e possível

documentação associada, e dados

relacionados à operação de um

sistema de computador

Software.

(IEEE Std 610.12.1990)

Page 17: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Documentação?!

Sim, documentação!

Mas, falaremos mais sobre

isso durante a disciplina

Page 18: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Apenas um

lembrete:

A parte difícil

é produzir

documentação útil!!!

Page 19: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Logo,

Engenharia de

Software...

Page 20: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Engenharia de Software.

Aplicar métodos científicos ou

empíricos para criar, melhorar e

implementar software

Page 21: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

“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/

Page 22: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Como surgiu a

Engenharia de

Software?

Page 23: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Back in the day...

Popular Science, Jan 1965, 107

Business Week,

Nov 5, 1966, 127.

http://thecomputerboys.com/?tag=crisishttp://thecomputerboys.com/?tag=crisis

Page 24: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

“Software Crisis”

or

“Software Gap”

Late 1960s, early 1970s...

Page 25: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Late 1960s, early 1970s...

•Vários projetos de software estavam

falhando ou sendo abandonados

•Atrasos

•Acima do orçamento

•Software não confiável e de difícil

manutenção

•Dificuldade em atender aos

requisitos dos clientes

A crise...

https://kathleenkerridge.files.wordpress.com/2015/02/depre

ssion-week-image-300x300.jpg?w=300

Page 26: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Late 1960s, early 1970s...

•Computadores mais potentes e linguagens

de programação mais robustas

• Crescimento da demanda

•Software mais complexos

•Mais pessoas envolvidas

A crise...

https://pamsblog666.files.wordpress.com/2011/06/computer20studies.jpg

Page 27: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Late 1960s, early 1970s...

•Formação de profissionais

•Metodologias

• Comunicação com clientes

• Trabalho em equipe

A crise...

http://eolocomunicacion.com/wp-content/uploads/2015/05/fusionyadquisiciondempresas-e1431067600969.png

Page 28: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

E hoje?

Page 29: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Software is everywhere...

Page 30: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

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

Page 31: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Computação ubíqua ou pervasiva?

As pessoas nem percebem mais como

a computação faz parte do dia a dia

delas

E qual o impacto

disso no software?

http://betanews.com/wp-

content/uploads/2014/09/Internet-of-things.jpg

Page 32: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Você percebe a relevância do

software nos dias de hoje?

E qual é o seu papel nisso tudo?

https://portalbuzzuserfiles.s3.amazonaws.com/ou-

15436/userfiles/images/pointing%20finger.jpg

Page 33: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Vamos definir

Engenharia de

Software

formalmente

Page 34: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

(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)

Page 35: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

(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)

Page 36: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

(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)

Page 37: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

(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)

Page 38: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

(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)

Page 40: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

http://mrbakersgrade6.weebly.com/uploads/

2/4/7/6/24767728/6979844.jpg?339

Page 41: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Systematic

Principles

Discipline

Knowledge

Maintenance

OperationDevelopment

Reliable

Application

Technique

Method

Approach

Quality

Software

Procedures

Methodology

Team

Scientific

PracticalDesign

Tool

Productivity

Page 42: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

E se você tivesse que explicar

a natureza do software agora?

Isso era

uma pergunta!

Page 43: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Eu preciso

entender a

natureza do

software...

Page 44: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

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)”.

Page 45: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

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)

Não há uma técnica ou tecnologia única que pode

melhorar algum aspecto do desenvolvimento de

software 10x em 10 anos…

Page 46: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Por que?

Page 47: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Essência

Dificuldades

no

Desenvolvimento

de SoftwareAcidentes

Inerente à natureza do software

Mapear a especificação para o software e

Verificar se a solução realmente atende às

necessidades do negócio

Relacionados com a produção do software

e não são inerentes

Brooks, 1986

A maioria dos métodos e

técnicas atacam os acidentes

Page 48: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Apenas um

lembrete:

Acidental Acontecer ao acaso

Incidente

Brooks “refired” his paper 10 years

later in the book

The Mythical Man-Month, 20th

Anniversary Edition, 1995

problemas que os engenheiros criam e podem

resolver

Relacionado com o processo de implementação

Page 49: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Vamos iniciar

com a Essência…

Page 51: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Simple huh!?

http://www.ideo.com/work/atm-interface

Page 52: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Não existem duas partes iguais

Se elas existem, deveríamos usar sub-rotinas

Diferença com elementos usados em outros domínios

Alta quantidade de estados

Impossível

enumerar todos

Page 53: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Não há como abstrair completamente a

complexidade por que ela é essencial

Domínios complexos

Aviação

Telecomunicações

Sistema bancário

Área da saúde

Nós ainda precisaremos

modelar e implementar

estas complexidades

Page 54: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Consequências técnicas

Dificuldades de comunicação

Falhas no produto, custos acima do planejado, atrasos, …

Dificuldade de enumerar, entender

e antecipar todos os estados possíveis

Baixa confiabilidade, quebras de segurança

Dificuldade de manutenção

Introdução de defeitos, difícil de entender, difícil de usar

Page 55: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Consequências gerenciais

Visão geral do

projeto é difícil

Fraca gerência de

conhecimento

Rotatividade

é um grande

problema

Page 57: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Software deve estar em conformidade

com limitações arbitrárias

Impostas por instituições humanas

e sistemas normas e regras

Sujeitas a alterações

arbitrárias

É difícil

planejar

Pode ocorrer mais

tarde no projeto

Page 58: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Software precisa estar

em conformidade com

sistemas existentes

Software precisa estar em

conformidade com seu ambiente

http://www.ktckids.com/images/puzzlePieces.png

Page 60: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Mudança contínua das

necessidades dos usuários

Ilusão de fácil

maleabilidade

http://pipllp.com/wp-content/uploads/2014/09/evolution-of-cars_CKO.jpg

Maior pressão

para modificar

o software

Page 62: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Onde está o software?

Produto intangível

http://img.gfx.no/806/806035/original.628x353.jpg

Não há uma

representação

geométrica

Page 63: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Nós precisamos usar diferentes

representações para modelar diferentes

aspectos do

software

Na UML 2.2

existem 14

tipos de

diagramas

http://i.stack.imgur.com/8tmN9.jpg

Page 64: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Como atacar

a essência…

Page 65: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Refinamento dos requisitos

Desenvolvimento incremental

Fazer o software crescer, não construi-lo

Grandes projetistas

Prototipação rápida

Identificá-los, desenvolvê-los e mantê-los

Reusar

Comprar ao invés de desenvolver

Page 66: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

E sobre os

acidentes…

Page 67: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Alguns avanços ajudaram a

reduzir dificuldades acidentais…

Linguagens de alto-nível

Time-sharing

Ambientes e ferramentas de programação

Desenvolvimento orientado a objetos

Verificação

Page 68: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

http://www.infoq.com/articles/No-Silver-Bullet-Summary

Leitura interessante…

No Silver Bullet Reloaded Retrospective OOPSLA Panel Summary

http://cliparts.co/cliparts/dc9/6kL/dc96kLRc7.png

Page 69: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Mas espere,

tem mais…

Page 71: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

O Software se

DESGASTA com o

tempo?

http://chrishowardbooks.com/img/easter-egg-graphics/car.png

Page 72: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Claro que não!

Mas...

Page 73: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Estava

funcionando

antes...... da

maldita

atualização!

https://www.careeraddict.com/Surprised_Businessman.jpg

Page 74: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

O Software se DETERIORA

quando...

introduzimos um defeito ao

modificá-lo

ocorrem mudanças no ambiente que

não puderam ser previstas pelo

projetista

Page 75: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected] Pressman, 2015

Page 76: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Claro, estamos

considerando que o

software não veio “podre”

de fábrica!

http://spc.fotolog.com/photo/44/42/36/deselingue/1200006994_f.jpg

Page 77: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

E qual é o seu

papel nisso tudo?

Page 78: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Devemos nos

preocupar com

a qualidade do

que entregamos!

http://www.aw3i.com/images/posts/sid_zen_dressdown.jpg

Page 79: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Qualidade?

https://pbs.twimg.com/profile_images/434052607297191936/ZRHhp8Fx.jpeg

Page 80: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

xConsidere estes dois produtos...

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

Page 81: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Qual tem mais

qualidade?

http://www.tvmost.com.hk/most/uploads/images/2015/Article/2015.07/2015.07.23/pigteammate/005.jpg

Page 82: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Quais as características

esperadas de cada um?

Qualidade é o “grau no

qual um conjunto de

características inerentes

satisfaz a requisitos”

ISO 9000, 2015

Page 83: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Problemas com

a qualidade

O carro esportivo não

alcançou a potência

estabelecida

O carro popular está com

um consumo superior ao

esperado

Page 84: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Classe*é uma “categoria ou

classificação atribuída a diferentes

requisitos da qualidade para

produtos, processos ou sistemas

que têm o mesmo uso funcional”

Diferentes características técnicas

1 linha, 1 classe, ...

2 linha, 2 classe, ...

Em inglês: Grade. PMBOK (2013) adota o termo “grau”*

ISO 9000, 2015

Page 85: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Pegou a ideia!?

http://www.clickgratis.com.br/fotos-imagens/saca-

rolha/aHR0cDovL2lzaG9wLnM4LmNvbS5ici9wcm9kdXRvcy8

wMS8wMS9pdGVtLzI4OC82LzI4ODY2N18zR0cuanBn.jpg

http://www.clickgratis.com.br/fotos-imagens/saca-

rolha/aHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9lL

2U1L0tvcmtlbnppZWhlcl8wMV9LTUouanBnLzIwMHB4LUtvcmtlbnppZWhlcl8wMV9LTUouanBn.jpg

Page 87: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Difícil definir

Difícil medir

Diferentes percepções

http://www.bms.co.in/wp-content/uploads/2014/11/Customer-Decision.jpg

http://businessanalytics.pt/wp-

content/uploads/2013/01/Lupa-

300x268.jpg

Page 88: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

E Qualidade de

Software?

Page 89: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

http://images.clipartpanda.com/happy-computer-user-happy-computeruser.png

http://images.clipartpanda.com/stressor-clipart-computer-stress.jpg

Page 90: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Capability of software product to satisfy

stated and implied needs when used under

specified conditions

(ISO/IEC 25000, 2014)

Software Quality.

Page 91: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Capacidade de um produto de software de satisfazer às necessidades explícitas e

implícitas quando utilizado sob condições especificadas

(ISO/IEC 25000, 2014)

Qualidade de software.

Page 92: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Produto?

https://pixabay.com/pt/caixa-papel%C3%A3o-

pacote-parcela-brown-158523/

Page 93: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

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.

Page 94: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

O PMBOK diferencia os termos PRODUTO

(tangível) e SERVIÇO (intangível)

Um produto pode ser:

um componente de outro item

um aprimoramento de outro item

um item final

PMBOK - Um Guia do Conhecimento em Gerenciamento de Projetos

Page 95: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Produto de software

Pronto para ser liberado

ao usuário

Precisa ser verificado

e validado

Page 96: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Capacidade de um produto de software de

satisfazer às necessidades explícitas e

implícitas quando utilizado sob condições especificadas

(ISO/IEC 25000, 2014)

Qualidade de software.

Page 97: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Capacidade de um produto de software de

satisfazer às necessidades explícitas e implícitas quando utilizado sob condições especificadas

(ISO/IEC 25000, 2014)

Qualidade de software.

Page 98: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Especificação

do software

http://blog.axen.pro/wp-content/uploads/2013/06/Writing-Quality-Software-Requirements.png

Page 99: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Capacidade de um produto de software de

satisfazer às necessidades explícitas e

implícitas quando utilizado sob condições especificadas

(ISO/IEC 25000, 2014)

Qualidade de software.

Page 100: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

E o que não

está escrito?

O que o

usuário

espera?http://www.handymanstartup.com/wp-

content/uploads/2013/02/IMG_Customer_rating_buttons.jpg

Page 101: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Capacidade de um produto de software de

satisfazer às necessidades explícitas e

implícitas quando utilizado sob condições especificadas

(ISO/IEC 25000, 2014)

Qualidade de software.

Page 102: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Does the

USE really

matters?

https://d3ui957tjb5bqd.cloudfront.net/images/screenshots/products/7/79/79359/hammer-o.jpg?1393432661

Page 103: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

Ok, entendi!

Mas todo

software

é igual?

Page 104: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Nós podemos

classificar

produtos de

software?

http://blog.globalknowledge.com/wp-

content/uploads/2011/08/squarehole95615108.jpg

Page 107: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Um produto de software pode ser:

De prateleira - COTS

http://tynmedia.com/tynmag/wp-content/uploads/sites/3/2015/07/comercio_electronico.jpg

Page 108: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Definido por uma necessidade de mercado,

disponível comercialmente e cuja adequação

para uso foi demonstrada por um largo

espectro de usuários

Software de prateleira.COTS (commercial off-the-shelf)

(ISO/IEC 25030, 2007)

Page 109: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Um produto de software pode ser:

De prateleira – COTS

Sob encomenda - FD

http://www.spd-haimhausen.de/wp-content/uploads/2010/02/bausteine.jpg

Page 110: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Desenvolvido para uma aplicação

específica a partir de uma

especificação de requisitos do software

(ISO/IEC 25030, 2007)

Software sob encomenda.FD (fully developed) or custom software development

Page 111: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Um produto de software pode ser:

De prateleira – COTS

Sob encomenda – FD

De prateleira

modificável – MOTS

http://www.sundlep.com/wp-content/uploads/2015/02/web12.jpg

Page 112: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Similar ao COTS, mas permite algum grau

de adaptação (modificação de suas

funcionalidades) a partir de

necessidades específicas dos usuários

Software de prateleira modificável.MOTS (modified off-the-shelf)

Page 113: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Pressman considera 7

categorias gerais

Desafios!

Pressman, 2015

Page 114: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

Software básico

Software aplicativo

Sw para engenharia e aplicações científicas

Software embarcado

Linhas de produto de software

Aplicações web e móveis

Inteligência Artificial

Page 115: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

E mais...

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

Page 116: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

E qual é o seu

papel nisso tudo?

Page 117: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

[email protected]

http://mrbakersgrade6.weebly.com/uploads/

2/4/7/6/24767728/6979844.jpg?339

Page 118: Engenharia de Software - Introdução e Motivação (Marcello Thiry)

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.