Guilherme painel Wamps2015 - Home | Softex · PAINEL Engenharia de sof are tendências e...

18
PAINEL Engenharia de software Engenharia de software tendências e aplicações na indústria tendências e aplicações na indústria WAMPS 2015 tendências e aplicações na indústria tendências e aplicações na indústria Guilherme Horta Travassos Universidade Federal do Rio de Janeiro COPPE/PESC Pesquisador CNPq, Membro da ISERN [email protected] www.cos.ufrj.br/~ght

Transcript of Guilherme painel Wamps2015 - Home | Softex · PAINEL Engenharia de sof are tendências e...

PAINEL

Engenharia de software Engenharia de software tendências e aplicações na indústriatendências e aplicações na indústria

WAMPS 2015

tendências e aplicações na indústriatendências e aplicações na indústria

Guilherme Horta TravassosUniversidade Federal do Rio de Janeiro

COPPE/PESC

Pesquisador CNPq, Membro da ISERN

[email protected]

www.cos.ufrj.br/~ght

Sistemas de Software

Aplicações de Software Software Tempo-Real

Sistemas de Informação Software Embarcado

Software para Engenharia e Aplicações CientíficasSoftware para Engenharia e Aplicações Científicas

Software para Computação Pessoal

Software “Inteligente”

Aplicações Móveis

Sistemas de Software

Sistemas de Software

Aplicações de Software Software Tempo-Real

Sistemas de Informação Software Embarcado

Software para Engenharia e Aplicações CientíficasSoftware para Engenharia e Aplicações Científicas

Software para Computação Pessoal

Software “Inteligente”

Aplicações Móveis

http://i907.photobucket.com/albums/ac272/

Iri5hka/errishuman_zpsbd7cf0fd.jpg

• As 10 mais falhas de software em 2014 (COMPUTERWORLDUK): http://www.computerworlduk.com/galleries/infrastructure/top-10-software-failures-2014-3599618/

– Amazon 1 penny price glitch

– UK airspace closed

– Toyota Prius recalled over software glitch

– Heartbleed security flaw uncovered

– US National Grid Gas Company blew $1 billion

– Emergency numbers go offline for six hours

Sistemas de Software

– Emergency numbers go offline for six hours

– Apple forced to pull iOS8 update (phones unable to make calls)

– iCloud hacked

– Air India forced to divert Boeing 787 flight

– Delivery of F-35B stealth fighters delayed

• Veja uma lista de problemas em http://catless.ncl.ac.uk/Risks/

. . .. . .

Nossa Realidade…

44

57

49

Participantes por Região

Uruguai

Sul/Sudeste

Norte/Nordeste/Centro-Oeste

22

41

22

Empresas em que atuam

Dias Neto, A.C.; Matalonga, S.; Solari, M.; Robiolo, G.; Travassos, G.H. (2015). Characterizing Software Testing Practices in Emerging South America Software Development Scenarios. On-going Joint Research. Report in preparation.

0

5

10

15

20

25

30

35

40

Ágil Tradicional Outros

0

10

20

30

40

50

60

Web Desktop Móvel

Nossa realidade …

50

100

150

200

250

Como a Indústria tem observado “TAMANHO”

0

45 “indicadores” distintos....

Travassos, G. H.; Kalinowski, M. (2008-2012). Projeto iMPS – DataSet. SOFTEX/MCTI.

Nossa realidade …

20

40

60

80

100

120

140

Como a Indústria tem observado “DEFEITO”

0

20

91 “indicadores” distintos....

Travassos, G. H.; Kalinowski, M. (2008-2012). Projeto iMPS – DataSet. SOFTEX/MCTI.

Nossa realidade …

Souza, T. S.; Travassos, G.H. (2015). Análise Semântico-Diacrônica dos Termos “Esforço” e “Custo” e sua Relação com o Software: Um Estudo Qualitativo Apoiado pela Linguística de Corpus. Submetido para CIbSE/ESELAW

Crença:

Σ “Pontos” == esforço == custo...

Nossa Realidade…

Precisamos construir sistemas de software fidedgnos,

seguros, confiáveis, corretos…EntretantoEntretanto, , nossanossa habilidadehabilidade parapara apoiarapoiar melhoriasmelhorias nosnos software software existentesexistentes é é

aindaainda ameaçadaameaçada porpor projetosprojetos inadequadosinadequados e e faltafalta de de recursosrecursos

60-100x

Custo Relativode Mudanças no Software

1x

1.5-6x

60-100x

Especificação Desenvolvimento Após Entrega

Nossa realidade...

AA construçãoconstrução dede sistemassistemas dede softwaresoftwarenãonão seguesegue umum caminhocaminho amenoameno……

NãoNão éé fácilfácil garantirgarantir aa comunicaçãocomunicação eecolaboraçãocolaboração entreentre desenvolvedoresdesenvolvedores……

Loan-Arranger Requirements Specification – Jan. 8, 1999 Background

Banks generate income in many ways, often by borrowing money from their depositors at a low interest rate, and then lending that same money at a higher interest rate in the form of bank loans. However, property loans, such as mortgages, typically have terms of 15, 25 or even 30 years. For example, suppose that you purchase a $150,000 house with a $50,000 down payment and borrow a $100,000 mortgage from National Bank for thirty years at 5% interest. That means that National Bank gives you $100,000 to pay the balance on your house, and you pay National Bank back at a rate of 5% per year over a period of thirty years. You must pay back both principal and interest. That is, the initial principal, $100,000, is paid back in 360 installments (once a month for 30 years), with interest on the unpaid balance. In this case the monthly payment is $536.82. Although the income from interest on these loans is lucrative, the loans tie up money for a long time, preventing the banks from using their money for other transactions. Consequently, the banks often sell their loans to consolidating organizations such as Fannie Mae and Freddie Mac, taking less long-term profit in exchange for freeing the capital for use in other ways.

Specified Lender

Investor

Fanny May

Receive Reports

Monthly Report

Investment Request

Request

Generate Reports

Loan Analyst

Good

Late

monthly report informing payment on time[ payment time <= due time ]

receive a monthly report

Default

monthly report informing late payment[ payment time > due time + 10 ]

monthly report informing late payment[ due time < payment time < due time + 10 ]

monthly report informing late payment[ payment time > due time + 10 ]

monthly report informing payment on time[ payment time <= due time ]

Loan Sta te Diagram

July 1998

FORMALFORMAL

REQUIREMENTSREQUIREMENTS

TEST CASESTEST CASES

CC

LL

AA

SS

SS

XX YY ZZ

SS

cc

aa

ll

ee

nn

ee

33 44 55

II

ss

oo

ss

cc

ee

ll

ee

ss

55 55 88

II

ss

oo

ss

cc

ee

ll

ee

ss

33 44 33

II

ss

oo

ss

cc

ee

ll

ee

ss

44 77 77

EE

qq

üü

ii

ll

áá

tt

ee

rr

aa

ll

22 22 22

NN

oo

--

tt

rr

ii

aa

nn

gg

ll

ee

11 22 33

NN

oo

--

tt

rr

ii

aa

nn

gg

ll

ee

55 11 44

33 55 22

ScaleneScalene TriangleTriangle::

{<x,y,z>: (x != y) ^ (x != z) ^ (y != z)}{<x,y,z>: (x != y) ^ (x != z) ^ (y != z)}

NN

oo

--

tt

rr

ii

aa

nn

gg

ll

ee

colaboraçãocolaboração entreentre desenvolvedoresdesenvolvedores……Tacit requirements

Fixed _Rate Loa n

ri sk()principa l_remaining ()

Variable_ Rate Loa n

principal_ re maining : number

risk()pri ncipal_ re maing()

L end er

name : text

id : textcontact : te xt

phone_number : number

Borro wer

na me : texti d : number

r isk : numb erstatus : text

r isk()se t_sta tus_g ood()se t_sta tus_late()

se t_sta tus_d efa ult()b orro wer_status()

se t_sta tus()

Bundle

acti ve time period : d ate

profi t : numberestima ted risk : numb ertotal : number

loan analyst : id _numbe rdiscount_ ra te : numberinvestor_name : text

date_sold : date

risk()calculate _profi t()cost()

Lo an Arranger

rec_monthly_report()inv_request()

generate rep orts()ide ntify_ re port_format()

ve ri fy_report()look_for_a_ lender()look_for_a_ loan()

ide ntify_ loan_by_criteria()ma nua lly_ se lect_lo ans()optimize_bundle ()

calculate _new_bundle ()ide ntify_ asked_repo rt()aggre gate _bundles()

aggre gate _loans()aggre gate _borrowers()

aggre gate _lenders()format_report()show_report()

Loan

amo unt : numbe rinterest rate : nu mber

settl ement data : d ate

term : date

sta tus : text

ori gina l_value : numberprincipa l_origina l : n umber

risk()

set_status_de faul t()

set_status_late()set_status_go od()

di scount_rate()

bo rrowers()

pri ncipa l_remainin g()

1

1..*

1

1..*

1..*

1 ..*

1..*

1 ..*

1..*

0..1

1..*

0..1

Fa nny May : Lo an Arra nger

Bo rrower : Borr ower

A Le nde r : Spe cified Lende r

Lo an : Lo an

verify_ repo rt()

new_loa n(lende r, bor rower s)

new_

look_fo r_a_ le nder (lender )

loo k_for_ a_loan( loan)

look_ for_a _

up date _loan( le nder, b orr ower)

up date_

le nder :

ne w_ le nder( name,co ntact, pho ne_num ber )

upda te(lende r)

mo nthly_ repo rt(lende r, loan s, borr owers)

identify_ repo rt_fo rmat( )

Re ceive Mo nthly Re port

ADAD--

HOCHOC SOURCE SOURCE CODECODE

NãoNão temostemos evidênciaevidência sobresobre grandegrande parte das parte das tecnologiastecnologiasde software de software queque usamosusamos......

Travassos, G.H. (2014). Software Defects: Stay Away from Them. Do Inspections!. In: 9th International Conference on the Quality of Information and Communications Technology (QUATIC ) . Guimarães, Portugal. (Keynote Speech). http://dx.doi.org/10.1109/QUATIC.2014.8

Batendo em nossa porta…

Aplicações de Software Software Tempo-Real

Sistemas de Informação Software Embarcado

Software para Engenharia e Aplicações Científicas

Software para Computação Pessoal

Software “Inteligente”Software “Inteligente”

AplicaçõesAplicações MóveisMóveis

SistemasSistemas de de SistemasSistemasSistemasSistemas UbiquosUbiquos

Perspectiva Contemporanea:Sistemas de Software Ubiquos

Spínola, R. O. ; Travassos, G. H. (2012) . Towards a framework to characterize ubiquitous software projects. Information and Software Technology , v. 54, p. 759-785. http://dx.doi.org/10.1016/j.infsof.2012.01.009

Caracteristicas de Sistemas Ubiquos

Comportamento AdaptávelComportamento Adaptável

Sensível ao ContextoSensível ao Contexto

Spínola, R. O. ; Travassos, G. H. (2012) . Towards a framework to characterize ubiquitous software projects. Information and Software Technology , v. 54, p. 759-785. http://dx.doi.org/10.1016/j.infsof.2012.01.009

Desafios para a Engenharia de Sistemas de Software Contemporâneos

Definição de ProcessosQuais deveriam ser as atividades existentes no processo de

desenvolvimento para apoiar a construção destes novos sistemas de

software?Como inserir agilidade nestes processos?

Planejamento do Projeto

Evoluído de Spínola, R. O. ; Travassos, G. H. (2012) . Towards a framework to characterize ubiquitous software projects. Information and Software Technology , v. 54, p. 759-785. http://dx.doi.org/10.1016/j.infsof.2012.01.009

Planejamento do ProjetoQuais são os riscos associados com cada uma das características

destes sistemas?

Como reduzir os riscos associados com o desenvolvimento de

projetos de software contemporâneos?

Como estimar o esforço de um projeto de software contemporâneo?

E seu custo?

Como acompanhar o andamento do projeto?

Desafios para a Engenharia de Sistemas de Software Contemporâneos

RequisitosComo apoiar a elicitação de requisitos para sistemas de software

contemporâneos?

Qual a influencia das características de software contemporâneo nas

atividades de elicitação e especificação de requisitos?

Evoluído de Spínola, R. O. ; Travassos, G. H. (2012) . Towards a framework to characterize ubiquitous software projects. Information and Software Technology , v. 54, p. 759-785. http://dx.doi.org/10.1016/j.infsof.2012.01.009

atividades de elicitação e especificação de requisitos?

Quais são as tecnologias adequadas para apoiar a verificação e

validação dos requisitos associadas as características de software

contemporâneo?

Desafios para a Engenharia de Sistemas de Software Contemporâneos

ProjetoQuais são as influências das características de ubiquidade na

arquitetura do software?

Como avaliar a qualidade da arquitetura de software projetada?

Implementação

Evoluído de Spínola, R. O. ; Travassos, G. H. (2012) . Towards a framework to characterize ubiquitous software projects. Information and Software Technology , v. 54, p. 759-785. http://dx.doi.org/10.1016/j.infsof.2012.01.009

ImplementaçãoQue tecnologia de software (ou conjunto de tecnologias) deve ser

utilizada para implementar um projeto de software

contemporâneo?

Desafios para a Engenharia de Sistemas de Software Contemporâneos

TesteComo escolher técnicas e estratégias de teste adequadas para

testar sistemas de software contemporâneos?

Como projetar casos de teste para sistemas de software

contemporâneos? (pense em sistemas sensíveis ao contexto...)

E como executar estes testes...?

Evoluído de Spínola, R. O. ; Travassos, G. H. (2012) . Towards a framework to characterize ubiquitous software projects. Information and Software Technology , v. 54, p. 759-785. http://dx.doi.org/10.1016/j.infsof.2012.01.009

E como executar estes testes...?

ManutençãoQual a influencia das características de software contemporâneo

em sua evolução?