Introdução a Engenharia de Software.pdf

IvanFontainha 249 views 34 slides Apr 01, 2022
Slide 1
Slide 1 of 34
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34

About This Presentation

Aula introdutória a Engenharia de Software.


Slide Content

Prof. Ivan Fontainha
[email protected]
Engenharia de Software

2
Bibliografia
MAITINONETO,Roque.EngenhariadeSoftware.
Londrina:EditoraeDistribuidoraEducacionalS.A.,2016.
SOMMERVILLE,Ian.Engenhariadesoftware.8.ed.São
Paulo:Pearson,2007
PADUAFILHO,WilsondePaula.Engenhariade
software:fundamentos,métodosepadrões.3.ed.Rio
deJaneiro:LTC–LivrosTécnicoseCientíficos,2009
PRESSMAN, Roger S. Engenharia de software : uma
abordagem
Profissional.7ª. ed 2011.

Engenharia de Software
▪Unidade1:FundamentosdaEngenhariadeSoftware:
▪Oqueveremosnestaaula:
▪Seção1.1–IntroduçãoàEngenhariadesoftware:
aspectosgerais,objetivos,evoluçãodosoftwaree
crisedosoftware.
3

4
Engenharia de Software
O que é um software?
▪Osoftwareéoconjuntodeváriosartefatosenão
apenasocódigofonte(SOMMERVILLE).
▪Sãoinstruçõesque,quandoexecutadas,produzema
funçãodesejadapelousuário.
▪Sãoestruturasdedadosquepossibilitamqueos
programasmanipulemasinformações.

5
Engenharia de Software
Comparação entre Software e Hardware:
▪Osoftwarepodeserdesenvolvido(éapartelógicado
computador)eohardwaresecompra(éapartefísica).
▪Aopassardotempoosoftwareficadeteriorado,
ultrapassadoesuamanutençãotorna-semaiscara.
▪Jáparaohardware,realizaramanutençãoé
simplesmentetrocaràpeçaqueestaemdesgaste.

6
Engenharia de Software
O que é Engenharia de Software?
▪Engenhariadesoftwareéumadisciplinacujoobjetivoé
produzirsoftware:
▪isentodefalhas,
▪entreguedentrodoprazoeorçamentosprevistos,
▪equeatendaàsnecessidadesdocliente.
▪Osoftwaredesenvolvidodeveserfácildeser
modificadoquandoasnecessidadesdosusuários
mudarem.

7
Engenharia de Software
O que é Engenharia de Software?
▪AIEEEComputerSociety(2004)defineEngenhariade
softwarecomo:“Aaplicaçãodeumaabordagem
sistemática,disciplinadaequantificávelde
desenvolvimento,operaçãoemanutençãodosoftware,
alémdoestudodessasabordagens".
▪“EngenhariadeSoftwareéaprofissãodedicadaa
projetar,implementaremodificarsoftware,deformaque
elesejadealtaqualidade,aumcustorazoável,
manutenívelerápidodeconstruir.“(LAPLANTE)

8
Engenharia de Software
O que é Engenharia de Software?
▪Ficaclaro,então,queoobjetivodaEngenhariade
Softwareé:
▪aentregadeprodutodequalidade,
▪respeitadososprazose
▪oslimitesdedespesasderecursoshumanose
financeiros.

9
Engenharia de Software (divisão)

10
Engenharia de Software
Crise do Software:
▪Nadécadade1960,algunsatoresdoprocessode
desenvolvimentodesoftwarecunharamaexpressão
“CrisedoSoftware”naintençãodeevidenciaro
momentoadversoqueaatividadeatravessava.
▪Acrisedeindicavaumestadodeincertezaou
declínioe,defato,esseeraoretratodeumsetor
inaptoaatenderdemandacrescenteporprodução
desoftware.

11
Engenharia de Software
Crise do Software:
▪Eramentreguesprogramasquenãofuncionavam
corretamente,construídospormeiodeprocessos
falhosequenãopodiampassarpormanutenção
facilmente.
▪Tinhamincertezacausadapelaimprecisãonas
estimativasdecustoeprazoafetavaaconfiança
dasequipeseprincipalmentedosseusclientes.

12
Engenharia de Software
Vamos refletir nesta afirmação:
▪“Com o crescimentodesse segmento
(desenvolvimentodesoftwares)muitasempresas
possuemmaisespecialistasemTIemquecada
um tem sua responsabilidade no
desenvolvimentodesoftwareeédiferentede
antigamentequeeraumúnicoprofissionalde
softwarequetrabalhavasozinhonumasala.”
(PRESSMAN,2006)

13
Engenharia de Software
▪Aopassardotempo,ninguémimaginavaqueo
softwaretornariaumelementomuitoimportante
paraomundoeteriaacapacidadedemanipulara
informação.
▪Comomuitoselementoscomputacionaistiveram
mudançasatéhojeecontinuamtendo.
▪Estecrescimentocomputacional,levamacriação
desistemasperfeitoseproblemasparaquem
desenvolvemsoftwarescomplexos.

14
Engenharia de Software
▪Aspreocupaçõesdosengenheirosdesoftwarepara
desenvolveremossoftwaresemdefeitose
entregaremestesprodutosnotempomarcado,
assimlevaaaplicaçãodaengenhariade
software.
▪Osoftwareécaroporquetornaseumaatividade
difíciletrabalhosadeserrealizadopeloengenheiro
desoftware(JALOTE,2005).

15
Engenharia de Software
Algunsaspectosquenorteiam(princípiosou
paradigmas)comumentereferenciadosnaEngenharia
deSoftware:
▪Abstração:
Pararesolverumproblema,deve-seseparar
osaspectosqueestãoligadosauma
realidadeparticular,visandorepresentá-loem
formasimplificadaegeral.
▪Formalidade:
Significaseguirumaabordagemrigorosae
metódicapararesolverumproblema.

16
Engenharia de Software
Algunsaspectosquenorteiam(princípiosou
paradigmas)comumentereferenciadosnaEngenharia
deSoftware:
▪Dividirparaconquistar:
Resolverumproblemacomplexodividindo-o
emumconjuntodeproblemasmenorese
independentesquesãomaisfáceisdeserem
compreendidoseresolvidos.
▪Organizaçãohierárquica:
Organizaroscomponentesdeumasolução
emumaestruturahierárquicatipoárvore.
Assim,aestruturapodesercompreendidae
construídanívelpornível,cadanovonível
commaisdetalhes.

17
Engenharia de Software
Algunsaspectosquenorteiam(princípiosou
paradigmas)comumentereferenciadosnaEngenharia
deSoftware:
▪Ocultação:
Esconderasinformaçõesnãoessenciais.
Permitirqueomódulo"veja"apenasa
informaçãonecessáriaàquelemódulo.
▪Localização:
Colocarjuntosositensrelacionados
logicamente(ousuárionãopensacomoo
analista!).

18
Engenharia de Software
Algunsaspectosquenorteiam(princípiosou
paradigmas)comumentereferenciadosnaEngenharia
deSoftware:
▪Integridadeconceitual:
Seguirumafilosofiaearquiteturadeprojeto
coerentes.
▪Completeza:
Checarparagarantirquenadafoiomitido.

19
Engenharia de Software
Categoriasdesoftwares,classificadassegundoa
aplicação:
▪Softwarebásico:
Apoioaoutrosprogramas.Forteinteração
comohardware.
Exemplos:compiladores,devicedrivers,
componentesdesistemaoperacional.

20
Engenharia de Software
Categoriasdesoftwares,classificadassegundoa
aplicação:
▪Softwareemtemporeal:
Trata-sedeumtipodesoftwarequemonitora
eventospormeiodecoletaeanálisede
dados,taiscomotemperatura,pressão,vazão,
entreoutros.
Usa-seaexpressão“temporeal”porcontada
respostaimediata(umsegundooumenos)
queosoftwaredevefornecer.

21
Engenharia de Software
Categoriasdesoftwares,classificadassegundoa
aplicação:
▪Softwarecomercial:
Caracteriza-sepelamanipulaçãodegrande
volumededadoseusoemaplicações
comerciais.
Exemplos:folhadepagamento,estoque,
recursoshumanos.
Forteinteraçãocombancodedados.
▪Softwarecientífico:
Algoritmosdeprocessamentonumérico.
Usadosnaastronomia,mecânicaeprojeto
auxiliadoporcomputador.

22
Engenharia de Software
Categoriasdesoftwares,classificadassegundoa
aplicação:
▪Softwaredecomputadorpessoal:
Forteinteraçãocomoserhumano.
Deveserfácileamigável.
Exemplos:Planilhas,editoresdetexto,
browsers.

23
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Umbommanual,repletodepadrõeseregras,
forneceráaequipetudoqueelaprecisasaber?
▪Desenvolvimentonãoéumareceitadebolo!
▪Osclientessãodiferentes,osprojetossão
diferentes,osprogramadoressãodiferentes,
asprioridadesdependem doprojeto.
Basicamente,TUDOédiferente.

24
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Umbommanual,repletodepadrõeseregras,
forneceráaequipetudoqueelaprecisasaber?
▪Umsitedee-commercedesenvolvidoparaa
empresaX,provavelmentenãovaleráparaa
empresaY.
▪Oplanejamentoéfundamentalesóentãovocê
poderálevantarosrequisitosnecessáriose
trabalharemcimadeumnovoprojeto.

25
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Casoocorraatrasonocronogramaestepoderá
ser contornado alocando-se mais
programadoresaoprojeto?
▪Pormaisqueexistaoconceitode“Fábricade
Software”nãopodemospensarnoprocesso
dedesenvolvimentocomoumalinhade
produção.
▪Aoseinserirumprogramadoremumprojeto,
elelevaráalgumtempoparasefamiliarizar
comocódigoecomoqueestásendofeito,
paraentão,começardefatoaproduzir.

26
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Casoocorraatrasonocronogramaestepoderá
ser contornado alocando-se mais
programadoresaoprojeto?
▪Destamaneira,alocarprogramadorespara
resolverumproblemadecronogramapoderá
surgirefeitocontrário,causandomais
problemas!

27
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Seráquedácerto?
▪Umagrávidademora9mesesparagerarum
bebe...
▪Sejuntarmos9grávidaseuvouterumbebê
emummês?

28
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Terceirizarum projetoégarantiade
tranquilidadeenenhumtrabalho?
▪Quandoumprojetoémuitotrabalhoso,requer
know-howmaiordoqueasuaequipepossui
ouocronogramaestáapertado,muitosoptam
pelaterceirizaçãoachandoqueestaéuma
garantiadetranquilidadeenenhumtrabalho.

29
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Terceirizarum projetoégarantiade
tranquilidadeenenhumtrabalho?
▪Cuidado:SeaempresaXcontratouvocê,você
éoresponsávelpelotrabalhoqueestá
entregando.Aíficaapergunta:
▪Aterceirizaçãofezoserviçodireito?
▪Comentouocódigo?
▪Documentouoquefoifeito?
▪Suaequipetempessoalparatrabalhar
nessecódigo?

30
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Terceirizarum projetoégarantiade
tranquilidadeenenhumtrabalho?
▪Pensebemantesdeterceirizaralgoquenão
poderátrabalharbemnofuturo.
▪Émelhorrecusarumprojetodoquefazê-lo
malfeito.

31
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Umsoftwarepodeserconstruídoobservando-se
oseupropósitogeral–osdetalhespodemser
levadosemcontaposteriormente?
▪Sevocêédesenvolvedorjádeveterse
deparadocomumusuárioquesóqueriaum
ajustizinhonosistema:
“só adicione um botão que faça isso e busque
aquilo e faça isso ficar cor de rosa e brilhar
girando”.

32
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Umsoftwarepodeserconstruídoobservando-se
oseupropósitogeral–osdetalhespodemser
levadosemcontaposteriormente?
▪Desenvolvedoresgeralmentenãogostamde
destruiralgoparafaze-lodeoutraforma,pois
oclientemudoudeideia.Aliás,ninguém
gosta.

33
Engenharia de Software -mitos
VamosveralgunsmitosdaEngenhariadesoftwares:
▪Seoprogramafunciona,nossotrabalhoestá
completo?
▪Seoprogramaaindanãoestáfinalizadoe
“rodando”,nãopossoavaliarsuaqualidade?
▪Oúnicoprodutoqueentregareiaoclienteéo
códigoexecutável?
▪Oprocessodeplanejamentofarácomque
criemosdocumentaçãovolumosaqueatrasaráa
execuçãodoprojeto,atrasandoocronograma?

MUITO OBRIGADO!
3
4