processo de so*ware
Post on 02-Jan-2022
4 Views
Preview:
TRANSCRIPT
Histórico(erapré-ES)• 1940s:Primeirocomputadoreletrônicodeusogeral–ENIAC– CustoesLmadodeUS$500.000,00– Iníciodaprogramaçãodecomputadores
• 1950s:Primeiroscompiladoreseinterpretadores• 1960s:PrimeirograndesoUwarerelatadonaliteratura–OS/360– Maisde1000desenvolvedores– CustoesLmadodeUS$50.000.000,00porano
• 1968:CrisedosoUware–nasceaEngenhariadeSoUware
Leonardo Murta Processo de Software 2
Histórico(erapós-ES)• 1970s:
– Lower-CASEtools(programação,depuração,colaboração)– Ciclodevidacascata– Desenvolvimentoestruturado
• 1980s:– Ciclodevidaespiral– Desenvolvimentoorientadoaobjetos
• 1990s:Upper-CASEtools– Processos– Modelagem
• Atualmente:– Métodoságeis– Desenvolvimentodirigidopormodelos– Linhasdeproduto– Experimentação
Leonardo Murta Processo de Software 3
ElementosdaES
EngenhariadeSoUware
Ferramentas
Métodos
Processo
Leonardo Murta Processo de Software 4
ElementosdaES• Processo
– DefineospassosgeraisparaodesenvolvimentoemanutençãodosoUware
– Servecomoumaestruturadeencadeamentodemétodoseferramentas
• Métodos– Sãoos“howto’s”decomofazerumpassoespecíficodoprocesso
• Ferramentas– AutomaLzamoprocessoeosmétodos
Leonardo Murta 5 Processo de Software
ElementosdaES• Cuidadocomo“desenvolvimentoguiadoporferramentas”– Éimportanteusaraferramentacertaparaoproblema
– Oproblemanãodeveseradaptadoparaaferramentadisponível
Leonardo Murta Processo de Software 6
“Para quem tem um martelo, tudo parece prego”
ElementosdaES
1.Coloqueemumapanelafundaoleitecondensado,amargarinaeochocolateempó.
2.Cozinhe[nofogão]emfogomédioemexasempararcomumacolherdepau.
3.Cozinheatéqueobrigadeirocomeceadesgrudardapanela.
4.Deixeesfriarbem,entãounteasmãoscommargarina,façaasbolinhaseenvolva-asemchocolategranulado.
Leonardo Murta Processo de Software 7
http://tudogostoso.uol.com.br/receita/114-brigadeiro.html
O que é processo, método ou
ferramenta?
ElementosdaES
1.Coloqueemumapanelafundaoleitecondensado,amargarinaeochocolateempó.
2.Cozinhe[nofogão]emfogomédioemexasempararcomumacolherdepau.
3.Cozinheatéqueobrigadeirocomeceadesgrudardapanela.
4.Deixeesfriarbem,entãounteasmãoscommargarina,façaasbolinhaseenvolva-asemchocolategranulado.
Leonardo Murta Processo de Software 8
http://tudogostoso.uol.com.br/receita/114-brigadeiro.html
Processo
ferramenta
método
OSupermercadodeES
• ESforneceumconjuntodemétodosparaproduzirsoUwaredequalidade
• Pensecomoemumsupermercado...– Emfunçãodoproblema,seescolheoprocesso,osmétodoseasferramentas
• Cuidado– Menosdoqueonecessáriopodelevaradesordem
– Maisdoqueonecessáriopodeemperraroprojeto
Leonardo Murta Processo de Software 9
Processosimplícitosxexplícitos• Lembrem-se:Processossempreexistem,sejadeformaimplícitaouexplícita!– Processosimplícitossãodioceisdeseremseguidos,emespecialpornovatos
– Processosexplícitosestabelecemasregrasdeformaclara
Leonardo Murta Processo de Software 10
Processodequalidade• ÚlLmapalavraparamediraqualidadedeumprocesso:Sa?sfaçãodoCliente
• Outrosindicadoresimportantes– Qualidadedosprodutosgerados– Custorealdoprojeto– Duraçãorealdoprojeto
Leonardo Murta Processo de Software 11
Modelosdeciclodevida• Existemalgunsprocessospré-fabricados
– Essesprocessossãoconhecidoscomomodelosdeciclodevida
– EssesprocessosapresentamcaracterísLcaspredefinidas
• Devemseradaptadosparaocontextorealdeuso– CaracterísLcasdoprojeto– CaracterísLcasdaequipe– CaracterísLcasdocliente
Leonardo Murta Processo de Software 12
CiclodevidaCascata
Comunicação Planejamento Modelagem Construção Implantação
Leonardo Murta Processo de Software 13
CiclodevidaIncremental
Leonardo Murta Processo de Software 14
Comunicação Planejamento Modelagem Construção Implantação
Comunicação Planejamento Modelagem Construção Implantação
Comunicação Planejamento Modelagem Construção Implantação
...
tempo
func
iona
lidad
es
CiclodevidaRAD
Leonardo Murta Processo de Software 15
Comunicação Planejamento
Modelagem Construção
IntegraçãoeImplantação
...
tempo
Modelagem Construção
Modelagem Construção
ProtoLpação
Comunicação
Planejamentorápido
Modelagemrápida
ConstruçãodeprotóLpo
Implantaçãoefeedback
Leonardo Murta Processo de Software 16
CiclodevidaEspiral
Leonardo Murta Processo de Software 17
Comunicação
Planejamento (análise de riscos)
Modelagem
Construção Implantação
CascataxEvoluLvo
• ObjeLvo:ProcessoUnificadocomaspectosde...– DesenvolvimentoiteraLvo– DesenvolvimentoevoluLvo– Desenvolvimentoágil
Processo de Software 20
Ciclo de vida cascata
Ciclo de vida evolutivo
Leonardo Murta
DesenvolvimentoIteraLvo• Odesenvolvimentoéorganizadoem“mini-projetos”
– Cada“mini-projeto”éumaiteração– Cadaiteraçãotemduraçãocurtaefixa(de2a6semanas)– CadaiteraçãotemaLvidadesdeanálise,projeto,programaçãoetestes
– OprodutodeumaiteraçãoéumsoUwareparcial
Processo de Software 21
X semanas X semanas X semanas
Software Software Software
...
Leonardo Murta
DesenvolvimentoIteraLvo• Aiteraçãodeveserfixa
– Tarefaspodemserremovidasouincluídas– AiteraçãonuncadevepassardaduraçãopreviamenteesLpulada
• OresultadodecadaiteraçãoéumsoUware...– Incompleto– Emdesenvolvimento(nãopodesercolocadoemprodução)– MasnãoéumprotóLpo!!!
• EssesoUwarepodeserverificadoevalidadoparcialmente– Testes– Usuários
• Podemsernecessáriasdiversasiterações(e.g.10a15)paraterumaversãodosistemaprontaparaentraremprodução
Processo de Software 22 Leonardo Murta
DesenvolvimentoIteraLvo• Iteraçõescurtasprivilegiamapropagaçãodeconhecimento
– AumentodoconhecimentosobreosoUware– Diminuiçãodasincertezas,quelevamàsmudanças
Processo de Software 23 Leonardo Murta
DesenvolvimentoEvoluLvo• Asespecificaçõesevoluemacadaiteração
– Acadaiteração,umapartedosoUwareficapronta– OconhecimentosobreosoUwareaumenta– Asespecificaçõessãoevoluídaspararetrataresseaumentode
conhecimentosobreoqueéosoUware
Processo de Software 24 Leonardo Murta
DesenvolvimentoEvoluLvo• MudançassempreacontecememprojetosdesoUware– Requisitosmudam– OambienteemqueosoUwareestáinseridomuda– AspessoasqueoperamosoUwaremudam
• Estratégiasparalidarcommudanças– Evitarasmudanças(correLvas)fazendousodeboastécnicasdeengenhariadesoUware
– AcolhermudançaspormeiodeumprocessoevoluLvo
Processo de Software 25 Leonardo Murta
DesenvolvimentoÁgil• Sãodadasrespostasrápidaseflexíveisamudanças
– OprojetoéreplanejadoconLnuamente– SãofeitasentregasincrementaiseconstantesdosoUware,refleLndoasmudançassolicitadas
Processo de Software 26 Leonardo Murta
DesenvolvimentoÁgil• Princípioságeis
– SaLsfazerocliente– Acolhermodificaçõesnosrequisitos– EntregarosoUwarecomfrequência– Trabalharjuntoaocliente– ManterosindivíduosmoLvados– Promoverconversasfaceaface– MediroprogressocomsoUwarefuncionando– Manterumritmoconstantedetrabalho– Cuidardaqualidade– Buscarporsimplicidade– Trabalharcomequipesauto-organizadas– AjustarocomportamentodaequipebuscandomaisefeLvidade
Processo de Software 27 Leonardo Murta
ProcessoUnificado(beneociosesperados)
• MiLgaçãoderiscosprecoce• Visibilidadedoprogresso• EnvolvimentoecompromeLmentodousuário• Controlesobreacomplexidade• Aprendizadoincremental• Menosdefeitos• MaisproduLvidade
Processo de Software 29 Leonardo Murta
ProcessoUnificado(exemplo)• Analisarosrequisitosnoiníciodoprojeto
– Casosdeuso– Listaderequisitosnãofuncionais
• Priorizaroscasosdeuso– SignificaLvosparaaarquiteturacomoumtodo– Altovalordenegócio– Altorisco
• Emcadaiteração– Selecionaralgunscasosdeusoporordemdeprioridadeparaseremanalisadosem
detalhes– AtribuirtarefasparaaiteraçãoaparLrdaanálisedetalhadadessescasosdeuso– FazerprojetoeprogramaçãodepartedosoUware– TestarapartedosoUwarerecémprojetadaeprogramadaecriarabaselineda
iteração– Apresentarabaselinedaiteraçãoaousuário
Processo de Software 30 Leonardo Murta
ProcessoUnificado(fases)• Odesenvolvimentopodeserdecompostoemfase,comointuitoderetrataraênfaseprincipaldasiterações– Concepção– Elaboração– Construção– Transição
• Planodafase– Abrangenteesuperficial
• Planodaiteração– Específicoedetalhado
Processo de Software 32 Leonardo Murta
ProcessoUnificado(exemplo)
Processo de Software 33
A?vidade Esforço
Análise 10%
Projeto 15%
Programação 30%
Testes 15%
Gerência 30%
Leonardo Murta
ProcessoUnificado(concepção)• Consistede
– IdenLficaçãoderiscos– Listageminicialdosrequisitos– Esboçodoscasosdeuso– IdenLficaçãodearquiteturascandidatas– EsLmaLvasiniciaisdecronogramaecusto
• PrincipaiscaracterísLcas– Menorfasedoprojeto– Escopoaindavago– EsLmaLvasaindavagas
• Esforçoeduraçãoaproximados– 5%doesforçodoprojeto– 10%daduraçãodoprojeto
Processo de Software 34 Leonardo Murta
ProcessoUnificado(elaboração)• Consistede
– MiLgaçãodosriscos– Detalhamentodamaioriadosrequisitosecasosdeuso– EstabelecimentoevalidaçãodaarquiteturadosoUware– DetalhamentodasesLmaLvasdecronogramaecusto
• PrincipaiscaracterísLcas– GrandepartedasaLvidadesdeanáliseeprojetojáconcluída– DiminuiçãosignificaLvadasincertezas– Baselinedaarquiteturaéestabelecida
• Esforçoeduraçãoaproximados– 20%doesforçodoprojeto– 30%daduraçãodoprojeto
Processo de Software 35 Leonardo Murta
ProcessoUnificado(construção)• Consistede
– Implementaçãodosdemaiscomponentesdaarquitetura– Preparaçãoparaaimplantação
• PrincipaiscaracterísLcas– Maiorfasedoprojeto– Baselinedetestesdoprodutoéestabelecida
• Esforçoeduraçãoaproximados– 65%doesforçodoprojeto– 50%daduraçãodoprojeto
Processo de Software 36 Leonardo Murta
ProcessoUnificado(transição)• Consistede
– Execuçãodetestesfinais– Implantaçãodoproduto– Treinamentodosusuários
• PrincipaiscaracterísLcas– Baselinedeliberaçãodoprodutoéestabelecida
• Esforçoeduraçãoaproximados– 10%doesforçodoprojeto– 10%daduraçãodoprojeto
Processo de Software 37 Leonardo Murta
ProcessoUnificado(caracterísLcas)• Osrequisitosnãosãocompletamentedefinidosantesdoprojeto
• Oprojetonãoécompletamentedefinidoantesdaprogramação
• Amodelagemnãoéfeitadeformacompletaeprecisa
• Aprogramaçãonãoéumatraduçãomecânicadomodeloparacódigo
• Asiteraçõesnãodurammeses,massimsemanas• OplanejamentonãoéespeculaLvo,massimrefinadoduranteoprojeto
Leonardo Murta Processo de Software 38
Exercício• AnalisecomoseugrupocomooprocessounificadoseráuLlizadonotrabalho– Qualseráaduraçãodeumaiteração?– Oquevocêspretendementregaremcadaiteração?– ComoequandovocêsvãosereunirparaaLngiresseobjeLvo?
– Qualseráopapeldecadamembrodogrupo?– Quaissãoosriscosenvolvidos?– Quaisdecisõesarquiteturaisprecisamsertomadas(linguagem,SO,etc.)?
Leonardo Murta Processo de Software 39
Bibliografia• Larman,C.;2007.ULlizandoUMLePadrões:umaintroduçãoàanáliseeaoprojetoorientadosaobjetoseaodesenvolvimentoiteraLvo.3ed.Bookman.
• Pressman,R.S.;2004.SoUwareEngineering:APracLLoner’sApproach.6ed.McGraw-Hill.
Leonardo Murta Processo de Software 41
top related